stewos.desktop
#
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