目的:
CapsLockキーにAltを割り当て、AltキーにMetaを割り当てたいです。ただし、この場合、AltキーはもうAltキーとして認識されず、CapsLockキーもCapsLockキーとして認識されなくなります。
SUSE 11.4を開く
前に:
openSUSE 11.1 - 私は私のコンピュータの唯一のユーザーなので、/usr/share/X11/xkb/keycodes/xfree86ファイルを「単純に」編集し、問題なく動作しました。キーは最低レベルのシンボルにリンクされます。
質問:
xkb
私は(テストのために)次の項目で構成されるポーランドのレイアウト(pl_ext)のバリエーションを作成しました。
key <CAPS> { [ Alt_L ] }; modifier_map Mod1 { Alt_L, Alt_R };
しかし、これはまったく効果がありません。 xevのCapsLockキーはAlt_Lとして認識(シンボル化)されますが、CapsLockキーを押すとCapsLockのように動作します(たとえば、メニューにファイルがあると仮定すると、Alt + Fを押すとこのメニューが開きますが、そうではありません)。
質問:CapsLockキーをAltに設定し、AltキーをMetaに設定するには、レイアウトファイルをどのように定義しますか?
編集する:これは戦闘の半分です!今、次の項目があります。
key <CAPS> { [ Alt_L ] }; modifier_map Mod1 { <CAPS> }; // this is a difference
これは期待どおりに機能します。以下は行われません。
key <LALT> { [ Meta_L ] } ; key <RALT> { [ Meta_R ] } ; modifier_map Mod5 { <LALT>,<RALT> };
Alt キーは xev で Meta として認識されますが、まだ Alt+F を使用してメニューを開いてウィンドウを切り替えることはできますが、そうしないでください。一方、国の文字は入力できませんが、入力する必要があります。
自由 86
しかし、今は動作しません。 xfree86の代わりに別のファイルテーブルを読むようです。
質問:システム(X / Gnome)がどのキーマップファイルを使用しているのか、どうすればわかりますか?
編集する:私に最適なオプションであるキーコードテーブルの編集が修正されました。マシアスの答え!
xmodmap
これは戦闘の半分です。この部分は期待どおりに機能します。
ロックを削除 = Caps_Lock キーシップ Caps_Lock = Alt_L
Altにマップされた実際のCapsLockキーがあります。しかし、これは:
キー記号 Alt_L = Meta_L
...奇妙なことをしました。 xevは、AltキーがMetaにマップされていることを示しますが、Alt + F(Meta + Fにマップする必要があります - >何もしません)を押すと、ファイルメニューが開きます。さらに、Alt+Tab キーを押すと、ウィンドウ スイッチャーが表示されます。
質問:Altキーの以前の動作を「削除」する方法は?
編集する:この部分の解決方法はザイルズの答え。
要約:
どんな質問にも答えると、私の問題は(希望的に)解決されますが、xkbのすべてのファイルをパッケージ化して1つの場所でレイアウトを変更できるため、xkbを完全に使用することをお勧めします。助けてくれてありがとう!
ベストアンサー1
キーコード方式の編集
ポーランドのUbuntuフォーラムで答えを見つけました。 「xfree86」ファイルを編集するのではなく、「evdev」ファイルを編集します。これにより、すべてのレイアウトに適用される永続的な変更を実行できます。
はい(Gillesのリクエスト) - rootとしてログインし、次に進みます。
/usr/share/X11/xkb/keycodes
"evdev"ファイルをバックアップして編集してください。私の場合のように、必要に応じてコードを変更します。
<LALT> = 66; // when I press CapsLock (66 code) system will report pressing LeftAlt
<LMTA> = 64; // I will get LeftMeta when pressing LeftAlt (64 code)
「xev」コマンドを実行するとコードが見つかりますが、元の「evdev」ファイルだけを見ることができます。
ログアウトしてログインして新しいキーボードを楽しんでください:-)。