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";
}
{
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";
}

View File

@ -27,30 +27,38 @@ let
# hyprland_plugins = [];
launch_alacritty = pkgs.writeShellScriptBin "launch_alacritty" ''
RUNNING_WAYPIPE=false
SSH_CLIENT=""
CHILD_PID=$(pgrep -P "$1")
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
local NAME=$(ps -p "$PID" -o comm=)
if [ "$NAME" == "zsh" ]; then
echo "$PID"
elif [ "$NAME" == "ssh" ]; then
echo "$PID"
fi
}
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 }')
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 }')
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]*")
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 \"$SSH_CLIENT\" env SSH_SESSION_ID=\"$SSH_SESSION_ID\" PREVIOUS_SESSION_ID=\"$PREVIOUS_SESSION_ID\" \"zsh --login\""
${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

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", "<C-Backspace>", ":q!<cr>", { 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", "<S-C-U>", "g;", { noremap = true })
vim.keymap.set("n", "<S-C-I>", "g,", { noremap = true })
vim.keymap.set("n", "<C-E>", "<C-U>zz", { noremap = true })
vim.keymap.set("n", "<C-D>", "<C-D>zz", { noremap = true })
vim.keymap.set("n", "<C-I>", "<C-I>", { noremap = true })
vim.keymap.set("n", "<C-U>", "<C-O>", { noremap = true, silent = true })
vim.keymap.set("n", "<S-C-U>", "g;", { noremap = true, silent = true })
vim.keymap.set("n", "<S-C-I>", "g,", { noremap = true, silent = 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, silent = 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("x", "<leader>p", [["_dP]], { noremap = true })