Sun Jun 23 03:42:09 PM CEST 2024

This commit is contained in:
Thomas Avé 2024-06-23 15:42:09 +02:00
parent 0cd4f1d044
commit 5276775d59
3 changed files with 43 additions and 35 deletions

View File

@ -77,47 +77,47 @@
action = "ReceiveChar"; action = "ReceiveChar";
} }
{ {
chars = "u001B[72;6u"; chars = "\\u001B[72;6u";
key = "H"; key = "H";
mods = "Control|Shift"; mods = "Control|Shift";
} }
{ {
chars = "u001B[74;6u"; chars = "\\u001B[74;6u";
key = "J"; key = "J";
mods = "Control|Shift"; mods = "Control|Shift";
} }
{ {
chars = "u001B[75;6u"; chars = "\\u001B[75;6u";
key = "K"; key = "K";
mods = "Control|Shift"; mods = "Control|Shift";
} }
{ {
chars = "u001B[76;6u"; chars = "\\u001B[76;6u";
key = "L"; key = "L";
mods = "Control|Shift"; mods = "Control|Shift";
} }
{ {
chars = "u001B[105;5u"; chars = "\\u001B[105;5u";
key = "I"; key = "I";
mods = "Control"; mods = "Control";
} }
{ {
chars = "u001B[46;5u"; chars = "\\u001B[46;5u";
key = "Period"; key = "Period";
mods = "Control"; mods = "Control";
} }
{ {
chars = "u001B[44;5u"; chars = "\\u001B[44;5u";
key = "Comma"; key = "Comma";
mods = "Control"; mods = "Control";
} }
{ {
chars = "u001B[59;5u"; chars = "\\u001B[59;5u";
key = "Semicolon"; key = "Semicolon";
mods = "Control"; mods = "Control";
} }
{ {
chars = "u001B[13;2u"; chars = "\\u001B[13;2u";
key = "Return"; key = "Return";
mods = "Shift"; mods = "Shift";
} }

View File

@ -27,30 +27,38 @@ let
# hyprland_plugins = []; # hyprland_plugins = [];
launch_alacritty = pkgs.writeShellScriptBin "launch_alacritty" '' launch_alacritty = pkgs.writeShellScriptBin "launch_alacritty" ''
RUNNING_WAYPIPE=false function find_leaf_pid(){
SSH_CLIENT="" local PID=$1
CHILD_PID=$(pgrep -P "$1") local CHILD_PID=$(pgrep -P "$PID")
if [ "$CHILD_PID" != "" ]; then
if [ "$GRAND_CHILD_PID" != "" ]; then local RET=$(find_leaf_pid "$CHILD_PID")
GRAND_CHILD_NAME=$(ps -p "$GRAND_CHILD_PID" -o comm=) if [ "$RET" != "" ]; then
if [ "$GRAND_CHILD_NAME" == "ssh" ]; then PID=$RET
CHILD_PID=$GRAND_CHILD_PID fi
SSH_CLIENT=$(ps -p "$CHILD_PID" -o args --no-headers | awk '{ print $2 }')
fi fi
if [ "$GRAND_CHILD_NAME" == "waypipe" ]; then local NAME=$(ps -p "$PID" -o comm=)
RUNNING_WAYPIPE=true if [ "$NAME" == "zsh" ]; then
CHILD_PID=$(pgrep -P "$GRAND_CHILD_PID") echo "$PID"
SSH_CLIENT=$(ps -p "$GRAND_CHILD_PID" -o args --no-headers | awk '{ print $4 }') elif [ "$NAME" == "ssh" ]; then
echo "$PID"
fi fi
fi }
if [ $RUNNING_WAYPIPE == true ]; then LEAF_PID=$(find_leaf_pid "$1")
PREVIOUS_SESSION_ID=$(grep -z "SSH_SESSION_ID" "/proc/$CHILD_PID/environ" | xargs -0 -n 1 | grep -oP "[0-9]*") if [ "$(ps -p "$LEAF_PID" -o comm=)" == "ssh" ]; then
SSH_SESSION_ID=$RANDOM SSH_COMMAND=$(ps -p "$LEAF_PID" -o args --no-headers)
${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\"" if [[ "$SSH_COMMAND" == *"waypipe"* ]]; then
else 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 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 if [ "$CWD" != "" ]; then
${alacritty} --working-directory "$CWD" ${alacritty} --working-directory "$CWD"
else else

View File

@ -6,12 +6,12 @@ vim.keymap.set("t", "jj", "<C-\\><C-n>", { noremap = true, silent = true })
vim.keymap.set("n", "<Backspace>", ":q<cr>", { noremap = true, silent = true }) vim.keymap.set("n", "<Backspace>", ":q<cr>", { noremap = true, silent = true })
vim.keymap.set("n", "<C-Backspace>", ":q!<cr>", { noremap = true, silent = true }) vim.keymap.set("n", "<C-Backspace>", ":q!<cr>", { noremap = true, silent = true })
vim.keymap.set("n", ",;", ":", { noremap = true, silent = true }) vim.keymap.set("n", ",;", ":", { noremap = true, silent = true })
vim.keymap.set("n", "<C-U>", "<C-O>", { noremap = true }) vim.keymap.set("n", "<C-U>", "<C-O>", { noremap = true, silent = true })
vim.keymap.set("n", "<S-C-U>", "g;", { noremap = true }) vim.keymap.set("n", "<S-C-U>", "g;", { noremap = true, silent = true })
vim.keymap.set("n", "<S-C-I>", "g,", { noremap = true }) vim.keymap.set("n", "<S-C-I>", "g,", { noremap = true, silent = true })
vim.keymap.set("n", "<C-E>", "<C-U>zz", { noremap = true }) vim.keymap.set("n", "<C-E>", "<C-U>zz", { noremap = true, silent = true })
vim.keymap.set("n", "<C-D>", "<C-D>zz", { noremap = true }) vim.keymap.set("n", "<C-D>", "<C-D>zz", { noremap = true, silent = true })
vim.keymap.set("n", "<C-I>", "<C-I>", { noremap = true }) vim.keymap.set("n", "<C-I>", "<C-I>", { noremap = true, silent = true })
vim.keymap.set("n", "n", "nzz", { noremap = true }) vim.keymap.set("n", "n", "nzz", { noremap = true })
vim.keymap.set("n", "N", "Nzz", { noremap = true }) vim.keymap.set("n", "N", "Nzz", { noremap = true })
vim.keymap.set("x", "<leader>p", [["_dP]], { noremap = true }) vim.keymap.set("x", "<leader>p", [["_dP]], { noremap = true })