X11のAltキーに他の修飾子をどのように割り当てますか?

X11のAltキーに他の修飾子をどのように割り当てますか?

目的:

CapsLockキーにAltを割り当て、AltキーにMetaを割り当てたいです。ただし、この場合、AltキーはもうAltキーとして認識されず、CapsLockキーもCapsLockキーとして認識されなくなります。

SUSE 11.4を開く

前に:

openSUSE 11.1 - 私は私のコンピュータの唯一のユーザーなので、/usr/share/X11/xkb/keycodes/xfree86ファイルを「単純に」編集し、問題なく動作しました。キーは最低レベルのシンボルにリンクされます。

質問:

  1. 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 を使用してメニューを開いてウィンドウを切り替えることはできますが、そうしないでください。一方、国の文字は入力できませんが、入力する必要があります。

  2. 自由 86

    しかし、今は動作しません。 xfree86の代わりに別のファイルテーブルを読むようです。

    質問:システム(X / Gnome)がどのキーマップファイルを使用しているのか、どうすればわかりますか?

    編集する:私に最適なオプションであるキーコードテーブルの編集が修正されました。マシアスの答え

  3. 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」ファイルだけを見ることができます。

ログアウトしてログインして新しいキーボードを楽しんでください:-)。

おすすめ記事