diff options
| author | Luke Smith <luke@lukesmith.xyz> | 2018-11-05 17:51:24 -0500 |
|---|---|---|
| committer | Luke Smith <luke@lukesmith.xyz> | 2018-11-05 17:51:24 -0500 |
| commit | 2f4c2a68a1cbebb0e06a5b3296e4bbb575c5fcb2 (patch) | |
| tree | 4adda53569104861794d990ef99c85edc1ae2d8c /.scripts/i3cmds/samedir | |
| parent | cd667e6aa111c86b40b9e3104605953e9b341332 (diff) | |
| download | eibhear-2f4c2a68a1cbebb0e06a5b3296e4bbb575c5fcb2.tar.gz eibhear-2f4c2a68a1cbebb0e06a5b3296e4bbb575c5fcb2.tar.zst eibhear-2f4c2a68a1cbebb0e06a5b3296e4bbb575c5fcb2.zip | |
scripts sorted
Diffstat (limited to '.scripts/i3cmds/samedir')
| -rwxr-xr-x | .scripts/i3cmds/samedir | 27 |
1 files changed, 27 insertions, 0 deletions
diff --git a/.scripts/i3cmds/samedir b/.scripts/i3cmds/samedir new file mode 100755 index 0000000..1bc1701 --- /dev/null +++ b/.scripts/i3cmds/samedir @@ -0,0 +1,27 @@ +#!/bin/bash +# i3 thread: https://faq.i3wm.org/question/150/how-to-launch-a-terminal-from-here/?answer=152#post-id-152 + +CMD=$TERMINAL +CWD='' + +# Get window ID +ID=$(xdpyinfo | grep focus | cut -f4 -d " ") + +# Get PID of process whose window this is +PID=$(xprop -id $ID | grep -m 1 PID | cut -d " " -f 3) + +# Get last child process (shell, vim, etc) +if [ -n "$PID" ]; then + TREE=$(pstree -lpA $PID | tail -n 1) + PID=$(echo $TREE | awk -F'---' '{print $NF}' | sed -re 's/[^0-9]//g') + + # If we find the working directory, run the command in that directory + if [ -e "/proc/$PID/cwd" ]; then + CWD=$(readlink /proc/$PID/cwd) + fi +fi +if [ -n "$CWD" ]; then + cd $CWD && $CMD +else + $CMD +fi |
