diff --git a/home/alacritty/default.nix b/home/alacritty/default.nix index 6f0741b..fa2da70 100644 --- a/home/alacritty/default.nix +++ b/home/alacritty/default.nix @@ -77,47 +77,47 @@ action = "ReceiveChar"; } { - chars = "u001B[72;6u"; + chars = "\\u001B[72;6u"; key = "H"; mods = "Control|Shift"; } { - chars = "u001B[74;6u"; + chars = "\\u001B[74;6u"; key = "J"; mods = "Control|Shift"; } { - chars = "u001B[75;6u"; + chars = "\\u001B[75;6u"; key = "K"; mods = "Control|Shift"; } { - chars = "u001B[76;6u"; + chars = "\\u001B[76;6u"; key = "L"; mods = "Control|Shift"; } { - chars = "u001B[105;5u"; + chars = "\\u001B[105;5u"; key = "I"; mods = "Control"; } { - chars = "u001B[46;5u"; + chars = "\\u001B[46;5u"; key = "Period"; mods = "Control"; } { - chars = "u001B[44;5u"; + chars = "\\u001B[44;5u"; key = "Comma"; mods = "Control"; } { - chars = "u001B[59;5u"; + chars = "\\u001B[59;5u"; key = "Semicolon"; mods = "Control"; } { - chars = "u001B[13;2u"; + chars = "\\u001B[13;2u"; key = "Return"; mods = "Shift"; } diff --git a/home/hyprland/default.nix b/home/hyprland/default.nix index ade8ade..2ff2a69 100644 --- a/home/hyprland/default.nix +++ b/home/hyprland/default.nix @@ -27,30 +27,38 @@ let # hyprland_plugins = []; launch_alacritty = pkgs.writeShellScriptBin "launch_alacritty" '' - RUNNING_WAYPIPE=false - SSH_CLIENT="" - CHILD_PID=$(pgrep -P "$1") - - if [ "$GRAND_CHILD_PID" != "" ]; then - GRAND_CHILD_NAME=$(ps -p "$GRAND_CHILD_PID" -o comm=) - if [ "$GRAND_CHILD_NAME" == "ssh" ]; then - CHILD_PID=$GRAND_CHILD_PID - SSH_CLIENT=$(ps -p "$CHILD_PID" -o args --no-headers | awk '{ print $2 }') + function find_leaf_pid(){ + local PID=$1 + local CHILD_PID=$(pgrep -P "$PID") + if [ "$CHILD_PID" != "" ]; then + local RET=$(find_leaf_pid "$CHILD_PID") + if [ "$RET" != "" ]; then + PID=$RET + fi fi - if [ "$GRAND_CHILD_NAME" == "waypipe" ]; then - RUNNING_WAYPIPE=true - CHILD_PID=$(pgrep -P "$GRAND_CHILD_PID") - SSH_CLIENT=$(ps -p "$GRAND_CHILD_PID" -o args --no-headers | awk '{ print $4 }') + local NAME=$(ps -p "$PID" -o comm=) + if [ "$NAME" == "zsh" ]; then + echo "$PID" + elif [ "$NAME" == "ssh" ]; then + echo "$PID" fi - fi + } - if [ $RUNNING_WAYPIPE == true ]; then - PREVIOUS_SESSION_ID=$(grep -z "SSH_SESSION_ID" "/proc/$CHILD_PID/environ" | xargs -0 -n 1 | grep -oP "[0-9]*") - SSH_SESSION_ID=$RANDOM - ${alacritty} -e zsh -c "SSH_SESSION_ID=$SSH_SESSION_ID waypipe ssh -t \"$SSH_CLIENT\" env SSH_SESSION_ID=\"$SSH_SESSION_ID\" PREVIOUS_SESSION_ID=\"$PREVIOUS_SESSION_ID\" \"zsh --login\"" - else + LEAF_PID=$(find_leaf_pid "$1") + if [ "$(ps -p "$LEAF_PID" -o comm=)" == "ssh" ]; then + SSH_COMMAND=$(ps -p "$LEAF_PID" -o args --no-headers) + if [[ "$SSH_COMMAND" == *"waypipe"* ]]; then + CLIENT=$(echo "$SSH_COMMAND" | awk '{ print $5 }') + PREVIOUS_SESSION_ID=$(grep -z "SSH_SESSION_ID" "/proc/$LEAF_PID/environ" | xargs -0 -n 1 | grep -oP "[0-9]*") + SSH_SESSION_ID=$RANDOM + ${alacritty} -e zsh -c "SSH_SESSION_ID=$SSH_SESSION_ID waypipe ssh -t \"$CLIENT\" env SSH_SESSION_ID=\"$SSH_SESSION_ID\" PREVIOUS_SESSION_ID=\"$PREVIOUS_SESSION_ID\" \"zsh --login\"" + else + ${alacritty} -e zsh -c "ssh -t \"$(echo "$SSH_COMMAND" | awk '{ print $2 }')\"" + fi + + else # Not an ssh session if [ "$(ps -p "$1" -o comm=)" == "alacritty" ]; then - CWD=$(readlink -e /proc/"$CHILD_PID"/cwd) + CWD=$(readlink -e /proc/"$LEAF_PID"/cwd) if [ "$CWD" != "" ]; then ${alacritty} --working-directory "$CWD" else diff --git a/home/nvim/files/lua/mappings.lua b/home/nvim/files/lua/mappings.lua index 4b91fae..868e1f2 100644 --- a/home/nvim/files/lua/mappings.lua +++ b/home/nvim/files/lua/mappings.lua @@ -6,12 +6,12 @@ vim.keymap.set("t", "jj", "", { noremap = true, silent = true }) vim.keymap.set("n", "", ":q", { noremap = true, silent = true }) vim.keymap.set("n", "", ":q!", { noremap = true, silent = true }) vim.keymap.set("n", ",;", ":", { noremap = true, silent = true }) -vim.keymap.set("n", "", "", { noremap = true }) -vim.keymap.set("n", "", "g;", { noremap = true }) -vim.keymap.set("n", "", "g,", { noremap = true }) -vim.keymap.set("n", "", "zz", { noremap = true }) -vim.keymap.set("n", "", "zz", { noremap = true }) -vim.keymap.set("n", "", "", { noremap = true }) +vim.keymap.set("n", "", "", { noremap = true, silent = true }) +vim.keymap.set("n", "", "g;", { noremap = true, silent = true }) +vim.keymap.set("n", "", "g,", { noremap = true, silent = true }) +vim.keymap.set("n", "", "zz", { noremap = true, silent = true }) +vim.keymap.set("n", "", "zz", { noremap = true, silent = true }) +vim.keymap.set("n", "", "", { noremap = true, silent = true }) vim.keymap.set("n", "n", "nzz", { noremap = true }) vim.keymap.set("n", "N", "Nzz", { noremap = true }) vim.keymap.set("x", "p", [["_dP]], { noremap = true })