Files
Server-scripts/quiethost/add-keybinding.sh
T
2026-09-14 12:43:38 +02:00

40 lines
1.3 KiB
Bash
Executable File

#!/bin/bash
if [ $# -lt 3 ]; then
echo "Usage <new_name> <new_cmd> <key_combo>"
exit 1;
fi
counter=0;
list="["
num=0
while read -r line; do
list="$list$(echo $line | sed 's/\]//g' | sed 's/\[//g'), "
ret="$(printf "%s\n" "$line" | grep "custom$counter")"
if [ "$ret" == "" ]; then
num=$counter
break;
else
(( counter++ ))
num=$counter;
fi
done < <(gsettings get org.gnome.settings-daemon.plugins.media-keys custom-keybindings | sed 's/, /\n/g')
key="org.gnome.settings-daemon.plugins.media-keys.custom-keybinding:"
custom="/org/gnome/settings-daemon/plugins/media-keys/custom-keybindings/custom$num/"
if [[ $list = *"@as"* ]]; then
list="['$custom']"
else
list="$list'$custom']"
fi
echo $list
new_name=$1
new_cmd=$2
key_combo=$3
echo "$key$custom $new_name $new_cmd $key_combo"
#key_str="$(xev)"
#echo $key_str | sed 's/KeyRelease/\nKeyRelease/g' | sed 's/KeyPress/\nKeyPress/g' | grep KeyPress | sed 's/keysym/\nkeysym/g'| sed 's/same_screen/\nsame_screen/g' | grep keysym | grep -o -P '(?<=, ).*(?=\),)' | sed 's/_L//g' | sed 's/_R//g'
#exit
gsettings set org.gnome.settings-daemon.plugins.media-keys custom-keybindings "$list"
gsettings set $key$custom name "$new_name"
gsettings set $key$custom command "$new_cmd"
gsettings set $key$custom binding "$key_combo"