diff options
author | sinanmohd <sinan@sinanmohd.com> | 2024-06-18 17:51:44 +0530 |
---|---|---|
committer | sinanmohd <sinan@sinanmohd.com> | 2024-06-18 17:51:44 +0530 |
commit | 299b23f7bec2d654c88c4f35766392c422d1cfe6 (patch) | |
tree | e27a229c3e6ecc960ae52f942557f0ed8acd5510 /home | |
parent | 6e965e855e752e01adb78f7e2492351aa7ce88c7 (diff) |
home/common/tmux: init
Diffstat (limited to 'home')
-rw-r--r-- | home/common/home.nix | 1 | ||||
-rw-r--r-- | home/common/modules/tmux.nix | 47 |
2 files changed, 48 insertions, 0 deletions
diff --git a/home/common/home.nix b/home/common/home.nix index 2202ee2..276ffcf 100644 --- a/home/common/home.nix +++ b/home/common/home.nix @@ -3,6 +3,7 @@ in { imports = [ ./modules/git.nix + ./modules/tmux.nix ./modules/shell.nix ./modules/xdgdirs.nix ./modules/mimeapps.nix diff --git a/home/common/modules/tmux.nix b/home/common/modules/tmux.nix new file mode 100644 index 0000000..20fecd5 --- /dev/null +++ b/home/common/modules/tmux.nix @@ -0,0 +1,47 @@ +{ pkgs, lib, ... }: { + home.packages = with pkgs; [ tmux ]; + + home.sessionVariables.TMUX_TMPDIR = + ''''${XDG_RUNTIME_DIR:-"/run/user/$(id -u)"}''; + programs.bash.initExtra = lib.mkOrder 2000 '' + if [ -z "$TMUX" ] && + { [ -n "$WAYLAND_DISPLAY" ] || [ -n "$SSH_TTY" ]; }; then + exec tmux new-session -A > /dev/null 2>&1 + fi + ''; + + xdg.configFile."tmux/tmux.conf".text = '' + # base + set-option -g prefix C-a + unbind-key C-b + bind-key C-a send-prefix + set -g base-index 1 + setw -g pane-base-index 1 + set -g history-limit 10000 + + # vim + set -g mode-keys vi + bind -T copy-mode-vi v send -X begin-selection + bind -T copy-mode-vi y send -X copy-selection + bind -r C-w last-window + + bind -r h select-pane -L + bind -r j select-pane -D + bind -r k select-pane -U + bind -r l select-pane -R + + bind -r H resize-pane -L 5 + bind -r J resize-pane -D 5 + bind -r K resize-pane -U 5 + bind -r L resize-pane -R 5 + + bind -r C-h select-window -t :- + bind -r C-l select-window -t :+ + + # not eye candy + set -g status-style "bg=default fg=7" + set -g status-left "" + set -g status-right "" + set -g status-justify right + ''; +} |