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 Window Systemでこれを行うには、Xmodmapを使用できます。私は構文を習得したことがないので、構文を見つけてください。実際のケースをクリックしてそこから始めます。