# Author: Fabio Mucciante # Last Update: 2022/05/01 # Version: 1.3.0 # # Manual Install: # - KDE 4: Copy this file under: ~/.kde4/share/kde4/services/ServiceMenus/ # - KDE 5: Copy this file under: ~/.local/share/kservices5/ServiceMenus/ # # References: # - https://freeaptitude.altervista.org/downloads/open-konsole-here.html # - https://github.com/fabiomux/kde-servicemenus [Desktop Entry] Type=Service MimeType=inode/directory; X-KDE-ServiceTypes=KonqPopupMenu/Plugin Icon=utilities-terminal Actions=konsole_first_instance_current_session;konsole_first_instance_new_session;_SEPARATOR_;konsole_last_instance_current_session;konsole_last_instance_new_session;_SEPARATOR_;konsole_select_instance_current_session;konsole_select_instance_new_session; X-KDE-Submenu=Open Konsole here X-KDE-Submenu[fr]=Ouvrir dans Konsole X-KDE-Priority=TopLevel [Desktop Action konsole_last_instance_current_session] Name=Current session (last instance) Name[fr]=Onglet actuel (dernière instance) Icon=utilities-terminal Exec=exe=`command -v qdbus-qt5 || command -v qdbus`;(pgrep konsole || konsole &);while ! pgrep konsole;do sleep 1; done;if expr "`$exe org.kde.konsol*`" : '.*-.*'; then pid=`pgrep konsole|sort -rn|head -n 1` && sname="org.kde.konsole-$pid" && sid=`$exe $sname /Windows/1 currentSession` && wid=1; else sname='org.kde.konsole' && for i in `$exe $sname | grep "/konsole/MainWindow_[0-9]\\+\\\\$"|cut -f 2 -d '_'`;do r="$r\\n`$exe $sname /konsole/MainWindow_$i winId`.$i";done && wid=`echo -e $r|sort -rn|head -n 1|cut -f 2 -d '.'` && sid=`$exe $sname "/Windows/$wid" currentSession`;fi;$exe $sname /Sessions/$sid runCommand " cd '%f'" && $exe $sname /konsole/MainWindow_$wid hide && $exe $sname /konsole/MainWindow_$wid show [Desktop Action konsole_last_instance_new_session] Name=New session (last instance) Name[fr]=Nouvel onglet (dernière instance) Icon=window-new Exec=exe=`command -v qdbus-qt5 || command -v qdbus`;(pgrep konsole || konsole &);while ! pgrep konsole;do sleep 1; done;if expr "`$exe org.kde.konsol*`" : '.*-.*'; then pid=`pgrep konsole|sort -rn|head -n 1` && sname="org.kde.konsole-$pid" && sid=`$exe $sname /Windows/1 newSession` && wid=1; else sname='org.kde.konsole' && for i in `$exe $sname|grep "/konsole/MainWindow_[0-9]\\+\\\\$"|cut -f 2 -d '_'`; do r="$r\\n`$exe $sname /konsole/MainWindow_$i winId`.$i";done && wid=`echo -e $r|sort -rn|head -n 1|cut -f 2 -d '.'` && sid=`$exe $sname "/Windows/$wid" newSession`;fi; sleep 1 && $exe $sname /Sessions/$sid runCommand " cd '%f'" && $exe $sname /konsole/MainWindow_$wid hide && $exe $sname /konsole/MainWindow_$wid show [Desktop Action konsole_first_instance_current_session] Name=Current session (first instance) Name[fr]=Onglet actuel (première instance) Icon=utilities-terminal Exec=exe=`command -v qdbus-qt5 || command -v qdbus`;(pgrep konsole || konsole &);while ! pgrep konsole;do sleep 1; done;if expr "`$exe org.kde.konsol*`" : '.*-.*'; then pid=`pgrep konsole|sort -n|grep "^[0-9]"|head -n 1` && sname="org.kde.konsole-$pid" && sid=`$exe $sname /Windows/1 currentSession` && wid=1; else sname='org.kde.konsole' && for i in `$exe $sname | grep "/konsole/MainWindow_[0-9]\\+\\\\$"|cut -f 2 -d '_'`;do r="$r\\n`$exe $sname /konsole/MainWindow_$i winId`.$i";done && wid=`echo -e $r|sort -n|grep "^[0-9]"|head -n 1|cut -f 2 -d '.'` && sid=`$exe $sname "/Windows/$wid" currentSession`;fi;$exe $sname /Sessions/$sid runCommand " cd '%f'" && $exe $sname /konsole/MainWindow_$wid hide && $exe $sname /konsole/MainWindow_$wid show [Desktop Action konsole_first_instance_new_session] Name=New session (first instance) Name[fr]=Nouvel onglet (première instance) Icon=window-new Exec=exe=`command -v qdbus-qt5 || command -v qdbus`;(pgrep konsole || konsole &);while ! pgrep konsole;do sleep 1; done;if expr "`$exe org.kde.konsol*`" : '.*-.*'; then pid=`pgrep konsole|sort -n|grep "^[0-9]"|head -n 1` && sname="org.kde.konsole-$pid" && sid=`$exe $sname /Windows/1 newSession` && wid=1; else sname='org.kde.konsole' && for i in `$exe $sname|grep "/konsole/MainWindow_[0-9]\\+\\\\$"|cut -f 2 -d '_'`; do r="$r\\n`$exe $sname /konsole/MainWindow_$i winId`.$i";done && wid=`echo -e $r|sort -n|grep "^[0-9]"|head -n 1|cut -f 2 -d '.'` && sid=`$exe $sname "/Windows/$wid" newSession`;fi; sleep 1 && $exe $sname /Sessions/$sid runCommand " cd '%f'" && $exe $sname /konsole/MainWindow_$wid hide && $exe $sname /konsole/MainWindow_$wid show [Desktop Action konsole_select_instance_current_session] Name=Current session (select the instance) Name[fr]=Onglet actuel (choisir l'instance) Icon=utilities-terminal Exec=exe=`command -v qdbus-qt5 || command -v qdbus`;(pgrep konsole || konsole &);while ! pgrep konsole;do sleep 1; done;if expr "`$exe org.kde.konsol*`" : '.*-.*'; then declare -a a;for i in `pgrep konsole`;do a[$i]="$i \\"`$exe org.kde.konsole-$i /konsole/MainWindow_1 org.qtproject.Qt.QWidget.windowTitle`\\" off"; done; eval set -- "${a[@]}";pid=`kdialog --radiolist 'Select the Konsole window' "$@"` && sname="org.kde.konsole-$pid" && sid=`$exe $sname /Windows/1 currentSession` && wid=1; else sname='org.kde.konsole' && for i in `$exe $sname | grep "/konsole/MainWindow_[0-9]\\+\\\\$"|cut -f 2 -d '_'`;do a["$i"]="$i \\"`$exe $sname /konsole/MainWindow_$i org.qtproject.Qt.QWidget.windowTitle`\\" off"; done; eval set -- "${a[@]}"; wid=`kdialog --radiolist 'Select the Konsole window' "$@"` && sid=`$exe $sname "/Windows/$wid" currentSession`;fi;$exe $sname /Sessions/$sid runCommand " cd '%f'" && $exe $sname /konsole/MainWindow_$wid hide && $exe $sname /konsole/MainWindow_$wid show [Desktop Action konsole_select_instance_new_session] Name=New session (select the instance) Name[fr]=Nouvel onglet (choisir l'instance) Icon=window-new Exec=exe=`command -v qdbus-qt5 || command -v qdbus`;(pgrep konsole || konsole &);while ! pgrep konsole;do sleep 1; done;if expr "`$exe org.kde.konsol*`" : '.*-.*'; then declare -a a;for i in `pgrep konsole`;do a[$i]="$i \\"`$exe org.kde.konsole-$i /konsole/MainWindow_1 org.qtproject.Qt.QWidget.windowTitle`\\" off"; done; eval set -- "${a[@]}";pid=`kdialog --radiolist 'Select the Konsole window' "$@"` && sname="org.kde.konsole-$pid" && sid=`$exe $sname /Windows/1 currentSession` && wid=1; else sname='org.kde.konsole' && for i in `$exe $sname | grep "/konsole/MainWindow_[0-9]\\+\\\\$"|cut -f 2 -d '_'`;do a["$i"]="$i \\"`$exe $sname /konsole/MainWindow_$i org.qtproject.Qt.QWidget.windowTitle`\\" off"; done; eval set -- "${a[@]}"; wid=`kdialog --radiolist 'Select the Konsole window' "$@"` && sid=`$exe $sname "/Windows/$wid" newSession`;fi;$exe $sname /Sessions/$sid runCommand " cd '%f'" && $exe $sname /konsole/MainWindow_$wid hide && $exe $sname /konsole/MainWindow_$wid show