From bdaefa4d5ce0ac3cd8116a28c3c3879103f65d58 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jana=20D=C3=B6nszelmann?= Date: Mon, 16 Mar 2026 13:29:50 +0100 Subject: [PATCH] add TMUX_SESSION_NAME inheriting over ssh --- ; | 33 --------------------------------- programs/fish/default.nix | 1 + programs/fish/scripts.nix | 12 ++++++++++++ programs/kitty/default.nix | 6 +++++- programs/nvim/config.lua | 3 +++ programs/tmux/default.nix | 5 +---- 6 files changed, 22 insertions(+), 38 deletions(-) delete mode 100644 ; diff --git a/; b/; deleted file mode 100644 index dad5d18..0000000 --- a/; +++ /dev/null @@ -1,33 +0,0 @@ -{ - lib, - options, - machine, - ... -}: -with lib; -{ - options = { - custom.program = mkOption { - type = types.attrsOf ( - types.submodule ( - { config, ... }: - { - options = { - name = mkOption { - type = types.string; - }; - home-config = mkOption { - type = types.deferredModule; - }; - system-config = mkOption { - type = types.deferredModule; - default = _: { }; - }; - }; - config = if builtins.isNull machine.home-only then config.system-config else config.home-config; - } - ) - ); - }; - }; -} diff --git a/programs/fish/default.nix b/programs/fish/default.nix index 9df1f8e..07e8998 100644 --- a/programs/fish/default.nix +++ b/programs/fish/default.nix @@ -19,6 +19,7 @@ inputs@{ machine, ... }: "cp-mov" = cp-media "mov" "movies"; "cp-ser" = cp-media "ser" "shows"; "cp-ani" = cp-media "ani" "anime"; + "ragdoll" = ragdoll; "dumpasm" = "${pkgs.custom.dumpasm}/bin/dumpasm"; "p" = builtins.trace calc calc; "s" = "systemctl"; diff --git a/programs/fish/scripts.nix b/programs/fish/scripts.nix index 465b3ea..c5324d8 100644 --- a/programs/fish/scripts.nix +++ b/programs/fish/scripts.nix @@ -22,4 +22,16 @@ ''; in "${s}/bin/cp-${name}"; + + ragdoll = "${pkgs.writeScriptBin "ragdoll" '' + RAND=$(xxd -l 32 -c 32 -p < /dev/urandom) + if [ -z "$TMUX_SESSION_NAME" ]; then + RAND=$(cat /dev/urandom | head -c 20 | base32) + export TMUX_SESSION_NAME="$RAND" + tmux rename-session -t "$(tmux display-message -p "#S")" "$TMUX_SESSION_NAME" + fi + + SSH_TMUX_SESSION_NAME="ssh-from-$(hostname)-$TMUX_SESSION_NAME" + tmux detach -E "kitten ssh -t ragdoll \"export TMUX_SESSION_NAME=$SSH_TMUX_SESSION_NAME; tmux attach -t $SSH_TMUX_SESSION_NAME || tmux new -e TMUX_SESSION_NAME=$SSH_TMUX_SESSION_NAME -s $SSH_TMUX_SESSION_NAME\"; exec tmux attach -t $TMUX_SESSION_NAME" + ''}/bin/ragdoll"; } diff --git a/programs/kitty/default.nix b/programs/kitty/default.nix index 9f37d8f..be05db4 100644 --- a/programs/kitty/default.nix +++ b/programs/kitty/default.nix @@ -34,7 +34,11 @@ inputs@{ machine, ... }: draw_minimal_borders = false; hide_window_decorations = true; - shell = "${pkgs.tmux}/bin/tmux"; + shell = "${pkgs.writeScriptBin "tmux-sesh" '' + RAND=$(cat /dev/urandom | head -c 20 | base32) + export TMUX_SESSION_NAME="kitty-$RAND" + exec ${pkgs.tmux}/bin/tmux new -e TMUX_SESSION_NAME=$TMUX_SESSION_NAME -s "$TMUX_SESSION_NAME" + ''}/bin/tmux-sesh"; clipboard_control = "write-clipboard write-primary read-clipboard read-primary"; foreground = "#fcfcfc"; diff --git a/programs/nvim/config.lua b/programs/nvim/config.lua index fa9219b..557b088 100644 --- a/programs/nvim/config.lua +++ b/programs/nvim/config.lua @@ -107,9 +107,12 @@ vim.cmd([[ -- multicursor vim.g.VM_default_mappings = 1 +vim.g.VM_mouse_mappings = 1 vim.g.VM_reselect_first = 1 vim.g.VM_notify_previously_selected = 1 vim.g.VM_theme = "iceblue" +vim.g.VM_maps["Undo"] = 'u' +vim.g.VM_maps["Redo"] = '' diff --git a/programs/tmux/default.nix b/programs/tmux/default.nix index 2154216..30ff7bb 100644 --- a/programs/tmux/default.nix +++ b/programs/tmux/default.nix @@ -39,8 +39,6 @@ inputs@{ machine, ... }: # unbind every single normal keybinding unbind-key -a - set -g status-left "#{?client_prefix,#[bg=colour2],#[bg=colour1]}#[fg=colour0] #S " - # for special characters to work right # like # set-window-option -g xterm-keys on @@ -60,6 +58,7 @@ inputs@{ machine, ... }: bind -T copy-mode-vi y send-keys -X copy-pipe-and-cancel bind v copy-mode bind p paste-buffer -p + bind d detach set -s set-clipboard on # get back normal terminal emulator bindings @@ -164,8 +163,6 @@ inputs@{ machine, ... }: bind-key [ copy-mode \; send-keys [ bind-key ] copy-mode \; send-keys ] - bind d select-pane -l \; send-keys [ - # f: file search # unbound: git files # g: git hashes