Implement script and accompanying window rule to make Konsole act as drop-down, replace Yakuake

This commit is contained in:
2023-12-19 22:42:43 -05:00
parent a4b193bb67
commit 58bff83a53
4 changed files with 59 additions and 10 deletions
+32
View File
@@ -0,0 +1,32 @@
#!/bin/sh
# set KONQUAKE_ID and KONQUAKE_STATUS
[ -f /tmp/konquakerc ] && . /tmp/konquakerc || { KONQUAKE_ID=1; KONQUAKE_STATUS=1; }
# if KONQUAKE_ID is associated with konsole
if [ "$(ps -p $KONQUAKE_ID -o comm=)" = 'konsole' ]; then
# toggle konsole window
if [ $KONQUAKE_STATUS -eq 0 ]; then
# set custom window title (to match window rule)
dbus-send --type=method_call --dest=org.kde.konsole-$KONQUAKE_ID /konsole/MainWindow_1 org.qtproject.Qt.QWidget.setWindowTitle string:konquake\ session
# show konsole window
dbus-send --type=method_call --dest=org.kde.konsole-$KONQUAKE_ID /konsole/MainWindow_1 org.qtproject.Qt.QWidget.show
KONQUAKE_STATUS=1
else
# hide konsole window
dbus-send --type=method_call --dest=org.kde.konsole-$KONQUAKE_ID /konsole/MainWindow_1 org.qtproject.Qt.QWidget.hide
KONQUAKE_STATUS=0
fi
else
konsole -e zsh -c "printf $'\033]30;'konquake\ session$'\007' && exec zsh" &
# update KONQUAKE_ID for newest konsole instance
KONQUAKE_ID=$!
sleep .2
# hide konsole window
dbus-send --type=method_call --dest=org.kde.konsole-$KONQUAKE_ID /konsole/MainWindow_1 org.qtproject.Qt.QWidget.hide
# show konsole window
dbus-send --type=method_call --dest=org.kde.konsole-$KONQUAKE_ID /konsole/MainWindow_1 org.qtproject.Qt.QWidget.show
fi
# update /tmp/konquakerc with status information
printf "export KONQUAKE_ID=$KONQUAKE_ID\nexport KONQUAKE_STATUS=$KONQUAKE_STATUS" > /tmp/konquakerc