2024年3月13日水曜日

特殊キーのキーコード問題は根深い(github copilot)

PC watchの連載記事Ubuntu日和は2022年から続いていて内容が濃く面白い。私が注目したのは「特殊キーが特別だからmacは使わない」と著者が書いていたことだ。それはとてもよくわかる。appleファンの私は「macは使わない」ところは賛同できないが「特殊キーが特別」に関しては大いに共感した。

デスクトップPCにキーボードがつなげてあるとか、キーボードが作り付けのノートPCなら特殊キーが特別なことは問題にならない。何らかのユーティリティーでキーコードは自由に変えられるし、その状態を常に維持できるからだ。

ところが、キーコードをなんらかのプロトコルに乗せて通信する手段を経由してPCを操作している場合は、特殊キーの扱いが通信手段によって異なるので面倒になる。通信がシリアルに重なっていると面倒さが増大する。日本語配列キーボードを設定しているPCが英語配列キーボードのキーコードを中継するときにも困ったことが起こりがちだ。

私の仕事環境の場合はキーコード変換が4段生じている。

  1. KVMのPShare経由でHHKBをmacに接続
  2. 職場への接続は証明書を持つ専用windows PCでないと許可されないので、mac OS上のアプリMicrosoft Remote Desktopで専用windows PCに接続
  3. RDPしか通さない職場のVPN接続なためリモートデスクトップ接続で職場の受信専用windows PCに接続
  4. 受信専用windows PC上でターミナルソフトrlogin.exeを動かして職場のlinux PCに接続してneovimを操作
neovimでgithub copilotを使うためにAlt+[を叩いてもAltを認識せずに動かない。github copilotの設定を変えてControl+,とかにキーバインドを変えてもControl+,を認識しない。試しにローカルPCでgithub copilotのキーバインドを変更するとうまく動くので、通信しているゆえの問題だ。

せめて通信を1段減らそうと思い、受信専用windows PCを止めて職場のlinux PC上でxrdpを動かして専用windows PCから職場のlinux PCへ直接RDPで接続してみたが、これでも状況は改善しない。

PShareの特殊キー処理か、VPN接続の特殊キー処理か、アプリMicrosoft Remote Desktopの内部処理か、アプリリモートデスクトップ接続の内部処理かで特殊キーを正しく処理できていないと思われるが、それぞれの設定を思いつく限りいじっても改善しなかった。

エディタをneovimからVisual Studio Codeに変えてみたが、Alt+[を認識できないことには変わりなかった。

macのユーティリティーkarabinerでキーコードスキャンをしてHHKBからmacへは正しいキーコードを送っていることは確認できてはいるが、それ以降の通信の途中でおかしくなっている。

こういうのはControlとかAltとかの特殊キーを使っているゆえの問題なので、Controlを使わず英字キーだけで操作する設計思想のviはすごい存在なのだと改めて気づいた。emacsはControlキーがないと動かないし、wordstarなどのワープロエディタもControlキーを当てにしている。

0 件のコメント:

コメントを投稿