xmodmap ubuntu/mintで、全角/半角キーとESCを入れ替える。最近 xkb

もうずいぶん前から,xkbに移行しています。


全角/半角キーとESCだけなら、以下のサンプルでうまくいくと思います。説明の手抜きですが貼り付けておきます。ごめんなさい。ubuntu16.04LTS/18.04LTS/manjaroでも同じです。再設定というか、~/.xkbを継続してそのまま使っています。だから手順を追った説明が書けない。

何かの弾みでデフォルトに戻る場合がありますね。 当方の環境では、少なくともmozcを再起動すると元に戻ります。だから、

/usr/bin/xkbcomp -I$HOME/.xkb $HOME/.xkb/keymap/mykbd $DISPLAY 2> /dev/null

という1行スクリプトを都度実行しないといけないですね。
ランチャーに登録してマウス・クリックでもいいです。Windowsならレジストリを書き換えたら恒久的に触らなくていいので楽なんですけど。あはは。何も考えなくていい、楽ちんな方法があればと思いますが、ま、いいか。 右クリックのスクリプトにXKBというメニューでもいいか。

ここに数年前の設定ファイルと試行錯誤の記録をまるっとかためていますので、
この説明でわかりにくければダウンロードして、中身をみてください。純粋にテキストだけです。グーグルのサーバー上に試験的においておいたのを忘れてました。

とりあえずカンタンに済ませたい人向け

一時的に配布を中止します。配布サーバを変えます。

~/.xkbが、現状なければそのまま展開して、上記コマンドを発行すれば、即座に入れ替えができますよ。ちなみに今メインがmanjaroLinux ですが問題なく利用しています。

以下の記事も併せて参照してください。たぶん、ここを見ている人には役にたちます。
fcitxでキーアサインがデフォルト値に戻るのを防ぐ。fcitxでキーアサインがデフォルト値に戻るのを防ぐには、一番上の上書き可能にするのチェックなしで運用します。コマンドとスクリプトは空でいいです。試しにいろいろやってみていた時のキャプチャ。


xkb::詳しい説明

●基本ファイル

xkb_keymap {
xkb_keycodes { include "evdev+aliases(qwerty)" };
xkb_types { include "complete" };
xkb_compat { include "complete+japan" };
xkb_symbols { include "pc+jp(OADG109A)+inet(evdev)+
terminate(ctrl_alt_bksp)+mykeys(bindkeys)" };
xkb_geometry { include "pc(pc105)" };
};

迷ったらここ。
http://www.charvolant.org/~doug/xkb/html/

http://madduck.net/docs/extending-xkb/

●カスタマイズ

# replace key { [ backslash, bar ] }; は著しく個人的な好み
partial modifier_keys
xkb_symbols "bindkeys" {
replace key { [ Zenkaku_Hankaku, Kanji ] };
replace key { [ Escape ] };

#replace key { [ backslash, bar ] };
};

#OK? replace key { [ Caps_Lock ] };
#OK replace key { [ Control_L ] };
#OK replace key { [ Menu ] };
#OK replace key
{ [ Caps_Lock ] };

# 以下要研究
#NG replace key { [ Control_L ] };
#NG replace key { [ Return ] };
#NG replace key { [ Return ] };
#NG replace key { [ Return ] };
# replace key { [ Bar ] };
# <キー>に{機能}を割り当てる
# http://www.charvolant.org/~doug/xkb/html/
#cf. xdg-open /usr/share/X11/xkb

●起動時反映させる

.profileなり.bashrcに、

/usr/bin/xkbcomp -I$HOME/.xkb $HOME/.xkb/keymap/mykbd $DISPLAY 2> /dev/null

-----------

過去稿:xmodmap から xkbになってきたかんじなので。

20年来OS問わず、このKeyassignにして使っています。

gedit ~/.Xmodmap

以下の内容で作成。貼り付けましょう。

keycode 49 = Escape
keycode 9 = Zenkaku_Hankaku

再起動。もしくは、

xmodmap ~/.Xmodmap

で即時反映。mint,debianも共通。

長いこと使っています。問題が出たことはありません。

ちなみに、Windows7ではマイクロソフトのリソースキットで同様に設定しています。詳しく覚えていません。一旦設定してレジストリを書き換え、そのレジストリファイルを保存すれば、.regファイルをクリックするだけです。Windows10でも同じです。

OADG109。その他のキーを入れ替えたい場合は、xmodmapで検索してみてください。また標準GUIの設定ツールで事足りるかもしれませんので、設定/キーボードを確認してみるといいかも。たとえば、Pauseキーに、Muteを割り当てるなど。フレイバーによる差はあるかもしれませんが標準的な機能を使うほうがいいのかな、とも。


反映されない場合の回避策



追記、いつのまにか当方の3つの環境で自動反映されなくなりました。検索してみると英語圏の方も同じような状態になっているようです。.profileなどでも反映されません。不思議です。

いろいろ考えてみたんですが、最終的に、
mint/ubuntuの「自動起動するアプリケーション」に追加設定することで対応できています。\(^o^)/ これがいちばん簡単かもしれません。

xmodmap .Xmodmaprc などが効かなくなった方は一度試してみてください。画像がみにくいですが、コマンドは、xmodmap /home/ユーザ名/.Xmodmaprc です。rcになんとなくしてみました。

追記


自動認識は、mint cinnamon はだめで、mateなら選択ダイアログが出てきますので大丈夫です。 12.10。


gconf-editor でCinnamonの場合にどう修正すればいいのかわかりませんでした。
以下のコマンドを発行すれば結果オーライなわけなので、

xmodmap /home/ユーザ名/.Xmodmaprc

結果として、

gedit /home/zish/.config/autostart/keychange.desktop

というファイルを作成。その中身が、

以下になっていればOKということですね。小手先ですが。

[Desktop Entry]
Type=Application
Exec=xmodmap ~/.Xmodmaprc
Hidden=false
NoDisplay=false
X-GNOME-Autostart-enabled=true
Name[ja_JP]=Xmodmap
Name=Xmodmap
Comment[ja_JP]=force Xmodmap
Comment=force Xmodmap

さらに追記、単純にXmodmap /home/user/.Xmodmaprc ではうまく行かないケースが当方では出てきました。理由はわかりません。12月にバグとしてあげた方がいらっしゃるようですが、アサインされていませんね。

本家のubuntuフォーラムでも解決できていないのようなので、上記を参考にやってみてください。だめなのはCinnamonです。

Namida Zone :: 神々は細部に宿る――涙とともに、夜な夜なパンをかじった。

Grub2をめぐるあれこれ。テーマ、背景、フォント。それが Cute Grub 計画

No Copyright Girl / ノーコピーライトガール Grubと戯れるという意味のない日常:: Cute Grub 計画 コンピューターの電源オン後、 OS オペレーティングシステムを起動するためのブートローダーが先ず動きだす――ほぼすべてのLinux...