diff --git a/hosts/desktop/home.nix b/hosts/desktop/home.nix index bfd60fd..1c52c35 100644 --- a/hosts/desktop/home.nix +++ b/hosts/desktop/home.nix @@ -16,6 +16,7 @@ ../../modules/home-manager/syncthing ../../modules/home-manager/email ../../modules/home-manager/password-store + ../../modules/home-manager/kubernetes.nix ]; home.username = "mthomson"; home.homeDirectory = "/home/mthomson"; @@ -44,11 +45,6 @@ pasystray networkmanagerapplet mangohud - kubectl - k9s - kubeseal - velero - fluxcd zoom-us crawl obsidian diff --git a/hosts/macbook/configuration.nix b/hosts/macbook/configuration.nix index 7671e40..b8410cf 100644 --- a/hosts/macbook/configuration.nix +++ b/hosts/macbook/configuration.nix @@ -6,6 +6,7 @@ }: { imports = [ inputs.home-manager.darwinModules.default + ../../modules/nix-darwin/system.nix ]; nixpkgs.hostPlatform = "aarch64-darwin"; @@ -53,6 +54,7 @@ extraSpecialArgs = {inherit inputs;}; useGlobalPkgs = true; useUserPackages = true; + backupFileExtension = "backup"; users = { mthomson = import ./home.nix; }; diff --git a/hosts/macbook/home.nix b/hosts/macbook/home.nix index 0e4a609..e887785 100644 --- a/hosts/macbook/home.nix +++ b/hosts/macbook/home.nix @@ -9,10 +9,10 @@ ../../modules/home-manager/kitty ../../modules/home-manager/zsh ../../modules/home-manager/tmux - ../../modules/home-manager/zoxide ../../modules/home-manager/email ../../modules/home-manager/password-store ../../modules/home-manager/taskwarrior + ../../modules/home-manager/kubernetes.nix ]; home.username = "mthomson"; home.homeDirectory = "/Users/mthomson"; @@ -37,35 +37,16 @@ }; }; }; - go = { + jq = { + enable = true; + }; + lazygit = { enable = true; }; }; home.packages = with pkgs; [ - btop - neofetch - jq tldr - cowsay - lazygit - k9s - nb - w3m - kubectl - k9s - kubeseal - velero - fluxcd - wireguard-tools - kompose - inetutils - _1password-cli - calcurse - glow - gcc - nchat - emanote ]; programs.home-manager.enable = true; diff --git a/modules/home-manager/kitty/default.nix b/modules/home-manager/kitty/default.nix index a59614d..fe05582 100644 --- a/modules/home-manager/kitty/default.nix +++ b/modules/home-manager/kitty/default.nix @@ -6,8 +6,9 @@ programs.kitty = { enable = true; font = { - name = "JetBrainsMono Nerd Font"; + name = "JetBrainsMono Nerd Font Mono"; size = 12; + package = pkgs.nerdfonts.override {fonts = ["JetBrainsMono"];}; }; shellIntegration = { enableZshIntegration = true; diff --git a/modules/home-manager/kubernetes.nix b/modules/home-manager/kubernetes.nix new file mode 100644 index 0000000..3b8757a --- /dev/null +++ b/modules/home-manager/kubernetes.nix @@ -0,0 +1,19 @@ +{ + pkgs, + config, + ... +}: { + home.packages = with pkgs; [ + kubectl + kubeseal + velero + fluxcd + kompose + ]; + + programs = { + k9s = { + enable = true; + }; + }; +} diff --git a/modules/home-manager/nixvim/default.nix b/modules/home-manager/nixvim/default.nix index 2334ffd..842f732 100644 --- a/modules/home-manager/nixvim/default.nix +++ b/modules/home-manager/nixvim/default.nix @@ -1,8 +1,8 @@ { - inputs, - pkgs, - config, - ... +inputs, +pkgs, +config, +... }: { imports = [ inputs.nixvim.homeManagerModules.nixvim @@ -90,6 +90,196 @@ key = "zn"; action = "ZkNew"; } + # gitsigns + { + mode = "n"; + key = "]c"; + action.__raw = '' + function() + if vim.wo.diff then + vim.cmd.normal { ']c', bang = true } + else + require('gitsigns').nav_hunk 'next' + end + end + ''; + options = { + desc = "Jump to next git [C]hange"; + }; + } + { + mode = "n"; + key = "[c"; + action.__raw = '' + function() + if vim.wo.diff then + vim.cmd.normal { '[c', bang = true } + else + require('gitsigns').nav_hunk 'prev' + end + end + ''; + options = { + desc = "Jump to previous git [C]hange"; + }; + } + { + mode = "v"; + key = "hs"; + action.__raw = '' + function() + require('gitsigns').stage_hunk { vim.fn.line '.', vim.fn.line 'v' } + end + ''; + options = { + desc = "stage git hunk"; + }; + } + { + mode = "v"; + key = "hr"; + action.__raw = '' + function() + require('gitsigns').reset_hunk { vim.fn.line '.', vim.fn.line 'v' } + end + ''; + options = { + desc = "reset git hunk"; + }; + } + { + mode = "n"; + key = "hs"; + action.__raw = '' + function() + require('gitsigns').stage_hunk() + end + ''; + options = { + desc = "git [s]tage hunk"; + }; + } + { + mode = "n"; + key = "hr"; + action.__raw = '' + function() + require('gitsigns').reset_hunk() + end + ''; + options = { + desc = "git [r]eset hunk"; + }; + } + { + mode = "n"; + key = "hS"; + action.__raw = '' + function() + require('gitsigns').stage_buffer() + end + ''; + options = { + desc = "git [S]tage buffer"; + }; + } + { + mode = "n"; + key = "hu"; + action.__raw = '' + function() + require('gitsigns').undo_stage_hunk() + end + ''; + options = { + desc = "git [u]ndo stage hunk"; + }; + } + { + mode = "n"; + key = "hR"; + action.__raw = '' + function() + require('gitsigns').reset_buffer() + end + ''; + options = { + desc = "git [R]eset buffer"; + }; + } + { + mode = "n"; + key = "hp"; + action.__raw = '' + function() + require('gitsigns').preview_hunk() + end + ''; + options = { + desc = "git [p]review hunk"; + }; + } + { + mode = "n"; + key = "hb"; + action.__raw = '' + function() + require('gitsigns').blame_line() + end + ''; + options = { + desc = "git [b]lame line"; + }; + } + { + mode = "n"; + key = "hd"; + action.__raw = '' + function() + require('gitsigns').diffthis() + end + ''; + options = { + desc = "git [d]iff against index"; + }; + } + { + mode = "n"; + key = "hD"; + action.__raw = '' + function() + require('gitsigns').diffthis '@' + end + ''; + options = { + desc = "git [D]iff against last commit"; + }; + } + # Toggles + { + mode = "n"; + key = "tb"; + action.__raw = '' + function() + require('gitsigns').toggle_current_line_blame() + end + ''; + options = { + desc = "[T]oggle git show [b]lame line"; + }; + } + { + mode = "n"; + key = "tD"; + action.__raw = '' + function() + require('gitsigns').toggle_deleted() + end + ''; + options = { + desc = "[T]oggle git show [D]eleted"; + }; + } ]; plugins = { diff --git a/modules/home-manager/nushell.nix b/modules/home-manager/nushell.nix new file mode 100644 index 0000000..6143282 --- /dev/null +++ b/modules/home-manager/nushell.nix @@ -0,0 +1,21 @@ +{ + pkgs, + config, + ... +}: { + programs = { + fzf = { + enable = true; + tmux = { + enableShellIntegration = true; + }; + }; + nushell = { + enable = true; + }; + zoxide = { + enable = true; + enableNushellIntegration = true; + }; + }; +} diff --git a/modules/home-manager/zoxide/default.nix b/modules/home-manager/zoxide/default.nix deleted file mode 100644 index da5adea..0000000 --- a/modules/home-manager/zoxide/default.nix +++ /dev/null @@ -1,12 +0,0 @@ -{ - pkgs, - config, - ... -}: { - programs = { - zoxide = { - enable = true; - enableZshIntegration = true; - }; - }; -} diff --git a/modules/home-manager/zsh/default.nix b/modules/home-manager/zsh/default.nix index 91e9aa3..47d66b6 100644 --- a/modules/home-manager/zsh/default.nix +++ b/modules/home-manager/zsh/default.nix @@ -1,6 +1,7 @@ { pkgs, config, + lib, ... }: { programs = { @@ -44,6 +45,66 @@ starship = { enable = true; enableZshIntegration = true; + settings = { + format = lib.concatStrings [ + "$username" + "$hostname" + "$directory" + "$git_branch" + "$git_state" + "$git_status" + "$cmd_duration" + "$line_break" + "$python" + "$character" + ]; + + directory = { + style = "blue"; + }; + + character = { + success_symbol = "[❯](purple)"; + error_symbol = "[❯](red)"; + vimcmd_symbol = "[❮](green)"; + }; + + git_branch = { + format = "[$branch]($style)"; + style = "bright-black"; + }; + + git_status = { + format = "[[(*$conflicted$untracked$modified$staged$renamed$deleted)](218) ($ahead_behind$stashed)]($style)"; + style = "cyan"; + conflicted = "​"; + untracked = "​"; + modified = "​"; + staged = "​"; + renamed = "​"; + deleted = "​"; + stashed = "≡"; + }; + + git_state = { + format = "\([$state( $progress_current/$progress_total)]($style)\) "; + style = "bright-black"; + }; + + cmd_duration = { + format = "[$duration]($style) "; + style = "yellow"; + }; + + python = { + format = "[$virtualenv]($style) "; + style = "bright-black"; + }; + }; + }; + zoxide = { + enable = true; + enableZshIntegration = true; }; }; } diff --git a/modules/nix-darwin/system.nix b/modules/nix-darwin/system.nix new file mode 100644 index 0000000..7281617 --- /dev/null +++ b/modules/nix-darwin/system.nix @@ -0,0 +1,20 @@ +{ + system.defaults = { + finder = { + AppleShowAllExtensions = true; + AppleShowAllFiles = true; + CreateDesktop = false; + NewWindowTarget = "Home"; + QuitMenuItem = true; + ShowExternalHardDrivesOnDesktop = false; + ShowHardDrivesOnDesktop = false; + ShowMountedServersOnDesktop = false; + ShowPathbar = true; + ShowRemovableMediaOnDesktop = false; + }; + dock = { + autohide = true; + autohide-delay = 0.0; + }; + }; +}