Skip to content

macOS 13.5 で yabai & skhd を使ってデスクトップを切り替える

macOS で複数デスクトップの切り替えに yabaiskhd を利用すると便利です。 私の場合は特に「複数デスクトップの切り替え」で利用しています。 Ventura 13.5 環境へのインストールと設定手順をメモしておきます。

今回の設定内容

「複数デスクトップの切り替え」ですが、以前は TotalSpaces で行っていました。 ですが、TotalSpaces の M1 対応は (フォーラム を見ている限り完全に止まっているわけでは無いようですが) あまり順調では無いようです。 その為、最近では yabai & shkd を利用して代替しています。 私の場合は以下の設定にしています。

  • デュアルディスプレイ環境
  • 「仮想デスクトップ x 8」に拡張
    • 左ディスプレイに「仮想デスクトップ x 4」
    • 右ディスプレイに「仮想デスクトップ x 4」
  • 「Ctrl + 数字」で仮想デスクトップのペアを同時に切り替える
ショートカット 表示する仮想デスクトップのペア
Ctrl + 1 1 & 5
Ctrl + 2 2 & 6
Ctrl + 3 3 & 7
Ctrl + 4 4 & 8

file

前提の準備

今回、yabai と skhd は Homebrew でインストールします。 その為、CommandLineTools をインストールし、Homebrew もインストールしておきます。

1
2
3
sudo rm -rf /Library/Developer/CommandLineTools
sudo xcode-select --install
/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"

また、デスクトップと Dock から ディスプレイごとに個別の操作スペース 設定を有効化しておきます。

file

yabai

yabai のインストール手順は Installing yabai (latest release) に記載されています。 現時点では以下を実行する手順になっていました。

1
2
brew install koekeishiya/formulae/yabai
yabai --start-service

~/.yabairc は以下のように設定しました。

1
2
3
4
#!/usr/bin/env sh
sudo yabai --load-sa
yabai -m signal --add event=dock_did_restart action="sudo yabai --load-sa"
yabai -m config layout                       float

また公式サイトに以下のインストール手順に以下の記載があります。

yabai uses the macOS Mach APIs to inject code into Dock.app; this requires elevated (root) privileges. You can configure your user to execute yabai --load-sa as the root user without having to enter a password. To do this, we add a new configuration entry that is loaded by /etc/sudoers.

公式サイトでは「yabai --load-sa をパスワード不要での root 権限実行を許可する」設定になっていますが、私の場合は「自ユーザでは sudo で全コマンド許可」としています (※ 危険性を理解した上で設定すべきであり、推奨される設定ではありません)。

1
USERNAME         ALL = (ALL) NOPASSWD:ALL

skhd

skhd のインストール手順は skhd の README.md に書かれています。 現時点では以下を実行する手順になっていました。

1
2
brew install koekeishiya/formulae/skhd
skhd --start-service

~/.skhdrc は以下のように設定しました。 事前にデスクトップは 8 枚、作成してあります。

1
2
3
4
ctrl - 1 : yabai -m space --focus 1 && yabai -m space --focus 5
ctrl - 2 : yabai -m space --focus 2 && yabai -m space --focus 6
ctrl - 3 : yabai -m space --focus 3 && yabai -m space --focus 7
ctrl - 4 : yabai -m space --focus 4 && yabai -m space --focus 8

プライバシーとセキュリティの設定

プライバシーとセキュリティプライバシーアクセシビリティ から yabai と skhd を許可しておきます。

file