ウィンドウを自動で便利に並べるために、Macでアプリのキーボードショートカットを変更する

  • ウィンドウ整列アプリを使わなくてもmac標準でできるようになった

  • mac標準のキーボードショートカットだと問題が生じる

  • 別のキーボードショートカットに変更したよ

  • magnetが大型アップデートで、結局magnetに戻ったよ ←12月20日(金)追記!!

ウィンドウを自動でならべる

macOS Sequoia からアプリウィンドウを簡単に並べることができるようになりました。例えば以下のようなメニューから操作できるようになりました。

ウィンドウメニューから様々なレイアウトにアクセスできます

とても便利な機能ですが、元来macOSではこのような機能はサードパーティー製のアプリケーションで実現できていました。私の場合は Magnet (https://magnet.crowdcafe.com/)と呼ばれるアプリケーションを利用してきました。

自動レイアウトは慣れてしまうと地味に必要不可欠な機能だったのですが、これが標準機能として対応できるようになったため、早速標準機能だけで運用できるかトライしてみました。しかしそうは簡単に行かなかったので、その記録を以下に記載します。

問題1:fnキーの挙動が標準キーボードとHHKBで異なる

macOSのレイアウトショートカットではmacキーボードでいうところの地球儀マークを押すことになります。これはHHKBではFnキーになります。ショートカット表示もHHKBの時はfnと表示されているので、これで普通に操作できるのかと思いきや、なにも反応せず。HHKBのfnはmacキーボードのfnとは振る舞いがことなることが原因でした。

問題2:Chromeだとスクロール処理されてしまう

fnキーは Karabiner-Elementsを使えば回避できるんですが、なんだかChromeの時だけ最初のショートカット操作(右または左にウィンドウを寄せる)が反応していないのに気づきました。挙動を細かく確認すると、スクロール処理ができる場合はページがスクロール(上、または下)され、もう一度同じショートカットキーを入力するとレイアウトがされる。という状況でした。

これはそもそもmacOSの標準機能にfn+right, fn+left がページ下/上までスクロール処理をするショートカットが組み込まれているので最初にそっちが反応してしまっていることが原因でした。ほとんどのアプリ問題ないのですが、一部でこの症状がでると Karabinerでは回避が困難でした。

macOSの標準機能を使ってショートカットを修正

Control+Fn+矢印キー だと先ほどのスクロール処理の回避ができないため、根本の標準ショートカットを変更しようと思いました。調べてみるとシステム設定のキーボードからショートカットの修正や追加ができることがわかりました。

今回のショートカットはアプリケーションの標準メニューであるウィンドウの中の操作に対するショートカットでしたので、公式記事(https://support.apple.com/ja-jp/guide/mac-help/mchlp2271/mac)を参照してショートカットの修正を行いました。

確かにリガチャの設定はショートカットでできるようになったため、これをウィンドウレイアウトに割り当ててみたのですが、なんだかうまくいったり行かなかったりで、試行錯誤をしました。ショートカットを指定する場合はそのメニュー構造を上から順に「->」で繋いで表現するのですが、なぜかうまく行かず。

「ウィンドウ」や「ウインドウ」で表記がアプリによって揺れていた!!!

これ、気づいた時にはうそーん、てなりました。いくら正しく設定しても共同がおかしかったのは、アプリケーションによってWindowの表記が「ウィンドウ」だったり「ウインドウ」だったりしていたためでした。そこで両方とも登録することで解決できました。

最終的には慣れ親しんだmagnetのショートカットでそのままmacOS標準のレイアウト機能を使うことができるようになりました。めでたしめでたし。最後に私の設定を貼り付けておきます。


こんな感じで設定してあげるとMagnetと同じ操作でウィンドウ操作が捗ります

もっと揺れていました

ということでうまくいったと思って使いだしたら、またアプリケーションにうよってはショートカットが効かないことがありました。実はこのウィンドウメニューの表記ですが、例えばSlackだとWindowは英語の表記のままでメニューに表示されていたりします。ということで追加で登録のし直しをします。

最初っから階層指定ではなく、メニュー名指定にするというのも考えられます。実はショートカットのメニュータイトルは階層表示で記述しなくとも、「画面全体に表示」みたいな記述方法でしていすれば、メニュー内にある亭号するアクションに紐づけられます。長めのメニュー名なら問題ないですが、右とか左とかっていう短い項目は例えばvscodeだと名前のバッティングが生じて正しく動作しなくなってしまいます。なので階層していが必要なのです。

ということで現状の追加設定分は以下の画像の通りとなりました。ちょっと面倒でしたが、これで解決することを祈ります。

なんだかんだで手動設定項目が結構ありました

最後に残念なお知らせ

この記事を書いてからしばらくはOS標準で利用し続けておりましたが、以下の不具合がありました。

  • アプリケーションによってはウィンドウメニュー自体がないのでウィンドウ整列ショートカットが利用できない。

  • Chromeでoffice Excelの作業をしていると別ショートカットにあたるのか不明ですが、なぜか一部ショートカットが機能しない

  • 私の気のせいかもしれませんが、設定したショートカットが勝手に変更されている時がある

個人的にOS標準のウィンドウ整列で気に入っていたところは

  • 整列させたときに少しウィンドウにマージンができる

    • これ、結構ありがたくて、magnetのときにはピッチリ整列されてしまうので、後ろにあるウィンドウにアクセスするのがちょっと面倒でした

    • スムーズなアニメーション

の2つだけでした。そして最近(2024/12/20現在)になって、なんとmagnetが大幅アップデートをかけて、整列時のマージン間隔を設定できるようになりました!!アニメーションはまだないですが、magnetを使えば先ほどのトラブルは皆無なので、結局magnetに戻りました。

magnet大好き!!

おわり(今度こそ)


いいなと思ったら応援しよう!