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

treewide: use mkPackageOption

Standardized interface to provide a consistent treewide experience.
This commit is contained in:
Austin Horstman 2025-03-30 14:28:32 -05:00
parent 579a71b948
commit b24689a173
62 changed files with 91 additions and 413 deletions

View file

@ -13,12 +13,7 @@ in {
options.programs.atuin = {
enable = lib.mkEnableOption "atuin";
package = mkOption {
type = types.package;
default = pkgs.atuin;
defaultText = lib.literalExpression "pkgs.atuin";
description = "The package to use for atuin.";
};
package = lib.mkPackageOption pkgs "atuin" { };
enableBashIntegration = lib.hm.shell.mkBashIntegrationOption {
inherit config;

View file

@ -10,11 +10,9 @@ in {
options.programs.awscli = {
enable = lib.mkEnableOption "AWS CLI tool";
package = lib.mkOption {
type = lib.types.package;
default = pkgs.awscli2;
defaultText = lib.literalExpression "pkgs.awscli2";
description = "Package providing {command}`aws`.";
package = lib.mkPackageOption pkgs "aws" {
default = "awscli2";
nullable = true;
};
settings = lib.mkOption {
@ -55,7 +53,7 @@ in {
};
config = lib.mkIf cfg.enable {
home.packages = [ cfg.package ];
home.packages = lib.mkIf (cfg.package != null) [ cfg.package ];
home.file."${config.home.homeDirectory}/.aws/config" =
lib.mkIf (cfg.settings != { }) {

View file

@ -26,14 +26,10 @@ in {
'';
};
package = mkOption {
type = types.package;
default = pkgs.beets;
defaultText = literalExpression "pkgs.beets";
example = literalExpression
package = lib.mkPackageOption pkgs "beets" {
example =
"(pkgs.beets.override { pluginOverrides = { beatport.enable = false; }; })";
description = ''
The `beets` package to use.
extraDescription = ''
Can be used to specify extensions.
'';
};

View file

@ -12,12 +12,7 @@ in {
bottom, a cross-platform graphical process/system monitor with a
customizable interface'';
package = lib.mkOption {
type = lib.types.package;
default = pkgs.bottom;
defaultText = lib.literalExpression "pkgs.bottom";
description = "Package providing {command}`bottom`.";
};
package = lib.mkPackageOption pkgs "bottom" { nullable = true; };
settings = lib.mkOption {
type = tomlFormat.type;
@ -46,7 +41,7 @@ in {
};
config = lib.mkIf cfg.enable {
home.packages = [ cfg.package ];
home.packages = lib.mkIf (cfg.package != null) [ cfg.package ];
xdg.configFile."bottom/bottom.toml" = lib.mkIf (cfg.settings != { }) {
source = tomlFormat.generate "bottom.toml" cfg.settings;

View file

@ -164,12 +164,7 @@ in {
enableZshIntegration =
lib.hm.shell.mkZshIntegrationOption { inherit config; };
package = mkOption {
type = types.package;
default = pkgs.broot;
defaultText = literalExpression "pkgs.broot";
description = "Package providing broot";
};
package = lib.mkPackageOption pkgs "broot" { };
settings = mkOption {
type = types.submodule settingsModule;

View file

@ -29,13 +29,8 @@ in {
programs.emacs = {
enable = lib.mkEnableOption "Emacs";
package = mkOption {
type = types.package;
default = pkgs.emacs;
defaultText = literalExpression "pkgs.emacs";
example = literalExpression "pkgs.emacs25-nox";
description = "The Emacs package to use.";
};
package =
lib.mkPackageOption pkgs "emacs" { example = "pkgs.emacs25-nox"; };
# NOTE: The config is placed in default.el instead of ~/.emacs.d so that
# it won't conflict with Emacs configuration frameworks. Users of these

View file

@ -48,12 +48,7 @@ in {
options.programs.fzf = {
enable = lib.mkEnableOption "fzf - a command-line fuzzy finder";
package = mkOption {
type = types.package;
default = pkgs.fzf;
defaultText = literalExpression "pkgs.fzf";
description = "Package providing the {command}`fzf` tool.";
};
package = lib.mkPackageOption pkgs "fzf" { };
defaultCommand = mkOption {
type = types.nullOr types.str;

View file

@ -68,12 +68,7 @@ in {
options.programs.gh = {
enable = lib.mkEnableOption "GitHub CLI tool";
package = mkOption {
type = types.package;
default = pkgs.gh;
defaultText = literalExpression "pkgs.gh";
description = "Package providing {command}`gh`.";
};
package = lib.mkPackageOption pkgs "gh" { };
settings = mkOption {
type = settingsType;

View file

@ -11,12 +11,7 @@ in {
enable = lib.mkEnableOption
"gitui, blazing fast terminal-ui for git written in rust";
package = mkOption {
type = types.package;
default = pkgs.gitui;
defaultText = "pkgs.gitui";
description = "The package to use.";
};
package = lib.mkPackageOption pkgs "gitui" { };
keyConfig = mkOption {
type = types.either types.path types.lines;

View file

@ -13,12 +13,7 @@ in {
programs.go = {
enable = lib.mkEnableOption "Go";
package = mkOption {
type = types.package;
default = pkgs.go;
defaultText = literalExpression "pkgs.go";
description = "The Go package to use.";
};
package = lib.mkPackageOption pkgs "go" { };
packages = mkOption {
type = with types; attrsOf path;

View file

@ -143,13 +143,9 @@ in {
options.programs.gpg = {
enable = lib.mkEnableOption "GnuPG";
package = mkOption {
type = types.package;
default = pkgs.gnupg;
defaultText = literalExpression "pkgs.gnupg";
example = literalExpression "pkgs.gnupg23";
description =
"The Gnupg package to use (also used by the gpg-agent service).";
package = lib.mkPackageOption pkgs "gnupg" {
example = "pkgs.gnupg23";
extraDescription = "Also used by the gpg-agent service.";
};
settings = mkOption {

View file

@ -10,13 +10,7 @@ in {
options.programs.helix = {
enable = lib.mkEnableOption "helix text editor";
package = mkOption {
type = types.package;
default = pkgs.helix;
defaultText = literalExpression "pkgs.helix";
example = literalExpression "pkgs.evil-helix";
description = "The package to use for helix.";
};
package = lib.mkPackageOption pkgs "helix" { example = "pkgs.evil-helix"; };
extraPackages = mkOption {
type = with types; listOf package;

View file

@ -153,12 +153,7 @@ in {
'';
};
package = lib.mkOption {
type = lib.types.package;
default = pkgs.htop;
defaultText = lib.literalExpression "pkgs.htop";
description = "Package containing the {command}`htop` program.";
};
package = lib.mkPackageOption pkgs "htop" { };
};
config = lib.mkIf cfg.enable {

View file

@ -9,12 +9,7 @@ in {
options.programs.hyfetch = {
enable = lib.mkEnableOption "hyfetch";
package = lib.mkOption {
type = lib.types.package;
default = pkgs.hyfetch;
defaultText = lib.literalExpression "pkgs.hyfetch";
description = "The hyfetch package to use.";
};
package = lib.mkPackageOption pkgs "hyfetch" { };
settings = lib.mkOption {
type = jsonFormat.type;

View file

@ -29,12 +29,7 @@ in {
options.programs.i3blocks = {
enable = lib.mkEnableOption "i3blocks i3 status command scheduler";
package = lib.mkOption {
type = types.package;
default = pkgs.i3blocks;
defaultText = lib.literalExpression "pkgs.i3blocks";
description = "Package providing {command}`i3blocks`.";
};
package = lib.mkPackageOption pkgs "i3blocks" { };
bars = lib.mkOption {
type = with types; attrsOf (lib.hm.types.dagOf configType);

View file

@ -219,12 +219,7 @@ in {
'';
};
package = mkOption {
type = types.package;
default = pkgs.i3status-rust;
defaultText = literalExpression "pkgs.i3status-rust";
description = "Package providing i3status-rust";
};
package = lib.mkPackageOption pkgs "i3status-rust" { };
};

View file

@ -10,12 +10,7 @@ in {
options.programs.joshuto = {
enable = lib.mkEnableOption "joshuto file manager";
package = mkOption {
type = types.package;
default = pkgs.joshuto;
defaultText = lib.literalExpression "pkgs.joshuto";
description = "The package to use for joshuto.";
};
package = lib.mkPackageOption pkgs "joshuto" { };
settings = mkOption {
type = tomlFormat.type;

View file

@ -29,12 +29,7 @@ in {
programs.jq = {
enable = lib.mkEnableOption "the jq command-line JSON processor";
package = mkOption {
type = types.package;
default = pkgs.jq;
defaultText = lib.literalExpression "pkgs.jq";
description = "jq package to use.";
};
package = lib.mkPackageOption pkgs "jq" { };
colors = mkOption {
description = ''

View file

@ -126,14 +126,9 @@ in {
options.programs.kodi = {
enable = lib.mkEnableOption "Kodi";
package = mkOption {
type = types.package;
default = pkgs.kodi;
defaultText = literalExpression "pkgs.kodi";
example = literalExpression
"pkgs.kodi.withPackages (exts: [ exts.pvr-iptvsimple ])";
description = ''
The `kodi` package to use.
package = lib.mkPackageOption pkgs "kodi" {
example = "pkgs.kodi.withPackages (exts: [ exts.pvr-iptvsimple ])";
extraDescription = ''
Can be used to specify extensions.
'';
};

View file

@ -12,14 +12,7 @@ in {
programs.lf = {
enable = lib.mkEnableOption "lf";
package = mkOption {
type = types.package;
default = pkgs.lf;
defaultText = literalExpression "pkgs.lf";
description = ''
lf package to use.
'';
};
package = lib.mkPackageOption pkgs "lf" { };
settings = mkOption {
type = with types;

View file

@ -216,14 +216,7 @@ in {
programs.lieer = {
enable = lib.mkEnableOption "lieer Gmail synchronization for notmuch";
package = mkOption {
type = types.package;
default = pkgs.lieer;
defaultText = "pkgs.lieer";
description = ''
lieer package to use.
'';
};
package = lib.mkPackageOption pkgs "lieer" { };
};
accounts.email.accounts =

View file

@ -15,12 +15,7 @@ in {
'';
};
package = mkOption {
type = types.package;
default = pkgs.man;
defaultText = lib.literalExpression "pkgs.man";
description = "The man package to use.";
};
package = lib.mkPackageOption pkgs "man" { };
generateCaches = mkOption {
type = types.bool;

View file

@ -189,13 +189,7 @@ in {
enable =
lib.mkEnableOption "mbsync IMAP4 and Maildir mailbox synchronizer";
package = mkOption {
type = types.package;
default = pkgs.isync;
defaultText = literalExpression "pkgs.isync";
example = literalExpression "pkgs.isync";
description = "The package to use for the mbsync binary.";
};
package = lib.mkPackageOption pkgs "isync" { };
groups = mkOption {
type = types.attrsOf (types.attrsOf (types.listOf types.str));

View file

@ -61,14 +61,9 @@ in {
programs.mpv = {
enable = lib.mkEnableOption "mpv";
package = mkOption {
type = types.package;
default = pkgs.mpv;
example = literalExpression
package = lib.mkPackageOption pkgs "mpv" {
example =
"pkgs.mpv-unwrapped.wrapper { mpv = pkgs.mpv-unwrapped.override { vapoursynthSupport = true; }; youtubeSupport = true; }";
description = ''
Package providing mpv.
'';
};
finalPackage = mkOption {

View file

@ -49,12 +49,7 @@ in {
programs.msmtp = {
enable = lib.mkEnableOption "msmtp";
package = mkOption {
type = types.package;
default = pkgs.msmtp;
defaultText = lib.literalExpression "pkgs.msmtp";
description = "The msmtp package to use.";
};
package = lib.mkPackageOption pkgs "msmtp" { };
extraConfig = mkOption {
type = types.lines;

View file

@ -268,14 +268,7 @@ in {
programs.mujmap = {
enable = lib.mkEnableOption "mujmap Gmail synchronization for notmuch";
package = mkOption {
type = types.package;
default = pkgs.mujmap;
defaultText = "pkgs.mujmap";
description = ''
mujmap package to use.
'';
};
package = lib.mkPackageOption pkgs "mujmap" { };
};
accounts.email.accounts =

View file

@ -17,12 +17,7 @@ in {
options.programs.navi = {
enable = lib.mkEnableOption "Navi";
package = lib.mkOption {
type = lib.types.package;
default = pkgs.navi;
defaultText = lib.literalExpression "pkgs.navi";
description = "The package to use for the navi binary.";
};
package = lib.mkPackageOption pkgs "navi" { };
settings = lib.mkOption {
type = yamlFormat.type;

View file

@ -48,15 +48,8 @@ in {
enable = lib.mkEnableOption
"ncmpcpp - an ncurses Music Player Daemon (MPD) client";
package = mkOption {
type = types.package;
default = pkgs.ncmpcpp;
defaultText = literalExpression "pkgs.ncmpcpp";
description = ''
Package providing the `ncmpcpp` command.
'';
example =
literalExpression "pkgs.ncmpcpp.override { visualizerSupport = true; }";
package = lib.mkPackageOption pkgs "ncmpcpp" {
example = "pkgs.ncmpcpp.override { visualizerSupport = true; }";
};
mpdMusicDir = mkOption {

View file

@ -9,12 +9,7 @@ in {
options.programs.ncspot = {
enable = lib.mkEnableOption "ncspot";
package = lib.mkOption {
type = lib.types.package;
default = pkgs.ncspot;
defaultText = lib.literalExpression "pkgs.ncspot";
description = "The package to use for ncspot.";
};
package = lib.mkPackageOption pkgs "ncspot" { };
settings = lib.mkOption {
type = tomlFormat.type;

View file

@ -342,12 +342,7 @@ in {
programs.neomutt = {
enable = lib.mkEnableOption "the NeoMutt mail client";
package = mkOption {
type = types.package;
default = pkgs.neomutt;
defaultText = lib.literalExpression "pkgs.neomutt";
description = "The neomutt package to use.";
};
package = lib.mkPackageOption pkgs "neomutt" { };
sidebar = mkOption {
type = sidebarModule;

View file

@ -250,12 +250,8 @@ in {
'';
};
package = mkOption {
type = types.package;
default = pkgs.neovim-unwrapped;
defaultText = literalExpression "pkgs.neovim-unwrapped";
description = "The package to use for the neovim binary.";
};
package =
lib.mkPackageOption pkgs "neovim" { default = "neovim-unwrapped"; };
finalPackage = mkOption {
type = types.package;
@ -324,11 +320,8 @@ in {
coc = {
enable = mkEnableOption "Coc";
package = mkOption {
type = types.package;
default = pkgs.vimPlugins.coc-nvim;
defaultText = literalExpression "pkgs.vimPlugins.coc-nvim";
description = "The package to use for the CoC plugin.";
package = lib.mkPackageOption pkgs "coc-nvim" {
default = [ "vimPlugins" "coc-nvim" ];
};
settings = mkOption {

View file

@ -7,12 +7,7 @@ in {
options.programs.nix-index = {
enable = lib.mkEnableOption "nix-index, a file database for nixpkgs";
package = lib.mkOption {
type = lib.types.package;
default = pkgs.nix-index;
defaultText = lib.literalExpression "pkgs.nix-index";
description = "Package providing the {command}`nix-index` tool.";
};
package = lib.mkPackageOption pkgs "nix-index" { };
enableBashIntegration =
lib.hm.shell.mkBashIntegrationOption { inherit config; };

View file

@ -50,15 +50,8 @@ in {
programs.nnn = {
enable = lib.mkEnableOption "nnn";
package = mkOption {
type = types.package;
default = pkgs.nnn;
defaultText = literalExpression "pkgs.nnn";
example =
literalExpression "pkgs.nnn.override ({ withNerdIcons = true; });";
description = ''
Package containing the {command}`nnn` program.
'';
package = lib.mkPackageOption pkgs "nnn" {
example = "pkgs.nnn.override { withNerdIcons = true; }";
};
finalPackage = mkOption {

View file

@ -23,13 +23,8 @@ in {
programs.octant = {
enable = lib.mkEnableOption "octant";
package = lib.mkOption {
type = lib.types.package;
default = pkgs.octant;
defaultText = literalExpression "pkgs.octant";
example = literalExpression "pkgs.octant-other";
description = "The Octant package to use.";
};
package =
lib.mkPackageOption pkgs "octant" { example = "pkgs.octant-other"; };
plugins = lib.mkOption {
default = [ ];

View file

@ -24,12 +24,7 @@ in {
options.programs.pandoc = {
enable = mkEnableOption "pandoc";
package = mkOption {
type = types.package;
default = pkgs.pandoc;
defaultText = literalExpression "pkgs.pandoc";
description = "The pandoc package to use.";
};
package = lib.mkPackageOption pkgs "pandoc" { };
# We wrap the executable to pass some arguments
finalPackage = mkOption {
@ -98,6 +93,7 @@ in {
};
home.packages = [ cfg.finalPackage ];
xdg.dataFile = lib.mapAttrs' makeTemplateFile cfg.templates
// lib.listToAttrs (map makeCslFile cfg.citationStyles);
};

View file

@ -10,17 +10,9 @@ in {
options.programs.password-store = {
enable = lib.mkEnableOption "Password store";
package = mkOption {
type = types.package;
default = pkgs.pass;
defaultText = literalExpression "pkgs.pass";
example = literalExpression ''
pkgs.pass.withExtensions (exts: [ exts.pass-otp ])
'';
description = ''
The `pass` package to use.
Can be used to specify extensions.
'';
package = lib.mkPackageOption pkgs "pass" {
example = "pkgs.pass.withExtensions (exts: [ exts.pass-otp ])";
extraDescription = "Can be used to specify extensions.";
};
settings = mkOption rec {

View file

@ -59,13 +59,9 @@ in {
'';
};
selectcmdPackage = mkOption {
type = types.package;
default = pkgs.fzf;
defaultText = lib.literalExpression "pkgs.fzf";
description = ''
The package needed for the {var}`settings.selectcmd`.
'';
selectcmdPackage = lib.mkPackageOption pkgs "fzf" {
extraDescription =
"The package needed for the {var}`settings.selectcmd`.";
};
snippets = mkOption {

View file

@ -7,12 +7,7 @@ in {
programs.pidgin = {
enable = lib.mkEnableOption "Pidgin messaging client";
package = lib.mkOption {
type = lib.types.package;
default = pkgs.pidgin;
defaultText = lib.literalExpression "pkgs.pidgin";
description = "The Pidgin package to use.";
};
package = lib.mkPackageOption pkgs "pidgin" { };
plugins = lib.mkOption {
default = [ ];

View file

@ -8,12 +8,7 @@ in {
options.programs.piston-cli = {
enable = lib.mkEnableOption "piston-cli, code runner";
package = lib.mkOption {
type = lib.types.package;
default = pkgs.piston-cli;
defaultText = lib.literalExpression "pkgs.piston-cli";
description = "The piston-cli package to use.";
};
package = lib.mkPackageOption pkgs "piston-cli" { };
settings = lib.mkOption {
type = yamlFormat.type;

View file

@ -10,12 +10,7 @@ in {
options.programs.pubs = {
enable = lib.mkEnableOption "pubs";
package = mkOption {
type = types.package;
default = pkgs.pubs;
defaultText = lib.literalExpression "pkgs.pubs";
description = "The package to use for the pubs script.";
};
package = lib.mkPackageOption pkgs "pubs" { };
extraConfig = mkOption {
type = types.lines;

View file

@ -12,12 +12,7 @@ in {
options.programs.pyenv = {
enable = lib.mkEnableOption "pyenv";
package = lib.mkOption {
type = lib.types.package;
default = pkgs.pyenv;
defaultText = lib.literalExpression "pkgs.pyenv";
description = "The package to use for pyenv.";
};
package = lib.mkPackageOption pkgs "pyenv" { };
enableBashIntegration =
lib.hm.shell.mkBashIntegrationOption { inherit config; };

View file

@ -8,12 +8,7 @@ in {
meta.maintainers = [ lib.hm.maintainers.florpe ];
options.programs.pylint = {
enable = lib.mkEnableOption "the pylint Python linter";
package = lib.mkOption {
type = lib.types.package;
default = pkgs.python3Packages.pylint;
defaultText = lib.literalExpression "pkgs.python3Packages.pylint";
description = "The pylint package to use.";
};
package = lib.mkPackageOption pkgs [ "python3Packages" "pylint" ] { };
settings = lib.mkOption {
type = iniFormat.type;
default = { };

View file

@ -7,12 +7,7 @@ in {
options.programs.ranger = {
enable = lib.mkEnableOption "ranger file manager";
package = mkOption {
type = types.package;
default = pkgs.ranger;
defaultText = literalExpression "pkgs.ranger";
description = "The ranger package to use.";
};
package = lib.mkPackageOption pkgs "ranger" { };
extraPackages = mkOption {
type = types.listOf types.package;

View file

@ -63,11 +63,8 @@ in {
options.programs.rbw = {
enable = lib.mkEnableOption "rbw, a CLI Bitwarden client";
package = mkOption {
type = types.package;
default = pkgs.rbw;
defaultText = lib.literalExpression "pkgs.rbw";
description = ''
package = lib.mkPackageOption pkgs "rbw" {
extraDescription = ''
Package providing the {command}`rbw` tool and its
{command}`rbw-agent` daemon.
'';

View file

@ -104,15 +104,8 @@ in {
enable = lib.mkEnableOption
"Rofi: A window switcher, application launcher and dmenu replacement";
package = mkOption {
default = pkgs.rofi;
type = types.package;
description = ''
Package providing the {command}`rofi` binary.
'';
example = literalExpression ''
pkgs.rofi.override { plugins = [ pkgs.rofi-emoji ]; };
'';
package = lib.mkPackageOption pkgs "rofi" {
example = "pkgs.rofi.override { plugins = [ pkgs.rofi-emoji ]; }";
};
finalPackage = mkOption {

View file

@ -92,12 +92,7 @@ in {
options.programs.sbt = {
enable = lib.mkEnableOption "sbt";
package = mkOption {
type = types.package;
default = pkgs.sbt;
defaultText = literalExpression "pkgs.sbt";
description = "The package with sbt to be installed.";
};
package = lib.mkPackageOption pkgs "sbt" { };
baseUserConfigPath = mkOption {
type = types.str;

View file

@ -11,12 +11,7 @@ in {
scmpuff, a command line tool that allows you to work quicker with Git by
substituting numeric shortcuts for files'';
package = lib.mkOption {
type = lib.types.package;
default = pkgs.scmpuff;
defaultText = lib.literalExpression "pkgs.scmpuff";
description = "Package providing the {command}`scmpuff` tool.";
};
package = lib.mkPackageOption pkgs "scmpuff" { };
enableBashIntegration =
lib.hm.shell.mkBashIntegrationOption { inherit config; };

View file

@ -6,12 +6,7 @@ let
in {
options.programs.senpai = {
enable = lib.mkEnableOption "senpai";
package = mkOption {
type = types.package;
default = pkgs.senpai;
defaultText = lib.literalExpression "pkgs.senpai";
description = "The `senpai` package to use.";
};
package = lib.mkPackageOption pkgs "senpai" { };
config = mkOption {
type = types.submodule {
freeformType = types.attrsOf types.anything;

View file

@ -15,12 +15,7 @@ in {
enable = lib.mkEnableOption
"Sioyek, a PDF viewer designed for reading research papers and technical books";
package = mkOption {
default = pkgs.sioyek;
defaultText = literalExpression "pkgs.sioyek";
type = types.package;
description = "Package providing the sioyek binary";
};
package = lib.mkPackageOption pkgs "sioyek" { };
bindings = mkOption {
description = ''

View file

@ -8,12 +8,7 @@ in {
options.programs.skim = {
enable = lib.mkEnableOption "skim - a command-line fuzzy finder";
package = mkOption {
type = types.package;
default = pkgs.skim;
defaultText = lib.literalExpression "pkgs.skim";
description = "Package providing the {command}`skim` tool.";
};
package = lib.mkPackageOption pkgs "skim" { };
defaultCommand = mkOption {
type = types.nullOr types.str;

View file

@ -14,12 +14,7 @@ in {
options.programs.starship = {
enable = lib.mkEnableOption "starship";
package = mkOption {
type = types.package;
default = pkgs.starship;
defaultText = lib.literalExpression "pkgs.starship";
description = "The package to use for the starship binary.";
};
package = lib.mkPackageOption pkgs "starship" { };
settings = mkOption {
type = tomlFormat.type;

View file

@ -97,12 +97,7 @@ in {
'';
};
package = mkOption {
type = types.package;
default = pkgs.swayr;
defaultText = lib.literalExpression "pkgs.swayr";
description = "swayr package to use.";
};
package = lib.mkPackageOption pkgs "swayr" { };
};
config = mkIf cfg.enable (lib.mkMerge [

View file

@ -188,12 +188,8 @@ in {
programs.thunderbird = {
enable = lib.mkEnableOption "Thunderbird";
package = mkOption {
type = types.package;
default = pkgs.thunderbird;
defaultText = literalExpression "pkgs.thunderbird";
example = literalExpression "pkgs.thunderbird-91";
description = "The Thunderbird package to use.";
package = lib.mkPackageOption pkgs "thunderbird" {
example = "pkgs.thunderbird-91";
};
profileVersion = mkOption {

View file

@ -10,12 +10,7 @@ in {
options.programs.timidity = {
enable = lib.mkEnableOption "timidity, a software MIDI renderer";
package = lib.mkOption {
type = lib.types.package;
default = pkgs.timidity;
defaultText = lib.literalExpression "pkgs.timidity";
description = "The timidity package to use.";
};
package = lib.mkPackageOption pkgs "timidity" { };
finalPackage = lib.mkOption {
readOnly = true;

View file

@ -10,12 +10,7 @@ in {
options.programs.topgrade = {
enable = lib.mkEnableOption "topgrade";
package = lib.mkOption {
type = lib.types.package;
default = pkgs.topgrade;
defaultText = lib.literalExpression "pkgs.topgrade";
description = "The package to use for the topgrade binary.";
};
package = lib.mkPackageOption pkgs "topgrade" { };
settings = lib.mkOption {
type = tomlFormat.type;

View file

@ -168,14 +168,7 @@ in {
programs.vdirsyncer = {
enable = lib.mkEnableOption "vdirsyncer";
package = lib.mkOption {
type = lib.types.package;
default = pkgs.vdirsyncer;
defaultText = "pkgs.vdirsyncer";
description = ''
vdirsyncer package to use.
'';
};
package = lib.mkPackageOption pkgs "vdirsyncer" { };
statusPath = lib.mkOption {
type = lib.types.str;

View file

@ -244,14 +244,9 @@ in {
options.programs.vscode = {
enable = lib.mkEnableOption "Visual Studio Code";
package = mkOption {
type = types.package;
default = pkgs.vscode;
defaultText = literalExpression "pkgs.vscode";
example = literalExpression "pkgs.vscodium";
description = ''
Version of Visual Studio Code to install.
'';
package = lib.mkPackageOption pkgs "vscode" {
example = "pkgs.vscodium";
extraDescription = "Version of Visual Studio Code to install.";
};
mutableExtensionsDir = mkOption {

View file

@ -17,12 +17,7 @@ in {
options.programs.watson = {
enable = lib.mkEnableOption "watson, a wonderful CLI to track your time";
package = lib.mkOption {
type = lib.types.package;
default = pkgs.watson;
defaultText = lib.literalExpression "pkgs.watson";
description = "Package providing the {command}`watson`.";
};
package = lib.mkPackageOption pkgs "watson" { };
enableBashIntegration =
lib.hm.shell.mkBashIntegrationOption { inherit config; };

View file

@ -4,14 +4,7 @@ in {
options.programs.xmobar = {
enable = lib.mkEnableOption "Xmobar, a minimalistic status bar";
package = lib.mkOption {
default = pkgs.haskellPackages.xmobar;
defaultText = lib.literalExpression "pkgs.haskellPackages.xmobar";
type = lib.types.package;
description = ''
Package providing the {command}`xmobar` binary.
'';
};
package = lib.mkPackageOption pkgs [ "haskellPackages" "xmobar" ] { };
extraConfig = lib.mkOption {
default = "";

View file

@ -16,12 +16,7 @@ in {
options.programs.yt-dlp = {
enable = lib.mkEnableOption "yt-dlp";
package = mkOption {
type = types.package;
default = pkgs.yt-dlp;
defaultText = lib.literalExpression "pkgs.yt-dlp";
description = "Package providing the {command}`yt-dlp` tool.";
};
package = lib.mkPackageOption pkgs "yt-dlp" { };
settings = mkOption {
type = with types; attrsOf (oneOf [ bool int str ]);

View file

@ -20,12 +20,7 @@ in {
Zathura, a highly customizable and functional document viewer
focused on keyboard interaction'';
package = mkOption {
type = types.package;
default = pkgs.zathura;
defaultText = "pkgs.zathura";
description = "The Zathura package to use";
};
package = lib.mkPackageOption pkgs "zathura" { };
options = mkOption {
default = { };

View file

@ -48,12 +48,8 @@ let
'';
};
package = mkOption {
type = lib.types.package;
example = lib.literalExpression "pkgs.activitywatch";
description = ''
The derivation containing the watcher executable.
'';
package = lib.mkPackageOption pkgs "activitywatch" {
extraDescription = "The derivation containing the watcher executable.";
};
executable = mkOption {