Deshabilite todos los atajos de teclado de Unity usando la línea de comando

Deshabilite todos los atajos de teclado de Unity usando la línea de comando

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

  1. 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_settingsen el siguiente formato:

    schema key <TAB> value
    

    Por ejemplo:

    org.gnome.desktop.wm.keybindings unmaximize <TAB> ['<Control><Super>Down']
    
  2. 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 actuales
    • perl -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 $ky 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.

  3. 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 @asen 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.

información relacionada