From e6718bd6298af2f6d540d97ab184fab5ab4d164b Mon Sep 17 00:00:00 2001 From: stuebinm Date: Sat, 5 Feb 2022 01:21:32 +0100 Subject: add minimal home manager config (mostly to reduce hassle / build times for smaller machines) --- flake.nix | 22 +++++--- home/home-minimal.nix | 117 +++++++++++++++++++++++++++++++++++++++ home/home.nix | 137 +++++++++++++--------------------------------- home/packages-minimal.nix | 41 ++++++++++++++ home/packages.nix | 20 +------ 5 files changed, 212 insertions(+), 125 deletions(-) create mode 100644 home/home-minimal.nix create mode 100644 home/packages-minimal.nix diff --git a/flake.nix b/flake.nix index 5549885..cf6d382 100644 --- a/flake.nix +++ b/flake.nix @@ -65,15 +65,21 @@ checks = builtins.mapAttrs (system: deployLib: deployLib.deployChecks self.deploy) deploy-rs.lib; - homeConfigurations.stuebinm = inputs.home-manager.lib.homeManagerConfiguration rec { - system = "x86_64-linux"; - homeDirectory = "/home/stuebinm"; - username = "stuebinm"; - configuration.imports = [ ./home/home.nix ]; - stateVersion = "21.03"; - extraSpecialArgs = { inherit inputs system; }; - }; + homeConfigurations = + let home = root: inputs.home-manager.lib.homeManagerConfiguration rec { + system = "x86_64-linux"; + homeDirectory = "/home/stuebinm"; + username = "stuebinm"; + configuration.imports = [ root ]; + stateVersion = "21.03"; + extraSpecialArgs = { inherit inputs system; }; + }; + in { + stuebinm = home ./home/home.nix; + stuebinm-minimal = home ./home/home-minimal.nix; + }; home = self.homeConfigurations.stuebinm.activationPackage; + home-minimal = self.homeConfigurations.stuebinm-minimal.activationPackage; }; } diff --git a/home/home-minimal.nix b/home/home-minimal.nix new file mode 100644 index 0000000..a2031dd --- /dev/null +++ b/home/home-minimal.nix @@ -0,0 +1,117 @@ +{ config, lib, pkgs, inputs, ... }: + +{ + # Let Home Manager install and manage itself. + programs.home-manager.enable = true; + + imports = [ + ./packages-minimal.nix + ]; + + home.keyboard.options = [ "caps:escape" ]; + + programs.bash = { + enable = true; + historyControl = [ "ignoredups" "ignorespace" ]; + historyFileSize = 10000; + + # set shell prompt & tty for the gnu pinentry (otherwise gnupg will crash) + initExtra = '' + export GPG_TTY=`tty` + # this shouldn't be necessary, but apparently nix is broken ... + NIX_PATH=$HOME/.nix-defexpr/channels''${NIX_PATH:+:}$NIX_PATH + PS1='\[\033[1;36m\] >>> [\j|\u@\w]\$: \[\033[00m\]' + ''; + + shellAliases = { + ll = "ls -slF"; + }; + }; + + programs.starship = { + enable = true; + enableBashIntegration = true; + enableFishIntegration = true; + settings = { + directory.truncation_length = 10; + }; + }; + + programs.fish = { + enable = true; + shellAliases = { + nix-shell = "nix-shell --command fish"; + le = "exa"; + ll = "exa -lh --icons"; + llt = "exa -lh --tree --icons"; + lt = "exa --tree --icons"; + }; + functions = { + fish_greeting = { + body = ""; + }; + }; + }; + + programs.bat = { + enable = true; + config.wrap = "never"; + }; + + programs.git = { + enable = true; + package = pkgs.gitAndTools.gitFull; + userEmail = "stuebinm@disroot.org"; + userName = "stuebinm"; + + signing = { + # signByDefault = true; + key = "0x8FBE8AAD32FA12B7"; + }; + + extraConfig = { + log.showSignature = true; + init.defaultBranch = "main"; + }; + + delta = { + enable = true; + options = { + decorations = { + commit-decoration-style = "bold yellow"; + file-decoration-style = "bold blue"; + file-style = "bold yellow"; + }; + features = "decorations line-numbers navigate"; + whitespace-error-style = "22 reverse"; + }; + }; + }; + + programs.htop = { + package = pkgs.htop-vim; + enable = true; + settings = { + fields = "0 48 17 18 38 46 47 49 1"; + sort_key = 46; + sort_direction = -1; + hide_kernel_threads = 1; + hide_userland_threads = 0; + shadow_other_users = 1; + show_program_path = 0; + highlight_base_name = 1; + find_comm_in_cmdline = 1; + header_margin = 1; + show_cpu_usage = 1; + color_scheme = 5; + enable_mouse = 1; + delay = 15; + header_layout = "two_67_33"; + column_meters_0 = "AllCPUs Memory Swap"; + column_meter_modes_0 = "1 1 1"; + column_meters_1 = "Tasks LoadAverage Uptime NetworkIO"; + column_meter_modes_1 = "2 2 2 2"; + }; + }; + +} diff --git a/home/home.nix b/home/home.nix index f61e7d8..1846e12 100644 --- a/home/home.nix +++ b/home/home.nix @@ -7,10 +7,9 @@ imports = [ ./packages.nix ./unstable.nix + ./home-minimal.nix ]; - home.keyboard.options = [ "caps:escape" ]; - programs.msmtp.enable = true; programs.mbsync.enable = true; programs.mu.enable = true; @@ -34,35 +33,13 @@ }; programs.bash = { - enable = true; - historyControl = [ "ignoredups" "ignorespace" ]; - historyFileSize = 10000; - - # set shell prompt & tty for the gnu pinentry (otherwise gnupg will crash) - initExtra = '' - export GPG_TTY=`tty` - # this shouldn't be necessary, but apparently nix is broken ... - NIX_PATH=$HOME/.nix-defexpr/channels''${NIX_PATH:+:}$NIX_PATH - PS1='\[\033[1;36m\] >>> [\j|\u@\w]\$: \[\033[00m\]' - ''; - shellAliases = { "lrz-vpn" = "sudo openconnect https://asa-cluster.lrz.de -g AnyConnect"; - ll = "ls -slF"; news = "newsboat"; pj = "pijul"; }; }; - programs.starship = { - enable = true; - enableBashIntegration = true; - enableFishIntegration = true; - settings = { - directory.truncation_length = 10; - }; - }; - programs.nushell = { enable = true; settings = { @@ -76,23 +53,12 @@ }; programs.fish = { - enable = true; shellAliases = { "lrz-vpn" = "sudo openconnect https://asa-cluster.lrz.de"; news = "newsboat"; pj = "pijul"; - nix-shell = "nix-shell --command fish"; - le = "exa"; - ll = "exa -lh --icons"; - llt = "exa -lh --tree --icons"; - lt = "exa --tree --icons"; agenda = "almanac month ~/.cache/feedsync/*"; }; - functions = { - fish_greeting = { - body = ""; - }; - }; }; programs.kitty = { @@ -101,6 +67,44 @@ background_opacity 0.8 ''; }; + + programs.neovim = { + enable = true; + viAlias = true; + plugins = with pkgs; [ + (vimPlugins.nvim-treesitter.withPlugins + (plugins: [ tree-sitter-grammars.tree-sitter-nix ])) + ]; + generatedConfigViml = '' + lua <