From 59e440b59f96c6969a0a03486e29483dc33f85ee Mon Sep 17 00:00:00 2001 From: Dennis Date: Thu, 29 Jan 2026 10:41:04 +0100 Subject: [PATCH] installs tmux on servers --- home/server.nix | 2 + modules/fish/default.nix | 4 ++ modules/tmux/server.nix | 59 +++++++++++++++++++ .../personal-layouts/nix-config.yml | 4 -- 4 files changed, 65 insertions(+), 4 deletions(-) create mode 100644 modules/tmux/server.nix diff --git a/home/server.nix b/home/server.nix index a3c180c..9ad204d 100644 --- a/home/server.nix +++ b/home/server.nix @@ -22,10 +22,12 @@ just mmv-go zoxide + tmux ]; imports = [ ../modules/ssh + ../modules/tmux/server.nix ]; programs.home-manager.enable = true; diff --git a/modules/fish/default.nix b/modules/fish/default.nix index 211bccb..232e3ba 100644 --- a/modules/fish/default.nix +++ b/modules/fish/default.nix @@ -8,6 +8,10 @@ fish_greeting = "fortune -a"; localip = "ifconfig | grep \"inet \" | grep -v 127.0.0.1 | awk '{print $2}' | head -n 1"; publicip = "curl -4 ifconfig.me"; + enter_vps = "ssh dnsc-vps-sm -t tmux new -As main"; + rebuild_vps = "ssh -t dnsc-vps-sm 'cd ~/nix-config && git pull && sudo just deploy'"; + enter_server = "ssh dnsc-server -t tmux new -As main"; + rebuild_server = "ssh -t dnsc-server 'cd ~/nix-config && git pull && sudo just deploy'"; kill_tunnels = /* fish */ '' ps -o pid,command | grep "^[0-9]\{4,5\} ssh -fNL" | awk '{print $1}' | xargs kill -9 ''; diff --git a/modules/tmux/server.nix b/modules/tmux/server.nix new file mode 100644 index 0000000..4319989 --- /dev/null +++ b/modules/tmux/server.nix @@ -0,0 +1,59 @@ +{ pkgs, ... }: + +{ + programs.tmux = { + enable = true; + package = pkgs.tmux; + baseIndex = 1; + clock24 = true; + disableConfirmationPrompt = true; + mouse = true; + newSession = true; + prefix = "C-a"; + shell = "${pkgs.fish}/bin/fish"; + terminal = "screen-256color"; + keyMode = "vi"; + escapeTime = 0; + extraConfig = '' + set -g status-position bottom + set -g status-style bg=#1d202f,fg=white + set -g status-left "" + set -g status-right "#[bg=default,fg=magenta]>> #S << #[bg=default,fg=white]#{hostname_short} " + set-window-option -g window-status-style 'fg=magenta,bg=#1d202f' + set-window-option -g window-status-format ' #I #[fg=white]#W #[fg=cyan]#F ' + set-window-option -g window-status-current-style "fg=black,bg=magenta" + set-window-option -g window-status-current-format " #I #W #F " + set -g pane-border-style fg=#807c9f + set -g pane-active-border-style fg=magenta + set -g message-style "fg=black,bg=red,bold" + + unbind % + bind "|" split-window -h + unbind '"' + bind - split-window -l 15 -v + + bind r source-file "~/.config/tmux/tmux.conf" + + 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 5 + bind -r J resize-pane -D 5 + bind -r K resize-pane -U 5 + bind -r L resize-pane -R 5 + + bind ? list-keys -a + + unbind s + bind s display-popup -h 50% -w 80% -E sessionizer + + unbind C-x + bind C-x kill-session + + unbind v + bind v choose-tree -Zw "join-pane -t '%%'" + ''; + }; +} diff --git a/modules/tmuxinator/personal-layouts/nix-config.yml b/modules/tmuxinator/personal-layouts/nix-config.yml index 86a3c62..9f9db2e 100644 --- a/modules/tmuxinator/personal-layouts/nix-config.yml +++ b/modules/tmuxinator/personal-layouts/nix-config.yml @@ -5,7 +5,3 @@ windows: layout: main-horizontal panes: - nvim +"lua Snacks.picker.files({ hidden = true })" - - run: - layout: even-vertical - panes: - - clear