Keyboard shortcuts

Press or to navigate between chapters

Press S or / to search in the book

Press ? to show this help

Press Esc to hide this help

xsession.enable

Whether to enable X Session.

Type: boolean

Default:

false

Example:

true

Declared by:

xsession.initExtra

Extra shell commands to run during initialization.

Type: strings concatenated with “\n”

Default:

""

Declared by:

xsession.numlock.enable

Whether to enable Num Lock.

Type: boolean

Default:

false

Example:

true

Declared by:

xsession.pointerCursor.package

Alias of home.pointerCursor.package.

Type: submodule

Declared by:

xsession.pointerCursor.defaultCursor

Alias of home.pointerCursor.x11.defaultCursor.

Type: submodule

Declared by:

xsession.pointerCursor.name

Alias of home.pointerCursor.name.

Type: submodule

Declared by:

xsession.pointerCursor.size

Alias of home.pointerCursor.size.

Type: submodule

Declared by:

xsession.preferStatusNotifierItems

Whether tray applets should prefer using the Status Notifier Items (SNI) protocol, commonly called App Indicators. Note, not all tray applets or status bars support SNI.

Type: boolean

Default:

false

Example:

true

Declared by:

xsession.profileExtra

Extra shell commands to run before session start.

Type: strings concatenated with “\n”

Default:

""

Declared by:

xsession.profilePath

Path, relative to HOME, where Home Manager should write the X profile script.

Type: string

Default:

".xprofile"

Example:

".xprofile-hm"

Declared by:

xsession.scriptPath

Path, relative to HOME, where Home Manager should write the X session script.

Type: string

Default:

".xsession"

Example:

".xsession-hm"

Declared by:

xsession.windowManager.awesome.enable

Whether to enable Awesome window manager.

Type: boolean

Default:

false

Example:

true

Declared by:

xsession.windowManager.awesome.package

The awesome package to use. to use for running the Awesome WM

Type: package

Default:

pkgs.awesome

Declared by:

xsession.windowManager.awesome.luaModules

List of lua packages available for being used in the Awesome configuration.

Type: list of package

Default:

[ ]

Example:

[ pkgs.luaPackages.vicious ]

Declared by:

xsession.windowManager.awesome.noArgb

Disable client transparency support, which can be greatly detrimental to performance in some setups

Type: boolean

Default:

false

Declared by:

xsession.windowManager.bspwm.enable

Whether to enable bspwm window manager.

Type: boolean

Default:

false

Example:

true

Declared by:

xsession.windowManager.bspwm.package

The bspwm package to use.

Type: package

Default:

pkgs.bspwm

Example:

pkgs.bspwm-unstable

Declared by:

xsession.windowManager.bspwm.alwaysResetDesktops

If set to true, desktops configured in monitors will be reset every time the config is run.

If set to false, desktops will only be configured the first time the config is run. This is useful if you want to dynamically add desktops and you don’t want them to be destroyed if you re-run bspwmrc.

Type: boolean

Default:

true

Declared by:

xsession.windowManager.bspwm.extraConfig

Additional shell commands to be run at the end of the config file.

Type: strings concatenated with “\n”

Default:

""

Example:

''
  bspc subscribe all > ~/bspc-report.log &
''

Declared by:

xsession.windowManager.bspwm.extraConfigEarly

Like extraConfig, except commands are run at the start of the config file.

Type: strings concatenated with “\n”

Default:

""

Declared by:

xsession.windowManager.bspwm.monitors

Specifies the names of desktops to create on each monitor.

Type: attribute set of list of string

Default:

{ }

Example:

{
  HDMI-0 = [
    "web"
    "terminal"
    "III"
    "IV"
  ];
}

Declared by:

xsession.windowManager.bspwm.rules

Rule configuration. The keys of the attribute set are the targets of the rules.

Type: attribute set of (open submodule of attribute set of (boolean or signed integer or floating point number or string))

Default:

{ }

Example:

{
  Gimp = {
    desktop = "^8";
    follow = true;
    state = "floating";
  };
  "Kupfer.py" = {
    focus = true;
  };
  Screenkey = {
    manage = false;
  };
}

Declared by:

xsession.windowManager.bspwm.rules.<name>.border

Whether the node should have border.

Type: null or boolean

Default:

null

Example:

true

Declared by:

xsession.windowManager.bspwm.rules.<name>.center

Whether the node will be put in the center, in floating mode.

Type: null or boolean

Default:

null

Example:

true

Declared by:

xsession.windowManager.bspwm.rules.<name>.desktop

The desktop where the rule should be applied.

Type: null or string

Default:

null

Example:

"^8"

Declared by:

xsession.windowManager.bspwm.rules.<name>.focus

Whether the node should gain focus on creation.

Type: null or boolean

Default:

null

Example:

