|
@@ -1,106 +0,0 @@
|
|
|
-{ pkgs
|
|
|
|
|
-, config
|
|
|
|
|
-, inputs
|
|
|
|
|
-, lib
|
|
|
|
|
-, ...
|
|
|
|
|
-}:
|
|
|
|
|
-let
|
|
|
|
|
- isDarwin = pkgs.stdenv.isDarwin;
|
|
|
|
|
- reattach-to-user-namespace = lib.getExe' pkgs.reattach-to-user-namespace "reattach-to-user-namespace";
|
|
|
|
|
- lazygit = lib.getExe pkgs.lazygit;
|
|
|
|
|
- shell = lib.getExe config.programs.fish.package;
|
|
|
|
|
-in
|
|
|
|
|
-{
|
|
|
|
|
- home.packages = with pkgs; [ eza ];
|
|
|
|
|
-
|
|
|
|
|
- programs.tmux = {
|
|
|
|
|
- sensibleOnTop = true;
|
|
|
|
|
-
|
|
|
|
|
- baseIndex = 1;
|
|
|
|
|
- clock24 = true;
|
|
|
|
|
- enable = true;
|
|
|
|
|
- escapeTime = 10;
|
|
|
|
|
- keyMode = "vi";
|
|
|
|
|
- mouse = true;
|
|
|
|
|
- prefix = "C-Space";
|
|
|
|
|
- shell = "${lib.getExe config.programs.fish.package}";
|
|
|
|
|
- terminal = "tmux-256color";
|
|
|
|
|
-
|
|
|
|
|
- plugins = with pkgs.tmuxPlugins; [
|
|
|
|
|
- tmux-select-pane-no-wrap
|
|
|
|
|
- vim-tmux-navigator
|
|
|
|
|
- yank
|
|
|
|
|
- {
|
|
|
|
|
- plugin = inputs.sessionx.packages.${pkgs.system}.default;
|
|
|
|
|
- extraConfig = ''
|
|
|
|
|
- set -g @sessionx-x-path '/Users/thomas/workspace/control/home'
|
|
|
|
|
- set -g @sessionx-custom-paths '/Users/thomas/workspace'
|
|
|
|
|
- set -g @sessionx-custom-paths-subdirectories true
|
|
|
|
|
- set -g @sessionx-custom-paths-subdirectories-depth 2
|
|
|
|
|
- set -g @sessionx-name-template '{-2}/{-1}'
|
|
|
|
|
- set -g @sessionx-startup-command '${builtins.concatStringsSep " && " [
|
|
|
|
|
- "tmux new-window -n ai -t {session}"
|
|
|
|
|
- "tmux rename-window -t {session}:1 editor"
|
|
|
|
|
- "tmux send-keys -t {session}:editor \"nvim\" Enter"
|
|
|
|
|
- "tmux send-keys -t {session}:ai \"nix shell nixpkgs#gemini-cli\" Enter"
|
|
|
|
|
- "tmux send-keys -t {session}:ai \"gemini\" Enter"
|
|
|
|
|
- "tmux select-window -t {session}:editor"
|
|
|
|
|
- ]}'
|
|
|
|
|
- set -g @sessionx-fzf-builtin-tmux 'off'
|
|
|
|
|
- '';
|
|
|
|
|
- }
|
|
|
|
|
- {
|
|
|
|
|
- plugin = kanagawa;
|
|
|
|
|
- extraConfig = ''
|
|
|
|
|
- set -g status-position top
|
|
|
|
|
- set -g @kanagawa-theme 'dragon'
|
|
|
|
|
- set -g @kanagawa-refresh-rate 60
|
|
|
|
|
- set -g @kanagawa-show-left-icon window
|
|
|
|
|
- set -g @kanagawa-show-battery true
|
|
|
|
|
- set -g @kanagawa-show-powerline true
|
|
|
|
|
- # set -g @kanagawa-show-left-sep
|
|
|
|
|
- # set -g @kanagawa-show-right-sep
|
|
|
|
|
- # set -g @kanagawa-show-left-sep
|
|
|
|
|
- # set -g @kanagawa-show-right-sep
|
|
|
|
|
- # set -g @kanagawa-show-left-sep
|
|
|
|
|
- # set -g @kanagawa-show-right-sep
|
|
|
|
|
- # set -g @kanagawa-show-left-sep
|
|
|
|
|
- # set -g @kanagawa-show-right-sep
|
|
|
|
|
- set -g @kanagawa-show-left-sep
|
|
|
|
|
- set -g @kanagawa-show-right-sep
|
|
|
|
|
- set -g @kanagawa-show-location false
|
|
|
|
|
- set -g @kanagawa-ignore-window-colors true
|
|
|
|
|
- '';
|
|
|
|
|
- }
|
|
|
|
|
- ];
|
|
|
|
|
-
|
|
|
|
|
- extraConfig = ''
|
|
|
|
|
- ${lib.optionalString isDarwin ''
|
|
|
|
|
- # sensible plugin assumes $SHELL is /bin/sh
|
|
|
|
|
- # --- Darwin-Specific Settings (Raw Tmux Commands) ---
|
|
|
|
|
- # This block is only included if the system is Darwin
|
|
|
|
|
- set-option -g default-command "${reattach-to-user-namespace} -l $SHELL"
|
|
|
|
|
- ''}
|
|
|
|
|
-
|
|
|
|
|
- # split windows on the current path
|
|
|
|
|
- unbind %
|
|
|
|
|
- unbind '"'
|
|
|
|
|
- bind-key % split-window -h -c '#{pane_current_path}'
|
|
|
|
|
- bind-key '"' split-window -v -c '#{pane_current_path}'
|
|
|
|
|
-
|
|
|
|
|
- # resize pane with vim motion keys
|
|
|
|
|
- bind-key -r h resize-pane -L 1
|
|
|
|
|
- bind-key -r l resize-pane -R 1
|
|
|
|
|
- bind-key -r j resize-pane -D 1
|
|
|
|
|
- bind-key -r k resize-pane -U 1
|
|
|
|
|
-
|
|
|
|
|
- # move between tmux windows
|
|
|
|
|
- bind-key -n C-e select-window -t :1
|
|
|
|
|
- bind-key -n C-a select-window -t :2
|
|
|
|
|
-
|
|
|
|
|
- # some display popups
|
|
|
|
|
- bind-key -n C-g display-popup -d "#{pane_current_path}" -w 80% -h 80% -E "${lazygit}"
|
|
|
|
|
- bind-key -n C-t display-popup -d "#{pane_current_path}" -w 75% -h 75% -E "${shell}"
|
|
|
|
|
- '';
|
|
|
|
|
- };
|
|
|
|
|
-}
|
|
|