From 5cdb4e421a809de51c3ebe8404e50d732721238b Mon Sep 17 00:00:00 2001 From: Akshay Date: Sun, 26 Sep 2021 21:26:36 +0530 Subject: init --- programs/tmux.nix | 85 +++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 85 insertions(+) create mode 100644 programs/tmux.nix (limited to 'programs/tmux.nix') diff --git a/programs/tmux.nix b/programs/tmux.nix new file mode 100644 index 0000000..58369da --- /dev/null +++ b/programs/tmux.nix @@ -0,0 +1,85 @@ +{ config +, pkgs +, ... +}: + +{ + programs.tmux = { + enable = true; + plugins = with pkgs; [ + tmuxPlugins.fingers + ]; + extraConfig = '' + set -g prefix C-a + setw -g mode-keys vi + unbind-key C-b + bind-key C-a send-prefix + + bind r source-file ~/.tmux.conf + + set-option -g default-terminal xterm-256color-italic + set escape-time 20 + + set -g mouse on + + set -g base-index 1 + setw -g pane-base-index 1 + + # pane binds + bind-key h select-pane -L + bind-key j select-pane -D + bind-key k select-pane -U + bind-key l select-pane -R + bind-key -r H resize-pane -L 5 + bind-key -r J resize-pane -D 5 + bind-key -r K resize-pane -U 5 + bind-key -r L resize-pane -R 5 + + # window binds + bind -n M-h previous-window + bind -n M-l next-window + bind-key "|" split-window -h -c "#{pane_current_path}" + bind-key "-" split-window -v -c "#{pane_current_path}" + bind-key s choose-session + bind-key c new-window -c "#{pane_current_path}" + bind-key ) swap-window -t +1 + bind-key ( swap-window -t -1 + bind-key [ copy-mode + + # statusline hide / unhide + bind -n M-down set -q status off + bind -n M-up set -q status on + + bind-key -r "<" swap-window -d -t -1 + bind-key -r ">" swap-window -d -t +1 + + bind-key -T copy-mode-vi v send-keys -X begin-selection + bind-key -T copy-mode-vi y send-keys -X copy-pipe "xclip -i -sel p -f | xclip -i -sel c " + bind-key -T copy-mode-vi r send-keys -X rectangle-toggle + bind P paste-buffer + + bind E command-prompt -p "Command:" \ + "run \"tmux list-panes -a -F '##{session_name}:##{window_index}.##{pane_index}' \ + | xargs -I PANE tmux send-keys -t PANE '%1' Enter\"" + + set-window-option -g allow-rename off + + set -g pane-border-style fg=colour11 + set -g pane-active-border-style fg=colour8 + + set -g status-justify right + set -g status-right "" + set -g status-style "bg=colour0" + set -ag status-style "fg=colour7" + + set -g window-status-current-format " #[fg=colour15]#W#{?window_zoomed_flag, #[fg=colour2]+,}#{?window_activity_flag, #[fg=colour3]!,}" + set -g window-status-format " #[fg=colour8]#W#{?window_zoomed_flag, #[fg=colour2]+,}" + + + set -g status-left-length 100 + set -g status-left "#[fg=colour15]#(date +"%H%M") #[fg=colour8]hrs " + set -ag status-left "#[fg=colour15]#(date +"%d/%m")#[fg=colour8] #(date +"%Y") " + set -ag status-left "#[fg=colour7]#(~/scripts/bat -q)#[fg=colour12]" + ''; + }; +} -- cgit v1.2.3