Agregar combinaciones de teclas de acceso directo en dos pasos desde la línea de comandos (14.04+)
Se puede agregar accesos directos personalizados desde la línea de comandos, pero es un poco complicado; debe hacerse en unos pocos pasos por combinación de teclas. Por otro lado, es bastante sencillo y puede ser programado si de alguna manera quieres hacerlo desde la línea de comandos (esa era la pregunta, ¿verdad?).
Al igual que en su interfaz (Configuración del sistema> "Teclado"> "Atajos"> "Atajos personalizados"), los atajos de teclado personalizados se realizan desde la línea de comandos en dos pasos:
cree la combinación de teclas editando (agregando a-) la lista que devuelve el comando:
gsettings get org.gnome.settings-daemon.plugins.media-keys custom-keybindings
La lista devuelta se ve así (si solo fuera un acceso directo actualmente):
['/org/gnome/settings-daemon/plugins/media-keys/custom-keybindings/custom0/']
Aplique la lista editada por el comando:
gsettings set org.gnome.settings-daemon.plugins.media-keys custom-keybindings "[<altered_list>]"
(cuenta las comillas dobles)
NB No es necesario decir que la mención en la lista (por ejemplo custom1
, custom2
) debería ser única. Si lo escribe, el script debe evitar duplicados. En este caso, la lista editada debería verse, por ejemplo:
['/org/gnome/settings-daemon/plugins/media-keys/custom-keybindings/custom0/', '/org/gnome/settings-daemon/plugins/media-keys/custom-keybindings/custom1/']
para agregar una combinación de teclas: custom1
establecer sus propiedades:
nombre:
gsettings set org.gnome.settings-daemon.plugins.media-keys.custom-keybinding:/org/gnome/settings-daemon/plugins/media-keys/custom-keybindings/custom1/ name '<newname>'
mando:
gsettings set org.gnome.settings-daemon.plugins.media-keys.custom-keybinding:/org/gnome/settings-daemon/plugins/media-keys/custom-keybindings/custom1/ command '<newcommand>'
Combinación de teclas (por ejemplo <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>'
Puede encontrar información útil aquí.
Script de ejemplo para establecer un nuevo acceso directo personalizado
El siguiente script se puede usar para establecer una nueva combinación de teclas de acceso directo desde la línea de comandos. Se puede usar con el comando (suponiendo que la combinación de teclas esté disponible):
python3 /path/to/script.py '<name>' '<command>' '<key_combination>'
Un ejemplo:
Para establecer una combinación de teclas de acceso directo para abrir gedit
con la combinación de teclas Alt+ 7:
python3 /path/to/script.py 'open gedit' 'gedit' '<Alt>7'
La secuencia de comandos:
#!/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])
Cómo utilizar:
Pegue el script en un archivo vacío, guárdelo como set_customshortcut.py
, ejecútelo como se explicó anteriormente.
Algunas de las menciones clave más utilizadas (encontradas experimentalmente, analizando los cambios que la GUI realizó en el valor de enlace):
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.