
Unix ターミナルでキーボードのキーの一部を変更することは可能ですか?
たとえば、 を押すと ,
が_
印刷されますか?
もしこれが本当に可能であれば、どうすればいいのでしょうか?
私はUbuntuを使っています。
答え1
引用:ここ:
カスタムテーブル
独自のマップを作成し、ホーム ディレクトリ (つまり ~/.Xmodmap) に保存することができます。現在のキーマップ テーブルを設定ファイルに出力します。
xmodmap -pke > ~/.Xmodmap
~/.Xmodmap に必要な変更を加え、次のコマンドで新しい設定をテストします。
xmodmap ~/.Xmodmap
Xorg の起動時にカスタム テーブルをアクティブにするには、以下を追加します。
~/.xinitrc if [ -f $HOME/.Xmodmap ]; then /usr/bin/xmodmap $HOME/.Xmodmap fi
または、グローバル起動スクリプトを編集します
/etc/X11/xinit/xinitrc
。テストの変更
現在のセッションに対して一時的な変更を加えることもできます。例:
xmodmap -e "keycode 46 = l L l L lstroke Lstroke lstroke" xmodmap -e "keysym a = e E"
また:
man xmodmap
詳細については、 を参照してください。
編集:
明確に言うと、はxmodmap ~/.Xmodmap
Xorg の起動時だけでなく、多くの場所で使用できます。たとえば、私の ~/.bashrc には次の 2 つの関数があります。
# map caps to esc
mapcaps(){
xmodmap -e "clear lock"
xmodmap -e "keycode 0x42 = Escape"
echo mapcaps: caps-lock set to Escape via xmodmap
}
unmapcaps(){
xmodmap -e "keycode 0x42 = Caps_Lock"
xmodmap -e "add lock = Caps_Lock"
echo unmapcaps: caps-lock set to caps-lock via xmodmap
}
これにより、Caps を Esc に動的にマッピングできるようになります。
実際には制限はありません。~/.xinitrc、~/.bash_profile、カスタム スクリプトなどから xmodmap を自由に呼び出すことができます。
答え2
正直に言うと、私はあなたがしようとしていることを一度も試したことはありません。ただし、以前にターミナル (X 以外) に代替キー バインディング (キーの組み合わせ) を追加したことはあります。
キーバインディングは次のように確認できます:showkey
またはshowkey -s
追加の調査と変更を行うには、関連プログラムを使用します。
loadkeys
dumpkeys
keymaps
setkeycodes
Slackware で変更を加えるのは非常に簡単です。Ubuntu でしばらく探しましたが、同じファイルは見つかりませんでした/usr/share/kbd/keymaps/i386/qwerty/*map.gz
。ただし、ライブで起動した Ubuntu システムしかアクセスできませんでした。あなたはもっとうまくいくかもしれません。
答え3
X Windowing Systemでこれを行う場合は、Xmodmapを使用できます。私は構文をまったく理解していないので、実例、そこから始めましょう。