summaryrefslogtreecommitdiff
path: root/home
diff options
context:
space:
mode:
authorsinanmohd <sinan@sinanmohd.com>2024-06-18 17:51:44 +0530
committersinanmohd <sinan@sinanmohd.com>2024-06-18 17:51:44 +0530
commit299b23f7bec2d654c88c4f35766392c422d1cfe6 (patch)
treee27a229c3e6ecc960ae52f942557f0ed8acd5510 /home
parent6e965e855e752e01adb78f7e2492351aa7ce88c7 (diff)
home/common/tmux: init
Diffstat (limited to 'home')
-rw-r--r--home/common/home.nix1
-rw-r--r--home/common/modules/tmux.nix47
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
+ '';
+}