The "Composer" serves as an augmentation to the OSX Desktop Environment. The primary objective is to grant users more control over the aesthetics and even functionality of their OSX desktop experience.
- MacOS Ventura (Apple Silicon)
- Turn off SIP
- Restart your computer in Recovery mode.
- Launch Terminal from the Utilities menu.
- Run the command
csrutil disable
. (Warning can be ignored) - Restart your computer.
- Turn on arm64e preview ABI (Apple Silicon only)
- Install the Ammonia tweak loader
- Run
git clone https://github.com/CoreBedtime/ammonia.git
- Run
cd ammonia && ./setup_frida.sh && sudo ./install.sh
- Run
- Run
make clean && make -j8 && sudo pkill -9 WindowServer
- Enjoy the magic.
Its actually pretty simple... We:
- Resolve unexported symbols using the libSymRez library, allowing the interception of "secret" functions within the macOS WindowServer (among other places).
- Initialize C and C++ function hooks using the Frida Gum DevKit and Objective-C runtime.
- Profit!
Configuration file location is a bit peculiar due to the macOS sandboxing system and the way it determines which programs can access which files. The chosen directory for config is
/Library/wsfun/
. This way, all programs (and most importantly windowserver) can access config data.
Configs are written in the TOML format . An example of every configuration option can be found below.
Example Configuration:
[menubar]
height = 55
enable_png = true
apple_rgba = [255,255,255,255]
text_rgba = [255,255,255,255]
[window]
sharp_corner = true
hide_shadow = false
decor_width = 20
decor_width_in = 20
decor = true
-
Dock hooks
- Hide Dock
- Position Dock
-
General hooks
- A way to make ALL tasks respect
window.sharp_corner
- A way to make ALL tasks respect
Preferably, reaching a level of customization akin to the diversity offered by custom shells on Windows and the extensive desktop options available on Linux. Imagine a world where macOS users have the freedom to tailor most aspects of their desktop environment to suit their unique preferences, just like their counterparts on other operating systems.