StewOS
Source

stewos.desktop

Declared in modules/home-manager/desktop/options.nix · 39 options

# stewos.desktop.bindings

Keybindings, keyed by a name of your choosing. Each names a key, the modifiers held with it, and either an "action" or a "command" to run.

The names are the point: StewOS contributes its own bindings under this option, so a host can retarget one by setting its "key", or drop it entirely with "enable = false", without having to restate the rest.

Type
attribute set of (submodule)
Default
{ }
Example
{
  # Move the launcher onto a different key
  launcher.key = "space";

  # Stop binding the power menu
  power-menu.enable = false;

  # Add one of your own
  notes = {
    key = "n";
    modifiers = [ "shift" ];
    command.package = pkgs.obsidian;
  };
}
Declared in
Set by

# stewos.desktop.bindings.<name>.action

A window management action to perform. Set exactly one of "action" or "command".

Not every platform can perform every action. One that cannot fails the build with the list of actions it does support, so restrict the binding with "platforms" if it is meant for a single machine.

Type
null or one of "close-window", "fullscreen", "toggle-floating", "toggle-split-direction", "layout-accordion", "focus-window", "move-window", "resize-grow", "resize-shrink", "focus-monitor", "move-window-to-monitor", "move-workspace-to-next-monitor", "workspace", "move-window-to-workspace", "workspace-back-and-forth", "launcher", "terminal", "lock-session", "volume-up", "volume-down", "volume-mute", "brightness-up", "brightness-down", "screenshot-region", "screenshot-screen"
Default
null
Example
"focus-window"
Declared in

# stewos.desktop.bindings.<name>.command

Run a program. Set exactly one of "action" or "command".

The command line is built from the package identically everywhere, so this covers ordinary programs. Launching a macOS application bundle is a different operation and is not expressible here; the two cases StewOS needs, a terminal and a launcher, are actions instead.

Type
null or (submodule)
Default
null
Declared in

# stewos.desktop.bindings.<name>.command.args

Arguments appended to the command line.

Type
list of string
Default
[ ]
Declared in

# stewos.desktop.bindings.<name>.command.package

Package providing the program to run.

Type
package
Declared in

# stewos.desktop.bindings.<name>.command.target

Name of the binary inside "package" to run. Defaults to the package's main program.

Type
null or string
Default
null
Declared in

# stewos.desktop.bindings.<name>.direction

Which way the directional actions ("focus-window", "move-window", "focus-monitor", "move-window-to-monitor") point.

Type
null or one of "left", "right", "up", "down"
Default
null
Declared in

# stewos.desktop.bindings.<name>.enable

Whether to bind this key combination. Set to false to switch off a binding StewOS provides by default.

Type
boolean
Default
true
Declared in

# stewos.desktop.bindings.<name>.key

Key to bind, under a name that means the same thing on every platform: a letter ("h"), a digit ("1"), a function key ("f5"), an arrow ("left", "right", "up", "down"), a named key ("enter", "space", "tab", "escape", "backspace", "delete", "minus", "equal", "slash", "comma", "period", "semicolon"), or a media key ("volume-up", "volume-down", "volume-mute", "brightness-up", "brightness-down").

A name the platform's backend does not recognise fails the build, rather than producing a binding that silently never fires.

Type
string
Example
"h"
Declared in

# stewos.desktop.bindings.<name>.modifiers

Modifiers held alongside "stewos.desktop.modifier". Order does not matter; each backend renders them in its own fixed order.

Type
list of (one of "shift", "ctrl", "alt", "super")
Default
[ ]
Example
[
  "shift"
]
Declared in

# stewos.desktop.bindings.<name>.platforms

Platforms this binding applies to. On any other platform it is quietly dropped instead of rejected, which is how a binding whose command only exists on one operating system can live in configuration shared between machines.

Type
list of (one of "linux", "darwin")
Default
[
  "linux"
  "darwin"
]
Declared in

# stewos.desktop.bindings.<name>.useModifier

Whether "stewos.desktop.modifier" is part of the combination. Set to false for keys that have to fire on their own, such as the media keys along the top of a laptop keyboard.

Type
boolean
Default
true
Declared in

# stewos.desktop.bindings.<name>.workspace

Which workspace the workspace actions ("workspace", "move-window-to-workspace") act on.

Type
null or (positive integer, meaning >0)
Default
null
Declared in

# stewos.desktop.capsLockEscape

Whether to enable sending Escape when Caps Lock is pressed.

Type
boolean
Default
false
Example
true
Declared in
Set by

# stewos.desktop.enable

