aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorRobert Helgesson <robert@rycee.net>2020-02-02 00:39:17 +0100
committerRobert Helgesson <robert@rycee.net>2020-02-02 01:07:28 +0100
commit45abf3d38a2b51c00c347cab6950f3734e023bba (patch)
tree414fde5d14d1d075fa65e59175660fd1fb680c43
parent9799d3de2d270a9c40fcf81d600bfd71088e144d (diff)
Apply `nixfmt` on many files
-rw-r--r--default.nix11
-rw-r--r--doc/default.nix38
-rw-r--r--home-manager/install.nix109
-rw-r--r--modules/lib/dag.nix45
-rw-r--r--modules/lib/shell.nix2
-rw-r--r--modules/lib/stdlib-extended.nix8
-rw-r--r--modules/lib/strings.nix13
-rw-r--r--modules/lib/types-dag.nix92
-rw-r--r--modules/lib/zsh.nix16
-rw-r--r--modules/misc/fontconfig.nix12
-rw-r--r--modules/misc/lib.nix2
-rw-r--r--modules/misc/numlock.nix12
-rw-r--r--modules/misc/pam.nix14
-rw-r--r--modules/misc/qt.nix28
-rw-r--r--modules/misc/xdg-mime-apps.nix18
-rw-r--r--modules/misc/xdg-mime.nix4
-rw-r--r--modules/misc/xdg-user-dirs.nix35
-rw-r--r--modules/programs/alacritty.nix11
-rw-r--r--modules/programs/alot-accounts.nix25
-rw-r--r--modules/programs/astroid-accounts.nix7
-rw-r--r--modules/programs/astroid.nix82
-rw-r--r--modules/programs/autorandr.nix206
-rw-r--r--modules/programs/bat.nix13
-rw-r--r--modules/programs/beets.nix19
-rw-r--r--modules/programs/broot.nix97
-rw-r--r--modules/programs/browserpass.nix115
-rw-r--r--modules/programs/chromium.nix99
-rw-r--r--modules/programs/command-not-found/command-not-found.nix14
-rw-r--r--modules/programs/direnv.nix50
-rw-r--r--modules/programs/eclipse.nix14
-rw-r--r--modules/programs/feh.nix45
-rw-r--r--modules/programs/fzf.nix38
-rw-r--r--modules/programs/getmail-accounts.nix4
-rw-r--r--modules/programs/getmail.nix47
-rw-r--r--modules/programs/git.nix250
-rw-r--r--modules/programs/gnome-terminal.nix352
-rw-r--r--modules/programs/go.nix44
-rw-r--r--modules/programs/home-manager.nix11
-rw-r--r--modules/programs/htop.nix79
-rw-r--r--modules/programs/info.nix31
-rw-r--r--modules/programs/jq.nix26
-rw-r--r--modules/programs/kakoune.nix150
-rw-r--r--modules/programs/keychain.nix18
-rw-r--r--modules/programs/lsd.nix6
-rw-r--r--modules/programs/matplotlib.nix25
-rw-r--r--modules/programs/mbsync-accounts.nix12
-rw-r--r--modules/programs/mbsync.nix184
-rw-r--r--modules/programs/mercurial.nix68
-rw-r--r--modules/programs/mpv.nix57
-rw-r--r--modules/programs/msmtp-accounts.nix3
-rw-r--r--modules/programs/msmtp.nix54
-rw-r--r--modules/programs/neomutt-accounts.nix9
-rw-r--r--modules/programs/neomutt.nix217
-rw-r--r--modules/programs/newsboat.nix56
-rw-r--r--modules/programs/noti.nix13
-rw-r--r--modules/programs/notmuch-accounts.nix4
-rw-r--r--modules/programs/notmuch.nix137
-rw-r--r--modules/programs/obs-studio.nix36
-rw-r--r--modules/programs/offlineimap-accounts.nix18
-rw-r--r--modules/programs/offlineimap.nix162
-rw-r--r--modules/programs/opam.nix4
-rw-r--r--modules/programs/password-store.nix4
-rw-r--r--modules/programs/pazi.nix4
-rw-r--r--modules/programs/pidgin.nix6
-rw-r--r--modules/programs/readline.nix51
-rw-r--r--modules/programs/rofi.nix120
-rw-r--r--modules/programs/rtorrent.nix9
-rw-r--r--modules/programs/skim.nix36
-rw-r--r--modules/programs/starship.nix30
-rw-r--r--modules/programs/taskwarrior.nix36
-rw-r--r--modules/programs/termite.nix155
-rw-r--r--modules/programs/texlive.nix16
-rw-r--r--modules/programs/urxvt.nix36
-rw-r--r--modules/programs/vim.nix154
-rw-r--r--modules/programs/vscode/haskell.nix14
-rw-r--r--modules/programs/z-lua.nix28
-rw-r--r--modules/programs/zathura.nix27
-rw-r--r--modules/services/blueman-applet.nix18
-rw-r--r--modules/services/cbatticon.nix52
-rw-r--r--modules/services/compton.nix112
-rw-r--r--modules/services/dunst.nix171
-rw-r--r--modules/services/dwm-status.nix13
-rw-r--r--modules/services/emacs.nix30
-rw-r--r--modules/services/flameshot.nix14
-rw-r--r--modules/services/getmail.nix32
-rw-r--r--modules/services/gnome-keyring.nix27
-rw-r--r--modules/services/grobi.nix16
-rw-r--r--modules/services/hound.nix38
-rw-r--r--modules/services/imapnotify-accounts.nix7
-rw-r--r--modules/services/imapnotify.nix143
-rw-r--r--modules/services/kdeconnect.nix25
-rw-r--r--modules/services/keepassx.nix18
-rw-r--r--modules/services/lorri.nix23
-rw-r--r--modules/services/mbsync.nix32
-rw-r--r--modules/services/mpdris2.nix28
-rw-r--r--modules/services/muchsync.nix38
-rw-r--r--modules/services/network-manager-applet.nix18
-rw-r--r--modules/services/nextcloud-client.nix8
-rw-r--r--modules/services/owncloud-client.nix8
-rw-r--r--modules/services/parcellite.nix12
-rw-r--r--modules/services/password-store-sync.nix38
-rw-r--r--modules/services/pasystray.nix32
-rw-r--r--modules/services/polybar.nix48
-rw-r--r--modules/services/random-background.nix72
-rw-r--r--modules/services/redshift.nix60
-rw-r--r--modules/services/rsibreak.nix8
-rw-r--r--modules/services/screen-locker.nix12
-rw-r--r--modules/services/spotifyd.nix11
-rw-r--r--modules/services/stalonetray.nix66
-rw-r--r--modules/services/status-notifier-watcher.nix36
-rw-r--r--modules/services/syncthing.nix24
-rw-r--r--modules/services/taffybar.nix8
-rw-r--r--modules/services/tahoe-lafs.nix12
-rw-r--r--modules/services/taskwarrior-sync.nix16
-rw-r--r--modules/services/udiskie.nix44
-rw-r--r--modules/services/unclutter.nix4
-rw-r--r--modules/services/unison.nix21
-rw-r--r--modules/services/window-managers/awesome.nix39
-rw-r--r--modules/services/window-managers/bspwm/default.nix81
-rw-r--r--modules/services/window-managers/bspwm/options.nix33
-rw-r--r--modules/services/window-managers/xmonad.nix12
-rw-r--r--modules/services/xcape.nix22
-rw-r--r--modules/services/xembed-sni-proxy.nix8
-rw-r--r--modules/services/xscreensaver.nix26
-rw-r--r--modules/services/xsuspender.nix38
-rw-r--r--modules/xcursor.nix12
-rw-r--r--modules/xresources.nix32
-rw-r--r--modules/xsession.nix46
-rw-r--r--nixos/default.nix115
-rw-r--r--overlay.nix4
-rw-r--r--tests/lib/types/dag-merge.nix24
-rw-r--r--tests/lib/types/list-or-dag-merge.nix24
-rw-r--r--tests/modules/files/hidden-source.nix5
-rw-r--r--tests/modules/misc/pam/default.nix4
-rw-r--r--tests/modules/misc/xdg/default.nix4
-rw-r--r--tests/modules/misc/xdg/mime-apps-basics.nix4
-rw-r--r--tests/modules/misc/xsession/basic.nix6
-rw-r--r--tests/modules/misc/xsession/keyboard-without-layout.nix10
-rw-r--r--tests/modules/programs/alacritty/empty-settings.nix4
-rw-r--r--tests/modules/programs/alacritty/example-settings.nix16
-rw-r--r--tests/modules/programs/browserpass/browserpass.nix36
-rw-r--r--tests/modules/programs/browserpass/default.nix4
-rw-r--r--tests/modules/programs/firefox/profile-settings.nix26
-rw-r--r--tests/modules/programs/firefox/state-version-19_09.nix22
-rw-r--r--tests/modules/programs/getmail/default.nix4
-rw-r--r--tests/modules/programs/getmail/getmail.nix6
-rw-r--r--tests/modules/programs/git/git-with-email.nix4
-rw-r--r--tests/modules/programs/git/git.nix22
-rw-r--r--tests/modules/programs/gpg/default.nix4
-rw-r--r--tests/modules/programs/mbsync/default.nix4
-rw-r--r--tests/modules/programs/mbsync/mbsync.nix8
-rw-r--r--tests/modules/programs/neomutt/default.nix4
-rw-r--r--tests/modules/programs/neomutt/neomutt.nix15
-rw-r--r--tests/modules/programs/newsboat/default.nix4
-rw-r--r--tests/modules/programs/newsboat/newsboat-basics.nix12
-rw-r--r--tests/modules/programs/readline/default.nix4
-rw-r--r--tests/modules/programs/readline/using-all-options.nix4
-rw-r--r--tests/modules/programs/rofi/assert-on-both-theme-and-colors.nix10
-rw-r--r--tests/modules/programs/ssh/default-config.nix11
-rw-r--r--tests/modules/programs/ssh/forwards-dynamic-bind-path-with-port-asserts.nix23
-rw-r--r--tests/modules/programs/ssh/forwards-dynamic-valid-bind-no-asserts.nix29
-rw-r--r--tests/modules/programs/ssh/forwards-local-bind-path-with-port-asserts.nix29
-rw-r--r--tests/modules/programs/ssh/forwards-local-host-path-with-port-asserts.nix29
-rw-r--r--tests/modules/programs/ssh/forwards-remote-bind-path-with-port-asserts.nix29
-rw-r--r--tests/modules/programs/ssh/forwards-remote-host-path-with-port-asserts.nix29
-rw-r--r--tests/modules/programs/ssh/match-blocks-attrs.nix27
-rw-r--r--tests/modules/programs/texlive/default.nix4
-rw-r--r--tests/modules/programs/tmux/vi-all-true.nix4
-rw-r--r--tests/modules/programs/zsh/history-path-new-custom.nix7
-rw-r--r--tests/modules/programs/zsh/history-path-new-default.nix7
-rw-r--r--tests/modules/programs/zsh/history-path-old-custom.nix7
-rw-r--r--tests/modules/programs/zsh/history-path-old-default.nix7
-rw-r--r--tests/modules/services/sxhkd/configuration.nix5
-rw-r--r--tests/modules/services/window-managers/i3/default.nix4
-rw-r--r--tests/modules/services/window-managers/i3/i3-keybindings.nix26
-rw-r--r--tests/modules/systemd/timers.nix12
-rw-r--r--tests/modules/xresources/default.nix4
177 files changed, 2916 insertions, 3631 deletions
diff --git a/default.nix b/default.nix
index 1e3ff09e0bc..545b0114191 100644
--- a/default.nix
+++ b/default.nix
@@ -1,13 +1,10 @@
-{ pkgs ? import <nixpkgs> {} }:
+{ pkgs ? import <nixpkgs> { } }:
rec {
- home-manager = pkgs.callPackage ./home-manager {
- path = toString ./.;
- };
+ home-manager = pkgs.callPackage ./home-manager { path = toString ./.; };
- install = pkgs.callPackage ./home-manager/install.nix {
- inherit home-manager;
- };
+ install =
+ pkgs.callPackage ./home-manager/install.nix { inherit home-manager; };
nixos = import ./nixos;
}
diff --git a/doc/default.nix b/doc/default.nix
index 97c1914a571..638027b0a78 100644
--- a/doc/default.nix
+++ b/doc/default.nix
@@ -1,8 +1,6 @@
{
- # Note, this should be "the standard library" + HM extensions.
- lib
-, pkgs
-}:
+# Note, this should be "the standard library" + HM extensions.
+lib, pkgs }:
let
@@ -19,23 +17,19 @@ let
# Make sure the used package is scrubbed to avoid actually
# instantiating derivations.
scrubbedPkgsModule = {
- imports = [
- {
- _module.args = {
- pkgs = lib.mkForce (nmd.scrubDerivations "pkgs" pkgs);
- pkgs_i686 = lib.mkForce { };
- };
- }
- ];
+ imports = [{
+ _module.args = {
+ pkgs = lib.mkForce (nmd.scrubDerivations "pkgs" pkgs);
+ pkgs_i686 = lib.mkForce { };
+ };
+ }];
};
hmModulesDocs = nmd.buildModulesDocs {
- modules =
- import ../modules/modules.nix {
- inherit lib pkgs;
- check = false;
- }
- ++ [ scrubbedPkgsModule ];
+ modules = import ../modules/modules.nix {
+ inherit lib pkgs;
+ check = false;
+ } ++ [ scrubbedPkgsModule ];
moduleRootPaths = [ ./.. ];
mkModuleUrl = path:
"https://github.com/rycee/home-manager/blob/master/${path}#blob-path";
@@ -58,9 +52,7 @@ let
'';
};
-in
-
-{
+in {
inherit nmdSrc;
options = {
@@ -71,7 +63,5 @@ in
manPages = docs.manPages;
- manual = {
- inherit (docs) html htmlOpenTool;
- };
+ manual = { inherit (docs) html htmlOpenTool; };
}
diff --git a/home-manager/install.nix b/home-manager/install.nix
index bafb9a065c2..87aae50470e 100644
--- a/home-manager/install.nix
+++ b/home-manager/install.nix
@@ -1,70 +1,67 @@
{ home-manager, runCommand }:
-runCommand
- "home-manager-install"
- {
- propagatedBuildInputs = [ home-manager ];
- preferLocalBuild = true;
- allowSubstitutes = false;
- shellHookOnly = true;
- shellHook = ''
- confFile="''${XDG_CONFIG_HOME:-$HOME/.config}/nixpkgs/home.nix"
+runCommand "home-manager-install" {
+ propagatedBuildInputs = [ home-manager ];
+ preferLocalBuild = true;
+ allowSubstitutes = false;
+ shellHookOnly = true;
+ shellHook = ''
+ confFile="''${XDG_CONFIG_HOME:-$HOME/.config}/nixpkgs/home.nix"
- if [[ ! -e $confFile ]]; then
- echo
- echo "Creating initial Home Manager configuration..."
+ if [[ ! -e $confFile ]]; then
+ echo
+ echo "Creating initial Home Manager configuration..."
- mkdir -p "$(dirname "$confFile")"
- cat > $confFile <<EOF
- { config, pkgs, ... }:
+ mkdir -p "$(dirname "$confFile")"
+ cat > $confFile <<EOF
+ { config, pkgs, ... }:
- {
- # Let Home Manager install and manage itself.
- programs.home-manager.enable = true;
+ {
+ # Let Home Manager install and manage itself.
+ programs.home-manager.enable = true;
- # This value determines the Home Manager release that your
- # configuration is compatible with. This helps avoid breakage
- # when a new Home Manager release introduces backwards
- # incompatible changes.
- #
- # You can update Home Manager without changing this value. See
- # the Home Manager release notes for a list of state version
- # changes in each release.
- home.stateVersion = "19.09";
- }
- EOF
- fi
+ # This value determines the Home Manager release that your
+ # configuration is compatible with. This helps avoid breakage
+ # when a new Home Manager release introduces backwards
+ # incompatible changes.
+ #
+ # You can update Home Manager without changing this value. See
+ # the Home Manager release notes for a list of state version
+ # changes in each release.
+ home.stateVersion = "19.09";
+ }
+ EOF
+ fi
- echo
- echo "Creating initial Home Manager generation..."
- echo
+ echo
+ echo "Creating initial Home Manager generation..."
+ echo
- if home-manager switch; then
- cat <<EOF
+ if home-manager switch; then
+ cat <<EOF
- All done! The home-manager tool should now be installed and you
- can edit
+ All done! The home-manager tool should now be installed and you
+ can edit
- $confFile
+ $confFile
- to configure Home Manager. Run 'man home-configuration.nix' to
- see all available options.
- EOF
- exit 0
- else
- cat <<EOF
+ to configure Home Manager. Run 'man home-configuration.nix' to
+ see all available options.
+ EOF
+ exit 0
+ else
+ cat <<EOF
- Uh oh, the installation failed! Please create an issue at
+ Uh oh, the installation failed! Please create an issue at
- https://github.com/rycee/home-manager/issues
+ https://github.com/rycee/home-manager/issues
- if the error seems to be the fault of Home Manager.
- EOF
- exit 1
- fi
- '';
- }
- ''
- echo This derivation is not buildable, instead run it using nix-shell.
- exit 1
- ''
+ if the error seems to be the fault of Home Manager.
+ EOF
+ exit 1
+ fi
+ '';
+} ''
+ echo This derivation is not buildable, instead run it using nix-shell.
+ exit 1
+''
diff --git a/modules/lib/dag.nix b/modules/lib/dag.nix
index 535dec35ad4..cbe34129652 100644
--- a/modules/lib/dag.nix
+++ b/modules/lib/dag.nix
@@ -13,13 +13,11 @@ with lib;
rec {
- emptyDag = {};
+ emptyDag = { };
isDag = dag:
- let
- isEntry = e: (e ? data) && (e ? after) && (e ? before);
- in
- builtins.isAttrs dag && all (x: x) (mapAttrsToList (n: isEntry) dag);
+ let isEntry = e: (e ? data) && (e ? after) && (e ? before);
+ in builtins.isAttrs dag && all (x: x) (mapAttrsToList (n: isEntry) dag);
# Takes an attribute set containing entries built by
# dagEntryAnywhere, dagEntryAfter, and dagEntryBefore to a
@@ -80,22 +78,19 @@ rec {
dagTopoSort = dag:
let
dagBefore = dag: name:
- mapAttrsToList (n: v: n) (
- filterAttrs (n: v: any (a: a == name) v.before) dag
- );
- normalizedDag =
- mapAttrs (n: v: {
- name = n;
- data = v.data;
- after = v.after ++ dagBefore dag n;
- }) dag;
+ mapAttrsToList (n: v: n)
+ (filterAttrs (n: v: any (a: a == name) v.before) dag);
+ normalizedDag = mapAttrs (n: v: {
+ name = n;
+ data = v.data;
+ after = v.after ++ dagBefore dag n;
+ }) dag;
before = a: b: any (c: a.name == c) b.after;
sorted = toposort before (mapAttrsToList (n: v: v) normalizedDag);
- in
- if sorted ? result then
- { result = map (v: { inherit (v) name data; }) sorted.result; }
- else
- sorted;
+ in if sorted ? result then {
+ result = map (v: { inherit (v) name data; }) sorted.result;
+ } else
+ sorted;
# Applies a function to each element of the given DAG.
dagMap = f: dag: mapAttrs (n: v: v // { data = f n v.data; }) dag;
@@ -103,22 +98,20 @@ rec {
# Create a DAG entry with no particular dependency information.
dagEntryAnywhere = data: {
inherit data;
- before = [];
- after = [];
+ before = [ ];
+ after = [ ];
};
- dagEntryBetween = before: after: data: {
- inherit data before after;
- };
+ dagEntryBetween = before: after: data: { inherit data before after; };
dagEntryAfter = after: data: {
inherit data after;
- before = [];
+ before = [ ];
};
dagEntryBefore = before: data: {
inherit data before;
- after = [];
+ after = [ ];
};
}
diff --git a/modules/lib/shell.nix b/modules/lib/shell.nix
index f1443c5466a..5e5743f51ea 100644
--- a/modules/lib/shell.nix
+++ b/modules/lib/shell.nix
@@ -2,7 +2,7 @@
rec {
# Produces a Bourne shell like variable export statement.
- export = n: v: "export ${n}=\"${toString v}\"";
+ export = n: v: ''export ${n}="${toString v}"'';
# Given an attribute set containing shell variable names and their
# assignment, this function produces a string containing an export
diff --git a/modules/lib/stdlib-extended.nix b/modules/lib/stdlib-extended.nix
index 307f7a07c8f..93f2397cee8 100644
--- a/modules/lib/stdlib-extended.nix
+++ b/modules/lib/stdlib-extended.nix
@@ -3,9 +3,5 @@
nixpkgsLib:
-let
- mkHmLib = import ./.;
-in
- nixpkgsLib.extend (self: super: {
- hm = mkHmLib { lib = super; };
- })
+let mkHmLib = import ./.;
+in nixpkgsLib.extend (self: super: { hm = mkHmLib { lib = super; }; })
diff --git a/modules/lib/strings.nix b/modules/lib/strings.nix
index 13d6bb03be6..fe7b2fa3061 100644
--- a/modules/lib/strings.nix
+++ b/modules/lib/strings.nix
@@ -9,19 +9,14 @@ with lib;
# All characters that are considered safe. Note "-" is not
# included to avoid "-" followed by digit being interpreted as a
# version.
- safeChars =
- [ "+" "." "_" "?" "=" ]
- ++ lowerChars
- ++ upperChars
+ safeChars = [ "+" "." "_" "?" "=" ] ++ lowerChars ++ upperChars
++ stringToCharacters "0123456789";
empties = l: genList (x: "") (length l);
- unsafeInName = stringToCharacters (
- replaceStrings safeChars (empties safeChars) path
- );
+ unsafeInName =
+ stringToCharacters (replaceStrings safeChars (empties safeChars) path);
safeName = replaceStrings unsafeInName (empties unsafeInName) path;
- in
- "hm_" + safeName;
+ in "hm_" + safeName;
}
diff --git a/modules/lib/types-dag.nix b/modules/lib/types-dag.nix
index 4003d7132e4..4dbdb907b0e 100644
--- a/modules/lib/types-dag.nix
+++ b/modules/lib/types-dag.nix
@@ -6,41 +6,34 @@ let
isDagEntry = e: isAttrs e && (e ? data) && (e ? after) && (e ? before);
- dagContentType = elemType: types.submodule {
- options = {
- data = mkOption { type = elemType; };
- after = mkOption { type = with types; uniq (listOf str); };
- before = mkOption { type = with types; uniq (listOf str); };
+ dagContentType = elemType:
+ types.submodule {
+ options = {
+ data = mkOption { type = elemType; };
+ after = mkOption { type = with types; uniq (listOf str); };
+ before = mkOption { type = with types; uniq (listOf str); };
+ };
};
- };
-
-in
-{
+in {
# A directed acyclic graph of some inner type.
dagOf = elemType:
let
- convertAllToDags =
- let
- maybeConvert = n: v:
- if isDagEntry v
- then v
- else dag.entryAnywhere v;
- in
- map (def: def // { value = mapAttrs maybeConvert def.value; });
+ convertAllToDags = let
+ maybeConvert = n: v: if isDagEntry v then v else dag.entryAnywhere v;
+ in map (def: def // { value = mapAttrs maybeConvert def.value; });
attrEquivalent = types.attrsOf (dagContentType elemType);
- in
- mkOptionType rec {
- name = "dagOf";
- description = "DAG of ${elemType.description}s";
- check = isAttrs;
- merge = loc: defs: attrEquivalent.merge loc (convertAllToDags defs);
- getSubOptions = prefix: elemType.getSubOptions (prefix ++ ["<name>"]);
- getSubModules = elemType.getSubModules;
- substSubModules = m: dagOf (elemType.substSubModules m);
- functor = (defaultFunctor name) // { wrapped = elemType; };
- };
+ in mkOptionType rec {
+ name = "dagOf";
+ description = "DAG of ${elemType.description}s";
+ check = isAttrs;
+ merge = loc: defs: attrEquivalent.merge loc (convertAllToDags defs);
+ getSubOptions = prefix: elemType.getSubOptions (prefix ++ [ "<name>" ]);
+ getSubModules = elemType.getSubModules;
+ substSubModules = m: dagOf (elemType.substSubModules m);
+ functor = (defaultFunctor name) // { wrapped = elemType; };
+ };
# A directed acyclic graph of some inner type OR a list of that
# inner type. This is a temporary hack for use by the
@@ -55,42 +48,37 @@ in
listOrDagOf = elemType:
let
paddedIndexStr = list: i:
- let
- padWidth = stringLength (toString (length list));
- in
- fixedWidthNumber padWidth i;
+ let padWidth = stringLength (toString (length list));
+ in fixedWidthNumber padWidth i;
convertAllToDags = defs:
let
convertAttrValue = n: v:
- if isDagEntry v then v
- else dag.entryAnywhere v;
+ if isDagEntry v then v else dag.entryAnywhere v;
convertListValue = namePrefix: vs:
let
pad = paddedIndexStr vs;
makeEntry = i: v:
nameValuePair "${namePrefix}.${pad i}" (dag.entryAnywhere v);
- in
- listToAttrs (imap1 makeEntry vs);
+ in listToAttrs (imap1 makeEntry vs);
convertValue = i: value:
- if isList value
- then convertListValue "unnamed-${paddedIndexStr defs i}" value
- else mapAttrs convertAttrValue value;
- in
- imap1 (i: def: def // { value = convertValue i def.value; }) defs;
+ if isList value then
+ convertListValue "unnamed-${paddedIndexStr defs i}" value
+ else
+ mapAttrs convertAttrValue value;
+ in imap1 (i: def: def // { value = convertValue i def.value; }) defs;
attrEquivalent = types.attrsOf (dagContentType elemType);
- in
- mkOptionType rec {
- name = "dagOf";
- description = "DAG of ${elemType.description}s";
- check = x: isAttrs x || isList x;
- merge = loc: defs: attrEquivalent.merge loc (convertAllToDags defs);
- getSubOptions = prefix: elemType.getSubOptions (prefix ++ ["<name>"]);
- getSubModules = elemType.getSubModules;
- substSubModules = m: dagOf (elemType.substSubModules m);
- functor = (defaultFunctor name) // { wrapped = elemType; };
- };
+ in mkOptionType rec {
+ name = "dagOf";
+ description = "DAG of ${elemType.description}s";
+ check = x: isAttrs x || isList x;
+ merge = loc: defs: attrEquivalent.merge loc (convertAllToDags defs);
+ getSubOptions = prefix: elemType.getSubOptions (prefix ++ [ "<name>" ]);
+ getSubModules = elemType.getSubModules;
+ substSubModules = m: dagOf (elemType.substSubModules m);
+ functor = (defaultFunctor name) // { wrapped = elemType; };
+ };
}
diff --git a/modules/lib/zsh.nix b/modules/lib/zsh.nix
index 1d3e96b54bb..c6901350f50 100644
--- a/modules/lib/zsh.nix
+++ b/modules/lib/zsh.nix
@@ -2,13 +2,15 @@
rec {
# Produces a Zsh shell like value
- toZshValue = v: if builtins.isBool v then
- if v then "true" else "false"
- else if builtins.isString v then
- "\"${v}\""
- else if builtins.isList v then
- "(${lib.concatStringsSep " " (map toZshValue v)})"
- else "\"${toString v}\"";
+ toZshValue = v:
+ if builtins.isBool v then
+ if v then "true" else "false"
+ else if builtins.isString v then
+ ''"${v}"''
+ else if builtins.isList v then
+ "(${lib.concatStringsSep " " (map toZshValue v)})"
+ else
+ ''"${toString v}"'';
# Produces a Zsh shell like definition statement
define = n: v: "${n}=${toZshValue v}";
diff --git a/modules/misc/fontconfig.nix b/modules/misc/fontconfig.nix
index 8dbcce53c22..795ab3a74f6 100644
--- a/modules/misc/fontconfig.nix
+++ b/modules/misc/fontconfig.nix
@@ -8,15 +8,15 @@ let
profileDirectory = config.home.profileDirectory;
-in
-
-{
+in {
meta.maintainers = [ maintainers.rycee ];
imports = [
- (mkRenamedOptionModule
- [ "fonts" "fontconfig" "enableProfileFonts" ]
- [ "fonts" "fontconfig" "enable" ])
+ (mkRenamedOptionModule [ "fonts" "fontconfig" "enableProfileFonts" ] [
+ "fonts"
+ "fontconfig"
+ "enable"
+ ])
];
options = {
diff --git a/modules/misc/lib.nix b/modules/misc/lib.nix
index a0907545314..13c00dc59a6 100644
--- a/modules/misc/lib.nix
+++ b/modules/misc/lib.nix
@@ -4,7 +4,7 @@
options = {
lib = lib.mkOption {
type = lib.types.attrsOf lib.types.attrs;
- default = {};
+ default = { };
description = ''
This option allows modules to define helper functions,
constants, etc.
diff --git a/modules/misc/numlock.nix b/modules/misc/numlock.nix
index 77149d123ec..199dd317daa 100644
--- a/modules/misc/numlock.nix
+++ b/modules/misc/numlock.nix
@@ -6,12 +6,8 @@ let
cfg = config.xsession.numlock;
-in
-
-{
- options = {
- xsession.numlock.enable = mkEnableOption "Num Lock";
- };
+in {
+ options = { xsession.numlock.enable = mkEnableOption "Num Lock"; };
config = mkIf cfg.enable {
systemd.user.services.numlockx = {
@@ -27,9 +23,7 @@ in
ExecStart = "${pkgs.numlockx}/bin/numlockx";
};
- Install = {
- WantedBy = [ "graphical-session.target" ];
- };
+ Install = { WantedBy = [ "graphical-session.target" ]; };
};
};
}
diff --git a/modules/misc/pam.nix b/modules/misc/pam.nix
index 6ace2bfdaac..f54f4b95089 100644
--- a/modules/misc/pam.nix
+++ b/modules/misc/pam.nix
@@ -6,14 +6,12 @@ let
vars = config.pam.sessionVariables;
-in
-
-{
+in {
meta.maintainers = [ maintainers.rycee ];
options = {
pam.sessionVariables = mkOption {
- default = {};
+ default = { };
type = types.attrs;
example = { EDITOR = "vim"; };
description = ''
@@ -27,10 +25,8 @@ in
};
};
- config = mkIf (vars != {}) {
- home.file.".pam_environment".text =
- concatStringsSep "\n" (
- mapAttrsToList (n: v: "${n} OVERRIDE=\"${toString v}\"") vars
- ) + "\n";
+ config = mkIf (vars != { }) {
+ home.file.".pam_environment".text = concatStringsSep "\n"
+ (mapAttrsToList (n: v: ''${n} OVERRIDE="${toString v}"'') vars) + "\n";
};
}
diff --git a/modules/misc/qt.nix b/modules/misc/qt.nix
index d0ba16d7386..ff38f842c81 100644
--- a/modules/misc/qt.nix
+++ b/modules/misc/qt.nix
@@ -6,19 +6,13 @@ let
cfg = config.qt;
-in
-
-{
+in {
meta.maintainers = [ maintainers.rycee ];
imports = [
- (mkChangedOptionModule
- [ "qt" "useGtkTheme" ]
- [ "qt" "platformTheme" ]
+ (mkChangedOptionModule [ "qt" "useGtkTheme" ] [ "qt" "platformTheme" ]
(config:
- if getAttrFromPath [ "qt" "useGtkTheme" ] config
- then "gtk"
- else null))
+ if getAttrFromPath [ "qt" "useGtkTheme" ] config then "gtk" else null))
];
options = {
@@ -29,10 +23,8 @@ in
type = types.nullOr (types.enum [ "gtk" "gnome" ]);
default = null;
example = "gnome";
- relatedPackages = [
- "qgnomeplatform"
- ["libsForQt5" "qtstyleplugins"]
- ];
+ relatedPackages =
+ [ "qgnomeplatform" [ "libsForQt5" "qtstyleplugins" ] ];
description = ''
Selects the platform theme to use for Qt applications.</para>
<para>The options are
@@ -59,16 +51,16 @@ in
home.sessionVariables.QT_QPA_PLATFORMTHEME =
if cfg.platformTheme == "gnome" then "gnome" else "gtk2";
- home.packages =
- if cfg.platformTheme == "gnome"
- then [ pkgs.qgnomeplatform ]
- else [ pkgs.libsForQt5.qtstyleplugins ];
+ home.packages = if cfg.platformTheme == "gnome" then
+ [ pkgs.qgnomeplatform ]
+ else
+ [ pkgs.libsForQt5.qtstyleplugins ];
xsession.importedVariables = [ "QT_QPA_PLATFORMTHEME" ];
# Enable GTK+ style for Qt4 in either case.
# It doesn’t support the platform theme packages.
- home.activation.useGtkThemeInQt4 = hm.dag.entryAfter ["writeBoundary"] ''
+ home.activation.useGtkThemeInQt4 = hm.dag.entryAfter [ "writeBoundary" ] ''
$DRY_RUN_CMD ${pkgs.crudini}/bin/crudini $VERBOSE_ARG \
--set "${config.xdg.configHome}/Trolltech.conf" Qt style GTK+
'';
diff --git a/modules/misc/xdg-mime-apps.nix b/modules/misc/xdg-mime-apps.nix
index 979c7ea48be..7ba4083b3c0 100644
--- a/modules/misc/xdg-mime-apps.nix
+++ b/modules/misc/xdg-mime-apps.nix
@@ -9,9 +9,7 @@ let
strListOrSingleton = with types;
coercedTo (either (listOf str) str) toList (listOf str);
-in
-
-{
+in {
meta.maintainers = with maintainers; [ pacien ];
options.xdg.mimeApps = {
@@ -80,13 +78,11 @@ in
config.xdg.configFile."mimeapps.list".source;
xdg.configFile."mimeapps.list".text =
- let
- joinValues = mapAttrs (n: concatStringsSep ";");
- in
- generators.toINI {} {
- "Added Associations" = joinValues cfg.associations.added;
- "Removed Associations" = joinValues cfg.associations.removed;
- "Default Applications" = joinValues cfg.defaultApplications;
- };
+ let joinValues = mapAttrs (n: concatStringsSep ";");
+ in generators.toINI { } {
+ "Added Associations" = joinValues cfg.associations.added;
+ "Removed Associations" = joinValues cfg.associations.removed;
+ "Default Applications" = joinValues cfg.defaultApplications;
+ };
};
}
diff --git a/modules/misc/xdg-mime.nix b/modules/misc/xdg-mime.nix
index 0063e43d2ab..32006e025ff 100644
--- a/modules/misc/xdg-mime.nix
+++ b/modules/misc/xdg-mime.nix
@@ -6,9 +6,7 @@ let
cfg = config.xdg.mime;
-in
-
-{
+in {
options = {
xdg.mime.enable = mkOption {
type = types.bool;
diff --git a/modules/misc/xdg-user-dirs.nix b/modules/misc/xdg-user-dirs.nix
index d45356da41c..da9d3c43ad9 100644
--- a/modules/misc/xdg-user-dirs.nix
+++ b/modules/misc/xdg-user-dirs.nix
@@ -6,15 +6,15 @@ let
cfg = config.xdg.userDirs;
-in
-
-{
+in {
meta.maintainers = with maintainers; [ pacien ];
imports = [
- (mkRenamedOptionModule
- [ "xdg" "userDirs" "publishShare" ]
- [ "xdg" "userDirs" "publicShare" ])
+ (mkRenamedOptionModule [ "xdg" "userDirs" "publishShare" ] [
+ "xdg"
+ "userDirs"
+ "publicShare"
+ ])
];
options.xdg.userDirs = {
@@ -89,18 +89,15 @@ in
};
config = mkIf cfg.enable {
- xdg.configFile."user-dirs.dirs".text = generators.toKeyValue {} (
- {
- XDG_DESKTOP_DIR = cfg.desktop;
- XDG_DOCUMENTS_DIR = cfg.documents;
- XDG_DOWNLOAD_DIR = cfg.download;
- XDG_MUSIC_DIR = cfg.music;
- XDG_PICTURES_DIR = cfg.pictures;
- XDG_PUBLICSHARE_DIR = cfg.publicShare;
- XDG_TEMPLATES_DIR = cfg.templates;
- XDG_VIDEOS_DIR = cfg.videos;
- }
- // cfg.extraConfig
- );
+ xdg.configFile."user-dirs.dirs".text = generators.toKeyValue { } ({
+ XDG_DESKTOP_DIR = cfg.desktop;
+ XDG_DOCUMENTS_DIR = cfg.documents;
+ XDG_DOWNLOAD_DIR = cfg.download;
+ XDG_MUSIC_DIR = cfg.music;
+ XDG_PICTURES_DIR = cfg.pictures;
+ XDG_PUBLICSHARE_DIR = cfg.publicShare;
+ XDG_TEMPLATES_DIR = cfg.templates;
+ XDG_VIDEOS_DIR = cfg.videos;
+ } // cfg.extraConfig);
};
}
diff --git a/modules/programs/alacritty.nix b/modules/programs/alacritty.nix
index 84675cb1c8a..69b9ea9673d 100644
--- a/modules/programs/alacritty.nix
+++ b/modules/programs/alacritty.nix
@@ -6,16 +6,14 @@ let
cfg = config.programs.alacritty;
-in
-
-{
+in {
options = {
programs.alacritty = {
enable = mkEnableOption "Alacritty";
settings = mkOption {
type = types.attrs;
- default = {};
+ default = { };
example = literalExample ''
{
window.dimensions = {
@@ -45,8 +43,9 @@ in
(mkIf cfg.enable {
home.packages = [ pkgs.alacritty ];
- xdg.configFile."alacritty/alacritty.yml" = mkIf (cfg.settings != {}) {
- text = replaceStrings ["\\\\"] ["\\"] (builtins.toJSON cfg.settings);
+ xdg.configFile."alacritty/alacritty.yml" = mkIf (cfg.settings != { }) {
+ text =
+ replaceStrings [ "\\\\" ] [ "\\" ] (builtins.toJSON cfg.settings);
};
})
];
diff --git a/modules/programs/alot-accounts.nix b/modules/programs/alot-accounts.nix
index 8f3ffdfb31e..89ae28f9c8e 100644
--- a/modules/programs/alot-accounts.nix
+++ b/modules/programs/alot-accounts.nix
@@ -18,12 +18,10 @@ with lib;
type = types.attrsOf types.str;
default = {
type = "shellcommand";
- command = "'${pkgs.notmuch}/bin/notmuch address --format=json --output=recipients date:6M..'";
- regexp =
- "'\\[?{"
- + ''"name": "(?P<name>.*)", ''
- + ''"address": "(?P<email>.+)", ''
- + ''"name-addr": ".*"''
+ command =
+ "'${pkgs.notmuch}/bin/notmuch address --format=json --output=recipients date:6M..'";
+ regexp = "'\\[?{" + ''
+ "name": "(?P<name>.*)", "address": "(?P<email>.+)", "name-addr": ".*"''
+ "}[,\\]]?'";
shellcommand_external_filtering = "False";
};
@@ -36,9 +34,9 @@ with lib;
}
'';
description = ''
- Contact completion configuration as expected per alot.
- See <link xlink:href="http://alot.readthedocs.io/en/latest/configuration/contacts_completion.html">alot's wiki</link> for
- explanation about possible values.
+ Contact completion configuration as expected per alot.
+ See <link xlink:href="http://alot.readthedocs.io/en/latest/configuration/contacts_completion.html">alot's wiki</link> for
+ explanation about possible values.
'';
};
@@ -52,10 +50,9 @@ with lib;
};
config = mkIf config.notmuch.enable {
- alot.sendMailCommand = mkOptionDefault (
- if config.msmtp.enable
- then "msmtpq --read-envelope-from --read-recipients"
- else null
- );
+ alot.sendMailCommand = mkOptionDefault (if config.msmtp.enable then
+ "msmtpq --read-envelope-from --read-recipients"
+ else
+ null);
};
}
diff --git a/modules/programs/astroid-accounts.nix b/modules/programs/astroid-accounts.nix
index bc94a301db0..17544ff7899 100644
--- a/modules/programs/astroid-accounts.nix
+++ b/modules/programs/astroid-accounts.nix
@@ -17,7 +17,7 @@ with lib;
extraConfig = mkOption {
type = types.attrs;
- default = {};
+ default = { };
example = { select_query = ""; };
description = ''
Extra settings to add to this astroid account configuration.
@@ -26,8 +26,7 @@ with lib;
};
config = mkIf config.notmuch.enable {
- astroid.sendMailCommand = mkIf config.msmtp.enable (
- mkOptionDefault "msmtpq --read-envelope-from --read-recipients"
- );
+ astroid.sendMailCommand = mkIf config.msmtp.enable
+ (mkOptionDefault "msmtpq --read-envelope-from --read-recipients");
};
}
diff --git a/modules/programs/astroid.nix b/modules/programs/astroid.nix
index b4b60fe235b..8b3762fac0b 100644
--- a/modules/programs/astroid.nix
+++ b/modules/programs/astroid.nix
@@ -8,35 +8,32 @@ let
cfg = config.programs.astroid;
astroidAccounts =
- filterAttrs
- (n: v: v.astroid.enable)
- config.accounts.email.accounts;
+ filterAttrs (n: v: v.astroid.enable) config.accounts.email.accounts;
boolOpt = b: if b then "true" else "false";
- accountAttr = account: with account; {
- email = address;
- name = realName;
- sendmail = astroid.sendMailCommand;
- additional_sent_tags = "";
- default = boolOpt primary;
- save_drafts_to = "${maildir.absPath}/${folders.drafts}";
- save_sent = "true";
- save_sent_to = "${maildir.absPath}/${folders.sent}";
- select_query = "";
- }
- // optionalAttrs (signature.showSignature != "none") {
- signature_attach = boolOpt (signature.showSignature == "attach");
- signature_default_on = boolOpt (signature.showSignature != "none");
- signature_file = pkgs.writeText "signature.txt" signature.text;
- signature_file_markdown = "false";
- signature_separate = "true"; # prepends '--\n' to the signature
- }
- // optionalAttrs (gpg != null) {
- always_gpg_sign = boolOpt gpg.signByDefault;
- gpgkey = gpg.key;
- }
- // astroid.extraConfig;
+ accountAttr = account:
+ with account;
+ {
+ email = address;
+ name = realName;
+ sendmail = astroid.sendMailCommand;
+ additional_sent_tags = "";
+ default = boolOpt primary;
+ save_drafts_to = "${maildir.absPath}/${folders.drafts}";
+ save_sent = "true";
+ save_sent_to = "${maildir.absPath}/${folders.sent}";
+ select_query = "";
+ } // optionalAttrs (signature.showSignature != "none") {
+ signature_attach = boolOpt (signature.showSignature == "attach");
+ signature_default_on = boolOpt (signature.showSignature != "none");
+ signature_file = pkgs.writeText "signature.txt" signature.text;
+ signature_file_markdown = "false";
+ signature_separate = "true"; # prepends '--\n' to the signature
+ } // optionalAttrs (gpg != null) {
+ always_gpg_sign = boolOpt gpg.signByDefault;
+ gpgkey = gpg.key;
+ } // astroid.extraConfig;
# See https://github.com/astroidmail/astroid/wiki/Configuration-Reference
configFile = mailAccounts:
@@ -51,12 +48,9 @@ let
cfg.extraConfig
cfg.externalEditor
];
- in
- builtins.toJSON astroidConfig;
+ in builtins.toJSON astroidConfig;
-in
-
-{
+in {
options = {
programs.astroid = {
enable = mkEnableOption "Astroid";
@@ -81,7 +75,8 @@ in
"cmd" = cmd;
};
};
- example = "nvim-qt -- -c 'set ft=mail' '+set fileencoding=utf-8' '+set ff=unix' '+set enc=utf-8' '+set fo+=w' %1";
+ example =
+ "nvim-qt -- -c 'set ft=mail' '+set fileencoding=utf-8' '+set ff=unix' '+set enc=utf-8' '+set fo+=w' %1";
description = ''
You can use <code>%1</code>, <code>%2</code>, and
<code>%3</code> to refer respectively to:
@@ -96,7 +91,7 @@ in
extraConfig = mkOption {
type = types.attrs;
- default = {};
+ default = { };
example = { poll.interval = 0; };
description = ''
JSON config that will override the default Astroid configuration.
@@ -106,18 +101,15 @@ in
};
config = mkIf cfg.enable {
- home.packages = [ pkgs.astroid ];
-
- xdg.configFile."astroid/config".source =
- pkgs.runCommand "out.json"
- {
- json = configFile astroidAccounts;
- preferLocalBuild = true;
- allowSubstitutes = false;
- }
- ''
- echo -n "$json" | ${pkgs.jq}/bin/jq . > $out
- '';
+ home.packages = [ pkgs.astroid ];
+
+ xdg.configFile."astroid/config".source = pkgs.runCommand "out.json" {
+ json = configFile astroidAccounts;
+ preferLocalBuild = true;
+ allowSubstitutes = false;
+ } ''
+ echo -n "$json" | ${pkgs.jq}/bin/jq . > $out
+ '';
xdg.configFile."astroid/poll.sh" = {
executable = true;
diff --git a/modules/programs/autorandr.nix b/modules/programs/autorandr.nix
index 4514a5b5d58..02fc77c1e58 100644
--- a/modules/programs/autorandr.nix
+++ b/modules/programs/autorandr.nix
@@ -6,20 +6,21 @@ let
cfg = config.programs.autorandr;
- matrixOf = n: m: elemType: mkOptionType rec {
- name = "matrixOf";
- description = "${toString n}×${toString m} matrix of ${elemType.description}s";
- check = xss:
- let
- listOfSize = l: xs: isList xs && length xs == l;
- in
- listOfSize n xss && all (xs: listOfSize m xs && all elemType.check xs) xss;
- merge = mergeOneOption;
- getSubOptions = prefix: elemType.getSubOptions (prefix ++ ["*" "*"]);
- getSubModules = elemType.getSubModules;
- substSubModules = mod: matrixOf n m (elemType.substSubModules mod);
- functor = (defaultFunctor name) // { wrapped = elemType; };
- };
+ matrixOf = n: m: elemType:
+ mkOptionType rec {
+ name = "matrixOf";
+ description =
+ "${toString n}×${toString m} matrix of ${elemType.description}s";
+ check = xss:
+ let listOfSize = l: xs: isList xs && length xs == l;
+ in listOfSize n xss
+ && all (xs: listOfSize m xs && all elemType.check xs) xss;
+ merge = mergeOneOption;
+ getSubOptions = prefix: elemType.getSubOptions (prefix ++ [ "*" "*" ]);
+ getSubModules = elemType.getSubModules;
+ substSubModules = mod: matrixOf n m (elemType.substSubModules mod);
+ functor = (defaultFunctor name) // { wrapped = elemType; };
+ };
profileModule = types.submodule {
options = {
@@ -29,19 +30,19 @@ let
Output name to EDID mapping.
Use <code>autorandr --fingerprint</code> to get current setup values.
'';
- default = {};
+ default = { };
};
config = mkOption {
type = types.attrsOf configModule;
description = "Per output profile configuration.";
- default = {};
+ default = { };
};
hooks = mkOption {
type = profileHooksModule;
description = "Profile hook scripts.";
- default = {};
+ default = { };
};
};
};
@@ -89,7 +90,7 @@ let
};
rotate = mkOption {
- type = types.nullOr (types.enum ["normal" "left" "right" "inverted"]);
+ type = types.nullOr (types.enum [ "normal" "left" "right" "inverted" ]);
description = "Output rotate configuration.";
default = null;
example = "left";
@@ -126,7 +127,7 @@ let
type = types.nullOr (types.submodule {
options = {
method = mkOption {
- type = types.enum ["factor" "pixel" ];
+ type = types.enum [ "factor" "pixel" ];
description = "Output scaling method.";
default = "factor";
example = "pixel";
@@ -178,19 +179,21 @@ let
postswitch = mkOption {
type = types.attrsOf hookType;
description = "Postswitch hook executed after mode switch.";
- default = {};
+ default = { };
};
preswitch = mkOption {
type = types.attrsOf hookType;
description = "Preswitch hook executed before mode switch.";
- default = {};
+ default = { };
};
predetect = mkOption {
type = types.attrsOf hookType;
- description = "Predetect hook executed before autorandr attempts to run xrandr.";
- default = {};
+ description = ''
+ Predetect hook executed before autorandr attempts to run xrandr.
+ '';
+ default = { };
};
};
};
@@ -211,50 +214,56 @@ let
predetect = mkOption {
type = hookType;
- description = "Predetect hook executed before autorandr attempts to run xrandr.";
+ description = ''
+ Predetect hook executed before autorandr attempts to run xrandr.
+ '';
default = "";
};
};
};
hookToFile = folder: name: hook:
- nameValuePair
- "autorandr/${folder}/${name}"
- { source = "${pkgs.writeShellScriptBin "hook" hook}/bin/hook"; };
- profileToFiles = name: profile: with profile; mkMerge ([
- {
- "autorandr/${name}/setup".text = concatStringsSep "\n" (mapAttrsToList fingerprintToString fingerprint);
- "autorandr/${name}/config".text = concatStringsSep "\n" (mapAttrsToList configToString profile.config);
- }
- (mkIf (hooks.postswitch != "") (listToAttrs [ (hookToFile name "postswitch" hooks.postswitch) ]))
- (mkIf (hooks.preswitch != "") (listToAttrs [ (hookToFile name "preswitch" hooks.preswitch) ]))
- (mkIf (hooks.predetect != "") (listToAttrs [ (hookToFile name "predetect" hooks.predetect) ]))
- ]);
+ nameValuePair "autorandr/${folder}/${name}" {
+ source = "${pkgs.writeShellScriptBin "hook" hook}/bin/hook";
+ };
+ profileToFiles = name: profile:
+ with profile;
+ mkMerge ([
+ {
+ "autorandr/${name}/setup".text = concatStringsSep "\n"
+ (mapAttrsToList fingerprintToString fingerprint);
+ "autorandr/${name}/config".text =
+ concatStringsSep "\n" (mapAttrsToList configToString profile.config);
+ }
+ (mkIf (hooks.postswitch != "")
+ (listToAttrs [ (hookToFile name "postswitch" hooks.postswitch) ]))
+ (mkIf (hooks.preswitch != "")
+ (listToAttrs [ (hookToFile name "preswitch" hooks.preswitch) ]))
+ (mkIf (hooks.predetect != "")
+ (listToAttrs [ (hookToFile name "predetect" hooks.predetect) ]))
+ ]);
fingerprintToString = name: edid: "${name} ${edid}";
- configToString = name: config: if config.enable then ''
- output ${name}
- ${optionalString (config.position != "") "pos ${config.position}"}
- ${optionalString config.primary "primary"}
- ${optionalString (config.dpi != null) "dpi ${toString config.dpi}"}
- ${optionalString (config.gamma != "") "gamma ${config.gamma}"}
- ${optionalString (config.mode != "") "mode ${config.mode}"}
- ${optionalString (config.rate != "") "rate ${config.rate}"}
- ${optionalString (config.rotate != null) "rotate ${config.rotate}"}
- ${optionalString (config.scale != null) (
- (if config.scale.method == "factor" then "scale" else "scale-from")
- + " ${toString config.scale.x}x${toString config.scale.y}"
- )}
- ${optionalString (config.transform != null) (
- "transform " + concatMapStringsSep "," toString (flatten config.transform)
- )}
- '' else ''
- output ${name}
- off
- '';
-
-in
-
-{
+ configToString = name: config:
+ if config.enable then ''
+ output ${name}
+ ${optionalString (config.position != "") "pos ${config.position}"}
+ ${optionalString config.primary "primary"}
+ ${optionalString (config.dpi != null) "dpi ${toString config.dpi}"}
+ ${optionalString (config.gamma != "") "gamma ${config.gamma}"}
+ ${optionalString (config.mode != "") "mode ${config.mode}"}
+ ${optionalString (config.rate != "") "rate ${config.rate}"}
+ ${optionalString (config.rotate != null) "rotate ${config.rotate}"}
+ ${optionalString (config.scale != null)
+ ((if config.scale.method == "factor" then "scale" else "scale-from")
+ + " ${toString config.scale.x}x${toString config.scale.y}")}
+ ${optionalString (config.transform != null) ("transform "
+ + concatMapStringsSep "," toString (flatten config.transform))}
+ '' else ''
+ output ${name}
+ off
+ '';
+
+in {
options = {
programs.autorandr = {
enable = mkEnableOption "Autorandr";
@@ -262,39 +271,39 @@ in
hooks = mkOption {
type = globalHooksModule;
description = "Global hook scripts";
- default = {};
+ default = { };
example = literalExample ''
- {
- postswitch = {
- "notify-i3" = "''${pkgs.i3}/bin/i3-msg restart";
- "change-background" = readFile ./change-background.sh;
- "change-dpi" = '''
- case "$AUTORANDR_CURRENT_PROFILE" in
- default)
- DPI=120
- ;;
- home)
- DPI=192
- ;;
- work)
- DPI=144
- ;;
- *)
- echo "Unknown profle: $AUTORANDR_CURRENT_PROFILE"
- exit 1
- esac
-
- echo "Xft.dpi: $DPI" | ''${pkgs.xorg.xrdb}/bin/xrdb -merge
- '''
- };
- }
+ {
+ postswitch = {
+ "notify-i3" = "''${pkgs.i3}/bin/i3-msg restart";
+ "change-background" = readFile ./change-background.sh;
+ "change-dpi" = '''
+ case "$AUTORANDR_CURRENT_PROFILE" in
+ default)
+ DPI=120
+ ;;
+ home)
+ DPI=192
+ ;;
+ work)
+ DPI=144
+ ;;
+ *)
+ echo "Unknown profle: $AUTORANDR_CURRENT_PROFILE"
+ exit 1
+ esac
+
+ echo "Xft.dpi: $DPI" | ''${pkgs.xorg.xrdb}/bin/xrdb -merge
+ '''
+ };
+ }
'';
};
profiles = mkOption {
type = types.attrsOf profileModule;
description = "Autorandr profiles specification.";
- default = {};
+ default = { };
example = literalExample ''
{
"work" = {
@@ -323,24 +332,21 @@ in
};
config = mkIf cfg.enable {
- assertions = flatten (mapAttrsToList (
- profile: { config, ... }: mapAttrsToList (
- output: opts: {
- assertion = opts.scale == null || opts.transform == null;
- message = ''
- Cannot use the profile output options 'scale' and 'transform' simultaneously.
- Check configuration for: programs.autorandr.profiles.${profile}.config.${output}
- '';
- })
- config
- )
- cfg.profiles);
+ assertions = flatten (mapAttrsToList (profile:
+ { config, ... }:
+ mapAttrsToList (output: opts: {
+ assertion = opts.scale == null || opts.transform == null;
+ message = ''
+ Cannot use the profile output options 'scale' and 'transform' simultaneously.
+ Check configuration for: programs.autorandr.profiles.${profile}.config.${output}
+ '';
+ }) config) cfg.profiles);
home.packages = [ pkgs.autorandr ];
xdg.configFile = mkMerge ([
(mapAttrs' (hookToFile "postswitch.d") cfg.hooks.postswitch)
- (mapAttrs' (hookToFile "preswitch.d") cfg.hooks.preswitch)
- (mapAttrs' (hookToFile "predetect.d") cfg.hooks.predetect)
+ (mapAttrs' (hookToFile "preswitch.d") cfg.hooks.preswitch)
+ (mapAttrs' (hookToFile "predetect.d") cfg.hooks.predetect)
(mkMerge (mapAttrsToList profileToFiles cfg.profiles))
]);
};
diff --git a/modules/programs/bat.nix b/modules/programs/bat.nix
index 860c5e82f54..aa0df9abd45 100644
--- a/modules/programs/bat.nix
+++ b/modules/programs/bat.nix
@@ -6,9 +6,7 @@ let
cfg = config.programs.bat;
-in
-
-{
+in {
meta.maintainers = [ maintainers.marsam ];
options.programs.bat = {
@@ -16,7 +14,7 @@ in
config = mkOption {
type = types.attrsOf types.str;
- default = {};
+ default = { };
example = {
theme = "TwoDark";
pager = "less -FR";
@@ -31,10 +29,9 @@ in
config = mkIf cfg.enable {
home.packages = [ pkgs.bat ];
- xdg.configFile."bat/config" = mkIf (cfg.config != {}) {
- text = concatStringsSep "\n" (
- mapAttrsToList (n: v: ''--${n}="${v}"'') cfg.config
- );
+ xdg.configFile."bat/config" = mkIf (cfg.config != { }) {
+ text = concatStringsSep "\n"
+ (mapAttrsToList (n: v: ''--${n}="${v}"'') cfg.config);
};
};
}
diff --git a/modules/programs/beets.nix b/modules/programs/beets.nix
index efd5f8fd16a..1a45bbea1c7 100644
--- a/modules/programs/beets.nix
+++ b/modules/programs/beets.nix
@@ -6,19 +6,17 @@ let
cfg = config.programs.beets;
-in
-
-{
+in {
meta.maintainers = [ maintainers.rycee ];
options = {
programs.beets = {
enable = mkOption {
type = types.bool;
- default =
- if versionAtLeast config.home.stateVersion "19.03"
- then false
- else cfg.settings != {};
+ default = if versionAtLeast config.home.stateVersion "19.03" then
+ false
+ else
+ cfg.settings != { };
defaultText = "false";
description = ''
Whether to enable the beets music library manager. This
@@ -32,7 +30,8 @@ in
type = types.package;
default = pkgs.beets;
defaultText = literalExample "pkgs.beets";
- example = literalExample "(pkgs.beets.override { enableCheck = true; })";
+ example =
+ literalExample "(pkgs.beets.override { enableCheck = true; })";
description = ''
The <literal>beets</literal> package to use.
Can be used to specify extensions.
@@ -41,7 +40,7 @@ in
settings = mkOption {
type = types.attrs;
- default = {};
+ default = { };
description = ''
Configuration written to
<filename>~/.config/beets/config.yaml</filename>
@@ -54,6 +53,6 @@ in
home.packages = [ cfg.package ];
xdg.configFile."beets/config.yaml".text =
- builtins.toJSON config.programs.beets.settings;
+ builtins.toJSON config.programs.beets.settings;
};
}
diff --git a/modules/programs/broot.nix b/modules/programs/broot.nix
index f6d3cd7f920..eac31b56801 100644
--- a/modules/programs/broot.nix
+++ b/modules/programs/broot.nix
@@ -7,29 +7,23 @@ let
cfg = config.programs.broot;
configFile = config:
- pkgs.runCommand "conf.toml"
- {
- buildInputs = [ pkgs.remarshal ];
- preferLocalBuild = true;
- allowSubstitutes = false;
- }
- ''
- remarshal -if json -of toml \
- < ${pkgs.writeText "verbs.json" (builtins.toJSON config)} \
- > $out
- '';
+ pkgs.runCommand "conf.toml" {
+ buildInputs = [ pkgs.remarshal ];
+ preferLocalBuild = true;
+ allowSubstitutes = false;
+ } ''
+ remarshal -if json -of toml \
+ < ${pkgs.writeText "verbs.json" (builtins.toJSON config)} \
+ > $out
+ '';
brootConf = {
verbs =
- mapAttrsToList
- (name: value: value // { invocation = name; })
- cfg.verbs;
+ mapAttrsToList (name: value: value // { invocation = name; }) cfg.verbs;
skin = cfg.skin;
};
-in
-
-{
+in {
meta.maintainers = [ maintainers.aheaume ];
options.programs.broot = {
@@ -63,7 +57,10 @@ in
type = with types; attrsOf (attrsOf (either bool str));
default = {
"p" = { execution = ":parent"; };
- "edit" = { shortcut = "e"; execution = "$EDITOR {file}" ; };
+ "edit" = {
+ shortcut = "e";
+ execution = "$EDITOR {file}";
+ };
"create {subpath}" = { execution = "$EDITOR {directory}/{subpath}"; };
"view" = { execution = "less {file}"; };
};
@@ -114,7 +111,7 @@ in
skin = mkOption {
type = types.attrsOf types.str;
- default = {};
+ default = { };
example = literalExample ''
{
status_normal_fg = "grayscale(18)";
@@ -177,38 +174,36 @@ in
# Dummy file to prevent broot from trying to reinstall itself
xdg.configFile."broot/launcher/installed".text = "";
- programs.bash.initExtra =
- mkIf cfg.enableBashIntegration (
- # Using mkAfter to make it more likely to appear after other
- # manipulations of the prompt.
- mkAfter ''
- # This script was automatically generated by the broot function
- # More information can be found in https://github.com/Canop/broot
- # This function starts broot and executes the command
- # it produces, if any.
- # It's needed because some shell commands, like `cd`,
- # have no useful effect if executed in a subshell.
- function br {
- f=$(mktemp)
- (
- set +e
- broot --outcmd "$f" "$@"
- code=$?
- if [ "$code" != 0 ]; then
- rm -f "$f"
- exit "$code"
- fi
- )
- code=$?
- if [ "$code" != 0 ]; then
- return "$code"
- fi
- d=$(cat "$f")
- rm -f "$f"
- eval "$d"
- }
- ''
- );
+ programs.bash.initExtra = mkIf cfg.enableBashIntegration (
+ # Using mkAfter to make it more likely to appear after other
+ # manipulations of the prompt.
+ mkAfter ''
+ # This script was automatically generated by the broot function
+ # More information can be found in https://github.com/Canop/broot
+ # This function starts broot and executes the command
+ # it produces, if any.
+ # It's needed because some shell commands, like `cd`,
+ # have no useful effect if executed in a subshell.
+ function br {
+ f=$(mktemp)
+ (
+ set +e
+ broot --outcmd "$f" "$@"
+ code=$?
+ if [ "$code" != 0 ]; then
+ rm -f "$f"
+ exit "$code"
+ fi
+ )
+ code=$?
+ if [ "$code" != 0 ]; then
+ return "$code"
+ fi
+ d=$(cat "$f")
+ rm -f "$f"
+ eval "$d"
+ }
+ '');
programs.zsh.initExtra = mkIf cfg.enableZshIntegration ''
# This script was automatically generated by the broot function
diff --git a/modules/programs/browserpass.nix b/modules/programs/browserpass.nix
index e65484fad5c..10a2883c871 100644
--- a/modules/programs/browserpass.nix
+++ b/modules/programs/browserpass.nix
@@ -2,13 +2,7 @@
with lib;
-let
- browsers = [
- "chrome"
- "chromium"
- "firefox"
- "vivaldi"
- ];
+let browsers = [ "chrome" "chromium" "firefox" "vivaldi" ];
in {
options = {
programs.browserpass = {
@@ -24,58 +18,59 @@ in {
};
config = mkIf config.programs.browserpass.enable {
- home.file =
- foldl' (a: b: a // b) {}
- (concatMap (x: with pkgs.stdenv;
- if x == "chrome" then
- let dir = if isDarwin
- then "Library/Application Support/Google/Chrome/NativeMessagingHosts"
- else ".config/google-chrome/NativeMessagingHosts";
- in [
- {
- "${dir}/com.github.browserpass.native.json".source =
- "${pkgs.browserpass}/lib/browserpass/hosts/chromium/com.github.browserpass.native.json";
- "${dir}/../policies/managed/com.github.browserpass.native.json".source =
- "${pkgs.browserpass}/lib/browserpass/policies/chromium/com.github.browserpass.native.json";
- }
- ]
- else if x == "chromium" then
- let dir = if isDarwin
- then "Library/Application Support/Chromium/NativeMessagingHosts"
- else ".config/chromium/NativeMessagingHosts";
- in [
- {
- "${dir}/com.github.browserpass.native.json".source =
- "${pkgs.browserpass}/lib/browserpass/hosts/chromium/com.github.browserpass.native.json";
- }
- {
- "${dir}/../policies/managed/com.github.browserpass.native.json".source =
- "${pkgs.browserpass}/lib/browserpass/policies/chromium/com.github.browserpass.native.json";
- }
- ]
- else if x == "firefox" then
- let dir = if isDarwin
- then "Library/Application Support/Mozilla/NativeMessagingHosts"
- else ".mozilla/native-messaging-hosts";
- in [
- {
- "${dir}/com.github.browserpass.native.json".source =
- "${pkgs.browserpass}/lib/browserpass/hosts/firefox/com.github.browserpass.native.json";
- }
- ]
- else if x == "vivaldi" then
- let dir = if isDarwin
- then "Library/Application Support/Vivaldi/NativeMessagingHosts"
- else ".config/vivaldi/NativeMessagingHosts";
- in [
- {
- "${dir}/com.github.browserpass.native.json".source =
- "${pkgs.browserpass}/lib/browserpass/hosts/chromium/com.github.browserpass.native.json";
- "${dir}/../policies/managed/com.github.browserpass.native.json".source =
- "${pkgs.browserpass}/lib/browserpass/policies/chromium/com.github.browserpass.native.json";
- }
- ]
- else throw "unknown browser ${x}") config.programs.browserpass.browsers
- );
+ home.file = foldl' (a: b: a // b) { } (concatMap (x:
+ with pkgs.stdenv;
+ if x == "chrome" then
+ let
+ dir = if isDarwin then
+ "Library/Application Support/Google/Chrome/NativeMessagingHosts"
+ else
+ ".config/google-chrome/NativeMessagingHosts";
+ in [{
+ "${dir}/com.github.browserpass.native.json".source =
+ "${pkgs.browserpass}/lib/browserpass/hosts/chromium/com.github.browserpass.native.json";
+ "${dir}/../policies/managed/com.github.browserpass.native.json".source =
+ "${pkgs.browserpass}/lib/browserpass/policies/chromium/com.github.browserpass.native.json";
+ }]
+ else if x == "chromium" then
+ let
+ dir = if isDarwin then
+ "Library/Application Support/Chromium/NativeMessagingHosts"
+ else
+ ".config/chromium/NativeMessagingHosts";
+ in [
+ {
+ "${dir}/com.github.browserpass.native.json".source =
+ "${pkgs.browserpass}/lib/browserpass/hosts/chromium/com.github.browserpass.native.json";
+ }
+ {
+ "${dir}/../policies/managed/com.github.browserpass.native.json".source =
+ "${pkgs.browserpass}/lib/browserpass/policies/chromium/com.github.browserpass.native.json";
+ }
+ ]
+ else if x == "firefox" then
+ let
+ dir = if isDarwin then
+ "Library/Application Support/Mozilla/NativeMessagingHosts"
+ else
+ ".mozilla/native-messaging-hosts";
+ in [{
+ "${dir}/com.github.browserpass.native.json".source =
+ "${pkgs.browserpass}/lib/browserpass/hosts/firefox/com.github.browserpass.native.json";
+ }]
+ else if x == "vivaldi" then
+ let
+ dir = if isDarwin then
+ "Library/Application Support/Vivaldi/NativeMessagingHosts"
+ else
+ ".config/vivaldi/NativeMessagingHosts";
+ in [{
+ "${dir}/com.github.browserpass.native.json".source =
+ "${pkgs.browserpass}/lib/browserpass/hosts/chromium/com.github.browserpass.native.json";
+ "${dir}/../policies/managed/com.github.browserpass.native.json".source =
+ "${pkgs.browserpass}/lib/browserpass/policies/chromium/com.github.browserpass.native.json";
+ }]
+ else
+ throw "unknown browser ${x}") config.programs.browserpass.browsers);
};
}
diff --git a/modules/programs/chromium.nix b/modules/programs/chromium.nix
index a34fef3d49d..4e35c07b90c 100644
--- a/modules/programs/chromium.nix
+++ b/modules/programs/chromium.nix
@@ -5,45 +5,43 @@ with lib;
let
browserModule = defaultPkg: name: visible:
- let
- browser = (builtins.parseDrvName defaultPkg.name).name;
- in
- {
- enable = mkOption {
- inherit visible;
- default = false;
- example = true;
- description = "Whether to enable ${name}.";
- type = lib.types.bool;
- };
+ let browser = (builtins.parseDrvName defaultPkg.name).name;
+ in {
+ enable = mkOption {
+ inherit visible;
+ default = false;
+ example = true;
+ description = "Whether to enable ${name}.";
+ type = lib.types.bool;
+ };
- package = mkOption {
- inherit visible;
- type = types.package;
- default = defaultPkg;
- defaultText = literalExample "pkgs.${browser}";
- description = "The ${name} package to use.";
- };
+ package = mkOption {
+ inherit visible;
+ type = types.package;
+ default = defaultPkg;
+ defaultText = literalExample "pkgs.${browser}";
+ description = "The ${name} package to use.";
+ };
- extensions = mkOption {
- inherit visible;
- type = types.listOf types.str;
- default = [];
- example = literalExample ''
- [
- "chlffgpmiacpedhhbkiomidkjlcfhogd" # pushbullet
- "mbniclmhobmnbdlbpiphghaielnnpgdp" # lightshot
- "gcbommkclmclpchllfjekcdonpmejbdp" # https everywhere
- "cjpalhdlnbpafiamejdnhcphjbkeiagm" # ublock origin
- ]
- '';
- description = ''
- List of ${name} extensions to install.
- To find the extension ID, check its URL on the
- <link xlink:href="https://chrome.google.com/webstore/category/extensions">Chrome Web Store</link>.
- '';
- };
+ extensions = mkOption {
+ inherit visible;
+ type = types.listOf types.str;
+ default = [ ];
+ example = literalExample ''
+ [
+ "chlffgpmiacpedhhbkiomidkjlcfhogd" # pushbullet
+ "mbniclmhobmnbdlbpiphghaielnnpgdp" # lightshot
+ "gcbommkclmclpchllfjekcdonpmejbdp" # https everywhere
+ "cjpalhdlnbpafiamejdnhcphjbkeiagm" # ublock origin
+ ]
+ '';
+ description = ''
+ List of ${name} extensions to install.
+ To find the extension ID, check its URL on the
+ <link xlink:href="https://chrome.google.com/webstore/category/extensions">Chrome Web Store</link>.
+ '';
};
+ };
browserConfig = cfg:
let
@@ -57,31 +55,32 @@ let
google-chrome-dev = "Google/Chrome Dev";
};
- configDir = if pkgs.stdenv.isDarwin
- then "Library/Application Support/${getAttr browser darwinDirs}"
- else "${config.xdg.configHome}/${browser}";
+ configDir = if pkgs.stdenv.isDarwin then
+ "Library/Application Support/${getAttr browser darwinDirs}"
+ else
+ "${config.xdg.configHome}/${browser}";
extensionJson = ext: {
name = "${configDir}/External Extensions/${ext}.json";
value.text = builtins.toJSON {
- external_update_url = "https://clients2.google.com/service/update2/crx";
+ external_update_url =
+ "https://clients2.google.com/service/update2/crx";
};
};
- in
- mkIf cfg.enable {
- home.packages = [ cfg.package ];
- home.file = listToAttrs (map extensionJson cfg.extensions);
- };
-
-in
+ in mkIf cfg.enable {
+ home.packages = [ cfg.package ];
+ home.file = listToAttrs (map extensionJson cfg.extensions);
+ };
-{
+in {
options.programs = {
chromium = browserModule pkgs.chromium "Chromium" true;
google-chrome = browserModule pkgs.google-chrome "Google Chrome" false;
- google-chrome-beta = browserModule pkgs.google-chrome-beta "Google Chrome Beta" false;
- google-chrome-dev = browserModule pkgs.google-chrome-dev "Google Chrome Dev" false;
+ google-chrome-beta =
+ browserModule pkgs.google-chrome-beta "Google Chrome Beta" false;
+ google-chrome-dev =
+ browserModule pkgs.google-chrome-dev "Google Chrome Dev" false;
};
config = mkMerge [
diff --git a/modules/programs/command-not-found/command-not-found.nix b/modules/programs/command-not-found/command-not-found.nix
index 0053fe36ad7..b79fde0f619 100644
--- a/modules/programs/command-not-found/command-not-found.nix
+++ b/modules/programs/command-not-found/command-not-found.nix
@@ -13,8 +13,11 @@ let
isExecutable = true;
inherit (pkgs) perl;
inherit (cfg) dbPath;
- perlFlags = concatStrings (map (path: "-I ${path}/lib/perl5/site_perl ")
- [ pkgs.perlPackages.DBI pkgs.perlPackages.DBDSQLite pkgs.perlPackages.StringShellQuote ]);
+ perlFlags = concatStrings (map (path: "-I ${path}/lib/perl5/site_perl ") [
+ pkgs.perlPackages.DBI
+ pkgs.perlPackages.DBDSQLite
+ pkgs.perlPackages.StringShellQuote
+ ]);
};
shInit = commandNotFoundHandlerName: ''
@@ -31,14 +34,13 @@ let
}
'';
-in
-
-{
+in {
options.programs.command-not-found = {
enable = mkEnableOption "command-not-found hook for interactive shell";
dbPath = mkOption {
- default = "/nix/var/nix/profiles/per-user/root/channels/nixos/programs.sqlite" ;
+ default =
+ "/nix/var/nix/profiles/per-user/root/channels/nixos/programs.sqlite";
description = ''
Absolute path to <filename>programs.sqlite</filename>. By
default this file will be provided by your channel
diff --git a/modules/programs/direnv.nix b/modules/programs/direnv.nix
index e4c17239c58..beb40a96261 100644
--- a/modules/programs/direnv.nix
+++ b/modules/programs/direnv.nix
@@ -6,21 +6,17 @@ let
cfg = config.programs.direnv;
configFile = config:
- pkgs.runCommand "config.toml"
- {
- buildInputs = [ pkgs.remarshal ];
- preferLocalBuild = true;
- allowSubstitutes = false;
- }
- ''
- remarshal -if json -of toml \
- < ${pkgs.writeText "config.json" (builtins.toJSON config)} \
- > $out
- '';
-
-in
+ pkgs.runCommand "config.toml" {
+ buildInputs = [ pkgs.remarshal ];
+ preferLocalBuild = true;
+ allowSubstitutes = false;
+ } ''
+ remarshal -if json -of toml \
+ < ${pkgs.writeText "config.json" (builtins.toJSON config)} \
+ > $out
+ '';
-{
+in {
meta.maintainers = [ maintainers.rycee ];
options.programs.direnv = {
@@ -28,7 +24,7 @@ in
config = mkOption {
type = types.attrs;
- default = {};
+ default = { };
description = ''
Configuration written to
<filename>~/.config/direnv/config.toml</filename>.
@@ -79,22 +75,18 @@ in
config = mkIf cfg.enable {
home.packages = [ pkgs.direnv ];
- xdg.configFile."direnv/config.toml" = mkIf (cfg.config != {}) {
- source = configFile cfg.config;
- };
+ xdg.configFile."direnv/config.toml" =
+ mkIf (cfg.config != { }) { source = configFile cfg.config; };
- xdg.configFile."direnv/direnvrc" = mkIf (cfg.stdlib != "") {
- text = cfg.stdlib;
- };
+ xdg.configFile."direnv/direnvrc" =
+ mkIf (cfg.stdlib != "") { text = cfg.stdlib; };
- programs.bash.initExtra =
- mkIf cfg.enableBashIntegration (
- # Using mkAfter to make it more likely to appear after other
- # manipulations of the prompt.
- mkAfter ''
- eval "$(${pkgs.direnv}/bin/direnv hook bash)"
- ''
- );
+ programs.bash.initExtra = mkIf cfg.enableBashIntegration (
+ # Using mkAfter to make it more likely to appear after other
+ # manipulations of the prompt.
+ mkAfter ''
+ eval "$(${pkgs.direnv}/bin/direnv hook bash)"
+ '');
programs.zsh.initExtra = mkIf cfg.enableZshIntegration ''
eval "$(${pkgs.direnv}/bin/direnv hook zsh)"
diff --git a/modules/programs/eclipse.nix b/modules/programs/eclipse.nix
index 4a432c9fe1a..8ce605b106a 100644
--- a/modules/programs/eclipse.nix
+++ b/modules/programs/eclipse.nix
@@ -6,9 +6,7 @@ let
cfg = config.programs.eclipse;
-in
-
-{
+in {
meta.maintainers = [ maintainers.rycee ];
options = {
@@ -27,13 +25,13 @@ in
jvmArgs = mkOption {
type = types.listOf types.str;
- default = [];
+ default = [ ];
description = "JVM arguments to use for the Eclipse process.";
};
plugins = mkOption {
type = types.listOf types.package;
- default = [];
+ default = [ ];
description = "Plugins that should be added to Eclipse.";
};
};
@@ -43,10 +41,8 @@ in
home.packages = [
(pkgs.eclipses.eclipseWithPlugins {
eclipse = pkgs.eclipses.eclipse-platform;
- jvmArgs =
- cfg.jvmArgs
- ++ optional cfg.enableLombok
- "-javaagent:${pkgs.lombok}/share/java/lombok.jar";
+ jvmArgs = cfg.jvmArgs ++ optional cfg.enableLombok
+ "-javaagent:${pkgs.lombok}/share/java/lombok.jar";
plugins = cfg.plugins;
})
];
diff --git a/modules/programs/feh.nix b/modules/programs/feh.nix
index 1b14e71f58f..b1b33697e95 100644
--- a/modules/programs/feh.nix
+++ b/modules/programs/feh.nix
@@ -9,31 +9,35 @@ let
disableBinding = func: key: func;
enableBinding = func: key: "${func} ${toString key}";
-in
-
-{
+in {
options.programs.feh = {
enable = mkEnableOption "feh - a fast and light image viewer";
buttons = mkOption {
- default = {};
+ default = { };
type = with types; attrsOf (nullOr (either str int));
- example = { zoom_in = 4; zoom_out = "C-4"; };
+ example = {
+ zoom_in = 4;
+ zoom_out = "C-4";
+ };
description = ''
Override feh's default mouse button mapping. If you want to disable an
- action, set its value to null.
+ action, set its value to null.
See <link xlink:href="https://man.finalrewind.org/1/feh/#x425554544f4e53"/> for
default bindings and available commands.
'';
};
keybindings = mkOption {
- default = {};
+ default = { };
type = types.attrsOf (types.nullOr types.str);
- example = { zoom_in = "plus"; zoom_out = "minus"; };
+ example = {
+ zoom_in = "plus";
+ zoom_out = "minus";
+ };
description = ''
Override feh's default keybindings. If you want to disable a keybinding
- set its value to null.
+ set its value to null.
See <link xlink:href="https://man.finalrewind.org/1/feh/#x4b455953"/> for
default bindings and available commands.
'';
@@ -41,23 +45,26 @@ in
};
config = mkIf cfg.enable {
- assertions = [
- {
- assertion = ((filterAttrs (n: v: v == "") cfg.keybindings) == {});
- message = "To disable a keybinding, use `null` instead of an empty string.";
- }
- ];
+ assertions = [{
+ assertion = ((filterAttrs (n: v: v == "") cfg.keybindings) == { });
+ message =
+ "To disable a keybinding, use `null` instead of an empty string.";
+ }];
home.packages = [ pkgs.feh ];
xdg.configFile."feh/buttons".text = ''
- ${concatStringsSep "\n" (mapAttrsToList disableBinding (filterAttrs (n: v: v == null) cfg.buttons))}
- ${concatStringsSep "\n" (mapAttrsToList enableBinding (filterAttrs (n: v: v != null) cfg.buttons))}
+ ${concatStringsSep "\n" (mapAttrsToList disableBinding
+ (filterAttrs (n: v: v == null) cfg.buttons))}
+ ${concatStringsSep "\n" (mapAttrsToList enableBinding
+ (filterAttrs (n: v: v != null) cfg.buttons))}
'';
xdg.configFile."feh/keys".text = ''
- ${concatStringsSep "\n" (mapAttrsToList disableBinding (filterAttrs (n: v: v == null) cfg.keybindings))}
- ${concatStringsSep "\n" (mapAttrsToList enableBinding (filterAttrs (n: v: v != null) cfg.keybindings))}
+ ${concatStringsSep "\n" (mapAttrsToList disableBinding
+ (filterAttrs (n: v: v == null) cfg.keybindings))}
+ ${concatStringsSep "\n" (mapAttrsToList enableBinding
+ (filterAttrs (n: v: v != null) cfg.keybindings))}
'';
};
}
diff --git a/modules/programs/fzf.nix b/modules/programs/fzf.nix
index 832c0bfa3e4..36eb3a1cdba 100644
--- a/modules/programs/fzf.nix
+++ b/modules/programs/fzf.nix
@@ -6,9 +6,7 @@ let
cfg = config.programs.fzf;
-in
-
-{
+in {
options.programs.fzf = {
enable = mkEnableOption "fzf - a command-line fuzzy finder";
@@ -24,7 +22,7 @@ in
defaultOptions = mkOption {
type = types.listOf types.str;
- default = [];
+ default = [ ];
example = [ "--height 40%" "--border" ];
description = ''
Extra command line options given to fzf by default.
@@ -43,7 +41,7 @@ in
fileWidgetOptions = mkOption {
type = types.listOf types.str;
- default = [];
+ default = [ ];
example = [ "--preview 'head {}'" ];
description = ''
Command line options for the CTRL-T keybinding.
@@ -53,7 +51,7 @@ in
changeDirWidgetCommand = mkOption {
type = types.nullOr types.str;
default = null;
- example = "fd --type d" ;
+ example = "fd --type d";
description = ''
The command that gets executed as the source for fzf for the
ALT-C keybinding.
@@ -62,7 +60,7 @@ in
changeDirWidgetOptions = mkOption {
type = types.listOf types.str;
- default = [];
+ default = [ ];
example = [ "--preview 'tree -C {} | head -200'" ];
description = ''
Command line options for the ALT-C keybinding.
@@ -80,7 +78,7 @@ in
historyWidgetOptions = mkOption {
type = types.listOf types.str;
- default = [];
+ default = [ ];
example = [ "--sort" "--exact" ];
description = ''
Command line options for the CTRL-R keybinding.
@@ -107,19 +105,17 @@ in
config = mkIf cfg.enable {
home.packages = [ pkgs.fzf ];
- home.sessionVariables =
- mapAttrs (n: v: toString v) (
- filterAttrs (n: v: v != [] && v != null) {
- FZF_ALT_C_COMMAND = cfg.changeDirWidgetCommand;
- FZF_ALT_C_OPTS = cfg.changeDirWidgetOptions;
- FZF_CTRL_R_COMMAND = cfg.historyWidgetCommand;
- FZF_CTRL_R_OPTS = cfg.historyWidgetOptions;
- FZF_CTRL_T_COMMAND = cfg.fileWidgetCommand;
- FZF_CTRL_T_OPTS = cfg.fileWidgetOptions;
- FZF_DEFAULT_COMMAND = cfg.defaultCommand;
- FZF_DEFAULT_OPTS = cfg.defaultOptions;
- }
- );
+ home.sessionVariables = mapAttrs (n: v: toString v)
+ (filterAttrs (n: v: v != [ ] && v != null) {
+ FZF_ALT_C_COMMAND = cfg.changeDirWidgetCommand;
+ FZF_ALT_C_OPTS = cfg.changeDirWidgetOptions;
+ FZF_CTRL_R_COMMAND = cfg.historyWidgetCommand;
+ FZF_CTRL_R_OPTS = cfg.historyWidgetOptions;
+ FZF_CTRL_T_COMMAND = cfg.fileWidgetCommand;
+ FZF_CTRL_T_OPTS = cfg.fileWidgetOptions;
+ FZF_DEFAULT_COMMAND = cfg.defaultCommand;
+ FZF_DEFAULT_OPTS = cfg.defaultOptions;
+ });
programs.bash.initExtra = mkIf cfg.enableBashIntegration ''
if [[ :$SHELLOPTS: =~ :(vi|emacs): ]]; then
diff --git a/modules/programs/getmail-accounts.nix b/modules/programs/getmail-accounts.nix
index 32e1312dc8f..24eb4fb588a 100644
--- a/modules/programs/getmail-accounts.nix
+++ b/modules/programs/getmail-accounts.nix
@@ -17,8 +17,8 @@ with lib;
mailboxes = mkOption {
type = types.nonEmptyListOf types.str;
- default = [];
- example = ["INBOX" "INBOX.spam"];
+ default = [ ];
+ example = [ "INBOX" "INBOX.spam" ];
description = ''
A non-empty list of mailboxes. To download all mail you can
use the <literal>ALL</literal> mailbox.
diff --git a/modules/programs/getmail.nix b/modules/programs/getmail.nix
index 3de898ef767..2c3919dcf2f 100644
--- a/modules/programs/getmail.nix
+++ b/modules/programs/getmail.nix
@@ -4,27 +4,26 @@ with lib;
let
- accounts = filter (a: a.getmail.enable)
- (attrValues config.accounts.email.accounts);
+ accounts =
+ filter (a: a.getmail.enable) (attrValues config.accounts.email.accounts);
- renderAccountConfig = account: with account;
+ renderAccountConfig = account:
+ with account;
let
passCmd = concatMapStringsSep ", " (x: "'${x}'") passwordCommand;
- renderedMailboxes = concatMapStringsSep ", " (x: "'${x}'") getmail.mailboxes;
- retrieverType = if imap.tls.enable
- then "SimpleIMAPSSLRetriever"
- else "SimpleIMAPRetriever";
- destination = if getmail.destinationCommand != null
- then
- {
- destinationType = "MDA_external";
- destinationPath = getmail.destinationCommand;
- }
- else
- {
- destinationType = "Maildir";
- destinationPath = "${maildir.absPath}/";
- };
+ renderedMailboxes =
+ concatMapStringsSep ", " (x: "'${x}'") getmail.mailboxes;
+ retrieverType = if imap.tls.enable then
+ "SimpleIMAPSSLRetriever"
+ else
+ "SimpleIMAPRetriever";
+ destination = if getmail.destinationCommand != null then {
+ destinationType = "MDA_external";
+ destinationPath = getmail.destinationCommand;
+ } else {
+ destinationType = "Maildir";
+ destinationPath = "${maildir.absPath}/";
+ };
renderGetmailBoolean = v: if v then "true" else "false";
in ''
# Generated by Home-Manager.
@@ -46,15 +45,13 @@ let
'';
getmailEnabled = length (filter (a: a.getmail.enable) accounts) > 0;
# Watch out! This is used by the getmail.service too!
- renderConfigFilepath = a: ".getmail/getmail${if a.primary then "rc" else a.name}";
+ renderConfigFilepath = a:
+ ".getmail/getmail${if a.primary then "rc" else a.name}";
-in
-
-{
+in {
config = mkIf getmailEnabled {
- home.file =
- foldl' (a: b: a // b) {}
+ home.file = foldl' (a: b: a // b) { }
(map (a: { "${renderConfigFilepath a}".text = renderAccountConfig a; })
- accounts);
+ accounts);
};
}
diff --git a/modules/programs/git.nix b/modules/programs/git.nix
index 913f86f71ce..a56aa10d50e 100644
--- a/modules/programs/git.nix
+++ b/modules/programs/git.nix
@@ -14,36 +14,31 @@ let
section = head sections;
subsections = tail sections;
subsection = concatStringsSep "." subsections;
- in
- if containsQuote || subsections == []
- then name
- else "${section} \"${subsection}\"";
+ in if containsQuote || subsections == [ ] then
+ name
+ else
+ ''${section} "${subsection}"'';
# generation for multiple ini values
mkKeyValue = k: v:
- let
- mkKeyValue = generators.mkKeyValueDefault {} "=" k;
- in
- concatStringsSep "\n" (map mkKeyValue (toList v));
+ let mkKeyValue = generators.mkKeyValueDefault { } "=" k;
+ in concatStringsSep "\n" (map mkKeyValue (toList v));
# converts { a.b.c = 5; } to { "a.b".c = 5; } for toINI
- gitFlattenAttrs =
- let
- recurse = path: value:
- if isAttrs value then
- mapAttrsToList (name: value: recurse ([name] ++ path) value) value
- else if length path > 1 then
- { ${concatStringsSep "." (reverseList (tail path))}.${head path} = value; }
- else
- { ${head path} = value; };
- in
- attrs: foldl recursiveUpdate {} (flatten (recurse [] attrs));
+ gitFlattenAttrs = let
+ recurse = path: value:
+ if isAttrs value then
+ mapAttrsToList (name: value: recurse ([ name ] ++ path) value) value
+ else if length path > 1 then {
+ ${concatStringsSep "." (reverseList (tail path))}.${head path} = value;
+ } else {
+ ${head path} = value;
+ };
+ in attrs: foldl recursiveUpdate { } (flatten (recurse [ ] attrs));
gitToIni = attrs:
- let
- toIni = generators.toINI { inherit mkKeyValue mkSectionName; };
- in
- toIni (gitFlattenAttrs attrs);
+ let toIni = generators.toINI { inherit mkKeyValue mkSectionName; };
+ in toIni (gitFlattenAttrs attrs);
gitIniType = with types;
let
@@ -51,8 +46,7 @@ let
multipleType = either primitiveType (listOf primitiveType);
sectionType = attrsOf multipleType;
supersectionType = attrsOf (either multipleType sectionType);
- in
- attrsOf supersectionType;
+ in attrsOf supersectionType;
signModule = types.submodule {
options = {
@@ -98,21 +92,18 @@ let
contents = mkOption {
type = types.attrs;
- default = {};
+ default = { };
description = ''
Configuration to include. If empty then a path must be given.
'';
};
};
- config.path = mkIf (config.contents != {}) (
- mkDefault (pkgs.writeText "contents" (gitToIni config.contents))
- );
+ config.path = mkIf (config.contents != { })
+ (mkDefault (pkgs.writeText "contents" (gitToIni config.contents)));
});
-in
-
-{
+in {
meta.maintainers = [ maintainers.rycee ];
options = {
@@ -143,7 +134,7 @@ in
aliases = mkOption {
type = types.attrsOf types.str;
- default = {};
+ default = { };
example = { co = "checkout"; };
description = "Git aliases to define.";
};
@@ -156,7 +147,7 @@ in
extraConfig = mkOption {
type = types.either types.lines gitIniType;
- default = {};
+ default = { };
example = {
core = { whitespace = "trailing-space,space-before-tab"; };
url."ssh://git@host".insteadOf = "otherhost";
@@ -174,21 +165,21 @@ in
ignores = mkOption {
type = types.listOf types.str;
- default = [];
+ default = [ ];
example = [ "*~" "*.swp" ];
description = "List of paths that should be globally ignored.";
};
attributes = mkOption {
type = types.listOf types.str;
- default = [];
+ default = [ ];
example = [ "*.pdf diff=pdf" ];
description = "List of defining attributes set globally.";
};
includes = mkOption {
type = types.listOf includeModule;
- default = [];
+ default = [ ];
example = literalExample ''
[
{ path = "~/path/to/config.inc"; }
@@ -217,109 +208,96 @@ in
};
};
- config = mkIf cfg.enable (
- mkMerge [
- {
- home.packages = [ cfg.package ];
+ config = mkIf cfg.enable (mkMerge [
+ {
+ home.packages = [ cfg.package ];
- programs.git.iniContent.user = {
- name = mkIf (cfg.userName != null) cfg.userName;
- email = mkIf (cfg.userEmail != null) cfg.userEmail;
- };
+ programs.git.iniContent.user = {
+ name = mkIf (cfg.userName != null) cfg.userName;
+ email = mkIf (cfg.userEmail != null) cfg.userEmail;
+ };
- xdg.configFile = {
- "git/config".text = gitToIni cfg.iniContent;
+ xdg.configFile = {
+ "git/config".text = gitToIni cfg.iniContent;
- "git/ignore" = mkIf (cfg.ignores != []) {
- text = concatStringsSep "\n" cfg.ignores + "\n";
- };
+ "git/ignore" = mkIf (cfg.ignores != [ ]) {
+ text = concatStringsSep "\n" cfg.ignores + "\n";
+ };
- "git/attributes" = mkIf (cfg.attributes != []) {
- text = concatStringsSep "\n" cfg.attributes + "\n";
- };
+ "git/attributes" = mkIf (cfg.attributes != [ ]) {
+ text = concatStringsSep "\n" cfg.attributes + "\n";
};
- }
-
- {
- programs.git.iniContent =
- let
- hasSmtp = name: account: account.smtp != null;
-
- genIdentity = name: account: with account;
- nameValuePair "sendemail.${name}" ({
- smtpEncryption = if smtp.tls.enable then "tls" else "";
- smtpServer = smtp.host;
- smtpUser = userName;
- from = address;
- }
- // optionalAttrs (smtp.port != null) {
- smtpServerPort = smtp.port;
- });
- in
- mapAttrs' genIdentity
- (filterAttrs hasSmtp config.accounts.email.accounts);
- }
-
- (mkIf (cfg.signing != null) {
- programs.git.iniContent = {
- user.signingKey = cfg.signing.key;
- commit.gpgSign = cfg.signing.signByDefault;
- gpg.program = cfg.signing.gpgPath;
+ };
+ }
+
+ {
+ programs.git.iniContent = let
+ hasSmtp = name: account: account.smtp != null;
+
+ genIdentity = name: account:
+ with account;
+ nameValuePair "sendemail.${name}" ({
+ smtpEncryption = if smtp.tls.enable then "tls" else "";
+ smtpServer = smtp.host;
+ smtpUser = userName;
+ from = address;
+ } // optionalAttrs (smtp.port != null) {
+ smtpServerPort = smtp.port;
+ });
+ in mapAttrs' genIdentity
+ (filterAttrs hasSmtp config.accounts.email.accounts);
+ }
+
+ (mkIf (cfg.signing != null) {
+ programs.git.iniContent = {
+ user.signingKey = cfg.signing.key;
+ commit.gpgSign = cfg.signing.signByDefault;
+ gpg.program = cfg.signing.gpgPath;
+ };
+ })
+
+ (mkIf (cfg.aliases != { }) { programs.git.iniContent.alias = cfg.aliases; })
+
+ (mkIf (lib.isAttrs cfg.extraConfig) {
+ programs.git.iniContent = cfg.extraConfig;
+ })
+
+ (mkIf (lib.isString cfg.extraConfig) {
+ warnings = [''
+ Using programs.git.extraConfig as a string option is
+ deprecated and will be removed in the future. Please
+ change to using it as an attribute set instead.
+ ''];
+
+ xdg.configFile."git/config".text = cfg.extraConfig;
+ })
+
+ (mkIf (cfg.includes != [ ]) {
+ xdg.configFile."git/config".text = let
+ include = i:
+ with i;
+ if condition != null then {
+ includeIf.${condition}.path = "${path}";
+ } else {
+ include.path = "${path}";
+ };
+ in mkAfter
+ (concatStringsSep "\n" (map gitToIni (map include cfg.includes)));
+ })
+
+ (mkIf cfg.lfs.enable {
+ home.packages = [ pkgs.git-lfs ];
+
+ programs.git.iniContent.filter.lfs =
+ let skipArg = optional cfg.lfs.skipSmudge "--skip";
+ in {
+ clean = "git-lfs clean -- %f";
+ process =
+ concatStringsSep " " ([ "git-lfs" "filter-process" ] ++ skipArg);
+ required = true;
+ smudge = concatStringsSep " "
+ ([ "git-lfs" "smudge" ] ++ skipArg ++ [ "--" "%f" ]);
};
- })
-
- (mkIf (cfg.aliases != {}) {
- programs.git.iniContent.alias = cfg.aliases;
- })
-
- (mkIf (lib.isAttrs cfg.extraConfig) {
- programs.git.iniContent = cfg.extraConfig;
- })
-
- (mkIf (lib.isString cfg.extraConfig) {
- warnings = [
- ''
- Using programs.git.extraConfig as a string option is
- deprecated and will be removed in the future. Please
- change to using it as an attribute set instead.
- ''
- ];
-
- xdg.configFile."git/config".text = cfg.extraConfig;
- })
-
- (mkIf (cfg.includes != []) {
- xdg.configFile."git/config".text =
- let
- include = i: with i;
- if condition != null
- then { includeIf.${condition}.path = "${path}"; }
- else { include.path = "${path}"; };
- in
- mkAfter
- (concatStringsSep "\n"
- (map gitToIni
- (map include cfg.includes)));
- })
-
- (mkIf cfg.lfs.enable {
- home.packages = [ pkgs.git-lfs ];
-
- programs.git.iniContent.filter.lfs =
- let
- skipArg = optional cfg.lfs.skipSmudge "--skip";
- in
- {
- clean = "git-lfs clean -- %f";
- process = concatStringsSep " " (
- [ "git-lfs" "filter-process" ] ++ skipArg
- );
- required = true;
- smudge = concatStringsSep " " (
- [ "git-lfs" "smudge" ] ++ skipArg ++ [ "--" "%f" ]
- );
- };
- })
- ]
- );
+ })
+ ]);
}
diff --git a/modules/programs/gnome-terminal.nix b/modules/programs/gnome-terminal.nix
index 9a44364491d..570a1fc7df0 100644
--- a/modules/programs/gnome-terminal.nix
+++ b/modules/programs/gnome-terminal.nix
@@ -11,125 +11,118 @@ let
. ${pkgs.gnome3.vte}/etc/profile.d/vte.sh
'';
- backForeSubModule = types.submodule (
- { ... }: {
- options = {
- foreground = mkOption {
- type = types.str;
- description = "The foreground color.";
- };
-
- background = mkOption {
- type = types.str;
- description = "The background color.";
- };
- };
- }
- );
-
- profileColorsSubModule = types.submodule (
- { ... }: {
- options = {
- foregroundColor = mkOption {
- type = types.str;
- description = "The foreground color.";
- };
-
- backgroundColor = mkOption {
- type = types.str;
- description = "The background color.";
- };
-
- boldColor = mkOption {
- default = null;
- type = types.nullOr types.str;
- description = "The bold color, null to use same as foreground.";
- };
-
- palette = mkOption {
- type = types.listOf types.str;
- description = "The terminal palette.";
- };
-
- cursor = mkOption {
- default = null;
- type = types.nullOr backForeSubModule;
- description = "The color for the terminal cursor.";
- };
-
- highlight = mkOption {
- default = null;
- type = types.nullOr backForeSubModule;
- description = "The colors for the terminal’s highlighted area.";
- };
- };
- }
- );
-
- profileSubModule = types.submodule (
- { name, config, ... }: {
- options = {
- default = mkOption {
- default = false;
- type = types.bool;
- description = "Whether this should be the default profile.";
- };
-
- visibleName = mkOption {
- type = types.str;
- description = "The profile name.";
- };
-
- colors = mkOption {
- default = null;
- type = types.nullOr profileColorsSubModule;
- description = "The terminal colors, null to use system default.";
- };
-
- cursorShape = mkOption {
- default = "block";
- type = types.enum [ "block" "ibeam" "underline" ];
- description = "The cursor shape.";
- };
-
- font = mkOption {
- default = null;
- type = types.nullOr types.str;
- description = "The font name, null to use system default.";
- };
-
- allowBold = mkOption {
- default = null;
- type = types.nullOr types.bool;
- description = ''
- If <literal>true</literal>, allow applications in the
- terminal to make text boldface.
- '';
- };
-
- scrollOnOutput = mkOption {
- default = true;
- type = types.bool;
- description = "Whether to scroll when output is written.";
- };
-
- showScrollbar = mkOption {
- default = true;
- type = types.bool;
- description = "Whether the scroll bar should be visible.";
- };
-
- scrollbackLines = mkOption {
- default = 10000;
- type = types.nullOr types.int;
- description =
- ''
- The number of scrollback lines to keep, null for infinite.
- '';
- };
- };
- }
- );
+ backForeSubModule = types.submodule ({ ... }: {
+ options = {
+ foreground = mkOption {
+ type = types.str;
+ description = "The foreground color.";
+ };
+
+ background = mkOption {
+ type = types.str;
+ description = "The background color.";
+ };
+ };
+ });
+
+ profileColorsSubModule = types.submodule ({ ... }: {
+ options = {
+ foregroundColor = mkOption {
+ type = types.str;
+ description = "The foreground color.";
+ };
+
+ backgroundColor = mkOption {
+ type = types.str;
+ description = "The background color.";
+ };
+
+ boldColor = mkOption {
+ default = null;
+ type = types.nullOr types.str;
+ description = "The bold color, null to use same as foreground.";
+ };
+
+ palette = mkOption {
+ type = types.listOf types.str;
+ description = "The terminal palette.";
+ };
+
+ cursor = mkOption {
+ default = null;
+ type = types.nullOr backForeSubModule;
+ description = "The color for the terminal cursor.";
+ };
+
+ highlight = mkOption {
+ default = null;
+ type = types.nullOr backForeSubModule;
+ description = "The colors for the terminal’s highlighted area.";
+ };
+ };
+ });
+
+ profileSubModule = types.submodule ({ name, config, ... }: {
+ options = {
+ default = mkOption {
+ default = false;
+ type = types.bool;
+ description = "Whether this should be the default profile.";
+ };
+
+ visibleName = mkOption {
+ type = types.str;
+ description = "The profile name.";
+ };
+
+ colors = mkOption {
+ default = null;
+ type = types.nullOr profileColorsSubModule;
+ description = "The terminal colors, null to use system default.";
+ };
+
+ cursorShape = mkOption {
+ default = "block";
+ type = types.enum [ "block" "ibeam" "underline" ];
+ description = "The cursor shape.";
+ };
+
+ font = mkOption {
+ default = null;
+ type = types.nullOr types.str;
+ description = "The font name, null to use system default.";
+ };
+
+ allowBold = mkOption {
+ default = null;
+ type = types.nullOr types.bool;
+ description = ''
+ If <literal>true</literal>, allow applications in the
+ terminal to make text boldface.
+ '';
+ };
+
+ scrollOnOutput = mkOption {
+ default = true;
+ type = types.bool;
+ description = "Whether to scroll when output is written.";
+ };
+
+ showScrollbar = mkOption {
+ default = true;
+ type = types.bool;
+ description = "Whether the scroll bar should be visible.";
+ };
+
+ scrollbackLines = mkOption {
+ default = 10000;
+ type = types.nullOr types.int;
+ description = ''
+ The number of scrollback lines to keep, null for infinite.
+ '';
+ };
+ };
+ });
buildProfileSet = pcfg:
{
@@ -137,56 +130,41 @@ let
scrollbar-policy = if pcfg.showScrollbar then "always" else "never";
scrollback-lines = pcfg.scrollbackLines;
cursor-shape = pcfg.cursorShape;
- }
- // (
- if (pcfg.font == null)
- then { use-system-font = true; }
- else { use-system-font = false; font = pcfg.font; }
- ) // (
- if (pcfg.colors == null)
- then { use-theme-colors = true; }
- else (
- {
- use-theme-colors = false;
- foreground-color = pcfg.colors.foregroundColor;
- background-color = pcfg.colors.backgroundColor;
- palette = pcfg.colors.palette;
- }
- // optionalAttrs (pcfg.allowBold != null) {
- allow-bold = pcfg.allowBold;
- }
- // (
- if (pcfg.colors.boldColor == null)
- then { bold-color-same-as-fg = true; }
- else {
- bold-color-same-as-fg = false;
- bold-color = pcfg.colors.boldColor;
- }
- )
- // (
- if (pcfg.colors.cursor != null)
- then {
- cursor-colors-set = true;
- cursor-foreground-color = pcfg.colors.cursor.foreground;
- cursor-background-color = pcfg.colors.cursor.background;
- }
- else { cursor-colors-set = false; }
- )
- // (
- if (pcfg.colors.highlight != null)
- then {
- highlight-colors-set = true;
- highlight-foreground-color = pcfg.colors.highlight.foreground;
- highlight-background-color = pcfg.colors.highlight.background;
- }
- else { highlight-colors-set = false; }
- )
- )
- );
-
-in
-
-{
+ } // (if (pcfg.font == null) then {
+ use-system-font = true;
+ } else {
+ use-system-font = false;
+ font = pcfg.font;
+ }) // (if (pcfg.colors == null) then {
+ use-theme-colors = true;
+ } else
+ ({
+ use-theme-colors = false;
+ foreground-color = pcfg.colors.foregroundColor;
+ background-color = pcfg.colors.backgroundColor;
+ palette = pcfg.colors.palette;
+ } // optionalAttrs (pcfg.allowBold != null) {
+ allow-bold = pcfg.allowBold;
+ } // (if (pcfg.colors.boldColor == null) then {
+ bold-color-same-as-fg = true;
+ } else {
+ bold-color-same-as-fg = false;
+ bold-color = pcfg.colors.boldColor;
+ }) // (if (pcfg.colors.cursor != null) then {
+ cursor-colors-set = true;
+ cursor-foreground-color = pcfg.colors.cursor.foreground;
+ cursor-background-color = pcfg.colors.cursor.background;
+ } else {
+ cursor-colors-set = false;
+ }) // (if (pcfg.colors.highlight != null) then {
+ highlight-colors-set = true;
+ highlight-foreground-color = pcfg.colors.highlight.foreground;
+ highlight-background-color = pcfg.colors.highlight.background;
+ } else {
+ highlight-colors-set = false;
+ })));
+
+in {
meta.maintainers = [ maintainers.rycee ];
options = {
@@ -206,7 +184,7 @@ in
};
profile = mkOption {
- default = {};
+ default = { };
type = types.attrsOf profileSubModule;
description = "A set of Gnome Terminal profiles.";
};
@@ -216,25 +194,21 @@ in
config = mkIf cfg.enable {
home.packages = [ pkgs.gnome3.gnome_terminal ];
- dconf.settings =
- let
- dconfPath = "org/gnome/terminal/legacy";
- in
- {
- "${dconfPath}" = {
- default-show-menubar = cfg.showMenubar;
- theme-variant = cfg.themeVariant;
- schema-version = 3;
- };
-
- "${dconfPath}/profiles:" = {
- default = head (attrNames (filterAttrs (n: v: v.default) cfg.profile));
- list = attrNames cfg.profile;
- };
- }
- // mapAttrs' (n: v:
- nameValuePair ("${dconfPath}/profiles:/:${n}") (buildProfileSet v)
- ) cfg.profile;
+ dconf.settings = let dconfPath = "org/gnome/terminal/legacy";
+ in {
+ "${dconfPath}" = {
+ default-show-menubar = cfg.showMenubar;
+ theme-variant = cfg.themeVariant;
+ schema-version = 3;
+ };
+
+ "${dconfPath}/profiles:" = {
+ default = head (attrNames (filterAttrs (n: v: v.default) cfg.profile));
+ list = attrNames cfg.profile;
+ };
+ } // mapAttrs'
+ (n: v: nameValuePair ("${dconfPath}/profiles:/:${n}") (buildProfileSet v))
+ cfg.profile;
programs.bash.initExtra = mkBefore vteInitStr;
programs.zsh.initExtra = vteInitStr;
diff --git a/modules/programs/go.nix b/modules/programs/go.nix
index 39788e040c8..983769d26af 100644
--- a/modules/programs/go.nix
+++ b/modules/programs/go.nix
@@ -6,9 +6,7 @@ let
cfg = config.programs.go;
-in
-
-{
+in {
meta.maintainers = [ maintainers.rvolosatovs ];
options = {
@@ -24,7 +22,7 @@ in
packages = mkOption {
type = with types; attrsOf path;
- default = {};
+ default = { };
example = literalExample ''
{
"golang.org/x/text" = builtins.fetchGit "https://go.googlesource.com/text";
@@ -47,18 +45,15 @@ in
extraGoPaths = mkOption {
type = types.listOf types.str;
- default = [];
+ default = [ ];
example = [ "extraGoPath1" "extraGoPath2" ];
- description =
- let
- goPathOpt = "programs.go.goPath";
- in
- ''
- Extra <envar>GOPATH</envar>s relative to <envar>HOME</envar> appended
- after
- <varname><link linkend="opt-${goPathOpt}">${goPathOpt}</link></varname>,
- if that option is set.
- '';
+ description = let goPathOpt = "programs.go.goPath";
+ in ''
+ Extra <envar>GOPATH</envar>s relative to <envar>HOME</envar> appended
+ after
+ <varname><link linkend="opt-${goPathOpt}">${goPathOpt}</link></varname>,
+ if that option is set.
+ '';
};
goBin = mkOption {
@@ -74,24 +69,21 @@ in
{
home.packages = [ cfg.package ];
- home.file =
- let
- goPath = if cfg.goPath != null then cfg.goPath else "go";
- mkSrc = n: v: { "${goPath}/src/${n}".source = v; };
- in
- foldl' (a: b: a // b) {} (mapAttrsToList mkSrc cfg.packages);
+ home.file = let
+ goPath = if cfg.goPath != null then cfg.goPath else "go";
+ mkSrc = n: v: { "${goPath}/src/${n}".source = v; };
+ in foldl' (a: b: a // b) { } (mapAttrsToList mkSrc cfg.packages);
}
(mkIf (cfg.goPath != null) {
- home.sessionVariables.GOPATH =
- concatStringsSep ":"
- (map builtins.toPath
+ home.sessionVariables.GOPATH = concatStringsSep ":" (map builtins.toPath
(map (path: "${config.home.homeDirectory}/${path}")
- ([cfg.goPath] ++ cfg.extraGoPaths)));
+ ([ cfg.goPath ] ++ cfg.extraGoPaths)));
})
(mkIf (cfg.goBin != null) {
- home.sessionVariables.GOBIN = builtins.toPath "${config.home.homeDirectory}/${cfg.goBin}";
+ home.sessionVariables.GOBIN =
+ builtins.toPath "${config.home.homeDirectory}/${cfg.goBin}";
})
]);
}
diff --git a/modules/programs/home-manager.nix b/modules/programs/home-manager.nix
index 42e3c8a384f..9039a59d7c5 100644
--- a/modules/programs/home-manager.nix
+++ b/modules/programs/home-manager.nix
@@ -8,9 +8,7 @@ let
dag = config.lib.dag;
-in
-
-{
+in {
meta.maintainers = [ maintainers.rycee ];
options = {
@@ -33,10 +31,7 @@ in
};
config = mkIf (cfg.enable && !config.submoduleSupport.enable) {
- home.packages = [
- (pkgs.callPackage ../../home-manager {
- inherit (cfg) path;
- })
- ];
+ home.packages =
+ [ (pkgs.callPackage ../../home-manager { inherit (cfg) path; }) ];
};
}
diff --git a/modules/programs/htop.nix b/modules/programs/htop.nix
index d700c4855fe..84966040534 100644
--- a/modules/programs/htop.nix
+++ b/modules/programs/htop.nix
@@ -3,6 +3,7 @@
with lib;
let
+
cfg = config.programs.htop;
list = xs: concatMapStrings (x: "${toString x} ") xs;
@@ -81,16 +82,15 @@ let
RightCPUs2 = 1;
Blank = 2;
CPU = 1;
- "CPU(1)"= 1;
+ "CPU(1)" = 1;
"CPU(2)" = 1;
"CPU(3)" = 1;
"CPU(4)" = 1;
};
- singleMeterType = types.coercedTo
- (types.enum (attrNames meters))
- (m: { kind = m; mode = meters.${m}; })
- (types.submodule {
+ singleMeterType = let
+ meterEnum = types.enum (attrNames meters);
+ meterSubmodule = types.submodule {
options = {
kind = mkOption {
type = types.enum (attrNames meters);
@@ -101,10 +101,15 @@ let
mode = mkOption {
type = types.enum [ 1 2 3 4 ];
example = 2;
- description = "Which mode the meter should use, one of 1(Bar) 2(Text) 3(Graph) 4(LED).";
+ description =
+ "Which mode the meter should use, one of 1(Bar) 2(Text) 3(Graph) 4(LED).";
};
};
- });
+ };
+ in types.coercedTo meterEnum (m: {
+ kind = m;
+ mode = meters.${m};
+ }) meterSubmodule;
meterType = types.submodule {
options = {
@@ -115,7 +120,10 @@ let
"Memory"
"LeftCPUs2"
"RightCPUs2"
- { kind = "CPU"; mode = 3; }
+ {
+ kind = "CPU";
+ mode = 3;
+ }
];
type = types.listOf singleMeterType;
};
@@ -123,7 +131,10 @@ let
description = "Meters shown in the right header.";
default = [ "Tasks" "LoadAverage" "Uptime" ];
example = [
- { kind = "Clock"; mode = 4; }
+ {
+ kind = "Clock";
+ mode = 4;
+ }
"Uptime"
"Tasks"
];
@@ -131,15 +142,37 @@ let
};
};
};
-in
-{
+
+in {
options.programs.htop = {
enable = mkEnableOption "htop";
fields = mkOption {
type = types.listOf (types.enum (attrNames fields));
- default = [ "PID" "USER" "PRIORITY" "NICE" "M_SIZE" "M_RESIDENT" "M_SHARE" "STATE" "PERCENT_CPU" "PERCENT_MEM" "TIME" "COMM" ];
- example = [ "PID" "USER" "PRIORITY" "PERCENT_CPU" "M_RESIDENT" "PERCENT_MEM" "TIME" "COMM" ];
+ default = [
+ "PID"
+ "USER"
+ "PRIORITY"
+ "NICE"
+ "M_SIZE"
+ "M_RESIDENT"
+ "M_SHARE"
+ "STATE"
+ "PERCENT_CPU"
+ "PERCENT_MEM"
+ "TIME"
+ "COMM"
+ ];
+ example = [
+ "PID"
+ "USER"
+ "PRIORITY"
+ "PERCENT_CPU"
+ "M_RESIDENT"
+ "PERCENT_MEM"
+ "TIME"
+ "COMM"
+ ];
description = "Active fields shown in the table.";
};
@@ -209,7 +242,7 @@ in
default = true;
description = "Display threads in a different color.";
};
-
+
treeView = mkOption {
type = types.bool;
default = false;
@@ -225,7 +258,8 @@ in
detailedCpuTime = mkOption {
type = types.bool;
default = false;
- description = "Detailed CPU time (System/IO-Wait/Hard-IRQ/Soft-IRQ/Steal/Guest).";
+ description =
+ "Detailed CPU time (System/IO-Wait/Hard-IRQ/Soft-IRQ/Steal/Guest).";
};
cpuCountFromZero = mkOption {
@@ -272,14 +306,23 @@ in
"CPU"
"LeftCPUs2"
"RightCPUs2"
- { kind = "CPU"; mode = 3; }
+ {
+ kind = "CPU";
+ mode = 3;
+ }
];
right = [
- { kind = "Clock"; mode = 4; }
+ {
+ kind = "Clock";
+ mode = 4;
+ }
"Uptime"
"Tasks"
"LoadAverage"
- { kind = "Battery"; mode = 1; }
+ {
+ kind = "Battery";
+ mode = 1;
+ }
];
};
type = meterType;
diff --git a/modules/programs/info.nix b/modules/programs/info.nix
index 863bdcc192f..9e4a5d4aaff 100644
--- a/modules/programs/info.nix
+++ b/modules/programs/info.nix
@@ -34,9 +34,7 @@ let
# from this package in the activation script.
infoPkg = pkgs.texinfoInteractive;
-in
-
-{
+in {
options = {
programs.info = {
enable = mkEnableOption "GNU Info";
@@ -55,19 +53,20 @@ in
home.sessionVariables.INFOPATH =
"${cfg.homeInfoDirLocation}\${INFOPATH:+:}\${INFOPATH}";
- home.activation.createHomeInfoDir = hm.dag.entryAfter ["installPackages"] ''
- oPATH=$PATH
- export PATH="${lib.makeBinPath [ pkgs.gzip ]}''${PATH:+:}$PATH"
- $DRY_RUN_CMD mkdir -p "${cfg.homeInfoDirLocation}"
- $DRY_RUN_CMD rm -f "${cfg.homeInfoDirLocation}/dir"
- if [[ -d "${homeInfoPath}" ]]; then
- find -L "${homeInfoPath}" \( -name '*.info' -o -name '*.info.gz' \) \
- -exec $DRY_RUN_CMD ${infoPkg}/bin/install-info '{}' \
- "${cfg.homeInfoDirLocation}/dir" \;
- fi
- export PATH="$oPATH"
- unset oPATH
- '';
+ home.activation.createHomeInfoDir =
+ hm.dag.entryAfter [ "installPackages" ] ''
+ oPATH=$PATH
+ export PATH="${lib.makeBinPath [ pkgs.gzip ]}''${PATH:+:}$PATH"
+ $DRY_RUN_CMD mkdir -p "${cfg.homeInfoDirLocation}"
+ $DRY_RUN_CMD rm -f "${cfg.homeInfoDirLocation}/dir"
+ if [[ -d "${homeInfoPath}" ]]; then
+ find -L "${homeInfoPath}" \( -name '*.info' -o -name '*.info.gz' \) \
+ -exec $DRY_RUN_CMD ${infoPkg}/bin/install-info '{}' \
+ "${cfg.homeInfoDirLocation}/dir" \;
+ fi
+ export PATH="$oPATH"
+ unset oPATH
+ '';
home.packages = [ infoPkg ];
diff --git a/modules/programs/jq.nix b/modules/programs/jq.nix
index 56c3adf0654..6c89df0df93 100644
--- a/modules/programs/jq.nix
+++ b/modules/programs/jq.nix
@@ -15,19 +15,17 @@ let
colorsType = types.submodule {
options = {
- null = colorType;
- false = colorType;
- true = colorType;
+ null = colorType;
+ false = colorType;
+ true = colorType;
numbers = colorType;
strings = colorType;
- arrays = colorType;
+ arrays = colorType;
objects = colorType;
};
};
-in
-
-{
+in {
options = {
programs.jq = {
enable = mkEnableOption "the jq command-line JSON processor";
@@ -52,12 +50,12 @@ in
'';
default = {
- null = "1;30";
- false = "0;39";
- true = "0;39";
+ null = "1;30";
+ false = "0;39";
+ true = "0;39";
numbers = "0;39";
strings = "0;32";
- arrays = "1;39";
+ arrays = "1;39";
objects = "1;39";
};
@@ -69,8 +67,10 @@ in
config = mkIf cfg.enable {
home.packages = [ pkgs.jq ];
- home.sessionVariables = let c = cfg.colors; in {
- JQ_COLORS = "${c.null}:${c.false}:${c.true}:${c.numbers}:${c.strings}:${c.arrays}:${c.objects}";
+ home.sessionVariables = let c = cfg.colors;
+ in {
+ JQ_COLORS =
+ "${c.null}:${c.false}:${c.true}:${c.numbers}:${c.strings}:${c.arrays}:${c.objects}";
};
};
}
diff --git a/modules/programs/kakoune.nix b/modules/programs/kakoune.nix
index dbaa764a212..faf2542dc70 100644
--- a/modules/programs/kakoune.nix
+++ b/modules/programs/kakoune.nix
@@ -10,16 +10,44 @@ let
options = {
name = mkOption {
type = types.enum [
- "NormalBegin" "NormalIdle" "NormalEnd" "NormalKey"
- "InsertBegin" "InsertIdle" "InsertEnd" "InsertKey"
- "InsertChar" "InsertDelete" "InsertMove" "WinCreate"
- "WinClose" "WinResize" "WinDisplay" "WinSetOption"
- "BufSetOption" "BufNewFile" "BufOpenFile" "BufCreate"
- "BufWritePre" "BufWritePost" "BufReload" "BufClose"
- "BufOpenFifo" "BufReadFifo" "BufCloseFifo" "RuntimeError"
- "ModeChange" "PromptIdle" "GlobalSetOption" "KakBegin"
- "KakEnd" "FocusIn" "FocusOut" "RawKey"
- "InsertCompletionShow" "InsertCompletionHide"
+ "NormalBegin"
+ "NormalIdle"
+ "NormalEnd"
+ "NormalKey"
+ "InsertBegin"
+ "InsertIdle"
+ "InsertEnd"
+ "InsertKey"
+ "InsertChar"
+ "InsertDelete"
+ "InsertMove"
+ "WinCreate"
+ "WinClose"
+ "WinResize"
+ "WinDisplay"
+ "WinSetOption"
+ "BufSetOption"
+ "BufNewFile"
+ "BufOpenFile"
+ "BufCreate"
+ "BufWritePre"
+ "BufWritePost"
+ "BufReload"
+ "BufClose"
+ "BufOpenFifo"
+ "BufReadFifo"
+ "BufCloseFifo"
+ "RuntimeError"
+ "ModeChange"
+ "PromptIdle"
+ "GlobalSetOption"
+ "KakBegin"
+ "KakEnd"
+ "FocusIn"
+ "FocusOut"
+ "RawKey"
+ "InsertCompletionShow"
+ "InsertCompletionHide"
"InsertCompletionSelect"
];
example = "SetOption";
@@ -159,7 +187,8 @@ let
};
autoInfo = mkOption {
- type = types.nullOr (types.listOf (types.enum [ "command" "onkey" "normal" ]));
+ type = types.nullOr
+ (types.listOf (types.enum [ "command" "onkey" "normal" ]));
default = null;
example = [ "command" "normal" ];
description = ''
@@ -169,7 +198,7 @@ let
};
autoComplete = mkOption {
- type = types.nullOr(types.listOf (types.enum [ "insert" "prompt" ]));
+ type = types.nullOr (types.listOf (types.enum [ "insert" "prompt" ]));
default = null;
description = ''
Modes in which to display possible completions.
@@ -450,7 +479,7 @@ let
keyMappings = mkOption {
type = types.listOf keyMapping;
- default = [];
+ default = [ ];
description = ''
User-defined key mappings. For documentation, see
<link xlink:href="https://github.com/mawww/kakoune/blob/master/doc/pages/mapping.asciidoc"/>.
@@ -459,7 +488,7 @@ let
hooks = mkOption {
type = types.listOf hook;
- default = [];
+ default = [ ];
description = ''
Global hooks. For documentation, see
<link xlink:href="https://github.com/mawww/kakoune/blob/master/doc/pages/hooks.asciidoc"/>.
@@ -468,92 +497,103 @@ let
};
};
- configFile =
- let
- wrapOptions = with cfg.config.wrapLines; concatStrings [
+ configFile = let
+ wrapOptions = with cfg.config.wrapLines;
+ concatStrings [
"${optionalString word " -word"}"
"${optionalString indent " -indent"}"
"${optionalString (marker != null) " -marker ${marker}"}"
"${optionalString (maxWidth != null) " -width ${toString maxWidth}"}"
];
- numberLinesOptions = with cfg.config.numberLines; concatStrings [
+ numberLinesOptions = with cfg.config.numberLines;
+ concatStrings [
"${optionalString relative " -relative "}"
"${optionalString highlightCursor " -hlcursor"}"
"${optionalString (separator != null) " -separator ${separator}"}"
];
- uiOptions = with cfg.config.ui; concatStringsSep " " [
+ uiOptions = with cfg.config.ui;
+ concatStringsSep " " [
"ncurses_set_title=${if setTitle then "true" else "false"}"
- "ncurses_status_on_top=${if (statusLine == "top") then "true" else "false"}"
+ "ncurses_status_on_top=${
+ if (statusLine == "top") then "true" else "false"
+ }"
"ncurses_assistant=${assistant}"
"ncurses_enable_mouse=${if enableMouse then "true" else "false"}"
"ncurses_change_colors=${if changeColors then "true" else "false"}"
"${optionalString (wheelDownButton != null)
- "ncurses_wheel_down_button=${wheelDownButton}"}"
+ "ncurses_wheel_down_button=${wheelDownButton}"}"
"${optionalString (wheelUpButton != null)
- "ncurses_wheel_up_button=${wheelUpButton}"}"
+ "ncurses_wheel_up_button=${wheelUpButton}"}"
"${optionalString (shiftFunctionKeys != null)
- "ncurses_shift_function_key=${toString shiftFunctionKeys}"}"
- "ncurses_builtin_key_parser=${if useBuiltinKeyParser then "true" else "false"}"
+ "ncurses_shift_function_key=${toString shiftFunctionKeys}"}"
+ "ncurses_builtin_key_parser=${
+ if useBuiltinKeyParser then "true" else "false"
+ }"
];
- keyMappingString = km: concatStringsSep " " [
+ keyMappingString = km:
+ concatStringsSep " " [
"map global"
"${km.mode} ${km.key} '${km.effect}'"
- "${optionalString (km.docstring != null) "-docstring '${km.docstring}'"}"
+ "${optionalString (km.docstring != null)
+ "-docstring '${km.docstring}'"}"
];
- hookString = h: concatStringsSep " " [
- "hook" "${optionalString (h.group != null) "-group ${group}"}"
- "${optionalString (h.once) "-once"}" "global"
- "${h.name}" "${optionalString (h.option != null) h.option}"
+ hookString = h:
+ concatStringsSep " " [
+ "hook"
+ "${optionalString (h.group != null) "-group ${group}"}"
+ "${optionalString (h.once) "-once"}"
+ "global"
+ "${h.name}"
+ "${optionalString (h.option != null) h.option}"
"%{ ${h.commands} }"
];
- cfgStr = with cfg.config; concatStringsSep "\n" (
- [ "# Generated by home-manager" ]
+ cfgStr = with cfg.config;
+ concatStringsSep "\n" ([ "# Generated by home-manager" ]
++ optional (colorScheme != null) "colorscheme ${colorScheme}"
- ++ optional (tabStop != null) "set-option global tabstop ${toString tabStop}"
- ++ optional (indentWidth != null) "set-option global indentwidth ${toString indentWidth}"
+ ++ optional (tabStop != null)
+ "set-option global tabstop ${toString tabStop}"
+ ++ optional (indentWidth != null)
+ "set-option global indentwidth ${toString indentWidth}"
++ optional (!incrementalSearch) "set-option global incsearch false"
++ optional (alignWithTabs) "set-option global aligntab true"
- ++ optional (autoInfo != null) "set-option global autoinfo ${concatStringsSep "|" autoInfo}"
- ++ optional (autoComplete != null) "set-option global autocomplete ${concatStringsSep "|" autoComplete}"
- ++ optional (autoReload != null) "set-option global/ autoreload ${autoReload}"
- ++ optional (wrapLines != null && wrapLines.enable) "add-highlighter global/ wrap${wrapOptions}"
+ ++ optional (autoInfo != null)
+ "set-option global autoinfo ${concatStringsSep "|" autoInfo}"
+ ++ optional (autoComplete != null)
+ "set-option global autocomplete ${concatStringsSep "|" autoComplete}"
+ ++ optional (autoReload != null)
+ "set-option global/ autoreload ${autoReload}"
+ ++ optional (wrapLines != null && wrapLines.enable)
+ "add-highlighter global/ wrap${wrapOptions}"
++ optional (numberLines != null && numberLines.enable)
- "add-highlighter global/ number-lines${numberLinesOptions}"
+ "add-highlighter global/ number-lines${numberLinesOptions}"
++ optional showMatching "add-highlighter global/ show-matching"
++ optional (scrollOff != null)
- "set-option global scrolloff ${toString scrollOff.lines},${toString scrollOff.columns}"
+ "set-option global scrolloff ${toString scrollOff.lines},${
+ toString scrollOff.columns
+ }"
++ [ "# UI options" ]
++ optional (ui != null) "set-option global ui_options ${uiOptions}"
- ++ [ "# Key mappings" ]
- ++ map keyMappingString keyMappings
+ ++ [ "# Key mappings" ] ++ map keyMappingString keyMappings
- ++ [ "# Hooks" ]
- ++ map hookString hooks
- );
- in
- pkgs.writeText "kakrc" (
- optionalString (cfg.config != null) cfgStr
- + "\n"
- + cfg.extraConfig
- );
+ ++ [ "# Hooks" ] ++ map hookString hooks);
+ in pkgs.writeText "kakrc"
+ (optionalString (cfg.config != null) cfgStr + "\n" + cfg.extraConfig);
-in
-
-{
+in {
options = {
programs.kakoune = {
enable = mkEnableOption "the kakoune text editor";
config = mkOption {
type = types.nullOr configModule;
- default = {};
+ default = { };
description = "kakoune configuration options.";
};
diff --git a/modules/programs/keychain.nix b/modules/programs/keychain.nix
index 2231a7c2eae..6e26bd232ce 100644
--- a/modules/programs/keychain.nix
+++ b/modules/programs/keychain.nix
@@ -6,15 +6,16 @@ let
cfg = config.programs.keychain;
- flags = cfg.extraFlags
- ++ optional (cfg.agents != []) "--agents ${concatStringsSep "," cfg.agents}"
+ flags = cfg.extraFlags ++ optional (cfg.agents != [ ])
+ "--agents ${concatStringsSep "," cfg.agents}"
++ optional (cfg.inheritType != null) "--inherit ${cfg.inheritType}";
- shellCommand = "${cfg.package}/bin/keychain --eval ${concatStringsSep " " flags} ${concatStringsSep " " cfg.keys}";
+ shellCommand =
+ "${cfg.package}/bin/keychain --eval ${concatStringsSep " " flags} ${
+ concatStringsSep " " cfg.keys
+ }";
-in
-
-{
+in {
meta.maintainers = [ maintainers.marsam ];
options.programs.keychain = {
@@ -39,14 +40,15 @@ in
agents = mkOption {
type = types.listOf types.str;
- default = [];
+ default = [ ];
description = ''
Agents to add.
'';
};
inheritType = mkOption {
- type = types.nullOr (types.enum ["local" "any" "local-once" "any-once"]);
+ type =
+ types.nullOr (types.enum [ "local" "any" "local-once" "any-once" ]);
default = null;
description = ''
Inherit type to attempt from agent variables from the environment.
diff --git a/modules/programs/lsd.nix b/modules/programs/lsd.nix
index 94934169aed..ab1880ff828 100644
--- a/modules/programs/lsd.nix
+++ b/modules/programs/lsd.nix
@@ -11,12 +11,10 @@ let
ll = "ls -l";
la = "ls -a";
lt = "ls --tree";
- lla ="ls -la";
+ lla = "ls -la";
};
-in
-
-{
+in {
meta.maintainers = [ maintainers.marsam ];
options.programs.lsd = {
diff --git a/modules/programs/matplotlib.nix b/modules/programs/matplotlib.nix
index 48ff6e60d68..da80c116770 100644
--- a/modules/programs/matplotlib.nix
+++ b/modules/programs/matplotlib.nix
@@ -9,16 +9,13 @@ let
formatLine = o: n: v:
let
formatValue = v:
- if isBool v then (if v then "True" else "False")
- else toString v;
- in
- if isAttrs v
- then concatStringsSep "\n" (mapAttrsToList (formatLine "${o}${n}.") v)
- else (if v == "" then "" else "${o}${n}: ${formatValue v}");
+ if isBool v then (if v then "True" else "False") else toString v;
+ in if isAttrs v then
+ concatStringsSep "\n" (mapAttrsToList (formatLine "${o}${n}.") v)
+ else
+ (if v == "" then "" else "${o}${n}: ${formatValue v}");
-in
-
-{
+in {
meta.maintainers = [ maintainers.rprospero ];
options.programs.matplotlib = {
@@ -31,7 +28,7 @@ in
Add terms to the <filename>matplotlibrc</filename> file to
control the default matplotlib behavior.
'';
- example = literalExample ''
+ example = literalExample ''
{
backend = "Qt5Agg";
axes = {
@@ -55,10 +52,8 @@ in
};
config = mkIf cfg.enable {
- xdg.configFile."matplotlib/matplotlibrc".text =
- concatStringsSep "\n" ([]
- ++ mapAttrsToList (formatLine "") cfg.config
- ++ optional (cfg.extraConfig != "") cfg.extraConfig
- ) + "\n";
+ xdg.configFile."matplotlib/matplotlibrc".text = concatStringsSep "\n" ([ ]
+ ++ mapAttrsToList (formatLine "") cfg.config
+ ++ optional (cfg.extraConfig != "") cfg.extraConfig) + "\n";
};
}
diff --git a/modules/programs/mbsync-accounts.nix b/modules/programs/mbsync-accounts.nix
index c586481df4d..4de1965fe3f 100644
--- a/modules/programs/mbsync-accounts.nix
+++ b/modules/programs/mbsync-accounts.nix
@@ -6,9 +6,7 @@ let
extraConfigType = with lib.types; attrsOf (either (either str int) bool);
-in
-
-{
+in {
options.mbsync = {
enable = mkEnableOption "synchronization using mbsync";
@@ -62,7 +60,7 @@ in
extraConfig.channel = mkOption {
type = extraConfigType;
- default = {};
+ default = { };
example = literalExample ''
{
MaxMessages = 10000;
@@ -76,7 +74,7 @@ in
extraConfig.local = mkOption {
type = extraConfigType;
- default = {};
+ default = { };
description = ''
Local store extra configuration.
'';
@@ -84,7 +82,7 @@ in
extraConfig.remote = mkOption {
type = extraConfigType;
- default = {};
+ default = { };
description = ''
Remote store extra configuration.
'';
@@ -92,7 +90,7 @@ in
extraConfig.account = mkOption {
type = extraConfigType;
- default = {};
+ default = { };
example = literalExample ''
{
PipelineDepth = 10;
diff --git a/modules/programs/mbsync.nix b/modules/programs/mbsync.nix
index 7537f6d5c41..6ade10986fe 100644
--- a/modules/programs/mbsync.nix
+++ b/modules/programs/mbsync.nix
@@ -10,14 +10,15 @@ let
mbsyncAccounts =
filter (a: a.mbsync.enable) (attrValues config.accounts.email.accounts);
- genTlsConfig = tls: {
- SSLType =
- if !tls.enable then "None"
- else if tls.useStartTls then "STARTTLS"
- else "IMAPS";
- }
- //
- optionalAttrs (tls.enable && tls.certificatesFile != null) {
+ genTlsConfig = tls:
+ {
+ SSLType = if !tls.enable then
+ "None"
+ else if tls.useStartTls then
+ "STARTTLS"
+ else
+ "IMAPS";
+ } // optionalAttrs (tls.enable && tls.certificatesFile != null) {
CertificateFile = toString tls.certificatesFile;
};
@@ -30,79 +31,61 @@ let
genSection = header: entries:
let
- escapeValue = escape [ "\"" ];
+ escapeValue = escape [ ''"'' ];
hasSpace = v: builtins.match ".* .*" v != null;
genValue = n: v:
- if isList v
- then concatMapStringsSep " " (genValue n) v
- else if isBool v then (if v then "yes" else "no")
- else if isInt v then toString v
- else if isString v && hasSpace v then "\"${escapeValue v}\""
- else if isString v then v
+ if isList v then
+ concatMapStringsSep " " (genValue n) v
+ else if isBool v then
+ (if v then "yes" else "no")
+ else if isInt v then
+ toString v
+ else if isString v && hasSpace v then
+ ''"${escapeValue v}"''
+ else if isString v then
+ v
else
- let prettyV = lib.generators.toPretty {} v;
- in throw "mbsync: unexpected value for option ${n}: '${prettyV}'";
- in
- ''
- ${header}
- ${concatStringsSep "\n"
- (mapAttrsToList (n: v: "${n} ${genValue n v}") entries)}
- '';
-
- genAccountConfig = account: with account;
- genSection "IMAPAccount ${name}" (
- {
- Host = imap.host;
- User = userName;
- PassCmd = toString passwordCommand;
- }
- // genTlsConfig imap.tls
- // optionalAttrs (imap.port != null) { Port = toString imap.port; }
- // mbsync.extraConfig.account
- )
- + "\n"
- + genSection "IMAPStore ${name}-remote" (
- {
- Account = name;
- }
- // mbsync.extraConfig.remote
- )
- + "\n"
- + genSection "MaildirStore ${name}-local" (
- {
- Path = "${maildir.absPath}/";
- Inbox = "${maildir.absPath}/${folders.inbox}";
- SubFolders = "Verbatim";
- }
- // optionalAttrs (mbsync.flatten != null) { Flatten = mbsync.flatten; }
- // mbsync.extraConfig.local
- )
- + "\n"
- + genSection "Channel ${name}" (
- {
- Master = ":${name}-remote:";
- Slave = ":${name}-local:";
- Patterns = mbsync.patterns;
- Create = masterSlaveMapping.${mbsync.create};
- Remove = masterSlaveMapping.${mbsync.remove};
- Expunge = masterSlaveMapping.${mbsync.expunge};
- SyncState = "*";
- }
- // mbsync.extraConfig.channel
- )
- + "\n";
+ let prettyV = lib.generators.toPretty { } v;
+ in throw "mbsync: unexpected value for option ${n}: '${prettyV}'";
+ in ''
+ ${header}
+ ${concatStringsSep "\n"
+ (mapAttrsToList (n: v: "${n} ${genValue n v}") entries)}
+ '';
+
+ genAccountConfig = account:
+ with account;
+ genSection "IMAPAccount ${name}" ({
+ Host = imap.host;
+ User = userName;
+ PassCmd = toString passwordCommand;
+ } // genTlsConfig imap.tls
+ // optionalAttrs (imap.port != null) { Port = toString imap.port; }
+ // mbsync.extraConfig.account) + "\n"
+ + genSection "IMAPStore ${name}-remote"
+ ({ Account = name; } // mbsync.extraConfig.remote) + "\n"
+ + genSection "MaildirStore ${name}-local" ({
+ Path = "${maildir.absPath}/";
+ Inbox = "${maildir.absPath}/${folders.inbox}";
+ SubFolders = "Verbatim";
+ } // optionalAttrs (mbsync.flatten != null) { Flatten = mbsync.flatten; }
+ // mbsync.extraConfig.local) + "\n" + genSection "Channel ${name}" ({
+ Master = ":${name}-remote:";
+ Slave = ":${name}-local:";
+ Patterns = mbsync.patterns;
+ Create = masterSlaveMapping.${mbsync.create};
+ Remove = masterSlaveMapping.${mbsync.remove};
+ Expunge = masterSlaveMapping.${mbsync.expunge};
+ SyncState = "*";
+ } // mbsync.extraConfig.channel) + "\n";
genGroupConfig = name: channels:
let
genGroupChannel = n: boxes: "Channel ${n}:${concatStringsSep "," boxes}";
- in
- concatStringsSep "\n" (
- [ "Group ${name}" ] ++ mapAttrsToList genGroupChannel channels
- );
+ in concatStringsSep "\n"
+ ([ "Group ${name}" ] ++ mapAttrsToList genGroupChannel channels);
-in
-
-{
+in {
options = {
programs.mbsync = {
enable = mkEnableOption "mbsync IMAP4 and Maildir mailbox synchronizer";
@@ -117,7 +100,7 @@ in
groups = mkOption {
type = types.attrsOf (types.attrsOf (types.listOf types.str));
- default = {};
+ default = { };
example = literalExample ''
{
inboxes = {
@@ -142,41 +125,34 @@ in
};
config = mkIf cfg.enable {
- assertions =
- let
- checkAccounts = pred: msg:
- let
- badAccounts = filter pred mbsyncAccounts;
- in {
- assertion = badAccounts == [];
- message = "mbsync: ${msg} for accounts: "
- + concatMapStringsSep ", " (a: a.name) badAccounts;
- };
- in
- [
- (checkAccounts (a: a.maildir == null) "Missing maildir configuration")
- (checkAccounts (a: a.imap == null) "Missing IMAP configuration")
- (checkAccounts (a: a.passwordCommand == null) "Missing passwordCommand")
- (checkAccounts (a: a.userName == null) "Missing username")
- ];
+ assertions = let
+ checkAccounts = pred: msg:
+ let badAccounts = filter pred mbsyncAccounts;
+ in {
+ assertion = badAccounts == [ ];
+ message = "mbsync: ${msg} for accounts: "
+ + concatMapStringsSep ", " (a: a.name) badAccounts;
+ };
+ in [
+ (checkAccounts (a: a.maildir == null) "Missing maildir configuration")
+ (checkAccounts (a: a.imap == null) "Missing IMAP configuration")
+ (checkAccounts (a: a.passwordCommand == null) "Missing passwordCommand")
+ (checkAccounts (a: a.userName == null) "Missing username")
+ ];
home.packages = [ cfg.package ];
programs.notmuch.new.ignore = [ ".uidvalidity" ".mbsyncstate" ];
- home.file.".mbsyncrc".text =
- let
- accountsConfig = map genAccountConfig mbsyncAccounts;
- groupsConfig = mapAttrsToList genGroupConfig cfg.groups;
- in
- concatStringsSep "\n" (
- [ "# Generated by Home Manager.\n" ]
- ++ optional (cfg.extraConfig != "") cfg.extraConfig
- ++ accountsConfig
- ++ groupsConfig
- ) + "\n";
-
- home.activation = mkIf (mbsyncAccounts != []) {
+ home.file.".mbsyncrc".text = let
+ accountsConfig = map genAccountConfig mbsyncAccounts;
+ groupsConfig = mapAttrsToList genGroupConfig cfg.groups;
+ in concatStringsSep "\n" ([''
+ # Generated by Home Manager.
+ ''] ++ optional (cfg.extraConfig != "") cfg.extraConfig ++ accountsConfig
+ ++ groupsConfig) + "\n";
+
+ home.activation = mkIf (mbsyncAccounts != [ ]) {
createMaildir =
hm.dag.entryBetween [ "linkGeneration" ] [ "writeBoundary" ] ''
$DRY_RUN_CMD mkdir -m700 -p $VERBOSE_ARG ${
diff --git a/modules/programs/mercurial.nix b/modules/programs/mercurial.nix
index fa6e7b3e5ba..8e9a3befbaf 100644
--- a/modules/programs/mercurial.nix
+++ b/modules/programs/mercurial.nix
@@ -6,9 +6,7 @@ let
cfg = config.programs.mercurial;
-in
-
-{
+in {
options = {
programs.mercurial = {
@@ -33,13 +31,13 @@ in
aliases = mkOption {
type = types.attrs;
- default = {};
+ default = { };
description = "Mercurial aliases to define.";
};
extraConfig = mkOption {
type = types.either types.attrs types.lines;
- default = {};
+ default = { };
description = "Additional configuration to add.";
};
@@ -50,53 +48,53 @@ in
ignores = mkOption {
type = types.listOf types.str;
- default = [];
+ default = [ ];
example = [ "*~" "*.swp" ];
description = "List of globs for files to be globally ignored.";
};
ignoresRegexp = mkOption {
type = types.listOf types.str;
- default = [];
+ default = [ ];
example = [ "^.*~$" "^.*\\.swp$" ];
description =
- "List of regular expressions for files to be globally ignored.";
+ "List of regular expressions for files to be globally ignored.";
};
};
};
- config = mkIf cfg.enable (
- mkMerge [
- {
- home.packages = [ cfg.package ];
+ config = mkIf cfg.enable (mkMerge [
+ {
+ home.packages = [ cfg.package ];
- programs.mercurial.iniContent.ui = {
- username = cfg.userName + " <" + cfg.userEmail + ">";
- };
+ programs.mercurial.iniContent.ui = {
+ username = cfg.userName + " <" + cfg.userEmail + ">";
+ };
- xdg.configFile."hg/hgrc".text = generators.toINI {} cfg.iniContent;
- }
+ xdg.configFile."hg/hgrc".text = generators.toINI { } cfg.iniContent;
+ }
- (mkIf (cfg.ignores != [] || cfg.ignoresRegexp != []) {
- programs.mercurial.iniContent.ui.ignore =
- "${config.xdg.configHome}/hg/hgignore_global";
+ (mkIf (cfg.ignores != [ ] || cfg.ignoresRegexp != [ ]) {
+ programs.mercurial.iniContent.ui.ignore =
+ "${config.xdg.configHome}/hg/hgignore_global";
- xdg.configFile."hg/hgignore_global".text =
- "syntax: glob\n" + concatStringsSep "\n" cfg.ignores + "\n" +
- "syntax: regexp\n" + concatStringsSep "\n" cfg.ignoresRegexp + "\n";
- })
+ xdg.configFile."hg/hgignore_global".text = ''
+ syntax: glob
+ '' + concatStringsSep "\n" cfg.ignores + "\n" + ''
+ syntax: regexp
+ '' + concatStringsSep "\n" cfg.ignoresRegexp + "\n";
+ })
- (mkIf (cfg.aliases != {}) {
- programs.mercurial.iniContent.alias = cfg.aliases;
- })
+ (mkIf (cfg.aliases != { }) {
+ programs.mercurial.iniContent.alias = cfg.aliases;
+ })
- (mkIf (lib.isAttrs cfg.extraConfig) {
- programs.mercurial.iniContent = cfg.extraConfig;
- })
+ (mkIf (lib.isAttrs cfg.extraConfig) {
+ programs.mercurial.iniContent = cfg.extraConfig;
+ })
- (mkIf (lib.isString cfg.extraConfig) {
- xdg.configFile."hg/hgrc".text = cfg.extraConfig;
- })
- ]
- );
+ (mkIf (lib.isString cfg.extraConfig) {
+ xdg.configFile."hg/hgrc".text = cfg.extraConfig;
+ })
+ ]);
}
diff --git a/modules/programs/mpv.nix b/modules/programs/mpv.nix
index 8b9c191ce5e..3a4e5092f9a 100644
--- a/modules/programs/mpv.nix
+++ b/modules/programs/mpv.nix
@@ -23,31 +23,21 @@ let
}.${typeOf option};
renderOptions = options:
- concatStringsSep "\n"
- (mapAttrsToList
- (name: value:
- let
- rendered = renderOption value;
- length = toString (stringLength rendered);
- in
- "${name}=%${length}%${rendered}")
- options);
+ concatStringsSep "\n" (mapAttrsToList (name: value:
+ let
+ rendered = renderOption value;
+ length = toString (stringLength rendered);
+ in "${name}=%${length}%${rendered}") options);
renderProfiles = profiles:
- concatStringsSep "\n"
- (mapAttrsToList
- (name: value: ''
- [${name}]
- ${renderOptions value}
- '')
- profiles);
+ concatStringsSep "\n" (mapAttrsToList (name: value: ''
+ [${name}]
+ ${renderOptions value}
+ '') profiles);
renderBindings = bindings:
concatStringsSep "\n"
- (mapAttrsToList
- (name: value:
- "${name} ${value}")
- bindings);
+ (mapAttrsToList (name: value: "${name} ${value}") bindings);
in {
options = {
@@ -56,7 +46,7 @@ in {
scripts = mkOption {
type = with types; listOf (either package str);
- default = [];
+ default = [ ];
example = literalExample "[ pkgs.mpvScripts.mpris ]";
description = ''
List of scripts to use with mpv.
@@ -74,7 +64,7 @@ in {
for the full list of options.
'';
type = mpvOptions;
- default = {};
+ default = { };
example = literalExample ''
{
profile = "gpu-hq";
@@ -92,7 +82,7 @@ in {
<option>programs.mpv.config</option> for more information.
'';
type = mpvProfiles;
- default = {};
+ default = { };
example = literalExample ''
{
fast = {
@@ -117,7 +107,7 @@ in {
for the full list of options.
'';
type = mpvBindings;
- default = {};
+ default = { };
example = literalExample ''
{
WHEEL_UP = "seek 10";
@@ -131,19 +121,20 @@ in {
config = mkIf cfg.enable (mkMerge [
{
- home.packages = [(
- if cfg.scripts == []
- then pkgs.mpv
- else pkgs.mpv-with-scripts.override { scripts = cfg.scripts; }
- )];
+ home.packages = [
+ (if cfg.scripts == [ ] then
+ pkgs.mpv
+ else
+ pkgs.mpv-with-scripts.override { scripts = cfg.scripts; })
+ ];
}
- (mkIf (cfg.config != {} || cfg.profiles != {}) {
+ (mkIf (cfg.config != { } || cfg.profiles != { }) {
xdg.configFile."mpv/mpv.conf".text = ''
- ${optionalString (cfg.config != {}) (renderOptions cfg.config)}
- ${optionalString (cfg.profiles != {}) (renderProfiles cfg.profiles)}
+ ${optionalString (cfg.config != { }) (renderOptions cfg.config)}
+ ${optionalString (cfg.profiles != { }) (renderProfiles cfg.profiles)}
'';
})
- (mkIf (cfg.bindings != {}) {
+ (mkIf (cfg.bindings != { }) {
xdg.configFile."mpv/input.conf".text = renderBindings cfg.bindings;
})
]);
diff --git a/modules/programs/msmtp-accounts.nix b/modules/programs/msmtp-accounts.nix
index 277710f4cba..894cef51742 100644
--- a/modules/programs/msmtp-accounts.nix
+++ b/modules/programs/msmtp-accounts.nix
@@ -23,7 +23,8 @@ with lib;
};
tls.fingerprint = mkOption {
- type = types.nullOr (types.strMatching "([[:alnum:]]{2}\:)+[[:alnum:]]{2}");
+ type =
+ types.nullOr (types.strMatching "([[:alnum:]]{2}:)+[[:alnum:]]{2}");
default = null;
example = "my:SH:a2:56:ha:sh";
description = ''
diff --git a/modules/programs/msmtp.nix b/modules/programs/msmtp.nix
index 1ff3139ef36..f34fd72f8b1 100644
--- a/modules/programs/msmtp.nix
+++ b/modules/programs/msmtp.nix
@@ -6,38 +6,32 @@ let
cfg = config.programs.msmtp;
- msmtpAccounts = filter (a: a.msmtp.enable)
- (attrValues config.accounts.email.accounts);
+ msmtpAccounts =
+ filter (a: a.msmtp.enable) (attrValues config.accounts.email.accounts);
onOff = p: if p then "on" else "off";
- accountStr = account: with account;
- concatStringsSep "\n" (
- [ "account ${name}" ]
- ++ mapAttrsToList (n: v: n + " " + v) (
- {
- host = smtp.host;
- from = address;
- auth = "on";
- user = userName;
- tls = onOff smtp.tls.enable;
- tls_starttls = onOff smtp.tls.useStartTls;
- tls_trust_file = smtp.tls.certificatesFile;
- }
- // optionalAttrs (msmtp.tls.fingerprint != null) {
- tls_fingerprint = msmtp.tls.fingerprint;
- }
- // optionalAttrs (smtp.port != null) {
- port = toString smtp.port;
- }
+ accountStr = account:
+ with account;
+ concatStringsSep "\n" ([ "account ${name}" ]
+ ++ mapAttrsToList (n: v: n + " " + v) ({
+ host = smtp.host;
+ from = address;
+ auth = "on";
+ user = userName;
+ tls = onOff smtp.tls.enable;
+ tls_starttls = onOff smtp.tls.useStartTls;
+ tls_trust_file = smtp.tls.certificatesFile;
+ } // optionalAttrs (msmtp.tls.fingerprint != null) {
+ tls_fingerprint = msmtp.tls.fingerprint;
+ } // optionalAttrs (smtp.port != null) { port = toString smtp.port; }
// optionalAttrs (passwordCommand != null) {
# msmtp requires the password to finish with a newline.
- passwordeval = ''${pkgs.bash}/bin/bash -c "${toString passwordCommand}; echo"'';
- }
- // msmtp.extraConfig
- )
- ++ optional primary "\naccount default : ${name}"
- );
+ passwordeval =
+ ''${pkgs.bash}/bin/bash -c "${toString passwordCommand}; echo"'';
+ } // msmtp.extraConfig) ++ optional primary ''
+
+ account default : ${name}'');
configFile = mailAccounts: ''
# Generated by Home Manager.
@@ -47,9 +41,7 @@ let
${concatStringsSep "\n\n" (map accountStr mailAccounts)}
'';
-in
-
-{
+in {
options = {
programs.msmtp = {
@@ -71,7 +63,7 @@ in
xdg.configFile."msmtp/config".text = configFile msmtpAccounts;
- home.sessionVariables = {
+ home.sessionVariables = {
MSMTP_QUEUE = "${config.xdg.dataHome}/msmtp/queue";
MSMTP_LOG = "${config.xdg.dataHome}/msmtp/queue.log";
};
diff --git a/modules/programs/neomutt-accounts.nix b/modules/programs/neomutt-accounts.nix
index a374f1167bd..033db38eb0a 100644
--- a/modules/programs/neomutt-accounts.nix
+++ b/modules/programs/neomutt-accounts.nix
@@ -26,10 +26,9 @@ with lib;
};
config = mkIf config.neomutt.enable {
- neomutt.sendMailCommand = mkOptionDefault (
- if config.msmtp.enable
- then "msmtpq --read-envelope-from --read-recipients"
- else null
- );
+ neomutt.sendMailCommand = mkOptionDefault (if config.msmtp.enable then
+ "msmtpq --read-envelope-from --read-recipients"
+ else
+ null);
};
}
diff --git a/modules/programs/neomutt.nix b/modules/programs/neomutt.nix
index 1f7022e0aca..85af0353b6c 100644
--- a/modules/programs/neomutt.nix
+++ b/modules/programs/neomutt.nix
@@ -6,8 +6,8 @@ let
cfg = config.programs.neomutt;
- neomuttAccounts = filter (a: a.neomutt.enable)
- (attrValues config.accounts.email.accounts);
+ neomuttAccounts =
+ filter (a: a.neomutt.enable) (attrValues config.accounts.email.accounts);
sidebarModule = types.submodule {
options = {
@@ -76,13 +76,12 @@ let
yesno = x: if x then "yes" else "no";
setOption = n: v: if v == null then "unset ${n}" else "set ${n}=${v}";
- escape = replaceStrings ["%"] ["%25"];
+ escape = replaceStrings [ "%" ] [ "%25" ];
- accountFilename = account:
- config.xdg.configHome + "/neomutt/" + account.name;
+ accountFilename = account: config.xdg.configHome + "/neomutt/" + account.name;
- genCommonFolderHooks = account: with account;
- {
+ genCommonFolderHooks = account:
+ with account; {
from = "'${address}'";
realname = "'${realName}'";
spoolfile = "'+${folders.inbox}'";
@@ -91,13 +90,13 @@ let
trash = "'+${folders.trash}'";
};
- mtaSection = account: with account;
- let
- passCmd = concatStringsSep " " passwordCommand;
- in
- if neomutt.sendMailCommand != null then {
- sendmail = "'${neomutt.sendMailCommand}'";
- } else let
+ mtaSection = account:
+ with account;
+ let passCmd = concatStringsSep " " passwordCommand;
+ in if neomutt.sendMailCommand != null then {
+ sendmail = "'${neomutt.sendMailCommand}'";
+ } else
+ let
smtpProto = if smtp.tls.enable then "smtps" else "smtp";
smtpBaseUrl = "${smtpProto}://${escape userName}@${smtp.host}";
in {
@@ -105,35 +104,32 @@ let
smtp_pass = "'`${passCmd}`'";
};
- genMaildirAccountConfig = account: with account;
+ genMaildirAccountConfig = account:
+ with account;
let
- folderHook =
- mapAttrsToList setOption (
- genCommonFolderHooks account
- // { folder = "'${account.maildir.absPath}'"; }
- )
- ++ optional (neomutt.extraConfig != "") neomutt.extraConfig;
- in
- ''
- ${concatStringsSep "\n" folderHook}
- '';
-
- registerAccount = account: with account;
- ''
+ folderHook = mapAttrsToList setOption (genCommonFolderHooks account // {
+ folder = "'${account.maildir.absPath}'";
+ }) ++ optional (neomutt.extraConfig != "") neomutt.extraConfig;
+ in ''
+ ${concatStringsSep "\n" folderHook}
+ '';
+
+ registerAccount = account:
+ with account; ''
# register account ${name}
mailboxes "${account.maildir.absPath}/${folders.inbox}"
folder-hook ${account.maildir.absPath}/ " \
source ${accountFilename account} "
'';
- mraSection = account: with account;
- if account.maildir != null
- then genMaildirAccountConfig account
- else throw "Only maildir is supported at the moment";
-
- optionsStr = attrs:
- concatStringsSep "\n" (mapAttrsToList setOption attrs);
+ mraSection = account:
+ with account;
+ if account.maildir != null then
+ genMaildirAccountConfig account
+ else
+ throw "Only maildir is supported at the moment";
+ optionsStr = attrs: concatStringsSep "\n" (mapAttrsToList setOption attrs);
sidebarSection = ''
# Sidebar
@@ -143,81 +139,74 @@ let
set sidebar_format = '${cfg.sidebar.format}'
'';
- bindSection =
- concatMapStringsSep
- "\n"
- (bind: "bind ${bind.map} ${bind.key} \"${bind.action}\"")
- cfg.binds;
+ bindSection = concatMapStringsSep "\n"
+ (bind: ''bind ${bind.map} ${bind.key} "${bind.action}"'') cfg.binds;
- macroSection =
- concatMapStringsSep
- "\n"
- (bind: "macro ${bind.map} ${bind.key} \"${bind.action}\"")
- cfg.macros;
+ macroSection = concatMapStringsSep "\n"
+ (bind: ''macro ${bind.map} ${bind.key} "${bind.action}"'') cfg.macros;
mailCheckSection = ''
set mail_check_stats
set mail_check_stats_interval = ${toString cfg.checkStatsInterval}
'';
- notmuchSection = account: with account; ''
- # notmuch section
- set nm_default_uri = "notmuch://${config.accounts.email.maildirBasePath}"
- virtual-mailboxes "My INBOX" "notmuch://?query=tag:inbox"
- '';
-
- accountStr = account: with account; ''
- # Generated by Home Manager.
- set ssl_force_tls = yes
- set certificate_file=${config.accounts.email.certificatesFile}
+ notmuchSection = account:
+ with account; ''
+ # notmuch section
+ set nm_default_uri = "notmuch://${config.accounts.email.maildirBasePath}"
+ virtual-mailboxes "My INBOX" "notmuch://?query=tag:inbox"
+ '';
- # GPG section
- set crypt_use_gpgme = yes
- set crypt_autosign = ${yesno (gpg.signByDefault or false)}
- set pgp_use_gpg_agent = yes
- set mbox_type = ${if maildir != null then "Maildir" else "mbox"}
- set sort = "${cfg.sort}"
+ accountStr = account:
+ with account;
+ ''
+ # Generated by Home Manager.
+ set ssl_force_tls = yes
+ set certificate_file=${config.accounts.email.certificatesFile}
- # MTA section
- ${optionsStr (mtaSection account)}
+ # GPG section
+ set crypt_use_gpgme = yes
+ set crypt_autosign = ${yesno (gpg.signByDefault or false)}
+ set pgp_use_gpg_agent = yes
+ set mbox_type = ${if maildir != null then "Maildir" else "mbox"}
+ set sort = "${cfg.sort}"
- ${optionalString (cfg.checkStatsInterval != null) mailCheckSection}
+ # MTA section
+ ${optionsStr (mtaSection account)}
- ${optionalString cfg.sidebar.enable sidebarSection}
+ ${optionalString (cfg.checkStatsInterval != null) mailCheckSection}
- # MRA section
- ${mraSection account}
+ ${optionalString cfg.sidebar.enable sidebarSection}
- # Extra configuration
- ${account.neomutt.extraConfig}
- ''
- + optionalString (account.signature.showSignature != "none") ''
- set signature = ${pkgs.writeText "signature.txt" account.signature.text}
- ''
- + optionalString account.notmuch.enable (notmuchSection account);
+ # MRA section
+ ${mraSection account}
-in
+ # Extra configuration
+ ${account.neomutt.extraConfig}
+ '' + optionalString (account.signature.showSignature != "none") ''
+ set signature = ${pkgs.writeText "signature.txt" account.signature.text}
+ '' + optionalString account.notmuch.enable (notmuchSection account);
-{
+in {
options = {
programs.neomutt = {
enable = mkEnableOption "the NeoMutt mail client";
sidebar = mkOption {
type = sidebarModule;
- default = {};
+ default = { };
description = "Options related to the sidebar.";
};
binds = mkOption {
type = types.listOf bindModule;
- default = [];
+ default = [ ];
description = "List of keybindings.";
};
macros = mkOption {
type = types.listOf bindModule;
- default = [];
+ default = [ ];
description = "List of macros.";
};
@@ -259,7 +248,7 @@ in
settings = mkOption {
type = types.attrsOf types.str;
- default = {};
+ default = { };
description = "Extra configuration appended to the end.";
};
@@ -277,43 +266,37 @@ in
rcFile = account: {
"${accountFilename account}".text = accountStr account;
};
- in
- foldl' (a: b: a // b) {} (map rcFile neomuttAccounts);
-
- xdg.configFile."neomutt/neomuttrc" = mkIf (neomuttAccounts != []) {
- text =
- let
- primary = filter (a: a.primary) neomuttAccounts;
- in
- ''
- # Generated by Home Manager.
- set header_cache = "${config.xdg.cacheHome}/neomutt/headers/"
- set message_cachedir = "${config.xdg.cacheHome}/neomutt/messages/"
- set editor = "${cfg.editor}"
- set implicit_autoview = yes
-
- alternative_order text/enriched text/plain text
-
- set delete = yes
-
- # Binds
- ${bindSection}
-
- # Macros
- ${macroSection}
-
- ${optionalString cfg.vimKeys "source ${pkgs.neomutt}/share/doc/neomutt/vim-keys/vim-keys.rc"}
-
- # Extra configuration
- ${optionsStr cfg.settings}
-
- ${cfg.extraConfig}
- ''
- +
- concatMapStringsSep "\n" registerAccount neomuttAccounts
- +
- # source primary account
- "source ${accountFilename (builtins.head primary)}";
+ in foldl' (a: b: a // b) { } (map rcFile neomuttAccounts);
+
+ xdg.configFile."neomutt/neomuttrc" = mkIf (neomuttAccounts != [ ]) {
+ text = let primary = filter (a: a.primary) neomuttAccounts;
+ in ''
+ # Generated by Home Manager.
+ set header_cache = "${config.xdg.cacheHome}/neomutt/headers/"
+ set message_cachedir = "${config.xdg.cacheHome}/neomutt/messages/"
+ set editor = "${cfg.editor}"
+ set implicit_autoview = yes
+
+ alternative_order text/enriched text/plain text
+
+ set delete = yes
+
+ # Binds
+ ${bindSection}
+
+ # Macros
+ ${macroSection}
+
+ ${optionalString cfg.vimKeys
+ "source ${pkgs.neomutt}/share/doc/neomutt/vim-keys/vim-keys.rc"}
+
+ # Extra configuration
+ ${optionsStr cfg.settings}
+
+ ${cfg.extraConfig}
+ '' + concatMapStringsSep "\n" registerAccount neomuttAccounts +
+ # source primary account
+ "source ${accountFilename (builtins.head primary)}";
};
};
}
diff --git a/modules/programs/newsboat.nix b/modules/programs/newsboat.nix
index 19fec642d21..6b59ed713d8 100644
--- a/modules/programs/newsboat.nix
+++ b/modules/programs/newsboat.nix
@@ -4,11 +4,9 @@ with lib;
let
cfg = config.programs.newsboat;
- wrapQuote = x: "\"${x}\"";
+ wrapQuote = x: ''"${x}"'';
-in
-
-{
+in {
options = {
programs.newsboat = {
enable = mkEnableOption "the Newsboat feed reader";
@@ -24,8 +22,8 @@ in
tags = mkOption {
type = types.listOf types.str;
- default = [];
- example = ["foo" "bar"];
+ default = [ ];
+ example = [ "foo" "bar" ];
description = "Feed tags.";
};
@@ -37,8 +35,11 @@ in
};
};
});
- default = [];
- example = [{url = "http://example.com"; tags = ["foo" "bar"];}];
+ default = [ ];
+ example = [{
+ url = "http://example.com";
+ tags = [ "foo" "bar" ];
+ }];
description = "List of news feeds.";
};
@@ -57,7 +58,9 @@ in
autoReload = mkOption {
type = types.bool;
default = false;
- description = "Whether to enable automatic reloading while newsboat is running.";
+ description = ''
+ Whether to enable automatic reloading while newsboat is running.
+ '';
};
reloadTime = mkOption {
@@ -74,43 +77,40 @@ in
queries = mkOption {
type = types.attrsOf types.str;
- default = {};
- example = {
- "foo" = "rssurl =~ \"example.com\"";
- };
+ default = { };
+ example = { "foo" = ''rssurl =~ "example.com"''; };
description = "A list of queries to use.";
};
extraConfig = mkOption {
type = types.lines;
default = "";
- description = "Extra configuration values that will be appended to the end.";
+ description = ''
+ Extra configuration values that will be appended to the end.
+ '';
};
};
};
config = mkIf cfg.enable {
home.packages = [ pkgs.newsboat ];
- home.file.".newsboat/urls".text =
- let
- mkUrlEntry = u: concatStringsSep " " (
- [u.url]
- ++ map wrapQuote u.tags
- ++ optional (u.title != null) (wrapQuote "~${u.title}")
- );
- urls = map mkUrlEntry cfg.urls;
-
- mkQueryEntry = n: v: "\"query:${n}:${escape ["\""] v}\"";
- queries = mapAttrsToList mkQueryEntry cfg.queries;
- in
- concatStringsSep "\n" (urls ++ queries) + "\n";
+ home.file.".newsboat/urls".text = let
+ mkUrlEntry = u:
+ concatStringsSep " " ([ u.url ] ++ map wrapQuote u.tags
+ ++ optional (u.title != null) (wrapQuote "~${u.title}"));
+ urls = map mkUrlEntry cfg.urls;
+
+ mkQueryEntry = n: v: ''"query:${n}:${escape [ ''"'' ] v}"'';
+ queries = mapAttrsToList mkQueryEntry cfg.queries;
+ in concatStringsSep "\n" (urls ++ queries) + "\n";
home.file.".newsboat/config".text = ''
max-items ${toString cfg.maxItems}
browser ${cfg.browser}
reload-threads ${toString cfg.reloadThreads}
auto-reload ${if cfg.autoReload then "yes" else "no"}
- ${optionalString (cfg.reloadTime != null) (toString "reload-time ${toString cfg.reloadTime}")}
+ ${optionalString (cfg.reloadTime != null)
+ (toString "reload-time ${toString cfg.reloadTime}")}
prepopulate-query-feeds yes
${cfg.extraConfig}
diff --git a/modules/programs/noti.nix b/modules/programs/noti.nix
index 476c2eb1978..348555eef51 100644
--- a/modules/programs/noti.nix
+++ b/modules/programs/noti.nix
@@ -1,4 +1,4 @@
-{ config, lib, pkgs, ...}:
+{ config, lib, pkgs, ... }:
with lib;
@@ -6,9 +6,7 @@ let
cfg = config.programs.noti;
-in
-
-{
+in {
meta.maintainers = [ maintainers.marsam ];
options.programs.noti = {
@@ -16,7 +14,7 @@ in
settings = mkOption {
type = types.attrsOf (types.attrsOf types.str);
- default = {};
+ default = { };
description = ''
Configuration written to
<filename>~/.config/noti/noti.yaml</filename>.
@@ -45,9 +43,8 @@ in
config = mkIf cfg.enable {
home.packages = [ pkgs.noti ];
- xdg.configFile."noti/noti.yaml" = mkIf (cfg.settings != {}) {
- text = generators.toYAML {} cfg.settings;
- };
+ xdg.configFile."noti/noti.yaml" =
+ mkIf (cfg.settings != { }) { text = generators.toYAML { } cfg.settings; };
};
}
diff --git a/modules/programs/notmuch-accounts.nix b/modules/programs/notmuch-accounts.nix
index 7c9c93d3f95..fd4a811d73d 100644
--- a/modules/programs/notmuch-accounts.nix
+++ b/modules/programs/notmuch-accounts.nix
@@ -1,7 +1,5 @@
{ lib, ... }:
{
- options.notmuch = {
- enable = lib.mkEnableOption "notmuch indexing";
- };
+ options.notmuch = { enable = lib.mkEnableOption "notmuch indexing"; };
}
diff --git a/modules/programs/notmuch.nix b/modules/programs/notmuch.nix
index 74aa9320d91..7e7a140b20c 100644
--- a/modules/programs/notmuch.nix
+++ b/modules/programs/notmuch.nix
@@ -9,53 +9,42 @@ let
mkIniKeyValue = key: value:
let
tweakVal = v:
- if isString v then v
- else if isList v then concatMapStringsSep ";" tweakVal v
- else if isBool v then (if v then "true" else "false")
- else toString v;
- in
- "${key}=${tweakVal value}";
-
- notmuchIni =
- recursiveUpdate
- {
- database = {
- path = config.accounts.email.maildirBasePath;
- };
-
- maildir = {
- synchronize_flags = cfg.maildir.synchronizeFlags;
- };
-
- new = {
- ignore = cfg.new.ignore;
- tags = cfg.new.tags;
- };
-
- user =
- let
- accounts =
- filter (a: a.notmuch.enable)
- (attrValues config.accounts.email.accounts);
- primary = filter (a: a.primary) accounts;
- secondaries = filter (a: !a.primary) accounts;
- in {
- name = catAttrs "realName" primary;
- primary_email = catAttrs "address" primary;
- other_email = catAttrs "aliases" primary
- ++ catAttrs "address" secondaries
- ++ catAttrs "aliases" secondaries;
- };
+ if isString v then
+ v
+ else if isList v then
+ concatMapStringsSep ";" tweakVal v
+ else if isBool v then
+ (if v then "true" else "false")
+ else
+ toString v;
+ in "${key}=${tweakVal value}";
+
+ notmuchIni = recursiveUpdate {
+ database = { path = config.accounts.email.maildirBasePath; };
+
+ maildir = { synchronize_flags = cfg.maildir.synchronizeFlags; };
+
+ new = {
+ ignore = cfg.new.ignore;
+ tags = cfg.new.tags;
+ };
- search = {
- exclude_tags = cfg.search.excludeTags;
- };
- }
- cfg.extraConfig;
+ user = let
+ accounts = filter (a: a.notmuch.enable)
+ (attrValues config.accounts.email.accounts);
+ primary = filter (a: a.primary) accounts;
+ secondaries = filter (a: !a.primary) accounts;
+ in {
+ name = catAttrs "realName" primary;
+ primary_email = catAttrs "address" primary;
+ other_email = catAttrs "aliases" primary ++ catAttrs "address" secondaries
+ ++ catAttrs "aliases" secondaries;
+ };
-in
+ search = { exclude_tags = cfg.search.excludeTags; };
+ } cfg.extraConfig;
-{
+in {
options = {
programs.notmuch = {
enable = mkEnableOption "Notmuch mail indexer";
@@ -65,7 +54,7 @@ in
options = {
ignore = mkOption {
type = types.listOf types.str;
- default = [];
+ default = [ ];
description = ''
A list to specify files and directories that will not be
searched for messages by <command>notmuch new</command>.
@@ -83,7 +72,7 @@ in
};
};
};
- default = {};
+ default = { };
description = ''
Options related to email processing performed by
<command>notmuch new</command>.
@@ -92,7 +81,7 @@ in
extraConfig = mkOption {
type = types.attrsOf (types.attrsOf types.str);
- default = {};
+ default = { };
description = ''
Options that should be appended to the notmuch configuration file.
'';
@@ -159,11 +148,11 @@ in
config = mkIf cfg.enable {
assertions = [
{
- assertion = notmuchIni.user.name != [];
+ assertion = notmuchIni.user.name != [ ];
message = "notmuch: Must have a user name set.";
}
{
- assertion = notmuchIni.user.primary_email != [];
+ assertion = notmuchIni.user.primary_email != [ ];
message = "notmuch: Must have a user primary email address set.";
}
];
@@ -176,33 +165,27 @@ in
};
xdg.configFile."notmuch/notmuchrc".text =
- let
- toIni = generators.toINI { mkKeyValue = mkIniKeyValue; };
- in
- "# Generated by Home Manager.\n\n"
- + toIni notmuchIni;
-
- home.file =
- let
- hook = name: cmds:
- {
- "${notmuchIni.database.path}/.notmuch/hooks/${name}".source =
- pkgs.writeShellScript name ''
- export PATH="${pkgs.notmuch}/bin''${PATH:+:}$PATH"
- export NOTMUCH_CONFIG="${config.xdg.configHome}/notmuch/notmuchrc"
- export NMBGIT="${config.xdg.dataHome}/notmuch/nmbug"
-
- ${cmds}
- '';
- };
- in
- optionalAttrs (cfg.hooks.preNew != "")
- (hook "pre-new" cfg.hooks.preNew)
- //
- optionalAttrs (cfg.hooks.postNew != "")
- (hook "post-new" cfg.hooks.postNew)
- //
- optionalAttrs (cfg.hooks.postInsert != "")
- (hook "post-insert" cfg.hooks.postInsert);
+ let toIni = generators.toINI { mkKeyValue = mkIniKeyValue; };
+ in ''
+ # Generated by Home Manager.
+
+ '' + toIni notmuchIni;
+
+ home.file = let
+ hook = name: cmds: {
+ "${notmuchIni.database.path}/.notmuch/hooks/${name}".source =
+ pkgs.writeShellScript name ''
+ export PATH="${pkgs.notmuch}/bin''${PATH:+:}$PATH"
+ export NOTMUCH_CONFIG="${config.xdg.configHome}/notmuch/notmuchrc"
+ export NMBGIT="${config.xdg.dataHome}/notmuch/nmbug"
+
+ ${cmds}
+ '';
+ };
+ in optionalAttrs (cfg.hooks.preNew != "") (hook "pre-new" cfg.hooks.preNew)
+ // optionalAttrs (cfg.hooks.postNew != "")
+ (hook "post-new" cfg.hooks.postNew)
+ // optionalAttrs (cfg.hooks.postInsert != "")
+ (hook "post-insert" cfg.hooks.postInsert);
};
}
diff --git a/modules/programs/obs-studio.nix b/modules/programs/obs-studio.nix
index f0dfecb63cc..6df5978384c 100644
--- a/modules/programs/obs-studio.nix
+++ b/modules/programs/obs-studio.nix
@@ -11,23 +11,18 @@ let
let
pluginDirs = map (pkg: "${pkg}/share/obs/obs-plugins") packages;
plugins = concatMapStringsSep " " (p: "${p}/*") pluginDirs;
- in
- pkgs.runCommand "obs-studio-plugins"
- {
- preferLocalBuild = true;
- allowSubstitutes = false;
- }
- ''
- mkdir $out
- [[ '${plugins}' ]] || exit 0
- for plugin in ${plugins}; do
- ln -s "$plugin" $out/
- done
- '';
-
-in
-
-{
+ in pkgs.runCommand "obs-studio-plugins" {
+ preferLocalBuild = true;
+ allowSubstitutes = false;
+ } ''
+ mkdir $out
+ [[ '${plugins}' ]] || exit 0
+ for plugin in ${plugins}; do
+ ln -s "$plugin" $out/
+ done
+ '';
+
+in {
meta.maintainers = [ maintainers.adisbladis ];
options = {
@@ -35,7 +30,7 @@ in
enable = mkEnableOption "obs-studio";
plugins = mkOption {
- default = [];
+ default = [ ];
example = literalExample "[ pkgs.obs-linuxbrowser ]";
description = "Optional OBS plugins.";
type = types.listOf types.package;
@@ -46,8 +41,7 @@ in
config = mkIf cfg.enable {
home.packages = [ package ];
- xdg.configFile."obs-studio/plugins" = mkIf (cfg.plugins != []) {
- source = mkPluginEnv cfg.plugins;
- };
+ xdg.configFile."obs-studio/plugins" =
+ mkIf (cfg.plugins != [ ]) { source = mkPluginEnv cfg.plugins; };
};
}
diff --git a/modules/programs/offlineimap-accounts.nix b/modules/programs/offlineimap-accounts.nix
index 015a5974ab3..afc7a019972 100644
--- a/modules/programs/offlineimap-accounts.nix
+++ b/modules/programs/offlineimap-accounts.nix
@@ -6,18 +6,14 @@ let
extraConfigType = with types; attrsOf (either (either str int) bool);
-in
-
-{
+in {
options.offlineimap = {
enable = mkEnableOption "OfflineIMAP";
extraConfig.account = mkOption {
type = extraConfigType;
- default = {};
- example = {
- autorefresh = 20;
- };
+ default = { };
+ example = { autorefresh = 20; };
description = ''
Extra configuration options to add to the account section.
'';
@@ -25,10 +21,8 @@ in
extraConfig.local = mkOption {
type = extraConfigType;
- default = {};
- example = {
- sync_deletes = true;
- };
+ default = { };
+ example = { sync_deletes = true; };
description = ''
Extra configuration options to add to the local account
section.
@@ -37,7 +31,7 @@ in
extraConfig.remote = mkOption {
type = extraConfigType;
- default = {};
+ default = { };
example = {
maxconnections = 2;
expunge = false;
diff --git a/modules/programs/offlineimap.nix b/modules/programs/offlineimap.nix
index 82143b630ad..4ce12ec0a61 100644
--- a/modules/programs/offlineimap.nix
+++ b/modules/programs/offlineimap.nix
@@ -12,11 +12,11 @@ let
toIni = generators.toINI {
mkKeyValue = key: value:
let
- value' =
- if isBool value then (if value then "yes" else "no")
- else toString value;
- in
- "${key} = ${value'}";
+ value' = if isBool value then
+ (if value then "yes" else "no")
+ else
+ toString value;
+ in "${key} = ${value'}";
};
# Generates a script to fetch only a specific account.
@@ -29,90 +29,65 @@ let
# Something like
#
# $ email <account name> <program name> <program args>
- genOfflineImapScript = account: with account;
+ genOfflineImapScript = account:
+ with account;
pkgs.writeShellScriptBin "offlineimap-${name}" ''
exec ${pkgs.offlineimap}/bin/offlineimap -a${account.name} "$@"
'';
- accountStr = account: with account;
+ accountStr = account:
+ with account;
let
postSyncHook = optionalAttrs (offlineimap.postSyncHookCommand != "") {
- postsynchook =
- pkgs.writeShellScriptBin
- "postsynchook"
- offlineimap.postSyncHookCommand
- + "/bin/postsynchook";
+ postsynchook = pkgs.writeShellScriptBin "postsynchook"
+ offlineimap.postSyncHookCommand + "/bin/postsynchook";
};
localType =
- if account.flavor == "gmail.com"
- then "GmailMaildir"
- else "Maildir";
+ if account.flavor == "gmail.com" then "GmailMaildir" else "Maildir";
- remoteType =
- if account.flavor == "gmail.com"
- then "Gmail"
- else "IMAP";
+ remoteType = if account.flavor == "gmail.com" then "Gmail" else "IMAP";
- remoteHost = optionalAttrs (imap.host != null) {
- remotehost = imap.host;
- };
+ remoteHost =
+ optionalAttrs (imap.host != null) { remotehost = imap.host; };
- remotePort = optionalAttrs ((imap.port or null) != null) {
- remoteport = imap.port;
- };
+ remotePort =
+ optionalAttrs ((imap.port or null) != null) { remoteport = imap.port; };
- ssl =
- if imap.tls.enable
- then
- {
- ssl = true;
- sslcacertfile = imap.tls.certificatesFile;
- starttls = imap.tls.useStartTls;
- }
- else
- {
- ssl = false;
- };
+ ssl = if imap.tls.enable then {
+ ssl = true;
+ sslcacertfile = imap.tls.certificatesFile;
+ starttls = imap.tls.useStartTls;
+ } else {
+ ssl = false;
+ };
remotePassEval =
- let
- arglist = concatMapStringsSep "," (x: "'${x}'") passwordCommand;
- in
- optionalAttrs (passwordCommand != null) {
- remotepasseval = ''get_pass("${name}", [${arglist}])'';
- };
- in
- toIni {
- "Account ${name}" = {
- localrepository = "${name}-local";
- remoterepository = "${name}-remote";
- }
- // postSyncHook
- // offlineimap.extraConfig.account;
-
- "Repository ${name}-local" = {
- type = localType;
- localfolders = maildir.absPath;
- }
- // offlineimap.extraConfig.local;
-
- "Repository ${name}-remote" = {
- type = remoteType;
- remoteuser = userName;
- }
- // remoteHost
- // remotePort
- // remotePassEval
- // ssl
+ let arglist = concatMapStringsSep "," (x: "'${x}'") passwordCommand;
+ in optionalAttrs (passwordCommand != null) {
+ remotepasseval = ''get_pass("${name}", [${arglist}])'';
+ };
+ in toIni {
+ "Account ${name}" = {
+ localrepository = "${name}-local";
+ remoterepository = "${name}-remote";
+ } // postSyncHook // offlineimap.extraConfig.account;
+
+ "Repository ${name}-local" = {
+ type = localType;
+ localfolders = maildir.absPath;
+ } // offlineimap.extraConfig.local;
+
+ "Repository ${name}-remote" = {
+ type = remoteType;
+ remoteuser = userName;
+ } // remoteHost // remotePort // remotePassEval // ssl
// offlineimap.extraConfig.remote;
- };
+ };
extraConfigType = with types; attrsOf (either (either str int) bool);
-in
-
-{
+in {
options = {
programs.offlineimap = {
enable = mkEnableOption "OfflineIMAP";
@@ -133,7 +108,7 @@ in
extraConfig.general = mkOption {
type = extraConfigType;
- default = {};
+ default = { };
example = {
maxage = 30;
ui = "blinkenlights";
@@ -146,10 +121,8 @@ in
extraConfig.default = mkOption {
type = extraConfigType;
- default = {};
- example = {
- gmailtrashfolder = "[Gmail]/Papierkorb";
- };
+ default = { };
+ example = { gmailtrashfolder = "[Gmail]/Papierkorb"; };
description = ''
Extra configuration options added to the
<option>DEFAULT</option> section.
@@ -158,7 +131,7 @@ in
extraConfig.mbnames = mkOption {
type = extraConfigType;
- default = {};
+ default = { };
example = literalExample ''
{
filename = "~/.config/mutt/mailboxes";
@@ -181,27 +154,20 @@ in
xdg.configFile."offlineimap/get_settings.py".text = cfg.pythonFile;
- xdg.configFile."offlineimap/config".text =
- ''
- # Generated by Home Manager.
- # See https://github.com/OfflineIMAP/offlineimap/blob/master/offlineimap.conf
- # for an exhaustive list of options.
- ''
- + toIni ({
- general = {
- accounts = concatMapStringsSep "," (a: a.name) accounts;
- pythonfile = "${config.xdg.configHome}/offlineimap/get_settings.py";
- metadata = "${config.xdg.dataHome}/offlineimap";
- }
- // cfg.extraConfig.general;
- }
- // optionalAttrs (cfg.extraConfig.mbnames != {}) {
- mbnames = { enabled = true; } // cfg.extraConfig.mbnames;
- }
- // optionalAttrs (cfg.extraConfig.default != {}) {
- DEFAULT = cfg.extraConfig.default;
- })
- + "\n"
- + concatStringsSep "\n" (map accountStr accounts);
+ xdg.configFile."offlineimap/config".text = ''
+ # Generated by Home Manager.
+ # See https://github.com/OfflineIMAP/offlineimap/blob/master/offlineimap.conf
+ # for an exhaustive list of options.
+ '' + toIni ({
+ general = {
+ accounts = concatMapStringsSep "," (a: a.name) accounts;
+ pythonfile = "${config.xdg.configHome}/offlineimap/get_settings.py";
+ metadata = "${config.xdg.dataHome}/offlineimap";
+ } // cfg.extraConfig.general;
+ } // optionalAttrs (cfg.extraConfig.mbnames != { }) {
+ mbnames = { enabled = true; } // cfg.extraConfig.mbnames;
+ } // optionalAttrs (cfg.extraConfig.default != { }) {
+ DEFAULT = cfg.extraConfig.default;
+ }) + "\n" + concatStringsSep "\n" (map accountStr accounts);
};
}
diff --git a/modules/programs/opam.nix b/modules/programs/opam.nix
index 4de2e82da55..a61ff7878df 100644
--- a/modules/programs/opam.nix
+++ b/modules/programs/opam.nix
@@ -6,9 +6,7 @@ let
cfg = config.programs.opam;
-in
-
-{
+in {
meta.maintainers = [ maintainers.marsam ];
options.programs.opam = {
diff --git a/modules/programs/password-store.nix b/modules/programs/password-store.nix
index a15f002c27c..db31146a1ba 100644
--- a/modules/programs/password-store.nix
+++ b/modules/programs/password-store.nix
@@ -6,9 +6,7 @@ let
cfg = config.programs.password-store;
-in
-
-{
+in {
meta.maintainers = with maintainers; [ pacien ];
options.programs.password-store = {
diff --git a/modules/programs/pazi.nix b/modules/programs/pazi.nix
index decc0d9dba6..e1a08eb615a 100644
--- a/modules/programs/pazi.nix
+++ b/modules/programs/pazi.nix
@@ -6,9 +6,7 @@ let
cfg = config.programs.pazi;
-in
-
-{
+in {
meta.maintainers = [ maintainers.marsam ];
options.programs.pazi = {
diff --git a/modules/programs/pidgin.nix b/modules/programs/pidgin.nix
index 8dcb2122172..a375fd1b2bd 100644
--- a/modules/programs/pidgin.nix
+++ b/modules/programs/pidgin.nix
@@ -6,9 +6,7 @@ let
cfg = config.programs.pidgin;
-in
-
-{
+in {
meta.maintainers = [ maintainers.rycee ];
options = {
@@ -23,7 +21,7 @@ in
};
plugins = mkOption {
- default = [];
+ default = [ ];
example = literalExample "[ pkgs.pidgin-otr pkgs.pidgin-osd ]";
description = "Plugins that should be available to Pidgin.";
};
diff --git a/modules/programs/readline.nix b/modules/programs/readline.nix
index 35cbab5f5fa..a7ff5f59460 100644
--- a/modules/programs/readline.nix
+++ b/modules/programs/readline.nix
@@ -9,32 +9,34 @@ let
mkSetVariableStr = n: v:
let
mkValueStr = v:
- if v == true then "on"
- else if v == false then "off"
- else if isInt v then toString v
- else if isString v then v
- else abort ("values ${toPretty v} is of unsupported type");
- in
- "set ${n} ${mkValueStr v}";
+ if v == true then
+ "on"
+ else if v == false then
+ "off"
+ else if isInt v then
+ toString v
+ else if isString v then
+ v
+ else
+ abort ("values ${toPretty v} is of unsupported type");
+ in "set ${n} ${mkValueStr v}";
- mkBindingStr = k: v: "\"${k}\": ${v}";
+ mkBindingStr = k: v: ''"${k}": ${v}'';
-in
-
-{
+in {
options.programs.readline = {
enable = mkEnableOption "readline";
bindings = mkOption {
- default = {};
+ default = { };
type = types.attrsOf types.str;
- example = { "\C-h" = "backward-kill-word"; };
+ example = { "\\C-h" = "backward-kill-word"; };
description = "Readline bindings.";
};
variables = mkOption {
type = with types; attrsOf (either str (either int bool));
- default = {};
+ default = { };
example = { expand-tilde = true; };
description = ''
Readline customization variable assignments.
@@ -58,19 +60,16 @@ in
};
config = mkIf cfg.enable {
- home.file.".inputrc".text =
- let
- configStr = concatStringsSep "\n" (
- optional cfg.includeSystemConfig "$include /etc/inputrc"
+ home.file.".inputrc".text = let
+ configStr = concatStringsSep "\n"
+ (optional cfg.includeSystemConfig "$include /etc/inputrc"
++ mapAttrsToList mkSetVariableStr cfg.variables
- ++ mapAttrsToList mkBindingStr cfg.bindings
- );
- in
- ''
- # Generated by Home Manager.
+ ++ mapAttrsToList mkBindingStr cfg.bindings);
+ in ''
+ # Generated by Home Manager.
- ${configStr}
- ${cfg.extraConfig}
- '';
+ ${configStr}
+ ${cfg.extraConfig}
+ '';
};
}
diff --git a/modules/programs/rofi.nix b/modules/programs/rofi.nix
index e64e5d4782e..f344e88e2ff 100644
--- a/modules/programs/rofi.nix
+++ b/modules/programs/rofi.nix
@@ -7,10 +7,11 @@ let
cfg = config.programs.rofi;
- colorOption = description: mkOption {
- type = types.str;
- description = description;
- };
+ colorOption = description:
+ mkOption {
+ type = types.str;
+ description = description;
+ };
rowColorSubmodule = types.submodule {
options = {
@@ -71,72 +72,64 @@ let
};
valueToString = value:
- if isBool value
- then (if value then "true" else "else")
- else toString value;
+ if isBool value then (if value then "true" else "else") else toString value;
- windowColorsToString = window: concatStringsSep ", " (with window; [
- background
- border
- separator
- ]);
+ windowColorsToString = window:
+ concatStringsSep ", " (with window; [ background border separator ]);
rowsColorsToString = rows: ''
- ${optionalString
- (rows.normal != null)
- (setOption "color-normal" (rowColorsToString rows.normal))}
- ${optionalString
- (rows.active != null)
- (setOption "color-active" (rowColorsToString rows.active))}
- ${optionalString
- (rows.urgent != null)
- (setOption "color-urgent" (rowColorsToString rows.urgent))}
+ ${optionalString (rows.normal != null)
+ (setOption "color-normal" (rowColorsToString rows.normal))}
+ ${optionalString (rows.active != null)
+ (setOption "color-active" (rowColorsToString rows.active))}
+ ${optionalString (rows.urgent != null)
+ (setOption "color-urgent" (rowColorsToString rows.urgent))}
'';
- rowColorsToString = row: concatStringsSep ", " (with row; [
- background
- foreground
- backgroundAlt
- highlight.background
- highlight.foreground
- ]);
+ rowColorsToString = row:
+ concatStringsSep ", " (with row; [
+ background
+ foreground
+ backgroundAlt
+ highlight.background
+ highlight.foreground
+ ]);
setOption = name: value:
optionalString (value != null) "rofi.${name}: ${valueToString value}";
- setColorScheme = colors: optionalString (colors != null) ''
- ${optionalString
- (colors.window != null)
- setOption "color-window" (windowColorsToString colors.window)}
- ${optionalString
- (colors.rows != null)
- (rowsColorsToString colors.rows)}
- '';
+ setColorScheme = colors:
+ optionalString (colors != null) ''
+ ${optionalString (colors.window != null) setOption "color-window"
+ (windowColorsToString colors.window)}
+ ${optionalString (colors.rows != null) (rowsColorsToString colors.rows)}
+ '';
locationsMap = {
- center = 0;
- top-left = 1;
- top = 2;
- top-right = 3;
- right = 4;
+ center = 0;
+ top-left = 1;
+ top = 2;
+ top-right = 3;
+ right = 4;
bottom-right = 5;
- bottom = 6;
- bottom-left = 7;
- left = 8;
+ bottom = 6;
+ bottom-left = 7;
+ left = 8;
};
- themeName =
- if (cfg.theme == null) then null
- else if (lib.isString cfg.theme) then cfg.theme
- else lib.removeSuffix ".rasi" (baseNameOf cfg.theme);
+ themeName = if (cfg.theme == null) then
+ null
+ else if (lib.isString cfg.theme) then
+ cfg.theme
+ else
+ lib.removeSuffix ".rasi" (baseNameOf cfg.theme);
themePath = if (lib.isString cfg.theme) then null else cfg.theme;
-in
-
-{
+in {
options.programs.rofi = {
- enable = mkEnableOption "Rofi: A window switcher, application launcher and dmenu replacement";
+ enable = mkEnableOption
+ "Rofi: A window switcher, application launcher and dmenu replacement";
width = mkOption {
default = null;
@@ -295,14 +288,12 @@ in
};
config = mkIf cfg.enable {
- assertions = [
- {
- assertion = cfg.theme == null || cfg.colors == null;
- message = ''
- Cannot use the rofi options 'theme' and 'colors' simultaneously.
- '';
- }
- ];
+ assertions = [{
+ assertion = cfg.theme == null || cfg.colors == null;
+ message = ''
+ Cannot use the rofi options 'theme' and 'colors' simultaneously.
+ '';
+ }];
home.packages = [ pkgs.rofi ];
@@ -314,11 +305,8 @@ in
${setOption "eh" cfg.rowHeight}
${setOption "padding" cfg.padding}
${setOption "separator-style" cfg.separator}
- ${setOption "hide-scrollbar" (
- if (cfg.scrollbar != null)
- then (! cfg.scrollbar)
- else cfg.scrollbar
- )}
+ ${setOption "hide-scrollbar"
+ (if (cfg.scrollbar != null) then (!cfg.scrollbar) else cfg.scrollbar)}
${setOption "terminal" cfg.terminal}
${setOption "cycle" cfg.cycle}
${setOption "fullscreen" cfg.fullscreen}
@@ -333,7 +321,7 @@ in
'';
xdg.dataFile = mkIf (themePath != null) {
- "rofi/themes/${themeName}.rasi".source = themePath;
+ "rofi/themes/${themeName}.rasi".source = themePath;
};
};
}
diff --git a/modules/programs/rtorrent.nix b/modules/programs/rtorrent.nix
index 6300969a519..7beeb2e4221 100644
--- a/modules/programs/rtorrent.nix
+++ b/modules/programs/rtorrent.nix
@@ -6,9 +6,7 @@ let
cfg = config.programs.rtorrent;
-in
-
-{
+in {
meta.maintainers = [ maintainers.marsam ];
options.programs.rtorrent = {
@@ -30,8 +28,7 @@ in
config = mkIf cfg.enable {
home.packages = [ pkgs.rtorrent ];
- xdg.configFile."rtorrent/rtorrent.rc" = mkIf (cfg.settings != "") {
- text = cfg.settings;
- };
+ xdg.configFile."rtorrent/rtorrent.rc" =
+ mkIf (cfg.settings != "") { text = cfg.settings; };
};
}
diff --git a/modules/programs/skim.nix b/modules/programs/skim.nix
index de1bff30fce..c90fe1b1a35 100644
--- a/modules/programs/skim.nix
+++ b/modules/programs/skim.nix
@@ -6,9 +6,7 @@ let
cfg = config.programs.skim;
-in
-
-{
+in {
options.programs.skim = {
enable = mkEnableOption "skim - a command-line fuzzy finder";
@@ -24,7 +22,7 @@ in
defaultOptions = mkOption {
type = types.listOf types.str;
- default = [];
+ default = [ ];
example = [ "--height 40%" "--prompt ⟫" ];
description = ''
Extra command line options given to skim by default.
@@ -43,7 +41,7 @@ in
fileWidgetOptions = mkOption {
type = types.listOf types.str;
- default = [];
+ default = [ ];
example = [ "--preview 'head {}'" ];
description = ''
Command line options for the CTRL-T keybinding.
@@ -53,7 +51,7 @@ in
changeDirWidgetCommand = mkOption {
type = types.nullOr types.str;
default = null;
- example = "fd --type d" ;
+ example = "fd --type d";
description = ''
The command that gets executed as the source for skim for the
ALT-C keybinding.
@@ -62,7 +60,7 @@ in
changeDirWidgetOptions = mkOption {
type = types.listOf types.str;
- default = [];
+ default = [ ];
example = [ "--preview 'tree -C {} | head -200'" ];
description = ''
Command line options for the ALT-C keybinding.
@@ -71,7 +69,7 @@ in
historyWidgetOptions = mkOption {
type = types.listOf types.str;
- default = [];
+ default = [ ];
example = [ "--tac" "--exact" ];
description = ''
Command line options for the CTRL-R keybinding.
@@ -98,18 +96,16 @@ in
config = mkIf cfg.enable {
home.packages = [ pkgs.skim ];
- home.sessionVariables =
- mapAttrs (n: v: toString v) (
- filterAttrs (n: v: v != [] && v != null) {
- SKIM_ALT_C_COMMAND = cfg.changeDirWidgetCommand;
- SKIM_ALT_C_OPTS = cfg.changeDirWidgetOptions;
- SKIM_CTRL_R_OPTS = cfg.historyWidgetOptions;
- SKIM_CTRL_T_COMMAND = cfg.fileWidgetCommand;
- SKIM_CTRL_T_OPTS = cfg.fileWidgetOptions;
- SKIM_DEFAULT_COMMAND = cfg.defaultCommand;
- SKIM_DEFAULT_OPTIONS = cfg.defaultOptions;
- }
- );
+ home.sessionVariables = mapAttrs (n: v: toString v)
+ (filterAttrs (n: v: v != [ ] && v != null) {
+ SKIM_ALT_C_COMMAND = cfg.changeDirWidgetCommand;
+ SKIM_ALT_C_OPTS = cfg.changeDirWidgetOptions;
+ SKIM_CTRL_R_OPTS = cfg.historyWidgetOptions;
+ SKIM_CTRL_T_COMMAND = cfg.fileWidgetCommand;
+ SKIM_CTRL_T_OPTS = cfg.fileWidgetOptions;
+ SKIM_DEFAULT_COMMAND = cfg.defaultCommand;
+ SKIM_DEFAULT_OPTIONS = cfg.defaultOptions;
+ });
programs.bash.initExtra = mkIf cfg.enableBashIntegration ''
if [[ :$SHELLOPTS: =~ :(vi|emacs): ]]; then
diff --git a/modules/programs/starship.nix b/modules/programs/starship.nix
index db7cf9262f7..7c7819865f7 100644
--- a/modules/programs/starship.nix
+++ b/modules/programs/starship.nix
@@ -7,20 +7,17 @@ let
cfg = config.programs.starship;
configFile = config:
- pkgs.runCommand "config.toml"
- {
- buildInputs = [ pkgs.remarshal ];
- preferLocalBuild = true;
- allowSubstitutes = false;
- }
- ''
- remarshal -if json -of toml \
- < ${pkgs.writeText "config.json" (builtins.toJSON config)} \
- > $out
- '';
-in
+ pkgs.runCommand "config.toml" {
+ buildInputs = [ pkgs.remarshal ];
+ preferLocalBuild = true;
+ allowSubstitutes = false;
+ } ''
+ remarshal -if json -of toml \
+ < ${pkgs.writeText "config.json" (builtins.toJSON config)} \
+ > $out
+ '';
-{
+in {
meta.maintainers = [ maintainers.marsam ];
options.programs.starship = {
@@ -35,7 +32,7 @@ in
settings = mkOption {
type = types.attrs;
- default = {};
+ default = { };
description = ''
Configuration written to
<filename>~/.config/starship.toml</filename>.
@@ -73,9 +70,8 @@ in
config = mkIf cfg.enable {
home.packages = [ cfg.package ];
- xdg.configFile."starship.toml" = mkIf (cfg.settings != {}) {
- source = configFile cfg.settings;
- };
+ xdg.configFile."starship.toml" =
+ mkIf (cfg.settings != { }) { source = configFile cfg.settings; };
programs.bash.initExtra = mkIf cfg.enableBashIntegration ''
if [[ -z $INSIDE_EMACS ]]; then
diff --git a/modules/programs/taskwarrior.nix b/modules/programs/taskwarrior.nix
index eeacc77da29..cf95511f8ef 100644
--- a/modules/programs/taskwarrior.nix
+++ b/modules/programs/taskwarrior.nix
@@ -9,38 +9,39 @@ let
themePath = theme: "${pkgs.taskwarrior}/share/doc/task/rc/${theme}.theme";
includeTheme = location:
- if location == null then ""
- else if isString location then "include ${themePath location}"
- else "include ${location}";
+ if location == null then
+ ""
+ else if isString location then
+ "include ${themePath location}"
+ else
+ "include ${location}";
formatValue = value:
- if isBool value then if value then "true" else "false"
- else if isList value then concatMapStringsSep "," formatValue value
- else toString value;
+ if isBool value then
+ if value then "true" else "false"
+ else if isList value then
+ concatMapStringsSep "," formatValue value
+ else
+ toString value;
- formatLine = key: value:
- "${key}=${formatValue value}";
+ formatLine = key: value: "${key}=${formatValue value}";
formatSet = key: values:
(concatStringsSep "\n"
- (mapAttrsToList
- (subKey: subValue: formatPair "${key}.${subKey}" subValue)
+ (mapAttrsToList (subKey: subValue: formatPair "${key}.${subKey}" subValue)
values));
formatPair = key: value:
- if isAttrs value then formatSet key value
- else formatLine key value;
+ if isAttrs value then formatSet key value else formatLine key value;
-in
-
-{
+in {
options = {
programs.taskwarrior = {
enable = mkEnableOption "Task Warrior";
config = mkOption {
type = types.attrs;
- default = {};
+ default = { };
example = literalExample ''
{
confirmation = false;
@@ -103,8 +104,7 @@ in
data.location=${cfg.dataLocation}
${includeTheme cfg.colorTheme}
- ${concatStringsSep "\n" (
- mapAttrsToList formatPair cfg.config)}
+ ${concatStringsSep "\n" (mapAttrsToList formatPair cfg.config)}
${cfg.extraConfig}
'';
diff --git a/modules/programs/termite.nix b/modules/programs/termite.nix
index 4d66fc42dec..8a05db03558 100644
--- a/modules/programs/termite.nix
+++ b/modules/programs/termite.nix
@@ -13,9 +13,7 @@ let
fi
'';
-in
-
-{
+in {
options = {
programs.termite = {
enable = mkEnableOption "Termite VTE-based terminal";
@@ -61,7 +59,9 @@ in
mouseAutohide = mkOption {
default = null;
type = types.nullOr types.bool;
- description = "Automatically hide the mouse pointer when you start typing.";
+ description = ''
+ Automatically hide the mouse pointer when you start typing.
+ '';
};
scrollOnOutput = mkOption {
@@ -73,7 +73,9 @@ in
scrollOnKeystroke = mkOption {
default = null;
type = types.nullOr types.bool;
- description = "Scroll to the bottom automatically when a key is pressed.";
+ description = ''
+ Scroll to the bottom automatically when a key is pressed.
+ '';
};
searchWrap = mkOption {
@@ -106,14 +108,16 @@ in
default = null;
example = "terminal";
type = types.nullOr types.str;
- description = "The name of the icon to be used for the terminal process.";
+ description =
+ "The name of the icon to be used for the terminal process.";
};
scrollbackLines = mkOption {
default = null;
example = 10000;
type = types.nullOr types.int;
- description = "Set the number of lines to limit the terminal's scrollback.";
+ description =
+ "Set the number of lines to limit the terminal's scrollback.";
};
browser = mkOption {
@@ -149,7 +153,8 @@ in
filterUnmatchedUrls = mkOption {
default = null;
type = types.nullOr types.bool;
- description = "Whether to hide url hints not matching input in url hints mode.";
+ description =
+ "Whether to hide url hints not matching input in url hints mode.";
};
modifyOtherKeys = mkOption {
@@ -290,7 +295,8 @@ in
default = "";
example = "fullscreen = true";
type = types.lines;
- description = "Extra options that should be added to [options] section.";
+ description =
+ "Extra options that should be added to [options] section.";
};
colorsExtra = mkOption {
@@ -301,78 +307,81 @@ in
color2 = #60b48a
'';
type = types.lines;
- description = "Extra colors options that should be added to [colors] section.";
+ description =
+ "Extra colors options that should be added to [colors] section.";
};
hintsExtra = mkOption {
default = "";
example = "border = #3f3f3f";
type = types.lines;
- description = "Extra hints options that should be added to [hints] section.";
+ description =
+ "Extra hints options that should be added to [hints] section.";
};
};
};
- config = (
- let
- boolToString = v: if v then "true" else "false";
- optionalBoolean = name: val: lib.optionalString (val != null) "${name} = ${boolToString val}";
- optionalInteger = name: val: lib.optionalString (val != null) "${name} = ${toString val}";
- optionalString = name: val: lib.optionalString (val != null) "${name} = ${val}";
- in mkIf cfg.enable {
- home.packages = [ pkgs.termite ];
- xdg.configFile."termite/config".text = ''
- [options]
- ${optionalBoolean "allow_bold" cfg.allowBold}
- ${optionalBoolean "audible_bell" cfg.audibleBell}
- ${optionalString "browser" cfg.browser}
- ${optionalBoolean "clickable_url" cfg.clickableUrl}
- ${optionalString "cursor_blink" cfg.cursorBlink}
- ${optionalString "cursor_shape" cfg.cursorShape}
- ${optionalBoolean "dynamic_title" cfg.dynamicTitle}
- ${optionalBoolean "filter_unmatched_urls" cfg.filterUnmatchedUrls}
- ${optionalString "font" cfg.font}
- ${optionalBoolean "fullscreen" cfg.fullscreen}
- ${optionalString "geometry" cfg.geometry}
- ${optionalString "icon_name" cfg.iconName}
- ${optionalBoolean "modify_other_keys" cfg.modifyOtherKeys}
- ${optionalBoolean "mouse_autohide" cfg.mouseAutohide}
- ${optionalBoolean "scroll_on_keystroke" cfg.scrollOnKeystroke}
- ${optionalBoolean "scroll_on_output" cfg.scrollOnOutput}
- ${optionalInteger "scrollback_lines" cfg.scrollbackLines}
- ${optionalString "scrollbar" cfg.scrollbar}
- ${optionalBoolean "search_wrap" cfg.searchWrap}
- ${optionalBoolean "size_hints" cfg.sizeHints}
- ${optionalBoolean "urgent_on_bell" cfg.urgentOnBell}
-
- ${cfg.optionsExtra}
-
- [colors]
- ${optionalString "background" cfg.backgroundColor}
- ${optionalString "cursor" cfg.cursorColor}
- ${optionalString "cursor_foreground" cfg.cursorForegroundColor}
- ${optionalString "foreground" cfg.foregroundColor}
- ${optionalString "foregroundBold" cfg.foregroundBoldColor}
- ${optionalString "highlight" cfg.highlightColor}
-
- ${cfg.colorsExtra}
-
- [hints]
- ${optionalString "active_background" cfg.hintsActiveBackgroundColor}
- ${optionalString "active_foreground" cfg.hintsActiveForegroundColor}
- ${optionalString "background" cfg.hintsBackgroundColor}
- ${optionalString "border" cfg.hintsBorderColor}
- ${optionalInteger "border_width" cfg.hintsBorderWidth}
- ${optionalString "font" cfg.hintsFont}
- ${optionalString "foreground" cfg.hintsForegroundColor}
- ${optionalInteger "padding" cfg.hintsPadding}
- ${optionalInteger "roundness" cfg.hintsRoundness}
-
- ${cfg.hintsExtra}
- '';
-
- programs.bash.initExtra = vteInitStr;
- programs.zsh.initExtra = vteInitStr;
- }
- );
+ config = (let
+ boolToString = v: if v then "true" else "false";
+ optionalBoolean = name: val:
+ lib.optionalString (val != null) "${name} = ${boolToString val}";
+ optionalInteger = name: val:
+ lib.optionalString (val != null) "${name} = ${toString val}";
+ optionalString = name: val:
+ lib.optionalString (val != null) "${name} = ${val}";
+ in mkIf cfg.enable {
+ home.packages = [ pkgs.termite ];
+ xdg.configFile."termite/config".text = ''
+ [options]
+ ${optionalBoolean "allow_bold" cfg.allowBold}
+ ${optionalBoolean "audible_bell" cfg.audibleBell}
+ ${optionalString "browser" cfg.browser}
+ ${optionalBoolean "clickable_url" cfg.clickableUrl}
+ ${optionalString "cursor_blink" cfg.cursorBlink}
+ ${optionalString "cursor_shape" cfg.cursorShape}
+ ${optionalBoolean "dynamic_title" cfg.dynamicTitle}
+ ${optionalBoolean "filter_unmatched_urls" cfg.filterUnmatchedUrls}
+ ${optionalString "font" cfg.font}
+ ${optionalBoolean "fullscreen" cfg.fullscreen}
+ ${optionalString "geometry" cfg.geometry}
+ ${optionalString "icon_name" cfg.iconName}
+ ${optionalBoolean "modify_other_keys" cfg.modifyOtherKeys}
+ ${optionalBoolean "mouse_autohide" cfg.mouseAutohide}
+ ${optionalBoolean "scroll_on_keystroke" cfg.scrollOnKeystroke}
+ ${optionalBoolean "scroll_on_output" cfg.scrollOnOutput}
+ ${optionalInteger "scrollback_lines" cfg.scrollbackLines}
+ ${optionalString "scrollbar" cfg.scrollbar}
+ ${optionalBoolean "search_wrap" cfg.searchWrap}
+ ${optionalBoolean "size_hints" cfg.sizeHints}
+ ${optionalBoolean "urgent_on_bell" cfg.urgentOnBell}
+
+ ${cfg.optionsExtra}
+
+ [colors]
+ ${optionalString "background" cfg.backgroundColor}
+ ${optionalString "cursor" cfg.cursorColor}
+ ${optionalString "cursor_foreground" cfg.cursorForegroundColor}
+ ${optionalString "foreground" cfg.foregroundColor}
+ ${optionalString "foregroundBold" cfg.foregroundBoldColor}
+ ${optionalString "highlight" cfg.highlightColor}
+
+ ${cfg.colorsExtra}
+
+ [hints]
+ ${optionalString "active_background" cfg.hintsActiveBackgroundColor}
+ ${optionalString "active_foreground" cfg.hintsActiveForegroundColor}
+ ${optionalString "background" cfg.hintsBackgroundColor}
+ ${optionalString "border" cfg.hintsBorderColor}
+ ${optionalInteger "border_width" cfg.hintsBorderWidth}
+ ${optionalString "font" cfg.hintsFont}
+ ${optionalString "foreground" cfg.hintsForegroundColor}
+ ${optionalInteger "padding" cfg.hintsPadding}
+ ${optionalInteger "roundness" cfg.hintsRoundness}
+
+ ${cfg.hintsExtra}
+ '';
+
+ programs.bash.initExtra = vteInitStr;
+ programs.zsh.initExtra = vteInitStr;
+ });
}
diff --git a/modules/programs/texlive.nix b/modules/programs/texlive.nix
index 0f8953e9f91..08a376d654a 100644
--- a/modules/programs/texlive.nix
+++ b/modules/programs/texlive.nix
@@ -8,9 +8,7 @@ let
texlivePkgs = cfg.extraPackages pkgs.texlive;
-in
-
-{
+in {
meta.maintainers = [ maintainers.rycee ];
options = {
@@ -35,13 +33,11 @@ in
};
config = mkIf cfg.enable {
- assertions = [
- {
- assertion = texlivePkgs != {};
- message = "Must provide at least one extra package in"
- + " 'programs.texlive.extraPackages'.";
- }
- ];
+ assertions = [{
+ assertion = texlivePkgs != { };
+ message = "Must provide at least one extra package in"
+ + " 'programs.texlive.extraPackages'.";
+ }];
home.packages = [ cfg.package ];
diff --git a/modules/programs/urxvt.nix b/modules/programs/urxvt.nix
index 6f4eb3ff7ba..e4c72bfe272 100644
--- a/modules/programs/urxvt.nix
+++ b/modules/programs/urxvt.nix
@@ -6,9 +6,7 @@ let
cfg = config.programs.urxvt;
-in
-
-{
+in {
options.programs.urxvt = {
enable = mkEnableOption "rxvt-unicode terminal emulator";
@@ -21,14 +19,14 @@ in
fonts = mkOption {
type = types.listOf types.str;
- default = [];
+ default = [ ];
description = "List of fonts to be used.";
example = [ "xft:Droid Sans Mono Nerd Font:size=9" ];
};
keybindings = mkOption {
type = types.attrsOf types.str;
- default = {};
+ default = { };
description = "Mapping of keybindings to actions";
example = literalExample ''
{
@@ -41,7 +39,8 @@ in
iso14755 = mkOption {
type = types.bool;
default = true;
- description = "ISO14755 support for viewing and entering unicode characters.";
+ description =
+ "ISO14755 support for viewing and entering unicode characters.";
};
scroll = {
@@ -75,11 +74,12 @@ in
floating = mkOption {
type = types.bool;
default = true;
- description = "Whether to display an rxvt scrollbar without a trough.";
+ description =
+ "Whether to display an rxvt scrollbar without a trough.";
};
};
};
- default = {};
+ default = { };
description = "Scrollbar settings.";
};
@@ -92,7 +92,8 @@ in
keepPosition = mkOption {
type = types.bool;
default = true;
- description = "Whether to keep a scroll position when TTY receives new lines.";
+ description =
+ "Whether to keep a scroll position when TTY receives new lines.";
};
scrollOnKeystroke = mkOption {
@@ -117,11 +118,12 @@ in
shading = mkOption {
type = types.ints.between 0 200;
default = 100;
- description = "Darken (0 .. 99) or lighten (101 .. 200) the transparent background.";
+ description =
+ "Darken (0 .. 99) or lighten (101 .. 200) the transparent background.";
};
extraConfig = mkOption {
- default = {};
+ default = { };
type = types.attrs;
description = "Additional configuration to add.";
example = { "shading" = 15; };
@@ -145,12 +147,10 @@ in
"URxvt.transparent" = cfg.transparent;
"URxvt.shading" = cfg.shading;
"URxvt.iso14755" = cfg.iso14755;
- } // flip mapAttrs' cfg.keybindings (kb: action:
- nameValuePair "URxvt.keysym.${kb}" action
- ) // optionalAttrs (cfg.fonts != []) {
- "URxvt.font" = concatStringsSep "," cfg.fonts;
- } // flip mapAttrs' cfg.extraConfig (k: v:
- nameValuePair "URxvt.${k}" v
- );
+ } // flip mapAttrs' cfg.keybindings
+ (kb: action: nameValuePair "URxvt.keysym.${kb}" action)
+ // optionalAttrs (cfg.fonts != [ ]) {
+ "URxvt.font" = concatStringsSep "," cfg.fonts;
+ } // flip mapAttrs' cfg.extraConfig (k: v: nameValuePair "URxvt.${k}" v);
};
}
diff --git a/modules/programs/vim.nix b/modules/programs/vim.nix
index a14a9562ac1..39826a9a5d6 100644
--- a/modules/programs/vim.nix
+++ b/modules/programs/vim.nix
@@ -31,43 +31,36 @@ let
};
vimSettingsType = types.submodule {
- options =
- let
- opt = name: type: mkOption {
+ options = let
+ opt = name: type:
+ mkOption {
type = types.nullOr type;
default = null;
visible = false;
};
- in
- mapAttrs opt knownSettings;
+ in mapAttrs opt knownSettings;
};
setExpr = name: value:
let
- v =
- if isBool value then (if value then "" else "no") + name
- else
- "${name}=${
- if isList value
- then concatStringsSep "," value
- else toString value
- }";
- in
- optionalString (value != null) ("set " + v);
-
- plugins =
- let
- vpkgs = pkgs.vimPlugins;
- getPkg = p:
- if isDerivation p
- then [ p ]
- else optional (isString p && hasAttr p vpkgs) vpkgs.${p};
- in
- concatMap getPkg cfg.plugins;
-
-in
-
-{
+ v = if isBool value then
+ (if value then "" else "no") + name
+ else
+ "${name}=${
+ if isList value then concatStringsSep "," value else toString value
+ }";
+ in optionalString (value != null) ("set " + v);
+
+ plugins = let
+ vpkgs = pkgs.vimPlugins;
+ getPkg = p:
+ if isDerivation p then
+ [ p ]
+ else
+ optional (isString p && hasAttr p vpkgs) vpkgs.${p};
+ in concatMap getPkg cfg.plugins;
+
+in {
options = {
programs.vim = {
enable = mkEnableOption "Vim";
@@ -75,7 +68,7 @@ in
plugins = mkOption {
type = with types; listOf (either str package);
default = defaultPlugins;
- example = literalExample ''[ pkgs.vimPlugins.YankRing ]'';
+ example = literalExample "[ pkgs.vimPlugins.YankRing ]";
description = ''
List of vim plugins to install. To get a list of supported plugins run:
<command>nix-env -f '&lt;nixpkgs&gt;' -qaP -A vimPlugins</command>.
@@ -88,7 +81,7 @@ in
settings = mkOption {
type = vimSettingsType;
- default = {};
+ default = { };
example = literalExample ''
{
expandtab = true;
@@ -102,14 +95,12 @@ in
options.
<informaltable frame="none"><tgroup cols="1"><tbody>
- ${concatStringsSep "\n" (
- mapAttrsToList (n: v: ''
- <row>
- <entry><varname>${n}</varname></entry>
- <entry>${v.description}</entry>
- </row>
- '') knownSettings
- )}
+ ${concatStringsSep "\n" (mapAttrsToList (n: v: ''
+ <row>
+ <entry><varname>${n}</varname></entry>
+ <entry>${v.description}</entry>
+ </row>
+ '') knownSettings)}
</tbody></tgroup></informaltable>
See the Vim documentation for detailed descriptions of these
@@ -136,56 +127,45 @@ in
};
};
- config = (
- let
- customRC = ''
- ${concatStringsSep "\n" (
- filter (v: v != "") (
- mapAttrsToList setExpr (
- builtins.intersectAttrs knownSettings cfg.settings)))}
+ config = (let
+ customRC = ''
+ ${concatStringsSep "\n" (filter (v: v != "") (mapAttrsToList setExpr
+ (builtins.intersectAttrs knownSettings cfg.settings)))}
- ${cfg.extraConfig}
- '';
+ ${cfg.extraConfig}
+ '';
- vim = pkgs.vim_configurable.customize {
- name = "vim";
- vimrcConfig = {
- inherit customRC;
+ vim = pkgs.vim_configurable.customize {
+ name = "vim";
+ vimrcConfig = {
+ inherit customRC;
- packages.home-manager.start = plugins;
- };
+ packages.home-manager.start = plugins;
};
- in
- mkIf cfg.enable {
- assertions =
- let
- packagesNotFound = filter (p: isString p && (!hasAttr p pkgs.vimPlugins)) cfg.plugins;
- in
- [
- {
- assertion = packagesNotFound == [];
- message = "Following VIM plugin not found in pkgs.vimPlugins: ${
- concatMapStringsSep ", " (p: ''"${p}"'') packagesNotFound
- }";
- }
- ];
-
- warnings =
- let
- stringPlugins = filter isString cfg.plugins;
- in
- optional (stringPlugins != []) ''
- Specifying VIM plugins using strings is deprecated, found ${
- concatMapStringsSep ", " (p: ''"${p}"'') stringPlugins
- } as strings.
- '';
-
- home.packages = [ cfg.package ];
-
- programs.vim = {
- package = vim;
- plugins = defaultPlugins;
- };
- }
- );
+ };
+ in mkIf cfg.enable {
+ assertions = let
+ packagesNotFound =
+ filter (p: isString p && (!hasAttr p pkgs.vimPlugins)) cfg.plugins;
+ in [{
+ assertion = packagesNotFound == [ ];
+ message = "Following VIM plugin not found in pkgs.vimPlugins: ${
+ concatMapStringsSep ", " (p: ''"${p}"'') packagesNotFound
+ }";
+ }];
+
+ warnings = let stringPlugins = filter isString cfg.plugins;
+ in optional (stringPlugins != [ ]) ''
+ Specifying VIM plugins using strings is deprecated, found ${
+ concatMapStringsSep ", " (p: ''"${p}"'') stringPlugins
+ } as strings.
+ '';
+
+ home.packages = [ cfg.package ];
+
+ programs.vim = {
+ package = vim;
+ plugins = defaultPlugins;
+ };
+ });
}
diff --git a/modules/programs/vscode/haskell.nix b/modules/programs/vscode/haskell.nix
index c8ea10d473e..ee84e707102 100644
--- a/modules/programs/vscode/haskell.nix
+++ b/modules/programs/vscode/haskell.nix
@@ -7,8 +7,8 @@ let
cfg = config.programs.vscode.haskell;
defaultHieNixExe = hie-nix.hies + "/bin/hie-wrapper";
- defaultHieNixExeText = literalExample
- "\"\${pkgs.hie-nix.hies}/bin/hie-wrapper\"";
+ defaultHieNixExeText =
+ literalExample ''"''${pkgs.hie-nix.hies}/bin/hie-wrapper"'';
hie-nix = pkgs.hie-nix or (abort ''
vscode.haskell: pkgs.hie-nix missing. Please add an overlay such as:
@@ -21,9 +21,7 @@ let
]
'';
-in
-
-{
+in {
options.programs.vscode.haskell = {
enable = mkEnableOption "Haskell integration for Visual Studio Code";
@@ -57,10 +55,8 @@ in
};
programs.vscode.extensions =
- [
- pkgs.vscode-extensions.justusadam.language-haskell
- ]
+ [ pkgs.vscode-extensions.justusadam.language-haskell ]
++ lib.optional cfg.hie.enable
- pkgs.vscode-extensions.alanz.vscode-hie-server;
+ pkgs.vscode-extensions.alanz.vscode-hie-server;
};
}
diff --git a/modules/programs/z-lua.nix b/modules/programs/z-lua.nix
index 245eff6a51e..d722ac6a2f0 100644
--- a/modules/programs/z-lua.nix
+++ b/modules/programs/z-lua.nix
@@ -7,16 +7,14 @@ let
cfg = config.programs.z-lua;
aliases = {
- zz = "z -c"; # restrict matches to subdirs of $PWD
- zi = "z -i"; # cd with interactive selection
- zf = "z -I"; # use fzf to select in multiple matches
- zb = "z -b"; # quickly cd to the parent directory
- zh = "z -I -t ."; # fzf
+ zz = "z -c"; # restrict matches to subdirs of $PWD
+ zi = "z -i"; # cd with interactive selection
+ zf = "z -I"; # use fzf to select in multiple matches
+ zb = "z -b"; # quickly cd to the parent directory
+ zh = "z -I -t ."; # fzf
};
-in
-
-{
+in {
meta.maintainers = [ maintainers.marsam ];
options.programs.z-lua = {
@@ -24,7 +22,7 @@ in
options = mkOption {
type = types.listOf types.str;
- default = [];
+ default = [ ];
example = [ "enhanced" "once" "fzf" ];
description = ''
List of options to pass to z.lua.
@@ -68,15 +66,21 @@ in
home.packages = [ pkgs.z-lua ];
programs.bash.initExtra = mkIf cfg.enableBashIntegration ''
- eval "$(${pkgs.z-lua}/bin/z --init bash ${concatStringsSep " " cfg.options})"
+ eval "$(${pkgs.z-lua}/bin/z --init bash ${
+ concatStringsSep " " cfg.options
+ })"
'';
programs.zsh.initExtra = mkIf cfg.enableZshIntegration ''
- eval "$(${pkgs.z-lua}/bin/z --init zsh ${concatStringsSep " " cfg.options})"
+ eval "$(${pkgs.z-lua}/bin/z --init zsh ${
+ concatStringsSep " " cfg.options
+ })"
'';
programs.fish.shellInit = mkIf cfg.enableFishIntegration ''
- source (${pkgs.z-lua}/bin/z --init fish ${concatStringsSep " " cfg.options} | psub)
+ source (${pkgs.z-lua}/bin/z --init fish ${
+ concatStringsSep " " cfg.options
+ } | psub)
'';
programs.bash.shellAliases = mkIf cfg.enableAliases aliases;
diff --git a/modules/programs/zathura.nix b/modules/programs/zathura.nix
index f01bd501c39..d9f3c1af1fd 100644
--- a/modules/programs/zathura.nix
+++ b/modules/programs/zathura.nix
@@ -1,4 +1,4 @@
-{ config, lib, pkgs, ...}:
+{ config, lib, pkgs, ... }:
with lib;
@@ -9,14 +9,10 @@ let
formatLine = n: v:
let
formatValue = v:
- if isBool v then (if v then "true" else "false")
- else toString v;
- in
- "set ${n}\t\"${formatValue v}\"";
+ if isBool v then (if v then "true" else "false") else toString v;
+ in ''set ${n} "${formatValue v}"'';
-in
-
-{
+in {
meta.maintainers = [ maintainers.rprospero ];
options.programs.zathura = {
@@ -25,7 +21,7 @@ in
focused on keyboard interaction'';
options = mkOption {
- default = {};
+ default = { };
type = with types; attrsOf (either str (either bool int));
description = ''
Add <option>:set</option> command options to zathura and make
@@ -36,7 +32,10 @@ in
</citerefentry>
for the full list of options.
'';
- example = { default-bg = "#000000"; default-fg = "#FFFFFF"; };
+ example = {
+ default-bg = "#000000";
+ default-fg = "#FFFFFF";
+ };
};
extraConfig = mkOption {
@@ -52,10 +51,8 @@ in
config = mkIf cfg.enable {
home.packages = [ pkgs.zathura ];
- xdg.configFile."zathura/zathurarc".text =
- concatStringsSep "\n" ([]
- ++ optional (cfg.extraConfig != "") cfg.extraConfig
- ++ mapAttrsToList formatLine cfg.options
- ) + "\n";
+ xdg.configFile."zathura/zathurarc".text = concatStringsSep "\n" ([ ]
+ ++ optional (cfg.extraConfig != "") cfg.extraConfig
+ ++ mapAttrsToList formatLine cfg.options) + "\n";
};
}
diff --git a/modules/services/blueman-applet.nix b/modules/services/blueman-applet.nix
index 0a071f083fc..5a57acccc27 100644
--- a/modules/services/blueman-applet.nix
+++ b/modules/services/blueman-applet.nix
@@ -22,19 +22,15 @@ with lib;
config = mkIf config.services.blueman-applet.enable {
systemd.user.services.blueman-applet = {
- Unit = {
- Description = "Blueman applet";
- After = [ "graphical-session-pre.target" ];
- PartOf = [ "graphical-session.target" ];
- };
+ Unit = {
+ Description = "Blueman applet";
+ After = [ "graphical-session-pre.target" ];
+ PartOf = [ "graphical-session.target" ];
+ };
- Install = {
- WantedBy = [ "graphical-session.target" ];
- };
+ Install = { WantedBy = [ "graphical-session.target" ]; };
- Service = {
- ExecStart = "${pkgs.blueman}/bin/blueman-applet";
- };
+ Service = { ExecStart = "${pkgs.blueman}/bin/blueman-applet"; };
};
};
}
diff --git a/modules/services/cbatticon.nix b/modules/services/cbatticon.nix
index 7bf3b70550d..0de69c5f9ec 100644
--- a/modules/services/cbatticon.nix
+++ b/modules/services/cbatticon.nix
@@ -9,37 +9,24 @@ let
package = pkgs.cbatticon;
makeCommand = commandName: commandArg:
- optional (commandArg != null) (
- let
- cmd = pkgs.writeShellScript commandName commandArg;
- in
- "--${commandName} ${cmd}"
- );
-
- commandLine = concatStringsSep " " (
- [ "${package}/bin/cbatticon" ]
+ optional (commandArg != null)
+ (let cmd = pkgs.writeShellScript commandName commandArg;
+ in "--${commandName} ${cmd}");
+
+ commandLine = concatStringsSep " " ([ "${package}/bin/cbatticon" ]
++ makeCommand "command-critical-level" cfg.commandCriticalLevel
++ makeCommand "command-left-click" cfg.commandLeftClick
- ++ optional
- (cfg.iconType != null)
- "--icon-type ${cfg.iconType}"
- ++ optional
- (cfg.lowLevelPercent != null)
- "--low-level ${toString cfg.lowLevelPercent}"
- ++ optional
- (cfg.criticalLevelPercent != null)
- "--critical-level ${toString cfg.criticalLevelPercent}"
- ++ optional
- (cfg.updateIntervalSeconds != null)
- "--update-interval ${toString cfg.updateIntervalSeconds}"
- ++ optional
- (cfg.hideNotification != null && cfg.hideNotification)
- "--hide-notification"
- );
-
-in
-
-{
+ ++ optional (cfg.iconType != null) "--icon-type ${cfg.iconType}"
+ ++ optional (cfg.lowLevelPercent != null)
+ "--low-level ${toString cfg.lowLevelPercent}"
+ ++ optional (cfg.criticalLevelPercent != null)
+ "--critical-level ${toString cfg.criticalLevelPercent}"
+ ++ optional (cfg.updateIntervalSeconds != null)
+ "--update-interval ${toString cfg.updateIntervalSeconds}"
+ ++ optional (cfg.hideNotification != null && cfg.hideNotification)
+ "--hide-notification");
+
+in {
meta.maintainers = [ maintainers.pmiddend ];
options = {
@@ -66,7 +53,8 @@ in
};
iconType = mkOption {
- type = types.nullOr (types.enum [ "standard" "notification" "symbolic" ]);
+ type =
+ types.nullOr (types.enum [ "standard" "notification" "symbolic" ]);
default = null;
example = "symbolic";
description = "Icon type to display in the system tray.";
@@ -119,9 +107,7 @@ in
PartOf = [ "graphical-session.target" ];
};
- Install = {
- WantedBy = [ "graphical-session.target" ];
- };
+ Install = { WantedBy = [ "graphical-session.target" ]; };
Service = {
ExecStart = commandLine;
diff --git a/modules/services/compton.nix b/modules/services/compton.nix
index c227f0a8c07..c5b96af34da 100644
--- a/modules/services/compton.nix
+++ b/modules/services/compton.nix
@@ -7,44 +7,41 @@ let
cfg = config.services.compton;
- configFile = pkgs.writeText "compton.conf"
- (optionalString cfg.fade ''
- # fading
- fading = true;
- fade-delta = ${toString cfg.fadeDelta};
- fade-in-step = ${elemAt cfg.fadeSteps 0};
- fade-out-step = ${elemAt cfg.fadeSteps 1};
- fade-exclude = ${toJSON cfg.fadeExclude};
- '' +
- optionalString cfg.shadow ''
-
- # shadows
- shadow = true;
- shadow-offset-x = ${toString (elemAt cfg.shadowOffsets 0)};
- shadow-offset-y = ${toString (elemAt cfg.shadowOffsets 1)};
- shadow-opacity = ${cfg.shadowOpacity};
- shadow-exclude = ${toJSON cfg.shadowExclude};
- no-dock-shadow = ${toJSON cfg.noDockShadow};
- no-dnd-shadow = ${toJSON cfg.noDNDShadow};
- '' +
- optionalString cfg.blur ''
-
- # blur
- blur-background = true;
- blur-background-exclude = ${toJSON cfg.blurExclude};
- '' + ''
-
- # opacity
- active-opacity = ${cfg.activeOpacity};
- inactive-opacity = ${cfg.inactiveOpacity};
- menu-opacity = ${cfg.menuOpacity};
- opacity-rule = ${toJSON cfg.opacityRule};
-
- # other options
- backend = ${toJSON cfg.backend};
- vsync = ${toJSON cfg.vSync};
- refresh-rate = ${toString cfg.refreshRate};
- '' + cfg.extraOptions);
+ configFile = pkgs.writeText "compton.conf" (optionalString cfg.fade ''
+ # fading
+ fading = true;
+ fade-delta = ${toString cfg.fadeDelta};
+ fade-in-step = ${elemAt cfg.fadeSteps 0};
+ fade-out-step = ${elemAt cfg.fadeSteps 1};
+ fade-exclude = ${toJSON cfg.fadeExclude};
+ '' + optionalString cfg.shadow ''
+
+ # shadows
+ shadow = true;
+ shadow-offset-x = ${toString (elemAt cfg.shadowOffsets 0)};
+ shadow-offset-y = ${toString (elemAt cfg.shadowOffsets 1)};
+ shadow-opacity = ${cfg.shadowOpacity};
+ shadow-exclude = ${toJSON cfg.shadowExclude};
+ no-dock-shadow = ${toJSON cfg.noDockShadow};
+ no-dnd-shadow = ${toJSON cfg.noDNDShadow};
+ '' + optionalString cfg.blur ''
+
+ # blur
+ blur-background = true;
+ blur-background-exclude = ${toJSON cfg.blurExclude};
+ '' + ''
+
+ # opacity
+ active-opacity = ${cfg.activeOpacity};
+ inactive-opacity = ${cfg.inactiveOpacity};
+ menu-opacity = ${cfg.menuOpacity};
+ opacity-rule = ${toJSON cfg.opacityRule};
+
+ # other options
+ backend = ${toJSON cfg.backend};
+ vsync = ${toJSON cfg.vSync};
+ refresh-rate = ${toString cfg.refreshRate};
+ '' + cfg.extraOptions);
in {
@@ -61,11 +58,8 @@ in {
blurExclude = mkOption {
type = types.listOf types.str;
- default = [];
- example = [
- "class_g = 'slop'"
- "class_i = 'polybar'"
- ];
+ default = [ ];
+ example = [ "class_g = 'slop'" "class_i = 'polybar'" ];
description = ''
List of windows to exclude background blur.
See the
@@ -105,12 +99,8 @@ in {
fadeExclude = mkOption {
type = types.listOf types.str;
- default = [];
- example = [
- "window_type *= 'menu'"
- "name ~= 'Firefox$'"
- "focused = 1"
- ];
+ default = [ ];
+ example = [ "window_type *= 'menu'" "name ~= 'Firefox$'" "focused = 1" ];
description = ''
List of conditions of windows that should not be faded.
See the
@@ -150,12 +140,8 @@ in {
shadowExclude = mkOption {
type = types.listOf types.str;
- default = [];
- example = [
- "window_type *= 'menu'"
- "name ~= 'Firefox$'"
- "focused = 1"
- ];
+ default = [ ];
+ example = [ "window_type *= 'menu'" "name ~= 'Firefox$'" "focused = 1" ];
description = ''
List of conditions of windows that should have no shadow.
See the
@@ -212,11 +198,8 @@ in {
opacityRule = mkOption {
type = types.listOf types.str;
- default = [];
- example = [
- "87:class_i ?= 'scratchpad'"
- "91:class_i ?= 'xterm'"
- ];
+ default = [ ];
+ example = [ "87:class_i ?= 'scratchpad'" "91:class_i ?= 'xterm'" ];
description = ''
List of opacity rules.
See the
@@ -256,7 +239,7 @@ in {
default = 0;
example = 60;
description = ''
- Screen refresh rate (0 = automatically detect).
+ Screen refresh rate (0 = automatically detect).
'';
};
@@ -293,16 +276,13 @@ in {
PartOf = [ "graphical-session.target" ];
};
- Install = {
- WantedBy = [ "graphical-session.target" ];
- };
+ Install = { WantedBy = [ "graphical-session.target" ]; };
Service = {
ExecStart = "${cfg.package}/bin/compton --config ${configFile}";
Restart = "always";
RestartSec = 3;
- }
- // optionalAttrs (cfg.backend == "glx") {
+ } // optionalAttrs (cfg.backend == "glx") {
# Temporarily fixes corrupt colours with Mesa 18.
Environment = [ "allow_rgb10_configs=false" ];
};
diff --git a/modules/services/dunst.nix b/modules/services/dunst.nix
index 96b1f71a2fa..d32e875137b 100644
--- a/modules/services/dunst.nix
+++ b/modules/services/dunst.nix
@@ -6,17 +6,19 @@ let
cfg = config.services.dunst;
- eitherStrBoolIntList = with types; either str (either bool (either int (listOf str)));
+ eitherStrBoolIntList = with types;
+ either str (either bool (either int (listOf str)));
toDunstIni = generators.toINI {
mkKeyValue = key: value:
- let
- value' =
- if isBool value then (if value then "yes" else "no")
- else if isString value then "\"${value}\""
- else toString value;
- in
- "${key}=${value'}";
+ let
+ value' = if isBool value then
+ (if value then "yes" else "no")
+ else if isString value then
+ ''"${value}"''
+ else
+ toString value;
+ in "${key}=${value'}";
};
themeType = types.submodule {
@@ -48,9 +50,7 @@ let
size = "32x32";
};
-in
-
-{
+in {
meta.maintainers = [ maintainers.rycee ];
options = {
@@ -65,7 +65,7 @@ in
settings = mkOption {
type = with types; attrsOf (attrsOf eitherStrBoolIntList);
- default = {};
+ default = { };
description = "Configuration written to ~/.config/dunstrc";
example = literalExample ''
{
@@ -87,86 +87,73 @@ in
};
};
- config = mkIf cfg.enable (
- mkMerge [
- {
- xdg.dataFile."dbus-1/services/org.knopwob.dunst.service".source =
- "${pkgs.dunst}/share/dbus-1/services/org.knopwob.dunst.service";
-
- services.dunst.settings.global.icon_path =
- let
- useCustomTheme =
- cfg.iconTheme.package != hicolorTheme.package
- || cfg.iconTheme.name != hicolorTheme.name
- || cfg.iconTheme.size != hicolorTheme.size;
-
- basePaths = [
- "/run/current-system/sw"
- config.home.profileDirectory
- cfg.iconTheme.package
- ] ++ optional useCustomTheme hicolorTheme.package;
-
- themes =
- [
- cfg.iconTheme
- ] ++ optional useCustomTheme (
- hicolorTheme // { size = cfg.iconTheme.size; }
- );
-
- categories = [
- "actions"
- "animations"
- "apps"
- "categories"
- "devices"
- "emblems"
- "emotes"
- "filesystem"
- "intl"
- "mimetypes"
- "places"
- "status"
- "stock"
- ];
- in
- concatStringsSep ":" (
- concatMap (theme:
- concatMap (basePath:
- map (category:
- "${basePath}/share/icons/${theme.name}/${theme.size}/${category}"
- ) categories
- ) basePaths
- ) themes
- );
-
- systemd.user.services.dunst = {
- Unit = {
- Description = "Dunst notification daemon";
- After = [ "graphical-session-pre.target" ];
- PartOf = [ "graphical-session.target" ];
- };
-
- Service = {
- Type = "dbus";
- BusName = "org.freedesktop.Notifications";
- ExecStart = "${pkgs.dunst}/bin/dunst";
- };
+ config = mkIf cfg.enable (mkMerge [
+ {
+ xdg.dataFile."dbus-1/services/org.knopwob.dunst.service".source =
+ "${pkgs.dunst}/share/dbus-1/services/org.knopwob.dunst.service";
+
+ services.dunst.settings.global.icon_path = let
+ useCustomTheme = cfg.iconTheme.package != hicolorTheme.package
+ || cfg.iconTheme.name != hicolorTheme.name || cfg.iconTheme.size
+ != hicolorTheme.size;
+
+ basePaths = [
+ "/run/current-system/sw"
+ config.home.profileDirectory
+ cfg.iconTheme.package
+ ] ++ optional useCustomTheme hicolorTheme.package;
+
+ themes = [ cfg.iconTheme ] ++ optional useCustomTheme
+ (hicolorTheme // { size = cfg.iconTheme.size; });
+
+ categories = [
+ "actions"
+ "animations"
+ "apps"
+ "categories"
+ "devices"
+ "emblems"
+ "emotes"
+ "filesystem"
+ "intl"
+ "mimetypes"
+ "places"
+ "status"
+ "stock"
+ ];
+ in concatStringsSep ":" (concatMap (theme:
+ concatMap (basePath:
+ map (category:
+ "${basePath}/share/icons/${theme.name}/${theme.size}/${category}")
+ categories) basePaths) themes);
+
+ systemd.user.services.dunst = {
+ Unit = {
+ Description = "Dunst notification daemon";
+ After = [ "graphical-session-pre.target" ];
+ PartOf = [ "graphical-session.target" ];
};
- }
-
- (mkIf (cfg.settings != {}) {
- xdg.configFile."dunst/dunstrc" = {
- text = toDunstIni cfg.settings;
- onChange = ''
- pkillVerbose=""
- if [[ -v VERBOSE ]]; then
- pkillVerbose="-e"
- fi
- $DRY_RUN_CMD ${pkgs.procps}/bin/pkill -u $USER $pkillVerbose dunst || true
- unset pkillVerbose
- '';
+
+ Service = {
+ Type = "dbus";
+ BusName = "org.freedesktop.Notifications";
+ ExecStart = "${pkgs.dunst}/bin/dunst";
};
- })
- ]
- );
+ };
+ }
+
+ (mkIf (cfg.settings != { }) {
+ xdg.configFile."dunst/dunstrc" = {
+ text = toDunstIni cfg.settings;
+ onChange = ''
+ pkillVerbose=""
+ if [[ -v VERBOSE ]]; then
+ pkillVerbose="-e"
+ fi
+ $DRY_RUN_CMD ${pkgs.procps}/bin/pkill -u $USER $pkillVerbose dunst || true
+ unset pkillVerbose
+ '';
+ };
+ })
+ ]);
}
diff --git a/modules/services/dwm-status.nix b/modules/services/dwm-status.nix
index 2b010cec1e1..7a19e5e5fc9 100644
--- a/modules/services/dwm-status.nix
+++ b/modules/services/dwm-status.nix
@@ -10,9 +10,8 @@ let
configText = builtins.toJSON ({ inherit (cfg) order; } // cfg.extraConfig);
configFile = pkgs.writeText "dwm-status.json" configText;
-in
-{
+in {
options = {
services.dwm-status = {
enable = mkEnableOption "dwm-status user service";
@@ -32,7 +31,7 @@ in
extraConfig = mkOption {
type = types.attrs;
- default = {};
+ default = { };
example = literalExample ''
{
separator = "#";
@@ -58,13 +57,9 @@ in
PartOf = [ "graphical-session.target" ];
};
- Install = {
- WantedBy = [ "graphical-session.target" ];
- };
+ Install = { WantedBy = [ "graphical-session.target" ]; };
- Service = {
- ExecStart = "${cfg.package}/bin/dwm-status ${configFile}";
- };
+ Service = { ExecStart = "${cfg.package}/bin/dwm-status ${configFile}"; };
};
};
}
diff --git a/modules/services/emacs.nix b/modules/services/emacs.nix
index 33d6871c61b..5b0e88db72d 100644
--- a/modules/services/emacs.nix
+++ b/modules/services/emacs.nix
@@ -8,26 +8,21 @@ let
emacsCfg = config.programs.emacs;
emacsBinPath = "${emacsCfg.finalPackage}/bin";
-in
-
-{
- options.services.emacs = {
- enable = mkEnableOption "the Emacs daemon";
- };
+in {
+ options.services.emacs = { enable = mkEnableOption "the Emacs daemon"; };
config = mkIf cfg.enable {
- assertions = [
- {
- assertion = emacsCfg.enable;
- message = "The Emacs service module requires"
- + " 'programs.emacs.enable = true'.";
- }
- ];
+ assertions = [{
+ assertion = emacsCfg.enable;
+ message = "The Emacs service module requires"
+ + " 'programs.emacs.enable = true'.";
+ }];
systemd.user.services.emacs = {
Unit = {
Description = "Emacs: the extensible, self-documenting text editor";
- Documentation = "info:emacs man:emacs(1) https://gnu.org/software/emacs/";
+ Documentation =
+ "info:emacs man:emacs(1) https://gnu.org/software/emacs/";
# Avoid killing the Emacs session, which may be full of
# unsaved buffers.
@@ -35,14 +30,13 @@ in
};
Service = {
- ExecStart = "${pkgs.runtimeShell} -l -c 'exec ${emacsBinPath}/emacs --fg-daemon'";
+ ExecStart =
+ "${pkgs.runtimeShell} -l -c 'exec ${emacsBinPath}/emacs --fg-daemon'";
ExecStop = "${emacsBinPath}/emacsclient --eval '(kill-emacs)'";
Restart = "on-failure";
};
- Install = {
- WantedBy = [ "default.target" ];
- };
+ Install = { WantedBy = [ "default.target" ]; };
};
};
}
diff --git a/modules/services/flameshot.nix b/modules/services/flameshot.nix
index 87b494d0fcd..c8659d51d1e 100644
--- a/modules/services/flameshot.nix
+++ b/modules/services/flameshot.nix
@@ -7,16 +7,10 @@ let
cfg = config.services.flameshot;
package = pkgs.flameshot;
-in
-
-{
+in {
meta.maintainers = [ maintainers.hamhut1066 ];
- options = {
- services.flameshot = {
- enable = mkEnableOption "Flameshot";
- };
- };
+ options = { services.flameshot = { enable = mkEnableOption "Flameshot"; }; };
config = mkIf cfg.enable {
home.packages = [ package ];
@@ -33,9 +27,7 @@ in
PartOf = [ "graphical-session.target" ];
};
- Install = {
- WantedBy = [ "graphical-session.target" ];
- };
+ Install = { WantedBy = [ "graphical-session.target" ]; };
Service = {
Environment = "PATH=${config.home.profileDirectory}/bin";
diff --git a/modules/services/getmail.nix b/modules/services/getmail.nix
index 46d4c1752d4..e7a1b1a4627 100644
--- a/modules/services/getmail.nix
+++ b/modules/services/getmail.nix
@@ -6,17 +6,19 @@ let
cfg = config.services.getmail;
- accounts = filter (a: a.getmail.enable)
- (attrValues config.accounts.email.accounts);
+ accounts =
+ filter (a: a.getmail.enable) (attrValues config.accounts.email.accounts);
# Note: The getmail service does not expect a path, but just the filename!
- renderConfigFilepath = a: if a.primary then "getmailrc" else "getmail${a.name}";
- configFiles = concatMapStringsSep " " (a: " --rcfile ${renderConfigFilepath a}") accounts;
-in
-{
+ renderConfigFilepath = a:
+ if a.primary then "getmailrc" else "getmail${a.name}";
+ configFiles =
+ concatMapStringsSep " " (a: " --rcfile ${renderConfigFilepath a}") accounts;
+in {
options = {
services.getmail = {
- enable = mkEnableOption "the getmail systemd service to automatically retrieve mail";
+ enable = mkEnableOption
+ "the getmail systemd service to automatically retrieve mail";
frequency = mkOption {
type = types.str;
@@ -36,25 +38,17 @@ in
config = mkIf cfg.enable {
systemd.user.services.getmail = {
- Unit = {
- Description = "getmail email fetcher";
- };
- Service = {
- ExecStart = "${pkgs.getmail}/bin/getmail ${configFiles}";
- };
+ Unit = { Description = "getmail email fetcher"; };
+ Service = { ExecStart = "${pkgs.getmail}/bin/getmail ${configFiles}"; };
};
systemd.user.timers.getmail = {
- Unit = {
- Description = "getmail email fetcher";
- };
+ Unit = { Description = "getmail email fetcher"; };
Timer = {
OnCalendar = "${cfg.frequency}";
Unit = "getmail.service";
};
- Install = {
- WantedBy = [ "timers.target" ];
- };
+ Install = { WantedBy = [ "timers.target" ]; };
};
};
diff --git a/modules/services/gnome-keyring.nix b/modules/services/gnome-keyring.nix
index 4ca6c7cacf2..6d8317dcffc 100644
--- a/modules/services/gnome-keyring.nix
+++ b/modules/services/gnome-keyring.nix
@@ -6,9 +6,7 @@ let
cfg = config.services.gnome-keyring;
-in
-
-{
+in {
meta.maintainers = [ maintainers.rycee ];
options = {
@@ -16,8 +14,8 @@ in
enable = mkEnableOption "GNOME Keyring";
components = mkOption {
- type = types.listOf (types.enum ["pkcs11" "secrets" "ssh"]);
- default = [];
+ type = types.listOf (types.enum [ "pkcs11" "secrets" "ssh" ]);
+ default = [ ];
description = ''
The GNOME keyring components to start. If empty then the
default set of components will be started.
@@ -34,22 +32,15 @@ in
};
Service = {
- ExecStart =
- let
- args = concatStringsSep " " (
- [ "--start" "--foreground" ]
- ++ optional (cfg.components != []) (
- "--components=" + concatStringsSep "," cfg.components
- )
- );
- in
- "${pkgs.gnome3.gnome_keyring}/bin/gnome-keyring-daemon ${args}";
+ ExecStart = let
+ args = concatStringsSep " " ([ "--start" "--foreground" ]
+ ++ optional (cfg.components != [ ])
+ ("--components=" + concatStringsSep "," cfg.components));
+ in "${pkgs.gnome3.gnome_keyring}/bin/gnome-keyring-daemon ${args}";
Restart = "on-abort";
};
- Install = {
- WantedBy = [ "graphical-session-pre.target" ];
- };
+ Install = { WantedBy = [ "graphical-session-pre.target" ]; };
};
};
}
diff --git a/modules/services/grobi.nix b/modules/services/grobi.nix
index e910bcdfd35..4dfc5d6331f 100644
--- a/modules/services/grobi.nix
+++ b/modules/services/grobi.nix
@@ -6,12 +6,10 @@ let
cfg = config.services.grobi;
- eitherStrBoolIntList =
- with types; either str (either bool (either int (listOf str)));
+ eitherStrBoolIntList = with types;
+ either str (either bool (either int (listOf str)));
-in
-
-{
+in {
meta.maintainers = [ maintainers.mbrgm ];
options = {
@@ -20,7 +18,7 @@ in
executeAfter = mkOption {
type = with types; listOf str;
- default = [];
+ default = [ ];
example = [ "setxkbmap dvorak" ];
description = ''
Commands to be run after an output configuration was
@@ -32,7 +30,7 @@ in
rules = mkOption {
type = with types; listOf (attrsOf eitherStrBoolIntList);
- default = [];
+ default = [ ];
example = literalExample ''
[
{
@@ -88,9 +86,7 @@ in
Environment = "PATH=${pkgs.xorg.xrandr}/bin:${pkgs.bash}/bin";
};
- Install = {
- WantedBy = [ "graphical-session.target" ];
- };
+ Install = { WantedBy = [ "graphical-session.target" ]; };
};
xdg.configFile."grobi.conf".text = builtins.toJSON {
diff --git a/modules/services/hound.nix b/modules/services/hound.nix
index a252a68d271..00589f3405f 100644
--- a/modules/services/hound.nix
+++ b/modules/services/hound.nix
@@ -6,23 +6,16 @@ let
cfg = config.services.hound;
- configFile = pkgs.writeText "hound-config.json" (
- builtins.toJSON {
- max-concurrent-indexers = cfg.maxConcurrentIndexers;
- dbpath = cfg.databasePath;
- repos = cfg.repositories;
- health-check-url = "/healthz";
- }
- );
+ configFile = pkgs.writeText "hound-config.json" (builtins.toJSON {
+ max-concurrent-indexers = cfg.maxConcurrentIndexers;
+ dbpath = cfg.databasePath;
+ repos = cfg.repositories;
+ health-check-url = "/healthz";
+ });
- houndOptions = [
- "--addr ${cfg.listenAddress}"
- "--conf ${configFile}"
- ];
+ houndOptions = [ "--addr ${cfg.listenAddress}" "--conf ${configFile}" ];
-in
-
-{
+in {
meta.maintainers = [ maintainers.adisbladis ];
options.services.hound = {
@@ -37,7 +30,7 @@ in
databasePath = mkOption {
type = types.path;
default = "${config.xdg.dataHome}/hound";
- defaultText = "\$XDG_DATA_HOME/hound";
+ defaultText = "$XDG_DATA_HOME/hound";
description = "The Hound database path.";
};
@@ -49,7 +42,7 @@ in
repositories = mkOption {
type = types.attrsOf (types.uniq types.attrs);
- default = {};
+ default = { };
example = literalExample ''
{
SomeGitRepo = {
@@ -67,17 +60,14 @@ in
home.packages = [ pkgs.hound ];
systemd.user.services.hound = {
- Unit = {
- Description = "Hound source code search engine";
- };
+ Unit = { Description = "Hound source code search engine"; };
- Install = {
- WantedBy = [ "default.target" ];
- };
+ Install = { WantedBy = [ "default.target" ]; };
Service = {
Environment = "PATH=${makeBinPath [ pkgs.mercurial pkgs.git ]}";
- ExecStart = "${pkgs.hound}/bin/houndd ${concatStringsSep " " houndOptions}";
+ ExecStart =
+ "${pkgs.hound}/bin/houndd ${concatStringsSep " " houndOptions}";
};
};
};
diff --git a/modules/services/imapnotify-accounts.nix b/modules/services/imapnotify-accounts.nix
index 1c780bf28c3..94bdce5dfb4 100644
--- a/modules/services/imapnotify-accounts.nix
+++ b/modules/services/imapnotify-accounts.nix
@@ -16,13 +16,16 @@ with lib;
onNotifyPost = mkOption {
type = with types; either str (attrsOf str);
default = "";
- example = { mail = "\${pkgs.notmuch}/bin/notmuch new && \${pkgs.libnotify}/bin/notify-send 'New mail arrived'"; };
+ example = {
+ mail =
+ "\${pkgs.notmuch}/bin/notmuch new && \${pkgs.libnotify}/bin/notify-send 'New mail arrived'";
+ };
description = "Shell commands to run after onNotify event.";
};
boxes = mkOption {
type = types.listOf types.str;
- default = [];
+ default = [ ];
example = [ "Inbox" "[Gmail]/MyLabel" ];
description = "IMAP folders to watch.";
};
diff --git a/modules/services/imapnotify.nix b/modules/services/imapnotify.nix
index fbb0713e978..b59b006e335 100644
--- a/modules/services/imapnotify.nix
+++ b/modules/services/imapnotify.nix
@@ -6,102 +6,85 @@ let
cfg = config.services.imapnotify;
- safeName = lib.replaceChars ["@" ":" "\\" "[" "]"] ["-" "-" "-" "" ""];
+ safeName = lib.replaceChars [ "@" ":" "\\" "[" "]" ] [ "-" "-" "-" "" "" ];
imapnotifyAccounts =
- filter (a: a.imapnotify.enable)
- (attrValues config.accounts.email.accounts);
+ filter (a: a.imapnotify.enable) (attrValues config.accounts.email.accounts);
genAccountUnit = account:
- let
- name = safeName account.name;
- in
- {
- name = "imapnotify-${name}";
- value = {
- Unit = {
- Description = "imapnotify for ${name}";
- };
-
- Service = {
- ExecStart = "${pkgs.imapnotify}/bin/imapnotify -c ${genAccountConfig account}";
- } // optionalAttrs account.notmuch.enable {
- Environment = "NOTMUCH_CONFIG=${config.xdg.configHome}/notmuch/notmuchrc";
- };
-
- Install = {
- WantedBy = [ "default.target" ];
- };
+ let name = safeName account.name;
+ in {
+ name = "imapnotify-${name}";
+ value = {
+ Unit = { Description = "imapnotify for ${name}"; };
+
+ Service = {
+ ExecStart =
+ "${pkgs.imapnotify}/bin/imapnotify -c ${genAccountConfig account}";
+ } // optionalAttrs account.notmuch.enable {
+ Environment =
+ "NOTMUCH_CONFIG=${config.xdg.configHome}/notmuch/notmuchrc";
};
+
+ Install = { WantedBy = [ "default.target" ]; };
};
+ };
genAccountConfig = account:
- pkgs.writeText "imapnotify-${safeName account.name}-config.js" (
- let
- port =
- if account.imap.port != null then account.imap.port
- else if account.imap.tls.enable then 993
- else 143;
-
- toJSON = builtins.toJSON;
- in
- ''
- var child_process = require('child_process');
-
- function getStdout(cmd) {
- var stdout = child_process.execSync(cmd);
- return stdout.toString().trim();
- }
-
- exports.host = ${toJSON account.imap.host}
- exports.port = ${toJSON port};
- exports.tls = ${toJSON account.imap.tls.enable};
- exports.username = ${toJSON account.userName};
- exports.password = getStdout("${toString account.passwordCommand}");
- exports.onNotify = ${toJSON account.imapnotify.onNotify};
- exports.onNotifyPost = ${toJSON account.imapnotify.onNotifyPost};
- exports.boxes = ${toJSON account.imapnotify.boxes};
- ''
- );
-
-in
-
-{
+ pkgs.writeText "imapnotify-${safeName account.name}-config.js" (let
+ port = if account.imap.port != null then
+ account.imap.port
+ else if account.imap.tls.enable then
+ 993
+ else
+ 143;
+
+ toJSON = builtins.toJSON;
+ in ''
+ var child_process = require('child_process');
+
+ function getStdout(cmd) {
+ var stdout = child_process.execSync(cmd);
+ return stdout.toString().trim();
+ }
+
+ exports.host = ${toJSON account.imap.host}
+ exports.port = ${toJSON port};
+ exports.tls = ${toJSON account.imap.tls.enable};
+ exports.username = ${toJSON account.userName};
+ exports.password = getStdout("${toString account.passwordCommand}");
+ exports.onNotify = ${toJSON account.imapnotify.onNotify};
+ exports.onNotifyPost = ${toJSON account.imapnotify.onNotifyPost};
+ exports.boxes = ${toJSON account.imapnotify.boxes};
+ '');
+
+in {
meta.maintainers = [ maintainers.nickhu ];
options = {
- services.imapnotify = {
- enable = mkEnableOption "imapnotify";
- };
+ services.imapnotify = { enable = mkEnableOption "imapnotify"; };
accounts.email.accounts = mkOption {
- type = with types; attrsOf (submodule (
- import ./imapnotify-accounts.nix
- ));
+ type = with types; attrsOf (submodule (import ./imapnotify-accounts.nix));
};
};
config = mkIf cfg.enable {
- assertions =
- let
- checkAccounts = pred: msg:
- let
- badAccounts = filter pred imapnotifyAccounts;
- in
- {
- assertion = badAccounts == [];
- message = "imapnotify: Missing ${msg} for accounts: "
- + concatMapStringsSep ", " (a: a.name) badAccounts;
- };
- in
- [
- (checkAccounts (a: a.maildir == null) "maildir configuration")
- (checkAccounts (a: a.imap == null) "IMAP configuration")
- (checkAccounts (a: a.passwordCommand == null) "password command")
- (checkAccounts (a: a.userName == null) "username")
- ];
-
- systemd.user.services =
- listToAttrs (map genAccountUnit imapnotifyAccounts);
+ assertions = let
+ checkAccounts = pred: msg:
+ let badAccounts = filter pred imapnotifyAccounts;
+ in {
+ assertion = badAccounts == [ ];
+ message = "imapnotify: Missing ${msg} for accounts: "
+ + concatMapStringsSep ", " (a: a.name) badAccounts;
+ };
+ in [
+ (checkAccounts (a: a.maildir == null) "maildir configuration")
+ (checkAccounts (a: a.imap == null) "IMAP configuration")
+ (checkAccounts (a: a.passwordCommand == null) "password command")
+ (checkAccounts (a: a.userName == null) "username")
+ ];
+
+ systemd.user.services = listToAttrs (map genAccountUnit imapnotifyAccounts);
};
}
diff --git a/modules/services/kdeconnect.nix b/modules/services/kdeconnect.nix
index bd698fcf836..82de1f0eb7c 100644
--- a/modules/services/kdeconnect.nix
+++ b/modules/services/kdeconnect.nix
@@ -7,9 +7,7 @@ let
cfg = config.services.kdeconnect;
package = pkgs.kdeconnect;
-in
-
-{
+in {
meta.maintainers = [ maintainers.adisbladis ];
options = {
@@ -31,14 +29,13 @@ in
systemd.user.services.kdeconnect = {
Unit = {
- Description = "Adds communication between your desktop and your smartphone";
+ Description =
+ "Adds communication between your desktop and your smartphone";
After = [ "graphical-session-pre.target" ];
PartOf = [ "graphical-session.target" ];
};
- Install = {
- WantedBy = [ "graphical-session.target" ];
- };
+ Install = { WantedBy = [ "graphical-session.target" ]; };
Service = {
Environment = "PATH=${config.home.profileDirectory}/bin";
@@ -52,16 +49,16 @@ in
systemd.user.services.kdeconnect-indicator = {
Unit = {
Description = "kdeconnect-indicator";
- After = [ "graphical-session-pre.target"
- "polybar.service"
- "taffybar.service"
- "stalonetray.service" ];
+ After = [
+ "graphical-session-pre.target"
+ "polybar.service"
+ "taffybar.service"
+ "stalonetray.service"
+ ];
PartOf = [ "graphical-session.target" ];
};
- Install = {
- WantedBy = [ "graphical-session.target" ];
- };
+ Install = { WantedBy = [ "graphical-session.target" ]; };
Service = {
Environment = "PATH=${config.home.profileDirectory}/bin";
diff --git a/modules/services/keepassx.nix b/modules/services/keepassx.nix
index ad791786f05..dc37066e20c 100644
--- a/modules/services/keepassx.nix
+++ b/modules/services/keepassx.nix
@@ -13,19 +13,15 @@ with lib;
config = mkIf config.services.keepassx.enable {
systemd.user.services.keepassx = {
- Unit = {
- Description = "KeePassX password manager";
- After = [ "graphical-session-pre.target" ];
- PartOf = [ "graphical-session.target" ];
- };
+ Unit = {
+ Description = "KeePassX password manager";
+ After = [ "graphical-session-pre.target" ];
+ PartOf = [ "graphical-session.target" ];
+ };
- Install = {
- WantedBy = [ "graphical-session.target" ];
- };
+ Install = { WantedBy = [ "graphical-session.target" ]; };
- Service = {
- ExecStart = "${pkgs.keepassx}/bin/keepassx -min -lock";
- };
+ Service = { ExecStart = "${pkgs.keepassx}/bin/keepassx -min -lock"; };
};
};
}
diff --git a/modules/services/lorri.nix b/modules/services/lorri.nix
index 351afbc1d29..3b2c244e3c0 100644
--- a/modules/services/lorri.nix
+++ b/modules/services/lorri.nix
@@ -6,14 +6,10 @@ let
cfg = config.services.lorri;
-in
-
-{
+in {
meta.maintainers = [ maintainers.gerschtli ];
- options = {
- services.lorri.enable = mkEnableOption "lorri build daemon";
- };
+ options = { services.lorri.enable = mkEnableOption "lorri build daemon"; };
config = mkIf cfg.enable {
home.packages = [ pkgs.lorri ];
@@ -33,25 +29,22 @@ in
ProtectSystem = "strict";
ProtectHome = "read-only";
Restart = "on-failure";
- Environment =
- let path = with pkgs; makeSearchPath "bin" [ nix gitMinimal gnutar gzip ];
- in "PATH=${path}";
+ Environment = let
+ path = with pkgs;
+ makeSearchPath "bin" [ nix gitMinimal gnutar gzip ];
+ in "PATH=${path}";
};
};
sockets.lorri = {
- Unit = {
- Description = "Socket for lorri build daemon";
- };
+ Unit = { Description = "Socket for lorri build daemon"; };
Socket = {
ListenStream = "%t/lorri/daemon.socket";
RuntimeDirectory = "lorri";
};
- Install = {
- WantedBy = [ "sockets.target" ];
- };
+ Install = { WantedBy = [ "sockets.target" ]; };
};
};
};
diff --git a/modules/services/mbsync.nix b/modules/services/mbsync.nix
index 73c3b326695..ac6ac1ef78a 100644
--- a/modules/services/mbsync.nix
+++ b/modules/services/mbsync.nix
@@ -6,14 +6,10 @@ let
cfg = config.services.mbsync;
- mbsyncOptions =
- [ "--all"
- ] ++ optional (cfg.verbose) "--verbose"
- ++ optional (cfg.configFile != null) "--config ${cfg.configFile}";
+ mbsyncOptions = [ "--all" ] ++ optional (cfg.verbose) "--verbose"
+ ++ optional (cfg.configFile != null) "--config ${cfg.configFile}";
-in
-
-{
+in {
meta.maintainers = [ maintainers.pjones ];
options.services.mbsync = {
@@ -81,30 +77,28 @@ in
config = mkIf cfg.enable {
systemd.user.services.mbsync = {
- Unit = {
- Description = "mbsync mailbox synchronization";
- };
+ Unit = { Description = "mbsync mailbox synchronization"; };
Service = {
Type = "oneshot";
- ExecStart = "${cfg.package}/bin/mbsync ${concatStringsSep " " mbsyncOptions}";
- } // (optionalAttrs (cfg.postExec != null) { ExecStartPost = cfg.postExec; })
- // (optionalAttrs (cfg.preExec != null) { ExecStartPre = cfg.preExec; });
+ ExecStart =
+ "${cfg.package}/bin/mbsync ${concatStringsSep " " mbsyncOptions}";
+ } // (optionalAttrs (cfg.postExec != null) {
+ ExecStartPost = cfg.postExec;
+ }) // (optionalAttrs (cfg.preExec != null) {
+ ExecStartPre = cfg.preExec;
+ });
};
systemd.user.timers.mbsync = {
- Unit = {
- Description = "mbsync mailbox synchronization";
- };
+ Unit = { Description = "mbsync mailbox synchronization"; };
Timer = {
OnCalendar = cfg.frequency;
Unit = "mbsync.service";
};
- Install = {
- WantedBy = [ "timers.target" ];
- };
+ Install = { WantedBy = [ "timers.target" ]; };
};
};
}
diff --git a/modules/services/mpdris2.nix b/modules/services/mpdris2.nix
index 9030e0fdb97..cb8cefba6bd 100644
--- a/modules/services/mpdris2.nix
+++ b/modules/services/mpdris2.nix
@@ -9,11 +9,11 @@ let
toIni = generators.toINI {
mkKeyValue = key: value:
let
- value' =
- if isBool value then (if value then "True" else "False")
- else toString value;
- in
- "${key} = ${value'}";
+ value' = if isBool value then
+ (if value then "True" else "False")
+ else
+ toString value;
+ in "${key} = ${value'}";
};
mpdris2Conf = {
@@ -29,9 +29,7 @@ let
};
};
-in
-
-{
+in {
meta.maintainers = [ maintainers.pjones ];
options.services.mpdris2 = {
@@ -76,19 +74,15 @@ in
};
config = mkIf cfg.enable {
- assertions = [
- {
- assertion = config.services.mpd.enable;
- message = "The mpdris2 module requires 'services.mpd.enable = true'.";
- }
- ];
+ assertions = [{
+ assertion = config.services.mpd.enable;
+ message = "The mpdris2 module requires 'services.mpd.enable = true'.";
+ }];
xdg.configFile."mpDris2/mpDris2.conf".text = toIni mpdris2Conf;
systemd.user.services.mpdris2 = {
- Install = {
- WantedBy = [ "default.target" ];
- };
+ Install = { WantedBy = [ "default.target" ]; };
Unit = {
Description = "MPRIS 2 support for MPD";
diff --git a/modules/services/muchsync.nix b/modules/services/muchsync.nix
index 72bf737c27d..b7004418d35 100644
--- a/modules/services/muchsync.nix
+++ b/modules/services/muchsync.nix
@@ -150,23 +150,21 @@ in {
};
config = let
- mapRemotes = gen: with attrsets; mapAttrs'
+ mapRemotes = gen:
+ with attrsets;
+ mapAttrs'
(name: remoteCfg: nameValuePair "muchsync-${name}" (gen name remoteCfg))
cfg.remotes;
in mkIf (cfg.remotes != { }) {
- assertions = [
- {
- assertion = config.programs.notmuch.enable;
- message = ''
- The muchsync module requires 'programs.notmuch.enable = true'.
- '';
- }
- ];
+ assertions = [{
+ assertion = config.programs.notmuch.enable;
+ message = ''
+ The muchsync module requires 'programs.notmuch.enable = true'.
+ '';
+ }];
systemd.user.services = mapRemotes (name: remoteCfg: {
- Unit = {
- Description = "muchsync sync service (${name})";
- };
+ Unit = { Description = "muchsync sync service (${name})"; };
Service = {
CPUSchedulingPolicy = "idle";
IOSchedulingClass = "idle";
@@ -175,8 +173,7 @@ in {
''"NOTMUCH_CONFIG=${config.home.sessionVariables.NOTMUCH_CONFIG}"''
''"NMBGIT=${config.home.sessionVariables.NMBGIT}"''
];
- ExecStart = concatStringsSep " " (
- [ "${pkgs.muchsync}/bin/muchsync" ]
+ ExecStart = concatStringsSep " " ([ "${pkgs.muchsync}/bin/muchsync" ]
++ [ "-s ${escapeShellArg remoteCfg.sshCommand}" ]
++ optional (!remoteCfg.upload) "--noup"
@@ -187,25 +184,20 @@ in {
# remote configuration
++ [ (escapeShellArg remoteCfg.remote.host) ]
++ optional (remoteCfg.remote.muchsyncPath != "")
- "-r ${escapeShellArg remoteCfg.remote.muchsyncPath}"
+ "-r ${escapeShellArg remoteCfg.remote.muchsyncPath}"
++ optional remoteCfg.remote.checkForModifiedFiles "-F"
- ++ optional (!remoteCfg.remote.importNew) "--nonew"
- );
+ ++ optional (!remoteCfg.remote.importNew) "--nonew");
};
});
systemd.user.timers = mapRemotes (name: remoteCfg: {
- Unit = {
- Description = "muchsync periodic sync (${name})";
- };
+ Unit = { Description = "muchsync periodic sync (${name})"; };
Timer = {
Unit = "muchsync-${name}.service";
OnCalendar = remoteCfg.frequency;
Persistent = true;
};
- Install = {
- WantedBy = [ "timers.target" ];
- };
+ Install = { WantedBy = [ "timers.target" ]; };
});
};
}
diff --git a/modules/services/network-manager-applet.nix b/modules/services/network-manager-applet.nix
index 72a4711e39a..bf57ed65091 100644
--- a/modules/services/network-manager-applet.nix
+++ b/modules/services/network-manager-applet.nix
@@ -6,9 +6,7 @@ let
cfg = config.services.network-manager-applet;
-in
-
-{
+in {
meta.maintainers = [ maintainers.rycee ];
options = {
@@ -25,17 +23,13 @@ in
PartOf = [ "graphical-session.target" ];
};
- Install = {
- WantedBy = [ "graphical-session.target" ];
- };
+ Install = { WantedBy = [ "graphical-session.target" ]; };
Service = {
- ExecStart = toString (
- [
- "${pkgs.networkmanagerapplet}/bin/nm-applet"
- "--sm-disable"
- ] ++ optional config.xsession.preferStatusNotifierItems "--indicator"
- );
+ ExecStart = toString
+ ([ "${pkgs.networkmanagerapplet}/bin/nm-applet" "--sm-disable" ]
+ ++ optional config.xsession.preferStatusNotifierItems
+ "--indicator");
};
};
};
diff --git a/modules/services/nextcloud-client.nix b/modules/services/nextcloud-client.nix
index 3d8dc0bc80b..555ca11ad64 100644
--- a/modules/services/nextcloud-client.nix
+++ b/modules/services/nextcloud-client.nix
@@ -4,9 +4,7 @@ with lib;
{
options = {
- services.nextcloud-client = {
- enable = mkEnableOption "Nextcloud Client";
- };
+ services.nextcloud-client = { enable = mkEnableOption "Nextcloud Client"; };
};
config = mkIf config.services.nextcloud-client.enable {
@@ -22,9 +20,7 @@ with lib;
ExecStart = "${pkgs.nextcloud-client}/bin/nextcloud";
};
- Install = {
- WantedBy = [ "graphical-session.target" ];
- };
+ Install = { WantedBy = [ "graphical-session.target" ]; };
};
};
}
diff --git a/modules/services/owncloud-client.nix b/modules/services/owncloud-client.nix
index d98a508f088..d55d8ffa2a4 100644
--- a/modules/services/owncloud-client.nix
+++ b/modules/services/owncloud-client.nix
@@ -4,9 +4,7 @@ with lib;
{
options = {
- services.owncloud-client = {
- enable = mkEnableOption "Owncloud Client";
- };
+ services.owncloud-client = { enable = mkEnableOption "Owncloud Client"; };
};
config = mkIf config.services.owncloud-client.enable {
@@ -22,9 +20,7 @@ with lib;
ExecStart = "${pkgs.owncloud-client}/bin/owncloud";
};
- Install = {
- WantedBy = [ "graphical-session.target" ];
- };
+ Install = { WantedBy = [ "graphical-session.target" ]; };
};
};
}
diff --git a/modules/services/parcellite.nix b/modules/services/parcellite.nix
index 45cb33ea8e8..ce04238613b 100644
--- a/modules/services/parcellite.nix
+++ b/modules/services/parcellite.nix
@@ -7,15 +7,11 @@ let
cfg = config.services.parcellite;
package = pkgs.parcellite;
-in
-
-{
+in {
meta.maintainers = [ maintainers.gleber ];
options = {
- services.parcellite = {
- enable = mkEnableOption "Parcellite";
- };
+ services.parcellite = { enable = mkEnableOption "Parcellite"; };
};
config = mkIf cfg.enable {
@@ -28,9 +24,7 @@ in
PartOf = [ "graphical-session.target" ];
};
- Install = {
- WantedBy = [ "graphical-session.target" ];
- };
+ Install = { WantedBy = [ "graphical-session.target" ]; };
Service = {
ExecStart = "${package}/bin/parcellite";
diff --git a/modules/services/password-store-sync.nix b/modules/services/password-store-sync.nix
index 32c70ff58e2..81933914980 100644
--- a/modules/services/password-store-sync.nix
+++ b/modules/services/password-store-sync.nix
@@ -7,9 +7,7 @@ let
serviceCfg = config.services.password-store-sync;
programCfg = config.programs.password-store;
-in
-
-{
+in {
meta.maintainers = with maintainers; [ pacien ];
options.services.password-store-sync = {
@@ -35,28 +33,22 @@ in
};
config = mkIf serviceCfg.enable {
- assertions = [
- {
- assertion = programCfg.enable;
- message = "The 'services.password-store-sync' module requires"
- + " 'programs.password-store.enable = true'.";
- }
- ];
+ assertions = [{
+ assertion = programCfg.enable;
+ message = "The 'services.password-store-sync' module requires"
+ + " 'programs.password-store.enable = true'.";
+ }];
systemd.user.services.password-store-sync = {
- Unit = {
- Description = "Password store sync";
- };
+ Unit = { Description = "Password store sync"; };
Service = {
CPUSchedulingPolicy = "idle";
IOSchedulingClass = "idle";
- Environment =
- let
- makeEnvironmentPairs =
- mapAttrsToList (key: value: "${key}=${builtins.toJSON value}");
- in
- makeEnvironmentPairs programCfg.settings;
+ Environment = let
+ makeEnvironmentPairs =
+ mapAttrsToList (key: value: "${key}=${builtins.toJSON value}");
+ in makeEnvironmentPairs programCfg.settings;
ExecStart = toString (pkgs.writeShellScript "password-store-sync" ''
${pkgs.pass}/bin/pass git pull --rebase && \
${pkgs.pass}/bin/pass git push
@@ -65,9 +57,7 @@ in
};
systemd.user.timers.password-store-sync = {
- Unit = {
- Description = "Password store periodic sync";
- };
+ Unit = { Description = "Password store periodic sync"; };
Timer = {
Unit = "password-store-sync.service";
@@ -75,9 +65,7 @@ in
Persistent = true;
};
- Install = {
- WantedBy = [ "timers.target" ];
- };
+ Install = { WantedBy = [ "timers.target" ]; };
};
};
}
diff --git a/modules/services/pasystray.nix b/modules/services/pasystray.nix
index 8f92f34c091..7c6651d9499 100644
--- a/modules/services/pasystray.nix
+++ b/modules/services/pasystray.nix
@@ -6,31 +6,25 @@ with lib;
meta.maintainers = [ maintainers.pltanton ];
options = {
- services.pasystray = {
- enable = mkEnableOption "PulseAudio system tray";
- };
+ services.pasystray = { enable = mkEnableOption "PulseAudio system tray"; };
};
config = mkIf config.services.pasystray.enable {
systemd.user.services.pasystray = {
- Unit = {
- Description = "PulseAudio system tray";
- After = [ "graphical-session-pre.target" ];
- PartOf = [ "graphical-session.target" ];
- };
+ Unit = {
+ Description = "PulseAudio system tray";
+ After = [ "graphical-session-pre.target" ];
+ PartOf = [ "graphical-session.target" ];
+ };
- Install = {
- WantedBy = [ "graphical-session.target" ];
- };
+ Install = { WantedBy = [ "graphical-session.target" ]; };
- Service = {
- Environment =
- let
- toolPaths = makeBinPath [ pkgs.paprefs pkgs.pavucontrol ];
- in
- [ "PATH=${toolPaths}" ];
- ExecStart = "${pkgs.pasystray}/bin/pasystray";
- };
+ Service = {
+ Environment =
+ let toolPaths = makeBinPath [ pkgs.paprefs pkgs.pavucontrol ];
+ in [ "PATH=${toolPaths}" ];
+ ExecStart = "${pkgs.pasystray}/bin/pasystray";
+ };
};
};
}
diff --git a/modules/services/polybar.nix b/modules/services/polybar.nix
index 4225ed9b38c..934a990638f 100644
--- a/modules/services/polybar.nix
+++ b/modules/services/polybar.nix
@@ -6,30 +6,28 @@ let
cfg = config.services.polybar;
- eitherStrBoolIntList = with types; either str (either bool (either int (listOf str)));
+ eitherStrBoolIntList = with types;
+ either str (either bool (either int (listOf str)));
toPolybarIni = generators.toINI {
mkKeyValue = key: value:
let
quoted = v:
- if hasPrefix " " v || hasSuffix " " v
- then ''"${v}"''
- else v;
-
- value' =
- if isBool value then (if value then "true" else "false")
- else if (isString value && key != "include-file") then quoted value
- else toString value;
- in
- "${key}=${value'}";
+ if hasPrefix " " v || hasSuffix " " v then ''"${v}"'' else v;
+
+ value' = if isBool value then
+ (if value then "true" else "false")
+ else if (isString value && key != "include-file") then
+ quoted value
+ else
+ toString value;
+ in "${key}=${value'}";
};
configFile = pkgs.writeText "polybar.conf"
(toPolybarIni cfg.config + "\n" + cfg.extraConfig);
-in
-
-{
+in {
options = {
services.polybar = {
enable = mkEnableOption "Polybar status bar";
@@ -39,7 +37,7 @@ in
default = pkgs.polybar;
defaultText = literalExample "pkgs.polybar";
description = "Polybar package to install.";
- example = literalExample ''
+ example = literalExample ''
pkgs.polybar.override {
i3GapsSupport = true;
alsaSupport = true;
@@ -50,15 +48,14 @@ in
};
config = mkOption {
- type = types.coercedTo
- types.path
+ type = types.coercedTo types.path
(p: { "section/base" = { include-file = "${p}"; }; })
(types.attrsOf (types.attrsOf eitherStrBoolIntList));
description = ''
Polybar configuration. Can be either path to a file, or set of attributes
that will be used to create the final configuration.
'';
- default = {};
+ default = { };
example = literalExample ''
{
"bar/top" = {
@@ -118,25 +115,20 @@ in
Description = "Polybar status bar";
After = [ "graphical-session-pre.target" ];
PartOf = [ "graphical-session.target" ];
- X-Restart-Triggers = [
- "${config.xdg.configFile."polybar/config".source}"
- ];
+ X-Restart-Triggers =
+ [ "${config.xdg.configFile."polybar/config".source}" ];
};
Service = {
Type = "forking";
Environment = "PATH=${cfg.package}/bin:/run/wrappers/bin";
ExecStart =
- let
- scriptPkg = pkgs.writeShellScriptBin "polybar-start" cfg.script;
- in
- "${scriptPkg}/bin/polybar-start";
+ let scriptPkg = pkgs.writeShellScriptBin "polybar-start" cfg.script;
+ in "${scriptPkg}/bin/polybar-start";
Restart = "on-failure";
};
- Install = {
- WantedBy = [ "graphical-session.target" ];
- };
+ Install = { WantedBy = [ "graphical-session.target" ]; };
};
};
diff --git a/modules/services/random-background.nix b/modules/services/random-background.nix
index 885574affda..9deee8deb5c 100644
--- a/modules/services/random-background.nix
+++ b/modules/services/random-background.nix
@@ -6,18 +6,11 @@ let
cfg = config.services.random-background;
- flags = lib.concatStringsSep " " (
- [
- "--bg-${cfg.display}"
- "--no-fehbg"
- "--randomize"
- ]
- ++ lib.optional (!cfg.enableXinerama) "--no-xinerama"
- );
+ flags = lib.concatStringsSep " "
+ ([ "--bg-${cfg.display}" "--no-fehbg" "--randomize" ]
+ ++ lib.optional (!cfg.enableXinerama) "--no-xinerama");
-in
-
-{
+in {
meta.maintainers = [ maintainers.rycee ];
options = {
@@ -73,41 +66,32 @@ in
};
};
- config = mkIf cfg.enable (
- mkMerge ([
- {
- systemd.user.services.random-background = {
- Unit = {
- Description = "Set random desktop background using feh";
- After = [ "graphical-session-pre.target" ];
- PartOf = [ "graphical-session.target" ];
- };
-
- Service = {
- Type = "oneshot";
- ExecStart = "${pkgs.feh}/bin/feh ${flags} ${cfg.imageDirectory}";
- IOSchedulingClass = "idle";
- };
+ config = mkIf cfg.enable (mkMerge ([
+ {
+ systemd.user.services.random-background = {
+ Unit = {
+ Description = "Set random desktop background using feh";
+ After = [ "graphical-session-pre.target" ];
+ PartOf = [ "graphical-session.target" ];
+ };
- Install = {
- WantedBy = [ "graphical-session.target" ];
- };
+ Service = {
+ Type = "oneshot";
+ ExecStart = "${pkgs.feh}/bin/feh ${flags} ${cfg.imageDirectory}";
+ IOSchedulingClass = "idle";
};
- }
- (mkIf (cfg.interval != null) {
- systemd.user.timers.random-background = {
- Unit = {
- Description = "Set random desktop background using feh";
- };
- Timer = {
- OnUnitActiveSec = cfg.interval;
- };
+ Install = { WantedBy = [ "graphical-session.target" ]; };
+ };
+ }
+ (mkIf (cfg.interval != null) {
+ systemd.user.timers.random-background = {
+ Unit = { Description = "Set random desktop background using feh"; };
- Install = {
- WantedBy = [ "timers.target" ];
- };
- };
- })
- ]));
+ Timer = { OnUnitActiveSec = cfg.interval; };
+
+ Install = { WantedBy = [ "timers.target" ]; };
+ };
+ })
+ ]));
}
diff --git a/modules/services/redshift.nix b/modules/services/redshift.nix
index 1452fcc95ed..86cbab205f6 100644
--- a/modules/services/redshift.nix
+++ b/modules/services/redshift.nix
@@ -8,9 +8,7 @@ let
cfg = config.services.redshift;
-in
-
-{
+in {
meta.maintainers = [ maintainers.rycee ];
options.services.redshift = {
@@ -113,7 +111,7 @@ in
extraOptions = mkOption {
type = types.listOf types.str;
- default = [];
+ default = [ ];
example = [ "-v" "-m randr" ];
description = ''
Additional command-line arguments to pass to
@@ -123,17 +121,13 @@ in
};
config = mkIf cfg.enable {
- assertions = [
- {
- assertion =
- cfg.provider == "manual"
- -> cfg.latitude != null && cfg.longitude != null;
- message =
- "Must provide services.redshift.latitude and"
- + " services.redshift.latitude when"
- + " services.redshift.provider is set to \"manual\".";
- }
- ];
+ assertions = [{
+ assertion = cfg.provider == "manual" -> cfg.latitude != null
+ && cfg.longitude != null;
+ message = "Must provide services.redshift.latitude and"
+ + " services.redshift.latitude when"
+ + " services.redshift.provider is set to \"manual\".";
+ }];
systemd.user.services.redshift = {
Unit = {
@@ -142,27 +136,25 @@ in
PartOf = [ "graphical-session.target" ];
};
- Install = {
- WantedBy = [ "graphical-session.target" ];
- };
+ Install = { WantedBy = [ "graphical-session.target" ]; };
Service = {
- ExecStart =
- let
- providerString =
- if cfg.provider == "manual"
- then "${cfg.latitude}:${cfg.longitude}"
- else cfg.provider;
-
- args = [
- "-l ${providerString}"
- "-t ${toString cfg.temperature.day}:${toString cfg.temperature.night}"
- "-b ${toString cfg.brightness.day}:${toString cfg.brightness.night}"
- ] ++ cfg.extraOptions;
-
- command = if cfg.tray then "redshift-gtk" else "redshift";
- in
- "${cfg.package}/bin/${command} ${concatStringsSep " " args}";
+ ExecStart = let
+ providerString = if cfg.provider == "manual" then
+ "${cfg.latitude}:${cfg.longitude}"
+ else
+ cfg.provider;
+
+ args = [
+ "-l ${providerString}"
+ "-t ${toString cfg.temperature.day}:${
+ toString cfg.temperature.night
+ }"
+ "-b ${toString cfg.brightness.day}:${toString cfg.brightness.night}"
+ ] ++ cfg.extraOptions;
+
+ command = if cfg.tray then "redshift-gtk" else "redshift";
+ in "${cfg.package}/bin/${command} ${concatStringsSep " " args}";
RestartSec = 3;
Restart = "always";
};
diff --git a/modules/services/rsibreak.nix b/modules/services/rsibreak.nix
index 242e03432e8..77eaa71f958 100644
--- a/modules/services/rsibreak.nix
+++ b/modules/services/rsibreak.nix
@@ -6,9 +6,7 @@ let
cfg = config.services.rsibreak;
-in
-
-{
+in {
options.services.rsibreak = {
enable = mkEnableOption "rsibreak";
@@ -23,9 +21,7 @@ in
PartOf = [ "graphical-session.target" ];
};
- Install = {
- WantedBy = [ "graphical-session.target" ];
- };
+ Install = { WantedBy = [ "graphical-session.target" ]; };
Service = {
Environment = "PATH=${config.home.profileDirectory}/bin";
diff --git a/modules/services/screen-locker.nix b/modules/services/screen-locker.nix
index e3da14069bc..2d0fc758870 100644
--- a/modules/services/screen-locker.nix
+++ b/modules/services/screen-locker.nix
@@ -29,7 +29,7 @@ in {
xautolockExtraOptions = mkOption {
type = types.listOf types.str;
- default = [];
+ default = [ ];
description = ''
Extra command-line arguments to pass to <command>xautolock</command>.
'';
@@ -37,7 +37,7 @@ in {
xssLockExtraOptions = mkOption {
type = types.listOf types.str;
- default = [];
+ default = [ ];
description = ''
Extra command-line arguments to pass to <command>xss-lock</command>.
'';
@@ -53,9 +53,7 @@ in {
PartOf = [ "graphical-session.target" ];
};
- Install = {
- WantedBy = [ "graphical-session.target" ];
- };
+ Install = { WantedBy = [ "graphical-session.target" ]; };
Service = {
ExecStart = concatStringsSep " " ([
@@ -70,7 +68,9 @@ in {
# xss-lock will run specified screen locker when the session is locked via loginctl
# can't be started as a systemd service,
# see https://bitbucket.org/raymonad/xss-lock/issues/13/allow-operation-as-systemd-user-unit
- xsession.initExtra = "${pkgs.xss-lock}/bin/xss-lock ${concatStringsSep " " cfg.xssLockExtraOptions} -- ${cfg.lockCmd} &";
+ xsession.initExtra = "${pkgs.xss-lock}/bin/xss-lock ${
+ concatStringsSep " " cfg.xssLockExtraOptions
+ } -- ${cfg.lockCmd} &";
};
}
diff --git a/modules/services/spotifyd.nix b/modules/services/spotifyd.nix
index b9e09126c9c..bc231814eba 100644
--- a/modules/services/spotifyd.nix
+++ b/modules/services/spotifyd.nix
@@ -7,18 +7,16 @@ let
cfg = config.services.spotifyd;
configFile = pkgs.writeText "spotifyd.conf" ''
- ${generators.toINI {} cfg.settings}
+ ${generators.toINI { } cfg.settings}
'';
-in
-
-{
+in {
options.services.spotifyd = {
enable = mkEnableOption "SpotifyD connect";
settings = mkOption {
type = types.attrsOf (types.attrsOf types.str);
- default = {};
+ default = { };
description = "Configuration for spotifyd";
example = literalExample ''
{
@@ -44,7 +42,8 @@ in
Install.WantedBy = [ "default.target" ];
Service = {
- ExecStart = "${pkgs.spotifyd}/bin/spotifyd --no-daemon --config-path ${configFile}";
+ ExecStart =
+ "${pkgs.spotifyd}/bin/spotifyd --no-daemon --config-path ${configFile}";
Restart = "always";
RestartSec = 12;
};
diff --git a/modules/services/stalonetray.nix b/modules/services/stalonetray.nix
index 934e78c99a1..cca60498963 100644
--- a/modules/services/stalonetray.nix
+++ b/modules/services/stalonetray.nix
@@ -6,9 +6,7 @@ let
cfg = config.services.stalonetray;
-in
-
-{
+in {
options = {
services.stalonetray = {
enable = mkEnableOption "Stalonetray system tray";
@@ -22,19 +20,18 @@ in
};
config = mkOption {
- type = with types;
- attrsOf (nullOr (either str (either bool int)));
- description = ''
- Stalonetray configuration as a set of attributes.
- '';
- default = {};
- example = {
- geometry = "3x1-600+0";
- decorations = null;
- icon_size = 30;
- sticky = true;
- background = "#cccccc";
- };
+ type = with types; attrsOf (nullOr (either str (either bool int)));
+ description = ''
+ Stalonetray configuration as a set of attributes.
+ '';
+ default = { };
+ example = {
+ geometry = "3x1-600+0";
+ decorations = null;
+ icon_size = 30;
+ sticky = true;
+ background = "#cccccc";
+ };
};
extraConfig = mkOption {
@@ -42,11 +39,11 @@ in
description = "Additional configuration lines for stalonetrayrc.";
default = "";
example = ''
- geometry 3x1-600+0
- decorations none
- icon_size 30
- sticky true
- background "#cccccc"
+ geometry 3x1-600+0
+ decorations none
+ icon_size 30
+ sticky true
+ background "#cccccc"
'';
};
};
@@ -63,9 +60,7 @@ in
PartOf = [ "graphical-session.target" ];
};
- Install = {
- WantedBy = [ "graphical-session.target" ];
- };
+ Install = { WantedBy = [ "graphical-session.target" ]; };
Service = {
ExecStart = "${cfg.package}/bin/stalonetray";
@@ -74,17 +69,18 @@ in
};
}
- (mkIf (cfg.config != {}) {
- home.file.".stalonetrayrc".text =
- let
- valueToString = v:
- if isBool v then (if v then "true" else "false")
- else if (v==null) then "none"
- else ''"${toString v}"'';
- in
- concatStrings (
- mapAttrsToList (k: v: "${k} ${valueToString v}\n") cfg.config
- );
+ (mkIf (cfg.config != { }) {
+ home.file.".stalonetrayrc".text = let
+ valueToString = v:
+ if isBool v then
+ (if v then "true" else "false")
+ else if (v == null) then
+ "none"
+ else
+ ''"${toString v}"'';
+ in concatStrings (mapAttrsToList (k: v: ''
+ ${k} ${valueToString v}
+ '') cfg.config);
})
(mkIf (cfg.extraConfig != "") {
diff --git a/modules/services/status-notifier-watcher.nix b/modules/services/status-notifier-watcher.nix
index 8a2ded8720a..3c3e54877b4 100644
--- a/modules/services/status-notifier-watcher.nix
+++ b/modules/services/status-notifier-watcher.nix
@@ -6,9 +6,7 @@ let
cfg = config.services.status-notifier-watcher;
-in
-
-{
+in {
meta.maintainers = [ maintainers.pltanton ];
options = {
@@ -17,30 +15,30 @@ in
package = mkOption {
default = pkgs.haskellPackages.status-notifier-item;
- defaultText = literalExample "pkgs.haskellPackages.status-notifier-item";
+ defaultText =
+ literalExample "pkgs.haskellPackages.status-notifier-item";
type = types.package;
example = literalExample "pkgs.haskellPackages.status-notifier-item";
- description = "The package to use for the status notifier watcher binary.";
+ description =
+ "The package to use for the status notifier watcher binary.";
};
};
};
config = mkIf cfg.enable {
systemd.user.services.status-notifier-watcher = {
- Unit = {
- Description = "SNI watcher";
- After = [ "graphical-session-pre.target" ];
- PartOf = [ "graphical-session.target" ];
- Before = [ "taffybar.service" ];
- };
-
- Service = {
- ExecStart = "${cfg.package}/bin/status-notifier-watcher";
- };
-
- Install = {
- WantedBy = [ "graphical-session.target" "taffybar.service" ];
- };
+ Unit = {
+ Description = "SNI watcher";
+ After = [ "graphical-session-pre.target" ];
+ PartOf = [ "graphical-session.target" ];
+ Before = [ "taffybar.service" ];
+ };
+
+ Service = { ExecStart = "${cfg.package}/bin/status-notifier-watcher"; };
+
+ Install = {
+ WantedBy = [ "graphical-session.target" "taffybar.service" ];
+ };
};
};
}
diff --git a/modules/services/syncthing.nix b/modules/services/syncthing.nix
index 7fc556c5234..2ef10540164 100644
--- a/modules/services/syncthing.nix
+++ b/modules/services/syncthing.nix
@@ -22,21 +22,21 @@ with lib;
systemd.user.services = {
syncthing = {
Unit = {
- Description = "Syncthing - Open Source Continuous File Synchronization";
+ Description =
+ "Syncthing - Open Source Continuous File Synchronization";
Documentation = "man:syncthing(1)";
After = [ "network.target" ];
};
Service = {
- ExecStart = "${pkgs.syncthing}/bin/syncthing -no-browser -no-restart -logflags=0";
+ ExecStart =
+ "${pkgs.syncthing}/bin/syncthing -no-browser -no-restart -logflags=0";
Restart = "on-failure";
SuccessExitStatus = [ 3 4 ];
RestartForceExitStatus = [ 3 4 ];
};
- Install = {
- WantedBy = [ "default.target" ];
- };
+ Install = { WantedBy = [ "default.target" ]; };
};
};
})
@@ -46,10 +46,12 @@ with lib;
qsyncthingtray = {
Unit = {
Description = "QSyncthingTray";
- After = [ "graphical-session-pre.target"
- "polybar.service"
- "taffybar.service"
- "stalonetray.service" ];
+ After = [
+ "graphical-session-pre.target"
+ "polybar.service"
+ "taffybar.service"
+ "stalonetray.service"
+ ];
PartOf = [ "graphical-session.target" ];
};
@@ -58,9 +60,7 @@ with lib;
ExecStart = "${pkgs.qsyncthingtray}/bin/QSyncthingTray";
};
- Install = {
- WantedBy = [ "graphical-session.target" ];
- };
+ Install = { WantedBy = [ "graphical-session.target" ]; };
};
};
})
diff --git a/modules/services/taffybar.nix b/modules/services/taffybar.nix
index 69531a19dc9..5392755423d 100644
--- a/modules/services/taffybar.nix
+++ b/modules/services/taffybar.nix
@@ -6,9 +6,7 @@ let
cfg = config.services.taffybar;
-in
-
-{
+in {
meta.maintainers = [ maintainers.rycee ];
options = {
@@ -38,9 +36,7 @@ in
Restart = "on-failure";
};
- Install = {
- WantedBy = [ "graphical-session.target" ];
- };
+ Install = { WantedBy = [ "graphical-session.target" ]; };
};
xsession.importedVariables = [ "GDK_PIXBUF_MODULE_FILE" ];
diff --git a/modules/services/tahoe-lafs.nix b/modules/services/tahoe-lafs.nix
index bb7be8d7db9..742b779b270 100644
--- a/modules/services/tahoe-lafs.nix
+++ b/modules/services/tahoe-lafs.nix
@@ -6,20 +6,14 @@ with lib;
meta.maintainers = [ maintainers.rycee ];
options = {
- services.tahoe-lafs = {
- enable = mkEnableOption "Tahoe-LAFS";
- };
+ services.tahoe-lafs = { enable = mkEnableOption "Tahoe-LAFS"; };
};
config = mkIf config.services.tahoe-lafs.enable {
systemd.user.services.tahoe-lafs = {
- Unit = {
- Description = "Tahoe-LAFS";
- };
+ Unit = { Description = "Tahoe-LAFS"; };
- Service = {
- ExecStart = "${pkgs.tahoelafs}/bin/tahoe run -C %h/.tahoe";
- };
+ Service = { ExecStart = "${pkgs.tahoelafs}/bin/tahoe run -C %h/.tahoe"; };
};
};
}
diff --git a/modules/services/taskwarrior-sync.nix b/modules/services/taskwarrior-sync.nix
index 4179ac8aa85..d16c0681bee 100644
--- a/modules/services/taskwarrior-sync.nix
+++ b/modules/services/taskwarrior-sync.nix
@@ -6,9 +6,7 @@ let
cfg = config.services.taskwarrior-sync;
-in
-
-{
+in {
meta.maintainers = with maintainers; [ minijackson pacien ];
options.services.taskwarrior-sync = {
@@ -32,9 +30,7 @@ in
config = mkIf cfg.enable {
systemd.user.services.taskwarrior-sync = {
- Unit = {
- Description = "Taskwarrior sync";
- };
+ Unit = { Description = "Taskwarrior sync"; };
Service = {
CPUSchedulingPolicy = "idle";
IOSchedulingClass = "idle";
@@ -43,16 +39,12 @@ in
};
systemd.user.timers.taskwarrior-sync = {
- Unit = {
- Description = "Taskwarrior periodic sync";
- };
+ Unit = { Description = "Taskwarrior periodic sync"; };
Timer = {
Unit = "taskwarrior-sync.service";
OnCalendar = cfg.frequency;
};
- Install = {
- WantedBy = [ "timers.target" ];
- };
+ Install = { WantedBy = [ "timers.target" ]; };
};
};
}
diff --git a/modules/services/udiskie.nix b/modules/services/udiskie.nix
index c058a23de6c..2444d68ff93 100644
--- a/modules/services/udiskie.nix
+++ b/modules/services/udiskie.nix
@@ -6,19 +6,17 @@ let
cfg = config.services.udiskie;
- commandArgs =
- concatStringsSep " " (
- map (opt: "-" + opt) [
- (if cfg.automount then "a" else "A")
- (if cfg.notify then "n" else "N")
- ({ always = "t"; auto = "s"; never = "T"; }.${cfg.tray})
- ]
- ++ optional config.xsession.preferStatusNotifierItems "--appindicator"
- );
-
-in
-
-{
+ commandArgs = concatStringsSep " " (map (opt: "-" + opt) [
+ (if cfg.automount then "a" else "A")
+ (if cfg.notify then "n" else "N")
+ ({
+ always = "t";
+ auto = "s";
+ never = "T";
+ }.${cfg.tray})
+ ] ++ optional config.xsession.preferStatusNotifierItems "--appindicator");
+
+in {
meta.maintainers = [ maintainers.rycee ];
imports = [
@@ -77,19 +75,17 @@ in
config = mkIf config.services.udiskie.enable {
systemd.user.services.udiskie = {
- Unit = {
- Description = "udiskie mount daemon";
- After = [ "graphical-session-pre.target" ];
- PartOf = [ "graphical-session.target" ];
- };
+ Unit = {
+ Description = "udiskie mount daemon";
+ After = [ "graphical-session-pre.target" ];
+ PartOf = [ "graphical-session.target" ];
+ };
- Service = {
- ExecStart = "${pkgs.udiskie}/bin/udiskie -2 ${commandArgs}";
- };
+ Service = {
+ ExecStart = "${pkgs.udiskie}/bin/udiskie -2 ${commandArgs}";
+ };
- Install = {
- WantedBy = [ "graphical-session.target" ];
- };
+ Install = { WantedBy = [ "graphical-session.target" ]; };
};
};
}
diff --git a/modules/services/unclutter.nix b/modules/services/unclutter.nix
index 6b5ac866ec5..5e760639591 100644
--- a/modules/services/unclutter.nix
+++ b/modules/services/unclutter.nix
@@ -55,9 +55,7 @@ in {
Restart = "always";
};
- Install = {
- WantedBy = [ "graphical-session.target" ];
- };
+ Install = { WantedBy = [ "graphical-session.target" ]; };
};
};
}
diff --git a/modules/services/unison.nix b/modules/services/unison.nix
index fc998e39a00..93c59e8fd62 100644
--- a/modules/services/unison.nix
+++ b/modules/services/unison.nix
@@ -7,10 +7,8 @@ let
cfg = config.services.unison;
pairOf = t:
- let
- list = types.addCheck (types.listOf t) (l: length l == 2);
- in
- list // { description = list.description + " of length 2"; };
+ let list = types.addCheck (types.listOf t) (l: length l == 2);
+ in list // { description = list.description + " of length 2"; };
pairOptions = {
options = {
@@ -64,17 +62,14 @@ let
serialiseArg = key: val: "-${key}=${escapeShellArg val}";
- serialiseArgs = args:
- concatStringsSep " " (mapAttrsToList serialiseArg args);
+ serialiseArgs = args: concatStringsSep " " (mapAttrsToList serialiseArg args);
makeDefs = gen:
mapAttrs'
- (name: pairCfg: nameValuePair "unison-pair-${name}" (gen name pairCfg))
- cfg.pairs;
+ (name: pairCfg: nameValuePair "unison-pair-${name}" (gen name pairCfg))
+ cfg.pairs;
-in
-
-{
+in {
meta.maintainers = with maintainers; [ pacien ];
options.services.unison = {
@@ -120,9 +115,7 @@ in
'';
};
- Install = {
- WantedBy = [ "default.target" ];
- };
+ Install = { WantedBy = [ "default.target" ]; };
});
};
}
diff --git a/modules/services/window-managers/awesome.nix b/modules/services/window-managers/awesome.nix
index fe914864e2a..d2e2903f83b 100644
--- a/modules/services/window-managers/awesome.nix
+++ b/modules/services/window-managers/awesome.nix
@@ -9,12 +9,9 @@ let
getLuaPath = lib: dir: "${lib}/${dir}/lua/${pkgs.luaPackages.lua.luaversion}";
makeSearchPath = lib.concatMapStrings (path:
" --search ${getLuaPath path "share"}"
- + " --search ${getLuaPath path "lib"}"
- );
+ + " --search ${getLuaPath path "lib"}");
-in
-
-{
+in {
options = {
xsession.windowManager.awesome = {
enable = mkEnableOption "Awesome window manager.";
@@ -27,31 +24,29 @@ in
};
luaModules = mkOption {
- default = [];
- type = types.listOf types.package;
- description = ''
- List of lua packages available for being
- used in the Awesome configuration.
- '';
- example = literalExample "[ luaPackages.oocairo ]";
+ default = [ ];
+ type = types.listOf types.package;
+ description = ''
+ List of lua packages available for being
+ used in the Awesome configuration.
+ '';
+ example = literalExample "[ luaPackages.oocairo ]";
};
noArgb = mkOption {
- default = false;
- type = types.bool;
- description = ''
- Disable client transparency support, which can be greatly
- detrimental to performance in some setups
- '';
+ default = false;
+ type = types.bool;
+ description = ''
+ Disable client transparency support, which can be greatly
+ detrimental to performance in some setups
+ '';
};
};
};
config = mkIf cfg.enable {
home.packages = [ awesome ];
- xsession.windowManager.command =
- "${awesome}/bin/awesome "
- + optionalString cfg.noArgb "--no-argb "
- + makeSearchPath cfg.luaModules;
+ xsession.windowManager.command = "${awesome}/bin/awesome "
+ + optionalString cfg.noArgb "--no-argb " + makeSearchPath cfg.luaModules;
};
}
diff --git a/modules/services/window-managers/bspwm/default.nix b/modules/services/window-managers/bspwm/default.nix
index e9fa064a8ba..9ea5adbc880 100644
--- a/modules/services/window-managers/bspwm/default.nix
+++ b/modules/services/window-managers/bspwm/default.nix
@@ -13,59 +13,62 @@ let
formatConfig = n: v:
let
formatList = x:
- if isList x
- then throw "can not convert 2-dimensional lists to bspwm format"
- else formatValue x;
+ if isList x then
+ throw "can not convert 2-dimensional lists to bspwm format"
+ else
+ formatValue x;
formatValue = v:
- if isBool v then (if v then "true" else "false")
- else if isList v then concatMapStringsSep ", " formatList v
- else if isString v then "${lib.strings.escapeShellArg v}"
- else toString v;
- in
- "bspc config ${n} ${formatValue v}";
+ if isBool v then
+ (if v then "true" else "false")
+ else if isList v then
+ concatMapStringsSep ", " formatList v
+ else if isString v then
+ "${lib.strings.escapeShellArg v}"
+ else
+ toString v;
+ in "bspc config ${n} ${formatValue v}";
formatMonitors = n: v: "bspc monitor ${n} -d ${concatStringsSep " " v}";
formatRules = target: directiveOptions:
let
formatDirective = n: v:
- if isBool v then (if v then "${camelToSnake n}=on" else "${camelToSnake n}=off")
- else if (n == "desktop" || n == "node") then "${camelToSnake n}='${v}'"
- else "${camelToSnake n}=${lib.strings.escapeShellArg v}";
+ if isBool v then
+ (if v then "${camelToSnake n}=on" else "${camelToSnake n}=off")
+ else if (n == "desktop" || n == "node") then
+ "${camelToSnake n}='${v}'"
+ else
+ "${camelToSnake n}=${lib.strings.escapeShellArg v}";
- directives = filterAttrs (n: v: v != null && !(lib.strings.hasPrefix "_" n)) directiveOptions;
- directivesStr = builtins.concatStringsSep " " (mapAttrsToList formatDirective directives);
- in
- "bspc rule -a ${target} ${directivesStr}";
+ directives =
+ filterAttrs (n: v: v != null && !(lib.strings.hasPrefix "_" n))
+ directiveOptions;
+ directivesStr = builtins.concatStringsSep " "
+ (mapAttrsToList formatDirective directives);
+ in "bspc rule -a ${target} ${directivesStr}";
formatStartupPrograms = map (s: "${s} &");
-in
-
-{
- options = import ./options.nix { inherit pkgs; inherit lib; };
+in {
+ options = import ./options.nix {
+ inherit pkgs;
+ inherit lib;
+ };
config = mkIf cfg.enable {
home.packages = [ bspwm ];
- xsession.windowManager.command =
- let
- configFile = pkgs.writeShellScript "bspwmrc" (
- concatStringsSep "\n" (
- (mapAttrsToList formatMonitors cfg.monitors)
- ++ (mapAttrsToList formatConfig cfg.settings)
- ++ (mapAttrsToList formatRules cfg.rules)
- ++ [ ''
- # java gui fixes
- export _JAVA_AWT_WM_NONREPARENTING=1
- bspc rule -a sun-awt-X11-XDialogPeer state=floating
- '' ]
- ++ [ cfg.extraConfig ]
- ++ (formatStartupPrograms cfg.startupPrograms)
- )
- );
- configCmdOpt = optionalString (cfg.settings != null) "-c ${configFile}";
- in
- "${cfg.package}/bin/bspwm ${configCmdOpt}";
+ xsession.windowManager.command = let
+ configFile = pkgs.writeShellScript "bspwmrc" (concatStringsSep "\n"
+ ((mapAttrsToList formatMonitors cfg.monitors)
+ ++ (mapAttrsToList formatConfig cfg.settings)
+ ++ (mapAttrsToList formatRules cfg.rules) ++ [''
+ # java gui fixes
+ export _JAVA_AWT_WM_NONREPARENTING=1
+ bspc rule -a sun-awt-X11-XDialogPeer state=floating
+ ''] ++ [ cfg.extraConfig ]
+ ++ (formatStartupPrograms cfg.startupPrograms)));
+ configCmdOpt = optionalString (cfg.settings != null) "-c ${configFile}";
+ in "${cfg.package}/bin/bspwm ${configCmdOpt}";
};
}
diff --git a/modules/services/window-managers/bspwm/options.nix b/modules/services/window-managers/bspwm/options.nix
index 9d1955aa57c..58a58a1a782 100644
--- a/modules/services/window-managers/bspwm/options.nix
+++ b/modules/services/window-managers/bspwm/options.nix
@@ -28,7 +28,8 @@ let
};
state = mkOption {
- type = types.nullOr (types.enum [ "tiled" "pseudo_tiled" "floating" "fullscreen" ]);
+ type = types.nullOr
+ (types.enum [ "tiled" "pseudo_tiled" "floating" "fullscreen" ]);
default = null;
description = "The state in which a new window should spawn.";
example = "floating";
@@ -61,7 +62,7 @@ let
hidden = mkOption {
type = types.nullOr types.bool;
default = null;
- description = ''Whether the node should occupy any space.'';
+ description = "Whether the node should occupy any space.";
example = true;
};
@@ -141,9 +142,7 @@ let
};
};
-in
-
-{
+in {
xsession.windowManager.bspwm = {
enable = mkEnableOption "bspwm window manager.";
@@ -156,11 +155,10 @@ in
};
settings = mkOption {
- type = with types; let
- primitive = either bool (either int (either float str));
- in
- attrsOf (either primitive (listOf primitive));
- default = {};
+ type = with types;
+ let primitive = either bool (either int (either float str));
+ in attrsOf (either primitive (listOf primitive));
+ default = { };
description = "bspwm configuration";
example = {
"border_width" = 2;
@@ -180,16 +178,14 @@ in
monitors = mkOption {
type = types.attrsOf (types.listOf types.str);
- default = {};
+ default = { };
description = "bspc monitor configurations";
- example = {
- "HDMI-0" = [ "web" "terminal" "III" "IV" ];
- };
+ example = { "HDMI-0" = [ "web" "terminal" "III" "IV" ]; };
};
rules = mkOption {
type = types.attrsOf rule;
- default = {};
+ default = { };
description = "bspc rules";
example = literalExample ''
{
@@ -210,12 +206,9 @@ in
startupPrograms = mkOption {
type = types.listOf types.str;
- default = [];
+ default = [ ];
description = "Programs to be executed during startup.";
- example = [
- "numlockx on"
- "tilda"
- ];
+ example = [ "numlockx on" "tilda" ];
};
};
}
diff --git a/modules/services/window-managers/xmonad.nix b/modules/services/window-managers/xmonad.nix
index 6b3426b963b..7be03874a89 100644
--- a/modules/services/window-managers/xmonad.nix
+++ b/modules/services/window-managers/xmonad.nix
@@ -9,15 +9,13 @@ let
xmonad = pkgs.xmonad-with-packages.override {
ghcWithPackages = cfg.haskellPackages.ghcWithPackages;
packages = self:
- cfg.extraPackages self
- ++ optionals cfg.enableContribAndExtras [
- self.xmonad-contrib self.xmonad-extras
+ cfg.extraPackages self ++ optionals cfg.enableContribAndExtras [
+ self.xmonad-contrib
+ self.xmonad-extras
];
};
-in
-
-{
+in {
options = {
xsession.windowManager.xmonad = {
enable = mkEnableOption "xmonad window manager";
@@ -35,7 +33,7 @@ in
};
extraPackages = mkOption {
- default = self: [];
+ default = self: [ ];
defaultText = "self: []";
example = literalExample ''
haskellPackages: [
diff --git a/modules/services/xcape.nix b/modules/services/xcape.nix
index 26115a93062..f4f77caa331 100644
--- a/modules/services/xcape.nix
+++ b/modules/services/xcape.nix
@@ -6,9 +6,7 @@ let
cfg = config.services.xcape;
-in
-
-{
+in {
meta.maintainers = [ maintainers.nickhu ];
options = {
@@ -27,8 +25,11 @@ in
mapExpression = mkOption {
type = types.attrsOf types.str;
- default = {};
- example = { Shift_L = "Escape"; Control_L = "Control_L|O"; };
+ default = { };
+ example = {
+ Shift_L = "Escape";
+ Control_L = "Control_L|O";
+ };
description = ''
The value has the grammar <literal>Key[|OtherKey]</literal>.
</para>
@@ -63,14 +64,13 @@ in
Type = "forking";
ExecStart = "${pkgs.xcape}/bin/xcape"
+ optionalString (cfg.timeout != null) " -t ${toString cfg.timeout}"
- + optionalString (cfg.mapExpression != {})
- " -e '${builtins.concatStringsSep ";"
- (attrsets.mapAttrsToList (n: v: "${n}=${v}") cfg.mapExpression)}'";
+ + optionalString (cfg.mapExpression != { }) " -e '${
+ builtins.concatStringsSep ";"
+ (attrsets.mapAttrsToList (n: v: "${n}=${v}") cfg.mapExpression)
+ }'";
};
- Install = {
- WantedBy = [ "graphical-session.target" ];
- };
+ Install = { WantedBy = [ "graphical-session.target" ]; };
};
};
}
diff --git a/modules/services/xembed-sni-proxy.nix b/modules/services/xembed-sni-proxy.nix
index d9e5ae783f9..ff63d108b77 100644
--- a/modules/services/xembed-sni-proxy.nix
+++ b/modules/services/xembed-sni-proxy.nix
@@ -6,9 +6,7 @@ let
cfg = config.services.xembed-sni-proxy;
-in
-
-{
+in {
meta.maintainers = [ maintainers.rycee ];
options = {
@@ -35,9 +33,7 @@ in
PartOf = [ "graphical-session.target" ];
};
- Install = {
- WantedBy = [ "graphical-session.target" ];
- };
+ Install = { WantedBy = [ "graphical-session.target" ]; };
Service = {
Environment = "PATH=${config.home.profileDirectory}/bin";
diff --git a/modules/services/xscreensaver.nix b/modules/services/xscreensaver.nix
index 4001c294e86..73a365aa730 100644
--- a/modules/services/xscreensaver.nix
+++ b/modules/services/xscreensaver.nix
@@ -6,9 +6,7 @@ let
cfg = config.services.xscreensaver;
-in
-
-{
+in {
meta.maintainers = [ maintainers.rycee ];
options = {
@@ -17,7 +15,7 @@ in
settings = mkOption {
type = with types; attrsOf (either bool (either int str));
- default = {};
+ default = { };
example = {
mode = "blank";
lock = false;
@@ -38,19 +36,17 @@ in
mapAttrs' (n: nameValuePair "xscreensaver.${n}") cfg.settings;
systemd.user.services.xscreensaver = {
- Unit = {
- Description = "XScreenSaver";
- After = [ "graphical-session-pre.target" ];
- PartOf = [ "graphical-session.target" ];
- };
+ Unit = {
+ Description = "XScreenSaver";
+ After = [ "graphical-session-pre.target" ];
+ PartOf = [ "graphical-session.target" ];
+ };
- Service = {
- ExecStart = "${pkgs.xscreensaver}/bin/xscreensaver -no-splash";
- };
+ Service = {
+ ExecStart = "${pkgs.xscreensaver}/bin/xscreensaver -no-splash";
+ };
- Install = {
- WantedBy = [ "graphical-session.target" ];
- };
+ Install = { WantedBy = [ "graphical-session.target" ]; };
};
};
}
diff --git a/modules/services/xsuspender.nix b/modules/services/xsuspender.nix
index 22a5ca536a5..2eb40f5dd34 100644
--- a/modules/services/xsuspender.nix
+++ b/modules/services/xsuspender.nix
@@ -61,7 +61,7 @@ let
'';
type = types.nullOr types.str;
default = null;
- example = ''echo resuming ...'';
+ example = "echo resuming ...";
};
sendSignals = mkOption {
@@ -74,7 +74,8 @@ let
};
suspendSubtreePattern = mkOption {
- description = "Also suspend descendant processes that match this regex.";
+ description =
+ "Also suspend descendant processes that match this regex.";
type = types.nullOr types.str;
default = null;
};
@@ -105,9 +106,7 @@ let
};
};
-in
-
-{
+in {
meta.maintainers = [ maintainers.offline ];
options = {
@@ -117,13 +116,13 @@ in
defaults = mkOption {
description = "XSuspender defaults.";
type = xsuspenderOptions;
- default = {};
+ default = { };
};
rules = mkOption {
description = "Attribute set of XSuspender rules.";
type = types.attrsOf xsuspenderOptions;
- default = {};
+ default = { };
example = {
Chromium = {
suspendDelay = 10;
@@ -147,9 +146,9 @@ in
};
config = mkIf cfg.enable {
- services.xsuspender.iniContent =
- let
- mkSection = values: filterAttrs (_: v: v != null) {
+ services.xsuspender.iniContent = let
+ mkSection = values:
+ filterAttrs (_: v: v != null) {
match_wm_class_contains = values.matchWmClassContains;
match_wm_class_group_contains = values.matchWmClassGroupContains;
match_wm_name_contains = values.matchWmNameContains;
@@ -164,25 +163,22 @@ in
auto_suspend_on_battery = values.autoSuspendOnBattery;
downclock_on_battery = values.downclockOnBattery;
};
- in
- {
- Default = mkSection cfg.defaults;
- }
- // mapAttrs (_: mkSection) cfg.rules;
+ in {
+ Default = mkSection cfg.defaults;
+ } // mapAttrs (_: mkSection) cfg.rules;
# To make the xsuspender tool available.
home.packages = [ pkgs.xsuspender ];
- xdg.configFile."xsuspender.conf".text = generators.toINI {} cfg.iniContent;
+ xdg.configFile."xsuspender.conf".text = generators.toINI { } cfg.iniContent;
systemd.user.services.xsuspender = {
Unit = {
Description = "XSuspender";
After = [ "graphical-session-pre.target" ];
PartOf = [ "graphical-session.target" ];
- X-Restart-Triggers = [
- "${config.xdg.configFile."xsuspender.conf".source}"
- ];
+ X-Restart-Triggers =
+ [ "${config.xdg.configFile."xsuspender.conf".source}" ];
};
Service = {
@@ -190,9 +186,7 @@ in
Environment = mkIf cfg.debug [ "G_MESSAGE_DEBUG=all" ];
};
- Install = {
- WantedBy = [ "graphical-session.target" ];
- };
+ Install = { WantedBy = [ "graphical-session.target" ]; };
};
};
}
diff --git a/modules/xcursor.nix b/modules/xcursor.nix
index 171586028cd..63ceef387df 100644
--- a/modules/xcursor.nix
+++ b/modules/xcursor.nix
@@ -36,9 +36,7 @@ let
};
};
-in
-
-{
+in {
meta.maintainers = [ maintainers.league ];
options = {
@@ -58,15 +56,17 @@ in
config = mkIf (cfg != null) {
- home.packages = [cfg.package];
+ home.packages = [ cfg.package ];
xsession.initExtra = ''
- ${pkgs.xorg.xsetroot}/bin/xsetroot -xcf ${cfg.package}/share/icons/${cfg.name}/cursors/${cfg.defaultCursor} ${toString cfg.size}
+ ${pkgs.xorg.xsetroot}/bin/xsetroot -xcf ${cfg.package}/share/icons/${cfg.name}/cursors/${cfg.defaultCursor} ${
+ toString cfg.size
+ }
'';
xresources.properties = {
"Xcursor.theme" = cfg.name;
- "Xcursor.size" = cfg.size;
+ "Xcursor.size" = cfg.size;
};
gtk.gtk2.extraConfig = ''
diff --git a/modules/xresources.nix b/modules/xresources.nix
index 1e5ec854142..b74d671befb 100644
--- a/modules/xresources.nix
+++ b/modules/xresources.nix
@@ -9,20 +9,21 @@ let
formatLine = n: v:
let
formatList = x:
- if isList x
- then throw "can not convert 2-dimensional lists to Xresources format"
- else formatValue x;
+ if isList x then
+ throw "can not convert 2-dimensional lists to Xresources format"
+ else
+ formatValue x;
formatValue = v:
- if isBool v then (if v then "true" else "false")
- else if isList v then concatMapStringsSep ", " formatList v
- else toString v;
- in
- "${n}: ${formatValue v}";
+ if isBool v then
+ (if v then "true" else "false")
+ else if isList v then
+ concatMapStringsSep ", " formatList v
+ else
+ toString v;
+ in "${n}: ${formatValue v}";
-in
-
-{
+in {
meta.maintainers = [ maintainers.rycee ];
options = {
@@ -72,11 +73,10 @@ in
config = mkIf (cfg.properties != null || cfg.extraConfig != "") {
home.file.".Xresources" = {
- text =
- concatStringsSep "\n" ([]
- ++ optional (cfg.extraConfig != "") cfg.extraConfig
- ++ optionals (cfg.properties != null) (mapAttrsToList formatLine cfg.properties)
- ) + "\n";
+ text = concatStringsSep "\n" ([ ]
+ ++ optional (cfg.extraConfig != "") cfg.extraConfig
+ ++ optionals (cfg.properties != null)
+ (mapAttrsToList formatLine cfg.properties)) + "\n";
onChange = ''
if [[ -v DISPLAY ]] ; then
$DRY_RUN_CMD ${pkgs.xorg.xrdb}/bin/xrdb -merge $HOME/.Xresources
diff --git a/modules/xsession.nix b/modules/xsession.nix
index e1cf9942e7c..d32c2849163 100644
--- a/modules/xsession.nix
+++ b/modules/xsession.nix
@@ -6,9 +6,7 @@ let
cfg = config.xsession;
-in
-
-{
+in {
meta.maintainers = [ maintainers.rycee ];
options = {
@@ -89,30 +87,25 @@ in
systemd.user = {
services = mkIf (config.home.keyboard != null) {
- setxkbmap = {
+ setxkbmap = {
Unit = {
Description = "Set up keyboard in X";
After = [ "graphical-session-pre.target" ];
PartOf = [ "graphical-session.target" ];
};
- Install = {
- WantedBy = [ "graphical-session.target" ];
- };
+ Install = { WantedBy = [ "graphical-session.target" ]; };
Service = {
Type = "oneshot";
RemainAfterExit = true;
- ExecStart =
- with config.home.keyboard;
+ ExecStart = with config.home.keyboard;
let
- args =
- optional (layout != null) "-layout '${layout}'"
+ args = optional (layout != null) "-layout '${layout}'"
++ optional (variant != null) "-variant '${variant}'"
++ optional (model != null) "-model '${model}'"
++ map (v: "-option '${v}'") options;
- in
- "${pkgs.xorg.setxkbmap}/bin/setxkbmap ${toString args}";
+ in "${pkgs.xorg.setxkbmap}/bin/setxkbmap ${toString args}";
};
};
};
@@ -128,25 +121,24 @@ in
};
home.file.".xprofile".text = ''
- . "${config.home.profileDirectory}/etc/profile.d/hm-session-vars.sh"
+ . "${config.home.profileDirectory}/etc/profile.d/hm-session-vars.sh"
- if [ -e "$HOME/.profile" ]; then
- . "$HOME/.profile"
- fi
+ if [ -e "$HOME/.profile" ]; then
+ . "$HOME/.profile"
+ fi
- # If there are any running services from a previous session.
- # Need to run this in xprofile because the NixOS xsession
- # script starts up graphical-session.target.
- systemctl --user stop graphical-session.target graphical-session-pre.target
+ # If there are any running services from a previous session.
+ # Need to run this in xprofile because the NixOS xsession
+ # script starts up graphical-session.target.
+ systemctl --user stop graphical-session.target graphical-session-pre.target
- ${optionalString (cfg.importedVariables != []) (
- "systemctl --user import-environment "
- + toString (unique cfg.importedVariables)
- )}
+ ${optionalString (cfg.importedVariables != [ ])
+ ("systemctl --user import-environment "
+ + toString (unique cfg.importedVariables))}
- ${cfg.profileExtra}
+ ${cfg.profileExtra}
- export HM_XPROFILE_SOURCED=1
+ export HM_XPROFILE_SOURCED=1
'';
home.file.${cfg.scriptPath} = {
diff --git a/nixos/default.nix b/nixos/default.nix
index 6b7d559a651..f4e417bda71 100644
--- a/nixos/default.nix
+++ b/nixos/default.nix
@@ -10,8 +10,8 @@ let
hmModule = types.submoduleWith {
specialArgs = { lib = extendedLib; };
- modules = [(
- {name, ...}: {
+ modules = [
+ ({ name, ... }: {
imports = import ../modules/modules.nix {
inherit pkgs;
lib = extendedLib;
@@ -23,27 +23,21 @@ let
# The per-user directory inside /etc/profiles is not known by
# fontconfig by default.
- fonts.fontconfig.enable =
- cfg.useUserPackages && config.fonts.fontconfig.enable;
+ fonts.fontconfig.enable = cfg.useUserPackages
+ && config.fonts.fontconfig.enable;
home.username = config.users.users.${name}.name;
home.homeDirectory = config.users.users.${name}.home;
};
- }
- )];
+ })
+ ];
};
- serviceEnvironment =
- optionalAttrs (cfg.backupFileExtension != null) {
- HOME_MANAGER_BACKUP_EXT = cfg.backupFileExtension;
- }
- // optionalAttrs cfg.verbose {
- VERBOSE = "1";
- };
-
-in
+ serviceEnvironment = optionalAttrs (cfg.backupFileExtension != null) {
+ HOME_MANAGER_BACKUP_EXT = cfg.backupFileExtension;
+ } // optionalAttrs cfg.verbose { VERBOSE = "1"; };
-{
+in {
options = {
home-manager = {
useUserPackages = mkEnableOption ''
@@ -65,7 +59,7 @@ in
users = mkOption {
type = types.attrsOf hmModule;
- default = {};
+ default = { };
description = ''
Per-user Home Manager configuration.
'';
@@ -73,57 +67,44 @@ in
};
};
- config = mkIf (cfg.users != {}) {
- warnings =
- flatten (flip mapAttrsToList cfg.users (user: config:
- flip map config.warnings (warning:
- "${user} profile: ${warning}"
- )
- ));
-
- assertions =
- flatten (flip mapAttrsToList cfg.users (user: config:
- flip map config.assertions (assertion:
- {
- inherit (assertion) assertion;
- message = "${user} profile: ${assertion.message}";
- }
- )
- ));
-
- users.users = mkIf cfg.useUserPackages (
- mapAttrs (username: usercfg: {
- packages = usercfg.home.packages;
- }) cfg.users
- );
+ config = mkIf (cfg.users != { }) {
+ warnings = flatten (flip mapAttrsToList cfg.users (user: config:
+ flip map config.warnings (warning: "${user} profile: ${warning}")));
+
+ assertions = flatten (flip mapAttrsToList cfg.users (user: config:
+ flip map config.assertions (assertion: {
+ inherit (assertion) assertion;
+ message = "${user} profile: ${assertion.message}";
+ })));
+
+ users.users = mkIf cfg.useUserPackages
+ (mapAttrs (username: usercfg: { packages = usercfg.home.packages; })
+ cfg.users);
systemd.services = mapAttrs' (_: usercfg:
- let
- username = usercfg.home.username;
- in
- nameValuePair ("home-manager-${utils.escapeSystemdPath username}") {
- description = "Home Manager environment for ${username}";
- wantedBy = [ "multi-user.target" ];
- wants = [ "nix-daemon.socket" ];
- after = [ "nix-daemon.socket" ];
-
- environment = serviceEnvironment;
-
- serviceConfig = {
- User = usercfg.home.username;
- Type = "oneshot";
- RemainAfterExit = "yes";
- SyslogIdentifier = "hm-activate-${username}";
-
- # The activation script is run by a login shell to make sure
- # that the user is given a sane Nix environment.
- ExecStart = pkgs.writeScript "activate-${username}" ''
- #! ${pkgs.runtimeShell} -el
- echo Activating home-manager configuration for ${username}
- exec ${usercfg.home.activationPackage}/activate
- '';
- };
- }
- ) cfg.users;
+ let username = usercfg.home.username;
+ in nameValuePair ("home-manager-${utils.escapeSystemdPath username}") {
+ description = "Home Manager environment for ${username}";
+ wantedBy = [ "multi-user.target" ];
+ wants = [ "nix-daemon.socket" ];
+ after = [ "nix-daemon.socket" ];
+
+ environment = serviceEnvironment;
+
+ serviceConfig = {
+ User = usercfg.home.username;
+ Type = "oneshot";
+ RemainAfterExit = "yes";
+ SyslogIdentifier = "hm-activate-${username}";
+
+ # The activation script is run by a login shell to make sure
+ # that the user is given a sane Nix environment.
+ ExecStart = pkgs.writeScript "activate-${username}" ''
+ #! ${pkgs.runtimeShell} -el
+ echo Activating home-manager configuration for ${username}
+ exec ${usercfg.home.activationPackage}/activate
+ '';
+ };
+ }) cfg.users;
};
}
diff --git a/overlay.nix b/overlay.nix
index fa779fe0370..35136cc8556 100644
--- a/overlay.nix
+++ b/overlay.nix
@@ -1,5 +1,3 @@
self: super: {
- home-manager = super.callPackage ./home-manager {
- path = toString ./.;
- };
+ home-manager = super.callPackage ./home-manager { path = toString ./.; };
}
diff --git a/tests/lib/types/dag-merge.nix b/tests/lib/types/dag-merge.nix
index 058530ccbe2..138a0b64fb7 100644
--- a/tests/lib/types/dag-merge.nix
+++ b/tests/lib/types/dag-merge.nix
@@ -6,25 +6,19 @@ let
dag = config.lib.dag;
- result =
- let
- sorted = dag.topoSort config.tested.dag;
- data = map (e: "${e.name}:${e.data}") sorted.result;
- in
- concatStringsSep "\n" data + "\n";
-
-in
-
-{
- options.tested.dag = mkOption {
- type = hm.types.dagOf types.str;
- };
+ result = let
+ sorted = dag.topoSort config.tested.dag;
+ data = map (e: "${e.name}:${e.data}") sorted.result;
+ in concatStringsSep "\n" data + "\n";
+
+in {
+ options.tested.dag = mkOption { type = hm.types.dagOf types.str; };
config = {
tested = mkMerge [
{ dag.after = "after"; }
- { dag.before = dag.entryBefore ["after"] "before"; }
- { dag.between = dag.entryBetween ["after"] ["before"] "between"; }
+ { dag.before = dag.entryBefore [ "after" ] "before"; }
+ { dag.between = dag.entryBetween [ "after" ] [ "before" ] "between"; }
];
home.file."result.txt".text = result;
diff --git a/tests/lib/types/list-or-dag-merge.nix b/tests/lib/types/list-or-dag-merge.nix
index ac592ef350d..08216140e53 100644
--- a/tests/lib/types/list-or-dag-merge.nix
+++ b/tests/lib/types/list-or-dag-merge.nix
@@ -6,27 +6,21 @@ let
dag = config.lib.dag;
- result =
- let
- sorted = dag.topoSort config.tested.dag;
- data = map (e: "${e.name}:${e.data}") sorted.result;
- in
- concatStringsSep "\n" data + "\n";
-
-in
-
-{
- options.tested.dag = mkOption {
- type = hm.types.listOrDagOf types.str;
- };
+ result = let
+ sorted = dag.topoSort config.tested.dag;
+ data = map (e: "${e.name}:${e.data}") sorted.result;
+ in concatStringsSep "\n" data + "\n";
+
+in {
+ options.tested.dag = mkOption { type = hm.types.listOrDagOf types.str; };
config = {
tested = mkMerge [
{ dag = [ "k" "l" ]; }
{ dag = [ "a" "b" "c" "d" "e" "f" "g" "h" "i" "j" ]; }
{ dag.after = "after"; }
- { dag.before = dag.entryBefore ["after"] "before"; }
- { dag.between = dag.entryBetween ["after"] ["before"] "between"; }
+ { dag.before = dag.entryBefore [ "after" ] "before"; }
+ { dag.between = dag.entryBetween [ "after" ] [ "before" ] "between"; }
];
home.file."result.txt".text = result;
diff --git a/tests/modules/files/hidden-source.nix b/tests/modules/files/hidden-source.nix
index a8635398f48..8169fedcd7f 100644
--- a/tests/modules/files/hidden-source.nix
+++ b/tests/modules/files/hidden-source.nix
@@ -9,7 +9,10 @@ with lib;
nmt.script = ''
assertFileExists home-files/.hidden;
assertFileContent home-files/.hidden ${
- builtins.path { path = ./.hidden; name = "expected"; }
+ builtins.path {
+ path = ./.hidden;
+ name = "expected";
+ }
}
'';
};
diff --git a/tests/modules/misc/pam/default.nix b/tests/modules/misc/pam/default.nix
index 8a64f831caf..81c435e7641 100644
--- a/tests/modules/misc/pam/default.nix
+++ b/tests/modules/misc/pam/default.nix
@@ -1,3 +1 @@
-{
- pam-session-variables = ./session-variables.nix;
-}
+{ pam-session-variables = ./session-variables.nix; }
diff --git a/tests/modules/misc/xdg/default.nix b/tests/modules/misc/xdg/default.nix
index 5772becd712..e5d015759d5 100644
--- a/tests/modules/misc/xdg/default.nix
+++ b/tests/modules/misc/xdg/default.nix
@@ -1,3 +1 @@
-{
- xdg-mime-apps-basics = ./mime-apps-basics.nix;
-}
+{ xdg-mime-apps-basics = ./mime-apps-basics.nix; }
diff --git a/tests/modules/misc/xdg/mime-apps-basics.nix b/tests/modules/misc/xdg/mime-apps-basics.nix
index 2c32071064c..e181e8206f6 100644
--- a/tests/modules/misc/xdg/mime-apps-basics.nix
+++ b/tests/modules/misc/xdg/mime-apps-basics.nix
@@ -11,9 +11,7 @@ with lib;
"mimetype1" = [ "foo1.desktop" "foo2.desktop" "foo3.desktop" ];
"mimetype2" = "foo4.desktop";
};
- removed = {
- mimetype1 = "foo5.desktop";
- };
+ removed = { mimetype1 = "foo5.desktop"; };
};
defaultApplications = {
"mimetype1" = [ "default1.desktop" "default2.desktop" ];
diff --git a/tests/modules/misc/xsession/basic.nix b/tests/modules/misc/xsession/basic.nix
index d86b57ddbe0..39df6362380 100644
--- a/tests/modules/misc/xsession/basic.nix
+++ b/tests/modules/misc/xsession/basic.nix
@@ -17,11 +17,9 @@ with lib;
nixpkgs.overlays = [
(self: super: {
xorg = super.xorg // {
- setxkbmap = super.xorg.setxkbmap // {
- outPath = "@setxkbmap@";
- };
+ setxkbmap = super.xorg.setxkbmap // { outPath = "@setxkbmap@"; };
};
- })
+ })
];
nmt.script = ''
diff --git a/tests/modules/misc/xsession/keyboard-without-layout.nix b/tests/modules/misc/xsession/keyboard-without-layout.nix
index 5f89a29edf1..015efe6154a 100644
--- a/tests/modules/misc/xsession/keyboard-without-layout.nix
+++ b/tests/modules/misc/xsession/keyboard-without-layout.nix
@@ -8,9 +8,7 @@ with lib;
home.homeDirectory = "/test-home";
- home.keyboard = {
- options = [ "ctrl:nocaps" "altwin:no_win" ];
- };
+ home.keyboard = { options = [ "ctrl:nocaps" "altwin:no_win" ]; };
xsession = {
enable = true;
@@ -23,11 +21,9 @@ with lib;
nixpkgs.overlays = [
(self: super: {
xorg = super.xorg // {
- setxkbmap = super.xorg.setxkbmap // {
- outPath = "@setxkbmap@";
- };
+ setxkbmap = super.xorg.setxkbmap // { outPath = "@setxkbmap@"; };
};
- })
+ })
];
nmt.script = ''
diff --git a/tests/modules/programs/alacritty/empty-settings.nix b/tests/modules/programs/alacritty/empty-settings.nix
index 5fd2792a88e..65470473c1a 100644
--- a/tests/modules/programs/alacritty/empty-settings.nix
+++ b/tests/modules/programs/alacritty/empty-settings.nix
@@ -7,9 +7,7 @@ with lib;
programs.alacritty.enable = true;
nixpkgs.overlays = [
- (self: super: {
- alacritty = pkgs.writeScriptBin "dummy-alacritty" "";
- })
+ (self: super: { alacritty = pkgs.writeScriptBin "dummy-alacritty" ""; })
];
nmt.script = ''
diff --git a/tests/modules/programs/alacritty/example-settings.nix b/tests/modules/programs/alacritty/example-settings.nix
index 0caa80258b1..46be1064ce6 100644
--- a/tests/modules/programs/alacritty/example-settings.nix
+++ b/tests/modules/programs/alacritty/example-settings.nix
@@ -13,20 +13,16 @@ with lib;
columns = 200;
};
- key_bindings = [
- {
- key = "K";
- mods = "Control";
- chars = "\\x0c";
- }
- ];
+ key_bindings = [{
+ key = "K";
+ mods = "Control";
+ chars = "\\x0c";
+ }];
};
};
nixpkgs.overlays = [
- (self: super: {
- alacritty = pkgs.writeScriptBin "dummy-alacritty" "";
- })
+ (self: super: { alacritty = pkgs.writeScriptBin "dummy-alacritty" ""; })
];
nmt.script = ''
diff --git a/tests/modules/programs/browserpass/browserpass.nix b/tests/modules/programs/browserpass/browserpass.nix
index 229392e171b..9189a445ac0 100644
--- a/tests/modules/programs/browserpass/browserpass.nix
+++ b/tests/modules/programs/browserpass/browserpass.nix
@@ -6,30 +6,24 @@ with lib;
config = {
programs.browserpass = {
enable = true;
- browsers = [
- "chrome"
- "chromium"
- "firefox"
- "vivaldi"
- ];
+ browsers = [ "chrome" "chromium" "firefox" "vivaldi" ];
};
- nmt.script =
- if pkgs.stdenv.hostPlatform.isDarwin then ''
- for dir in "Google/Chrome" "Chromium" "Mozilla" "Vivaldi"; do
- assertFileExists "home-files/Library/Application Support/$dir/NativeMessagingHosts/com.github.browserpass.native.json"
- done
+ nmt.script = if pkgs.stdenv.hostPlatform.isDarwin then ''
+ for dir in "Google/Chrome" "Chromium" "Mozilla" "Vivaldi"; do
+ assertFileExists "home-files/Library/Application Support/$dir/NativeMessagingHosts/com.github.browserpass.native.json"
+ done
- for dir in "Google/Chrome" "Chromium" "Vivaldi"; do
- assertFileExists "home-files/Library/Application Support/$dir/policies/managed/com.github.browserpass.native.json"
- done
- '' else ''
- for dir in "google-chrome" "chromium" "vivaldi"; do
- assertFileExists "home-files/.config/$dir/NativeMessagingHosts/com.github.browserpass.native.json"
- assertFileExists "home-files/.config/$dir/policies/managed/com.github.browserpass.native.json"
- done
+ for dir in "Google/Chrome" "Chromium" "Vivaldi"; do
+ assertFileExists "home-files/Library/Application Support/$dir/policies/managed/com.github.browserpass.native.json"
+ done
+ '' else ''
+ for dir in "google-chrome" "chromium" "vivaldi"; do
+ assertFileExists "home-files/.config/$dir/NativeMessagingHosts/com.github.browserpass.native.json"
+ assertFileExists "home-files/.config/$dir/policies/managed/com.github.browserpass.native.json"
+ done
- assertFileExists "home-files/.mozilla/native-messaging-hosts/com.github.browserpass.native.json"
- '';
+ assertFileExists "home-files/.mozilla/native-messaging-hosts/com.github.browserpass.native.json"
+ '';
};
}
diff --git a/tests/modules/programs/browserpass/default.nix b/tests/modules/programs/browserpass/default.nix
index 478530f78ad..fa40ddcab31 100644
--- a/tests/modules/programs/browserpass/default.nix
+++ b/tests/modules/programs/browserpass/default.nix
@@ -1,3 +1 @@
-{
- browserpass = ./browserpass.nix;
-}
+{ browserpass = ./browserpass.nix; }
diff --git a/tests/modules/programs/firefox/profile-settings.nix b/tests/modules/programs/firefox/profile-settings.nix
index f1e9be92795..8c5fb4ec1fc 100644
--- a/tests/modules/programs/firefox/profile-settings.nix
+++ b/tests/modules/programs/firefox/profile-settings.nix
@@ -6,26 +6,20 @@ with lib;
config = {
programs.firefox = {
enable = true;
- profiles.test.settings = {
- "general.smoothScroll" = false;
- };
+ profiles.test.settings = { "general.smoothScroll" = false; };
};
nixpkgs.overlays = [
(self: super: {
- firefox-unwrapped =
- pkgs.runCommand
- "firefox-0"
- {
- meta.description = "I pretend to be Firefox";
- preferLocalBuild = true;
- allowSubstitutes = false;
- }
- ''
- mkdir -p "$out/bin"
- touch "$out/bin/firefox"
- chmod 755 "$out/bin/firefox"
- '';
+ firefox-unwrapped = pkgs.runCommand "firefox-0" {
+ meta.description = "I pretend to be Firefox";
+ preferLocalBuild = true;
+ allowSubstitutes = false;
+ } ''
+ mkdir -p "$out/bin"
+ touch "$out/bin/firefox"
+ chmod 755 "$out/bin/firefox"
+ '';
})
];
diff --git a/tests/modules/programs/firefox/state-version-19_09.nix b/tests/modules/programs/firefox/state-version-19_09.nix
index 4d65d7a7b5e..27dc867ad29 100644
--- a/tests/modules/programs/firefox/state-version-19_09.nix
+++ b/tests/modules/programs/firefox/state-version-19_09.nix
@@ -10,19 +10,15 @@ with lib;
nixpkgs.overlays = [
(self: super: {
- firefox-unwrapped =
- pkgs.runCommand
- "firefox-0"
- {
- meta.description = "I pretend to be Firefox";
- preferLocalBuild = true;
- allowSubstitutes = false;
- }
- ''
- mkdir -p "$out/bin"
- touch "$out/bin/firefox"
- chmod 755 "$out/bin/firefox"
- '';
+ firefox-unwrapped = pkgs.runCommand "firefox-0" {
+ meta.description = "I pretend to be Firefox";
+ preferLocalBuild = true;
+ allowSubstitutes = false;
+ } ''
+ mkdir -p "$out/bin"
+ touch "$out/bin/firefox"
+ chmod 755 "$out/bin/firefox"
+ '';
})
];
diff --git a/tests/modules/programs/getmail/default.nix b/tests/modules/programs/getmail/default.nix
index a0d79e7d02d..cb789a90d64 100644
--- a/tests/modules/programs/getmail/default.nix
+++ b/tests/modules/programs/getmail/default.nix
@@ -1,3 +1 @@
-{
- getmail = ./getmail.nix;
-}
+{ getmail = ./getmail.nix; }
diff --git a/tests/modules/programs/getmail/getmail.nix b/tests/modules/programs/getmail/getmail.nix
index d72a8d6505a..fe10b98f981 100644
--- a/tests/modules/programs/getmail/getmail.nix
+++ b/tests/modules/programs/getmail/getmail.nix
@@ -13,7 +13,7 @@ with lib;
"hm@example.com" = {
getmail = {
enable = true;
- mailboxes = ["INBOX" "Sent" "Work"];
+ mailboxes = [ "INBOX" "Sent" "Work" ];
destinationCommand = "/bin/maildrop";
delete = false;
};
@@ -23,7 +23,9 @@ with lib;
nmt.script = ''
assertFileExists home-files/.getmail/getmailhm@example.com
- assertFileContent home-files/.getmail/getmailhm@example.com ${./getmail-expected.conf}
+ assertFileContent home-files/.getmail/getmailhm@example.com ${
+ ./getmail-expected.conf
+ }
'';
};
}
diff --git a/tests/modules/programs/git/git-with-email.nix b/tests/modules/programs/git/git-with-email.nix
index 3509219813d..ca577eef4d3 100644
--- a/tests/modules/programs/git/git-with-email.nix
+++ b/tests/modules/programs/git/git-with-email.nix
@@ -25,7 +25,9 @@ with lib;
}
assertFileExists home-files/.config/git/config
- assertFileContent home-files/.config/git/config ${./git-with-email-expected.conf}
+ assertFileContent home-files/.config/git/config ${
+ ./git-with-email-expected.conf
+ }
assertGitConfig "sendemail.hm@example.com.from" "hm@example.com"
assertGitConfig "sendemail.hm-account.from" "hm@example.org"
diff --git a/tests/modules/programs/git/git.nix b/tests/modules/programs/git/git.nix
index 3a84bf77a73..7c0bf52de55 100644
--- a/tests/modules/programs/git/git.nix
+++ b/tests/modules/programs/git/git.nix
@@ -11,15 +11,15 @@ let
};
};
- substituteExpected = path: pkgs.substituteAll {
- src = path;
+ substituteExpected = path:
+ pkgs.substituteAll {
+ src = path;
- git_include_path = pkgs.writeText "contents" (generators.toINI {} gitInclude);
- };
-
-in
+ git_include_path =
+ pkgs.writeText "contents" (generators.toINI { } gitInclude);
+ };
-{
+in {
config = {
programs.git = mkMerge [
{
@@ -32,7 +32,7 @@ in
extraConfig = {
extra = {
name = "value";
- multiple = [1];
+ multiple = [ 1 ];
};
};
ignores = [ "*~" "*.swp" ];
@@ -62,14 +62,16 @@ in
extraConfig."extra \"backcompat.with.dots\"".previously = "worked";
extraConfig.extra.boolean = true;
extraConfig.extra.integer = 38;
- extraConfig.extra.multiple = [2];
+ extraConfig.extra.multiple = [ 2 ];
extraConfig.extra.subsection.value = "test";
}
];
nmt.script = ''
assertFileExists home-files/.config/git/config
- assertFileContent home-files/.config/git/config ${substituteExpected ./git-expected.conf}
+ assertFileContent home-files/.config/git/config ${
+ substituteExpected ./git-expected.conf
+ }
'';
};
}
diff --git a/tests/modules/programs/gpg/default.nix b/tests/modules/programs/gpg/default.nix
index 5cb24817cb0..7fed2cdcc69 100644
--- a/tests/modules/programs/gpg/default.nix
+++ b/tests/modules/programs/gpg/default.nix
@@ -1,3 +1 @@
-{
- gpg-override-defaults = ./override-defaults.nix;
-}
+{ gpg-override-defaults = ./override-defaults.nix; }
diff --git a/tests/modules/programs/mbsync/default.nix b/tests/modules/programs/mbsync/default.nix
index c31e0dc7a9d..9c369fa5018 100644
--- a/tests/modules/programs/mbsync/default.nix
+++ b/tests/modules/programs/mbsync/default.nix
@@ -1,3 +1 @@
-{
- mbsync = ./mbsync.nix;
-}
+{ mbsync = ./mbsync.nix; }
diff --git a/tests/modules/programs/mbsync/mbsync.nix b/tests/modules/programs/mbsync/mbsync.nix
index 072a7271f00..03a54c178f5 100644
--- a/tests/modules/programs/mbsync/mbsync.nix
+++ b/tests/modules/programs/mbsync/mbsync.nix
@@ -18,13 +18,9 @@ with lib;
};
accounts.email.accounts = {
- "hm@example.com".mbsync = {
- enable = true;
- };
+ "hm@example.com".mbsync = { enable = true; };
- hm-account.mbsync = {
- enable = true;
- };
+ hm-account.mbsync = { enable = true; };
};
nmt.script = ''
diff --git a/tests/modules/programs/neomutt/default.nix b/tests/modules/programs/neomutt/default.nix
index 3c778e9eef3..289f2705efa 100644
--- a/tests/modules/programs/neomutt/default.nix
+++ b/tests/modules/programs/neomutt/default.nix
@@ -1,3 +1 @@
-{
- neomutt-simple = ./neomutt.nix;
-}
+{ neomutt-simple = ./neomutt.nix; }
diff --git a/tests/modules/programs/neomutt/neomutt.nix b/tests/modules/programs/neomutt/neomutt.nix
index d7ffadd8e7d..91cb9dca249 100644
--- a/tests/modules/programs/neomutt/neomutt.nix
+++ b/tests/modules/programs/neomutt/neomutt.nix
@@ -30,17 +30,18 @@ with lib;
vimKeys = false;
};
- nixpkgs.overlays = [
- (self: super: {
- neomutt = pkgs.writeScriptBin "dummy-neomutt" "";
- })
- ];
+ nixpkgs.overlays =
+ [ (self: super: { neomutt = pkgs.writeScriptBin "dummy-neomutt" ""; }) ];
nmt.script = ''
assertFileExists home-files/.config/neomutt/neomuttrc
assertFileExists home-files/.config/neomutt/hm@example.com
- assertFileContent home-files/.config/neomutt/neomuttrc ${./neomutt-expected.conf}
- assertFileContent home-files/.config/neomutt/hm@example.com ${./hm-example.com-expected}
+ assertFileContent home-files/.config/neomutt/neomuttrc ${
+ ./neomutt-expected.conf
+ }
+ assertFileContent home-files/.config/neomutt/hm@example.com ${
+ ./hm-example.com-expected
+ }
'';
};
}
diff --git a/tests/modules/programs/newsboat/default.nix b/tests/modules/programs/newsboat/default.nix
index a9b15a44359..27f523a629c 100644
--- a/tests/modules/programs/newsboat/default.nix
+++ b/tests/modules/programs/newsboat/default.nix
@@ -1,3 +1 @@
-{
- newsboat-basics = ./newsboat-basics.nix;
-}
+{ newsboat-basics = ./newsboat-basics.nix; }
diff --git a/tests/modules/programs/newsboat/newsboat-basics.nix b/tests/modules/programs/newsboat/newsboat-basics.nix
index 49a54f6d0c3..e6eb4151776 100644
--- a/tests/modules/programs/newsboat/newsboat-basics.nix
+++ b/tests/modules/programs/newsboat/newsboat-basics.nix
@@ -14,20 +14,14 @@ with lib;
title = "Cool feed";
}
- {
- url = "http://example.org/feed2.xml";
- }
+ { url = "http://example.org/feed2.xml"; }
];
- queries = {
- "foo" = "rssurl =~ \"example.com\"";
- };
+ queries = { "foo" = ''rssurl =~ "example.com"''; };
};
nixpkgs.overlays = [
- (self: super: {
- newsboat = pkgs.writeScriptBin "dummy-newsboat" "";
- })
+ (self: super: { newsboat = pkgs.writeScriptBin "dummy-newsboat" ""; })
];
nmt.script = ''
diff --git a/tests/modules/programs/readline/default.nix b/tests/modules/programs/readline/default.nix
index 767d88bfa9d..c95745d19cd 100644
--- a/tests/modules/programs/readline/default.nix
+++ b/tests/modules/programs/readline/default.nix
@@ -1,3 +1 @@
-{
- readline-using-all-options = ./using-all-options.nix;
-}
+{ readline-using-all-options = ./using-all-options.nix; }
diff --git a/tests/modules/programs/readline/using-all-options.nix b/tests/modules/programs/readline/using-all-options.nix
index f50117679b4..104d08b8a6a 100644
--- a/tests/modules/programs/readline/using-all-options.nix
+++ b/tests/modules/programs/readline/using-all-options.nix
@@ -7,9 +7,7 @@ with lib;
programs.readline = {
enable = true;
- bindings = {
- "\C-h" = "backward-kill-word";
- };
+ bindings = { "C-h" = "backward-kill-word"; };
variables = {
bell-style = "audible";
diff --git a/tests/modules/programs/rofi/assert-on-both-theme-and-colors.nix b/tests/modules/programs/rofi/assert-on-both-theme-and-colors.nix
index 2558a25832f..0f9cfc39a6c 100644
--- a/tests/modules/programs/rofi/assert-on-both-theme-and-colors.nix
+++ b/tests/modules/programs/rofi/assert-on-both-theme-and-colors.nix
@@ -13,16 +13,12 @@ with lib;
border = "border";
separator = "separator";
};
- rows = {
- };
+ rows = { };
};
};
- home.file.result.text =
- builtins.toJSON
- (map (a: a.message)
- (filter (a: !a.assertion)
- config.assertions));
+ home.file.result.text = builtins.toJSON
+ (map (a: a.message) (filter (a: !a.assertion) config.assertions));
nmt.script = ''
assertFileContent \
diff --git a/tests/modules/programs/ssh/default-config.nix b/tests/modules/programs/ssh/default-config.nix
index 266bc9d1f5d..6d7e5508a2f 100644
--- a/tests/modules/programs/ssh/default-config.nix
+++ b/tests/modules/programs/ssh/default-config.nix
@@ -4,15 +4,10 @@ with lib;
{
config = {
- programs.ssh = {
- enable = true;
- };
+ programs.ssh = { enable = true; };
- home.file.assertions.text =
- builtins.toJSON
- (map (a: a.message)
- (filter (a: !a.assertion)
- config.assertions));
+ home.file.assertions.text = builtins.toJSON
+ (map (a: a.message) (filter (a: !a.assertion) config.assertions));
nmt.script = ''
assertFileExists home-files/.ssh/config
diff --git a/tests/modules/programs/ssh/forwards-dynamic-bind-path-with-port-asserts.nix b/tests/modules/programs/ssh/forwards-dynamic-bind-path-with-port-asserts.nix
index 2e9082de378..cf2efe5a5a5 100644
--- a/tests/modules/programs/ssh/forwards-dynamic-bind-path-with-port-asserts.nix
+++ b/tests/modules/programs/ssh/forwards-dynamic-bind-path-with-port-asserts.nix
@@ -8,25 +8,22 @@ with lib;
enable = true;
matchBlocks = {
dynamicBindPathWithPort = {
- dynamicForwards = [
- {
- # Error:
- address = "/run/user/1000/gnupg/S.gpg-agent.extra";
- port = 3000;
- }
- ];
+ dynamicForwards = [{
+ # Error:
+ address = "/run/user/1000/gnupg/S.gpg-agent.extra";
+ port = 3000;
+ }];
};
};
};
- home.file.result.text =
- builtins.toJSON
- (map (a: a.message)
- (filter (a: !a.assertion)
- config.assertions));
+ home.file.result.text = builtins.toJSON
+ (map (a: a.message) (filter (a: !a.assertion) config.assertions));
nmt.script = ''
- assertFileContent home-files/result ${./forwards-paths-with-ports-error.json}
+ assertFileContent home-files/result ${
+ ./forwards-paths-with-ports-error.json
+ }
'';
};
}
diff --git a/tests/modules/programs/ssh/forwards-dynamic-valid-bind-no-asserts.nix b/tests/modules/programs/ssh/forwards-dynamic-valid-bind-no-asserts.nix
index 15ab59e82ca..d0c3a732256 100644
--- a/tests/modules/programs/ssh/forwards-dynamic-valid-bind-no-asserts.nix
+++ b/tests/modules/programs/ssh/forwards-dynamic-valid-bind-no-asserts.nix
@@ -8,31 +8,24 @@ with lib;
enable = true;
matchBlocks = {
dynamicBindPathNoPort = {
- dynamicForwards = [
- {
- # OK:
- address = "/run/user/1000/gnupg/S.gpg-agent.extra";
- }
- ];
+ dynamicForwards = [{
+ # OK:
+ address = "/run/user/1000/gnupg/S.gpg-agent.extra";
+ }];
};
dynamicBindAddressWithPort = {
- dynamicForwards = [
- {
- # OK:
- address = "127.0.0.1";
- port = 3000;
- }
- ];
+ dynamicForwards = [{
+ # OK:
+ address = "127.0.0.1";
+ port = 3000;
+ }];
};
};
};
- home.file.result.text =
- builtins.toJSON
- (map (a: a.message)
- (filter (a: !a.assertion)
- config.assertions));
+ home.file.result.text = builtins.toJSON
+ (map (a: a.message) (filter (a: !a.assertion) config.assertions));
nmt.script = ''
assertFileExists home-files/.ssh/config
diff --git a/tests/modules/programs/ssh/forwards-local-bind-path-with-port-asserts.nix b/tests/modules/programs/ssh/forwards-local-bind-path-with-port-asserts.nix
index c05cba82791..f9d8e2daf85 100644
--- a/tests/modules/programs/ssh/forwards-local-bind-path-with-port-asserts.nix
+++ b/tests/modules/programs/ssh/forwards-local-bind-path-with-port-asserts.nix
@@ -8,29 +8,26 @@ with lib;
enable = true;
matchBlocks = {
localBindPathWithPort = {
- localForwards = [
- {
- # OK:
- host.address = "127.0.0.1";
- host.port = 3000;
+ localForwards = [{
+ # OK:
+ host.address = "127.0.0.1";
+ host.port = 3000;
- # Error:
- bind.address = "/run/user/1000/gnupg/S.gpg-agent.extra";
- bind.port = 3000;
- }
- ];
+ # Error:
+ bind.address = "/run/user/1000/gnupg/S.gpg-agent.extra";
+ bind.port = 3000;
+ }];
};
};
};
- home.file.result.text =
- builtins.toJSON
- (map (a: a.message)
- (filter (a: !a.assertion)
- config.assertions));
+ home.file.result.text = builtins.toJSON
+ (map (a: a.message) (filter (a: !a.assertion) config.assertions));
nmt.script = ''
- assertFileContent home-files/result ${./forwards-paths-with-ports-error.json}
+ assertFileContent home-files/result ${
+ ./forwards-paths-with-ports-error.json
+ }
'';
};
}
diff --git a/tests/modules/programs/ssh/forwards-local-host-path-with-port-asserts.nix b/tests/modules/programs/ssh/forwards-local-host-path-with-port-asserts.nix
index 8cecc5e5121..02a7e5b168d 100644
--- a/tests/modules/programs/ssh/forwards-local-host-path-with-port-asserts.nix
+++ b/tests/modules/programs/ssh/forwards-local-host-path-with-port-asserts.nix
@@ -8,29 +8,26 @@ with lib;
enable = true;
matchBlocks = {
localHostPathWithPort = {
- localForwards = [
- {
- # OK:
- bind.address = "127.0.0.1";
- bind.port = 3000;
+ localForwards = [{
+ # OK:
+ bind.address = "127.0.0.1";
+ bind.port = 3000;
- # Error:
- host.address = "/run/user/1000/gnupg/S.gpg-agent.extra";
- host.port = 3000;
- }
- ];
+ # Error:
+ host.address = "/run/user/1000/gnupg/S.gpg-agent.extra";
+ host.port = 3000;
+ }];
};
};
};
- home.file.result.text =
- builtins.toJSON
- (map (a: a.message)
- (filter (a: !a.assertion)
- config.assertions));
+ home.file.result.text = builtins.toJSON
+ (map (a: a.message) (filter (a: !a.assertion) config.assertions));
nmt.script = ''
- assertFileContent home-files/result ${./forwards-paths-with-ports-error.json}
+ assertFileContent home-files/result ${
+ ./forwards-paths-with-ports-error.json
+ }
'';
};
}
diff --git a/tests/modules/programs/ssh/forwards-remote-bind-path-with-port-asserts.nix b/tests/modules/programs/ssh/forwards-remote-bind-path-with-port-asserts.nix
index a0473147bd3..61ce9ae0385 100644
--- a/tests/modules/programs/ssh/forwards-remote-bind-path-with-port-asserts.nix
+++ b/tests/modules/programs/ssh/forwards-remote-bind-path-with-port-asserts.nix
@@ -8,29 +8,26 @@ with lib;
enable = true;
matchBlocks = {
remoteBindPathWithPort = {
- remoteForwards = [
- {
- # OK:
- host.address = "127.0.0.1";
- host.port = 3000;
+ remoteForwards = [{
+ # OK:
+ host.address = "127.0.0.1";
+ host.port = 3000;
- # Error:
- bind.address = "/run/user/1000/gnupg/S.gpg-agent.extra";
- bind.port = 3000;
- }
- ];
+ # Error:
+ bind.address = "/run/user/1000/gnupg/S.gpg-agent.extra";
+ bind.port = 3000;
+ }];
};
};
};
- home.file.result.text =
- builtins.toJSON
- (map (a: a.message)
- (filter (a: !a.assertion)
- config.assertions));
+ home.file.result.text = builtins.toJSON
+ (map (a: a.message) (filter (a: !a.assertion) config.assertions));
nmt.script = ''
- assertFileContent home-files/result ${./forwards-paths-with-ports-error.json}
+ assertFileContent home-files/result ${
+ ./forwards-paths-with-ports-error.json
+ }
'';
};
}
diff --git a/tests/modules/programs/ssh/forwards-remote-host-path-with-port-asserts.nix b/tests/modules/programs/ssh/forwards-remote-host-path-with-port-asserts.nix
index 770b8ab2870..71bdbcb70fd 100644
--- a/tests/modules/programs/ssh/forwards-remote-host-path-with-port-asserts.nix
+++ b/tests/modules/programs/ssh/forwards-remote-host-path-with-port-asserts.nix
@@ -8,29 +8,26 @@ with lib;
enable = true;
matchBlocks = {
remoteHostPathWithPort = {
- remoteForwards = [
- {
- # OK:
- bind.address = "127.0.0.1";
- bind.port = 3000;
+ remoteForwards = [{
+ # OK:
+ bind.address = "127.0.0.1";
+ bind.port = 3000;
- # Error:
- host.address = "/run/user/1000/gnupg/S.gpg-agent.extra";
- host.port = 3000;
- }
- ];
+ # Error:
+ host.address = "/run/user/1000/gnupg/S.gpg-agent.extra";
+ host.port = 3000;
+ }];
};
};
};
- home.file.result.text =
- builtins.toJSON
- (map (a: a.message)
- (filter (a: !a.assertion)
- config.assertions));
+ home.file.result.text = builtins.toJSON
+ (map (a: a.message) (filter (a: !a.assertion) config.assertions));
nmt.script = ''
- assertFileContent home-files/result ${./forwards-paths-with-ports-error.json}
+ assertFileContent home-files/result ${
+ ./forwards-paths-with-ports-error.json
+ }
'';
};
}
diff --git a/tests/modules/programs/ssh/match-blocks-attrs.nix b/tests/modules/programs/ssh/match-blocks-attrs.nix
index 94263ef9d27..a84a703e89d 100644
--- a/tests/modules/programs/ssh/match-blocks-attrs.nix
+++ b/tests/modules/programs/ssh/match-blocks-attrs.nix
@@ -15,13 +15,11 @@ with lib;
xyz = {
identityFile = "file";
serverAliveInterval = 60;
- localForwards = [
- {
- bind.port = 8080;
- host.address = "10.0.0.1";
- host.port = 80;
- }
- ];
+ localForwards = [{
+ bind.port = 8080;
+ host.address = "10.0.0.1";
+ host.port = 80;
+ }];
remoteForwards = [
{
bind.port = 8081;
@@ -33,25 +31,18 @@ with lib;
host.address = "/run/user/1000/gnupg/S.gpg-agent";
}
];
- dynamicForwards = [
- {
- port = 2839;
- }
- ];
+ dynamicForwards = [{ port = 2839; }];
};
"* !github.com" = {
- identityFile = ["file1" "file2"];
+ identityFile = [ "file1" "file2" ];
port = 516;
};
};
};
- home.file.assertions.text =
- builtins.toJSON
- (map (a: a.message)
- (filter (a: !a.assertion)
- config.assertions));
+ home.file.assertions.text = builtins.toJSON
+ (map (a: a.message) (filter (a: !a.assertion) config.assertions));
nmt.script = ''
assertFileExists home-files/.ssh/config
diff --git a/tests/modules/programs/texlive/default.nix b/tests/modules/programs/texlive/default.nix
index e9a6f882b62..23bfe2daf0a 100644
--- a/tests/modules/programs/texlive/default.nix
+++ b/tests/modules/programs/texlive/default.nix
@@ -1,3 +1 @@
-{
- texlive-minimal = ./texlive-minimal.nix;
-}
+{ texlive-minimal = ./texlive-minimal.nix; }
diff --git a/tests/modules/programs/tmux/vi-all-true.nix b/tests/modules/programs/tmux/vi-all-true.nix
index 70787128a8d..bce032fd654 100644
--- a/tests/modules/programs/tmux/vi-all-true.nix
+++ b/tests/modules/programs/tmux/vi-all-true.nix
@@ -16,9 +16,7 @@ with lib;
nixpkgs.overlays = [
(self: super: {
tmuxPlugins = super.tmuxPlugins // {
- sensible = super.tmuxPlugins.sensible // {
- rtp = "@sensible_rtp@";
- };
+ sensible = super.tmuxPlugins.sensible // { rtp = "@sensible_rtp@"; };
};
})
];
diff --git a/tests/modules/programs/zsh/history-path-new-custom.nix b/tests/modules/programs/zsh/history-path-new-custom.nix
index 6a8c7372d34..0c052d6949e 100644
--- a/tests/modules/programs/zsh/history-path-new-custom.nix
+++ b/tests/modules/programs/zsh/history-path-new-custom.nix
@@ -10,11 +10,8 @@ with lib;
history.path = "$HOME/some/directory/zsh_history";
};
- nixpkgs.overlays = [
- (self: super: {
- zsh = pkgs.writeScriptBin "dummy-zsh" "";
- })
- ];
+ nixpkgs.overlays =
+ [ (self: super: { zsh = pkgs.writeScriptBin "dummy-zsh" ""; }) ];
nmt.script = ''
assertFileRegex home-files/.zshrc '^HISTFILE="$HOME/some/directory/zsh_history"$'
diff --git a/tests/modules/programs/zsh/history-path-new-default.nix b/tests/modules/programs/zsh/history-path-new-default.nix
index b01bd92d67e..6d1f58a29dc 100644
--- a/tests/modules/programs/zsh/history-path-new-default.nix
+++ b/tests/modules/programs/zsh/history-path-new-default.nix
@@ -7,11 +7,8 @@ with lib;
home.stateVersion = "20.03";
programs.zsh.enable = true;
- nixpkgs.overlays = [
- (self: super: {
- zsh = pkgs.writeScriptBin "dummy-zsh" "";
- })
- ];
+ nixpkgs.overlays =
+ [ (self: super: { zsh = pkgs.writeScriptBin "dummy-zsh" ""; }) ];
nmt.script = ''
assertFileRegex home-files/.zshrc '^HISTFILE="$HOME/.zsh_history"$'
diff --git a/tests/modules/programs/zsh/history-path-old-custom.nix b/tests/modules/programs/zsh/history-path-old-custom.nix
index 672ccc81002..f5b178b5e97 100644
--- a/tests/modules/programs/zsh/history-path-old-custom.nix
+++ b/tests/modules/programs/zsh/history-path-old-custom.nix
@@ -10,11 +10,8 @@ with lib;
history.path = "some/directory/zsh_history";
};
- nixpkgs.overlays = [
- (self: super: {
- zsh = pkgs.writeScriptBin "dummy-zsh" "";
- })
- ];
+ nixpkgs.overlays =
+ [ (self: super: { zsh = pkgs.writeScriptBin "dummy-zsh" ""; }) ];
nmt.script = ''
assertFileRegex home-files/.zshrc '^HISTFILE="$HOME/some/directory/zsh_history"$'
diff --git a/tests/modules/programs/zsh/history-path-old-default.nix b/tests/modules/programs/zsh/history-path-old-default.nix
index a89070c9014..d880d966454 100644
--- a/tests/modules/programs/zsh/history-path-old-default.nix
+++ b/tests/modules/programs/zsh/history-path-old-default.nix
@@ -7,11 +7,8 @@ with lib;
home.stateVersion = "19.03";
programs.zsh.enable = true;
- nixpkgs.overlays = [
- (self: super: {
- zsh = pkgs.writeScriptBin "dummy-zsh" "";
- })
- ];
+ nixpkgs.overlays =
+ [ (self: super: { zsh = pkgs.writeScriptBin "dummy-zsh" ""; }) ];
nmt.script = ''
assertFileRegex home-files/.zshrc '^HISTFILE="$HOME/.zsh_history"$'
diff --git a/tests/modules/services/sxhkd/configuration.nix b/tests/modules/services/sxhkd/configuration.nix
index ac04a7ecf30..992c4b18a94 100644
--- a/tests/modules/services/sxhkd/configuration.nix
+++ b/tests/modules/services/sxhkd/configuration.nix
@@ -1,5 +1,4 @@
-{ config, ... }:
-{
+{ config, ... }: {
config = {
services.sxhkd = {
enable = true;
@@ -13,7 +12,7 @@
extraConfig = ''
super + c
call command c
-
+
# comment
super + d
call command d
diff --git a/tests/modules/services/window-managers/i3/default.nix b/tests/modules/services/window-managers/i3/default.nix
index 6105eb41514..e239d6c07f1 100644
--- a/tests/modules/services/window-managers/i3/default.nix
+++ b/tests/modules/services/window-managers/i3/default.nix
@@ -1,3 +1 @@
-{
- i3-keybindings = ./i3-keybindings.nix;
-}
+{ i3-keybindings = ./i3-keybindings.nix; }
diff --git a/tests/modules/services/window-managers/i3/i3-keybindings.nix b/tests/modules/services/window-managers/i3/i3-keybindings.nix
index 89e545be9df..4f8515e61ff 100644
--- a/tests/modules/services/window-managers/i3/i3-keybindings.nix
+++ b/tests/modules/services/window-managers/i3/i3-keybindings.nix
@@ -8,29 +8,21 @@ with lib;
enable = true;
config.keybindings =
- let
- modifier = config.xsession.windowManager.i3.config.modifier;
- in
- lib.mkOptionDefault {
- "${modifier}+Left" = "overridden-command";
- "${modifier}+Right" = null;
- "${modifier}+Invented" = "invented-key-command";
- };
+ let modifier = config.xsession.windowManager.i3.config.modifier;
+ in lib.mkOptionDefault {
+ "${modifier}+Left" = "overridden-command";
+ "${modifier}+Right" = null;
+ "${modifier}+Invented" = "invented-key-command";
+ };
};
nixpkgs.overlays = [
(self: super: {
- dmenu = super.dmenu // {
- outPath = "@dmenu@";
- };
+ dmenu = super.dmenu // { outPath = "@dmenu@"; };
- i3 = super.i3 // {
- outPath = "@i3@";
- };
+ i3 = super.i3 // { outPath = "@i3@"; };
- i3status = super.i3status // {
- outPath = "@i3status@";
- };
+ i3status = super.i3status // { outPath = "@i3status@"; };
})
];
diff --git a/tests/modules/systemd/timers.nix b/tests/modules/systemd/timers.nix
index 0fa0070cd77..eaa43f17695 100644
--- a/tests/modules/systemd/timers.nix
+++ b/tests/modules/systemd/timers.nix
@@ -5,17 +5,11 @@ with lib;
{
config = {
systemd.user.timers.test-timer = {
- Unit = {
- Description = "A basic test timer";
- };
+ Unit = { Description = "A basic test timer"; };
- Timer = {
- OnUnitActiveSec = "1h 30m";
- };
+ Timer = { OnUnitActiveSec = "1h 30m"; };
- Install = {
- WantedBy = [ "timers.target" ];
- };
+ Install = { WantedBy = [ "timers.target" ]; };
};
nmt.script = ''
diff --git a/tests/modules/xresources/default.nix b/tests/modules/xresources/default.nix
index 0e96aef9fe2..afd15fbd300 100644
--- a/tests/modules/xresources/default.nix
+++ b/tests/modules/xresources/default.nix
@@ -1,3 +1 @@
-{
- xresources = ./xresources.nix;
-}
+{ xresources = ./xresources.nix; }