Skip to content

maxwelljens/gibman

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

23 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

gibman

A DOOM WAD manager for nerds

What is gibman?

gibman is a simple CLI utility designed to do one thing: to run presets for your favourite DOOM engine. Although chiefly designed with GZDoom in mind, other engines should be supported (more on that below). The program operates on a simple YAML file, with which you can set up all of your engines, IWADs, and WADs. Both Windows and Linux are supported.

Quick usage:

Given the following configuration in $XDG_CONFIG_HOME/gibman/gibman.yaml, or ~/.config/gibman/gibman.yaml if $XDG_CONFIG_HOME is not set:

engine:
  - name: gzdoom
    path: /path/to/gzdoom

iwad:
  - name: doom2
    path: /path/to/DOOM2.WAD

search:
  - /path/to/wads

preset:
  - name: example
    description: A description to help you remember what the preset is for
    engine: gzdoom
    iwad: doom2
    wad:
      - eviternity
    args: []

Run the following to run your example preset:

gibman -p example

This will run GZDoom with the DOOM 2 IWAD and Eviternity WAD, if something like Eviternity.WAD exists in one of the directories outlined in the search section of the configuration file. More information can be found in default_config.yaml, which is also placed in $XDG_CONFIG_HOME/gibman/gibman.yaml when running the program for the first time.

How does gibman work?

At its core, the program simply constructs a string to execute as command in the user's shell. This makes the program both platform-agnostic and not tied to any particular DOOM engine. The above example would produce the following string:

/path/to/gzdoom -iwad /.../DOOM2.WAD -file /.../Eviternity.wad

Or with backslashes, if you are on Windows. If you were to specify any args in your preset, those would be added at the end. For example:

args:
  - -dog
  - 2

Would be added to the above command at the end as -dog 2, which is a command line option in the Woof! DOOM engine. This allows you to use any DOOM engine that uses the -iwad and -file command line options. Such engines include GZDoom, ZDoom, Woof!, Eternity Engine, and probably many others.

Options

The program includes a few options. Running the program without any options simply executes the default (i.e. topmost specified) engine and IWAD in the gibman.yaml configuration file.

  • -h/--help: Print help for the program.

  • -p/--preset: Execute the specified preset. The name attribute is used as the argument for this option.

  • -l/--list-presets: List the presets in your configuration. This is helpful if you forget which presets you have, but don't want to open a text editor to read the gibman.yaml file again. It looks like the following:

┌─────────┬───────────────────────────────────────┬────────┬───────────────────┐
│ Name    │ Description                           │ Engine │ WADs              │
├─────────┼───────────────────────────────────────┼────────┼───────────────────┤
│ example │ A description to help you remember    │ gzdoom │ doom2, eviternity │
│         │ what the preset is for                │        │                   │
└─────────┴───────────────────────────────────────┴────────┴───────────────────┘
  • -v/--verbose: Run program in verbose mode. At the moment this only means printing the shell string before launching the game.

Environment variables

While gibman makes extensive use of ANSI colour sequences in its output, it does respect the NO_COLOR environment variable, disabling colour if it is set to any value.

Installing

Windows and Linux

Binary releases (executables) of gibman are available for both Windows and Linux in the Releases page.

macOS

Due to difficulty in cross-compiling for macOS, binary releases for macOS are not available. macOS users need to compile from source.

Compiling from source

gibman is made in the Nim programming language, so the Nim toolchain will be required. This can be acquired here, and it is the recommended method for all platforms. This will install both Nim and the Nimble package manager, both of which are required for compiling gibman from source.

Afterwards, navigate to the root of the project and run the following command to compile gibman:

nimble c -o:build/gibman src/gibman.nim

If all goes well, this should download all dependencies and produce an executable of gibman in the build directory for your platform.

Licence

This software is licensed under the European Union Public Licence 1.2. 2025 copyright of Maxwell Jensen.