web-dev-qa-db-ja.com

キーボードレイアウトを切り替えるカスタムキー

キーボードの言語を「 `」に切り替えるキーを設定したいのですが、Ubuntu 12.04のUnityの「キーボードレイアウト」にはこのオプションがありません。私はすでに この答え を見ましたが、それは私を助けません。 setxkbmapの使用方法を教えてください。 (それが進むべき道なら)。ありがとう!

4

これを行う簡単な方法を次に示しますが、使用できるショートカットは限られています。 「システム設定」->「キーボード」を開きます。下部にある[レイアウト設定]をクリックします。 [+]ボタンをクリックして、必要な言語を追加します。 [オプション...]をクリックします。そこで、[レイアウトを変更するキー]を選択して、必要なキーの組み合わせを設定できます。必要に応じて、キーボードLEDを使用して、[キーボードLEDを使用して代替レイアウトを表示する]で代替レイアウト(スクロールロックなど)を使用しているときに表示することもできます。

少し複雑な方法を次に示しますが、キーの組み合わせの柔軟性が高まります。まず、作成したこのスクリプトをコピーして貼り付け、kb_toggle.shのような名前を付けます。 LANG1とLANG2が必要なキーボードレイアウトコードになるように編集してください。

#!/bin/bash

LANG1="us"
LANG2="de"
CURRENT_LANG=$(setxkbmap -query | tail -n 1 | cut -f6 -d ' ')
if [ "$CURRENT_LANG" = $LANG1 ]; then
    setxkbmap $LANG2
else
    setxkbmap $LANG1
fi

それを右クリックしてファイルを作成します->「プロパティ」->「権限」タブ、そして「プログラムとしてファイルの実行を許可する」を選択します。

次に、[システム設定]-> [キーボード]-> [ショートカット]タブを開き、[カスタムショートカット]を選択します。下部の[+]ボタンをクリックし、ショートカットに「Keyboard Toggle」などの名前を付けます。次に、以前に作成したスクリプトへのフルパスをコマンドボックスに入力します。適用をクリックします。 [無効]と表示されている場所をクリックし、キーの組み合わせをクリックして、ショートカットを好きなように設定できます。

もう一つ。 「", you may have to do SHIFT+」などの単一のキーに設定できるとは思わない。

4
reverendj1

最初:Reverendj1の脚本に感謝します。 「レイアウトを変更するキー」の選択が完全に無視されている理由についての答えを見つけるのに苦労してきました。ディミトリスが言ったように、それは答えではありませんが、それは良い回避策です。

重要:スクリプトの1つを変更する必要がありました。
-12.04では、setxkbmap -query出力の最後の行に「options:grp:...」と出力されます。そのため、「tail -n1」コマンドの代わりにパイプを使用して「layout」をgrepしました。そのため、スクリプトは次のようになります。

#!/ bin/bash 
 LANG1 = "us" 
 LANG2 = "de" 
#CURRENT_LANG = $(setxkbmap -query | tail -n 1 | cut -f6 -d '')#OLD LINE 
 CURRENT_LANG = $(setxkbmap -query | | grep "layout" | cut -f6 -d '')
 if ["$ CURRENT_LANG" = $ LANG1]; then 
 setxkbmap $ LANG2 
 else 
 setxkbmap $ LANG1 
 fi 

注意:誰かが「layout:us」の行のスペースの数を変更すると、-f6オプションは「us」を返しません。これはおそらく将来修正する必要があります。

繰り返しますが、この修正に感謝します。今では、はるかに効率的に作業できます。 **申し訳ありませんが、これは過度に冗長でした

1
coredump1101