kitty:get_cwd: Use the match flag for performance
Instead of requesting the full tree as a JSON and extracting the focused window with `jq`, use `kitten-@-ls`'s `--match` flag. This further improves the performance. Also remove the commented code using recursive descent because it is not up-to-date anymore.
This commit is contained in:
@@ -11,23 +11,10 @@ socket_path="${TMPDIR:-/tmp}/kitty.$USER/kitty${1:+-$1}.sock"
|
||||
|
||||
# NOTE: Unfortunately kitten-@-ls(1) is slow, so communicate with the socket
|
||||
# directly.
|
||||
# NOTE: the backticks are used for hacky line-continuation, taken from
|
||||
# https://stackoverflow.com/a/7729087/2092762c9
|
||||
printf '\eP@kitty-cmd{"cmd":"ls","version":[0,26,0]}\e\\' \
|
||||
printf '\eP@kitty-cmd{%s,%s,%s}\e\\' \
|
||||
'"cmd":"ls"' \
|
||||
'"version":[0,26,0]' \
|
||||
'"payload":{"match":"state:focused"}' \
|
||||
| nc -U -q0 "$socket_path" \
|
||||
| awk '{ print substr($0, 13, length($0) - 14) }' \
|
||||
| jq -er ".data`
|
||||
` | fromjson`
|
||||
` | .[]`
|
||||
` | select(.is_focused).tabs.[]`
|
||||
` | select(.is_focused).windows.[]`
|
||||
` | select(.is_focused).cwd"
|
||||
|
||||
# An alternative version that uses recursive descent to find focused objects
|
||||
# that also have a `.cwd` key:
|
||||
#
|
||||
# | jq -er "..`
|
||||
# ` | objects`
|
||||
# ` | select(.is_focused)`
|
||||
# ` | to_entries.[]`
|
||||
# ` | select(.key == \"cwd\").value"
|
||||
| jq -er ".data | fromjson | .[].tabs.[].windows.[].cwd"
|
||||
|
||||
Reference in New Issue
Block a user