nnn.nix (1013B)
1 { config, lib, pkgs, ... }: 2 3 with lib; 4 let 5 cfg = config.programs.nnn; 6 configDir = "${config.xdg.configHome}/nnn"; 7 pluginDir = "${configDir}/plugins"; 8 in 9 { 10 meta.maintainers = [ maintainers.sikmir ]; 11 12 options.programs.nnn = { 13 enable = mkEnableOption "The missing terminal file manager for X"; 14 15 package = mkOption { 16 default = pkgs.nnn; 17 defaultText = literalExpression "pkgs.nnn"; 18 description = "nnn package to install."; 19 type = types.package; 20 }; 21 22 pluginsPackage = mkOption { 23 default = null; 24 description = "nnn plugins package to install."; 25 type = types.nullOr types.package; 26 }; 27 }; 28 29 config = mkIf cfg.enable ( 30 mkMerge [ 31 { 32 home.packages = [ cfg.package ]; 33 34 home.sessionVariables = { 35 NNN_COLORS = "5236"; 36 }; 37 } 38 39 ( 40 mkIf (cfg.pluginsPackage != null) { 41 home.file."${pluginDir}".source = 42 "${cfg.pluginsPackage}/share/nnn/plugins"; 43 } 44 ) 45 ] 46 ); 47 }