経路適期には「自宅の Mac – 会社内の sshサーバ – 会社内の Windows11 PC」となる。
出社時には Windows PCを直接操作し、テレワーク時には Macから VNC経由で操作できないかというリクエストがあったので環境を構築。
ちなみに Macには 109キーボードを接続して VNC経由での Windows PC接続時はそちらを使うように。
sshトンネル
Macにて ssh-keygenでキー作成し、sshサーバの authorized_keysへの登録
launchctlで自動的にトンネルを掘るように。
シェルは登録しないほうが安心かな。
VNC環境
Mac側の VNCビューワは標準装備の画面共有。
Windows PCには TightVNCのサーバをインストール。*1
先に掘ったトンネルを使って接続するように。
これだけだと日本語入力周りがダメダメなのでもう一押し。
キーボード環境
ここが一番苦労した点。
Macには Karabiner-Elementsをインストール。*2
左 Optionを左 Command(=左 Alt)、左 Commandを右 Ctrl*3 、全角/半角を F13、無変換、変換、カタカナを F16~18にそれぞれ置き換えるように。*4
いずれも conditions/identifiersで特定の 109キーボードのみに限定して適用して Mac用のキーボード操作時に影響が出ないように。
Windows PCには AutoHotkeyをインストール。*5
右 Ctrlの押し下げ&離す操作を左 Windowsキーの操作に、F13、F17の押す動作を全角/半角キーと変換キーを押す動作に復元。
これで Alt+某、Windows単体、Windows+某、全角/半角による日本語入力 on/off切り替え、スペースや変換キーによる日本語変換が動作するように。
ディスプレイ環境
VNC接続時、Windows PCがデスクトップの場合はモニタの電源を切るだけで良いけど、ノートの場合パネルを閉じてしまうと画面が暗転したままになってしまう。*6
幸い、普段から外部モニタを接続してパネルは閉じっぱなしなのでデスクトップ同様モニタの電源を切るだけで済んでいる。
BIOSやドライバの設定で逃げられる可能性があるけど追求はしていない。
以上で Windows PCを直接使うのとほぼ同じ感覚で Macから Windows PCを操作できるように。
Karabiner-Elementsが良い仕事しているな。
これがあるから Mac自体を使うときは Mac用のキーボード、Windowsを使うときは Windows用のキーボードとわかりやすく切り替えられる。
Windows-Windowsで同様のことは可能なのだろうか?
Karabiner-Elements相当のアプリが存在するようならいけそうだけど。