true

Declared by:

xsession.windowManager.bspwm.rules.<name>.follow

Whether focus should follow the node when it is moved.

Type: null or boolean

Default:

null

Example:

true

Declared by:

xsession.windowManager.bspwm.rules.<name>.hidden

Whether the node should occupy any space.

Type: null or boolean

Default:

null

Example:

true

Declared by:

xsession.windowManager.bspwm.rules.<name>.layer

The layer where a new window should spawn.

Type: null or one of “below”, “normal”, “above”

Default:

null

Example:

"above"

Declared by:

xsession.windowManager.bspwm.rules.<name>.locked

Whether the node should ignore node --close messages.

Type: null or boolean

Default:

null

Example:

true

Declared by:

xsession.windowManager.bspwm.rules.<name>.manage

Whether the window should be managed by bspwm. If false, the window will be ignored by bspwm entirely. This is useful for overlay apps, e.g. screenshot tools.

Type: null or boolean

Default:

null

Example:

true

Declared by:

xsession.windowManager.bspwm.rules.<name>.marked

Whether the node will be marked for deferred actions.

Type: null or boolean

Default:

null

Example:

true

Declared by:

xsession.windowManager.bspwm.rules.<name>.monitor

The monitor where the rule should be applied.

Type: null or string

Default:

null

Example:

"HDMI-0"

Declared by:

xsession.windowManager.bspwm.rules.<name>.node

The node where the rule should be applied.

Type: null or string

Default:

null

Example:

"1"

Declared by:

xsession.windowManager.bspwm.rules.<name>.private

Whether the node should stay in the same tiling position and size.

Type: null or boolean

Default:

null

Example:

true

Declared by:

xsession.windowManager.bspwm.rules.<name>.rectangle

The node’s geometry, in the format WxH+X+Y.

Type: null or string

Default:

null

Example:

"800x600+32+32"

Declared by:

xsession.windowManager.bspwm.rules.<name>.splitDir

The direction where the container is going to be split.

Type: null or one of “north”, “west”, “south”, “east”

Default:

null

Example:

"south"

Declared by:

xsession.windowManager.bspwm.rules.<name>.splitRatio

The ratio between the new window and the previous existing window in the desktop.

Type: null or floating point number

Default:

null

Example:

0.65

Declared by:

xsession.windowManager.bspwm.rules.<name>.state

The state in which a new window should spawn.

Type: null or one of “tiled”, “pseudo_tiled”, “floating”, “fullscreen”

Default:

null

Example:

"floating"

Declared by:

xsession.windowManager.bspwm.rules.<name>.sticky

Whether the node should stay on the focused desktop.

Type: null or boolean

Default:

null

Example:

true

Declared by:

xsession.windowManager.bspwm.settings

General settings given to bspc config.

Type: attribute set of (boolean or signed integer or floating point number or string or list of (boolean or signed integer or floating point number or string))

Default:

{ }

Example:

{
  border_width = 2;
  gapless_monocle = true;
  split_ratio = 0.52;
}

Declared by:

xsession.windowManager.bspwm.startupPrograms

Programs to be executed during startup.

Type: list of string

Default:

[ ]

Example:

[
  "numlockx on"
  "tilda"
]

Declared by:

xsession.windowManager.command

Command to use to start the window manager.

The default value allows integration with NixOS’ generated xserver configuration.

Extra actions and commands can be specified in xsession.initExtra.

Type: string

Default:

"test -n \"$1\" && eval \"$@\""

Example:

let
  xmonad = pkgs.xmonad-with-packages.override {
    packages = self: [ self.xmonad-contrib self.taffybar ];
  };
in
  "${xmonad}/bin/xmonad";

Declared by:

xsession.windowManager.exwm.enable

Whether to enable exwm.

Type: boolean

Default:

false

Example:

true

Declared by:

xsession.windowManager.exwm.package

The emacs package to use.

Type: package

Default:

pkgs.emacs

Example:

pkgs.emacs-gtk

Declared by:

xsession.windowManager.exwm.extraPackages

Extra packages available to Emacs. The value must be a function which receives the attrset defined in emacs.pkgs as the sole argument.

Type: function that evaluates to a(n) list of package

Default:

epkgs: []

Example:

epkgs: [
  epkgs.emms
  epkgs.magit
  epkgs.proof-general
]

Declared by:

xsession.windowManager.exwm.loadScript

Emacs lisp code to be run after loading the user’s init file.

Type: strings concatenated with “\n”

Default:

"(require 'exwm)"

Example:

