Deaktivieren Sie alle Unity-Tastaturkürzel über die Befehlszeile

Deaktivieren Sie alle Unity-Tastaturkürzel über die Befehlszeile

Ich würde gerne wissen, wie ich ALLE Tastaturkürzel über das Terminal deaktivieren kann. Ich weiß, dass Sie sie deaktivieren können, indem Sie zu folgendem gehen:

Systemeinstellungen>Tastatur>Tastenkombinationen

aber ich möchte sie über das Terminal deaktivieren. Weiß jemand, wie das geht?

Antwort1

Ich habe keine Ahnung, warum Sie das tun möchten, und ich muss Sie warnen, dass es sehr kompliziert sein kann, die Tastenkombinationen wiederherzustellen. Wenn Sie das wirklich tun möchten, deaktivieren die folgenden Befehle alle Tastenkombinationen. Sowohl die über die GUI von Unity eingerichteten als auch alle, die Sie möglicherweise überccsm

A. Deaktivieren Sie die Unity-Tastaturkürzel

  1. Erstellen Sie zunächst eine Sicherungskopie der aktuellen Bindungen, damit Sie diese später wieder aktivieren können

    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
    

    old_settingsDadurch wird eine Datei mit dem folgenden Format erstellt :

    schema key <TAB> value
    

    Zum Beispiel:

    org.gnome.desktop.wm.keybindings unmaximize <TAB> ['<Control><Super>Down']
    
  2. Deaktivieren Sie nun die Verknüpfungen

    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
    

    Erläuterung

    • gsettings list-recursively org.gnome.desktop.wm.keybindings: hier werden alle Tastenkombinationen und ihre aktuellen Werte aufgelistet
    • perl -pe 's/(.*)\s*(\[.*?\])\s*$/$1\t$2\n/': Dadurch wird einfach ein TAB-Zeichen ( \t) hinzugefügt, das den Wert vom Schlüssel trennt. Dieser Schritt ist erforderlich, um sie im nächsten Schritt richtig lesen zu können.
    • while IFS=$'\t' read -r key val: Gehen Sie jede Zeile durch und lesen Sie den Schlüssel in $kund seinen Wert in ein $val. $IFS=$'\t'bedeutetAufteilung auf Registerkartendamit Schlüssel und Wert richtig gelesen werden.
    • gsettings set $key ['']: Dadurch wird der Wert tatsächlich auf leer gesetzt, wodurch Ihre Verknüpfungen effektiv deaktiviert werden.

    Beachten Sie, dass Sie sich möglicherweise ab- und erneut anmelden müssen, damit die Änderungen wirksam werden.

  3. Holen Sie sich (einige) Ihrer Verknüpfungen zurück

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

    WARNUNG: Das wird wahrscheinlich nicht bei allen Einstellungen funktionieren, da einige davon einen zusätzlichen Parameter @asim Schlüsselnamen zu haben scheinen und ich nicht weiß, wie ich damit umgehen soll. Wie gesagt, das ist alles keine sehr gute Idee.

B. Deaktivieren Sie Ihre benutzerdefinierten Verknüpfungen inccsm

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

Dieses Mal ist es einfach, sie zurückzubekommen. Alles, was Sie tun müssen, ist

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

Antwort2

Ich habe auf der Antwort von @terdon aufgebaut undein Skript, das dasselbe tut, allerdings auf eine etwas benutzerfreundlichere Art und Weise.

Sie könnten es folgendermaßen verwenden:

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

Da ich gerne die Standardtastenkombinationen Alt-F4 und Alt-Tab (und deren Umkehrung mit der Umschalttaste) verwende, würden hierdurch alle Tastenkombinationen außer diesen entfernt.

Es hat auch ein nettes Hilfemenü:

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"    

Um es auf Ihrem eigenen Computer zu verwenden

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/

Antwort3

Für Gnome unter Ubuntu 18.04 hat Folgendes funktioniert:

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

Ich bin nicht sicher, ob das alle Tastenkombinationen sind, aber es scheint der Großteil davon zu sein

verwandte Informationen