Skip to content

Instantly share code, notes, and snippets.

@viking
Last active March 25, 2024 16:25
Show Gist options
  • Select an option

  • Save viking/5851049 to your computer and use it in GitHub Desktop.

Select an option

Save viking/5851049 to your computer and use it in GitHub Desktop.

Revisions

  1. Jeremy Stephens revised this gist Jun 24, 2013. 1 changed file with 2 additions and 2 deletions.
    4 changes: 2 additions & 2 deletions i3-shell.sh
    Original file line number Diff line number Diff line change
    @@ -10,9 +10,9 @@ 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 child process (shell, vim, etc)
    # Get last child process (shell, vim, etc)
    if [ -n "$PID" ]; then
    TREE=$(pstree -pA $PID)
    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
  2. Jeremy Stephens revised this gist Jun 24, 2013. 1 changed file with 12 additions and 7 deletions.
    19 changes: 12 additions & 7 deletions i3-shell.sh
    Original file line number Diff line number Diff line change
    @@ -2,6 +2,7 @@
    # i3 thread: https://faq.i3wm.org/question/150/how-to-launch-a-terminal-from-here/?answer=152#post-id-152

    CMD=xterm
    CWD=''

    # Get window ID
    ID=$(xdpyinfo | grep focus | cut -f4 -d " ")
    @@ -10,13 +11,17 @@ ID=$(xdpyinfo | grep focus | cut -f4 -d " ")
    PID=$(xprop -id $ID | grep -m 1 PID | cut -d " " -f 3)

    # Get child process (shell, vim, etc)
    TREE=$(pstree -pA $PID)
    PID=$(echo $TREE | awk -F'---' '{print $NF}' | sed -re 's/[^0-9]//g')
    if [ -n "$PID" ]; then
    TREE=$(pstree -pA $PID)
    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
    cd $(readlink /proc/$PID/cwd) && $CMD
    # 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
    $CMD
    fi
  3. Jeremy Stephens revised this gist Jun 24, 2013. 1 changed file with 2 additions and 2 deletions.
    4 changes: 2 additions & 2 deletions i3-shell.sh
    Original file line number Diff line number Diff line change
    @@ -10,8 +10,8 @@ ID=$(xdpyinfo | grep focus | cut -f4 -d " ")
    PID=$(xprop -id $ID | grep -m 1 PID | cut -d " " -f 3)

    # Get child process (shell, vim, etc)
    TREE=`pstree -pA $PID`
    PID=`echo $TREE | awk -F'---' '{print $NF}' | sed -re 's/[^0-9]//g'`
    TREE=$(pstree -pA $PID)
    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" ]
  4. Jeremy Stephens revised this gist Jun 24, 2013. 1 changed file with 1 addition and 0 deletions.
    1 change: 1 addition & 0 deletions i3-shell.sh
    Original file line number Diff line number Diff line change
    @@ -1,4 +1,5 @@
    #!/bin/bash
    # i3 thread: https://faq.i3wm.org/question/150/how-to-launch-a-terminal-from-here/?answer=152#post-id-152

    CMD=xterm

  5. Jeremy Stephens created this gist Jun 24, 2013.
    21 changes: 21 additions & 0 deletions i3-shell.sh
    Original file line number Diff line number Diff line change
    @@ -0,0 +1,21 @@
    #!/bin/bash

    CMD=xterm

    # 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 child process (shell, vim, etc)
    TREE=`pstree -pA $PID`
    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
    cd $(readlink /proc/$PID/cwd) && $CMD
    else
    $CMD
    fi