🖥️

イケてるデスクトップ環境を作る(yabai + skhd + Übersicht)

2021/12/13に公開

目次

目次

はじめに

42Tokyoに入学してからというもの、ほぼ毎日起きてから寝るまでPC画面の前で過ごすようになり、開発速度を少しでも上げるためにキーボードから手を離さず画面を操作したいなと思うようになりました。
また、一日中見続ける画面なのでせっかくなら自分好みの見た目にカスタマイズしたいとも思い色々と試した結果自分なりの最適解を見つけたのでご紹介します。
具体的にやったことは以下3点。順番に説明していきます。

  • アプリケーションウインドウの自動整理
  • ウインドウをキーボードショートカットで操作可能にする
  • デスクトップ上部に表示されるステータスバーをMacのデフォルトのものではなく、少しカラフルで表示項目が少ないものに変更



使用ツール

yabai

yabaiはタイル型ウインドウマネージャーです。
アプリケーションウインドウを自動的に綺麗なタイル状に並べてくれます。

インストール

yabaiをbrewでインストールします

brew install koekeishiya/formulae/yabai

有効化

インストールが完了したらyabaiを有効化するためにコンピュータの制御権限を付与します。
Macの設定セキュリティとプライバシープライバシーアクセシビリティのyabaiのチェックボックスにチェックを入れます。

スクリプトの追加をインストール

スクリプトの追加をインストールすることで、デスクトップの追加や削除もコマンドで行えるようになります。
※スクリプトの追加は現在Apple Silicon(M1)をサポートしていないようなので、この手順はスキップしてもかまいません。

sudo yabai --install-sa
sudo yabai --load-sa

設定

次にyabai起動時に読み込まれる設定ファイル(.yabairc)をルートディレクトリに作成し ます。今回はyabaiのGitHubに置いてあるサンプルをコピペして使用します。

.yabairc
#!/usr/bin/env sh

# global settings
yabai -m config mouse_follows_focus          off
yabai -m config focus_follows_mouse          off
yabai -m config window_origin_display        default
yabai -m config window_placement             second_child
yabai -m config window_topmost               off
yabai -m config window_shadow                on
yabai -m config window_opacity               off
yabai -m config window_opacity_duration      0.0
yabai -m config active_window_opacity        1.0
yabai -m config normal_window_opacity        0.90
yabai -m config window_border                off
yabai -m config window_border_width          6
yabai -m config active_window_border_color   0xff775759
yabai -m config normal_window_border_color   0xff555555
yabai -m config insert_feedback_color        0xffd75f5f
yabai -m config split_ratio                  0.50
yabai -m config auto_balance                 off
yabai -m config mouse_modifier               fn
yabai -m config mouse_action1                move
yabai -m config mouse_action2                resize
yabai -m config mouse_drop_action            swap

# general space settings
yabai -m config layout                       bsp
yabai -m config top_padding                  12
yabai -m config bottom_padding               12
yabai -m config left_padding                 12
yabai -m config right_padding                12
yabai -m config window_gap                   06

echo "yabai configuration loaded.."

起動

さて、ここまでできたらyabaiを起動してみます。
起動するには次のコマンドを入力

brew services start yabai

また、yabaiを停止させたい時は次のコマンドで止まります。

brew services stop yabai

無事に起動するとアプリウインドウが自動的で綺麗なタイル状に配置されたと思います。
これだけでもちょっとテンションが上がりますがさらに使いやすくしていきます。

※もしうまく起動しない場合はこちらを参考にしてください。

skhd

skhdはショートカットキーの割り当てを設定するためのアプリケーションです。
yabaiのウインドウ操作コマンドにキーボードショートカットを割り当てるのに使用します。下のgifのような操作をキーボードのみで行うことができるようになります。

インストール

brewでインストールしていきます

brew install koekeishiya/formulae/skhd

有効化

設定セキュリティとプライバシープライバシーアクセシビリティから有効化します。

設定

今回もGitHubのサンプルを参考に設定していきます。
設定ファイル(.skhdrc)をルートディレクトリに作成し、サンプルをコピペします。

