1
0
Fork 0
mirror of https://github.com/nix-community/home-manager.git synced 2025-11-08 11:36:05 +01:00

treewide: convert package options to use mkPackageOption (#7116)

This commit converts `package = mkOption` declarations throughout the
codebase to use the more modern and consistent `lib.mkPackageOption`
function.

Key changes:
- Simple package options: `mkOption { type = types.package; default = pkgs.foo; }`
  becomes `lib.mkPackageOption pkgs "foo" { }`
- Package set options: Uses correct package set as first argument with
  `pkgsText` parameter (e.g., `lib.mkPackageOption pkgs.vimPlugins "plugin" { pkgsText = "pkgs.vimPlugins"; }`)
- Removes redundant descriptions that just restate the package name
- Preserves examples and extra context where meaningful
- Handles submodule plugin options properly with `null` defaults

This modernizes the option declarations and makes them more consistent
with current nixpkgs patterns while maintaining full backward compatibility.

Signed-off-by: Austin Horstman <khaneliman12@gmail.com>
This commit is contained in:
Austin Horstman 2025-05-23 00:42:38 -05:00 committed by GitHub
parent a868570581
commit 7419250703
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
59 changed files with 93 additions and 383 deletions

View file

@ -35,18 +35,12 @@ in
'';
};
sharedMimeInfoPackage = mkOption {
type = types.package;
default = pkgs.shared-mime-info;
defaultText = lib.literalExpression "pkgs.shared-mime-info";
description = "The package to use when running update-mime-database.";
sharedMimeInfoPackage = lib.mkPackageOption pkgs "shared-mime-info" {
extraDescription = "Used when running update-mime-database.";
};
desktopFileUtilsPackage = mkOption {
type = types.package;
default = pkgs.desktop-file-utils;
defaultText = lib.literalExpression "pkgs.desktop-file-utils";
description = "The package to use when running update-desktop-database.";
desktopFileUtilsPackage = lib.mkPackageOption pkgs "desktop-file-utils" {
extraDescription = "Used when running update-desktop-database.";
};
};
};

View file

