mod+shift+enter spawns terminal in same dir

This commit is contained in:
Luke Smith 2018-07-03 10:48:25 -04:00
parent bd4bac8870
commit 7bc830c09c
2 changed files with 28 additions and 1 deletions

View file

@ -73,7 +73,7 @@ set $hibernate sudo systemctl suspend
# #---Basic Bindings---# # # #---Basic Bindings---# #
bindsym $mod+Return exec $term bindsym $mod+Return exec $term
##bindsym $mod+Shift+Return bindsym $mod+Shift+Return exec samedir
bindsym $mod+Shift+space floating toggle bindsym $mod+Shift+space floating toggle
bindsym $mod+space focus mode_toggle bindsym $mod+space focus mode_toggle

27
.scripts/samedir Executable file
View file

@ -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