MERDE-CONFIG(5) File Formats Manual MERDE-CONFIG(5)

merde-configMERDE Lua configuration

A MERDE configuration is a Lua chunk that returns one table. Unknown keys and values of the wrong type are errors. The programs, geometry, appearance, companions, and bindings tables must be present, although individual entries may be omitted to retain their built-in defaults.

Commands are executed by /bin/sh -c. Colours are 32-bit ARGB integers. Key specifications use an XKB key name after zero or more Ctrl, Alt, Shift, Logo, or Meta modifiers separated by plus signs.

auto_spawn_terminal
Boolean; open the configured terminal when the session starts.
programs
Table containing the string terminal.
geometry
Table containing integer width, height, x, y, margin, move_step, and resize_step values. Widths and heights are 64 through 16384; positions are -32768 through 32767; margin is 0 through 1024; movement and resize steps are 1 through 4096.
appearance
Table containing ARGB border_color and focused_border_color, plus integer border_width and focused_border_width from 0 through 32.
companions
Contains bar, wallpaper, notifications, and screenshots tables. Every companion accepts boolean enabled and string command. Wallpaper also accepts image; screenshots also accepts directory. If omitted, unnamed screenshots are written below the private session runtime directory. Only the bar, wallpaper, and notifier are long-lived session companions. The screenshot command is invoked on demand.
bindings
Contains string bindings named focus_next, focus_previous, move_left, move_right, move_up, move_down, resize_left, resize_right, resize_up, resize_down, fullscreen, close, terminal, launcher, screenshot, help, and quit.
custom_bindings
Optional array of up to 24 tables. Each entry requires one-line string key, command, and help members.

$XDG_CONFIG_HOME/merde/config.lua
 
$HOME/.config/merde/config.lua
User configuration.
/etc/merde/config.lua
System configuration.
/usr/share/merde/merde.default.lua
Complete stock configuration and fallback.

local alt = "Alt+"

return {
  auto_spawn_terminal = true,
  programs = { terminal = "/usr/bin/havoc" },
  geometry = {
    width = 900, height = 600, x = 40, y = 40,
    margin = 12, move_step = 24, resize_step = 48,
  },
  appearance = {
    border_color = 0xff303030,
    focused_border_color = 0xffffffff,
    border_width = 1, focused_border_width = 2,
  },
  companions = {
    bar = { enabled = true, command = "/usr/bin/merde-bar" },
    wallpaper = {
      enabled = true, command = "/usr/bin/merde-wallpaper",
      image = "/usr/share/backgrounds/merde/default.png",
    },
    notifications = {
      enabled = true, command = "/usr/bin/merde-notify",
    },
    screenshots = {
      enabled = true, command = "/usr/bin/merde-screenshot",
    },
  },
  bindings = {
    focus_next = alt .. "Tab",
    focus_previous = alt .. "Shift+Tab",
    move_left = alt .. "Left", move_right = alt .. "Right",
    move_up = alt .. "Up", move_down = alt .. "Down",
    resize_left = alt .. "Shift+Left",
    resize_right = alt .. "Shift+Right",
    resize_up = alt .. "Shift+Up",
    resize_down = alt .. "Shift+Down",
    fullscreen = alt .. "F11", close = alt .. "Q",
    terminal = alt .. "Return", launcher = alt .. "Space",
    screenshot = "Print", help = alt .. "F1",
    quit = alt .. "Shift+Q",
  },
  custom_bindings = {},
}

merde(1), merdectl(1)

MOUSE August 17, 2026 MERDE-CONFIG(5)