@ -27,13 +27,7 @@ in
{
options.programs.lutris = {
enable = mkEnableOption "lutris.";
package = mkOption {
default = pkgs.lutris;
description = ''
The lutris package to use.
'';
type = types.package;
};
package = lib.mkPackageOption pkgs "lutris" { };
steamPackage = mkOption {
default = null;
example = "pkgs.steam or osConfig.programs.steam.package";

View file

@ -48,9 +48,10 @@ let
description = "Don't load by default (load with :packadd)";
};
plugin = mkOption {
type = types.package;
description = "vim plugin";
plugin = lib.mkPackageOption pkgs.vimPlugins "plugin" {
default = null;
example = "pkgs.vimPlugins.nvim-treesitter";
pkgsText = "pkgs.vimPlugins";
};
runtime = mkOption {

View file

@ -19,9 +19,11 @@ let
pluginModule = types.submodule {
options = {
plugin = mkOption {
type = types.package;
description = "Path of the configuration file to include.";
plugin = lib.mkPackageOption pkgs.tmuxPlugins "plugin" {
example = "pkgs.tmuxPlugins.sensible";
default = null;
pkgsText = "pkgs.tmuxPlugins";
extraDescription = "Path of the configuration file to include.";
};
extraConfig = mkOption {

View file

@ -152,12 +152,9 @@ in
readOnly = true;
};
packageConfigurable = mkOption {
type = types.package;
description = "Vim package to customize";
default = pkgs.vim-full or pkgs.vim_configurable;
defaultText = literalExpression "pkgs.vim-full";
example = literalExpression "pkgs.vim";
packageConfigurable = lib.mkPackageOption pkgs "vim-full" {
extraDescription = "Vim package to customize";
example = "pkgs.vim";
};
defaultEditor = mkOption {

View file

@ -33,16 +33,12 @@ in
'';
};
package = lib.mkOption {
type = lib.types.package;
default = pkgs.avizo;
defaultText = lib.literalExpression "pkgs.avizo";
example = lib.literalExpression ''
package = lib.mkPackageOption pkgs "avizo" {
example = ''
pkgs.avizo.overrideAttrs (final: prev: {
patchPhase = "cp ''${./images}/*.png data/images/";
})
'';
description = "The `avizo` package to use.";
};
};

View file

@ -14,12 +14,7 @@ in
services.betterlockscreen = {
enable = lib.mkEnableOption "betterlockscreen, a screen-locker module";
package = lib.mkOption {
type = lib.types.package;
default = pkgs.betterlockscreen;
defaultText = lib.literalExpression "pkgs.betterlockscreen";
description = "Package providing {command}`betterlockscreen`.";
};
package = lib.mkPackageOption pkgs "betterlockscreen" { };
arguments = lib.mkOption {
type = lib.types.listOf lib.types.str;

View file

@ -15,12 +15,7 @@ in
options.services.clipmenu = {
enable = lib.mkEnableOption "clipmenu, the clipboard management daemon";
package = mkOption {
type = types.package;
default = pkgs.clipmenu;
defaultText = "pkgs.clipmenu";
description = "clipmenu derivation to use.";
};
package = lib.mkPackageOption pkgs "clipmenu" { };
launcher = mkOption {
type = types.nullOr types.str;

View file

@ -68,12 +68,7 @@ in
services.dunst = {
enable = lib.mkEnableOption "the dunst notification daemon";
package = mkOption {
type = types.package;
default = pkgs.dunst;
defaultText = literalExpression "pkgs.dunst";
description = "Package providing {command}`dunst`.";
};
package = lib.mkPackageOption pkgs "dunst" { };
configFile = mkOption {
type = with types; nullOr (either str path);

View file

@ -32,12 +32,8 @@ in
services.dwm-status = {
enable = lib.mkEnableOption "dwm-status user service";
package = mkOption {
type = types.package;
default = pkgs.dwm-status;
defaultText = lib.literalExpression "pkgs.dwm-status";
package = lib.mkPackageOption pkgs "dwm-status" {
example = "pkgs.dwm-status.override { enableAlsaUtils = false; }";
description = "Which dwm-status package to use.";
};
order = mkOption {

View file

@ -81,12 +81,7 @@ in
```
to your system configuration for the daemon to work correctly'';
package = mkOption {
type = types.package;
default = pkgs.easyeffects;
defaultText = literalExpression "pkgs.easyeffects";
description = "The `easyeffects` package to use.";
};
package = lib.mkPackageOption pkgs "easyeffects" { };
preset = mkOption {
type = types.str;

View file

@ -57,12 +57,7 @@ in
services.espanso = {
enable = mkEnableOption "Espanso: cross platform text expander in Rust";
package = mkOption {
type = types.package;
description = "Which espanso package to use";
default = pkgs.espanso;
defaultText = literalExpression "pkgs.espanso";
};
package = lib.mkPackageOption pkgs "espanso" { };
package-wayland =
mkPackageOption pkgs "espanso-wayland" {

View file

@ -19,12 +19,7 @@ in
options.services.etesync-dav = {
enable = lib.mkEnableOption "etesync-dav";
package = mkOption {
type = types.package;
default = pkgs.etesync-dav;
defaultText = "pkgs.etesync-dav";
description = "The etesync-dav derivation to use.";
};
package = lib.mkPackageOption pkgs "etesync-dav" { };
serverUrl = mkOption {
type = types.str;

View file

@ -19,12 +19,7 @@ in
options.services.flameshot = {
enable = lib.mkEnableOption "Flameshot";
package = lib.mkOption {
type = lib.types.package;
default = pkgs.flameshot;
defaultText = lib.literalExpression "pkgs.flameshot";
description = "Package providing {command}`flameshot`.";
};
package = lib.mkPackageOption pkgs "flameshot" { };
settings = lib.mkOption {
inherit (iniFormat) type;

View file

@ -22,12 +22,7 @@ in
fnott, a lightweight Wayland notification daemon for wlroots-based compositors
'';
package = mkOption {
type = types.package;
default = pkgs.fnott;
defaultText = lib.literalExpression "pkgs.fnott";
description = "Package providing {command}`fnott`.";
};
package = lib.mkPackageOption pkgs "fnott" { };
extraFlags = mkOption {
type = types.listOf types.str;

View file

@ -68,12 +68,7 @@ in
options.services.fusuma = {
enable = lib.mkEnableOption "the fusuma systemd service to automatically enable touchpad gesture";
package = mkOption {
type = types.package;
default = pkgs.fusuma;
defaultText = literalExpression "pkgs.fusuma";
description = "Package providing {command}`fusuma`.";
};
package = lib.mkPackageOption pkgs "fusuma" { };
settings = mkOption {
type = yamlFormat.type;

View file

@ -121,14 +121,7 @@ in
services.git-sync = {
enable = lib.mkEnableOption "git-sync services";
package = mkOption {
type = types.package;
default = pkgs.git-sync;
defaultText = literalExpression "pkgs.git-sync";
description = ''
Package containing the {command}`git-sync` program.
'';
};
package = lib.mkPackageOption pkgs "git-sync" { };
repositories = mkOption {
type = with types; attrsOf repositoryType;

View file

@ -139,12 +139,7 @@ in
options.services.gromit-mpx = {
enable = lib.mkEnableOption "Gromit-MPX annotation tool";
package = mkOption {
type = types.package;
default = pkgs.gromit-mpx;
defaultText = "pkgs.gromit-mpx";
description = "The gromit-mpx package to use.";
};
package = lib.mkPackageOption pkgs "gromit-mpx" { };
hotKey = mkOption {
type = with types; nullOr (either str ints.positive);

View file

@ -126,12 +126,8 @@ in
services.imapnotify = {
enable = lib.mkEnableOption "imapnotify";
package = mkOption {
type = types.package;
default = pkgs.goimapnotify;
defaultText = lib.literalExpression "pkgs.goimapnotify";
example = lib.literalExpression "pkgs.imapnotify";
description = "The imapnotify package to use";
package = lib.mkPackageOption pkgs "goimapnotify" {
example = "pkgs.imapnotify";
};
path = mkOption {

View file

@ -226,14 +226,7 @@ in
options.services.kanshi = {
enable = lib.mkEnableOption "kanshi, a Wayland daemon that automatically configures outputs";
package = mkOption {
type = types.package;
default = pkgs.kanshi;
defaultText = literalExpression "pkgs.kanshi";
description = ''
kanshi derivation to use.
'';
};
package = lib.mkPackageOption pkgs "kanshi" { };
profiles = mkOption {
type = types.attrsOf profileModule;

View file

@ -15,11 +15,9 @@ in
options = {
services.kdeconnect = {
enable = lib.mkEnableOption "KDE connect";
package = lib.mkOption {
type = lib.types.package;
default = pkgs.kdePackages.kdeconnect-kde;
example = lib.literalExpression "pkgs.plasma5Packages.kdeconnect-kde";
description = "The KDE connect package to use";
package = lib.mkPackageOption pkgs.kdePackages "kdeconnect-kde" {
example = "pkgs.plasma5Packages.kdeconnect-kde";
pkgsText = "pkgs.kdePackages";
};
indicator = lib.mkOption {

View file

@ -21,13 +21,7 @@ in
options.services.mbsync = {
enable = lib.mkEnableOption "mbsync";
package = mkOption {
type = types.package;
default = pkgs.isync;
defaultText = lib.literalExpression "pkgs.isync";
example = lib.literalExpression "pkgs.isync";
description = "The package to use for the mbsync binary.";
};
package = lib.mkPackageOption pkgs "isync" { };
frequency = mkOption {
type = types.str;

View file

@ -33,12 +33,7 @@ in
'';
};
package = lib.mkOption {
type = lib.types.package;
default = pkgs.mpd-discord-rpc;
defaultText = lib.literalExpression "pkgs.mpd-discord-rpc";
description = "mpd-discord-rpc package to use.";
};
package = lib.mkPackageOption pkgs "mpd-discord-rpc" { };
};
config = lib.mkIf cfg.enable {

View file

@ -20,14 +20,7 @@ in
'';
};
package = mkOption {
type = types.package;
default = pkgs.mpd;
defaultText = "pkgs.mpd";
description = ''
The MPD package to run.
'';
};
package = lib.mkPackageOption pkgs "mpd" { };
musicDirectory = mkOption {
type = with types; either path str;

View file

@ -44,12 +44,7 @@ in
notifications = mkEnableOption "song change notifications";
multimediaKeys = mkEnableOption "multimedia key support";
package = mkOption {
type = types.package;
default = pkgs.mpdris2;
defaultText = lib.literalExpression "pkgs.mpdris2";
description = "The mpDris2 package to use.";
};
package = lib.mkPackageOption pkgs "mpdris2" { };
mpd = {
host = mkOption {

View file

@ -14,12 +14,7 @@ in
services.nextcloud-client = {
enable = lib.mkEnableOption "Nextcloud Client";
package = lib.mkOption {
type = lib.types.package;
default = pkgs.nextcloud-client;
defaultText = lib.literalExpression "pkgs.nextcloud-client";
description = "The package to use for the nextcloud client binary.";
};
package = lib.mkPackageOption pkgs "nextcloud-client" { };
startInBackground = lib.mkOption {
type = lib.types.bool;

View file

@ -16,14 +16,7 @@ in
services.notify-osd = {
enable = lib.mkEnableOption "notify-osd";
package = lib.mkOption {
type = lib.types.package;
default = pkgs.notify-osd;
defaultText = lib.literalExpression "pkgs.notify-osd";
description = ''
Package containing the {command}`notify-osd` program.
'';
};
package = lib.mkPackageOption pkgs "notify-osd" { };
};
};

View file

@ -16,12 +16,7 @@ in
services.pantalaimon = {
enable = lib.mkEnableOption "Pantalaimon, an E2EE aware proxy daemon for matrix clients";
package = lib.mkOption {
type = lib.types.package;
default = pkgs.pantalaimon;
defaultText = lib.literalExpression "pkgs.pantalaimon";
description = "Package providing the {command}`pantalaimon` executable to use.";
};
package = lib.mkPackageOption pkgs "pantalaimon" { };
settings = lib.mkOption {
type = iniFmt.type;

View file

@ -24,12 +24,8 @@ in
'';
};
package = lib.mkOption {
type = lib.types.package;
default = pkgs.parcellite;
defaultText = lib.literalExpression "pkgs.parcellite";
example = lib.literalExpression "pkgs.clipit";
description = "Parcellite derivation to use.";
package = lib.mkPackageOption pkgs "parcellite" {
example = "pkgs.clipit";
};
};

View file

@ -295,15 +295,7 @@ in
'';
};
package = mkOption {
type = types.package;
default = pkgs.picom;
defaultText = literalExpression "pkgs.picom";
example = literalExpression "pkgs.picom";
description = ''
Picom derivation to use.
'';
};
package = lib.mkPackageOption pkgs "picom" { };
settings =
with types;

View file

@ -15,12 +15,7 @@ in
options.services.playerctld = {
enable = lib.mkEnableOption "playerctld daemon";
package = lib.mkOption {
type = lib.types.package;
default = pkgs.playerctl;
defaultText = lib.literalExpression "pkgs.playerctl";
description = "The playerctl package to use.";
};
package = lib.mkPackageOption pkgs "playerctl" { };
};
config = lib.mkIf cfg.enable {

View file

@ -17,12 +17,7 @@ in
services.plex-mpv-shim = {
enable = lib.mkEnableOption "Plex mpv shim";
package = lib.mkOption {
type = lib.types.package;
default = pkgs.plex-mpv-shim;
defaultText = lib.literalExpression "pkgs.plex-mpv-shim";
description = "The package to use for the Plex mpv shim.";
};
package = lib.mkPackageOption pkgs "plex-mpv-shim" { };
settings = lib.mkOption {
type = jsonFormat.type;

View file

@ -56,12 +56,7 @@ in
};
};
package = lib.mkOption {
type = lib.types.package;
default = pkgs.podman;
defaultText = lib.literalExpression "pkgs.podman";
description = "The podman package to use.";
};
package = lib.mkPackageOption pkgs "podman" { };
enableTypeChecks = lib.mkEnableOption "type checks for podman quadlets";
};

View file

@ -23,12 +23,7 @@ in
```
to your system configuration for the daemon to work correctly'';
package = lib.mkOption {
type = lib.types.package;
default = pkgs.pulseeffects-legacy;
defaultText = lib.literalExpression "pkgs.pulseeffects-legacy";
description = "Pulseeffects package to use.";
};
package = lib.mkPackageOption pkgs "pulseeffects-legacy" { };
preset = lib.mkOption {
type = lib.types.str;

View file

@ -108,14 +108,8 @@ in
options.services.recoll = {
enable = lib.mkEnableOption "Recoll file index service";
package = mkOption {
type = types.package;
default = pkgs.recoll;
defaultText = literalExpression "pkgs.recoll";
description = ''
Package providing the {command}`recoll` binary.
'';
example = literalExpression "(pkgs.recoll.override { withGui = false; })";
package = lib.mkPackageOption pkgs "recoll" {
example = "(pkgs.recoll.override { withGui = false; })";
};
startAt = mkOption {

View file

@ -84,13 +84,7 @@ in
description = "Use xautolock for time-based locking.";
};
package = mkOption {
type = types.package;
default = pkgs.xautolock;
description = ''
Package providing the {command}`xautolock` binary.
'';
};
package = lib.mkPackageOption pkgs "xautolock" { };
detectSleep = mkOption {
type = types.bool;
@ -112,13 +106,7 @@ in
};
xss-lock = {
package = mkOption {
type = types.package;
default = pkgs.xss-lock;
description = ''
Package providing the {command}`xss-lock` binary.
'';
};
package = lib.mkPackageOption pkgs "xss-lock" { };
extraOptions = mkOption {
type = types.listOf types.str;

View file

@ -24,12 +24,7 @@ in
options.services.signaturepdf = {
enable = lib.mkEnableOption "signaturepdf; signing, organizing, editing metadatas or compressing PDFs";
package = mkOption {
type = types.package;
default = pkgs.signaturepdf;
defaultText = "pkgs.signaturepdf";
description = "signaturepdf derivation to use.";
};
package = lib.mkPackageOption pkgs "signaturepdf" { };
port = mkOption {
type = types.port;

View file

@ -19,13 +19,9 @@ in
options.services.spotifyd = {
enable = lib.mkEnableOption "SpotifyD connect";
package = lib.mkOption {
type = lib.types.package;
default = pkgs.spotifyd;
defaultText = literalExpression "pkgs.spotifyd";
example = literalExpression "(pkgs.spotifyd.override { withKeyring = true; })";
description = ''
The `spotifyd` package to use.
package = lib.mkPackageOption pkgs "spotifyd" {
example = "(pkgs.spotifyd.override { withKeyring = true; })";
extraDescription = ''
Can be used to specify extensions.
'';
};

View file

@ -21,13 +21,7 @@ in
services.stalonetray = {
enable = lib.mkEnableOption "Stalonetray system tray";
package = mkOption {
default = pkgs.stalonetray;
defaultText = literalExpression "pkgs.stalonetray";
type = types.package;
example = literalExpression "pkgs.stalonetray";
description = "The package to use for the Stalonetray binary.";
};
package = lib.mkPackageOption pkgs "stalonetray" { };
config = mkOption {
type = with types; attrsOf (nullOr (either str (either bool int)));

View file

@ -15,12 +15,8 @@ in
services.status-notifier-watcher = {
enable = lib.mkEnableOption "Status Notifier Watcher";
package = lib.mkOption {
default = pkgs.haskellPackages.status-notifier-item;
defaultText = lib.literalExpression "pkgs.haskellPackages.status-notifier-item";
type = lib.types.package;
example = lib.literalExpression "pkgs.haskellPackages.status-notifier-item";
description = "The package to use for the status notifier watcher binary.";
package = lib.mkPackageOption pkgs.haskellPackages "status-notifier-item" {
pkgsText = "pkgs.haskellPackages";
};
};
};

View file

@ -37,11 +37,8 @@ in
options.services.sxhkd = {
enable = lib.mkEnableOption "simple X hotkey daemon";
package = mkOption {
type = types.package;
default = pkgs.sxhkd;
defaultText = "pkgs.sxhkd";
description = "Package containing the {command}`sxhkd` executable.";
package = lib.mkPackageOption pkgs "sxhkd" {
extraDescription = "containing the sxhkd executable";
};
extraOptions = mkOption {

View file

@ -17,13 +17,7 @@ in
services.taffybar = {
enable = lib.mkEnableOption "Taffybar";
package = lib.mkOption {
default = pkgs.taffybar;
defaultText = lib.literalExpression "pkgs.taffybar";
type = lib.types.package;
example = lib.literalExpression "pkgs.taffybar";
description = "The package to use for the Taffybar binary.";
};
package = lib.mkPackageOption pkgs "taffybar" { };
};
};

View file

@ -120,13 +120,7 @@ in
services.trayer = {
enable = lib.mkEnableOption "trayer, the lightweight GTK2+ systray for UNIX desktops";
package = lib.mkOption {
default = pkgs.trayer;
defaultText = lib.literalExpression "pkgs.trayer";
type = types.package;
example = lib.literalExpression "pkgs.trayer";
description = "The package to use for the trayer binary.";
};
package = lib.mkPackageOption pkgs "trayer" { };
settings = lib.mkOption {
type = with types; attrsOf (nullOr (either str (either bool int)));

View file

@ -123,13 +123,13 @@ in
};
font = {
package = mkOption {
type = types.nullOr types.package;
package = lib.mkPackageOption pkgs "font" {
default = null;
example = literalExpression "pkgs.dejavu_fonts";
description = ''
Notification text's font package. If `null` then
the font is assumed to already be available in your profile.
example = "pkgs.dejavu_fonts";
nullable = true;
extraDescription = ''
Package providing the font to use for the notification text.
This package is only used if `font.package` is not null.
'';
};

View file

@ -19,12 +19,7 @@ in
enable = lib.mkEnableOption "unclutter";
package = mkOption {
description = "unclutter derivation to use.";
type = types.package;
default = pkgs.unclutter-xfixes;
defaultText = lib.literalExpression "pkgs.unclutter-xfixes";
};
package = lib.mkPackageOption pkgs "unclutter-xfixes" { };
timeout = mkOption {
description = "Number of seconds before the cursor is marked inactive.";

View file

@ -22,13 +22,7 @@ in
options.services.vdirsyncer = {
enable = lib.mkEnableOption "vdirsyncer";
package = mkOption {
type = types.package;
default = pkgs.vdirsyncer;
defaultText = "pkgs.vdirsyncer";
example = lib.literalExpression "pkgs.vdirsyncer";
description = "The package to use for the vdirsyncer binary.";
};
package = lib.mkPackageOption pkgs "vdirsyncer" { };
frequency = mkOption {
type = types.str;

View file

@ -20,14 +20,7 @@ in
services.volnoti = {
enable = lib.mkEnableOption "Volnoti volume HUD daemon";
package = lib.mkOption {
type = lib.types.package;
default = pkgs.volnoti;
defaultText = lib.literalExpression "pkgs.volnoti";
description = ''
Package containing the {command}`volnoti` program.
'';
};
package = lib.mkPackageOption pkgs "volnoti" { };
};
};

View file

@ -20,11 +20,8 @@ in
xsession.windowManager.awesome = {
enable = lib.mkEnableOption "Awesome window manager";
package = mkOption {
type = types.package;
default = pkgs.awesome;
defaultText = lib.literalExpression "pkgs.awesome";
description = "Package to use for running the Awesome WM.";
package = lib.mkPackageOption pkgs "awesome" {
extraDescription = "to use for running the Awesome WM";
};
luaModules = mkOption {

View file

@ -182,12 +182,8 @@ in
xsession.windowManager.bspwm = {
enable = lib.mkEnableOption "bspwm window manager";
package = mkOption {
type = types.package;
default = pkgs.bspwm;
defaultText = literalExpression "pkgs.bspwm";
description = "The bspwm package to use.";
example = literalExpression "pkgs.bspwm-unstable";
package = lib.mkPackageOption pkgs "bspwm" {
example = "pkgs.bspwm-unstable";
};
settings = mkOption {

View file

@ -47,15 +47,7 @@ in
options.xsession.windowManager.herbstluftwm = {
enable = lib.mkEnableOption "herbstluftwm window manager";
package = lib.mkOption {
type = lib.types.package;
default = pkgs.herbstluftwm;
defaultText = lib.literalExpression "pkgs.herbstluftwm";
description = ''
Package providing the {command}`herbstluftwm` and
{command}`herbstclient` commands.
'';
};
package = lib.mkPackageOption pkgs "herbstluftwm" { };
settings = lib.mkOption {
type = lib.types.attrsOf settingType;

View file

@ -41,13 +41,8 @@ in
xsession.windowManager.spectrwm = {
enable = lib.mkEnableOption "Spectrwm window manager";
package = mkOption {
type = types.package;
default = pkgs.spectrwm;
defaultText = literalExpression "pkgs.spectrwm";
description = ''
Package providing the {command}`spectrwm` command.
'';
package = lib.mkPackageOption pkgs "spectrwm" {
extraDescription = "providing the spectrwm command";
};
settings = mkOption {

View file

@ -79,7 +79,9 @@
wf-shell = {
enable = lib.mkEnableOption "Manage wf-shell Configuration";
package = lib.mkPackageOption pkgs.wayfirePlugins "wf-shell" { };
package = lib.mkPackageOption pkgs.wayfirePlugins "wf-shell" {
pkgsText = "pkgs.wayfirePlugins";
};
settings = lib.mkOption {
type = configIniType;

View file

@ -19,14 +19,7 @@ in
options.services.wlsunset = {
enable = lib.mkEnableOption "wlsunset";
package = mkOption {
type = with types; package;
default = pkgs.wlsunset;
defaultText = "pkgs.wlsunset";
description = ''
wlsunset derivation to use.
'';
};
package = lib.mkPackageOption pkgs "wlsunset" { };
latitude = mkOption {
type = with types; nullOr (either str (either float int));

View file

@ -15,12 +15,7 @@ in
options.services.wluma = {
enable = lib.mkEnableOption "Enable wluma, a service for automatic brightness adjustment";
package = lib.mkOption {
type = lib.types.package;
default = pkgs.wluma;
defaultText = lib.literalExpression "pkgs.wluma";
description = "Package providing {command}`wluma`.";
};
package = lib.mkPackageOption pkgs "wluma" { };
settings = lib.mkOption {
type = format.type;

View file

@ -17,14 +17,8 @@ in
services.xembed-sni-proxy = {
enable = lib.mkEnableOption "XEmbed SNI Proxy";
package = lib.mkOption {
type = lib.types.package;
default = pkgs.kdePackages.plasma-workspace;
defaultText = lib.literalExpression "pkgs.kdePackages.plasma-workspace";
description = ''
Package containing the {command}`xembedsniproxy`
program.
'';
package = lib.mkPackageOption pkgs.kdePackages "plasma-workspace" {
pkgsText = "pkgs.kdePackages";
};
};
};

View file

@ -56,12 +56,7 @@ in
options.services.xidlehook = {
enable = mkEnableOption "xidlehook systemd service";
package = mkOption {
type = types.package;
default = pkgs.xidlehook;
defaultText = "pkgs.xidlehook";
description = "The package to use for xidlehook.";
};
package = lib.mkPackageOption pkgs "xidlehook" { };
environment = mkOption {
type = types.attrsOf types.str;

View file

@ -30,12 +30,7 @@ in
'';
};
package = lib.mkOption {
type = with lib.types; package;
default = pkgs.xscreensaver;
defaultText = lib.literalExpression "pkgs.xscreensaver";
description = "Which xscreensaver package to use.";
};
package = lib.mkPackageOption pkgs "xscreensaver" { };
};
};

View file

@ -37,14 +37,7 @@ in
services.xsettingsd = {
enable = lib.mkEnableOption "xsettingsd";
package = mkOption {
type = types.package;
default = pkgs.xsettingsd;
defaultText = literalExpression "pkgs.xsettingsd";
description = ''
Package containing the {command}`xsettingsd` program.
'';
};
package = lib.mkPackageOption pkgs "xsettingsd" { };
settings = mkOption {
type =

View file

@ -16,12 +16,7 @@ in
options.services.yubikey-agent = {
enable = lib.mkEnableOption "Seamless ssh-agent for YubiKeys";
package = lib.mkOption {
type = lib.types.package;
default = pkgs.yubikey-agent;
defaultText = lib.literalExpression "pkgs.yubikey-agent";
description = "The yubikey-agent package to use.";
};
package = lib.mkPackageOption pkgs "yubikey-agent" { };
};
config = mkIf cfg.enable (