diff options
Diffstat (limited to 'nixos/modules')
-rw-r--r-- | nixos/modules/module-list.nix | 1 | ||||
-rw-r--r-- | nixos/modules/programs/spacefm.nix | 55 |
2 files changed, 56 insertions, 0 deletions
diff --git a/nixos/modules/module-list.nix b/nixos/modules/module-list.nix index 49e3e2d4a948..67178e765c8a 100644 --- a/nixos/modules/module-list.nix +++ b/nixos/modules/module-list.nix @@ -76,6 +76,7 @@ ./programs/screen.nix ./programs/shadow.nix ./programs/shell.nix + ./programs/spacefm.nix ./programs/ssh.nix ./programs/ssmtp.nix ./programs/tmux.nix diff --git a/nixos/modules/programs/spacefm.nix b/nixos/modules/programs/spacefm.nix new file mode 100644 index 000000000000..5735f0c6b3e7 --- /dev/null +++ b/nixos/modules/programs/spacefm.nix @@ -0,0 +1,55 @@ +# Global configuration for spacefm. + +{ config, lib, pkgs, ... }: + +with lib; + +let cfg = config.programs.spacefm; + +in +{ + ###### interface + + options = { + + programs.spacefm = { + + enable = mkOption { + type = types.bool; + default = false; + description = '' + Whether to install SpaceFM and create <filename>/etc/spacefm/spacefm.conf<filename>. + ''; + }; + + settings = mkOption { + type = types.attrs; + default = { + tmp_dir = "/tmp"; + terminal_su = "${pkgs.sudo}/bin/sudo"; + graphical_su = "${pkgs.gksu}/bin/gksu"; + }; + example = literalExample ''{ + tmp_dir = "/tmp"; + terminal_su = "''${pkgs.sudo}/bin/sudo"; + graphical_su = "''${pkgs.gksu}/bin/gksu"; + }''; + description = '' + The system-wide spacefm configuration. + Parameters to be written to <filename>/etc/spacefm/spacefm.conf</filename>. + Refer to the <link xlink:href="https://ignorantguru.github.io/spacefm/spacefm-manual-en.html#programfiles-etc">relevant entry</link> in the SpaceFM manual. + ''; + }; + + }; + }; + + ###### implementation + + config = mkIf cfg.enable { + environment.systemPackages = [ pkgs.spaceFM ]; + + environment.etc."spacefm/spacefm.conf".text = + concatStrings (mapAttrsToList (n: v: "${n}=${toString v}\n") cfg.settings); + }; +} |