web-dev-qa-db-ja.com

米国のキーボードで特殊文字を利用できるようにするWayland

私は米国のキーボードとレイアウトを持っていますが、ドイツ語の特別なキー(äÄöÖüÜß)が必要になることがあります。もちろん、必要なときにキーボードレイアウトを切り替えることもできますが、以前はまったく役に立たないCaps Lockキーを悪用して、次の~/.Xmodmapで必要な文字にアクセスしていました。

keycode 66 = Mode_switch Multi_key
keycode 20 = minus underscore ssharp
keycode 34 = bracketleft braceleft udiaeresis Udiaeresis
keycode 47 = semicolon colon odiaeresis Odiaeresis
keycode 48 = apostrophe quotedbl adiaeresis Adiaeresis

奇妙な理由で、FedoraがWaylandに切り替えたときにキーボードの動作が変更されました。今、私の(魔法の)キーボードマッピングは時々しか機能せず、CapsLockキーは再びケースロッカーとして機能します:(

米国のキーボードで(ドイツ語の)特殊文字を使用できるようにするためのWayland awareアプローチはありますか? (または、ドイツ語キーボードの1回のキーストロークで[]{}|<>を使用できるようにします)

7
frans

WaylandはXKBを使用しますが、レイアウトの指定方法はコンポジターによって異なります(Xorgのようにsetxkbmapまたはxkbcompを使用することはできません)。おそらく、標準のusレイアウトのaltgr-intlバリアントが必要になります (米国国際レイアウト) そしておそらくいくつかのオプション:作成(別名Multi_key)、おそらくメニューキー?右側のAltキーのAltGr? (intlバリアントは似ていますが、レベル1にデッドキーが含まれています。altgr-intlはレベル3にデッドキーを配置するため、邪魔になりませんが、引き続きアクセスできます。)

このレイアウトとバリアントでは、リストしたシンボルのほとんどがAltGrキーまたはComposeキーで簡単に使用できます。

AltGr+q = ä   AltGr+Shift+a = Ä    Compose+",a = ä    Compose+",A = Ä
AltGr+p = ö   AltGr+Shift+p = Ö    Compose+",o = ö    Compose+",O = Ö
AltGr+y = ü   AltGr+Shift+y = Ü    Compose+",u = ü    Compose+",U = Ü
AltGr+s = ß                        Compose+s,s = ß

Westonの場合$HOME/.config/weston.iniに設定を追加します。

[keyboard]
keymap_rules=evdev
keymap_layout=us
keymap_variant=altgr-intl
keymap_options=compose:menu,level3:ralt_switch

swayの場合 (i3-同様)、実行前に、コマンドラインまたはヘルパースクリプトでチェーン化された環境変数を設定する必要があります。

#!/bin/sh
export XKB_DEFAULT_LAYOUT=us
export XKB_DEFAULT_VARIANT=altgr-intl
export XKB_DEFAULT_OPTIONS=compose:menu,level3:ralt_switch
sway

GNOMEの下で 、お気に入りのgsettingsまたはdconfフロントエンドを参照する必要があります。 XKBオプションは/org/gnome/desktop/input-sources/xkb-optionsで指定でき、特定のレイアウトは/org/gnome/desktop/input-sources/sourcesで指定できます。 (これらは投稿以降に変更されている可能性があります。既存の設定を確認してください。)

gsettings set org.gnome.desktop.input-sources sources "[('xkb', 'us+altgr-intl')]"
gsettings set org.gnome.desktop.input-sources xkb-options "['compose:menu','lv3:ralt_switch']"

KDEは独自のグラフィカルコントロールパネルを使用します。 システム設定>ハードウェア>入力デバイス>キーボードにあります。 Layoutsタブでは、altgr-intlバリアント(「英語(国際的なAltGrデッドキー)」としてリストされています)を構成できます。 XKBオプションは、詳細タブに一覧表示されます。

現在のKDEFrameworks 5では、このコントロールパネルは設定を$HOME/.config/kxkbrcに保存します。


システムがsystemdのlocalectlを使用している場合は、それを希望どおりに設定してみてください。GNOME/ KDEがそこから取得できる可能性があります。それは現時点ではXorgの設定に過ぎないかもしれませんが、フォールバックとして使用するのが好きです。Waylandコンポジターが将来のリリースでそれを使用して、システム全体の設定を取得することを願っています。

Sudo localectl set-x11-keymap us pc105 altgr-intl compose:menu,level3:ralt_switch
(format:                  [layout] [model] [variant] [options])
9
quixotic

1つの可能性は、デフォルトのキーボードを英語(米国)から英語(国際)に変更することです。これは、十分に制御できるすべてのコンピューターで実行します。これにより、句読点を「デッドキー」アクセントとして使用して、一般的な英語以外の文字を取得できます。

Windowsでは、これにより右のAltキーがAltGrに変換され、これを特定のキーストロークと組み合わせると、シャープsのAltGr + s、アイスランド語のとげのAltGr + t、アイスランド語のAltGr + dなどの関連する英語以外の文字が得られます。 edh、その他。

「デッドキー」の場合、ほとんどの句読点はアクセントを兼ねています。e-acuteを取得するには、「」、「e」と入力します。 o-acute '、o、a-Grave `、a、u-umlaut"、uなど。句読点を取得するには、アクセントとして結合されていない文字を押すか、スペースを押します。アポストロフィは「次にスペース」、二重引用符/インチマークは「次にスペース」などです。これは少し調整ですが、(Windowsの場合)Altコードを記憶したり、レイアウトを継続的に切り替えたりするよりもはるかに簡単です。

(私はそれ以来、「すぐに使える」Linux Mintでこれを行ってきました。AltGr文字のいくつかが配置されている場所のいくつかの小さな違いを法として、同じ効果があります-しかし、それはうるさいですWayland )。

0
Jeff Zeitlin