Mencoba pengalaman tiling WM di MacOS dengan Aerospace
Awalnya saya sangat semangat untuk mencoba melakukan segala hal 'the Mac way'. Ini saya lakukan karena saya tidak ingin pengalaman pertama saya dengan MacOS menjadi tidak alami karena terlalu banyak tweaks. Saya coba menggunakan Stage Manager, mencoba menghafalkan gesture-gesture Mac, dan juga mencoba membiasakan diri dengan motion/animasi ketika harus buka Mission Control atau switch desktop.
Sekitar satu bulan saya rasa cukup untuk mencoba pengalaman 'pure macOS'. Akhirnya, setelah konsultasi singkat dengan teman saya yang sudah setup [Aerospace](https://github.com/nikitabobko/AeroSpace), king sahruldotid, saya jadi semakin yakin untuk ikut mencobanya. Sudah dua hari sejak saya memutuskan untuk menginstall Aerospace. Karena masih sangat awal, saya bisa menyebut di sini semua pengaturan yang saya lakukan:
1. Aerospace keymapping default, kecuali mod key yang digantikan ke Hyper (cmd+option+control) karena saya perlu Option key untuk tetap berfungsi Meta di Terminal
2. Saya juga pasang [Karabiner-Elements](https://karabiner-elements.pqrs.org/) untuk memetakan ulang Caps Lock menjadi combo Hyper key.
3. Tambahkan Cmd+Enter untuk membuka Alacritty dengan tmux di current workspace
Sepertinya hanya itu saja. Sejauh ini, saya merasa sangat nyaman karena keybindingnya banyak yang mirip dengan i3wm saya. Hal yang paling sulit adalah membiasakan diri dengan Caps Lock sebagai mod key. Selebihnya, sepertinya saya akan betah dengan setup ini.
Selamat rehat.
Script saya untuk run terminal (Alacritty):
```bash
#!/bin/bash
tmux_session_name="main"
if [ "$(uname)" = "Darwin" ]; then # workaround for disabled alacritty casked homebrew
PATH=$PATH:/Applications/Alacritty.app/Contents/MacOS/
fi
term_in_desktop() {
if [ "$(uname)" = "Darwin" ]; then
aerospace list-windows --workspace focused | awk '/Alacritty/ { print $1 }'
else
active_desktop="$(wmctrl -d | awk '/*/ { print $1 }')"
wmctrl -lx | awk '$3~/Alacritty.Alacritty/ && $2=="'"$active_desktop"'" { print $1 }'
fi
}
spawn_term_in_current_ws() {
tmux detach -s "$tmux_session_name"
alacritty -e tmux new -A -s "$tmux_session_name"
}
focus_term_in_current_ws() {
window_id="$1"
if [ "$(uname)" = "Darwin" ]; then
aerospace focus --window-id "$window_id"
else
wmctrl -i -a "$window_id"
fi
}
window_id="$(term_in_desktop)"
if [ -z "$window_id" ]; then
spawn_term_in_current_ws "$window_id"
else
focus_term_in_current_ws "$window_id"
fi
```
Created: 2026-09-10 16:36:04, Updated: 2026-09-11 02:20:40, ID: 6b55eca9-f1dd-45d3-82a9-0661704df2de