Désactivez tous les raccourcis clavier Unity à l'aide de la ligne de commande

8

Je voudrais savoir comment désactiver tous les raccourcis clavier via le terminal. Je sais que vous pouvez les désactiver en allant sur:

paramètres système> clavier> raccourcis

mais je veux les désactiver via le terminal. quelqu'un sait comment cela peut être fait?

user278551
la source
De quels raccourcis clavier parlez-vous? Il existe de très nombreux ensembles différents. Vous en avez qui fonctionnent sur la ligne de commande, d'autres qui activent les éléments de l'interface graphique, etc. Ils sont complètement séparés.
terdon
Si vous allez dans les paramètres système> clavier> raccourcis, il y a tous les raccourcis dans ubuntu et je veux les désactiver tous.
user278551
OK, vous ne voulez donc parler que des raccourcis de l'interface graphique. Je suppose que vous utilisez Ubuntu par défaut, votre environnement de bureau est donc Unity. Est-ce exact?
terdon
Oui c'est correct.
user278551

Réponses:

11

Je n'ai aucune idée de la raison pour laquelle vous voudriez faire cela et je dois vous avertir qu'il peut être difficile de récupérer les raccourcis. Si c'est vraiment ce que vous voulez faire, les commandes ci-dessous désactiveront tous les raccourcis clavier. Ceux configurés via l'interface graphique d'Unity et tous ceux que vous pourriez avoir configurés à l'aideccsm

A. Désactiver les raccourcis clavier Unity

  1. Effectuez d'abord une sauvegarde des liaisons actuelles afin de pouvoir les réactiver ultérieurement

    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
    

    Cela va créer un fichier appelé old_settingsau format suivant:

    schema key <TAB> value
    

    Par exemple:

    org.gnome.desktop.wm.keybindings unmaximize <TAB> ['<Control><Super>Down']
    
  2. Désactivez maintenant les raccourcis

    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
    

    Explication

    • gsettings list-recursively org.gnome.desktop.wm.keybindings : liste tous les raccourcis clavier et leurs valeurs actuelles
    • perl -pe 's/(.*)\s*(\[.*?\])\s*$/$1\t$2\n/': ceci ajoute simplement un caractère TAB ( \t) séparant la valeur de la clé. Cette étape est nécessaire pour pouvoir les lire correctement dans la prochaine.
    • while IFS=$'\t' read -r key val: parcourez chaque ligne et lisez la clé $ket sa valeur $val. $IFS=$'\t'signifie divisé sur les onglets afin que la clé et la valeur soient lues correctement.
    • gsettings set $key [''] : cela définit en fait la valeur sur vide, désactivant efficacement vos raccourcis.

    Notez que vous devrez peut-être vous déconnecter et vous reconnecter pour que cela prenne effet.

  3. Récupérez (certains de) vos raccourcis

    while IFS=$'\t' read -r key val; do 
        gsettings set "$key" "$val"
    done < old_settings 
    

    AVERTISSEMENT : cela ne fonctionnera probablement pas pour tous les paramètres, car certains d'entre eux semblent avoir un paramètre supplémentaire @asdans le nom de la clé et je ne sais pas comment le gérer. Comme je l'ai dit, ce n'est pas une très bonne idée.

B. Désactivez vos raccourcis personnalisés définis dans ccsm

gsettings set org.gnome.settings-daemon.plugins.media-keys active false

Cette fois, les récupérer est facile. Il vous suffit de courir

gsettings set org.gnome.settings-daemon.plugins.media-keys active true
terdon
la source
Merci beaucoup pour votre travail, je pense qu'il manque encore des raccourcis Compiz?
user.dz
La partie B de @Sneetsher doit traiter des raccourcis compiz définis par l'utilisateur. Pas sûr de ceux par défaut. Laisse moi vérifier.
terdon
Ajout d'un script pour être un peu plus un frontal utilisable pour faire ce qui précède: github.com/fatso83/dotfiles/blob/master/utils/scripts/…
oligofren
En ce qui concerne "Je n'ai aucune idée pourquoi vous voudriez faire cela", le cas d'utilisation pour tout le monde dans mon équipe de développement est que les raccourcis par défaut se chevauchent avec les raccourcis clavier connus dans les programmes populaires. Dans notre cas, la plupart des raccourcis IntelliJ ne fonctionnaient pas, et nous avons tous vraiment besoin d'une poignée de raccourcis Gnome (comme Alt-Tab et le redimensionnement des fenêtres).
oligofren
@oligofren bien sûr, mais pourquoi auriez-vous alors besoin de désactiver tous les raccourcis du terminal? C'est ce que j'ai trouvé étrange. Mais quoi qu'il en soit, chacun à son tour :)
terdon
3

J'ai construit sur la réponse de @ terdon et créé un script pour faire de même , mais le fait d'une manière un peu plus conviviale.

Vous pouvez l'utiliser comme ceci:

gnome-key-bindings --unset-all --except 'close|switch-applications'

Comme j'aime utiliser les raccourcis clavier par défaut Alt-F4 et Alt-Tab (et leur inversion en utilisant shift), cela supprimerait tous les raccourcis clavier sauf ceux-ci.

Il a également un joli menu d'aide:

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"    

Pour l'utiliser sur votre propre machine

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/
oligofren
la source
0

Pour gnome sur Ubuntu 18.04, j'ai trouvé que cela fonctionnait:

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 ''

Je ne sais pas si ce sont toutes les touches de raccourci, mais il semble que ce soit la majeure partie d'entre elles

theicfire
la source