Ajout de raccourcis clavier en deux étapes à partir de la ligne de commande (14.04+)
Ajout de raccourcis personnalisés à partir de la ligne de commande peut être fait, mais c'est un peu compliqué; cela doit être fait en quelques étapes par liaison de clé. D'autre part, il est assez simple et peut très bien être scénarisé si vous voulez en quelque sorte de le faire à partir de la ligne de commande (qui é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éez le raccourci clavier en modifiant (en ajoutant) la liste renvoyée par la commande:
gsettings get org.gnome.settings-daemon.plugins.media-keys custom-keybindings
La liste renvoyée se présente comme suit (s’il ne s’agissait que d’un seul raccourci):
['/org/gnome/settings-daemon/plugins/media-keys/custom-keybindings/custom0/']
Appliquez la liste modifiée à l'aide de la commande:
gsettings set org.gnome.settings-daemon.plugins.media-keys custom-keybindings "[<altered_list>]"
(attention aux guillemets)
NB Pas besoin de dire que la mention dans la liste (par exemple custom1
, custom2
) doit être unique. Si vous écrivez un script, le script devrait empêcher les doublons. Dans ce cas, la liste modifié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 un raccourci clavier: 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>'
commander:
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 ici
Exemple de 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 à partir de 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 à ouvrir gedit
avec la combinaison de touches Alt+ 7:
python3 /path/to/script.py 'open gedit' 'gedit' '<Alt>7'
Le scénario:
#!/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 utiliser:
Collez le script dans un fichier vide, enregistrez-le sous set_customshortcut.py
, exécutez-le comme expliqué ci-dessus.
Certaines des mentions de clé les plus utilisées (trouvées expérimentalement, examinant les modifications apportées par la méthode de 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.