diff --git a/home-manager/default.nix b/home-manager/default.nix index 95938e4..618cfce 100644 --- a/home-manager/default.nix +++ b/home-manager/default.nix @@ -31,6 +31,8 @@ with lib; with nLib; { # Programs programs = { util = { + # Core utilites + core = mkEnableOptionT "core"; # Ssh configuration, enabled by default ssh = mkEnableOptionT "ssh"; # Fish configuration, enabled by default @@ -38,12 +40,14 @@ with lib; with nLib; { # Git configuration, enabled by default git = { enable = mkEnableOptionT "git"; - gpgSign = mkEnableOptionT "git signatures"; + gpgSign = mkDefaultOption "git signatures" config.nathan.config.isDesktop; }; # Bat configuration, enabled by default bat = mkEnableOptionT "bat"; # JSON Utilities, enabled by default json = mkEnableOptionT "json"; + # Productivity application + productivity = mkDefaultOption "Productivity applications" config.nathan.config.isDesktop; }; # Swaywm and supoorting application configuration swaywm = { diff --git a/home-manager/programs/core.nix b/home-manager/programs/core.nix index de5818e..ef9379d 100644 --- a/home-manager/programs/core.nix +++ b/home-manager/programs/core.nix @@ -2,6 +2,50 @@ with lib; { config = mkMerge [ + (mkIf config.nathan.programs.util.core { + home.packages = with pkgs; [ + # Rust rewrites of common shell utilites + exa + bat + fd + sd + du-dust + ripgrep + ripgrep-all + hyperfine + bottom + dogdns + duf + # User friendly cut + choose + # Man but terse + tealdeer + ]; + }) + (mkIf config.nathan.programs.util.productivity { + home.packages = with pkgs; [ + # Feh image viewer + feh + tokei + # Spell check + hunspell + hunspellDicts.en-us + # CLI Markdown renderer + glow + # Command line file manager + broot + # Much better curl + httpie + # CLI spreadsheets + visidata + # Cheatsheet manager + cheat + # Ping with a graph + gping + # Pandoc for documentation + pandoc + ]; + }) (mkIf config.nathan.programs.util.git.enable { ######################### ## Git configuration diff --git a/modules/default.nix b/modules/default.nix index 619eae7..fba83b3 100644 --- a/modules/default.nix +++ b/modules/default.nix @@ -75,9 +75,6 @@ in # Core utililtes I want on every system # Enabled by default core = mkEnableOptionT "utils-core"; - # Productivity utilites that make sense for a desktop - # Enabled by default on desktop - productivity = mkDefaultOption "utils-productivity" config.nathan.config.isDesktop; # Enable multi system emulation # Enabled by default on desktop binfmt = mkDefaultOption "utils-productivity" config.nathan.config.isDesktop; diff --git a/modules/programs/utils.nix b/modules/programs/utils.nix index afba516..a391756 100644 --- a/modules/programs/utils.nix +++ b/modules/programs/utils.nix @@ -15,23 +15,6 @@ with lib; unzip any-nix-shell htop - # Rust rewrites of common shell utilities - starship - exa - bat - fd - sd - du-dust - ripgrep - ripgrep-all - hyperfine - bottom - dogdns - duf - # User friendly cut - choose - # Man but terse - tealdeer # For nslookup dnsutils # Mosh for better high-latency ssh @@ -40,30 +23,6 @@ with lib; pv ]; }) - (mkIf nathan.programs.utils.productivity { - environment.systemPackages = with pkgs; [ - # Feh image viewer - feh - tokei - # Spell check - hunspell - hunspellDicts.en-us - # CLI Markdown renderer - glow - # Command line file manager - broot - # Much better curl - httpie - # CLI spreadsheets - visidata - # Cheatsheet manager - cheat - # Ping with a graph - gping - # Pandoc for documentation - pandoc - ]; - }) (mkIf nathan.programs.utils.binfmt { boot.binfmt.emulatedSystems = [ "aarch64-linux"