アメリカのレイアウトに切り替えた後、wsconsctl -w encoding=us
キーマップを自分の方法で変更する方法を探しています。
私はそうしました:
wsconsctl -w map+="keycode 1 = Cmd_Debugger Caps_Lock"
wsconsctl -w map+="keycode 58 = Escape"
大文字のロックキーとEscキーを置き換えます(私はVimユーザーなので、このスワップは意味があります)。
私はwsconsctl map
setを見つけましたがkeycode 184 = Mode_switch Multi_key
、私が理解したところによると、これはAltGrドイツ語のキーボードで使用する機能です。
キーコードを184に設定してみましたがMode_switch
(通常はAlt_R
何もしません)、それが何をしているのか完全に理解できませんでしたAltGr。
NetBSDはUS AltGr-Intlバリアントに付属していないようですので、少なくとも定義したいと思います。一部私はキー(例えばドイツ語のウムラウト)が必要であり、AltGr-Intlバリアントをこのように「バックポート」しました。
だから私が最初に試したことはwsconsctl -w map+="keycode 16 = q Q adiaeresis Adiaeresis"
AltGrこれを行うときに+:と入力すると、コンソールに奇妙なエラーコードが表示されますq。 <00ef>
utf-8コードや私のコードに似ているようです。とにかく予想通り「ä」は生成されません。また、キーマップの内容を確認すると、変更後に次のことが発生します。
# wsconsctl map | grep -i "code 16"
keycode 16 = q Q adiaeresis gr_D
「」gr_D
?それはどこから来たの?どんな理由からなのか192行目にあるのに、次のような内容wsconsctl
が気に入らないようです。Adiaeresis
/usr/include/dev/wscons/wsksymdef.h
#define KS_Adiaeresis 0xc4
私はこれがすべてのキャラクターに起こるわけではないことがわかりました。マッピングしようとしましたが、wsconsctl -w map+="keycode 16 = q Q at at"
うまく動作します。その後、AltGr+をクリックして「@」と入力できますq。
また、ログインプロンプトで長押しすると特殊文字を入力できます。ユーザー名をAltGr入力してもäåéóöëíúáßðfø¶œï
問題ありません。しかし、一度ログインすると、USエンコーディングがロードされるように見え、それ以降は一般的なUSレイアウトになります。 。
AltGrデフォルトでは、または右のAltキーを押し続けて特殊(ラテン語)文字を入力できるというアイデアです。
オペレーティングシステムはNetBSD 7.0 / amd64であり、amd64ホスト(Linux)のVMで実行されます。