
Me gustaría saber cómo puedo desactivar TODOS los atajos de teclado a través del terminal. Sé que puedes desactivarlos yendo a:
configuración del sistema>teclado>atajos
pero quiero desactivarlos a través de la terminal. ¿Alguien sabe cómo se puede hacer esto?
Respuesta1
No tengo idea de por qué querrías hacer esto y debo advertirte que puede resultar complicado recuperar los atajos. Si esto es realmente lo que desea hacer, los siguientes comandos desactivarán todos los atajos de teclado. Tanto los configurados a través de la GUI de Unity como cualquiera que haya configurado usandoccsm
A. Deshabilite las claves de Unity
Primero haga una copia de seguridad de los enlaces actuales para poder volver a habilitarlos más tarde
gsettings list-recursively org.gnome.desktop.wm.keybindings | perl -pe 's/(.*)\s*(\[.*?\])\s*$/$1\t$2\n/' | while IFS=$'\t' read -r key val; do echo -e "$key\t$val"; done > old_settings
Esto creará un archivo llamado
old_settings
en el siguiente formato:schema key <TAB> value
Por ejemplo:
org.gnome.desktop.wm.keybindings unmaximize <TAB> ['<Control><Super>Down']
Ahora desactiva los atajos.
gsettings list-recursively org.gnome.desktop.wm.keybindings | perl -pe 's/(.*)\s*(\[.*?\])\s*$/$1\t$2\n/' | while IFS=$'\t' read -r key val; do gsettings set $key ['']; done
Explicación
gsettings list-recursively org.gnome.desktop.wm.keybindings
: esto enumera todas las combinaciones de teclas y sus valores actualesperl -pe 's/(.*)\s*(\[.*?\])\s*$/$1\t$2\n/'
: esto simplemente agrega un carácter TAB (\t
) que separa el valor de la clave. Este paso es necesario para poder leerlos correctamente en el siguiente.while IFS=$'\t' read -r key val
: revise cada línea y lea la clave$k
y su valor$val
.$IFS=$'\t'
mediodividir en pestañaspara que la clave y el valor se lean correctamente.gsettings set $key ['']
: esto en realidad establece el valor en blanco, deshabilitando efectivamente sus atajos.
Tenga en cuenta que es posible que deba cerrar sesión y volver a iniciarla para que esto surta efecto.
Recupera (algunos de) tus atajos
while IFS=$'\t' read -r key val; do gsettings set "$key" "$val" done < old_settings
ADVERTENCIA: Esto probablemente no funcionará para todas las configuraciones ya que algunas parecen tener un parámetro adicional
@as
en el nombre de la clave y no sé cómo manejarlo. Como dije, todo esto no es una muy buena idea.
B. Deshabilite sus atajos personalizados establecidos enccsm
gsettings set org.gnome.settings-daemon.plugins.media-keys active false
Esta vez recuperarlos es fácil. Todo lo que necesitas hacer es ejecutar
gsettings set org.gnome.settings-daemon.plugins.media-keys active true
Respuesta2
Me basé en la respuesta de @terdon e hiceun guión para hacer lo mismo, pero lo hace de una manera algo más fácil de usar.
Podrías usarlo así:
gnome-key-bindings --unset-all --except 'close|switch-applications'
Como me gusta usar las combinaciones de teclas predeterminadas Alt-F4 y Alt-Tab (y su inversa usando Mayús), esto eliminaría todas las combinaciones de teclas excepto estas.
También tiene un bonito menú de ayuda:
List/disable/enable/set gnome-key-bindings
gnome-key-bindings [-h | option] [value]
Options
--list Lists all the current keybindings
--set=key Set a specific keybinding
--unset=key Unsets a specific keybinding
--unset-all Unsets all keybindings
--except=REGEX Filter out keys matching REGEX from being unset
--print-default Prints the default shortcuts per Ubuntu 18.04
Examples:
Clearing all keys except a few:
gnome-key-bindings --unset-all --except "close|switch-applications|switch-input-source|show-desktop"
Setting a shortcut
gnome-key-bindings --set=maximize "<Super>Up"
Para usarlo en tu propia máquina
curl -s https://raw.githubusercontent.com/fatso83/dotfiles/master/utils/scripts/gnome-key-bindings -o gnome-key-bindings
curl -s https://raw.githubusercontent.com/fatso83/dotfiles/master/utils/scripts/easyoptions.sh -o easyoptions.sh
curl -s https://raw.githubusercontent.com/fatso83/dotfiles/master/utils/scripts/easyoptions.rb -o easyoptions.rb
chmod +x ./gnome-key-bindings
sudo mv ./gnome-key-bindings easyoptions.* /usr/local/bin/
Respuesta3
Para gnome en Ubuntu 18.04, encontré que esto funciona:
gsettings list-keys org.gnome.shell.keybindings | xargs -I@ gsettings set org.gnome.shell.keybindings @ ['']
gsettings list-keys org.gnome.mutter.keybindings | xargs -I@ gsettings set org.gnome.mutter.keybindings @ ['']
gsettings list-keys org.gnome.settings-daemon.plugins.media-keys | xargs -I@ gsettings set org.gnome.settings-daemon.plugins.media-keys @ ['']
gsettings set org.gnome.mutter overlay-key ''
No estoy seguro de si son todas las teclas de acceso directo, pero parecen ser la mayor parte.