blob: 51561b42a2b864aa1412a1a4c8a9f001b1d68025 (
plain)
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
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
|
#!/bin/bash
if [ -n "${GTK_MODULES-}" ]; then
filtered_modules=''
old_ifs=$IFS
IFS=:
for module in $GTK_MODULES; do
if [ "$module" = 'appmenu-gtk-module' ] || [ -z "$module" ]; then
continue
fi
if [ -n "$filtered_modules" ]; then
filtered_modules="${filtered_modules}:$module"
continue
fi
filtered_modules="$module"
done
IFS=$old_ifs
if [ -n "$filtered_modules" ]; then
export GTK_MODULES="$filtered_modules"
else
unset GTK_MODULES
fi
fi
unset ELECTRON_RUN_AS_NODE
export ELECTRON_IS_DEV=0
export ELECTRON_FORCE_IS_PACKAGED=true
legacy_runtime_pattern='(/usr/bin/electron39|/usr/lib/electron39/electron) /usr/lib/rocket-mouse($| )'
stop_legacy_runtime_instances() {
pkill -f "$legacy_runtime_pattern" >/dev/null 2>&1 || true
for _ in 1 2 3 4 5 6 7 8 9 10; do
if ! pgrep -f "$legacy_runtime_pattern" >/dev/null 2>&1; then
return 0
fi
sleep 0.1
done
return 0
}
should_filter_stderr_line() {
case "$1" in
*'Failed to load module "appmenu-gtk-module"'*)
return 0
;;
*'vaInitialize failed: unknown libva error'*)
return 0
;;
'libEGL warning: egl: failed to create dri2 screen')
return 0
;;
'libEGL warning: pci id for fd '*)
return 0
;;
'pci id for fd '*)
return 0
;;
esac
return 1
}
forward_filtered_stderr() {
while IFS= read -r line; do
if should_filter_stderr_line "$line"; then
continue
fi
printf '%s\n' "$line" >&2
done
}
stop_legacy_runtime_instances
exec /usr/lib/rocket-mouse/electron/electron /usr/lib/rocket-mouse "$@" \
2> >(forward_filtered_stderr)
|