Anyone knows how to add a key-binding in konsole that binds a key combination to a sequence of actions?
Maybe, this could be achieved via a script?
In my case, I just want a key-binding to switch to a certain tab and send the command !!
(last used command). This is super-useful while developing. I can do the first action with standard konsole keybinding and the second action using a qdbus command. I don’t know how to put them together…
Thank you!
This is what I came up with.
So you’d save the scripts somewhere you like, and run the
useThisSession
one in the session you’d like to be the target.Then, you can run / bind to a shortcut / … the
runCommand
script, and it will show, raise, set Session, and run the command on the target saved earlier.useThisSession.sh
:#!/bin/bash # useThisSession echo MYCMD_SERVICE=$KONSOLE_DBUS_SERVICE > ~/.config/mycmdrc echo MYCMD_SESSION=${KONSOLE_DBUS_SESSION#/Sessions/} >> ~/.config/mycmdrc echo MYCMD_WINDOW=${KONSOLE_DBUS_WINDOW#/Windows/} >> ~/.config/mycmdrc
runCommand.sh
:#!/bin/bash # runCommand . ~/.config/mycmdrc qdbus $MYCMD_SERVICE /konsole/MainWindow_$MYCMD_WINDOW showNormal qdbus $MYCMD_SERVICE /konsole/MainWindow_$MYCMD_WINDOW raise qdbus $MYCMD_SERVICE /Windows/$MYCMD_WINDOW setCurrentSession $MYCMD_SESSION qdbus $KONSOLE_DBUS_SERVICE /Sessions/$MYCMD_SESSION runCommand "echo cmd"
For testing purposes, I’m using
"echo cmd"
instead of'!!'
(note the different type of quotes) to not cause any… unintended… executions.Running
qdbus $MYCMD_SERVICE /konsole/MainWindow_$MYCMD_WINDOW
will show you all methods available on the Window, eg, so you can pick&choose from those if you want different behaviour from show (& un-minimize) and raise.EDIT: syntax adjusted to work in ‘regular’ bash
Great! Anyway, still far from what you can get with tmux or kitty with just a line in the config…