Show HN: Omacosy – Omarchy-style tiling desktop for macOS, no SIP
Omacosy: A Minimalist, Omarchy-Inspired Tiling Environment for macOS
Omacosy is a comprehensive desktop overhaul for macOS that brings an "omarchy" aesthetic to the Apple ecosystem. It integrates tiling window management, a custom status bar, and fluid navigation—all without requiring the disabling of SIP (System Integrity Protection).
🚀 Core Capabilities
The project transforms the macOS experience into a streamlined, keyboard-driven workflow. Key features include:
- Tiling Logic: Implements Hyprland's dwindle layout.
- Super Key: Full integration of a dedicated Super key for shortcuts.
- Custom Status Bar: A unified process handling the bar, sliders, popups, and screen dimming.
- Navigation: Focus-follows-mouse (FFM) and trackpad-based workspace switching.
- Visuals: Live workspace previews (Mission Control style), window border rings, and synchronized theming (including wallpaper).
System Architecture
The environment is composed of six self-built Swift binaries managed within a single repository.
📉 Performance & Resource Footprint
Omacosy is designed for efficiency. The total physical memory footprint (as seen in Activity Monitor) idles at approximately 157MB.
While the Resident Set Size (RSS) appears higher (), this is due to the way macOS counts shared system frameworks across multiple processes. The actual memory cost can be expressed as:
Resource Breakdown (Dual Display Setup)
| Component | Footprint | RSS | Note |
|---|---|---|---|
omacosy-overview | 36MB | 46MB | Varies based on window cache |
omacosy-bar | 32MB | 55MB | Draws per-screen |
AeroSpace | 24MB | 85MB | Manages multiple workspace sets |
Karabiner | 24MB | 61MB | Comprised of 4 processes |
omacosy-borders | 19MB | 29MB | Overlay draws per-screen |
aerospace-swipe | 13MB | 22MB | Handles raw touch data |
omacosy-ffm | 10MB | 24MB | Focus-follows-mouse logic |
The dwindle daemon is no longer a resident process; its logic is now handled by a lightweight omacosy-helper that triggers only upon focus changes.
Note on Variability:
omacosy-overviewfluctuates between 9MB and 37MB as it caches half-resolution window captures.AeroSpacetends to increase in memory usage over longer uptimes.- Packaging the bar as an
.app(to enable Wi-Fi SSID retrieval) adds a negligible overhead.
🛠 Installation & Maintenance
This setup is specifically tailored for macOS 26 (Tahoe) on a MacBook Pro with one external monitor. While it uses generalized roles for notch detection and display handling, it is primarily optimized for the author's specific hardware.
Initial Setup
To install, clone the repository into the specific directory below to avoid TCC (Transparency, Consent, and Control) restrictions. macOS prevents launchd services from accessing ~/Documents, ~/Desktop, or ~/Downloads.
# Clone to the recommended local share directory
git clone https://github.com/paulsp94/omacosy.git ~/.local/share/omacosy
cd ~/.local/share/omacosy
./install.sh
Updating the System
The omacosy-update tool manages synchronization. It will refuse to proceed if you have local edits or if your branch has diverged.
omacosy-update: Pulls latest changes and re-runs the installer.omacosy-update --check: Checks for available updates without applying them.
The install.sh script is intelligent: it only rebuilds binaries with changed source code and restarts the necessary agents.
🔐 Permissions & Privacy
Because a window manager requires deep system access, the following grants are necessary. If a permission is denied, the corresponding feature will simply disable itself.
| Grant | Requested By | Purpose | Consequence of Refusal |
|---|---|---|---|
| Accessibility | AeroSpace, Swipe, FFM | Moving, resizing, and focusing windows. | Tiling functionality will not work. |
| Input Monitoring | Karabiner, Swipe | Remapping Caps Lock; reading raw trackpad data (required for macOS 26). | Super key and swipes will fail. |
| Screen Recording | omacosy-overview | Creating thumbnails for the workspace overview. | No live previews in overview. |
| Bluetooth | omacosy-bar | Displaying adapter power and paired devices. | Bluetooth pill will be empty. |
| Location | omacosy-bar | Retrieving the current Wi-Fi network name. | Wi-Fi name will not be displayed. |
Privacy Note: The bar makes a single external network call for weather data. No GPS coordinates are ever requested or tracked. Additionally, Karabiner-Elements will require the approval of its own driver extension.