Fix Kitty terminal cwd detection
This commit is contained in:
@@ -4,18 +4,24 @@
|
|||||||
# omarchy:hidden=true
|
# omarchy:hidden=true
|
||||||
|
|
||||||
terminal_pid=$(hyprctl activewindow | awk '/pid:/ {print $2}')
|
terminal_pid=$(hyprctl activewindow | awk '/pid:/ {print $2}')
|
||||||
shell_pid=$(pgrep -P "$terminal_pid" | tail -n1)
|
kitty_socket="$XDG_RUNTIME_DIR/omarchy-kitty-$terminal_pid"
|
||||||
|
cwd=""
|
||||||
|
|
||||||
if [[ -n $shell_pid ]]; then
|
if [[ -S $kitty_socket ]]; then
|
||||||
cwd=$(readlink -f "/proc/$shell_pid/cwd" 2>/dev/null)
|
cwd=$(kitten @ --to "unix:$kitty_socket" ls --match "state:focused" 2>/dev/null |
|
||||||
shell=$(readlink -f "/proc/$shell_pid/exe" 2>/dev/null)
|
jq -r '.[].tabs[].windows[].cwd // empty')
|
||||||
|
else
|
||||||
|
shell_pid=$(pgrep -P "$terminal_pid" | tail -n1)
|
||||||
|
|
||||||
# Check if $shell is a valid shell and $cwd is a directory.
|
if [[ -n $shell_pid ]]; then
|
||||||
if grep -qs "$shell" /etc/shells && [[ -d $cwd ]]; then
|
cwd=$(readlink -f "/proc/$shell_pid/cwd" 2>/dev/null)
|
||||||
echo "$cwd"
|
shell=$(readlink -f "/proc/$shell_pid/exe" 2>/dev/null)
|
||||||
else
|
grep -Fqsx "$shell" /etc/shells || cwd=""
|
||||||
echo "$HOME"
|
|
||||||
fi
|
fi
|
||||||
|
fi
|
||||||
|
|
||||||
|
if [[ -d $cwd ]]; then
|
||||||
|
echo "$cwd"
|
||||||
else
|
else
|
||||||
echo "$HOME"
|
echo "$HOME"
|
||||||
fi
|
fi
|
||||||
|
|||||||
@@ -20,6 +20,7 @@ map alt+shift+enter send_text all \e[13;4u
|
|||||||
|
|
||||||
# Allow remote access
|
# Allow remote access
|
||||||
allow_remote_control yes
|
allow_remote_control yes
|
||||||
|
listen_on unix:${XDG_RUNTIME_DIR}/omarchy-kitty-{kitty_pid}
|
||||||
|
|
||||||
# Aesthetics
|
# Aesthetics
|
||||||
cursor_shape block
|
cursor_shape block
|
||||||
|
|||||||
@@ -0,0 +1,8 @@
|
|||||||
|
echo "Enable Kitty cwd lookup through a remote control socket"
|
||||||
|
|
||||||
|
kitty_config="$HOME/.config/kitty/kitty.conf"
|
||||||
|
listen_on='listen_on unix:${XDG_RUNTIME_DIR}/omarchy-kitty-{kitty_pid}'
|
||||||
|
|
||||||
|
if [[ -f $kitty_config ]] && ! grep -qE '^[[:space:]]*listen_on[[:space:]]' "$kitty_config"; then
|
||||||
|
printf '\n# Allow cwd lookup from global keybindings\n%s\n' "$listen_on" >>"$kitty_config"
|
||||||
|
fi
|
||||||
Reference in New Issue
Block a user