Whether to enable Graphical Desktop.

Type
boolean
Default
false
Example
true
Declared in
Set by

# stewos.desktop.fonts.monospace

Font used wherever the width of a character matters.

Type
submodule
Default
{
  name = "JetBrains Mono";
  package = pkgs.jetbrains-mono;
  size = 11;
}
Declared in

# stewos.desktop.fonts.monospace.name

Family name, as fontconfig and the toolkits know it.

Type
string
Declared in

# stewos.desktop.fonts.monospace.package

Package providing the family.

Type
package
Declared in

# stewos.desktop.fonts.monospace.size

Point size.

Type
signed integer
Default
11
Declared in

# stewos.desktop.fonts.ui

Font used for interface text across the toolkits.

Type
submodule
Default
{
  name = "Roboto";
  package = pkgs.roboto;
  size = 11;
}
Declared in

# stewos.desktop.fonts.ui.name

Family name, as fontconfig and the toolkits know it.

Type
string
Declared in

# stewos.desktop.fonts.ui.package

Package providing the family.

Type
package
Declared in

# stewos.desktop.fonts.ui.size

Point size.

Type
signed integer
Default
11
Declared in

# stewos.desktop.keyboards

Per-keyboard overrides, keyed by the device name the session reports. A laptop whose built-in keyboard enumerates as its own input device often needs one, because the session-wide keyboard settings do not reach it. Only the fields you set are overridden. Linux only.

Type
attribute set of (submodule)
Default
{ }
Example
{
  "framework-laptop-16-keyboard-module---ansi-keyboard".capsLockEscape = true;
}
Declared in
Set by

# stewos.desktop.keyboards.<name>.capsLockEscape

Override "stewos.desktop.capsLockEscape" for this keyboard only. Null leaves the session-wide setting in force.

Type
null or boolean
Default
null
Declared in

# stewos.desktop.keyboards.<name>.layout

Keyboard layout for this device.

Type
null or string
Default
null
Example
"us"
Declared in

# stewos.desktop.keyboards.<name>.variant

Layout variant for this device.

Type
null or string
Default
null
Declared in

# stewos.desktop.modifier

Modifier held for the global keybinding prefix. Each platform renders it in its own vocabulary -- "SUPER" is the Command key on macOS.

Type
one of "SUPER", "ALT", "CTRL", "SHIFT"
Default
"SUPER"
Declared in
Set by

# stewos.desktop.monitors

Monitor layout. Any monitor not described here is placed automatically at its preferred resolution. Linux only; macOS arranges displays itself.

Type
list of (submodule)
Default
[ ]
Declared in
Set by

# stewos.desktop.monitors.*.description

The monitor's identity as it reports it over EDID: vendor, model and serial number. "wlr-randr" or the compositor's own monitor listing will print it.

Type
string
Example
"Dell Inc. DELL U2723QE 55L01P3"
Declared in

# stewos.desktop.monitors.*.position

Where this monitor's top-left corner sits in the desktop layout, in logical (post-scaling) pixels.

Type
submodule
Declared in

# stewos.desktop.monitors.*.position.x

Horizontal offset, in logical pixels.

Type
signed integer
Default
0
Declared in

# stewos.desktop.monitors.*.position.y

Vertical offset, in logical pixels.

Type
signed integer
Default
0
Declared in

# stewos.desktop.monitors.*.resolution

Resolution to drive the monitor at, or "preferred" to take the mode the monitor itself advertises as best.

Type
value "preferred" (singular enum) or (submodule)
Default
"preferred"
Declared in

# stewos.desktop.monitors.*.scale

Fractional scaling factor. The monitor's logical size is its resolution divided by this, and logical pixels are what "position" is measured in.

Type
floating point number
Default
1.0
Declared in

# stewos.desktop.startLocked

Whether to enable bringing the session up locked, so a machine that boots unattended lands on a lock screen rather than on your desktop. Linux only .

Type
boolean
Default
false
Example
true
Declared in
Set by

# stewos.desktop.swapCommandAlt

Whether to enable swapping the left Command and left Alt keys on macOS. Worth turning on when "stewos.desktop.modifier" is "ALT", so the prefix falls under your thumb on the key a Mac keyboard labels Command .

Type
boolean
Default
false
Example
true
Declared in
Set by

# stewos.desktop.terminal

The alacritty package to use.

Type
package
Default
pkgs.alacritty
Declared in
Set by

# stewos.desktop.wallpaper

Path to a wallpaper.

Type
absolute path
Default

a bundled default image

Declared in
Set by