Advertisement
Guest User

Untitled

a guest
Nov 8th, 2020
45
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Bash 1.39 KB | None | 0 0
  1. #!/bin/bash
  2. #params: title force
  3. function konsole_activate {
  4. #this stopped working at some point:  xdotool search --class konsole windowactivate
  5.   xdotool windowactivate $((`wmctrl -l |grep " Konsole$" |cut -d' ' -f1`))
  6. }
  7.  
  8. function konsole_getTitles {  #call getSessions first
  9.   konsole_sessions=`dbus-send --dest=org.kde.konsole --type=method_call --print-reply /Windows/1 org.kde.konsole.Window.sessionList |grep string |cut -d\" -f2`
  10.   konsole_titles=""
  11.   for i in $konsole_sessions ; do
  12.     title=`dbus-send --dest=org.kde.konsole --type=method_call --print-reply=literal /Sessions/$i org.kde.konsole.Session.title int32:1`
  13.     konsole_titles=${konsole_titles}$i:${title##* }"\n"
  14.   done
  15. }
  16.  
  17. function konsole_getSessionByTitle {
  18.   set -o pipefail
  19.   sessionNumber=`echo -e "$konsole_titles" |grep :$1$ |head -1 | cut -d: -f1 || echo 0`
  20.   return $sessionNumber
  21. }
  22. function konsole_switchToSession {
  23.   while [ $1 -ne `dbus-send --dest=org.kde.konsole --type=method_call --print-reply=literal /Windows/1 org.kde.konsole.Window.currentSession |awk '{print $2}'` ]; do
  24.     dbus-send --dest=org.kde.konsole --type=method_call --print-reply=literal /Windows/1 org.kde.konsole.Window.nextSession
  25.     sleep .1
  26.   done
  27. }
  28.  
  29. konsole_activate
  30. #if force just exit
  31. [ "$2" == "1" ] && exit 0
  32.  
  33. konsole_getTitles
  34.  
  35. konsole_getSessionByTitle $1 || konsole_switchToSession $sessionNumber
  36. exit $sessionNumber
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement