23 lines
844 B
Bash
23 lines
844 B
Bash
|
|
#!/usr/bin/env bash
|
||
|
|
set -eo pipefail
|
||
|
|
CWD=$(dirname "$1")
|
||
|
|
|
||
|
|
if [ -n "$TMUX" ]; then
|
||
|
|
if tmux list-panes -F "#{pane_title}" 2>/dev/null | grep -q "^$EDITOR$"; then
|
||
|
|
tmux send-keys -t "$EDITOR" ":e $1" Enter
|
||
|
|
else
|
||
|
|
tmux split-window -h -p 83 -c "$CWD" -P -F "#{pane_id}" "exec $EDITOR '$1'"
|
||
|
|
tmux select-pane -T "$EDITOR"
|
||
|
|
tmux split-window -v -p 20 -c "$CWD"
|
||
|
|
fi
|
||
|
|
elif [ -n "$KITTY_WINDOW_ID" ]; then
|
||
|
|
if kitty @ focus-window --match "title:$EDITOR" 2>/dev/null; then
|
||
|
|
kitty @ send-text --match "title:$EDITOR" ":e $1\x0d"
|
||
|
|
else
|
||
|
|
kitty @ launch --title "$EDITOR" --location=vsplit --bias=83 --cwd "$CWD" bash -c "'$EDITOR' '$1'; while true; do '$EDITOR'; done"
|
||
|
|
kitty @ launch --title "CLI" --dont-take-focus --location=hsplit --bias=20 --cwd "$CWD"
|
||
|
|
fi
|
||
|
|
else
|
||
|
|
"$EDITOR" "$1"
|
||
|
|
fi
|