diff options
Diffstat (limited to 'nixos/modules/services/x11')
96 files changed, 754 insertions, 571 deletions
diff --git a/nixos/modules/services/x11/clight.nix b/nixos/modules/services/x11/clight.nix index d994a658cbaa5..8a17b7e801e54 100644 --- a/nixos/modules/services/x11/clight.nix +++ b/nixos/modules/services/x11/clight.nix @@ -31,7 +31,7 @@ in { enable = mkOption { type = types.bool; default = false; - description = '' + description = lib.mdDoc '' Whether to enable clight or not. ''; }; @@ -40,17 +40,17 @@ in { day = mkOption { type = types.int; default = 5500; - description = '' + description = lib.mdDoc '' Colour temperature to use during the day, between - <literal>1000</literal> and <literal>25000</literal> K. + `1000` and `25000` K. ''; }; night = mkOption { type = types.int; default = 3700; - description = '' + description = lib.mdDoc '' Colour temperature to use at night, between - <literal>1000</literal> and <literal>25000</literal> K. + `1000` and `25000` K. ''; }; }; @@ -62,9 +62,9 @@ in { type = with types; attrsOf (nullOr (either collectionTypes (attrsOf collectionTypes))); default = {}; example = { captures = 20; gamma_long_transition = true; ac_capture_timeouts = [ 120 300 60 ]; }; - description = '' + description = lib.mdDoc '' Additional configuration to extend clight.conf. See - <link xlink:href="https://github.com/FedeDP/Clight/blob/master/Extra/clight.conf"/> for a + <https://github.com/FedeDP/Clight/blob/master/Extra/clight.conf> for a sample configuration file. ''; }; diff --git a/nixos/modules/services/x11/colord.nix b/nixos/modules/services/x11/colord.nix index 31ccee6aa33f4..cb7b9096e5db6 100644 --- a/nixos/modules/services/x11/colord.nix +++ b/nixos/modules/services/x11/colord.nix @@ -11,7 +11,7 @@ in { options = { services.colord = { - enable = mkEnableOption "colord, the color management daemon"; + enable = mkEnableOption (lib.mdDoc "colord, the color management daemon"); }; }; diff --git a/nixos/modules/services/x11/desktop-managers/cde.nix b/nixos/modules/services/x11/desktop-managers/cde.nix index 6c7105729cfd4..e0b4fb0e7bfb2 100644 --- a/nixos/modules/services/x11/desktop-managers/cde.nix +++ b/nixos/modules/services/x11/desktop-managers/cde.nix @@ -7,7 +7,7 @@ let cfg = xcfg.desktopManager.cde; in { options.services.xserver.desktopManager.cde = { - enable = mkEnableOption "Common Desktop Environment"; + enable = mkEnableOption (lib.mdDoc "Common Desktop Environment"); extraPackages = mkOption { type = with types; listOf package; @@ -19,7 +19,7 @@ in { xclock bitmap xlsfonts xfd xrefresh xload xwininfo xdpyinfo xwd xwud ] ''; - description = '' + description = lib.mdDoc '' Extra packages to be installed system wide. ''; }; diff --git a/nixos/modules/services/x11/desktop-managers/cinnamon.nix b/nixos/modules/services/x11/desktop-managers/cinnamon.nix index 705dbec5e7428..3d79a3b8513b8 100644 --- a/nixos/modules/services/x11/desktop-managers/cinnamon.nix +++ b/nixos/modules/services/x11/desktop-managers/cinnamon.nix @@ -17,17 +17,17 @@ in { options = { services.cinnamon = { - apps.enable = mkEnableOption "Cinnamon default applications"; + apps.enable = mkEnableOption (lib.mdDoc "Cinnamon default applications"); }; services.xserver.desktopManager.cinnamon = { - enable = mkEnableOption "the cinnamon desktop manager"; + enable = mkEnableOption (lib.mdDoc "the cinnamon desktop manager"); sessionPath = mkOption { default = []; type = types.listOf types.package; example = literalExpression "[ pkgs.gnome.gpaste ]"; - description = '' + description = lib.mdDoc '' Additional list of packages to be added to the session search path. Useful for GSettings-conditional autostart. @@ -38,13 +38,13 @@ in extraGSettingsOverrides = mkOption { default = ""; type = types.lines; - description = "Additional gsettings overrides."; + description = lib.mdDoc "Additional gsettings overrides."; }; extraGSettingsOverridePackages = mkOption { default = []; type = types.listOf types.path; - description = "List of packages for which gsettings are overridden."; + description = lib.mdDoc "List of packages for which gsettings are overridden."; }; }; @@ -52,19 +52,24 @@ in default = []; example = literalExpression "[ pkgs.cinnamon.blueberry ]"; type = types.listOf types.package; - description = "Which packages cinnamon should exclude from the default environment"; + description = lib.mdDoc "Which packages cinnamon should exclude from the default environment"; }; }; config = mkMerge [ - (mkIf (cfg.enable && config.services.xserver.displayManager.lightdm.enable && config.services.xserver.displayManager.lightdm.greeters.gtk.enable) { - services.xserver.displayManager.lightdm.greeters.gtk.extraConfig = mkDefault (builtins.readFile "${pkgs.cinnamon.mint-artwork}/etc/lightdm/lightdm-gtk-greeter.conf.d/99_linuxmint.conf"); - }) - (mkIf cfg.enable { services.xserver.displayManager.sessionPackages = [ pkgs.cinnamon.cinnamon-common ]; + services.xserver.displayManager.lightdm.greeters.slick = { + enable = mkDefault true; + + # Taken from mint-artwork.gschema.override + theme.name = mkDefault "Mint-X"; + theme.package = mkDefault pkgs.cinnamon.mint-themes; + iconTheme.name = mkDefault "Mint-X-Dark"; + iconTheme.package = mkDefault pkgs.cinnamon.mint-x-icons; + }; services.xserver.displayManager.sessionCommands = '' if test "$XDG_CURRENT_DESKTOP" = "Cinnamon"; then true @@ -82,6 +87,7 @@ in ''; # Default services + services.blueman.enable = mkDefault true; hardware.bluetooth.enable = mkDefault true; hardware.pulseaudio.enable = mkDefault true; security.polkit.enable = true; @@ -91,7 +97,7 @@ in cinnamon-common cinnamon-screensaver nemo - xapps + xapp ]; services.cinnamon.apps.enable = mkDefault true; services.gnome.glib-networking.enable = true; @@ -199,19 +205,19 @@ in environment.systemPackages = with pkgs // pkgs.gnome // pkgs.cinnamon; utils.removePackagesByName [ # cinnamon team apps bulky - blueberry warpinator - # cinnamon xapps + # cinnamon xapp xviewer xreader - xed + xed-editor xplayer pix # external apps shipped with linux-mint hexchat gnome-calculator + gnome-screenshot ] config.environment.cinnamon.excludePackages; }) ]; diff --git a/nixos/modules/services/x11/desktop-managers/default.nix b/nixos/modules/services/x11/desktop-managers/default.nix index ffdf7e9a86eb5..510561246a2b7 100644 --- a/nixos/modules/services/x11/desktop-managers/default.nix +++ b/nixos/modules/services/x11/desktop-managers/default.nix @@ -33,25 +33,25 @@ in type = types.enum [ "center" "fill" "max" "scale" "tile" ]; default = "scale"; example = "fill"; - description = '' - The file <filename>~/.background-image</filename> is used as a background image. + description = lib.mdDoc '' + The file {file}`~/.background-image` is used as a background image. This option specifies the placement of this image onto your desktop. Possible values: - <literal>center</literal>: Center the image on the background. If it is too small, it will be surrounded by a black border. - <literal>fill</literal>: Like <literal>scale</literal>, but preserves aspect ratio by zooming the image until it fits. Either a horizontal or a vertical part of the image will be cut off. - <literal>max</literal>: Like <literal>fill</literal>, but scale the image to the maximum size that fits the screen with black borders on one side. - <literal>scale</literal>: Fit the file into the background without repeating it, cutting off stuff or using borders. But the aspect ratio is not preserved either. - <literal>tile</literal>: Tile (repeat) the image in case it is too small for the screen. + `center`: Center the image on the background. If it is too small, it will be surrounded by a black border. + `fill`: Like `scale`, but preserves aspect ratio by zooming the image until it fits. Either a horizontal or a vertical part of the image will be cut off. + `max`: Like `fill`, but scale the image to the maximum size that fits the screen with black borders on one side. + `scale`: Fit the file into the background without repeating it, cutting off stuff or using borders. But the aspect ratio is not preserved either. + `tile`: Tile (repeat) the image in case it is too small for the screen. ''; }; combineScreens = mkOption { type = types.bool; default = false; - description = '' - When set to <literal>true</literal> the wallpaper will stretch across all screens. - When set to <literal>false</literal> the wallpaper is duplicated to all screens. + description = lib.mdDoc '' + When set to `true` the wallpaper will stretch across all screens. + When set to `false` the wallpaper is duplicated to all screens. ''; }; }; @@ -64,10 +64,10 @@ in bgSupport = true; start = "..."; }; - description = '' + description = lib.mdDoc '' Internal option used to add some common line to desktop manager scripts before forwarding the value to the - <varname>displayManager</varname>. + `displayManager`. ''; apply = map (d: d // { manage = "desktop"; @@ -86,8 +86,8 @@ in type = types.nullOr types.str; default = null; example = "none"; - description = '' - <emphasis role="strong">Deprecated</emphasis>, please use <xref linkend="opt-services.xserver.displayManager.defaultSession"/> instead. + description = lib.mdDoc '' + **Deprecated**, please use [](#opt-services.xserver.displayManager.defaultSession) instead. Default desktop manager loaded if none have been chosen. ''; diff --git a/nixos/modules/services/x11/desktop-managers/enlightenment.nix b/nixos/modules/services/x11/desktop-managers/enlightenment.nix index 991616bd192d5..2de5d845d68b4 100644 --- a/nixos/modules/services/x11/desktop-managers/enlightenment.nix +++ b/nixos/modules/services/x11/desktop-managers/enlightenment.nix @@ -29,7 +29,7 @@ in services.xserver.desktopManager.enlightenment.enable = mkOption { type = types.bool; default = false; - description = "Enable the Enlightenment desktop environment."; + description = lib.mdDoc "Enable the Enlightenment desktop environment."; }; }; diff --git a/nixos/modules/services/x11/desktop-managers/gnome.nix b/nixos/modules/services/x11/desktop-managers/gnome.nix index ff9d08ea99701..7bb7ef27ed572 100644 --- a/nixos/modules/services/x11/desktop-managers/gnome.nix +++ b/nixos/modules/services/x11/desktop-managers/gnome.nix @@ -165,25 +165,25 @@ in options = { services.gnome = { - core-os-services.enable = mkEnableOption "essential services for GNOME3"; - core-shell.enable = mkEnableOption "GNOME Shell services"; - core-utilities.enable = mkEnableOption "GNOME core utilities"; - core-developer-tools.enable = mkEnableOption "GNOME core developer tools"; - games.enable = mkEnableOption "GNOME games"; + core-os-services.enable = mkEnableOption (lib.mdDoc "essential services for GNOME3"); + core-shell.enable = mkEnableOption (lib.mdDoc "GNOME Shell services"); + core-utilities.enable = mkEnableOption (lib.mdDoc "GNOME core utilities"); + core-developer-tools.enable = mkEnableOption (lib.mdDoc "GNOME core developer tools"); + games.enable = mkEnableOption (lib.mdDoc "GNOME games"); }; services.xserver.desktopManager.gnome = { enable = mkOption { type = types.bool; default = false; - description = "Enable GNOME desktop manager."; + description = lib.mdDoc "Enable GNOME desktop manager."; }; sessionPath = mkOption { default = []; type = types.listOf types.package; example = literalExpression "[ pkgs.gnome.gpaste ]"; - description = '' + description = lib.mdDoc '' Additional list of packages to be added to the session search path. Useful for GNOME Shell extensions or GSettings-conditional autostart. @@ -201,44 +201,44 @@ in favorite-apps=[ 'firefox.desktop', 'org.gnome.Calendar.desktop' ] ''' ''; - description = "List of desktop files to put as favorite apps into gnome-shell. These need to be installed somehow globally."; + description = lib.mdDoc "List of desktop files to put as favorite apps into gnome-shell. These need to be installed somehow globally."; }; extraGSettingsOverrides = mkOption { default = ""; type = types.lines; - description = "Additional gsettings overrides."; + description = lib.mdDoc "Additional gsettings overrides."; }; extraGSettingsOverridePackages = mkOption { default = []; type = types.listOf types.path; - description = "List of packages for which gsettings are overridden."; + description = lib.mdDoc "List of packages for which gsettings are overridden."; }; - debug = mkEnableOption "gnome-session debug messages"; + debug = mkEnableOption (lib.mdDoc "gnome-session debug messages"); flashback = { - enableMetacity = mkEnableOption "the standard GNOME Flashback session with Metacity"; + enableMetacity = mkEnableOption (lib.mdDoc "the standard GNOME Flashback session with Metacity"); customSessions = mkOption { type = types.listOf (types.submodule { options = { wmName = mkOption { type = types.strMatching "[a-zA-Z0-9_-]+"; - description = "A unique identifier for the window manager."; + description = lib.mdDoc "A unique identifier for the window manager."; example = "xmonad"; }; wmLabel = mkOption { type = types.str; - description = "The name of the window manager to show in the session chooser."; + description = lib.mdDoc "The name of the window manager to show in the session chooser."; example = "XMonad"; }; wmCommand = mkOption { type = types.str; - description = "The executable of the window manager to use."; + description = lib.mdDoc "The executable of the window manager to use."; example = literalExpression ''"''${pkgs.haskellPackages.xmonad}/bin/xmonad"''; }; @@ -246,22 +246,22 @@ in type = types.bool; default = true; example = false; - description = "Whether to enable the GNOME panel in this session."; + description = lib.mdDoc "Whether to enable the GNOME panel in this session."; }; }; }); default = []; - description = "Other GNOME Flashback sessions to enable."; + description = lib.mdDoc "Other GNOME Flashback sessions to enable."; }; panelModulePackages = mkOption { default = [ pkgs.gnome.gnome-applets ]; defaultText = literalExpression "[ pkgs.gnome.gnome-applets ]"; type = types.listOf types.path; - description = '' - Packages containing modules that should be made available to <literal>gnome-panel</literal> (usually for applets). + description = lib.mdDoc '' + Packages containing modules that should be made available to `gnome-panel` (usually for applets). - If you're packaging something to use here, please install the modules in <literal>$out/lib/gnome-panel/modules</literal>. + If you're packaging something to use here, please install the modules in `$out/lib/gnome-panel/modules`. ''; }; }; @@ -271,7 +271,7 @@ in default = []; example = literalExpression "[ pkgs.gnome.totem ]"; type = types.listOf types.package; - description = "Which packages gnome should exclude from the default environment"; + description = lib.mdDoc "Which packages gnome should exclude from the default environment"; }; }; @@ -361,7 +361,8 @@ in services.gnome.tracker-miners.enable = mkDefault true; services.gnome.tracker.enable = mkDefault true; services.hardware.bolt.enable = mkDefault true; - services.packagekit.enable = mkDefault true; + # TODO: Enable once #177946 is resolved + # services.packagekit.enable = mkDefault true; services.udisks2.enable = true; services.upower.enable = config.powerManagement.enable; services.xserver.libinput.enable = mkDefault true; # for controlling touchpad settings via gnome control center diff --git a/nixos/modules/services/x11/desktop-managers/kodi.nix b/nixos/modules/services/x11/desktop-managers/kodi.nix index b853c94d6fd47..43904cd00e840 100644 --- a/nixos/modules/services/x11/desktop-managers/kodi.nix +++ b/nixos/modules/services/x11/desktop-managers/kodi.nix @@ -12,7 +12,7 @@ in enable = mkOption { type = types.bool; default = false; - description = "Enable the kodi multimedia center."; + description = lib.mdDoc "Enable the kodi multimedia center."; }; package = mkOption { @@ -20,7 +20,7 @@ in default = pkgs.kodi; defaultText = literalExpression "pkgs.kodi"; example = literalExpression "pkgs.kodi.withPackages (p: with p; [ jellyfin pvr-iptvsimple vfs-sftp ])"; - description = '' + description = lib.mdDoc '' Package that should be used for Kodi. ''; }; diff --git a/nixos/modules/services/x11/desktop-managers/lumina.nix b/nixos/modules/services/x11/desktop-managers/lumina.nix index faa83b8bc54a5..7b694106bf7ee 100644 --- a/nixos/modules/services/x11/desktop-managers/lumina.nix +++ b/nixos/modules/services/x11/desktop-managers/lumina.nix @@ -19,7 +19,7 @@ in services.xserver.desktopManager.lumina.enable = mkOption { type = types.bool; default = false; - description = "Enable the Lumina desktop manager"; + description = lib.mdDoc "Enable the Lumina desktop manager"; }; }; diff --git a/nixos/modules/services/x11/desktop-managers/lxqt.nix b/nixos/modules/services/x11/desktop-managers/lxqt.nix index 2aa9e5ab331de..b69da41c9fc9c 100644 --- a/nixos/modules/services/x11/desktop-managers/lxqt.nix +++ b/nixos/modules/services/x11/desktop-managers/lxqt.nix @@ -18,14 +18,14 @@ in services.xserver.desktopManager.lxqt.enable = mkOption { type = types.bool; default = false; - description = "Enable the LXQt desktop manager"; + description = lib.mdDoc "Enable the LXQt desktop manager"; }; environment.lxqt.excludePackages = mkOption { default = []; example = literalExpression "[ pkgs.lxqt.qterminal ]"; type = types.listOf types.package; - description = "Which LXQt packages to exclude from the default environment"; + description = lib.mdDoc "Which LXQt packages to exclude from the default environment"; }; }; diff --git a/nixos/modules/services/x11/desktop-managers/mate.nix b/nixos/modules/services/x11/desktop-managers/mate.nix index b63510475ec5f..c93f120bed7f5 100644 --- a/nixos/modules/services/x11/desktop-managers/mate.nix +++ b/nixos/modules/services/x11/desktop-managers/mate.nix @@ -16,17 +16,17 @@ in enable = mkOption { type = types.bool; default = false; - description = "Enable the MATE desktop environment"; + description = lib.mdDoc "Enable the MATE desktop environment"; }; - debug = mkEnableOption "mate-session debug messages"; + debug = mkEnableOption (lib.mdDoc "mate-session debug messages"); }; environment.mate.excludePackages = mkOption { default = []; example = literalExpression "[ pkgs.mate.mate-terminal pkgs.mate.pluma ]"; type = types.listOf types.package; - description = "Which MATE packages to exclude from the default environment"; + description = lib.mdDoc "Which MATE packages to exclude from the default environment"; }; }; diff --git a/nixos/modules/services/x11/desktop-managers/none.nix b/nixos/modules/services/x11/desktop-managers/none.nix index b5e498b67a018..074b729cc3f35 100644 --- a/nixos/modules/services/x11/desktop-managers/none.nix +++ b/nixos/modules/services/x11/desktop-managers/none.nix @@ -8,16 +8,16 @@ in services.xserver.desktopManager.runXdgAutostartIfNone = mkOption { type = types.bool; default = false; - description = '' + description = lib.mdDoc '' Whether to run XDG autostart files for sessions without a desktop manager (with only a window manager), these sessions usually don't handle XDG autostart files by default. - Some services like <option>i18n.inputMethod</option> and - <option>service.earlyoom</option> use XDG autostart files to start. - If this option is not set to <literal>true</literal> and you are using + Some services like {option}`i18n.inputMethod` and + {option}`service.earlyoom` use XDG autostart files to start. + If this option is not set to `true` and you are using a window manager without a desktop manager, you need to manually start - them or running <package>dex</package> somewhere. + them or running `dex` somewhere. ''; }; }; diff --git a/nixos/modules/services/x11/desktop-managers/pantheon.nix b/nixos/modules/services/x11/desktop-managers/pantheon.nix index d04e565f7d310..90a8787ed227e 100644 --- a/nixos/modules/services/x11/desktop-managers/pantheon.nix +++ b/nixos/modules/services/x11/desktop-managers/pantheon.nix @@ -26,10 +26,10 @@ in services.pantheon = { contractor = { - enable = mkEnableOption "contractor, a desktop-wide extension service used by Pantheon"; + enable = mkEnableOption (lib.mdDoc "contractor, a desktop-wide extension service used by Pantheon"); }; - apps.enable = mkEnableOption "Pantheon default applications"; + apps.enable = mkEnableOption (lib.mdDoc "Pantheon default applications"); }; @@ -37,14 +37,14 @@ in enable = mkOption { type = types.bool; default = false; - description = "Enable the pantheon desktop manager"; + description = lib.mdDoc "Enable the pantheon desktop manager"; }; sessionPath = mkOption { default = []; type = types.listOf types.package; example = literalExpression "[ pkgs.gnome.gpaste ]"; - description = '' + description = lib.mdDoc '' Additional list of packages to be added to the session search path. Useful for GSettings-conditional autostart. @@ -55,28 +55,28 @@ in extraWingpanelIndicators = mkOption { default = null; type = with types; nullOr (listOf package); - description = "Indicators to add to Wingpanel."; + description = lib.mdDoc "Indicators to add to Wingpanel."; }; extraSwitchboardPlugs = mkOption { default = null; type = with types; nullOr (listOf package); - description = "Plugs to add to Switchboard."; + description = lib.mdDoc "Plugs to add to Switchboard."; }; extraGSettingsOverrides = mkOption { default = ""; type = types.lines; - description = "Additional gsettings overrides."; + description = lib.mdDoc "Additional gsettings overrides."; }; extraGSettingsOverridePackages = mkOption { default = []; type = types.listOf types.path; - description = "List of packages for which gsettings are overridden."; + description = lib.mdDoc "List of packages for which gsettings are overridden."; }; - debug = mkEnableOption "gnome-session debug messages"; + debug = mkEnableOption (lib.mdDoc "gnome-session debug messages"); }; @@ -84,7 +84,7 @@ in default = []; example = literalExpression "[ pkgs.pantheon.elementary-camera ]"; type = types.listOf types.package; - description = "Which packages pantheon should exclude from the default environment"; + description = lib.mdDoc "Which packages pantheon should exclude from the default environment"; }; }; @@ -134,7 +134,8 @@ in services.bamf.enable = true; services.colord.enable = mkDefault true; services.fwupd.enable = mkDefault true; - services.packagekit.enable = mkDefault true; + # TODO: Enable once #177946 is resolved + # services.packagekit.enable = mkDefault true; services.power-profiles-daemon.enable = mkDefault true; services.touchegg.enable = mkDefault true; services.touchegg.package = pkgs.pantheon.touchegg; diff --git a/nixos/modules/services/x11/desktop-managers/phosh.nix b/nixos/modules/services/x11/desktop-managers/phosh.nix index 5efe645d8aa24..e889c0e34e7d8 100644 --- a/nixos/modules/services/x11/desktop-managers/phosh.nix +++ b/nixos/modules/services/x11/desktop-managers/phosh.nix @@ -24,7 +24,7 @@ let phocConfigType = types.submodule { options = { xwayland = mkOption { - description = '' + description = lib.mdDoc '' Whether to enable XWayland support. To start XWayland immediately, use `immediate`. @@ -33,14 +33,14 @@ let default = "false"; }; cursorTheme = mkOption { - description = '' + description = lib.mdDoc '' Cursor theme to use in Phosh. ''; type = types.str; default = "default"; }; outputs = mkOption { - description = '' + description = lib.mdDoc '' Output configurations. ''; type = types.attrsOf phocOutputType; @@ -56,7 +56,7 @@ let phocOutputType = types.submodule { options = { modeline = mkOption { - description = '' + description = lib.mdDoc '' One or more modelines. ''; type = types.either types.str (types.listOf types.str); @@ -67,7 +67,7 @@ let ]; }; mode = mkOption { - description = '' + description = lib.mdDoc '' Default video mode. ''; type = types.nullOr types.str; @@ -75,7 +75,7 @@ let example = "768x1024"; }; scale = mkOption { - description = '' + description = lib.mdDoc '' Display scaling factor. ''; type = types.nullOr ( @@ -89,7 +89,7 @@ let example = 2; }; rotate = mkOption { - description = '' + description = lib.mdDoc '' Screen transformation. ''; type = types.enum [ @@ -132,7 +132,7 @@ in enable = mkOption { type = types.bool; default = false; - description = "Enable the Phone Shell."; + description = lib.mdDoc "Enable the Phone Shell."; }; package = mkOption { @@ -140,25 +140,25 @@ in default = pkgs.phosh; defaultText = literalExpression "pkgs.phosh"; example = literalExpression "pkgs.phosh"; - description = '' + description = lib.mdDoc '' Package that should be used for Phosh. ''; }; user = mkOption { - description = "The user to run the Phosh service."; + description = lib.mdDoc "The user to run the Phosh service."; type = types.str; example = "alice"; }; group = mkOption { - description = "The group to run the Phosh service."; + description = lib.mdDoc "The group to run the Phosh service."; type = types.str; example = "users"; }; phocConfig = mkOption { - description = '' + description = lib.mdDoc '' Configurations for the Phoc compositor. ''; type = types.oneOf [ types.lines types.path phocConfigType ]; diff --git a/nixos/modules/services/x11/desktop-managers/plasma5.nix b/nixos/modules/services/x11/desktop-managers/plasma5.nix index 59006a26cfccc..2c4b0b8f3ba35 100644 --- a/nixos/modules/services/x11/desktop-managers/plasma5.nix +++ b/nixos/modules/services/x11/desktop-managers/plasma5.nix @@ -157,23 +157,22 @@ in enable = mkOption { type = types.bool; default = false; - description = "Enable the Plasma 5 (KDE 5) desktop environment."; + description = lib.mdDoc "Enable the Plasma 5 (KDE 5) desktop environment."; }; phononBackend = mkOption { type = types.enum [ "gstreamer" "vlc" ]; default = "gstreamer"; example = "vlc"; - description = "Phonon audio backend to install."; + description = lib.mdDoc "Phonon audio backend to install."; }; supportDDC = mkOption { type = types.bool; default = false; - description = '' + description = lib.mdDoc '' Support setting monitor brightness via DDC. - </para> - <para> + This is not needed for controlling brightness of the internal monitor of a laptop and as it is considered experimental by upstream, it is disabled by default. @@ -183,17 +182,17 @@ in useQtScaling = mkOption { type = types.bool; default = false; - description = "Enable HiDPI scaling in Qt."; + description = lib.mdDoc "Enable HiDPI scaling in Qt."; }; runUsingSystemd = mkOption { - description = "Use systemd to manage the Plasma session"; + description = lib.mdDoc "Use systemd to manage the Plasma session"; type = types.bool; - default = false; + default = true; }; excludePackages = mkOption { - description = "List of default packages to exclude from the configuration"; + description = lib.mdDoc "List of default packages to exclude from the configuration"; type = types.listOf types.package; default = []; example = literalExpression "[ pkgs.plasma5Packages.oxygen ]"; @@ -216,7 +215,7 @@ in mobile.enable = mkOption { type = types.bool; default = false; - description = '' + description = lib.mdDoc '' Enable support for running the Plasma Mobile shell. ''; }; @@ -224,7 +223,7 @@ in mobile.installRecommendedSoftware = mkOption { type = types.bool; default = true; - description = '' + description = lib.mdDoc '' Installs software recommended for use with Plasma Mobile, but which is not strictly required for Plasma Mobile to run. ''; @@ -354,6 +353,7 @@ in plasma-browser-integration konsole oxygen + (lib.getBin qttools) # Expose qdbus in PATH ]; in requiredPackages @@ -399,9 +399,10 @@ in services.accounts-daemon.enable = true; # when changing an account picture the accounts-daemon reads a temporary file containing the image which systemsettings5 may place under /tmp systemd.services.accounts-daemon.serviceConfig.PrivateTmp = false; + services.power-profiles-daemon.enable = mkDefault true; + services.system-config-printer.enable = mkIf config.services.printing.enable (mkDefault true); services.udisks2.enable = true; services.upower.enable = config.powerManagement.enable; - services.system-config-printer.enable = mkIf config.services.printing.enable (mkDefault true); services.xserver.libinput.enable = mkDefault true; # Extra UDEV rules used by Solid diff --git a/nixos/modules/services/x11/desktop-managers/retroarch.nix b/nixos/modules/services/x11/desktop-managers/retroarch.nix index d471673d45217..5552f37612a29 100644 --- a/nixos/modules/services/x11/desktop-managers/retroarch.nix +++ b/nixos/modules/services/x11/desktop-managers/retroarch.nix @@ -6,21 +6,21 @@ let cfg = config.services.xserver.desktopManager.retroarch; in { options.services.xserver.desktopManager.retroarch = { - enable = mkEnableOption "RetroArch"; + enable = mkEnableOption (lib.mdDoc "RetroArch"); package = mkOption { type = types.package; default = pkgs.retroarch; defaultText = literalExpression "pkgs.retroarch"; example = literalExpression "pkgs.retroarch-full"; - description = "RetroArch package to use."; + description = lib.mdDoc "RetroArch package to use."; }; extraArgs = mkOption { type = types.listOf types.str; default = [ ]; example = [ "--verbose" "--host" ]; - description = "Extra arguments to pass to RetroArch."; + description = lib.mdDoc "Extra arguments to pass to RetroArch."; }; }; diff --git a/nixos/modules/services/x11/desktop-managers/surf-display.nix b/nixos/modules/services/x11/desktop-managers/surf-display.nix index 4b5a04f988ba9..38ebb9d02b4ac 100644 --- a/nixos/modules/services/x11/desktop-managers/surf-display.nix +++ b/nixos/modules/services/x11/desktop-managers/surf-display.nix @@ -45,21 +45,21 @@ let in { options = { services.xserver.desktopManager.surf-display = { - enable = mkEnableOption "surf-display as a kiosk browser session"; + enable = mkEnableOption (lib.mdDoc "surf-display as a kiosk browser session"); defaultWwwUri = mkOption { type = types.str; default = "${pkgs.surf-display}/share/surf-display/empty-page.html"; defaultText = literalExpression ''"''${pkgs.surf-display}/share/surf-display/empty-page.html"''; example = "https://www.example.com/"; - description = "Default URI to display."; + description = lib.mdDoc "Default URI to display."; }; inactivityInterval = mkOption { type = types.int; default = 300; example = 0; - description = '' + description = lib.mdDoc '' Setting for internal inactivity timer to restart surf-display if the user goes inactive/idle to get a fresh session for the next user of the kiosk. @@ -72,18 +72,18 @@ in { screensaverSettings = mkOption { type = types.separatedString " "; default = ""; - description = '' - Screensaver settings, see <literal>man 1 xset</literal> for possible options. + description = lib.mdDoc '' + Screensaver settings, see `man 1 xset` for possible options. ''; }; pointerButtonMap = mkOption { type = types.str; default = "1 0 0 4 5 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0"; - description = '' + description = lib.mdDoc '' Disable right and middle pointer device click in browser sessions while keeping scrolling wheels' functionality intact. See pointer - subcommand on <literal>man xmodmap</literal> for details. + subcommand on `man xmodmap` for details. ''; }; @@ -91,7 +91,7 @@ in { type = types.str; default = "yes"; example = "no"; - description = "Hide idle mouse pointer."; + description = lib.mdDoc "Hide idle mouse pointer."; }; extraConfig = mkOption { @@ -111,8 +111,8 @@ in { DISPLAYS['display-host-3']="www_uri=https://www.displayserver.comany.net/display-4/index.html"|res=1280x1024" DISPLAYS['display-host-local-file']="www_uri=file:///usr/share/doc/surf-display/empty-page.html" ''; - description = '' - Extra configuration options to append to <literal>/etc/default/surf-display</literal>. + description = lib.mdDoc '' + Extra configuration options to append to `/etc/default/surf-display`. ''; }; }; diff --git a/nixos/modules/services/x11/desktop-managers/xfce.nix b/nixos/modules/services/x11/desktop-managers/xfce.nix index 3a468b550627f..eee1f63ebdccc 100644 --- a/nixos/modules/services/x11/desktop-managers/xfce.nix +++ b/nixos/modules/services/x11/desktop-managers/xfce.nix @@ -48,25 +48,25 @@ in enable = mkOption { type = types.bool; default = false; - description = "Enable the Xfce desktop environment."; + description = lib.mdDoc "Enable the Xfce desktop environment."; }; noDesktop = mkOption { type = types.bool; default = false; - description = "Don't install XFCE desktop components (xfdesktop and panel)."; + description = lib.mdDoc "Don't install XFCE desktop components (xfdesktop and panel)."; }; enableXfwm = mkOption { type = types.bool; default = true; - description = "Enable the XFWM (default) window manager."; + description = lib.mdDoc "Enable the XFWM (default) window manager."; }; enableScreensaver = mkOption { type = types.bool; default = true; - description = "Enable the XFCE screensaver."; + description = lib.mdDoc "Enable the XFCE screensaver."; }; }; }; diff --git a/nixos/modules/services/x11/desktop-managers/xterm.nix b/nixos/modules/services/x11/desktop-managers/xterm.nix index 3424ee1b0e113..2b439effabe52 100644 --- a/nixos/modules/services/x11/desktop-managers/xterm.nix +++ b/nixos/modules/services/x11/desktop-managers/xterm.nix @@ -16,7 +16,7 @@ in type = types.bool; default = versionOlder config.system.stateVersion "19.09" && xSessionEnabled; defaultText = literalExpression ''versionOlder config.system.stateVersion "19.09" && config.services.xserver.enable;''; - description = "Enable a xterm terminal as a desktop manager."; + description = lib.mdDoc "Enable a xterm terminal as a desktop manager."; }; }; diff --git a/nixos/modules/services/x11/display-managers/default.nix b/nixos/modules/services/x11/display-managers/default.nix index a5db3dd5dd453..995ecd231c437 100644 --- a/nixos/modules/services/x11/display-managers/default.nix +++ b/nixos/modules/services/x11/display-managers/default.nix @@ -24,7 +24,7 @@ let Xft.lcdfilter: lcd${fontconfig.subpixel.lcdfilter} Xft.hinting: ${if fontconfig.hinting.enable then "1" else "0"} Xft.autohint: ${if fontconfig.hinting.autohint then "1" else "0"} - Xft.hintstyle: hintslight + Xft.hintstyle: ${fontconfig.hinting.style} ''; # file provided by services.xserver.displayManager.sessionData.wrapper @@ -35,6 +35,10 @@ let # Shared environment setup for graphical sessions. . /etc/profile + if test -f ~/.profile; then + source ~/.profile + fi + cd "$HOME" # Allow the user to execute commands at the beginning of the X session. @@ -149,25 +153,25 @@ in internal = true; default = "${xorg.xauth}/bin/xauth"; defaultText = literalExpression ''"''${pkgs.xorg.xauth}/bin/xauth"''; - description = "Path to the <command>xauth</command> program used by display managers."; + description = lib.mdDoc "Path to the {command}`xauth` program used by display managers."; }; xserverBin = mkOption { type = types.path; - description = "Path to the X server used by display managers."; + description = lib.mdDoc "Path to the X server used by display managers."; }; xserverArgs = mkOption { type = types.listOf types.str; default = []; example = [ "-ac" "-logverbose" "-verbose" "-nolisten tcp" ]; - description = "List of arguments for the X server."; + description = lib.mdDoc "List of arguments for the X server."; }; setupCommands = mkOption { type = types.lines; default = ""; - description = '' + description = lib.mdDoc '' Shell commands executed just after the X server has started. This option is only effective for display managers for which this feature @@ -182,7 +186,7 @@ in '' xmessage "Hello World!" & ''; - description = '' + description = lib.mdDoc '' Shell commands executed just before the window or desktop manager is started. These commands are not currently sourced for Wayland sessions. ''; @@ -191,7 +195,7 @@ in hiddenUsers = mkOption { type = types.listOf types.str; default = [ "nobody" ]; - description = '' + description = lib.mdDoc '' A list of users which will not be shown in the display manager. ''; }; @@ -212,7 +216,7 @@ in ''; }); default = []; - description = '' + description = lib.mdDoc '' A list of packages containing x11 or wayland session files to be passed to the display manager. ''; }; @@ -231,15 +235,15 @@ in } ] ''; - description = '' + description = lib.mdDoc '' List of sessions supported with the command used to start each session. Each session script can set the - <varname>waitPID</varname> shell variable to make this script + {var}`waitPID` shell variable to make this script wait until the end of the user session. Each script is used to define either a window manager or a desktop manager. These can be differentiated by setting the attribute - <varname>manage</varname> either to <literal>"window"</literal> - or <literal>"desktop"</literal>. + {var}`manage` either to `"window"` + or `"desktop"`. The list of desktop manager and window manager should appear inside the display manager with the desktop manager name @@ -248,7 +252,7 @@ in }; sessionData = mkOption { - description = "Data exported for display managers’ convenience"; + description = lib.mdDoc "Data exported for display managers’ convenience"; internal = true; default = {}; apply = val: { @@ -281,11 +285,11 @@ in defaultSessionFromLegacyOptions else null; - defaultText = literalDocBook '' + defaultText = literalMD '' Taken from display manager settings or window manager settings, if either is set. ''; example = "gnome"; - description = '' + description = lib.mdDoc '' Graphical session to pre-select in the session chooser (only effective for GDM, LightDM and SDDM). On GDM, LightDM and SDDM, it will also be used as a session for auto-login. @@ -295,7 +299,7 @@ in importedVariables = mkOption { type = types.listOf (types.strMatching "[a-zA-Z_][a-zA-Z0-9_]*"); visible = false; - description = '' + description = lib.mdDoc '' Environment variables to import into the systemd user environment. ''; }; @@ -306,34 +310,34 @@ in type = types.lines; default = ""; example = "rm -f /var/log/my-display-manager.log"; - description = "Script executed before the display manager is started."; + description = lib.mdDoc "Script executed before the display manager is started."; }; execCmd = mkOption { type = types.str; example = literalExpression ''"''${pkgs.lightdm}/bin/lightdm"''; - description = "Command to start the display manager."; + description = lib.mdDoc "Command to start the display manager."; }; environment = mkOption { type = types.attrsOf types.unspecified; default = {}; - description = "Additional environment variables needed by the display manager."; + description = lib.mdDoc "Additional environment variables needed by the display manager."; }; logToFile = mkOption { type = types.bool; default = false; - description = '' + description = lib.mdDoc '' Whether the display manager redirects the output of the - session script to <filename>~/.xsession-errors</filename>. + session script to {file}`~/.xsession-errors`. ''; }; logToJournal = mkOption { type = types.bool; default = true; - description = '' + description = lib.mdDoc '' Whether the display manager redirects the output of the session script to the systemd journal. ''; @@ -349,15 +353,15 @@ in type = types.bool; default = config.user != null; defaultText = literalExpression "config.${options.user} != null"; - description = '' - Automatically log in as <option>autoLogin.user</option>. + description = lib.mdDoc '' + Automatically log in as {option}`autoLogin.user`. ''; }; user = mkOption { type = types.nullOr types.str; default = null; - description = '' + description = lib.mdDoc '' User to be used for the automatic login. ''; }; @@ -365,7 +369,7 @@ in }); default = {}; - description = '' + description = lib.mdDoc '' Auto login configuration attrset. ''; }; diff --git a/nixos/modules/services/x11/display-managers/gdm.nix b/nixos/modules/services/x11/display-managers/gdm.nix index 45e3d84afa4af..1c3881bef2de2 100644 --- a/nixos/modules/services/x11/display-managers/gdm.nix +++ b/nixos/modules/services/x11/display-managers/gdm.nix @@ -67,15 +67,15 @@ in services.xserver.displayManager.gdm = { - enable = mkEnableOption "GDM, the GNOME Display Manager"; + enable = mkEnableOption (lib.mdDoc "GDM, the GNOME Display Manager"); - debug = mkEnableOption "debugging messages in GDM"; + debug = mkEnableOption (lib.mdDoc "debugging messages in GDM"); # Auto login options specific to GDM autoLogin.delay = mkOption { type = types.int; default = 0; - description = '' + description = lib.mdDoc '' Seconds of inactivity after which the autologin will be performed. ''; }; @@ -83,14 +83,14 @@ in wayland = mkOption { type = types.bool; default = true; - description = '' + description = lib.mdDoc '' Allow GDM to run on Wayland instead of Xserver. ''; }; autoSuspend = mkOption { default = true; - description = '' + description = lib.mdDoc '' On the GNOME Display Manager login screen, suspend the machine after inactivity. (Does not affect automatic suspend while logged in, or at lock screen.) ''; @@ -103,9 +103,9 @@ in example = { debug.enable = true; }; - description = '' + description = lib.mdDoc '' Options passed to the gdm daemon. - See <link xlink:href="https://help.gnome.org/admin/gdm/stable/configuration.html.en#daemonconfig">here</link> for supported options. + See [here](https://help.gnome.org/admin/gdm/stable/configuration.html.en#daemonconfig) for supported options. ''; }; diff --git a/nixos/modules/services/x11/display-managers/lightdm-greeters/enso-os.nix b/nixos/modules/services/x11/display-managers/lightdm-greeters/enso-os.nix index 930ee96b384d5..412bcc4091b3f 100644 --- a/nixos/modules/services/x11/display-managers/lightdm-greeters/enso-os.nix +++ b/nixos/modules/services/x11/display-managers/lightdm-greeters/enso-os.nix @@ -26,7 +26,7 @@ in { enable = mkOption { type = types.bool; default = false; - description = '' + description = lib.mdDoc '' Whether to enable enso-os-greeter as the lightdm greeter ''; }; @@ -36,7 +36,7 @@ in { type = types.package; default = pkgs.gnome.gnome-themes-extra; defaultText = literalExpression "pkgs.gnome.gnome-themes-extra"; - description = '' + description = lib.mdDoc '' The package path that contains the theme given in the name option. ''; }; @@ -44,7 +44,7 @@ in { name = mkOption { type = types.str; default = "Adwaita"; - description = '' + description = lib.mdDoc '' Name of the theme to use for the lightdm-enso-os-greeter ''; }; @@ -55,7 +55,7 @@ in { type = types.package; default = pkgs.papirus-icon-theme; defaultText = literalExpression "pkgs.papirus-icon-theme"; - description = '' + description = lib.mdDoc '' The package path that contains the icon theme given in the name option. ''; }; @@ -63,7 +63,7 @@ in { name = mkOption { type = types.str; default = "ePapirus"; - description = '' + description = lib.mdDoc '' Name of the icon theme to use for the lightdm-enso-os-greeter ''; }; @@ -74,7 +74,7 @@ in { type = types.package; default = pkgs.capitaine-cursors; defaultText = literalExpression "pkgs.capitaine-cursors"; - description = '' + description = lib.mdDoc '' The package path that contains the cursor theme given in the name option. ''; }; @@ -82,7 +82,7 @@ in { name = mkOption { type = types.str; default = "capitane-cursors"; - description = '' + description = lib.mdDoc '' Name of the cursor theme to use for the lightdm-enso-os-greeter ''; }; @@ -91,7 +91,7 @@ in { blur = mkOption { type = types.bool; default = false; - description = '' + description = lib.mdDoc '' Whether or not to enable blur ''; }; @@ -99,7 +99,7 @@ in { brightness = mkOption { type = types.int; default = 7; - description = '' + description = lib.mdDoc '' Brightness ''; }; @@ -107,7 +107,7 @@ in { extraConfig = mkOption { type = types.lines; default = ""; - description = '' + description = lib.mdDoc '' Extra configuration that should be put in the greeter.conf configuration file ''; diff --git a/nixos/modules/services/x11/display-managers/lightdm-greeters/gtk.nix b/nixos/modules/services/x11/display-managers/lightdm-greeters/gtk.nix index debd4b568bf65..c050367e74df6 100644 --- a/nixos/modules/services/x11/display-managers/lightdm-greeters/gtk.nix +++ b/nixos/modules/services/x11/display-managers/lightdm-greeters/gtk.nix @@ -38,7 +38,7 @@ in enable = mkOption { type = types.bool; default = true; - description = '' + description = lib.mdDoc '' Whether to enable lightdm-gtk-greeter as the lightdm greeter. ''; }; @@ -49,7 +49,7 @@ in type = types.package; default = pkgs.gnome.gnome-themes-extra; defaultText = literalExpression "pkgs.gnome.gnome-themes-extra"; - description = '' + description = lib.mdDoc '' The package path that contains the theme given in the name option. ''; }; @@ -57,7 +57,7 @@ in name = mkOption { type = types.str; default = "Adwaita"; - description = '' + description = lib.mdDoc '' Name of the theme to use for the lightdm-gtk-greeter. ''; }; @@ -70,7 +70,7 @@ in type = types.package; default = pkgs.gnome.adwaita-icon-theme; defaultText = literalExpression "pkgs.gnome.adwaita-icon-theme"; - description = '' + description = lib.mdDoc '' The package path that contains the icon theme given in the name option. ''; }; @@ -78,7 +78,7 @@ in name = mkOption { type = types.str; default = "Adwaita"; - description = '' + description = lib.mdDoc '' Name of the icon theme to use for the lightdm-gtk-greeter. ''; }; @@ -91,7 +91,7 @@ in type = types.package; default = pkgs.gnome.adwaita-icon-theme; defaultText = literalExpression "pkgs.gnome.adwaita-icon-theme"; - description = '' + description = lib.mdDoc '' The package path that contains the cursor theme given in the name option. ''; }; @@ -99,7 +99,7 @@ in name = mkOption { type = types.str; default = "Adwaita"; - description = '' + description = lib.mdDoc '' Name of the cursor theme to use for the lightdm-gtk-greeter. ''; }; @@ -107,7 +107,7 @@ in size = mkOption { type = types.int; default = 16; - description = '' + description = lib.mdDoc '' Size of the cursor theme to use for the lightdm-gtk-greeter. ''; }; @@ -117,7 +117,7 @@ in type = types.nullOr types.str; default = null; example = "%F"; - description = '' + description = lib.mdDoc '' Clock format string (as expected by strftime, e.g. "%H:%M") to use with the lightdm gtk greeter panel. @@ -129,7 +129,7 @@ in type = types.nullOr (types.listOf types.str); default = null; example = [ "~host" "~spacer" "~clock" "~spacer" "~session" "~language" "~a11y" "~power" ]; - description = '' + description = lib.mdDoc '' List of allowed indicator modules to use for the lightdm gtk greeter panel. @@ -145,7 +145,7 @@ in extraConfig = mkOption { type = types.lines; default = ""; - description = '' + description = lib.mdDoc '' Extra configuration that should be put in the lightdm-gtk-greeter.conf configuration file. ''; @@ -158,7 +158,7 @@ in config = mkIf (ldmcfg.enable && cfg.enable) { services.xserver.displayManager.lightdm.greeter = mkDefault { - package = pkgs.lightdm_gtk_greeter.xgreeters; + package = pkgs.lightdm-gtk-greeter.xgreeters; name = "lightdm-gtk-greeter"; }; diff --git a/nixos/modules/services/x11/display-managers/lightdm-greeters/mini.nix b/nixos/modules/services/x11/display-managers/lightdm-greeters/mini.nix index 16d7fdf15cf68..f4195c4c2dc39 100644 --- a/nixos/modules/services/x11/display-managers/lightdm-greeters/mini.nix +++ b/nixos/modules/services/x11/display-managers/lightdm-greeters/mini.nix @@ -55,19 +55,19 @@ in enable = mkOption { type = types.bool; default = false; - description = '' + description = lib.mdDoc '' Whether to enable lightdm-mini-greeter as the lightdm greeter. Note that this greeter starts only the default X session. You can configure the default X session using - <xref linkend="opt-services.xserver.displayManager.defaultSession"/>. + [](#opt-services.xserver.displayManager.defaultSession). ''; }; user = mkOption { type = types.str; default = "root"; - description = '' + description = lib.mdDoc '' The user to login as. ''; }; @@ -75,7 +75,7 @@ in extraConfig = mkOption { type = types.lines; default = ""; - description = '' + description = lib.mdDoc '' Extra configuration that should be put in the lightdm-mini-greeter.conf configuration file. ''; diff --git a/nixos/modules/services/x11/display-managers/lightdm-greeters/pantheon.nix b/nixos/modules/services/x11/display-managers/lightdm-greeters/pantheon.nix index f18e4a914e579..10707e001e82d 100644 --- a/nixos/modules/services/x11/display-managers/lightdm-greeters/pantheon.nix +++ b/nixos/modules/services/x11/display-managers/lightdm-greeters/pantheon.nix @@ -21,7 +21,7 @@ in enable = mkOption { type = types.bool; default = false; - description = '' + description = lib.mdDoc '' Whether to enable elementary-greeter as the lightdm greeter. ''; }; diff --git a/nixos/modules/services/x11/display-managers/lightdm-greeters/slick.nix b/nixos/modules/services/x11/display-managers/lightdm-greeters/slick.nix new file mode 100644 index 0000000000000..00fa8af71dc54 --- /dev/null +++ b/nixos/modules/services/x11/display-managers/lightdm-greeters/slick.nix @@ -0,0 +1,118 @@ +{ config, lib, pkgs, ... }: + +with lib; + +let + ldmcfg = config.services.xserver.displayManager.lightdm; + cfg = ldmcfg.greeters.slick; + + inherit (pkgs) writeText; + + theme = cfg.theme.package; + icons = cfg.iconTheme.package; + font = cfg.font.package; + + slickGreeterConf = writeText "slick-greeter.conf" '' + [Greeter] + background=${ldmcfg.background} + theme-name=${cfg.theme.name} + icon-theme-name=${cfg.iconTheme.name} + font-name=${cfg.font.name} + draw-user-backgrounds=${boolToString cfg.draw-user-backgrounds} + ${cfg.extraConfig} + ''; +in +{ + options = { + services.xserver.displayManager.lightdm.greeters.slick = { + enable = mkEnableOption (lib.mdDoc "lightdm-slick-greeter as the lightdm greeter"); + + theme = { + package = mkOption { + type = types.package; + default = pkgs.gnome.gnome-themes-extra; + defaultText = literalExpression "pkgs.gnome.gnome-themes-extra"; + description = lib.mdDoc '' + The package path that contains the theme given in the name option. + ''; + }; + + name = mkOption { + type = types.str; + default = "Adwaita"; + description = lib.mdDoc '' + Name of the theme to use for the lightdm-slick-greeter. + ''; + }; + }; + + iconTheme = { + package = mkOption { + type = types.package; + default = pkgs.gnome.adwaita-icon-theme; + defaultText = literalExpression "pkgs.gnome.adwaita-icon-theme"; + description = lib.mdDoc '' + The package path that contains the icon theme given in the name option. + ''; + }; + + name = mkOption { + type = types.str; + default = "Adwaita"; + description = lib.mdDoc '' + Name of the icon theme to use for the lightdm-slick-greeter. + ''; + }; + }; + + font = { + package = mkOption { + type = types.package; + default = pkgs.ubuntu_font_family; + defaultText = literalExpression "pkgs.ubuntu_font_family"; + description = lib.mdDoc '' + The package path that contains the font given in the name option. + ''; + }; + + name = mkOption { + type = types.str; + default = "Ubuntu 11"; + description = lib.mdDoc '' + Name of the font to use. + ''; + }; + }; + + draw-user-backgrounds = mkEnableOption (lib.mdDoc "draw user backgrounds"); + + extraConfig = mkOption { + type = types.lines; + default = ""; + description = lib.mdDoc '' + Extra configuration that should be put in the lightdm-slick-greeter.conf + configuration file. + ''; + }; + }; + }; + + config = mkIf (ldmcfg.enable && cfg.enable) { + services.xserver.displayManager.lightdm = { + greeters.gtk.enable = false; + greeter = mkDefault { + package = pkgs.lightdm-slick-greeter.xgreeters; + name = "lightdm-slick-greeter"; + }; + }; + + environment.systemPackages = [ + icons + theme + ]; + + fonts.fonts = [ font ]; + + environment.etc."lightdm/slick-greeter.conf".source = slickGreeterConf; + }; +} diff --git a/nixos/modules/services/x11/display-managers/lightdm-greeters/tiny.nix b/nixos/modules/services/x11/display-managers/lightdm-greeters/tiny.nix index a9ba8e6280d6c..8d6bfa98a7e4b 100644 --- a/nixos/modules/services/x11/display-managers/lightdm-greeters/tiny.nix +++ b/nixos/modules/services/x11/display-managers/lightdm-greeters/tiny.nix @@ -17,12 +17,12 @@ in enable = mkOption { type = types.bool; default = false; - description = '' + description = lib.mdDoc '' Whether to enable lightdm-tiny-greeter as the lightdm greeter. Note that this greeter starts only the default X session. You can configure the default X session using - <xref linkend="opt-services.xserver.displayManager.defaultSession"/>. + [](#opt-services.xserver.displayManager.defaultSession). ''; }; @@ -30,7 +30,7 @@ in user = mkOption { type = types.str; default = "Username"; - description = '' + description = lib.mdDoc '' The string to represent the user_text label. ''; }; @@ -38,7 +38,7 @@ in pass = mkOption { type = types.str; default = "Password"; - description = '' + description = lib.mdDoc '' The string to represent the pass_text label. ''; }; @@ -48,7 +48,7 @@ in extraConfig = mkOption { type = types.lines; default = ""; - description = '' + description = lib.mdDoc '' Section to describe style and ui. ''; }; diff --git a/nixos/modules/services/x11/display-managers/lightdm.nix b/nixos/modules/services/x11/display-managers/lightdm.nix index 302c8fe0d9171..b0508c3b4f793 100644 --- a/nixos/modules/services/x11/display-managers/lightdm.nix +++ b/nixos/modules/services/x11/display-managers/lightdm.nix @@ -82,6 +82,7 @@ in ./lightdm-greeters/enso-os.nix ./lightdm-greeters/pantheon.nix ./lightdm-greeters/tiny.nix + ./lightdm-greeters/slick.nix (mkRenamedOptionModule [ "services" "xserver" "displayManager" "lightdm" "autoLogin" "enable" ] [ "services" "xserver" @@ -105,7 +106,7 @@ in enable = mkOption { type = types.bool; default = false; - description = '' + description = lib.mdDoc '' Whether to enable lightdm as the display manager. ''; }; @@ -114,14 +115,14 @@ in enable = mkOption { type = types.bool; default = true; - description = '' + description = lib.mdDoc '' If set to false, run lightdm in greeterless mode. This only works if autologin is enabled and autoLogin.timeout is zero. ''; }; package = mkOption { type = types.package; - description = '' + description = lib.mdDoc '' The LightDM greeter to login via. The package should be a directory containing a .desktop file matching the name in the 'name' option. ''; @@ -129,7 +130,7 @@ in }; name = mkOption { type = types.str; - description = '' + description = lib.mdDoc '' The name of a .desktop file in the directory specified in the 'package' option. ''; @@ -142,14 +143,14 @@ in example = '' user-authority-in-system-dir = true ''; - description = "Extra lines to append to LightDM section."; + description = lib.mdDoc "Extra lines to append to LightDM section."; }; background = mkOption { type = types.either types.path (types.strMatching "^#[0-9]\{6\}$"); # Manual cannot depend on packages, we are actually setting the default in config below. defaultText = literalExpression "pkgs.nixos-artwork.wallpapers.simple-dark-gray-bottom.gnomeFilePath"; - description = '' + description = lib.mdDoc '' The background image or color to use. ''; }; @@ -160,14 +161,14 @@ in example = '' greeter-show-manual-login=true ''; - description = "Extra lines to append to SeatDefaults section."; + description = lib.mdDoc "Extra lines to append to SeatDefaults section."; }; # Configuration for automatic login specific to LightDM autoLogin.timeout = mkOption { type = types.int; default = 0; - description = '' + description = lib.mdDoc '' Show the greeter for this many seconds before automatic login occurs. ''; }; @@ -310,7 +311,6 @@ in home = "/var/lib/lightdm"; group = "lightdm"; uid = config.ids.uids.lightdm; - shell = pkgs.bash; }; systemd.tmpfiles.rules = [ diff --git a/nixos/modules/services/x11/display-managers/sddm.nix b/nixos/modules/services/x11/display-managers/sddm.nix index c44f24002e0b9..34239221315db 100644 --- a/nixos/modules/services/x11/display-managers/sddm.nix +++ b/nixos/modules/services/x11/display-managers/sddm.nix @@ -100,7 +100,7 @@ in enable = mkOption { type = types.bool; default = false; - description = '' + description = lib.mdDoc '' Whether to enable sddm as the display manager. ''; }; @@ -108,7 +108,7 @@ in enableHidpi = mkOption { type = types.bool; default = true; - description = '' + description = lib.mdDoc '' Whether to enable automatic HiDPI mode. ''; }; @@ -122,7 +122,7 @@ in Session = "plasma.desktop"; }; }; - description = '' + description = lib.mdDoc '' Extra settings merged in and overwritting defaults in sddm.conf. ''; }; @@ -130,7 +130,7 @@ in theme = mkOption { type = types.str; default = ""; - description = '' + description = lib.mdDoc '' Greeter theme to use. ''; }; @@ -138,7 +138,7 @@ in autoNumlock = mkOption { type = types.bool; default = false; - description = '' + description = lib.mdDoc '' Enable numlock at login. ''; }; @@ -151,16 +151,16 @@ in xrandr --setprovideroutputsource modesetting NVIDIA-0 xrandr --auto ''; - description = '' + description = lib.mdDoc '' A script to execute when starting the display server. DEPRECATED, please - use <option>services.xserver.displayManager.setupCommands</option>. + use {option}`services.xserver.displayManager.setupCommands`. ''; }; stopScript = mkOption { type = types.str; default = ""; - description = '' + description = lib.mdDoc '' A script to execute when stopping the display server. ''; }; @@ -170,7 +170,7 @@ in relogin = mkOption { type = types.bool; default = false; - description = '' + description = lib.mdDoc '' If true automatic login will kick in again on session exit (logout), otherwise it will only log in automatically when the display-manager is started. ''; @@ -179,7 +179,7 @@ in minimumUid = mkOption { type = types.ints.u16; default = 1000; - description = '' + description = lib.mdDoc '' Minimum user ID for auto-login user. ''; }; diff --git a/nixos/modules/services/x11/display-managers/startx.nix b/nixos/modules/services/x11/display-managers/startx.nix index a48566ae06841..f4bb7a89d03b6 100644 --- a/nixos/modules/services/x11/display-managers/startx.nix +++ b/nixos/modules/services/x11/display-managers/startx.nix @@ -17,7 +17,7 @@ in enable = mkOption { type = types.bool; default = false; - description = '' + description = lib.mdDoc '' Whether to enable the dummy "startx" pseudo-display manager, which allows users to start X manually via the "startx" command from a vt shell. The X server runs under the user's id, not as root. diff --git a/nixos/modules/services/x11/display-managers/sx.nix b/nixos/modules/services/x11/display-managers/sx.nix index e309773643009..6a7fc1a040e7a 100644 --- a/nixos/modules/services/x11/display-managers/sx.nix +++ b/nixos/modules/services/x11/display-managers/sx.nix @@ -7,8 +7,8 @@ let cfg = config.services.xserver.displayManager.sx; in { options = { services.xserver.displayManager.sx = { - enable = mkEnableOption "sx pseudo-display manager" // { - description = '' + enable = mkEnableOption (lib.mdDoc "sx pseudo-display manager") // { + description = lib.mdDoc '' Whether to enable the "sx" pseudo-display manager, which allows users to start manually via the "sx" command from a vt shell. The X server runs under the user's id, not as root. The user must provide a diff --git a/nixos/modules/services/x11/display-managers/xpra.nix b/nixos/modules/services/x11/display-managers/xpra.nix index 1566e38da0839..cb78f52d9b689 100644 --- a/nixos/modules/services/x11/display-managers/xpra.nix +++ b/nixos/modules/services/x11/display-managers/xpra.nix @@ -16,34 +16,34 @@ in enable = mkOption { type = types.bool; default = false; - description = "Whether to enable xpra as display manager."; + description = lib.mdDoc "Whether to enable xpra as display manager."; }; bindTcp = mkOption { default = "127.0.0.1:10000"; example = "0.0.0.0:10000"; type = types.nullOr types.str; - description = "Bind xpra to TCP"; + description = lib.mdDoc "Bind xpra to TCP"; }; desktop = mkOption { type = types.nullOr types.str; default = null; example = "gnome-shell"; - description = "Start a desktop environment instead of seamless mode"; + description = lib.mdDoc "Start a desktop environment instead of seamless mode"; }; auth = mkOption { type = types.str; default = "pam"; example = "password:value=mysecret"; - description = "Authentication to use when connecting to xpra"; + description = lib.mdDoc "Authentication to use when connecting to xpra"; }; - pulseaudio = mkEnableOption "pulseaudio audio streaming"; + pulseaudio = mkEnableOption (lib.mdDoc "pulseaudio audio streaming"); extraOptions = mkOption { - description = "Extra xpra options"; + description = lib.mdDoc "Extra xpra options"; default = []; type = types.listOf types.str; }; diff --git a/nixos/modules/services/x11/extra-layouts.nix b/nixos/modules/services/x11/extra-layouts.nix index 159bed63e137d..574657a50c82d 100644 --- a/nixos/modules/services/x11/extra-layouts.nix +++ b/nixos/modules/services/x11/extra-layouts.nix @@ -9,13 +9,13 @@ let options = { description = mkOption { type = types.str; - description = "A short description of the layout."; + description = lib.mdDoc "A short description of the layout."; }; languages = mkOption { type = types.listOf types.str; description = - '' + lib.mdDoc '' A list of languages provided by the layout. (Use ISO 639-2 codes, for example: "eng" for english) ''; @@ -24,55 +24,55 @@ let compatFile = mkOption { type = types.nullOr types.path; default = null; - description = '' + description = lib.mdDoc '' The path to the xkb compat file. This file sets the compatibility state, used to preserve compatibility with xkb-unaware programs. - It must contain a <literal>xkb_compat "name" { ... }</literal> block. + It must contain a `xkb_compat "name" { ... }` block. ''; }; geometryFile = mkOption { type = types.nullOr types.path; default = null; - description = '' + description = lib.mdDoc '' The path to the xkb geometry file. This (completely optional) file describes the physical layout of keyboard, which maybe be used by programs to depict it. - It must contain a <literal>xkb_geometry "name" { ... }</literal> block. + It must contain a `xkb_geometry "name" { ... }` block. ''; }; keycodesFile = mkOption { type = types.nullOr types.path; default = null; - description = '' + description = lib.mdDoc '' The path to the xkb keycodes file. This file specifies the range and the interpretation of the raw keycodes sent by the keyboard. - It must contain a <literal>xkb_keycodes "name" { ... }</literal> block. + It must contain a `xkb_keycodes "name" { ... }` block. ''; }; symbolsFile = mkOption { type = types.nullOr types.path; default = null; - description = '' + description = lib.mdDoc '' The path to the xkb symbols file. This is the most important file: it defines which symbol or action maps to each key and must contain a - <literal>xkb_symbols "name" { ... }</literal> block. + `xkb_symbols "name" { ... }` block. ''; }; typesFile = mkOption { type = types.nullOr types.path; default = null; - description = '' + description = lib.mdDoc '' The path to the xkb types file. This file specifies the key types that can be associated with the various keyboard keys. - It must contain a <literal>xkb_types "name" { ... }</literal> block. + It must contain a `xkb_types "name" { ... }` block. ''; }; @@ -103,12 +103,12 @@ in }; } ''; - description = '' + description = lib.mdDoc '' Extra custom layouts that will be included in the xkb configuration. Information on how to create a new layout can be found here: - <link xlink:href="https://www.x.org/releases/current/doc/xorg-docs/input/XKB-Enhancing.html#Defining_New_Layouts"></link>. + [](https://www.x.org/releases/current/doc/xorg-docs/input/XKB-Enhancing.html#Defining_New_Layouts). For more examples see - <link xlink:href="https://wiki.archlinux.org/index.php/X_KeyBoard_extension#Basic_examples"></link> + [](https://wiki.archlinux.org/index.php/X_KeyBoard_extension#Basic_examples) ''; }; diff --git a/nixos/modules/services/x11/fractalart.nix b/nixos/modules/services/x11/fractalart.nix index 448248a58794d..f7fc1ec962287 100644 --- a/nixos/modules/services/x11/fractalart.nix +++ b/nixos/modules/services/x11/fractalart.nix @@ -8,21 +8,21 @@ in { type = types.bool; default = false; example = true; - description = "Enable FractalArt for generating colorful wallpapers on login"; + description = lib.mdDoc "Enable FractalArt for generating colorful wallpapers on login"; }; width = mkOption { type = types.nullOr types.int; default = null; example = 1920; - description = "Screen width"; + description = lib.mdDoc "Screen width"; }; height = mkOption { type = types.nullOr types.int; default = null; example = 1080; - description = "Screen height"; + description = lib.mdDoc "Screen height"; }; }; diff --git a/nixos/modules/services/x11/gdk-pixbuf.nix b/nixos/modules/services/x11/gdk-pixbuf.nix index 3fd6fed91e131..c80e2b22792aa 100644 --- a/nixos/modules/services/x11/gdk-pixbuf.nix +++ b/nixos/modules/services/x11/gdk-pixbuf.nix @@ -30,7 +30,7 @@ in services.xserver.gdk-pixbuf.modulePackages = mkOption { type = types.listOf types.package; default = [ ]; - description = "Packages providing GDK-Pixbuf modules, for cache generation."; + description = lib.mdDoc "Packages providing GDK-Pixbuf modules, for cache generation."; }; }; diff --git a/nixos/modules/services/x11/hardware/cmt.nix b/nixos/modules/services/x11/hardware/cmt.nix index 5ac824c5e4199..a44221141c3c6 100644 --- a/nixos/modules/services/x11/hardware/cmt.nix +++ b/nixos/modules/services/x11/hardware/cmt.nix @@ -15,14 +15,14 @@ in { enable = mkOption { type = types.bool; default = false; - description = "Enable chrome multitouch input (cmt). Touchpad drivers that are configured for chromebooks."; + description = lib.mdDoc "Enable chrome multitouch input (cmt). Touchpad drivers that are configured for chromebooks."; }; models = mkOption { type = types.enum [ "atlas" "banjo" "candy" "caroline" "cave" "celes" "clapper" "cyan" "daisy" "elan" "elm" "enguarde" "eve" "expresso" "falco" "gandof" "glimmer" "gnawty" "heli" "kevin" "kip" "leon" "lulu" "orco" "pbody" "peppy" "pi" "pit" "puppy" "quawks" "rambi" "samus" "snappy" "spring" "squawks" "swanky" "winky" "wolf" "auron_paine" "auron_yuna" "daisy_skate" "nyan_big" "nyan_blaze" "veyron_jaq" "veyron_jerry" "veyron_mighty" "veyron_minnie" "veyron_speedy" ]; example = "banjo"; - description = '' + description = lib.mdDoc '' Which models to enable cmt for. Enter the Code Name for your Chromebook. - Code Name can be found at <link xlink:href="https://www.chromium.org/chromium-os/developer-information-for-chrome-os-devices" />. + Code Name can be found at <https://www.chromium.org/chromium-os/developer-information-for-chrome-os-devices>. ''; }; }; #closes services diff --git a/nixos/modules/services/x11/hardware/digimend.nix b/nixos/modules/services/x11/hardware/digimend.nix index b1b1682f00b27..f82aac41a3202 100644 --- a/nixos/modules/services/x11/hardware/digimend.nix +++ b/nixos/modules/services/x11/hardware/digimend.nix @@ -16,7 +16,7 @@ in services.xserver.digimend = { - enable = mkEnableOption "the digimend drivers for Huion/XP-Pen/etc. tablets"; + enable = mkEnableOption (lib.mdDoc "the digimend drivers for Huion/XP-Pen/etc. tablets"); }; diff --git a/nixos/modules/services/x11/hardware/libinput.nix b/nixos/modules/services/x11/hardware/libinput.nix index efdb7c61dfaeb..8eb11e281d662 100644 --- a/nixos/modules/services/x11/hardware/libinput.nix +++ b/nixos/modules/services/x11/hardware/libinput.nix @@ -12,8 +12,8 @@ let cfg = config.services.xserver.libinput; default = null; example = "/dev/input/event0"; description = - '' - Path for ${deviceType} device. Set to <literal>null</literal> to apply to any + lib.mdDoc '' + Path for ${deviceType} device. Set to `null` to apply to any auto-detected ${deviceType}. ''; }; @@ -23,14 +23,14 @@ let cfg = config.services.xserver.libinput; default = "adaptive"; example = "flat"; description = - '' + lib.mdDoc '' Sets the pointer acceleration profile to the given profile. - Permitted values are <literal>adaptive</literal>, <literal>flat</literal>. + Permitted values are `adaptive`, `flat`. Not all devices support this option or all profiles. If a profile is unsupported, the default profile for this is used. - <literal>flat</literal>: Pointer motion is accelerated by a constant + `flat`: Pointer motion is accelerated by a constant (device-specific) factor, depending on the current speed. - <literal>adaptive</literal>: Pointer acceleration depends on the input speed. + `adaptive`: Pointer acceleration depends on the input speed. This is the default profile for most devices. ''; }; @@ -39,7 +39,7 @@ let cfg = config.services.xserver.libinput; type = types.nullOr types.str; default = null; example = "-0.5"; - description = "Cursor acceleration (how fast speed increases from minSpeed to maxSpeed)."; + description = lib.mdDoc "Cursor acceleration (how fast speed increases from minSpeed to maxSpeed)."; }; buttonMapping = mkOption { @@ -47,7 +47,7 @@ let cfg = config.services.xserver.libinput; default = null; example = "1 6 3 4 5 0 7"; description = - '' + lib.mdDoc '' Sets the logical button mapping for this device, see XSetPointerMapping(3). The string must be a space-separated list of button mappings in the order of the logical buttons on the device, starting with button 1. The default mapping is "1 2 3 ... 32". A mapping of 0 deac‐ @@ -62,7 +62,7 @@ let cfg = config.services.xserver.libinput; default = null; example = "0.5 0 0 0 0.8 0.1 0 0 1"; description = - '' + lib.mdDoc '' A string of 9 space-separated floating point numbers. Sets the calibration matrix to the 3x3 matrix where the first row is (abc), the second row is (def) and the third row is (ghi). ''; @@ -73,9 +73,9 @@ let cfg = config.services.xserver.libinput; default = null; example = "buttonareas"; description = - '' - Enables a click method. Permitted values are <literal>none</literal>, - <literal>buttonareas</literal>, <literal>clickfinger</literal>. + lib.mdDoc '' + Enables a click method. Permitted values are `none`, + `buttonareas`, `clickfinger`. Not all devices support all methods, if an option is unsupported, the default click method for this device is used. ''; @@ -84,14 +84,14 @@ let cfg = config.services.xserver.libinput; leftHanded = mkOption { type = types.bool; default = false; - description = "Enables left-handed button orientation, i.e. swapping left and right buttons."; + description = lib.mdDoc "Enables left-handed button orientation, i.e. swapping left and right buttons."; }; middleEmulation = mkOption { type = types.bool; default = true; description = - '' + lib.mdDoc '' Enables middle button emulation. When enabled, pressing the left and right buttons simultaneously produces a middle mouse button click. ''; @@ -100,7 +100,7 @@ let cfg = config.services.xserver.libinput; naturalScrolling = mkOption { type = types.bool; default = false; - description = "Enables or disables natural scrolling behavior."; + description = lib.mdDoc "Enables or disables natural scrolling behavior."; }; scrollButton = mkOption { @@ -108,7 +108,7 @@ let cfg = config.services.xserver.libinput; default = null; example = 1; description = - '' + lib.mdDoc '' Designates a button as scroll button. If the ScrollMethod is button and the button is logically held down, x/y axis movement is converted into scroll events. ''; @@ -119,9 +119,9 @@ let cfg = config.services.xserver.libinput; default = "twofinger"; example = "edge"; description = - '' - Specify the scrolling method: <literal>twofinger</literal>, <literal>edge</literal>, - <literal>button</literal>, or <literal>none</literal> + lib.mdDoc '' + Specify the scrolling method: `twofinger`, `edge`, + `button`, or `none` ''; }; @@ -129,7 +129,7 @@ let cfg = config.services.xserver.libinput; type = types.bool; default = true; description = - '' + lib.mdDoc '' Disables horizontal scrolling. When disabled, this driver will discard any horizontal scroll events from libinput. Note that this does not disable horizontal scrolling, it merely discards the horizontal axis from any scroll events. @@ -141,9 +141,9 @@ let cfg = config.services.xserver.libinput; default = "enabled"; example = "disabled"; description = - '' - Sets the send events mode to <literal>disabled</literal>, <literal>enabled</literal>, - or <literal>disabled-on-external-mouse</literal> + lib.mdDoc '' + Sets the send events mode to `disabled`, `enabled`, + or `disabled-on-external-mouse` ''; }; @@ -151,7 +151,7 @@ let cfg = config.services.xserver.libinput; type = types.bool; default = true; description = - '' + lib.mdDoc '' Enables or disables tap-to-click behavior. ''; }; @@ -160,7 +160,7 @@ let cfg = config.services.xserver.libinput; type = types.bool; default = true; description = - '' + lib.mdDoc '' Enables or disables drag lock during tapping behavior. When enabled, a finger up during tap- and-drag will not immediately release the button. If the finger is set down again within the timeout, the draging process continues. @@ -171,7 +171,7 @@ let cfg = config.services.xserver.libinput; type = types.nullOr types.str; default = null; example = "0.5 0 0 0 0.8 0.1 0 0 1"; - description = '' + description = lib.mdDoc '' A string of 9 space-separated floating point numbers. Sets the transformation matrix to the 3x3 matrix where the first row is (abc), the second row is (def) and the third row is (ghi). ''; @@ -181,7 +181,7 @@ let cfg = config.services.xserver.libinput; type = types.bool; default = false; description = - '' + lib.mdDoc '' Disable input method while typing. ''; }; @@ -193,9 +193,9 @@ let cfg = config.services.xserver.libinput; '' Option "DragLockButtons" "L1 B1 L2 B2" ''; - description = '' + description = lib.mdDoc '' Additional options for libinput ${deviceType} driver. See - <citerefentry><refentrytitle>libinput</refentrytitle><manvolnum>4</manvolnum></citerefentry> + {manpage}`libinput(4)` for available options."; ''; }; @@ -250,7 +250,7 @@ in { options = { services.xserver.libinput = { - enable = mkEnableOption "libinput"; + enable = mkEnableOption (lib.mdDoc "libinput"); mouse = mkConfigForDevice "mouse"; touchpad = mkConfigForDevice "touchpad"; }; diff --git a/nixos/modules/services/x11/hardware/synaptics.nix b/nixos/modules/services/x11/hardware/synaptics.nix index 93dd560bca407..7b45222ac64c3 100644 --- a/nixos/modules/services/x11/hardware/synaptics.nix +++ b/nixos/modules/services/x11/hardware/synaptics.nix @@ -30,7 +30,7 @@ in { enable = mkOption { type = types.bool; default = false; - description = "Whether to enable touchpad support. Deprecated: Consider services.xserver.libinput.enable."; + description = lib.mdDoc "Whether to enable touchpad support. Deprecated: Consider services.xserver.libinput.enable."; }; dev = mkOption { @@ -38,7 +38,7 @@ in { default = null; example = "/dev/input/event0"; description = - '' + lib.mdDoc '' Path for touchpad device. Set to null to apply to any auto-detected touchpad. ''; @@ -47,73 +47,73 @@ in { accelFactor = mkOption { type = types.nullOr types.str; default = "0.001"; - description = "Cursor acceleration (how fast speed increases from minSpeed to maxSpeed)."; + description = lib.mdDoc "Cursor acceleration (how fast speed increases from minSpeed to maxSpeed)."; }; minSpeed = mkOption { type = types.nullOr types.str; default = "0.6"; - description = "Cursor speed factor for precision finger motion."; + description = lib.mdDoc "Cursor speed factor for precision finger motion."; }; maxSpeed = mkOption { type = types.nullOr types.str; default = "1.0"; - description = "Cursor speed factor for highest-speed finger motion."; + description = lib.mdDoc "Cursor speed factor for highest-speed finger motion."; }; scrollDelta = mkOption { type = types.nullOr types.int; default = null; example = 75; - description = "Move distance of the finger for a scroll event."; + description = lib.mdDoc "Move distance of the finger for a scroll event."; }; twoFingerScroll = mkOption { type = types.bool; default = false; - description = "Whether to enable two-finger drag-scrolling. Overridden by horizTwoFingerScroll and vertTwoFingerScroll."; + description = lib.mdDoc "Whether to enable two-finger drag-scrolling. Overridden by horizTwoFingerScroll and vertTwoFingerScroll."; }; horizTwoFingerScroll = mkOption { type = types.bool; default = cfg.twoFingerScroll; defaultText = literalExpression "config.${opt.twoFingerScroll}"; - description = "Whether to enable horizontal two-finger drag-scrolling."; + description = lib.mdDoc "Whether to enable horizontal two-finger drag-scrolling."; }; vertTwoFingerScroll = mkOption { type = types.bool; default = cfg.twoFingerScroll; defaultText = literalExpression "config.${opt.twoFingerScroll}"; - description = "Whether to enable vertical two-finger drag-scrolling."; + description = lib.mdDoc "Whether to enable vertical two-finger drag-scrolling."; }; horizEdgeScroll = mkOption { type = types.bool; default = ! cfg.horizTwoFingerScroll; defaultText = literalExpression "! config.${opt.horizTwoFingerScroll}"; - description = "Whether to enable horizontal edge drag-scrolling."; + description = lib.mdDoc "Whether to enable horizontal edge drag-scrolling."; }; vertEdgeScroll = mkOption { type = types.bool; default = ! cfg.vertTwoFingerScroll; defaultText = literalExpression "! config.${opt.vertTwoFingerScroll}"; - description = "Whether to enable vertical edge drag-scrolling."; + description = lib.mdDoc "Whether to enable vertical edge drag-scrolling."; }; tapButtons = mkOption { type = types.bool; default = true; - description = "Whether to enable tap buttons."; + description = lib.mdDoc "Whether to enable tap buttons."; }; buttonsMap = mkOption { type = types.listOf types.int; default = [1 2 3]; example = [1 3 2]; - description = "Remap touchpad buttons."; + description = lib.mdDoc "Remap touchpad buttons."; apply = map toString; }; @@ -121,34 +121,34 @@ in { type = types.listOf types.int; default = [1 2 3]; example = [1 3 2]; - description = "Remap several-fingers taps."; + description = lib.mdDoc "Remap several-fingers taps."; apply = map toString; }; palmDetect = mkOption { type = types.bool; default = false; - description = "Whether to enable palm detection (hardware support required)"; + description = lib.mdDoc "Whether to enable palm detection (hardware support required)"; }; palmMinWidth = mkOption { type = types.nullOr types.int; default = null; example = 5; - description = "Minimum finger width at which touch is considered a palm"; + description = lib.mdDoc "Minimum finger width at which touch is considered a palm"; }; palmMinZ = mkOption { type = types.nullOr types.int; default = null; example = 20; - description = "Minimum finger pressure at which touch is considered a palm"; + description = lib.mdDoc "Minimum finger pressure at which touch is considered a palm"; }; horizontalScroll = mkOption { type = types.bool; default = true; - description = "Whether to enable horizontal scrolling (on touchpad)"; + description = lib.mdDoc "Whether to enable horizontal scrolling (on touchpad)"; }; additionalOptions = mkOption { @@ -158,7 +158,7 @@ in { Option "RTCornerButton" "2" Option "RBCornerButton" "3" ''; - description = '' + description = lib.mdDoc '' Additional options for synaptics touchpad driver. ''; }; diff --git a/nixos/modules/services/x11/hardware/wacom.nix b/nixos/modules/services/x11/hardware/wacom.nix index dad2b308d1b49..4994e5c1a2cc7 100644 --- a/nixos/modules/services/x11/hardware/wacom.nix +++ b/nixos/modules/services/x11/hardware/wacom.nix @@ -17,13 +17,13 @@ in enable = mkOption { type = types.bool; default = false; - description = '' + description = lib.mdDoc '' Whether to enable the Wacom touchscreen/digitizer/tablet. If you ever have any issues such as, try switching to terminal (ctrl-alt-F1) and back which will make Xorg reconfigure the device ? If you're not satisfied by the default behaviour you can override - <option>environment.etc."X11/xorg.conf.d/70-wacom.conf"</option> in + {option}`environment.etc."X11/xorg.conf.d/70-wacom.conf"` in configuration.nix easily. ''; }; diff --git a/nixos/modules/services/x11/imwheel.nix b/nixos/modules/services/x11/imwheel.nix index ae990141a5029..03cbdbfb09a4a 100644 --- a/nixos/modules/services/x11/imwheel.nix +++ b/nixos/modules/services/x11/imwheel.nix @@ -6,15 +6,15 @@ in { options = { services.xserver.imwheel = { - enable = mkEnableOption "IMWheel service"; + enable = mkEnableOption (lib.mdDoc "IMWheel service"); extraOptions = mkOption { type = types.listOf types.str; default = [ "--buttons=45" ]; example = [ "--debug" ]; - description = '' + description = lib.mdDoc '' Additional command-line arguments to pass to - <command>imwheel</command>. + {command}`imwheel`. ''; }; @@ -33,11 +33,11 @@ in '''; } ''; - description = '' + description = lib.mdDoc '' Window class translation rules. /etc/X11/imwheelrc is generated based on this config which means this config is global for all users. - See <link xlink:href="http://imwheel.sourceforge.net/imwheel.1.html">offical man pages</link> + See [offical man pages](http://imwheel.sourceforge.net/imwheel.1.html) for more informations. ''; }; diff --git a/nixos/modules/services/x11/picom.nix b/nixos/modules/services/x11/picom.nix index 85aa11f147b41..d42cf1d7412fe 100644 --- a/nixos/modules/services/x11/picom.nix +++ b/nixos/modules/services/x11/picom.nix @@ -53,7 +53,7 @@ in { enable = mkOption { type = types.bool; default = false; - description = '' + description = lib.mdDoc '' Whether or not to enable Picom as the X.org composite manager. ''; }; @@ -61,7 +61,7 @@ in { experimentalBackends = mkOption { type = types.bool; default = false; - description = '' + description = lib.mdDoc '' Whether to use the unstable new reimplementation of the backends. ''; }; @@ -69,7 +69,7 @@ in { fade = mkOption { type = types.bool; default = false; - description = '' + description = lib.mdDoc '' Fade windows in and out. ''; }; @@ -78,7 +78,7 @@ in { type = types.ints.positive; default = 10; example = 5; - description = '' + description = lib.mdDoc '' Time between fade animation step (in ms). ''; }; @@ -87,7 +87,7 @@ in { type = pairOf (types.numbers.between 0.01 1); default = [ 0.028 0.03 ]; example = [ 0.04 0.04 ]; - description = '' + description = lib.mdDoc '' Opacity change between fade steps (in and out). ''; }; @@ -100,16 +100,16 @@ in { "name ~= 'Firefox$'" "focused = 1" ]; - description = '' + description = lib.mdDoc '' List of conditions of windows that should not be faded. - See <literal>picom(1)</literal> man page for more examples. + See `picom(1)` man page for more examples. ''; }; shadow = mkOption { type = types.bool; default = false; - description = '' + description = lib.mdDoc '' Draw window shadows. ''; }; @@ -118,7 +118,7 @@ in { type = pairOf types.int; default = [ (-15) (-15) ]; example = [ (-10) (-15) ]; - description = '' + description = lib.mdDoc '' Left and right offset for shadows (in pixels). ''; }; @@ -127,7 +127,7 @@ in { type = types.numbers.between 0 1; default = 0.75; example = 0.8; - description = '' + description = lib.mdDoc '' Window shadows opacity. ''; }; @@ -140,9 +140,9 @@ in { "name ~= 'Firefox$'" "focused = 1" ]; - description = '' + description = lib.mdDoc '' List of conditions of windows that should have no shadow. - See <literal>picom(1)</literal> man page for more examples. + See `picom(1)` man page for more examples. ''; }; @@ -150,7 +150,7 @@ in { type = types.numbers.between 0 1; default = 1.0; example = 0.8; - description = '' + description = lib.mdDoc '' Opacity of active windows. ''; }; @@ -159,7 +159,7 @@ in { type = types.numbers.between 0.1 1; default = 1.0; example = 0.8; - description = '' + description = lib.mdDoc '' Opacity of inactive windows. ''; }; @@ -168,7 +168,7 @@ in { type = types.numbers.between 0 1; default = 1.0; example = 0.8; - description = '' + description = lib.mdDoc '' Opacity of dropdown and popup menu. ''; }; @@ -186,7 +186,7 @@ in { } ''; example = {}; - description = '' + description = lib.mdDoc '' Rules for specific window types. ''; }; @@ -198,7 +198,7 @@ in { "95:class_g = 'URxvt' && !_NET_WM_STATE@:32a" "0:_NET_WM_STATE@:32a *= '_NET_WM_STATE_HIDDEN'" ]; - description = '' + description = lib.mdDoc '' Rules that control the opacity of windows, in format PERCENT:PATTERN. ''; }; @@ -206,8 +206,8 @@ in { backend = mkOption { type = types.enum [ "glx" "xrender" "xr_glx_hybrid" ]; default = "xrender"; - description = '' - Backend to use: <literal>glx</literal>, <literal>xrender</literal> or <literal>xr_glx_hybrid</literal>. + description = lib.mdDoc '' + Backend to use: `glx`, `xrender` or `xr_glx_hybrid`. ''; }; @@ -224,7 +224,7 @@ in { if isBool x then x else warn msg res; - description = '' + description = lib.mdDoc '' Enable vertical synchronization. Chooses the best method (drm, opengl, opengl-oml, opengl-swc, opengl-mswc) automatically. The bool value should be used, the others are just for backwards compatibility. @@ -258,10 +258,10 @@ in { deviation = 5.0; }; ''; - description = '' + description = lib.mdDoc '' Picom settings. Use this option to configure Picom settings not exposed in a NixOS option or to bypass one. For the available options see the - CONFIGURATION FILES section at <literal>picom(1)</literal>. + CONFIGURATION FILES section at `picom(1)`. ''; }; }; diff --git a/nixos/modules/services/x11/redshift.nix b/nixos/modules/services/x11/redshift.nix index cc9f964754f35..3eb9e28edae91 100644 --- a/nixos/modules/services/x11/redshift.nix +++ b/nixos/modules/services/x11/redshift.nix @@ -29,7 +29,7 @@ in { enable = mkOption { type = types.bool; default = false; - description = '' + description = lib.mdDoc '' Enable Redshift to change your screen's colour temperature depending on the time of day. ''; @@ -39,17 +39,17 @@ in { day = mkOption { type = types.int; default = 5500; - description = '' + description = lib.mdDoc '' Colour temperature to use during the day, between - <literal>1000</literal> and <literal>25000</literal> K. + `1000` and `25000` K. ''; }; night = mkOption { type = types.int; default = 3700; - description = '' + description = lib.mdDoc '' Colour temperature to use at night, between - <literal>1000</literal> and <literal>25000</literal> K. + `1000` and `25000` K. ''; }; }; @@ -58,17 +58,17 @@ in { day = mkOption { type = types.str; default = "1"; - description = '' + description = lib.mdDoc '' Screen brightness to apply during the day, - between <literal>0.1</literal> and <literal>1.0</literal>. + between `0.1` and `1.0`. ''; }; night = mkOption { type = types.str; default = "1"; - description = '' + description = lib.mdDoc '' Screen brightness to apply during the night, - between <literal>0.1</literal> and <literal>1.0</literal>. + between `0.1` and `1.0`. ''; }; }; @@ -77,7 +77,7 @@ in { type = types.package; default = pkgs.redshift; defaultText = literalExpression "pkgs.redshift"; - description = '' + description = lib.mdDoc '' redshift derivation to use. ''; }; @@ -86,7 +86,7 @@ in { type = types.str; default = "/bin/redshift"; example = "/bin/redshift-gtk"; - description = '' + description = lib.mdDoc '' Redshift executable to use within the package. ''; }; @@ -95,9 +95,9 @@ in { type = types.listOf types.str; default = []; example = [ "-v" "-m randr" ]; - description = '' + description = lib.mdDoc '' Additional command-line arguments to pass to - <command>redshift</command>. + {command}`redshift`. ''; }; }; diff --git a/nixos/modules/services/x11/touchegg.nix b/nixos/modules/services/x11/touchegg.nix index 9d3678e7696df..f1103c054c57f 100644 --- a/nixos/modules/services/x11/touchegg.nix +++ b/nixos/modules/services/x11/touchegg.nix @@ -11,13 +11,13 @@ in { ###### interface options.services.touchegg = { - enable = mkEnableOption "touchegg, a multi-touch gesture recognizer"; + enable = mkEnableOption (lib.mdDoc "touchegg, a multi-touch gesture recognizer"); package = mkOption { type = types.package; default = pkgs.touchegg; defaultText = literalExpression "pkgs.touchegg"; - description = "touchegg derivation to use."; + description = lib.mdDoc "touchegg derivation to use."; }; }; diff --git a/nixos/modules/services/x11/unclutter-xfixes.nix b/nixos/modules/services/x11/unclutter-xfixes.nix index 0b4d06f640d24..4a35176c58336 100644 --- a/nixos/modules/services/x11/unclutter-xfixes.nix +++ b/nixos/modules/services/x11/unclutter-xfixes.nix @@ -8,32 +8,32 @@ in { options.services.unclutter-xfixes = { enable = mkOption { - description = "Enable unclutter-xfixes to hide your mouse cursor when inactive."; + description = lib.mdDoc "Enable unclutter-xfixes to hide your mouse cursor when inactive."; type = types.bool; default = false; }; package = mkOption { - description = "unclutter-xfixes derivation to use."; + description = lib.mdDoc "unclutter-xfixes derivation to use."; type = types.package; default = pkgs.unclutter-xfixes; defaultText = literalExpression "pkgs.unclutter-xfixes"; }; timeout = mkOption { - description = "Number of seconds before the cursor is marked inactive."; + description = lib.mdDoc "Number of seconds before the cursor is marked inactive."; type = types.int; default = 1; }; threshold = mkOption { - description = "Minimum number of pixels considered cursor movement."; + description = lib.mdDoc "Minimum number of pixels considered cursor movement."; type = types.int; default = 1; }; extraOptions = mkOption { - description = "More arguments to pass to the unclutter-xfixes command."; + description = lib.mdDoc "More arguments to pass to the unclutter-xfixes command."; type = types.listOf types.str; default = []; example = [ "exclude-root" "ignore-scrolling" "fork" ]; diff --git a/nixos/modules/services/x11/unclutter.nix b/nixos/modules/services/x11/unclutter.nix index bdb5fa7b50cd7..039214a575a71 100644 --- a/nixos/modules/services/x11/unclutter.nix +++ b/nixos/modules/services/x11/unclutter.nix @@ -8,7 +8,7 @@ in { options.services.unclutter = { enable = mkOption { - description = "Enable unclutter to hide your mouse cursor when inactive"; + description = lib.mdDoc "Enable unclutter to hide your mouse cursor when inactive"; type = types.bool; default = false; }; @@ -17,36 +17,36 @@ in { type = types.package; default = pkgs.unclutter; defaultText = literalExpression "pkgs.unclutter"; - description = "unclutter derivation to use."; + description = lib.mdDoc "unclutter derivation to use."; }; keystroke = mkOption { - description = "Wait for a keystroke before hiding the cursor"; + description = lib.mdDoc "Wait for a keystroke before hiding the cursor"; type = types.bool; default = false; }; timeout = mkOption { - description = "Number of seconds before the cursor is marked inactive"; + description = lib.mdDoc "Number of seconds before the cursor is marked inactive"; type = types.int; default = 1; }; threshold = mkOption { - description = "Minimum number of pixels considered cursor movement"; + description = lib.mdDoc "Minimum number of pixels considered cursor movement"; type = types.int; default = 1; }; excluded = mkOption { - description = "Names of windows where unclutter should not apply"; + description = lib.mdDoc "Names of windows where unclutter should not apply"; type = types.listOf types.str; default = []; example = [ "" ]; }; extraOptions = mkOption { - description = "More arguments to pass to the unclutter command"; + description = lib.mdDoc "More arguments to pass to the unclutter command"; type = types.listOf types.str; default = []; example = [ "noevent" "grab" ]; diff --git a/nixos/modules/services/x11/urserver.nix b/nixos/modules/services/x11/urserver.nix index 0beb62eb766a3..d0b6e0775e5d2 100644 --- a/nixos/modules/services/x11/urserver.nix +++ b/nixos/modules/services/x11/urserver.nix @@ -5,7 +5,7 @@ let cfg = config.services.urserver; in { - options.services.urserver.enable = lib.mkEnableOption "urserver"; + options.services.urserver.enable = lib.mkEnableOption (lib.mdDoc "urserver"); config = lib.mkIf cfg.enable { diff --git a/nixos/modules/services/x11/urxvtd.nix b/nixos/modules/services/x11/urxvtd.nix index 0a0df447f4e16..fedcb6c7293ef 100644 --- a/nixos/modules/services/x11/urxvtd.nix +++ b/nixos/modules/services/x11/urxvtd.nix @@ -11,7 +11,7 @@ in { enable = mkOption { type = types.bool; default = false; - description = '' + description = lib.mdDoc '' Enable urxvtd, the urxvt terminal daemon. To use urxvtd, run "urxvtc". ''; @@ -20,7 +20,7 @@ in { package = mkOption { default = pkgs.rxvt-unicode; defaultText = literalExpression "pkgs.rxvt-unicode"; - description = '' + description = lib.mdDoc '' Package to install. Usually pkgs.rxvt-unicode. ''; type = types.package; diff --git a/nixos/modules/services/x11/window-managers/2bwm.nix b/nixos/modules/services/x11/window-managers/2bwm.nix index fdbdf35b0f5af..8483a74b9f6c8 100644 --- a/nixos/modules/services/x11/window-managers/2bwm.nix +++ b/nixos/modules/services/x11/window-managers/2bwm.nix @@ -13,7 +13,7 @@ in ###### interface options = { - services.xserver.windowManager."2bwm".enable = mkEnableOption "2bwm"; + services.xserver.windowManager."2bwm".enable = mkEnableOption (lib.mdDoc "2bwm"); }; diff --git a/nixos/modules/services/x11/window-managers/afterstep.nix b/nixos/modules/services/x11/window-managers/afterstep.nix index ba88a64c702a6..a060635979715 100644 --- a/nixos/modules/services/x11/window-managers/afterstep.nix +++ b/nixos/modules/services/x11/window-managers/afterstep.nix @@ -8,7 +8,7 @@ in { ###### interface options = { - services.xserver.windowManager.afterstep.enable = mkEnableOption "afterstep"; + services.xserver.windowManager.afterstep.enable = mkEnableOption (lib.mdDoc "afterstep"); }; ###### implementation diff --git a/nixos/modules/services/x11/window-managers/awesome.nix b/nixos/modules/services/x11/window-managers/awesome.nix index c6c0c934f9aeb..c1231d3fbf380 100644 --- a/nixos/modules/services/x11/window-managers/awesome.nix +++ b/nixos/modules/services/x11/window-managers/awesome.nix @@ -6,7 +6,7 @@ let cfg = config.services.xserver.windowManager.awesome; awesome = cfg.package; - getLuaPath = lib : dir : "${lib}/${dir}/lua/${pkgs.luaPackages.lua.luaversion}"; + getLuaPath = lib: dir: "${lib}/${dir}/lua/${awesome.lua.luaversion}"; makeSearchPath = lib.concatMapStrings (path: " --search " + (getLuaPath path "share") + " --search " + (getLuaPath path "lib") @@ -21,26 +21,26 @@ in services.xserver.windowManager.awesome = { - enable = mkEnableOption "Awesome window manager"; + enable = mkEnableOption (lib.mdDoc "Awesome window manager"); luaModules = mkOption { default = []; type = types.listOf types.package; - description = "List of lua packages available for being used in the Awesome configuration."; + description = lib.mdDoc "List of lua packages available for being used in the Awesome configuration."; example = literalExpression "[ pkgs.luaPackages.vicious ]"; }; package = mkOption { default = null; type = types.nullOr types.package; - description = "Package to use for running the Awesome WM."; + description = lib.mdDoc "Package to use for running the Awesome WM."; apply = pkg: if pkg == null then pkgs.awesome else pkg; }; noArgb = mkOption { default = false; type = types.bool; - description = "Disable client transparency support, which can be greatly detrimental to performance in some setups"; + description = lib.mdDoc "Disable client transparency support, which can be greatly detrimental to performance in some setups"; }; }; diff --git a/nixos/modules/services/x11/window-managers/berry.nix b/nixos/modules/services/x11/window-managers/berry.nix index 0d2285e7a60eb..eb5528602677f 100644 --- a/nixos/modules/services/x11/window-managers/berry.nix +++ b/nixos/modules/services/x11/window-managers/berry.nix @@ -8,7 +8,7 @@ in { ###### interface options = { - services.xserver.windowManager.berry.enable = mkEnableOption "berry"; + services.xserver.windowManager.berry.enable = mkEnableOption (lib.mdDoc "berry"); }; ###### implementation diff --git a/nixos/modules/services/x11/window-managers/bspwm.nix b/nixos/modules/services/x11/window-managers/bspwm.nix index ade24061a069a..c403f744cd432 100644 --- a/nixos/modules/services/x11/window-managers/bspwm.nix +++ b/nixos/modules/services/x11/window-managers/bspwm.nix @@ -9,14 +9,14 @@ in { options = { services.xserver.windowManager.bspwm = { - enable = mkEnableOption "bspwm"; + enable = mkEnableOption (lib.mdDoc "bspwm"); package = mkOption { type = types.package; default = pkgs.bspwm; defaultText = literalExpression "pkgs.bspwm"; example = literalExpression "pkgs.bspwm-unstable"; - description = '' + description = lib.mdDoc '' bspwm package to use. ''; }; @@ -24,7 +24,7 @@ in type = with types; nullOr path; example = literalExpression ''"''${pkgs.bspwm}/share/doc/bspwm/examples/bspwmrc"''; default = null; - description = '' + description = lib.mdDoc '' Path to the bspwm configuration file. If null, $HOME/.config/bspwm/bspwmrc will be used. ''; @@ -36,7 +36,7 @@ in default = pkgs.sxhkd; defaultText = literalExpression "pkgs.sxhkd"; example = literalExpression "pkgs.sxhkd-unstable"; - description = '' + description = lib.mdDoc '' sxhkd package to use. ''; }; @@ -44,7 +44,7 @@ in type = with types; nullOr path; example = literalExpression ''"''${pkgs.bspwm}/share/doc/bspwm/examples/sxhkdrc"''; default = null; - description = '' + description = lib.mdDoc '' Path to the sxhkd configuration file. If null, $HOME/.config/sxhkd/sxhkdrc will be used. ''; diff --git a/nixos/modules/services/x11/window-managers/clfswm.nix b/nixos/modules/services/x11/window-managers/clfswm.nix index 78772c799744e..f2e4c2f91c9d5 100644 --- a/nixos/modules/services/x11/window-managers/clfswm.nix +++ b/nixos/modules/services/x11/window-managers/clfswm.nix @@ -9,12 +9,12 @@ in { options = { services.xserver.windowManager.clfswm = { - enable = mkEnableOption "clfswm"; + enable = mkEnableOption (lib.mdDoc "clfswm"); package = mkOption { type = types.package; default = pkgs.lispPackages.clfswm; defaultText = literalExpression "pkgs.lispPackages.clfswm"; - description = '' + description = lib.mdDoc '' clfswm package to use. ''; }; diff --git a/nixos/modules/services/x11/window-managers/cwm.nix b/nixos/modules/services/x11/window-managers/cwm.nix index 03375a226bb6b..9a143e7bccc39 100644 --- a/nixos/modules/services/x11/window-managers/cwm.nix +++ b/nixos/modules/services/x11/window-managers/cwm.nix @@ -7,7 +7,7 @@ let in { options = { - services.xserver.windowManager.cwm.enable = mkEnableOption "cwm"; + services.xserver.windowManager.cwm.enable = mkEnableOption (lib.mdDoc "cwm"); }; config = mkIf cfg.enable { services.xserver.windowManager.session = singleton diff --git a/nixos/modules/services/x11/window-managers/default.nix b/nixos/modules/services/x11/window-managers/default.nix index d71738ea633f2..36d5b3c8156d8 100644 --- a/nixos/modules/services/x11/window-managers/default.nix +++ b/nixos/modules/services/x11/window-managers/default.nix @@ -19,7 +19,9 @@ in ./evilwm.nix ./exwm.nix ./fluxbox.nix - ./fvwm.nix + ./fvwm2.nix + ./fvwm3.nix + ./hackedbox.nix ./herbstluftwm.nix ./i3.nix ./jwm.nix @@ -57,10 +59,10 @@ in name = "wmii"; start = "..."; }]; - description = '' + description = lib.mdDoc '' Internal option used to add some common line to window manager scripts before forwarding the value to the - <varname>displayManager</varname>. + `displayManager`. ''; apply = map (d: d // { manage = "window"; @@ -71,8 +73,8 @@ in type = types.nullOr types.str; default = null; example = "wmii"; - description = '' - <emphasis role="strong">Deprecated</emphasis>, please use <xref linkend="opt-services.xserver.displayManager.defaultSession"/> instead. + description = lib.mdDoc '' + **Deprecated**, please use [](#opt-services.xserver.displayManager.defaultSession) instead. Default window manager loaded if none have been chosen. ''; diff --git a/nixos/modules/services/x11/window-managers/dwm.nix b/nixos/modules/services/x11/window-managers/dwm.nix index 7777913ce1e62..2dac41dbe988f 100644 --- a/nixos/modules/services/x11/window-managers/dwm.nix +++ b/nixos/modules/services/x11/window-managers/dwm.nix @@ -13,7 +13,7 @@ in ###### interface options = { - services.xserver.windowManager.dwm.enable = mkEnableOption "dwm"; + services.xserver.windowManager.dwm.enable = mkEnableOption (lib.mdDoc "dwm"); }; diff --git a/nixos/modules/services/x11/window-managers/e16.nix b/nixos/modules/services/x11/window-managers/e16.nix index 3e1a22c4dabd8..000feea12c2c7 100644 --- a/nixos/modules/services/x11/window-managers/e16.nix +++ b/nixos/modules/services/x11/window-managers/e16.nix @@ -8,7 +8,7 @@ in { ###### interface options = { - services.xserver.windowManager.e16.enable = mkEnableOption "e16"; + services.xserver.windowManager.e16.enable = mkEnableOption (lib.mdDoc "e16"); }; ###### implementation diff --git a/nixos/modules/services/x11/window-managers/evilwm.nix b/nixos/modules/services/x11/window-managers/evilwm.nix index 6f1db2110f879..842f84c2cfbea 100644 --- a/nixos/modules/services/x11/window-managers/evilwm.nix +++ b/nixos/modules/services/x11/window-managers/evilwm.nix @@ -8,7 +8,7 @@ in { ###### interface options = { - services.xserver.windowManager.evilwm.enable = mkEnableOption "evilwm"; + services.xserver.windowManager.evilwm.enable = mkEnableOption (lib.mdDoc "evilwm"); }; ###### implementation diff --git a/nixos/modules/services/x11/window-managers/exwm.nix b/nixos/modules/services/x11/window-managers/exwm.nix index b505f720f04c3..a97ed74ae8814 100644 --- a/nixos/modules/services/x11/window-managers/exwm.nix +++ b/nixos/modules/services/x11/window-managers/exwm.nix @@ -18,7 +18,7 @@ in { options = { services.xserver.windowManager.exwm = { - enable = mkEnableOption "exwm"; + enable = mkEnableOption (lib.mdDoc "exwm"); loadScript = mkOption { default = "(require 'exwm)"; type = types.lines; @@ -26,7 +26,7 @@ in (require 'exwm) (exwm-enable) ''; - description = '' + description = lib.mdDoc '' Emacs lisp code to be run after loading the user's init file. If enableDefaultConfig is true, this will be run before loading the default config. @@ -35,7 +35,7 @@ in enableDefaultConfig = mkOption { default = true; type = lib.types.bool; - description = "Enable an uncustomised exwm configuration."; + description = lib.mdDoc "Enable an uncustomised exwm configuration."; }; extraPackages = mkOption { type = types.functionTo (types.listOf types.package); @@ -48,10 +48,10 @@ in epkgs.proofgeneral ] ''; - description = '' + description = lib.mdDoc '' Extra packages available to Emacs. The value must be a function which receives the attrset defined in - <varname>emacs.pkgs</varname> as the sole argument. + {var}`emacs.pkgs` as the sole argument. ''; }; }; diff --git a/nixos/modules/services/x11/window-managers/fluxbox.nix b/nixos/modules/services/x11/window-managers/fluxbox.nix index b409335702aff..24165fb6fb07e 100644 --- a/nixos/modules/services/x11/window-managers/fluxbox.nix +++ b/nixos/modules/services/x11/window-managers/fluxbox.nix @@ -8,7 +8,7 @@ in { ###### interface options = { - services.xserver.windowManager.fluxbox.enable = mkEnableOption "fluxbox"; + services.xserver.windowManager.fluxbox.enable = mkEnableOption (lib.mdDoc "fluxbox"); }; ###### implementation diff --git a/nixos/modules/services/x11/window-managers/fvwm.nix b/nixos/modules/services/x11/window-managers/fvwm.nix deleted file mode 100644 index e283886ecc400..0000000000000 --- a/nixos/modules/services/x11/window-managers/fvwm.nix +++ /dev/null @@ -1,41 +0,0 @@ -{ config, lib, pkgs, ... }: - -with lib; - -let - cfg = config.services.xserver.windowManager.fvwm; - fvwm = pkgs.fvwm.override { enableGestures = cfg.gestures; }; -in - -{ - - ###### interface - - options = { - services.xserver.windowManager.fvwm = { - enable = mkEnableOption "Fvwm window manager"; - - gestures = mkOption { - default = false; - type = types.bool; - description = "Whether or not to enable libstroke for gesture support"; - }; - }; - }; - - - ###### implementation - - config = mkIf cfg.enable { - services.xserver.windowManager.session = singleton - { name = "fvwm"; - start = - '' - ${fvwm}/bin/fvwm & - waitPID=$! - ''; - }; - - environment.systemPackages = [ fvwm ]; - }; -} diff --git a/nixos/modules/services/x11/window-managers/fvwm2.nix b/nixos/modules/services/x11/window-managers/fvwm2.nix new file mode 100644 index 0000000000000..aaf3c5c46906a --- /dev/null +++ b/nixos/modules/services/x11/window-managers/fvwm2.nix @@ -0,0 +1,47 @@ +{ config, lib, pkgs, ... }: + +with lib; + +let + cfg = config.services.xserver.windowManager.fvwm2; + fvwm2 = pkgs.fvwm2.override { enableGestures = cfg.gestures; }; +in + +{ + + imports = [ + (mkRenamedOptionModule + [ "services" "xserver" "windowManager" "fvwm" ] + [ "services" "xserver" "windowManager" "fvwm2" ]) + ]; + + ###### interface + + options = { + services.xserver.windowManager.fvwm2 = { + enable = mkEnableOption (lib.mdDoc "Fvwm2 window manager"); + + gestures = mkOption { + default = false; + type = types.bool; + description = lib.mdDoc "Whether or not to enable libstroke for gesture support"; + }; + }; + }; + + + ###### implementation + + config = mkIf cfg.enable { + services.xserver.windowManager.session = singleton + { name = "fvwm2"; + start = + '' + ${fvwm2}/bin/fvwm & + waitPID=$! + ''; + }; + + environment.systemPackages = [ fvwm2 ]; + }; +} diff --git a/nixos/modules/services/x11/window-managers/fvwm3.nix b/nixos/modules/services/x11/window-managers/fvwm3.nix new file mode 100644 index 0000000000000..50c76b67eea34 --- /dev/null +++ b/nixos/modules/services/x11/window-managers/fvwm3.nix @@ -0,0 +1,35 @@ +{ config, lib, pkgs, ... }: + +with lib; + +let + cfg = config.services.xserver.windowManager.fvwm3; + inherit (pkgs) fvwm3; +in + +{ + + ###### interface + + options = { + services.xserver.windowManager.fvwm3 = { + enable = mkEnableOption (lib.mdDoc "Fvwm3 window manager"); + }; + }; + + + ###### implementation + + config = mkIf cfg.enable { + services.xserver.windowManager.session = singleton + { name = "fvwm3"; + start = + '' + ${fvwm3}/bin/fvwm3 & + waitPID=$! + ''; + }; + + environment.systemPackages = [ fvwm3 ]; + }; +} diff --git a/nixos/modules/services/x11/window-managers/hackedbox.nix b/nixos/modules/services/x11/window-managers/hackedbox.nix new file mode 100644 index 0000000000000..61e911961f517 --- /dev/null +++ b/nixos/modules/services/x11/window-managers/hackedbox.nix @@ -0,0 +1,25 @@ +{ config, lib, pkgs, ... }: + +with lib; + +let + cfg = config.services.xserver.windowManager.hackedbox; +in +{ + ###### interface + options = { + services.xserver.windowManager.hackedbox.enable = mkEnableOption (lib.mdDoc "hackedbox"); + }; + + ###### implementation + config = mkIf cfg.enable { + services.xserver.windowManager.session = singleton { + name = "hackedbox"; + start = '' + ${pkgs.hackedbox}/bin/hackedbox & + waitPID=$! + ''; + }; + environment.systemPackages = [ pkgs.hackedbox ]; + }; +} diff --git a/nixos/modules/services/x11/window-managers/herbstluftwm.nix b/nixos/modules/services/x11/window-managers/herbstluftwm.nix index 354d70c695cb5..816cbb36cafdf 100644 --- a/nixos/modules/services/x11/window-managers/herbstluftwm.nix +++ b/nixos/modules/services/x11/window-managers/herbstluftwm.nix @@ -9,13 +9,13 @@ in { options = { services.xserver.windowManager.herbstluftwm = { - enable = mkEnableOption "herbstluftwm"; + enable = mkEnableOption (lib.mdDoc "herbstluftwm"); package = mkOption { type = types.package; default = pkgs.herbstluftwm; defaultText = literalExpression "pkgs.herbstluftwm"; - description = '' + description = lib.mdDoc '' Herbstluftwm package to use. ''; }; @@ -23,7 +23,7 @@ in configFile = mkOption { default = null; type = with types; nullOr path; - description = '' + description = lib.mdDoc '' Path to the herbstluftwm configuration file. If left at the default value, $XDG_CONFIG_HOME/herbstluftwm/autostart will be used. diff --git a/nixos/modules/services/x11/window-managers/i3.nix b/nixos/modules/services/x11/window-managers/i3.nix index 99f9997024fe3..64109e0c39fdd 100644 --- a/nixos/modules/services/x11/window-managers/i3.nix +++ b/nixos/modules/services/x11/window-managers/i3.nix @@ -8,12 +8,12 @@ in { options.services.xserver.windowManager.i3 = { - enable = mkEnableOption "i3 window manager"; + enable = mkEnableOption (lib.mdDoc "i3 window manager"); configFile = mkOption { default = null; type = with types; nullOr path; - description = '' + description = lib.mdDoc '' Path to the i3 configuration file. If left at the default value, $HOME/.i3/config will be used. ''; @@ -22,7 +22,7 @@ in extraSessionCommands = mkOption { default = ""; type = types.lines; - description = '' + description = lib.mdDoc '' Shell commands executed just before i3 is started. ''; }; @@ -32,7 +32,7 @@ in default = pkgs.i3; defaultText = literalExpression "pkgs.i3"; example = literalExpression "pkgs.i3-gaps"; - description = '' + description = lib.mdDoc '' i3 package to use. ''; }; @@ -47,7 +47,7 @@ in i3lock ] ''; - description = '' + description = lib.mdDoc '' Extra packages to be installed system wide. ''; }; diff --git a/nixos/modules/services/x11/window-managers/icewm.nix b/nixos/modules/services/x11/window-managers/icewm.nix index f4ae9222df672..48741aa41d853 100644 --- a/nixos/modules/services/x11/window-managers/icewm.nix +++ b/nixos/modules/services/x11/window-managers/icewm.nix @@ -8,7 +8,7 @@ in { ###### interface options = { - services.xserver.windowManager.icewm.enable = mkEnableOption "icewm"; + services.xserver.windowManager.icewm.enable = mkEnableOption (lib.mdDoc "icewm"); }; ###### implementation diff --git a/nixos/modules/services/x11/window-managers/jwm.nix b/nixos/modules/services/x11/window-managers/jwm.nix index 0e8dab2e9224d..40758029bc658 100644 --- a/nixos/modules/services/x11/window-managers/jwm.nix +++ b/nixos/modules/services/x11/window-managers/jwm.nix @@ -8,7 +8,7 @@ in { ###### interface options = { - services.xserver.windowManager.jwm.enable = mkEnableOption "jwm"; + services.xserver.windowManager.jwm.enable = mkEnableOption (lib.mdDoc "jwm"); }; ###### implementation diff --git a/nixos/modules/services/x11/window-managers/leftwm.nix b/nixos/modules/services/x11/window-managers/leftwm.nix index 3ef40df95df2c..2571735ba8bf9 100644 --- a/nixos/modules/services/x11/window-managers/leftwm.nix +++ b/nixos/modules/services/x11/window-managers/leftwm.nix @@ -8,7 +8,7 @@ in { ###### interface options = { - services.xserver.windowManager.leftwm.enable = mkEnableOption "leftwm"; + services.xserver.windowManager.leftwm.enable = mkEnableOption (lib.mdDoc "leftwm"); }; ###### implementation diff --git a/nixos/modules/services/x11/window-managers/lwm.nix b/nixos/modules/services/x11/window-managers/lwm.nix index e2aa062fd13be..517abb23d4af6 100644 --- a/nixos/modules/services/x11/window-managers/lwm.nix +++ b/nixos/modules/services/x11/window-managers/lwm.nix @@ -8,7 +8,7 @@ in { ###### interface options = { - services.xserver.windowManager.lwm.enable = mkEnableOption "lwm"; + services.xserver.windowManager.lwm.enable = mkEnableOption (lib.mdDoc "lwm"); }; ###### implementation diff --git a/nixos/modules/services/x11/window-managers/metacity.nix b/nixos/modules/services/x11/window-managers/metacity.nix index 600afe759b2c9..1f69147af5bc4 100644 --- a/nixos/modules/services/x11/window-managers/metacity.nix +++ b/nixos/modules/services/x11/window-managers/metacity.nix @@ -10,7 +10,7 @@ in { options = { - services.xserver.windowManager.metacity.enable = mkEnableOption "metacity"; + services.xserver.windowManager.metacity.enable = mkEnableOption (lib.mdDoc "metacity"); }; config = mkIf cfg.enable { diff --git a/nixos/modules/services/x11/window-managers/mlvwm.nix b/nixos/modules/services/x11/window-managers/mlvwm.nix index 08dd04020296d..fe0433c24b60f 100644 --- a/nixos/modules/services/x11/window-managers/mlvwm.nix +++ b/nixos/modules/services/x11/window-managers/mlvwm.nix @@ -8,12 +8,12 @@ in { options.services.xserver.windowManager.mlvwm = { - enable = mkEnableOption "Macintosh-like Virtual Window Manager"; + enable = mkEnableOption (lib.mdDoc "Macintosh-like Virtual Window Manager"); configFile = mkOption { default = null; type = with types; nullOr path; - description = '' + description = lib.mdDoc '' Path to the mlvwm configuration file. If left at the default value, $HOME/.mlvwmrc will be used. ''; diff --git a/nixos/modules/services/x11/window-managers/mwm.nix b/nixos/modules/services/x11/window-managers/mwm.nix index 31f7b725f747d..9f8dc0939e5ea 100644 --- a/nixos/modules/services/x11/window-managers/mwm.nix +++ b/nixos/modules/services/x11/window-managers/mwm.nix @@ -8,7 +8,7 @@ in { ###### interface options = { - services.xserver.windowManager.mwm.enable = mkEnableOption "mwm"; + services.xserver.windowManager.mwm.enable = mkEnableOption (lib.mdDoc "mwm"); }; ###### implementation diff --git a/nixos/modules/services/x11/window-managers/notion.nix b/nixos/modules/services/x11/window-managers/notion.nix index 4ece0d241c90c..0015e90a41c5e 100644 --- a/nixos/modules/services/x11/window-managers/notion.nix +++ b/nixos/modules/services/x11/window-managers/notion.nix @@ -8,7 +8,7 @@ in { options = { - services.xserver.windowManager.notion.enable = mkEnableOption "notion"; + services.xserver.windowManager.notion.enable = mkEnableOption (lib.mdDoc "notion"); }; config = mkIf cfg.enable { diff --git a/nixos/modules/services/x11/window-managers/openbox.nix b/nixos/modules/services/x11/window-managers/openbox.nix index 165772d1aa097..bf5a500f431ab 100644 --- a/nixos/modules/services/x11/window-managers/openbox.nix +++ b/nixos/modules/services/x11/window-managers/openbox.nix @@ -7,7 +7,7 @@ in { options = { - services.xserver.windowManager.openbox.enable = mkEnableOption "openbox"; + services.xserver.windowManager.openbox.enable = mkEnableOption (lib.mdDoc "openbox"); }; config = mkIf cfg.enable { diff --git a/nixos/modules/services/x11/window-managers/oroborus.nix b/nixos/modules/services/x11/window-managers/oroborus.nix index bd7e3396864b2..654b8708e48fe 100644 --- a/nixos/modules/services/x11/window-managers/oroborus.nix +++ b/nixos/modules/services/x11/window-managers/oroborus.nix @@ -8,7 +8,7 @@ in { ###### interface options = { - services.xserver.windowManager.oroborus.enable = mkEnableOption "oroborus"; + services.xserver.windowManager.oroborus.enable = mkEnableOption (lib.mdDoc "oroborus"); }; ###### implementation diff --git a/nixos/modules/services/x11/window-managers/pekwm.nix b/nixos/modules/services/x11/window-managers/pekwm.nix index 850335ce7ddfa..8818f568647a4 100644 --- a/nixos/modules/services/x11/window-managers/pekwm.nix +++ b/nixos/modules/services/x11/window-managers/pekwm.nix @@ -8,7 +8,7 @@ in { ###### interface options = { - services.xserver.windowManager.pekwm.enable = mkEnableOption "pekwm"; + services.xserver.windowManager.pekwm.enable = mkEnableOption (lib.mdDoc "pekwm"); }; ###### implementation diff --git a/nixos/modules/services/x11/window-managers/qtile.nix b/nixos/modules/services/x11/window-managers/qtile.nix index 4d455fdf7b2d5..523642591d947 100644 --- a/nixos/modules/services/x11/window-managers/qtile.nix +++ b/nixos/modules/services/x11/window-managers/qtile.nix @@ -8,7 +8,7 @@ in { options.services.xserver.windowManager.qtile = { - enable = mkEnableOption "qtile"; + enable = mkEnableOption (lib.mdDoc "qtile"); package = mkPackageOption pkgs "qtile" { }; }; diff --git a/nixos/modules/services/x11/window-managers/ratpoison.nix b/nixos/modules/services/x11/window-managers/ratpoison.nix index 0d58481d45791..1de0fad3e54d8 100644 --- a/nixos/modules/services/x11/window-managers/ratpoison.nix +++ b/nixos/modules/services/x11/window-managers/ratpoison.nix @@ -8,7 +8,7 @@ in { ###### interface options = { - services.xserver.windowManager.ratpoison.enable = mkEnableOption "ratpoison"; + services.xserver.windowManager.ratpoison.enable = mkEnableOption (lib.mdDoc "ratpoison"); }; ###### implementation diff --git a/nixos/modules/services/x11/window-managers/sawfish.nix b/nixos/modules/services/x11/window-managers/sawfish.nix index b988b5e1829e6..1945a1af6763b 100644 --- a/nixos/modules/services/x11/window-managers/sawfish.nix +++ b/nixos/modules/services/x11/window-managers/sawfish.nix @@ -8,7 +8,7 @@ in { ###### interface options = { - services.xserver.windowManager.sawfish.enable = mkEnableOption "sawfish"; + services.xserver.windowManager.sawfish.enable = mkEnableOption (lib.mdDoc "sawfish"); }; ###### implementation diff --git a/nixos/modules/services/x11/window-managers/smallwm.nix b/nixos/modules/services/x11/window-managers/smallwm.nix index 091ba4f92b94d..e92b18690d8a1 100644 --- a/nixos/modules/services/x11/window-managers/smallwm.nix +++ b/nixos/modules/services/x11/window-managers/smallwm.nix @@ -8,7 +8,7 @@ in { ###### interface options = { - services.xserver.windowManager.smallwm.enable = mkEnableOption "smallwm"; + services.xserver.windowManager.smallwm.enable = mkEnableOption (lib.mdDoc "smallwm"); }; ###### implementation diff --git a/nixos/modules/services/x11/window-managers/spectrwm.nix b/nixos/modules/services/x11/window-managers/spectrwm.nix index a1dc298d24269..c464803a0b6a9 100644 --- a/nixos/modules/services/x11/window-managers/spectrwm.nix +++ b/nixos/modules/services/x11/window-managers/spectrwm.nix @@ -9,7 +9,7 @@ in { options = { - services.xserver.windowManager.spectrwm.enable = mkEnableOption "spectrwm"; + services.xserver.windowManager.spectrwm.enable = mkEnableOption (lib.mdDoc "spectrwm"); }; config = mkIf cfg.enable { diff --git a/nixos/modules/services/x11/window-managers/stumpwm.nix b/nixos/modules/services/x11/window-managers/stumpwm.nix index 27a17178476a0..162af689dbbac 100644 --- a/nixos/modules/services/x11/window-managers/stumpwm.nix +++ b/nixos/modules/services/x11/window-managers/stumpwm.nix @@ -8,7 +8,7 @@ in { options = { - services.xserver.windowManager.stumpwm.enable = mkEnableOption "stumpwm"; + services.xserver.windowManager.stumpwm.enable = mkEnableOption (lib.mdDoc "stumpwm"); }; config = mkIf cfg.enable { diff --git a/nixos/modules/services/x11/window-managers/tinywm.nix b/nixos/modules/services/x11/window-managers/tinywm.nix index 8e5d9b9170cab..7418a6ddc7606 100644 --- a/nixos/modules/services/x11/window-managers/tinywm.nix +++ b/nixos/modules/services/x11/window-managers/tinywm.nix @@ -8,7 +8,7 @@ in { ###### interface options = { - services.xserver.windowManager.tinywm.enable = mkEnableOption "tinywm"; + services.xserver.windowManager.tinywm.enable = mkEnableOption (lib.mdDoc "tinywm"); }; ###### implementation diff --git a/nixos/modules/services/x11/window-managers/twm.nix b/nixos/modules/services/x11/window-managers/twm.nix index fc09901aae3b0..231817a26e667 100644 --- a/nixos/modules/services/x11/window-managers/twm.nix +++ b/nixos/modules/services/x11/window-managers/twm.nix @@ -13,7 +13,7 @@ in ###### interface options = { - services.xserver.windowManager.twm.enable = mkEnableOption "twm"; + services.xserver.windowManager.twm.enable = mkEnableOption (lib.mdDoc "twm"); }; diff --git a/nixos/modules/services/x11/window-managers/windowlab.nix b/nixos/modules/services/x11/window-managers/windowlab.nix index fb891a39fa412..9a0646b6ee7d3 100644 --- a/nixos/modules/services/x11/window-managers/windowlab.nix +++ b/nixos/modules/services/x11/window-managers/windowlab.nix @@ -7,7 +7,7 @@ in { options = { services.xserver.windowManager.windowlab.enable = - lib.mkEnableOption "windowlab"; + lib.mkEnableOption (lib.mdDoc "windowlab"); }; config = lib.mkIf cfg.enable { diff --git a/nixos/modules/services/x11/window-managers/windowmaker.nix b/nixos/modules/services/x11/window-managers/windowmaker.nix index b62723758056e..a679e2b5bc80d 100644 --- a/nixos/modules/services/x11/window-managers/windowmaker.nix +++ b/nixos/modules/services/x11/window-managers/windowmaker.nix @@ -8,7 +8,7 @@ in { ###### interface options = { - services.xserver.windowManager.windowmaker.enable = mkEnableOption "windowmaker"; + services.xserver.windowManager.windowmaker.enable = mkEnableOption (lib.mdDoc "windowmaker"); }; ###### implementation diff --git a/nixos/modules/services/x11/window-managers/wmderland.nix b/nixos/modules/services/x11/window-managers/wmderland.nix index 56b6922096517..ed515741f62e8 100644 --- a/nixos/modules/services/x11/window-managers/wmderland.nix +++ b/nixos/modules/services/x11/window-managers/wmderland.nix @@ -8,12 +8,12 @@ in { options.services.xserver.windowManager.wmderland = { - enable = mkEnableOption "wmderland"; + enable = mkEnableOption (lib.mdDoc "wmderland"); extraSessionCommands = mkOption { default = ""; type = types.lines; - description = '' + description = lib.mdDoc '' Shell commands executed just before wmderland is started. ''; }; @@ -38,7 +38,7 @@ in rxvt-unicode ] ''; - description = '' + description = lib.mdDoc '' Extra packages to be installed system wide. ''; }; diff --git a/nixos/modules/services/x11/window-managers/wmii.nix b/nixos/modules/services/x11/window-managers/wmii.nix index 9b50a99bf23f1..090aa31610ab6 100644 --- a/nixos/modules/services/x11/window-managers/wmii.nix +++ b/nixos/modules/services/x11/window-managers/wmii.nix @@ -7,7 +7,7 @@ let in { options = { - services.xserver.windowManager.wmii.enable = mkEnableOption "wmii"; + services.xserver.windowManager.wmii.enable = mkEnableOption (lib.mdDoc "wmii"); }; config = mkIf cfg.enable { diff --git a/nixos/modules/services/x11/window-managers/xmonad.nix b/nixos/modules/services/x11/window-managers/xmonad.nix index 66d11131391f5..de5996448cb89 100644 --- a/nixos/modules/services/x11/window-managers/xmonad.nix +++ b/nixos/modules/services/x11/window-managers/xmonad.nix @@ -30,7 +30,7 @@ let install -D ${xmonadEnv}/share/man/man1/xmonad.1.gz $out/share/man/man1/xmonad.1.gz makeWrapper ${configured}/bin/xmonad $out/bin/xmonad \ '' + optionalString cfg.enableConfiguredRecompile '' - --set NIX_GHC "${xmonadEnv}/bin/ghc" \ + --set XMONAD_GHC "${xmonadEnv}/bin/ghc" \ '' + '' --set XMONAD_XMESSAGE "${pkgs.xorg.xmessage}/bin/xmessage" ''); @@ -41,18 +41,18 @@ in { options = { services.xserver.windowManager.xmonad = { - enable = mkEnableOption "xmonad"; + enable = mkEnableOption (lib.mdDoc "xmonad"); haskellPackages = mkOption { default = pkgs.haskellPackages; defaultText = literalExpression "pkgs.haskellPackages"; - example = literalExpression "pkgs.haskell.packages.ghc784"; + example = literalExpression "pkgs.haskell.packages.ghc8107"; type = types.attrs; - description = '' + description = lib.mdDoc '' 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 - <varname>extraPackages</varname>. + {var}`extraPackages`. ''; }; @@ -66,23 +66,23 @@ in { haskellPackages.monad-logger ] ''; - description = '' + description = lib.mdDoc '' Extra packages available to ghc when rebuilding Xmonad. The value must be a function which receives the attrset defined - in <varname>haskellPackages</varname> as the sole argument. + in {var}`haskellPackages` as the sole argument. ''; }; enableContribAndExtras = mkOption { default = false; type = lib.types.bool; - description = "Enable xmonad-{contrib,extras} in Xmonad."; + description = lib.mdDoc "Enable xmonad-{contrib,extras} in Xmonad."; }; config = mkOption { default = null; type = with lib.types; nullOr (either path str); - description = '' + description = lib.mdDoc '' Configuration from which XMonad gets compiled. If no value is specified, a vanilla xmonad binary is put in PATH, which will attempt to recompile and exec your xmonad config from $HOME/.xmonad. @@ -94,17 +94,17 @@ in { "mod+q" restart key binding dysfunctional though, because that attempts to call your binary with the "--restart" command line option, unless you implement that yourself. You way mant to bind "mod+q" to - <literal>(restart "xmonad" True)</literal> instead, which will just restart + `(restart "xmonad" True)` instead, which will just restart xmonad from PATH. This allows e.g. switching to the new xmonad binary after rebuilding your system with nixos-rebuild. For the same reason, ghc is not added to the environment when this - option is set, unless <option>enableConfiguredRecompile</option> is - set to <literal>true</literal>. + option is set, unless {option}`enableConfiguredRecompile` is + set to `true`. If you actually want to run xmonad with a config specified here, but also be able to recompile and restart it from a copy of that source in - $HOME/.xmonad on the fly, set <option>enableConfiguredRecompile</option> - to <literal>true</literal> and implement something like "compileRestart" + $HOME/.xmonad on the fly, set {option}`enableConfiguredRecompile` + to `true` and implement something like "compileRestart" from the example. This should allow you to switch at will between the local xmonad and the one NixOS puts in your PATH. @@ -162,8 +162,8 @@ in { enableConfiguredRecompile = mkOption { default = false; type = lib.types.bool; - description = '' - Enable recompilation even if <option>config</option> is set to a + description = lib.mdDoc '' + Enable recompilation even if {option}`config` is set to a non-null value. This adds the necessary Haskell dependencies (GHC with packages) to the xmonad binary's environment. ''; @@ -172,7 +172,7 @@ in { xmonadCliArgs = mkOption { default = []; type = with lib.types; listOf str; - description = '' + description = lib.mdDoc '' Command line arguments passed to the xmonad binary. ''; }; @@ -180,7 +180,7 @@ in { ghcArgs = mkOption { default = []; type = with lib.types; listOf str; - description = '' + description = lib.mdDoc '' Command line arguments passed to the compiler (ghc) invocation when xmonad.config is set. ''; diff --git a/nixos/modules/services/x11/window-managers/yeahwm.nix b/nixos/modules/services/x11/window-managers/yeahwm.nix index 351bd7dfe48b4..9b40cecace269 100644 --- a/nixos/modules/services/x11/window-managers/yeahwm.nix +++ b/nixos/modules/services/x11/window-managers/yeahwm.nix @@ -8,7 +8,7 @@ in { ###### interface options = { - services.xserver.windowManager.yeahwm.enable = mkEnableOption "yeahwm"; + services.xserver.windowManager.yeahwm.enable = mkEnableOption (lib.mdDoc "yeahwm"); }; ###### implementation diff --git a/nixos/modules/services/x11/xautolock.nix b/nixos/modules/services/x11/xautolock.nix index 947d8f4edfb59..8200057660e5b 100644 --- a/nixos/modules/services/x11/xautolock.nix +++ b/nixos/modules/services/x11/xautolock.nix @@ -8,9 +8,9 @@ in { options = { services.xserver.xautolock = { - enable = mkEnableOption "xautolock"; - enableNotifier = mkEnableOption "xautolock.notify" // { - description = '' + enable = mkEnableOption (lib.mdDoc "xautolock"); + enableNotifier = mkEnableOption (lib.mdDoc "xautolock.notify") // { + description = lib.mdDoc '' Whether to enable the notifier feature of xautolock. This publishes a notification before the autolock. ''; @@ -20,7 +20,7 @@ in default = 15; type = types.int; - description = '' + description = lib.mdDoc '' Idle time (in minutes) to wait until xautolock locks the computer. ''; }; @@ -31,7 +31,7 @@ in example = literalExpression ''"''${pkgs.i3lock}/bin/i3lock -i /path/to/img"''; type = types.str; - description = '' + description = lib.mdDoc '' The script to use when automatically locking the computer. ''; }; @@ -41,8 +41,8 @@ in example = literalExpression ''"''${pkgs.i3lock}/bin/i3lock -i /path/to/img"''; type = types.nullOr types.str; - description = '' - The script to use when manually locking the computer with <command>xautolock -locknow</command>. + description = lib.mdDoc '' + The script to use when manually locking the computer with {command}`xautolock -locknow`. ''; }; @@ -50,7 +50,7 @@ in default = 10; type = types.int; - description = '' + description = lib.mdDoc '' Time (in seconds) before the actual lock when the notification about the pending lock should be published. ''; }; @@ -60,7 +60,7 @@ in example = literalExpression ''"''${pkgs.libnotify}/bin/notify-send 'Locking in 10 seconds'"''; type = types.nullOr types.str; - description = '' + description = lib.mdDoc '' Notification script to be used to warn about the pending autolock. ''; }; @@ -70,8 +70,8 @@ in example = "/run/current-system/systemd/bin/systemctl suspend"; type = types.nullOr types.str; - description = '' - The script to use when nothing has happend for as long as <option>killtime</option> + description = lib.mdDoc '' + The script to use when nothing has happend for as long as {option}`killtime` ''; }; @@ -79,8 +79,8 @@ in default = 20; # default according to `man xautolock` type = types.int; - description = '' - Minutes xautolock waits until it executes the script specified in <option>killer</option> + description = lib.mdDoc '' + Minutes xautolock waits until it executes the script specified in {option}`killer` (Has to be at least 10 minutes) ''; }; @@ -89,9 +89,9 @@ in type = types.listOf types.str; default = [ ]; example = [ "-detectsleep" ]; - description = '' + description = lib.mdDoc '' Additional command-line arguments to pass to - <command>xautolock</command>. + {command}`xautolock`. ''; }; }; diff --git a/nixos/modules/services/x11/xbanish.nix b/nixos/modules/services/x11/xbanish.nix index b95fac68f1658..de893fae75a1f 100644 --- a/nixos/modules/services/x11/xbanish.nix +++ b/nixos/modules/services/x11/xbanish.nix @@ -7,10 +7,10 @@ let cfg = config.services.xbanish; in { options.services.xbanish = { - enable = mkEnableOption "xbanish"; + enable = mkEnableOption (lib.mdDoc "xbanish"); arguments = mkOption { - description = "Arguments to pass to xbanish command"; + description = lib.mdDoc "Arguments to pass to xbanish command"; default = ""; example = "-d -i shift"; type = types.str; diff --git a/nixos/modules/services/x11/xfs.nix b/nixos/modules/services/x11/xfs.nix index ea7cfa1aa43c5..591bf461496e9 100644 --- a/nixos/modules/services/x11/xfs.nix +++ b/nixos/modules/services/x11/xfs.nix @@ -19,7 +19,7 @@ in enable = mkOption { type = types.bool; default = false; - description = "Whether to enable the X Font Server."; + description = lib.mdDoc "Whether to enable the X Font Server."; }; }; diff --git a/nixos/modules/services/x11/xserver.nix b/nixos/modules/services/x11/xserver.nix index d488e9b55d434..83a71dcf23e00 100644 --- a/nixos/modules/services/x11/xserver.nix +++ b/nixos/modules/services/x11/xserver.nix @@ -37,18 +37,16 @@ let output = mkOption { type = types.str; example = "DVI-0"; - description = '' - The output name of the monitor, as shown by <citerefentry> - <refentrytitle>xrandr</refentrytitle> - <manvolnum>1</manvolnum> - </citerefentry> invoked without arguments. + description = lib.mdDoc '' + The output name of the monitor, as shown by + {manpage}`xrandr(1)` invoked without arguments. ''; }; primary = mkOption { type = types.bool; default = false; - description = '' + description = lib.mdDoc '' Whether this head is treated as the primary monitor, ''; }; @@ -60,11 +58,10 @@ let DisplaySize 408 306 Option "DPMS" "false" ''; - description = '' - Extra lines to append to the <literal>Monitor</literal> section + description = lib.mdDoc '' + Extra lines to append to the `Monitor` section verbatim. Available options are documented in the MONITOR section in - <citerefentry><refentrytitle>xorg.conf</refentrytitle> - <manvolnum>5</manvolnum></citerefentry>. + {manpage}`xorg.conf(5)`. ''; }; }; @@ -154,8 +151,10 @@ in (mkRemovedOptionModule [ "services" "xserver" "startDbusSession" ] "The user D-Bus session is now always socket activated and this option can safely be removed.") - (mkRemovedOptionModule ["services" "xserver" "useXFS" ] + (mkRemovedOptionModule [ "services" "xserver" "useXFS" ] "Use services.xserver.fontPath instead of useXFS") + (mkRemovedOptionModule [ "services" "xserver" "useGlamor" ] + "Option services.xserver.useGlamor was removed because it is unnecessary. Drivers that uses Glamor will use it automatically.") ]; @@ -168,7 +167,7 @@ in enable = mkOption { type = types.bool; default = false; - description = '' + description = lib.mdDoc '' Whether to enable the X server. ''; }; @@ -176,7 +175,7 @@ in autorun = mkOption { type = types.bool; default = true; - description = '' + description = lib.mdDoc '' Whether to start the X server automatically. ''; }; @@ -185,22 +184,22 @@ in default = []; example = literalExpression "[ pkgs.xterm ]"; type = types.listOf types.package; - description = "Which X11 packages to exclude from the default environment"; + description = lib.mdDoc "Which X11 packages to exclude from the default environment"; }; exportConfiguration = mkOption { type = types.bool; default = false; - description = '' + description = lib.mdDoc '' Whether to symlink the X server configuration under - <filename>/etc/X11/xorg.conf</filename>. + {file}`/etc/X11/xorg.conf`. ''; }; enableTCP = mkOption { type = types.bool; default = false; - description = '' + description = lib.mdDoc '' Whether to allow the X server to accept TCP connections. ''; }; @@ -208,7 +207,7 @@ in autoRepeatDelay = mkOption { type = types.nullOr types.int; default = null; - description = '' + description = lib.mdDoc '' Sets the autorepeat delay (length of time in milliseconds that a key must be depressed before autorepeat starts). ''; }; @@ -216,7 +215,7 @@ in autoRepeatInterval = mkOption { type = types.nullOr types.int; default = null; - description = '' + description = lib.mdDoc '' Sets the autorepeat interval (length of time in milliseconds that should elapse between autorepeat-generated keystrokes). ''; }; @@ -234,21 +233,21 @@ in ''' ] ''; - description = "Content of additional InputClass sections of the X server configuration file."; + description = lib.mdDoc "Content of additional InputClass sections of the X server configuration file."; }; modules = mkOption { type = types.listOf types.path; default = []; example = literalExpression "[ pkgs.xf86_input_wacom ]"; - description = "Packages to be added to the module search path of the X server."; + description = lib.mdDoc "Packages to be added to the module search path of the X server."; }; resolutions = mkOption { type = types.listOf types.attrs; default = []; example = [ { x = 1600; y = 1200; } { x = 1024; y = 786; } ]; - description = '' + description = lib.mdDoc '' The screen resolutions for the X server. The first element is the default resolution. If this list is empty, the X server will automatically configure the resolution. @@ -269,7 +268,7 @@ in path = [ "xorg" n ]; title = removePrefix "xf86video" n; }) pkgs.xorg); - description = '' + description = lib.mdDoc '' The names of the video drivers the configuration supports. They will be tried in order until one that supports your card is found. @@ -285,17 +284,17 @@ in type = types.nullOr types.str; default = null; example = "i810"; - description = '' + description = lib.mdDoc '' The name of the video driver for your graphics card. This option is obsolete; please set the - <option>services.xserver.videoDrivers</option> instead. + {option}`services.xserver.videoDrivers` instead. ''; }; drivers = mkOption { type = types.listOf types.attrs; internal = true; - description = '' + description = lib.mdDoc '' A list of attribute sets specifying drivers to be loaded by the X11 server. ''; @@ -304,17 +303,17 @@ in dpi = mkOption { type = types.nullOr types.int; default = null; - description = '' + description = lib.mdDoc '' Force global DPI resolution to use for X server. It's recommended to use this only when DPI is detected incorrectly; also consider using - <literal>Monitor</literal> section in configuration file instead. + `Monitor` section in configuration file instead. ''; }; updateDbusEnvironment = mkOption { type = types.bool; default = false; - description = '' + description = lib.mdDoc '' Whether to update the DBus activation environment after launching the desktop manager. ''; @@ -323,7 +322,7 @@ in layout = mkOption { type = types.str; default = "us"; - description = '' + description = lib.mdDoc '' Keyboard layout, or multiple keyboard layouts separated by commas. ''; }; @@ -332,7 +331,7 @@ in type = types.str; default = "pc104"; example = "presario"; - description = '' + description = lib.mdDoc '' Keyboard model. ''; }; @@ -341,7 +340,7 @@ in type = types.commas; default = "terminate:ctrl_alt_bksp"; example = "grp:caps_toggle,grp_led:scroll"; - description = '' + description = lib.mdDoc '' X keyboard options; layout switching goes here. ''; }; @@ -350,7 +349,7 @@ in type = types.str; default = ""; example = "colemak"; - description = '' + description = lib.mdDoc '' X keyboard variant. ''; }; @@ -359,22 +358,22 @@ in type = types.path; default = "${pkgs.xkeyboard_config}/etc/X11/xkb"; defaultText = literalExpression ''"''${pkgs.xkeyboard_config}/etc/X11/xkb"''; - description = '' + description = lib.mdDoc '' Path used for -xkbdir xserver parameter. ''; }; config = mkOption { type = types.lines; - description = '' + description = lib.mdDoc '' The contents of the configuration file of the X server - (<filename>xorg.conf</filename>). + ({file}`xorg.conf`). This option is set by multiple modules, and the configs are concatenated together. In Xorg configs the last config entries take precedence, - so you may want to use <literal>lib.mkAfter</literal> on this option + so you may want to use `lib.mkAfter` on this option to override NixOS's defaults. ''; }; @@ -383,14 +382,14 @@ in type = types.lines; default = ""; example = ''FontPath "/path/to/my/fonts"''; - description = "Contents of the first <literal>Files</literal> section of the X server configuration file."; + description = lib.mdDoc "Contents of the first `Files` section of the X server configuration file."; }; deviceSection = mkOption { type = types.lines; default = ""; example = "VideoRAM 131072"; - description = "Contents of the first Device section of the X server configuration file."; + description = lib.mdDoc "Contents of the first Device section of the X server configuration file."; }; screenSection = mkOption { @@ -399,20 +398,20 @@ in example = '' Option "RandRRotation" "on" ''; - description = "Contents of the first Screen section of the X server configuration file."; + description = lib.mdDoc "Contents of the first Screen section of the X server configuration file."; }; monitorSection = mkOption { type = types.lines; default = ""; example = "HorizSync 28-49"; - description = "Contents of the first Monitor section of the X server configuration file."; + description = lib.mdDoc "Contents of the first Monitor section of the X server configuration file."; }; extraConfig = mkOption { type = types.lines; default = ""; - description = "Additional contents (sections) included in the X server configuration file"; + description = lib.mdDoc "Additional contents (sections) included in the X server configuration file"; }; xrandrHeads = mkOption { @@ -432,23 +431,25 @@ in firstPrimary = head heads // { primary = true; }; newHeads = singleton firstPrimary ++ tail heads; in if heads != [] && !hasPrimary then newHeads else heads; - description = '' + description = lib.mdDoc '' Multiple monitor configuration, just specify a list of XRandR outputs. The individual elements should be either simple strings or an attribute set of output options. If the element is a string, it is denoting the physical output for a monitor, if it's an attribute set, you must at least provide the - <option>output</option> option. + {option}`output` option. The monitors will be mapped from left to right in the order of the list. By default, the first monitor will be set as the primary monitor if none of the elements contain an option that has set - <option>primary</option> to <literal>true</literal>. + {option}`primary` to `true`. - <note><para>Only one monitor is allowed to be primary.</para></note> + ::: {.note} + Only one monitor is allowed to be primary. + ::: Be careful using this option with multiple graphic adapters or with drivers that have poor support for XRandR, unexpected things might @@ -466,7 +467,7 @@ in Option "SuspendTime" "0" Option "OffTime" "0" ''; - description = "Contents of the ServerFlags section of the X server configuration file."; + description = lib.mdDoc "Contents of the ServerFlags section of the X server configuration file."; }; moduleSection = mkOption { @@ -477,7 +478,7 @@ in SubSection "extmod" EndSubsection ''; - description = "Contents of the Module section of the X server configuration file."; + description = lib.mdDoc "Contents of the Module section of the X server configuration file."; }; serverLayoutSection = mkOption { @@ -487,28 +488,28 @@ in '' Option "AIGLX" "true" ''; - description = "Contents of the ServerLayout section of the X server configuration file."; + description = lib.mdDoc "Contents of the ServerLayout section of the X server configuration file."; }; extraDisplaySettings = mkOption { type = types.lines; default = ""; example = "Virtual 2048 2048"; - description = "Lines to be added to every Display subsection of the Screen section."; + description = lib.mdDoc "Lines to be added to every Display subsection of the Screen section."; }; defaultDepth = mkOption { type = types.int; default = 0; example = 8; - description = "Default colour depth."; + description = lib.mdDoc "Default colour depth."; }; fontPath = mkOption { type = types.nullOr types.str; default = null; example = "unix/:7100"; - description = '' + description = lib.mdDoc '' Set the X server FontPath. Defaults to null, which means the compiled in defaults will be used. See man xorg.conf for details. @@ -518,20 +519,20 @@ in tty = mkOption { type = types.nullOr types.int; default = 7; - description = "Virtual console for the X server."; + description = lib.mdDoc "Virtual console for the X server."; }; display = mkOption { type = types.nullOr types.int; default = 0; - description = "Display number for the X server."; + description = lib.mdDoc "Display number for the X server."; }; virtualScreen = mkOption { type = types.nullOr types.attrs; default = null; example = { x = 2048; y = 2048; }; - description = '' + description = lib.mdDoc '' Virtual screen size for Xrandr. ''; }; @@ -540,12 +541,12 @@ in type = types.nullOr types.str; default = "/dev/null"; example = "/var/log/Xorg.0.log"; - description = '' + description = lib.mdDoc '' Controls the file Xorg logs to. - The default of <literal>/dev/null</literal> is set so that systemd services (like <literal>displayManagers</literal>) only log to the journal and don't create their own log files. + The default of `/dev/null` is set so that systemd services (like `displayManagers`) only log to the journal and don't create their own log files. - Setting this to <literal>null</literal> will not pass the <literal>-logfile</literal> argument to Xorg which allows it to log to its default logfile locations instead (see <literal>man Xorg</literal>). You probably only want this behaviour when running Xorg manually (e.g. via <literal>startx</literal>). + Setting this to `null` will not pass the `-logfile` argument to Xorg which allows it to log to its default logfile locations instead (see `man Xorg`). You probably only want this behaviour when running Xorg manually (e.g. via `startx`). ''; }; @@ -553,24 +554,15 @@ in type = types.nullOr types.int; default = 3; example = 7; - description = '' + description = lib.mdDoc '' Controls verbosity of X logging. ''; }; - useGlamor = mkOption { - type = types.bool; - default = false; - description = '' - Whether to use the Glamor module for 2D acceleration, - if possible. - ''; - }; - enableCtrlAltBackspace = mkOption { type = types.bool; default = false; - description = '' + description = lib.mdDoc '' Whether to enable the DontZap option, which binds Ctrl+Alt+Backspace to forcefully kill X. This can lead to data loss and is disabled by default. @@ -580,7 +572,7 @@ in terminateOnReset = mkOption { type = types.bool; default = true; - description = '' + description = lib.mdDoc '' Whether to terminate X upon server reset. ''; }; @@ -797,13 +789,6 @@ in '')} EndSection - ${if cfg.useGlamor then '' - Section "Module" - Load "dri2" - Load "glamoregl" - EndSection - '' else ""} - # For each supported driver, add a "Device" and "Screen" # section. ${flip concatMapStrings cfg.drivers (driver: '' @@ -811,7 +796,6 @@ in Section "Device" Identifier "Device-${driver.name}[0]" Driver "${driver.driverName or driver.name}" - ${if cfg.useGlamor then ''Option "AccelMethod" "glamor"'' else ""} ${indent cfg.deviceSection} ${indent (driver.deviceSection or "")} ${indent xrandrDeviceSection} |