aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--src/plugins/Ui/skinned/scripts/kwin.sh55
1 files changed, 39 insertions, 16 deletions
diff --git a/src/plugins/Ui/skinned/scripts/kwin.sh b/src/plugins/Ui/skinned/scripts/kwin.sh
index 211f335f4..5f18badf8 100644
--- a/src/plugins/Ui/skinned/scripts/kwin.sh
+++ b/src/plugins/Ui/skinned/scripts/kwin.sh
@@ -10,31 +10,54 @@ if ! type kwriteconfig5 &> /dev/null; then
exit 1
fi
+# get count of rules
count=`kreadconfig5 --file kwinrulesrc --group General --key count`
i=1
found=0;
while [ $i -le $count ];
do
- desc=`kreadconfig5 --file kwinrulesrc --group $i --key Description`
- if [ $desc = "qmmp" ]; then
- found=1
+ # find qmmp window rule in KWin
+ match=`kreadconfig5 --file kwinrulesrc --group $i --key wmclass`
+ if [[ "${match,,}" = *"qmmp"* ]]; then
+ found=$i
break
fi
i=$((i+1))
done
+
+qmmp_create_rule(){
+ id=$1
+
+ kwriteconfig5 --file kwinrulesrc --group General --key count $id
+ kwriteconfig5 --file kwinrulesrc --group $id --key Description qmmp
+}
+
+
+qmmp_update_rule(){
+ id=$1
+
+ kwriteconfig5 --file kwinrulesrc --group $id --key skipswitcher true
+ kwriteconfig5 --file kwinrulesrc --group $id --key skipswitcherrule 2
+ kwriteconfig5 --file kwinrulesrc --group $id --key type 5
+ kwriteconfig5 --file kwinrulesrc --group $id --key typerule 2
+ kwriteconfig5 --file kwinrulesrc --group $id --key types 256
+ kwriteconfig5 --file kwinrulesrc --group $id --key wmclass qmmp
+ kwriteconfig5 --file kwinrulesrc --group $id --key wmclasscomplete false
+ kwriteconfig5 --file kwinrulesrc --group $id --key wmclassmatch 1
+}
+
+reload_kwin_rules(){
+ dbus-send --print-reply --dest=org.kde.KWin /KWin org.kde.KWin.reconfigure
+}
+
+
if [ $found = "0" ]; then
- group=$((count+1))
- kwriteconfig5 --file kwinrulesrc --group General --key count $((count+1))
- kwriteconfig5 --file kwinrulesrc --group $group --key Description qmmp
- kwriteconfig5 --file kwinrulesrc --group $group --key skipswitcher true
- kwriteconfig5 --file kwinrulesrc --group $group --key skipswitcherrule 2
- kwriteconfig5 --file kwinrulesrc --group $group --key type 5
- kwriteconfig5 --file kwinrulesrc --group $group --key typerule 2
- kwriteconfig5 --file kwinrulesrc --group $group --key types 256
- kwriteconfig5 --file kwinrulesrc --group $group --key wmclass qmmp
- kwriteconfig5 --file kwinrulesrc --group $group --key wmclasscomplete false
- kwriteconfig5 --file kwinrulesrc --group $group --key wmclassmatch 1
- dbus-send --print-reply --dest=org.kde.KWin /KWin org.kde.KWin.reconfigure
-fi
+ # rule not found (create new KWin window rule)
+ id=$((count+1))
+
+ qmmp_create_rule $id
+ qmmp_update_rule $id
+ reload_kwin_rules
+fi \ No newline at end of file