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
+12 -8
View File
@@ -12,6 +12,8 @@ userpassword=${args[6]}
timezone=${args[7]}
swap=${args[8]}
intel_vaapi_driver=${args[9]}
res_x=${args[10]}
res_y_half=${args[11]}
# configuring locale and clock Settings
echo 'en_US.UTF-8 UTF-8' > /etc/locale.gen
@@ -114,28 +116,30 @@ chmod 755 /home/"$username"/{.config,.local/share}
## KDE Plasma
if [ "$formfactor" == 1 ] || [ "$formfactor" == 2 ] || [ "$formfactor" == 3 ]; then
pacman -S plasma-desktop plasma-wayland-session plasma-wayland-protocols kscreen kwallet-pam kdeplasma-addons spectacle gwenview plasma-nm plasma-pa breeze-gtk kde-gtk-config kio-extras khotkeys kwalletmanager yakuake ark kate bluedevil dolphin qt5-imageformats pipewire pipewire-pulse pipewire-jack pipewire-alsa wireplumber wayland-protocols polkit bluez-openrc --needed --noconfirm
pacman -S plasma-desktop plasma-wayland-session plasma-wayland-protocols kscreen kwallet-pam kdeplasma-addons spectacle gwenview plasma-nm plasma-pa breeze-gtk kde-gtk-config kio-extras khotkeys kwalletmanager ark kate bluedevil dolphin qt5-imageformats pipewire pipewire-pulse pipewire-jack pipewire-alsa wireplumber wayland-protocols polkit bluez-openrc --needed --noconfirm
curl https://raw.githubusercontent.com/rwinkhart/artix-install-script/main/programs/konquake/konquake.sh -o /usr/local/bin/konquake
curl https://raw.githubusercontent.com/rwinkhart/artix-install-script/main/config-files/pam-login -o /etc/pam.d/login
mkdir -p /home/"$username"/.local/share/konsole
curl https://raw.githubusercontent.com/rwinkhart/artix-install-script/main/config-files/konsole-profile -o /home/"$username"/.local/share/konsole/Custom.profile
curl https://raw.githubusercontent.com/rwinkhart/artix-install-script/main/config-files/konsolerc -o /home/"$username"/.config/konsolerc
curl https://raw.githubusercontent.com/rwinkhart/artix-install-script/main/config-files/kwinrc -o /home/"$username"/.config/kwinrc
chown -R "$username":users /home/"$username"/.config/kwinrc /home/"$username"/.config/konsolerc /home/"$username"/.local/share/konsole
curl https://raw.githubusercontent.com/rwinkhart/artix-install-script/main/config-files/plasma-org.kde.plasma.desktop-appletsrc -o /home/"$username"/.config/plasma-org.kde.plasma.desktop-appletsrc
echo -e "[PlasmaRunnerManager]\nmigrated=true\n\n[Plugins]\nbaloosearchEnabled=false" > /home/"$username"/.config/krunnerrc
echo -e "[Basic Settings]\nIndexing-Enabled=false" > /home/"$username"/.config/baloofilerc
echo -e "[General]\nloginMode=emptySession" > /home/"$username"/.config/ksmserverrc
echo -e "[1]\nDescription=konquake\nnoborder=true\nnoborderrule=2\nplacement=6\nplacementrule=2\nsize=3840,1080\nsizerule=3\ntitle=konquake session\ntitlematch=2\ntypes=1\nwmclass=konsole org.kde.konsole\nwmclasscomplete=true\nwmclassmatch=1\n\n[2]\nDescription=konsole\nsize=$res_x,$res_y_half\nsizerule=3\ntypes=1\nwmclass=konsole org.kde.konsole\nwmclasscomplete=true\nwmclassmatch=1\n\n[General]\ncount=2\nrules=1,2" > /home/"$username"/.config/kwinrulesrc
chmod 755 /usr/local/bin/konquake
chown -R "$username":users /home/"$username"/.config/kwinrc /home/"$username"/.config/konsolerc /home/"$username"/.local/share/konsole /home/"$username"/.config/plasma-org.kde.plasma.desktop-appletsrc /home/"$username"/.config/krunnerrc /home/"$username"/.config/baloofilerc /home/"$username"/.config/ksmserverrc /home/"$username"/.config/kwinrulesrc
fi
mkdir /home/"$username"/.config/autostart
echo -e "[Desktop Entry]\nCategories=Qt;KDE;System;TerminalEmulator;\nComment=A drop-down terminal emulator based on KDE Konsole technology.\nDBusActivatable=true\nExec=yakuake\nGenericName=Drop-down Terminal\nIcon=yakuake\nName=Yakuake\nTerminal=false\nType=Application\nX-DBUS-ServiceName=org.kde.yakuake\nX-DBUS-StartupType=Unique\nX-KDE-StartupNotify=false" > /home/"$username"/.config/autostart/org.kde.yakuake.desktop
echo -e "[Desktop Entry]\nExec=/usr/local/bin/pipewire-start.sh\nIcon=\nName=pipewire-start\nPath=\nTerminal=False\nType=Application" > /home/"$username"/.config/autostart/pipewire.desktop
echo -e "[PlasmaRunnerManager]\nmigrated=true\n\n[Plugins]\nbaloosearchEnabled=false" > /home/"$username"/.config/krunnerrc
echo -e "[Basic Settings]\nIndexing-Enabled=false" > /home/"$username"/.config/baloofilerc
echo -e "[General]\nloginMode=emptySession" > /home/"$username"/.config/ksmserverrc
curl https://raw.githubusercontent.com/rwinkhart/artix-install-script/main/config-files/plasma-org.kde.plasma.desktop-appletsrc -o /home/"$username"/.config/plasma-org.kde.plasma.desktop-appletsrc
curl https://raw.githubusercontent.com/rwinkhart/artix-install-script/main/programs/powerset/powerset.sh -o /usr/local/bin/powerset.sh
curl https://raw.githubusercontent.com/rwinkhart/artix-install-script/main/programs/pipewire-start/pipewire-start.sh -o /usr/local/bin/pipewire-start.sh
curl https://raw.githubusercontent.com/rwinkhart/artix-install-script/main/programs/zsh-histclean/histclean -o /usr/local/bin/histclean
echo -e "#!/bin/sh\nfstrim -Av &" > /etc/local.d/trim.start
chmod 755 /usr/local/bin/powerset.sh /usr/local/bin/pipewire-start.sh /usr/local/bin/histclean /etc/local.d/trim.start
chown -R "$username":users /home/"$username"/.config/autostart /home/"$username"/.config/plasma-org.kde.plasma.desktop-appletsrc /home/"$username"/.config/krunnerrc /home/"$username"/.config/baloofilerc /home/"$username"/.config/ksmserverrc
chown -R "$username":users /home/"$username"/.config/autostart /home/"$username"/.config/krunnerrc /home/"$username"/.config/baloofilerc /home/"$username"/.config/ksmserverrc
# asus g14 2020 configuration
if [ "$formfactor" == 1 ]; then
Regular → Executable
+5
View File
@@ -3,3 +3,8 @@ DefaultProfile=Custom.profile
[General]
ConfigVersion=1
[MainWindow]
MenuBar=Disabled
State=AAAA/wAAAAD9AAAAAQAAAAAAAAAAAAAAAPwCAAAAAvsAAAAiAFEAdQBpAGMAawBDAG8AbQBtAGEAbgBkAHMARABvAGMAawAAAAAA/////wAAAXIA////+wAAABwAUwBTAEgATQBhAG4AYQBnAGUAcgBEAG8AYwBrAAAAAAD/////AAABEQD///8AAAOPAAAB1AAAAAQAAAAEAAAACAAAAAj8AAAAAQAAAAIAAAACAAAAFgBtAGEAaQBuAFQAbwBvAGwAQgBhAHIAAAAAAP////8AAAAAAAAAAAAAABwAcwBlAHMAcwBpAG8AbgBUAG8AbwBsAGIAYQByAAAAAAD/////AAAAAAAAAAA=
ToolBarsMovable=Disabled
+10 -2
View File
@@ -3,7 +3,7 @@
loadkeys us
echo ----------------------------------------------------------------------------------------------
echo rwinkhart\'s artix install script
echo last updated december 07, 2023 \(rev. H\)
echo last updated december 19, 2023 \(rev. A\)
echo ----------------------------------------------------------------------------------------------
echo You will be asked some questions before installation.
echo -e "----------------------------------------------------------------------------------------------\n"
@@ -35,12 +35,20 @@ read -r -p "timezone: " timezone
# start hardware detection
pacman -Sy bc --noconfirm
threadsminusone=$(echo "$(lscpu | grep 'CPU(s):' | awk 'FNR == 1 {print $2;}') - 1" | bc)
gpu=$(lspci | grep 'VGA compatible controller:' | awk 'FNR == 1 {print $5;}')
if ! ([ "$gpu" == 'NVIDIA' ] || [ "$gpu" == 'Intel' ]); then
gpu=AMD
fi
ram=$(echo "$(< /proc/meminfo)" | grep 'MemTotal:' | awk '{print $2;}'); ram=$(echo "$ram / 1000000" | bc)
interfaces=(/sys/class/net/*)
res_detect=$(</sys/class/graphics/fb0/modes)
res_detect="${res_detect:2:${#res_detect}-5}"
res_x=$(printf "$res_detect" | cut -d 'x' -f1)
res_y_half=$(echo "$(echo "$res_detect" | cut -d 'x' -f2) / 2" | bc)
# stop hardware detection
# start conditional questions
@@ -174,7 +182,7 @@ for int in "${interfaces[@]}"; do
done
# create array of variables to pass to part 2
var_export=($formfactor $threadsminusone $gpu $boot $disk0 $username $userpassword $timezone $swap $intel_vaapi_driver)
var_export=($formfactor $threadsminusone $gpu $boot $disk0 $username $userpassword $timezone $swap $intel_vaapi_driver $res_x $res_y_half)
# download and initiate part 2
curl https://raw.githubusercontent.com/rwinkhart/artix-install-script/main/chrootInstall.sh -o /mnt/chrootInstall.sh
+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