Skip to content

Configuration

Aqueous is configured with a small set of TOML files. The parser is a tiny TOML subset[section], [[array]], key = value, and # comments. Unknown keys are ignored, and a malformed file falls back to defaults silently.

  • Directory~/.config/aqueous/
    • wm.toml outputs, struts, keybinds, exec, state, scratchpads
    • layout.toml default layout, gaps, borders, per-layout options
    • rules.toml per-window rules + game-mode options

Most of the configuration hot-reloads with Super+R (the reload_config action) — layout options swap live. Keybinding chord changes still require a WM restart; only layout-related values hot-swap.

wm.toml
reload_config = "Super+R"

The main configuration file. Key sections:

Repeat one [[output]] block per monitor. name matches river_output_v1.name (e.g. DP-1, HDMI-A-1, eDP-1).

[[output]]
name = "DP-4"
scale = 1.0
position = [0, 0]
enabled = true
[display]
apply_on_start = true
apply_on_reload = true

Force a workspace to a given layout. Add an optional output to scope it to one monitor.

[[workspace]]
workspace = 1
layout = "tile"
[[workspace]]
output = "DP-1"
workspace = 2
layout = "monocle"

Precedence (highest → lowest): per-keybinding set_layout_* override → output+workspace block → workspace-only block → [[output]][layout].default.

[struts]
top = 32 # match your Noctalia bar height
bottom = 0
left = 0
right = 0

Named shell commands you can attach to a keybinding.

[actions]
toggle_start_menu = "qs -c noctalia-shell ipc call launcher toggle"
spawn_terminal = "tabby"
lock_screen = "swaylock -f --screenshots --clock --indicator"
[state]
fullscreen_hides_bar = true # hide layer-shell layers above 'bottom'
maximize_full_output = false # false → respect exclusive zones (don't cover bar)
[scratchpad]
on_empty = "manual" # "manual" | "spawn"
width_frac = 0.6
height_frac = 0.5
anchor = "center" # center | top | bottom
[scratchpad.spawn]
# term = "ghostty --class=aqueous-scratch-term"

Run programs on session start / reload. Repeat [[exec]] per program.

[[exec]]
name = "noctalia"
command = "qs -c noctalia-shell"
when = "startup" # "startup" (default) | "reload" | "always"
once = true # don't relaunch on --reload
restart = true # respawn (with backoff) on non-zero exit
log = "/tmp/noctalia.log"
[rules]
path = "~/.config/aqueous/rules.toml"
© 2026 Seafoam LabsShelly Chel