diff options
Diffstat (limited to 'src/plugins/Ui/skinned/scripts/kwin.sh')
| -rw-r--r-- | src/plugins/Ui/skinned/scripts/kwin.sh | 55 |
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 |
