Windows-Mac間でのキーボードマウス共有での悩み

去年は厄年だったのではないかと思うのだが、モバイル用の開発環境[1]が立て続けにお亡くなりになり、Surface Goを買い直すには時期がわるそう[2]ということで、会社に相談してみたらM1のMacBook Airを貸与してもらえた。

ここ数年は、Windows/Linuxがメインで、MacはMac miniをほぼビルド専用機として使っている程度だった。 しかし、せっかくわりと最近のスペックのMacBookを貸してもらえたので、そこそこ本格的に使いたい機運になって、わりとメインに近い感じで使いはじめてみた。

いまは、モバイルの開発環境としてはもちろんメインになり、デスクトップでの開発でもReactNativeでのアプリ開発についてはMacをメインでそのまま使うようになった。 ReactNativeに関してはAndroidエミュレータでの開発のもっさりさが相当あるので、やはりMac上でiOSシミュレータで開発したほうがストレスがない。

一方、バックエンドの開発はまだまだLinuxのほうがやりやすいと感じる。Dockerの使いやすさはもちろんのこと、これはArchLinuxと比較しての話にはなるのだが、パッケージマネージャの使い勝手もずいぶん違う。 ArchLinuxの場合、基本的にすべてのパッケージが最新の状態に保てる。最新になりすぎるという問題はあるものの、開発環境として使う分には好都合なことしかないので問題なし。 Macだとbrewで古くなったものを手動で管理する必要がありめんどくさい、というのと、brewコマンドがめちゃくちゃ遅くてユーザー体験とても悪い。 他のパッケージマネージャが出てきてたりするのかな?と検索してみてもめぼしいものは見つからず、みんなこれに我慢しているのだろうか…?と疑問になるレベルである。

そんなこんなで結局MacBookでもバックエンド開発は家のPCにリモート接続して開発、みたいな形になってしまっている。宝のもちぐされだ。

やはりSurface Goが自分にとってはベストなモバイル開発環境な気がしてくる今日このごろ。次のモデルを待とう。

MacBook導入後のデスクトップの様子は以下のような感じで、4Kのモバイルモニターをメインモニタの下に置くようにしてみたらかなり作業しやすい感じになった。 マウス・キーボードは切り替え機でハードウェア的に切り替えもできるようにしているのだが、基本的にはBarrierを使って共有している。

Desktop Jan 2023

しかし、このBarrierを使った共有でいまのところ解決できていない問題があって困っている。(ようやく本題)

  1. Macをサーバーにする
    • Natural Scrollになってしまう
      • 前提条件として、Trackpadではnaturalになってほしい。マウスではなってほしくない
      • というのでMosというのを入れてみたが、MacBook単体では理想の挙動なものの、Windows側がnatural scrollingのままになってしまう
  2. Windowsをサーバーにする
    • マウススクロール問題はおこらない
    • しかし、Mac側でKarabinerを使って実現しているSandS機能が動作しない

という感じでこっちを立てればあっちが立たず、みたいな状況。 とりあえず現状は1で、デスクトップで作業する時は手動でNatural Scrollを切る、という不毛なワークアラウンドをしている毎日です。