コマンドラインを使用してすべてのUnityキーボードショートカットを無効にする


8

ターミナルからすべてのキーボードショートカットを無効にする方法を教えてください。私はあなたがそれらを無効にすることができることを知っています:

システム設定>キーボード>ショートカット

しかし、私はターミナル経由でそれらを無効にしたいと思います。誰もがこれを行う方法を知っていますか?


どのキーボードショートカットについて話しているのですか?非常に多くの異なるセットがあります。コマンドラインで機能するものもあれば、GUIのものをアクティブにするものもあります。それらは完全に独立しています。
terdon 2014年

システム設定>キーボード>ショートカットに移動すると、ubuntuにすべてのショートカットがあり、それらをすべて無効にしたいと思います。
user278551

OK、つまりGUIショートカットのみを意味します。デフォルトのUbuntuを使用しているので、デスクトップ環境はUnityです。あれは正しいですか?
terdon 2014年

はいそれは正しいです。
user278551 2014年

回答:


11

なぜこれを実行したいのかわかりません。ショートカットを元に戻すのはかなり複雑になる可能性があることを警告しておきます。これが本当にやりたいことである場合、以下のコマンドはすべてのキーボードショートカットを無効にします。UnityのGUIを使用してセットアップしたものと、使用してセットアップしたものの両方ccsm

A. Unityキー検索を無効にする

  1. 最初に現在のバインディングのバックアップを作成して、後で再度有効にできるようにします

    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_settingsにより、次の形式で呼び出されるファイルが作成されます。

    schema key <TAB> value
    

    例えば:

    org.gnome.desktop.wm.keybindings unmaximize <TAB> ['<Control><Super>Down']
    
  2. ショートカットを無効にしてください

    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
    

    説明

    • gsettings list-recursively org.gnome.desktop.wm.keybindings :これはすべてのキーバインドとその現在の値をリストします
    • perl -pe 's/(.*)\s*(\[.*?\])\s*$/$1\t$2\n/':これ\tは、キーと値を区切るタブ文字()を追加するだけです。この手順は、次の手順で正しく読み取るために必要です。
    • while IFS=$'\t' read -r key val:各行を調べて、キー$kとその値をに読み取ります$val。キーと値が正しく読み取られるようにタブで分割$IFS=$'\t'することを意味します
    • gsettings set $key [''] :これは実際には値を空白に設定し、ショートカットを効果的に無効にします。

    これを有効にするには、ログアウトして再度ログインする必要がある場合があることに注意してください。

  3. ショートカットを取り戻します

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

    警告:一部の設定@asにはキー名に追加のパラメーターがあり、その対処方法がわからないため、これはおそらくすべての設定では機能しません。私が言ったように、これはすべて非常に良い考えではありません。

B.で設定したカスタムショートカットを無効にする ccsm

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

今回、それらを取り戻すのは簡単です。実行する必要があるのは

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

すばらしい仕事をありがとう、私はまだCompizショートカットが足りないと思いますか?
user.dz 2014年

@SneetsherパートBは、ユーザー定義のcompizショートカットを処理する必要があります。デフォルトのものについてはわかりません。確認させてください。
terdon 2014年

上に行うために、もう少し使用可能なフロントエンドのするスクリプトを追加しました:github.com/fatso83/dotfiles/blob/master/utils/scripts/...を
oligofren

「なぜこれをしたいのかわからない」に関して、私の開発チームの全員のユースケースは、デフォルトのショートカットが一般的なプログラムの既知のキーバインディングと重複していることです。私たちの場合、ほとんどのIntelliJショートカットは機能しませんでした。実際に必要なのは、少数のGnomeショートカット(Alt-Tabやウィンドウのサイズ変更など)だけです。
オリゴフレン

@oligofren確かに、なぜターミナルからすべてのショートカットを無効にする必要があるのでしょうか?それは私が奇妙だと思ったものです。とにかく、それぞれに:)
terdon

3

私は@terdonの回答に基づいて、同じことを行うスクリプトを作成しましたが、ややユーザーフレンドリーな方法で行いました。

次のように使用できます。

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

私はデフォルトのキーバインドAlt-F4とAlt-Tab(およびシフトを使用したその逆)を使用するのが好きなので、これらを除くすべてのキーバインドを削除します。

また、便利なヘルプメニューもあります。

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"    

自分のマシンで使用するには

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/

0

Ubuntu 18.04のgnomeの場合、これが機能することがわかりました。

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

それがすべてのショートカットキーかどうかはわかりませんが、それはそれらの大部分のようです

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.