お知らせ
「US・JISキーボード配列を整える」を公開 — SSHで「@」を打つと「[」になる事故を逆引きで解決
⌨️ US・JISキーボード配列を整える を公開しました。開発ツールのカテゴリに入ります(Linux 固有の話ではなく、Windows・Mac・リモートデスクトップでも起きる問題のためです)。
「@」を打ったら「[」が出る
SSH でリモートサーバーに入ったとき、サーバー側が想定するキー配列と手元の物理キーボードが食い違うと、キーの位置はそのままで送られる文字だけがずれます。JIS キーボードで US 配列扱いのサーバーに入るのが典型で、@ が [ に、" が @ に、_ や | は「どこにも無い」ように見えます。
英字と数字はずれません。ずれるのは記号だけで、しかもほぼ決まった顔ぶれです。
打ちたい文字から「押すキー」を逆引き
手元のキーボード(JIS / US)とサーバー側の配列(JIS / US)を選び、打ちたい記号を入れると、その環境で実際に押すべき物理キーが出ます。
たとえば手元 JIS・サーバー US なら:
@を打つ → Shift + 数字「2」の位置(手元の刻印は")_を打つ → Shift +「0」の右隣(刻印は=)|を打つ → Shift + Enter の左(刻印は})
逆に「このキーを押すと何が出るか」も引けます。両配列のキーボード図を並べ、ずれる場所を色分けしてあるので、どこが危ないかは一目で分かります。
直すコマンドも
サーバー側の配列を直す代表的なコマンド(setxkbmap / localectl set-keymap / loadkeys)を、そのまま打てる形で添えました。ディストリビューションによって挙動や設定ファイルの場所が違うため、断言できない箇所は「環境によって」と書いています。
対応表の根拠と範囲
Windows/Linux 向けの JIS 配列(106/109)と US 配列(ANSI 104)を根拠にし、記号キー23個ぶんの対応をテストで固定しています。自信が持てないキーは載せていません——間違った対応表は無いより悪いからです。JIS の「半角/全角」キーは IME 切替で文字を出さないため対象外、Mac の JIS キーボードは ¥ と \ の扱いなどが一部異なるため今回は対象外と明記しました。
全216種になりました。