私はDvorakレイアウトのユーザーであり、このスイッチに満足しています。 Microsoftのキーボードレイアウトクリエーターを使用してコントロールキーの組み合わせを対応するqwertyにマップすることにより、Windowsで元に戻す/カット/コピー/貼り付けの短所の欠点(Dvorakレイアウトではz、c、x、vが離れている)を回避しましたが、バグがありますより高度な入力フレームワークを備えているにもかかわらず、Ubuntu/Linuxで同じことを行うことはできません。
dvorak-querty はこれを達成するはずですが、私には機能しません。
以前の同様の質問 で参照される bugs のコメントは、これに対する実行可能な回避策を提供していません。
カスタムキーボードレイアウトやibusプラグインの作成など、バグが修正されるのを(何年も)待つ以外にできることはありますか?
明確化(私の質問を置く別の方法)
DvorakレイアウトがアクティブなときにQWERTYのキーボードショートカット位置を使用する方法はありますか?たとえば、「コピー」するには、Ctrl + Iを押す必要があります(QWERTYの「I」の位置は、ドヴォルザークの「C」です。これは厄介なストレッチです)、次に「貼り付け」 、Ctrl +を押す必要があります。 (別の厄介な位置)。 Ctrl + CとCtrl + Vを押したい現在、DOS時代から学んだ古いスタイルのショートカット、カットにはShift-Del、コピーにはCtrl + Insertを使用しています...
私の最初の試みは、コントロールキーとコントロールレベルのセレクターとして同時に機能するようにし、レベル1および2でDvorak、レベル3および4でQwertyを使用してキーボードレイアウトを定義することでした。 、 しかしながら。さらに、リンクしたdvorak-qwertyプログラムのソース内のコメントには、
Dvorak-Qwertyを実装するXKBレイアウトを定義することは可能ですが、そうすることで、Xアプリのボード全体で憂鬱な数のバグが明らかになります。キーボードレイアウト自体を解釈するのは各Xアプリの責任であるため、Xサーバーに作業を行わせるのではなく、実際には、異なるGUIフレームワークでは、そのようなレイアウトを使用するときに発生するさまざまなバグが発生する傾向があります。それらをすべて修正することは不可能です。
最善の策は、おそらく dvorak-qwerty ハックが動作するようにすることです。あなたがこれから書くことのほとんどは、おそらくご存知でしょう。ソースはそれをコンパイルするように言っています
gcc xdq.c -o xdq -std=c99 -O2 -lX11
その後で実行します
./xdq
または、スタートアップパスに入力できるように絶対パスを指定します。
プログラムを実行すると、次の警告が表示されました。
35のキーの組み合わせを取得できませんでした。これはおそらく、いくつかのホットキーがすでにシステムによって取得されているためです。残念ながら、これらのシステム全体のホットキーは、このツールで自動的に再マップすることはできません。ただし、通常は手動で構成できます。
ただし、^W
、^Q
、^C
、^X
、および^V
を使用してテストし、期待どおりに機能しました。他の修飾子(ALt+Ctrl
およびSuper
)をシステムが既に他のものに使用している組み合わせを取得したい場合は、-DXQD_GREEDY
(not-DXDQ_GREEDY
(ソースが言うように)コンパイルコマンドに。
エラーでコンパイルに失敗した場合
xdq.c:87:22:致命的なエラー:X11/Xlib.h:そのようなファイルまたはディレクトリのコンパイルは終了しませんでした。
次に、libx11-dev
パッケージをインストールする必要があります
Sudo apt-get install libx11-dev
これでプログラムが機能しない場合はお知らせください。解決することができます。
NumLockをオフにする必要があります。
dvorak-quertyは、他のプログラムからキーボードを「つかむ」(「盗む」のような)組み合わせで動作します。特定の修飾子(Control、Control + Shift、Alt、Alt + Shift)を含む組み合わせは盗まれ、「qwerty'd」され、元のプログラムに戻ります。
問題は、それらだけが盗まれる唯一の修飾子の組み合わせであるということです。 CapsLockやNumLockなどの他の修飾子は盗まれません。
したがって、NumLockをアクティブにしてCtrl + Cを押すと、dvorak-qweryはNumLock + Ctrl + Cを「認識」し、それを盗み出しません。
したがって、キーボードに表示される追加の暗黙的な修飾子をオフにします。
Dvorak-qwertyを実行し、同時にNumLockを有効にする場合は、 私のバージョンのコード (チェックアウト Arguments )を試してください。
:)
7年後以降にこの質問を見ている人のために、ここに私のために働いたものがあります(コーディングは不要です!):