summaryrefslogtreecommitdiff
path: root/modules/tmux.nix
diff options
context:
space:
mode:
Diffstat (limited to 'modules/tmux.nix')
-rw-r--r--modules/tmux.nix57
1 files changed, 57 insertions, 0 deletions
diff --git a/modules/tmux.nix b/modules/tmux.nix
new file mode 100644
index 0000000..a754222
--- /dev/null
+++ b/modules/tmux.nix
@@ -0,0 +1,57 @@
+{ config, lib, ... }:
+with lib;
+let
+ cfg = config.nixfiles.modules.tmux;
+in
+{
+ options.nixfiles.modules.tmux.enable = mkEnableOption "tmux";
+
+ config = mkIf cfg.enable {
+ hm.programs.tmux = {
+ enable = true;
+
+ aggressiveResize = true;
+ baseIndex = 1;
+ clock24 = true;
+ disableConfirmationPrompt = true;
+ escapeTime = 0;
+ historyLimit = 50000;
+ newSession = true;
+ resizeAmount = 10;
+ terminal = "screen-256color";
+
+ extraConfig = ''
+ set -g set-titles on
+
+ set -g status-left ""
+ set -g status-right ""
+
+ set -g detach-on-destroy off
+
+ set -g status-keys emacs
+ set -g mode-keys vi
+
+ bind h select-pane -L
+ bind j select-pane -D
+ bind k select-pane -U
+ bind l select-pane -R
+
+ bind -r H resize-pane -L 10
+ bind -r J resize-pane -D 10
+ bind -r K resize-pane -U 10
+ bind -r L resize-pane -R 10
+
+ bind < swap-pane -D
+ bind > swap-pane -U
+
+ bind , swap-window -t -1
+ bind . swap-window -t +1
+
+ bind Tab last-window
+
+ bind _ split-window -v
+ bind | split-window -h
+ '';
+ };
+ };
+}