''
  (require 'exwm)
  (exwm-enable)
''

Declared by:

xsession.windowManager.fluxbox.enable

Whether to enable Fluxbox window manager.

Type: boolean

Default:

false

Example:

true

Declared by:

xsession.windowManager.fluxbox.package

The fluxbox package to use.

Type: null or package

Default:

pkgs.fluxbox

Declared by:

xsession.windowManager.fluxbox.apps

Apps configuration for Fluxbox, written to ~/.fluxbox/apps. Look at the fluxbox(1) manpage for details.

Type: strings concatenated with “\n”

Default:

""

Declared by:

xsession.windowManager.fluxbox.extraCommandLineArgs

Extra command line arguments to pass to fluxbox. Look at the fluxbox(1) manpage for details.

Type: list of string

Default:

[ ]

Example:

[
  "-log"
  "/tmp/fluxbox.log"
]

Declared by:

xsession.windowManager.fluxbox.init

Init configuration for Fluxbox, written to ~/.fluxbox/init. Look at the fluxbox(1) manpage for details.

Type: strings concatenated with “\n”

Default:

""

Declared by:

xsession.windowManager.fluxbox.keys

Keyboard shortcuts configuration for Fluxbox, written to ~/.fluxbox/keys. Look at the fluxbox-keys(1) manpage for details.

Type: strings concatenated with “\n”

Default:

""

Declared by:

xsession.windowManager.fluxbox.menu

Menu configuration for Fluxbox, written to ~/.fluxbox/menu. Look at the fluxbox-menu(1) manpage for details.

Type: strings concatenated with “\n”

Default:

""

Declared by:

xsession.windowManager.fluxbox.slitlist

Slitlist configuration for Fluxbox, written to ~/.fluxbox/slitlist. Look at the fluxbox(1) manpage for details.

Type: strings concatenated with “\n”

Default:

""

Declared by:

xsession.windowManager.fluxbox.windowmenu

Window menu configuration for Fluxbox, written to ~/.fluxbox/windowmenu. Look at the fluxbox-menu(1) manpage for details.

Type: strings concatenated with “\n”

Default:

""

Declared by:

xsession.windowManager.herbstluftwm.enable

Whether to enable herbstluftwm window manager.

Type: boolean

Default:

false

Example:

true

Declared by:

xsession.windowManager.herbstluftwm.enableAlias

Set an alias for the herbstclient command in the autostart script that only stores its arguments and executes them all at once at the end of the autostart script.

This reduces the amount of flickering you get while all options are being applied and improves the performance.

On the other hand, this makes it more difficult to write bash functions that call herbstclient. You can work around this by calling command herbstclient in your functions to still get some of the benefits of enabling this alias.

Type: boolean

Default:

true

Declared by:

xsession.windowManager.herbstluftwm.package

The herbstluftwm package to use.

Type: package

Default:

pkgs.herbstluftwm

Declared by:

xsession.windowManager.herbstluftwm.extraConfig

Extra configuration lines to add verbatim to $XDG_CONFIG_HOME/herbstluftwm/autostart.

Type: strings concatenated with “\n”

Default:

""

Example:

''
  herbstclient set_layout max
  herbstclient detect_monitors
''

Declared by:

xsession.windowManager.herbstluftwm.keybinds

Herbstluftwm keybinds.

Type: attribute set of string

Default:

{ }

Example:

{
  Mod4-o = "split right";
  Mod4-u = "split bottom";
}

Declared by:

xsession.windowManager.herbstluftwm.mousebinds

Herbstluftwm mousebinds.

Type: attribute set of string

Default:

{ }

Example:

{
  Mod4-B1 = "move";
  Mod4-B3 = "resize";
}

Declared by:

xsession.windowManager.herbstluftwm.rules

Herbstluftwm rules.

Type: list of string

Default:

[ ]

Example:

[
  "windowtype~'_NET_WM_WINDOW_TYPE_(DIALOG|UTILITY|SPLASH)' focus=on pseudotile=on"
  "windowtype~'_NET_WM_WINDOW_TYPE_(NOTIFICATION|DOCK|DESKTOP)' manage=off"
]

Declared by:

xsession.windowManager.herbstluftwm.settings

Herbstluftwm settings.

Type: attribute set of (boolean or signed integer or string)

Default:

{ }

Example:

{
  gapless_grid = false;
  window_border_width = 1;
  window_border_active_color = "#FF0000";
}

Declared by:

xsession.windowManager.herbstluftwm.tags

Tags to create on startup.

Type: list of string

Default:

[ ]

Example:

[
  "work"
  "browser"
  "music"
  "gaming"
]

Declared by:

xsession.windowManager.i3.enable

Whether to enable i3 window manager.

Type: boolean

Default:

false

Example:

true

Declared by:

xsession.windowManager.i3.package

The i3 package to use.

Type: null or package

Default:

pkgs.i3

Declared by:

xsession.windowManager.i3.config

i3 configuration options.

Type: null or (submodule)

Default:

{ }

Declared by:

xsession.windowManager.i3.config.assigns

An attribute set that assigns applications to workspaces based on criteria.

Type: attribute set of list of attribute set of (string or boolean)

Default:

{ }

Example:

{
  "0: extra" = [
    {
      class = "^Firefox$";
      window_role = "About";
    }
  ];
  "1: web" = [
    {
      class = "^Firefox$";
    }
  ];
}

Declared by:

xsession.windowManager.i3.config.bars

i3 bars settings blocks. Set to empty list to remove bars completely.

Type: list of (submodule)

Default:

see code

Declared by:

xsession.windowManager.i3.config.bars.*.colors

Bar color settings. All color classes can be specified using submodules with ‘border’, ‘background’, ‘text’, fields and RGB color hex-codes as values. See default values for the reference. Note that ‘background’, ‘status’, and ‘separator’ parameters take a single RGB value.

See https://i3wm.org/docs/userguide.html#_colors.

Type: submodule

Default:

{ }

Declared by:

xsession.windowManager.i3.config.bars.*.colors.activeWorkspace

Border, background and text color for a workspace button when the workspace is active.

Type: null or (submodule)

Default:

null for state version ≥ 20.09, as example otherwise

Declared by:

xsession.windowManager.i3.config.bars.*.colors.background

Background color of the bar.

Type: null or string

Default:

null for state version ≥ 20.09, as example otherwise

Declared by:

xsession.windowManager.i3.config.bars.*.colors.bindingMode

Border, background and text color for the binding mode indicator

Type: null or (submodule)

Default:

null for state version ≥ 20.09, as example otherwise

Declared by:

xsession.windowManager.i3.config.bars.*.colors.focusedBackground

Background color of the bar on the currently focused monitor output.

Type: null or string

Default:

null

Example:

"#000000"

Declared by:

xsession.windowManager.i3.config.bars.*.colors.focusedSeparator

Text color to be used for the separator on the currently focused monitor output.

Type: null or string

Default:

null

Example:

"#666666"

Declared by:

xsession.windowManager.i3.config.bars.*.colors.focusedStatusline

Text color to be used for the statusline on the currently focused monitor output.

Type: null or string

Default:

null

Example:

"#ffffff"

Declared by:

xsession.windowManager.i3.config.bars.*.colors.focusedWorkspace

Border, background and text color for a workspace button when the workspace has focus.

Type: null or (submodule)

Default:

null for state version ≥ 20.09, as example otherwise

Declared by:

xsession.windowManager.i3.config.bars.*.colors.inactiveWorkspace

Border, background and text color for a workspace button when the workspace does not have focus and is not active.

Type: null or (submodule)

Default:

null for state version ≥ 20.09, as example otherwise

Declared by:

xsession.windowManager.i3.config.bars.*.colors.separator

Text color to be used for the separator.

Type: null or string

Default:

null for state version ≥ 20.09, as example otherwise

Declared by:

xsession.windowManager.i3.config.bars.*.colors.statusline

Text color to be used for the statusline.

Type: null or string

Default:

null for state version ≥ 20.09, as example otherwise

Declared by:

xsession.windowManager.i3.config.bars.*.colors.urgentWorkspace

Border, background and text color for a workspace button when the workspace contains a window with the urgency hint set.

Type: null or (submodule)

Default:

null for state version ≥ 20.09, as example otherwise

Declared by:

xsession.windowManager.i3.config.bars.*.command

Command that will be used to start a bar.

Type: string

Default:

i3bar

Example:

"\${pkgs.i3}/bin/i3bar -t"

Declared by:

xsession.windowManager.i3.config.bars.*.extraConfig

Extra configuration lines for this bar.

Type: strings concatenated with “\n”

Default:

""

Declared by:

xsession.windowManager.i3.config.bars.*.fonts

Font configuration for this bar.

Type: (list of string) or (submodule)

Default:

{ }

Example:

{
  names = [
    "DejaVu Sans Mono"
    "FontAwesome5Free"
  ];
  size = 11.0;
  style = "Bold Semi-Condensed";
}

Declared by:

xsession.windowManager.i3.config.bars.*.fonts.names

List of font names list used for window titles. Only FreeType fonts are supported. The order here is important (e.g. icons font should go before the one used for text).

Type: list of string

Default:

[ "monospace" ]

Example:

[
  "FontAwesome"
  "Terminus"
]

xsession.windowManager.i3.config.bars.*.fonts.size

The font size to use for window titles.

Type: floating point number or string

Default:

8.0

Example:

11.5

xsession.windowManager.i3.config.bars.*.fonts.style

The font style to use for window titles.

Type: string

Default:

""

Example:

"Bold Semi-Condensed"

xsession.windowManager.i3.config.bars.*.hiddenState

The default bar mode when ‘bar.mode’ == ‘hide’.

Type: null or one of “hide”, “show”

Default:

null for state version ≥ 20.09, as example otherwise

Declared by:

xsession.windowManager.i3.config.bars.*.id

Specifies the bar ID for the configured bar instance. If this option is missing, the ID is set to bar-x, where x corresponds to the position of the embedding bar block in the config file.

Type: null or string

Default:

null

Declared by:

xsession.windowManager.i3.config.bars.*.mode

Bar visibility mode.

Type: null or one of “dock”, “hide”, “invisible”

Default:

null for state version ≥ 20.09, as example otherwise

Declared by:

xsession.windowManager.i3.config.bars.*.position

The edge of the screen i3bar should show up.

Type: null or one of “top”, “bottom”

Default:

null for state version ≥ 20.09, as example otherwise

Declared by:

xsession.windowManager.i3.config.bars.*.statusCommand

Command that will be used to get status lines.

Type: null or string

Default:

null for state version ≥ 20.09, as example otherwise

Declared by:

xsession.windowManager.i3.config.bars.*.trayOutput

Where to output tray.

Type: null or string

Default:

null for state version ≥ 20.09, as example otherwise

Declared by:

xsession.windowManager.i3.config.bars.*.trayPadding

Sets the pixel padding of the system tray. This padding will surround the tray on all sides and between each item.

Type: null or signed integer

Default:

null for state version ≥ 20.09, as example otherwise

Declared by:

xsession.windowManager.i3.config.bars.*.workspaceButtons

Whether workspace buttons should be shown or not.

Type: null or boolean

Default:

null for state version ≥ 20.09, as example otherwise

Declared by:

xsession.windowManager.i3.config.bars.*.workspaceNumbers

Whether workspace numbers should be displayed within the workspace buttons.

Type: null or boolean

Default:

null for state version ≥ 20.09, as example otherwise

Declared by:

xsession.windowManager.i3.config.colors

Color settings. All color classes can be specified using submodules with ‘border’, ‘background’, ‘text’, ‘indicator’ and ‘childBorder’ fields and RGB color hex-codes as values. See default values for the reference. Note that ‘i3.config.colors.background’ parameter takes a single RGB value.

See https://i3wm.org/docs/userguide.html#_changing_colors.

Type: submodule

Default:

{ }

Declared by:

xsession.windowManager.i3.config.colors.background

Background color of the window. Only applications which do not cover the whole area expose the color.

Type: string

Default:

"#ffffff"

Declared by:

xsession.windowManager.i3.config.colors.focused

A window which currently has the focus.

Type: submodule

Default:

{
  background = "#285577";
  border = "#4c7899";
  childBorder = "#285577";
  indicator = "#2e9ef4";
  text = "#ffffff";
}

Declared by:

xsession.windowManager.i3.config.colors.focusedInactive

A window which is the focused one of its container, but it does not have the focus at the moment.

Type: submodule

Default:

{
  background = "#5f676a";
  border = "#333333";
  childBorder = "#5f676a";
  indicator = "#484e50";
  text = "#ffffff";
}

Declared by:

xsession.windowManager.i3.config.colors.placeholder

Background and text color are used to draw placeholder window contents (when restoring layouts). Border and indicator are ignored.

Type: submodule

Default:

{
  background = "#0c0c0c";
  border = "#000000";
  childBorder = "#0c0c0c";
  indicator = "#000000";
  text = "#ffffff";
}

Declared by:

xsession.windowManager.i3.config.colors.unfocused

A window which is not focused.

Type: submodule

Default:

{
  background = "#222222";
  border = "#333333";
  childBorder = "#222222";
  indicator = "#292d2e";
  text = "#888888";
}

Declared by:

xsession.windowManager.i3.config.colors.urgent

A window which has its urgency hint activated.

Type: submodule

Default:

{
  background = "#900000";
  border = "#2f343a";
  childBorder = "#900000";
  indicator = "#900000";
  text = "#ffffff";
}

Declared by:

xsession.windowManager.i3.config.defaultWorkspace

The default workspace to show when i3 is launched. This must to correspond to the value of the keybinding of the default workspace.

Type: null or string

Default:

null

Example:

"workspace number 9"

Declared by:

xsession.windowManager.i3.config.floating

Floating window settings.

Type: submodule

Default:

{ }

Declared by:

xsession.windowManager.i3.config.floating.border

Floating windows border width.

Type: signed integer

Default:

2

Declared by:

xsession.windowManager.i3.config.floating.criteria

List of criteria for windows that should be opened in a floating mode.

Type: list of attribute set of (string or boolean)

Default:

[ ]

Example:

[
  {
    title = "Steam - Update News";
  }
  {
    class = "Pavucontrol";
  }
]

Declared by:

xsession.windowManager.i3.config.floating.modifier

Modifier key or keys that can be used to drag floating windows.

Type: string

Default:

"i3.config.modifier"

Example:

"Mod4"

Declared by:

xsession.windowManager.i3.config.floating.titlebar

Whether to show floating window titlebars.

Type: boolean

Default:

''
  true for state version ≥ 23.05
  config.gaps == null for state version < 23.05
''

Declared by:

xsession.windowManager.i3.config.focus

Focus related settings.

Type: submodule

Default:

{ }

Declared by:

xsession.windowManager.i3.config.focus.followMouse

Whether focus should follow the mouse.

Type: boolean

Default:

true

Declared by:

xsession.windowManager.i3.config.focus.forceWrapping

Whether to force focus wrapping in tabbed or stacked containers.

This option is deprecated, use focus.wrapping instead.

Type: boolean

Default:

false

Declared by:

xsession.windowManager.i3.config.focus.mouseWarping

Whether mouse cursor should be warped to the center of the window when switching focus to a window on a different output.

Type: boolean

Default:

true

Declared by:

xsession.windowManager.i3.config.focus.newWindow

This option modifies focus behavior on new window activation.

See https://i3wm.org/docs/userguide.html#focus_on_window_activation

Type: one of “smart”, “urgent”, “focus”, “none”

Default:

"smart"

Example:

"none"

Declared by:

xsession.windowManager.i3.config.focus.wrapping

Whether the window focus commands automatically wrap around the edge of containers.

See https://i3wm.org/docs/userguide.html#_focus_wrapping

Type: one of “yes”, “no”, “force”, “workspace”

Default:

if focus.forceWrapping then "force" else "yes"

Declared by:

xsession.windowManager.i3.config.fonts

Font configuration for window titles, nagbar…

Type: (list of string) or (submodule)

Default:

{ }

Example:

{
  names = [
    "DejaVu Sans Mono"
    "FontAwesome5Free"
  ];
  size = 11.0;
  style = "Bold Semi-Condensed";
}

Declared by:

xsession.windowManager.i3.config.fonts.names

List of font names list used for window titles. Only FreeType fonts are supported. The order here is important (e.g. icons font should go before the one used for text).

Type: list of string

Default:

[ "monospace" ]

Example:

[
  "FontAwesome"
  "Terminus"
]

xsession.windowManager.i3.config.fonts.size

The font size to use for window titles.

Type: floating point number or string

Default:

8.0

Example:

11.5

xsession.windowManager.i3.config.fonts.style

The font style to use for window titles.

Type: string

Default:

""

Example:

"Bold Semi-Condensed"

xsession.windowManager.i3.config.gaps

Gaps related settings.

Type: null or (submodule)

Default:

null

Declared by:

xsession.windowManager.i3.config.gaps.bottom

Bottom gaps value.

Type: null or signed integer

Default:

null

Example:

5

Declared by:

xsession.windowManager.i3.config.gaps.horizontal

Horizontal gaps value.

Type: null or signed integer

Default:

null

Example:

5

Declared by:

xsession.windowManager.i3.config.gaps.inner

Inner gaps value.

Type: null or signed integer

Default:

null

Example:

12

Declared by:

xsession.windowManager.i3.config.gaps.left

Left gaps value.

Type: null or signed integer

Default:

null

Example:

5

Declared by:

xsession.windowManager.i3.config.gaps.outer

Outer gaps value.

Type: null or signed integer

Default:

null

Example:

5

Declared by:

xsession.windowManager.i3.config.gaps.right

Right gaps value.

Type: null or signed integer

Default:

null

Example:

5

Declared by:

xsession.windowManager.i3.config.gaps.smartBorders

This option controls whether to disable container borders on workspace with a single container.

Type: one of “on”, “off”, “no_gaps”

Default:

"off"

Declared by:

xsession.windowManager.i3.config.gaps.smartGaps

This option controls whether to disable all gaps (outer and inner) on workspace with a single container.

Type: boolean or one of “on”, “off”, “inverse_outer”

Default:

"off"

Example:

"on"

Declared by:

xsession.windowManager.i3.config.gaps.top

Top gaps value.

Type: null or signed integer

Default:

null

Example:

5

Declared by:

xsession.windowManager.i3.config.gaps.vertical

Vertical gaps value.

Type: null or signed integer

Default:

null

Example:

5

Declared by:

xsession.windowManager.i3.config.keybindings

An attribute set that assigns a key press to an action using a key symbol. See https://i3wm.org/docs/userguide.html#keybindings.

Consider to use lib.mkOptionDefault function to extend or override default keybindings instead of specifying all of them from scratch.

Type: attribute set of (null or string)

Default:

"Default i3 keybindings."

Example:

let
  modifier = config.xsession.windowManager.i3.config.modifier;
in lib.mkOptionDefault {
  "${modifier}+Return" = "exec i3-sensible-terminal";
  "${modifier}+Shift+q" = "kill";
  "${modifier}+d" = "exec ${pkgs.dmenu}/bin/dmenu_run";
}

Declared by:

xsession.windowManager.i3.config.keycodebindings

An attribute set that assigns keypress to an action using key code. See https://i3wm.org/docs/userguide.html#keybindings.

Type: attribute set of (null or string)

Default:

{ }

Example:

{
  "214" = "exec /bin/script.sh";
}

Declared by:

xsession.windowManager.i3.config.menu

Default launcher to use.

Type: string

Default:

${pkgs.dmenu}/bin/dmenu_run

Example:

"bemenu-run"

Declared by:

xsession.windowManager.i3.config.modes

An attribute set that defines binding modes and keybindings inside them

Only basic keybinding is supported (bindsym keycomb action), for more advanced setup use ‘i3.extraConfig’.

Type: attribute set of attribute set of string

Default:

{
  resize = {
    Down = "resize grow height 10 px or 10 ppt";
    Escape = "mode default";
    Left = "resize shrink width 10 px or 10 ppt";
    Return = "mode default";
    Right = "resize grow width 10 px or 10 ppt";
    Up = "resize shrink height 10 px or 10 ppt";
  };
}

Declared by:

xsession.windowManager.i3.config.modifier

Modifier key that is used for all default keybindings.

Type: one of “Shift”, “Control”, “Mod1”, “Mod2”, “Mod3”, “Mod4”, “Mod5” or string

Default:

"Mod1"

Example:

"Mod4"

Declared by:

xsession.windowManager.i3.config.startup

Commands that should be executed at startup.

See https://i3wm.org/docs/userguide.html#_automatically_starting_applications_on_i3_startup.

Type: list of (submodule)

Default:

[ ]

Example:

[
{ command = "systemctl --user restart polybar"; always = true; notification = false; }
{ command = "dropbox start"; notification = false; }
{ command = "firefox"; }
];

Declared by:

xsession.windowManager.i3.config.startup.*.always

Whether to run command on each i3 restart.

Type: boolean

Default:

false

Declared by:

xsession.windowManager.i3.config.startup.*.command

Command that will be executed on startup.

Type: string

Declared by:

xsession.windowManager.i3.config.startup.*.notification

Whether to enable startup-notification support for the command. See --no-startup-id option description in the i3 user guide.

Type: boolean

Default:

true

Declared by:

xsession.windowManager.i3.config.startup.*.workspace

Launch application on a particular workspace. DEPRECATED: Use instead. See https://github.com/nix-community/home-manager/issues/265.

Type: null or string

Default:

null

Declared by:

xsession.windowManager.i3.config.terminal

Default terminal to run.

Type: string

Default:

"i3-sensible-terminal"

Example:

"alacritty"

Declared by:

xsession.windowManager.i3.config.window

Window titlebar and border settings.

Type: submodule

Default:

{ }

Declared by:

xsession.windowManager.i3.config.window.border

Window border width.

Type: signed integer

Default:

2

Declared by:

xsession.windowManager.i3.config.window.commands

List of commands that should be executed on specific windows. See for_window i3wm option documentation.

Type: list of (submodule)

Default:

[ ]

Example:

[
  {
    command = "border pixel 1";
    criteria = {
      class = "XTerm";
    };
  }
]

Declared by:

xsession.windowManager.i3.config.window.commands.*.command

i3wm command to execute.

Type: string

Example:

"border pixel 1"

Declared by:

xsession.windowManager.i3.config.window.commands.*.criteria

Criteria of the windows on which command should be executed.

A value of true is equivalent to using an empty criteria (which is different from an empty string criteria).

Type: attribute set of (string or boolean)

Default:

{ }

Example:

{
  title = "x200: ~/work";
  floating = true;
};

Declared by:

xsession.windowManager.i3.config.window.hideEdgeBorders

Hide window borders adjacent to the screen edges.

Type: one of “none”, “vertical”, “horizontal”, “both”, “smart”

Default:

"none"

Declared by:

xsession.windowManager.i3.config.window.titlebar

Whether to show window titlebars.

Type: boolean

Default:

''
  true for state version ≥ 23.05
  config.gaps == null for state version < 23.05
''

Declared by:

xsession.windowManager.i3.config.workspaceAutoBackAndForth

Assume you are on workspace “1: www” and switch to “2: IM” using mod+2 because somebody sent you a message. You don’t need to remember where you came from now, you can just press $mod+2 again to switch back to “1: www”.

Type: boolean

Default:

false

Example:

true

Declared by:

xsession.windowManager.i3.config.workspaceLayout

The mode in which new containers on workspace level will start.

Type: one of “default”, “stacking”, “tabbed”

Default:

"default"

Example:

"tabbed"

Declared by:

xsession.windowManager.i3.config.workspaceOutputAssign

Assign workspaces to outputs.

Type: list of (submodule)

Default:

[ ]

Declared by:

xsession.windowManager.i3.config.workspaceOutputAssign.*.output

Name(s) of the output(s) from i3-msg -t get_outputs .

Type: string or list of string

Default:

""

Example:

"eDP"

Declared by:

xsession.windowManager.i3.config.workspaceOutputAssign.*.workspace

Name of the workspace to assign.

Type: string

Default:

""

Example:

"Web"

Declared by:

xsession.windowManager.i3.extraConfig

Extra configuration lines to add to ~/.config/i3/config.

Type: strings concatenated with “\n”

Default:

""

Declared by:

xsession.windowManager.spectrwm.enable

Whether to enable Spectrwm window manager.

Type: boolean

Default:

false

Example:

true

Declared by:

xsession.windowManager.spectrwm.package

The spectrwm package to use. providing the spectrwm command

Type: package

Default:

pkgs.spectrwm

Declared by:

xsession.windowManager.spectrwm.bindings

Spectrwm keybindings.

Type: attribute set of string

Default:

{ }

Example:

{
  quit = "Mod+Shift+q";
  restart = "Mod+Shift+r";
  term = "Mod+Return";
}

Declared by:

xsession.windowManager.spectrwm.programs

Spectrwm programs variables.

Type: attribute set of string

Default:

{ }

Example:

{
  term = "alacritty";
  search = "dmenu -ip -p 'Window name/id:';
}

Declared by:

xsession.windowManager.spectrwm.quirks

Spectrwm quicks (custom window rules).

Type: attribute set of string

Default:

{ }

Example:

{
  Matplotlib = "FLOAT";
  Pavucontrol = "FLOAT";
}

Declared by:

xsession.windowManager.spectrwm.settings

Spectrwm settings.

Type: attribute set of (boolean or signed integer or string)

Default:

{ }

Example:

{
  focus_close = "next";
  focus_mode = "manual";
  modkey = "Mod4";
  workspace_limit = 5;
}

Declared by:

xsession.windowManager.spectrwm.unbindings

List of keybindings to disable from default Spectrwm configuration.

Type: list of string

Default:

[ ]

Example:

[
  "MOD+e"
  "MOD+f"
  "MOD+m"
  "MOD+s"
  "MOD+u"
  "MOD+t"
]

Declared by:

xsession.windowManager.xmonad.enable

Whether to enable xmonad window manager.

Type: boolean

Default:

false

Example:

true

Declared by:

xsession.windowManager.xmonad.enableContribAndExtras

Enable xmonad-{contrib,extras} in xmonad.

Type: boolean

Default:

false

Declared by:

xsession.windowManager.xmonad.buildScript

Build script for your xmonad configuration.

Type: null or absolute path

Default:

null

Example:

pkgs.writeText "build" ''
  #!/bin/sh

  # Enable -threaded
  ghc --make xmonad.hs -threaded -i -ilib -fforce-recomp -main-is main -v0 -O2 -o "$1"
''

Declared by:

xsession.windowManager.xmonad.config

The configuration file to be used for xmonad. This must be an absolute path or null in which case ~/.xmonad/xmonad.hs will not be managed by Home Manager.

If this option is set to a non-null value, recompilation of xmonad outside of Home Manager (e.g. via xmonad --recompile) will fail.

Type: null or absolute path

Default:

null

Example:

pkgs.writeText "xmonad.hs" ''
  import XMonad
  main = xmonad defaultConfig
      { terminal    = "urxvt"
      , modMask     = mod4Mask
      , borderWidth = 3
      }
''

Declared by:

xsession.windowManager.xmonad.extraPackages

Extra packages available to GHC when rebuilding xmonad. The value must be a function which receives the attribute set defined in haskellPackages as the sole argument.

Type: unspecified value

Default:

"self: []"

Example:

haskellPackages: [
  haskellPackages.xmonad-contrib
  haskellPackages.monad-logger
]

Declared by:

xsession.windowManager.xmonad.haskellPackages

The haskellPackages used to build xmonad and other packages. This can be used to change the GHC version used to build xmonad and the packages listed in extraPackages.

Type: unspecified value

Default:

pkgs.haskellPackages

Example:

pkgs.haskell.packages.ghc784

Declared by:

xsession.windowManager.xmonad.libFiles

Additional files that will be saved in ~/.xmonad/lib/ and included in the configuration build. The keys are the file names while the values are paths to the contents of the files.

Type: attribute set of absolute path

Default:

{ }

Example:

{
  "Tools.hs" = pkgs.writeText "Tools.hs" ''
     module Tools where
     screenshot = "scrot"
   '';
}

Declared by: