Nix flake configuration for my various machines (clients and homelab servers)
0

Configure Feed

Select the types of activity you want to include in your feed.

more vim/tmux ricing

Parthiv Krishna (Jun 22, 2026, 12:46 PM -0700) f780dd27 f3d815a2

+36 -7
+25 -5
modules/features/apps/nixvim/default.nix
··· 5 5 "nixvim" 6 6 ]; 7 7 8 + extraOptions = { 9 + newSplitCommand = lib.mkOption { 10 + type = lib.types.str; 11 + default = ""; 12 + description = "Command to run after creating a new Neovim split."; 13 + }; 14 + }; 15 + 8 16 homeImports = lib.custom.scanPaths ./.; 9 17 10 18 homeConfig = 11 - _cfg: 19 + cfg: 12 20 { config, pkgs, ... }: 13 21 { 14 22 programs.nixvim = { ··· 103 111 action = "<cmd>noh<CR>"; 104 112 mode = "n"; 105 113 } 106 - # vertical split, matching tmux prefix | 114 + # vertical splits with Telescope file selection 115 + { 116 + key = "<Leader>\\"; 117 + action = "<cmd>rightbelow vsplit<CR>${cfg.newSplitCommand}"; 118 + options.desc = "Split right"; 119 + } 107 120 { 108 121 key = "<Leader>|"; 109 - action = ":vs<CR>"; 122 + action = "<cmd>leftabove vsplit<CR>${cfg.newSplitCommand}"; 123 + options.desc = "Split left"; 110 124 } 111 - # horizontal split, matching tmux prefix - 125 + # horizontal splits with Telescope file selection 112 126 { 113 127 key = "<Leader>-"; 114 - action = ":sv<CR>"; 128 + action = "<cmd>belowright split<CR>${cfg.newSplitCommand}"; 129 + options.desc = "Split below"; 130 + } 131 + { 132 + key = "<Leader>_"; 133 + action = "<cmd>aboveleft split<CR>${cfg.newSplitCommand}"; 134 + options.desc = "Split above"; 115 135 } 116 136 ]; 117 137 };
+2
modules/features/apps/nixvim/utils/telescope.nix
··· 1 1 _: { 2 + custom.features.apps.nixvim.newSplitCommand = "<cmd>Telescope find_files<CR>"; 3 + 2 4 programs.nixvim.config = { 3 5 plugins.telescope = { 4 6 enable = true;
+9 -2
modules/features/apps/tmux.nix
··· 24 24 plugins = with pkgs.tmuxPlugins; [ 25 25 fuzzback 26 26 resurrect 27 + { 28 + plugin = continuum; 29 + extraConfig = '' 30 + set -g @continuum-save-interval '15' 31 + ''; 32 + } 27 33 sensible 28 34 sessionist 29 35 sidebar ··· 39 45 unbind-key % 40 46 unbind-key \" 41 47 42 - bind ! set -gq @move_pane_source "#{pane_id}" \; display-menu -T "Move pane" "New window" n "break-pane -s \"#{@move_pane_source}\"" "Existing window" e "choose-tree -w 'join-pane -s \"#{@move_pane_source}\" -t \"%%\"'" 43 - bind @ set -gq @move_window_source "#{window_id}" \; display-menu -T "Move window" "New session" n "command-prompt -p 'new session name' 'new-session -d -s \"%%\" \; move-window -k -s \"#{@move_window_source}\" -t \"%%:0\" \; switch-client -t \"%%\"'" "Existing session" e "choose-tree -s 'move-window -s \"#{@move_window_source}\" -t \"%%:\" \; switch-client -t \"%%\"'" 48 + bind ! break-pane 49 + bind @ set -gqF @move_pane_source "#{pane_id}" \; display-menu -T "Move pane" "Existing window" w "choose-tree -w 'join-pane -s \"#{@move_pane_source}\" -t \"%%\"'" "New session" s "command-prompt -p 'new session name' 'new-session -d -s \"%1\" \; join-pane -s \"#{@move_pane_source}\" -t \"%1:\" \; kill-pane -a -t \"#{@move_pane_source}\" \; switch-client -t \"%1\"'" 44 50 bind D attach-session -c "#{pane_current_path}" 45 51 bind / run-shell -b ${pkgs.tmuxPlugins.fuzzback}/share/tmux-plugins/fuzzback/scripts/fuzzback.sh 46 52 bind ? list-keys -N ··· 69 75 set-option -g status-style "fg=#${base05},bg=#${base00}" 70 76 set-option -g status-left-style "fg=#${base0B},bg=#${base01}" 71 77 set-option -g status-right-style "fg=#${base05},bg=#${base01}" 78 + set-option -g status-right "#{continuum_status} %H:%M %d-%b-%y" 72 79 73 80 # window status colors 74 81 set-window-option -g window-status-style "fg=#${base05},bg=#${base00}"