aboutsummaryrefslogtreecommitdiff
path: root/src/plugins/Ui/skinned/scripts/kwin.sh
blob: 5f18badf8f51d0bbba52be073ae2b995327084df (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
#!/bin/sh

#This script adds kwin rules for qmmp windows

if ! type kreadconfig5 &> /dev/null; then
  exit 1
fi

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
	# 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
	# rule not found (create new KWin window rule)
	id=$((count+1))

	qmmp_create_rule $id
	qmmp_update_rule $id
	reload_kwin_rules
fi