Ajout de raccourcis clavier en deux étapes à partir de la ligne de commande (14.04+)
Il est possible d'ajouter des raccourcis personnalisés à partir de la ligne de commande, mais c'est un peu compliqué ; il faut procéder en plusieurs étapes par raccourci clavier. D'un autre côté, il est possible de est assez simple et peut très bien être scriptée si vous souhaitez le faire à partir de la ligne de commande (c'était la question, non ?).
Tout comme dans votre interface (Paramètres système > "Clavier" > "Raccourcis" > "Raccourcis personnalisés"), les raccourcis clavier personnalisés sont créés à partir de la ligne de commande en deux étapes :
-
créer le raccourci clavier en modifiant (ajoutant à-) la liste retournée par la commande :
gsettings get org.gnome.settings-daemon.plugins.media-keys custom-keybindings
La liste retournée ressemble (s'il n'y avait qu'un seul raccourci actuellement) :
['/org/gnome/settings-daemon/plugins/media-keys/custom-keybindings/custom0/']
Appliquer la liste éditée par la commande :
gsettings set org.gnome.settings-daemon.plugins.media-keys custom-keybindings "[<altered_list>]"
(attention aux guillemets)
N.B. Il n'est pas nécessaire de dire que la mention dans la liste (par ex. custom1
, custom2
) doit être unique. Si vous le script, le script devrait empêcher les doublons. Dans ce cas, la liste éditée devrait ressembler, par exemple, à :
['/org/gnome/settings-daemon/plugins/media-keys/custom-keybindings/custom0/', '/org/gnome/settings-daemon/plugins/media-keys/custom-keybindings/custom1/']
pour ajouter une combinaison de touches : custom1
-
définir ses propriétés :
-
nom :
gsettings set org.gnome.settings-daemon.plugins.media-keys.custom-keybinding:/org/gnome/settings-daemon/plugins/media-keys/custom-keybindings/custom1/ name '<newname>'
-
commandement :
gsettings set org.gnome.settings-daemon.plugins.media-keys.custom-keybinding:/org/gnome/settings-daemon/plugins/media-keys/custom-keybindings/custom1/ command '<newcommand>'
-
Combinaison de touches (par exemple <Primary><Alt>g
):
gsettings set org.gnome.settings-daemon.plugins.media-keys.custom-keybinding:/org/gnome/settings-daemon/plugins/media-keys/custom-keybindings/custom1/ binding '<key_combination>'
Des informations utiles peuvent être trouvées aquí
Exemple script pour définir un nouveau raccourci personnalisé.
Le script ci-dessous peut être utilisé pour définir une nouvelle combinaison de touches de raccourci depuis la ligne de commande. Il peut être utilisé avec la commande (en supposant que la combinaison de touches soit disponible) :
python3 /path/to/script.py '<name>' '<command>' '<key_combination>'
Un exemple :
Pour définir une combinaison de touches de raccourci pour ouvrir gedit
avec la combinaison de touches Alt + 7 :
python3 /path/to/script.py 'open gedit' 'gedit' '<Alt>7'
Le script :
#!/usr/bin/env python3
import subprocess
import sys
# defining keys & strings to be used
key = "org.gnome.settings-daemon.plugins.media-keys custom-keybindings"
subkey1 = key.replace(" ", ".")[:-1]+":"
item_s = "/"+key.replace(" ", "/").replace(".", "/")+"/"
firstname = "custom"
# get the current list of custom shortcuts
get = lambda cmd: subprocess.check_output(["/bin/bash", "-c", cmd]).decode("utf-8")
array_str = get("gsettings get "+key)
# in case the array was empty, remove the annotation hints
command_result = array_str.lstrip("@as")
current = eval(command_result)
# make sure the additional keybinding mention is no duplicate
n = 1
while True:
new = item_s+firstname+str(n)+"/"
if new in current:
n = n+1
else:
break
# add the new keybinding to the list
current.append(new)
# create the shortcut, set the name, command and shortcut key
cmd0 = 'gsettings set '+key+' "'+str(current)+'"'
cmd1 = 'gsettings set '+subkey1+new+" name '"+sys.argv[1]+"'"
cmd2 = 'gsettings set '+subkey1+new+" command '"+sys.argv[2]+"'"
cmd3 = 'gsettings set '+subkey1+new+" binding '"+sys.argv[3]+"'"
for cmd in [cmd0, cmd1, cmd2, cmd3]:
subprocess.call(["/bin/bash", "-c", cmd])
Comment l'utiliser :
Collez le script dans un fichier vide, enregistrez-le sous le nom de set_customshortcut.py
et exécutez-la comme expliqué ci-dessus.
Quelques-unes des mentions de clés les plus utilisées (trouvées expérimentalement, en examinant les modifications apportées par l'interface graphique à la valeur de liaison) :
Super key: <Super>
Control key: <Primary> or <Control>
Alt key: <Alt>
Shift key: <Shift>
numbers: 1 (just the number)
Spacebar: space
Slash key: slash
Asterisk key: asterisk (so it would need `<Shift>` as well)
Ampersand key: ampersand (so it would need <Shift> as well)
a few numpad keys:
Numpad divide key (`/`): KP_Divide
Numpad multiply (Asterisk):KP_Multiply
Numpad number key(s): KP_1
Numpad `-`: KP_Subtract
etc.