.skhdrc
# focus window
alt - x : yabai -m window --focus recent
alt - h : yabai -m window --focus west
alt - j : yabai -m window --focus south
alt - k : yabai -m window --focus north
alt - l : yabai -m window --focus east
# swap window
shift + alt - x : yabai -m window --swap recent
shift + alt - h : yabai -m window --swap west
shift + alt - j : yabai -m window --swap south
shift + alt - k : yabai -m window --swap north
shift + alt - l : yabai -m window --swap east
# move window
shift + cmd - h : yabai -m window --warp west
shift + cmd - j : yabai -m window --warp south
shift + cmd - k : yabai -m window --warp north
shift + cmd - l : yabai -m window --warp east
# move window
shift + ctrl - a : yabai -m window --move rel:-20:0
shift + ctrl - s : yabai -m window --move rel:0:20
shift + ctrl - w : yabai -m window --move rel:0:-20
shift + ctrl - d : yabai -m window --move rel:20:0
# increase window size
shift + alt - a : yabai -m window --resize left:-20:0
shift + alt - s : yabai -m window --resize bottom:0:20
shift + alt - w : yabai -m window --resize top:0:-20
shift + alt - d : yabai -m window --resize right:20:0
# decrease window size
shift + cmd - a : yabai -m window --resize left:20:0
shift + cmd - s : yabai -m window --resize bottom:0:-20
shift + cmd - w : yabai -m window --resize top:0:20
shift + cmd - d : yabai -m window --resize right:-20:0
# rotate tree
alt - r : yabai -m space --rotate 90
# mirror tree y-axis
alt - y : yabai -m space --mirror y-axis
# mirror tree x-axis
alt - x : yabai -m space --mirror x-axis
# toggle desktop offset
alt - a : yabai -m space --toggle padding && yabai -m space --toggle gap
# toggle window fullscreen zoom
alt - f : yabai -m window --toggle zoom-fullscreen
# toggle window native fullscreen
shift + alt - f : yabai -m window --toggle native-fullscreen
# toggle window split type
alt - e : yabai -m window --toggle split
# float / unfloat window and restore position
# alt - t : yabai -m window --toggle float && /tmp/yabai-restore/$(yabai -m query --windows --window | jq -re '.id').restore 2>/dev/null || true
alt - t : yabai -m window --toggle float && yabai -m window --grid 4:4:1:1:2:2

この設定ファイルで何をしているのかというと、yabaiでウインドウを操作するためのコマンドとショートカットキーの組み合わせを一つ一つ設定しています。
例えば下記の設定は、左側のウインドウにフォーカスするためのコマンド(yabai -m window --focus west)を、alt + hというショートカットに割り当てています。
※altキーはMacの場合はoptionキーです。

# focus window
alt - h : yabai -m window --focus west

起動

brew services start skhd

無事に起動したらさきほど設定したショートカットが使えるようになっていると思います。
試しにalt + xでウインドウフォーカスの移動、Shift + alt + xでウインドウ位置の移動をしてみましょう。

他にも、3つ以上のウインドウを反時計回りに移動させたり、ウインドウサイズを大きくしたり小さくしたりといった操作もショートカットで簡単に行えます。先ほどコピペした設定ファイルを見ながら操作してみましょう。

Übersicht

Übersichtを使用すると自分でカスタマイズしたウィジェットを画面上に表示することができます。今回はsimple-barというウィジェットを一緒にインストールしてみようと思います。

インストール

  1. Übersichtをダウンロード
    公式サイトGitHubからダウンロードしてきてインストールします。
  2. simple-barをダウンロード
    上でダウンロードしたÜbersichtリポジトリ内のウィジェットディレクトリに、simple-barのリポジトリをクローンします。
git clone https://github.com/Jean-Tinland/simple-bar $HOME/Library/Application\ Support/Übersicht/widgets/simple-bar

有効化

設定セキュリティとプライバシープライバシーアクセシビリティから有効化します。

起動

yabaiやskhdと違いÜbersichtはターミナルからではなくアプリアイコンから起動します。Launchpadにあると思うのでクリックして起動します。
無事に起動したらデスクトップ画面上部にステータスバーが表示されます。
バーをクリックしてからcommamnd + ,で設定が開くので、バーの表示項目や色を変更して遊んでみると楽しいと思います。

かっこいいコマンドたち

自分がよく使っているお気に入りのコマンドを紹介します。どのコマンドもbrewで簡単にインストールして使用できます。

gotop

グラフィカルなアクティビティモニター

ranger

vimっぽく操作できるコンソールファイルマネージャー

unimatrix

映画マトリックスっぽく文字を降らせる

asciiquarium

休憩時間に癒されましょう

ターミナルに雪を降らせるコマンド

そろそろクリスマスなので、、、

ruby -e 'C=`stty size`.scan(/\d+/)[1].to_i;S=["2743".to_i(16)].pack("U*");a={};puts "\033[2J";loop{a[rand(C)]=0;a.each{|x,o|;a[x]+=1;print "\033[#{o};#{x}H \033[#{a[x]};#{x}H#{S} \033[0;0H"};$stdout.flush;sleep 0.1}'

おわりに

今回紹介したような開発環境の見た目をカスタマイズするカテゴリのことを海外では「unixporn」と呼ぶようです。Redditという掲示板サイトでイケてる開発環境がたくさん投稿されているので、興味のある方はぜひそちらも見てみてください。

https://www.reddit.com/r/unixporn/comments/pg2syu/yabai_blue_macos/?utm_source=share&utm_medium=web2x&context=3

https://www.reddit.com/r/unixporn/comments/p5h6ic/sway_clean/?utm_source=share&utm_medium=web2x&context=3

https://www.reddit.com/r/unixporn/comments/p42g3l/i3_simple_man_rice_one_dark_nord_dracula_mixture/?utm_source=share&utm_medium=web2x&context=3

https://www.reddit.com/r/unixporn/comments/il5ire/openbox_btw_nord/?utm_source=share&utm_medium=web2x&context=3

Discussion