summaryrefslogtreecommitdiff
path: root/bin/i3-shell
blob: 120e4b4173eb423e24d364a0056f704c623642b2 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
#!/bin/bash
# i3 thread: https://faq.i3wm.org/question/150/how-to-launch-a-terminal-from-here/?answer=152#post-id-152

CMD=urxvt
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