Alright — below is a complete, implementation-oriented design package for macwmfx.
No branding, no vendor ideology. This is written like a real compositor / WM effects engine spec.
Declarative, layered, reloadable. Think picom + sway + kwin rules, but for Quartz / CA.
{
"$schema": "https://macwmfx.dev/schema/v1.json",
"global": { },
"themes": { },
"rules": [ ],
"effects": { },
"animations": { },
"debug": { }
}"global": {
"enabled": true,
"scale": 1.0,
"animationSpeed": 1.0,
"vsync": true,
"liveReload": true,
"backend": "quartz"
}"rules": [
{
"match": {
"app": "com.apple.Terminal",
"role": "main",
"focused": true
},
"apply": {
"theme": "glass-heavy",
"effects": ["blur", "shadow", "border"],
"animationProfile": "snappy"
}
}
]appbundleIdwindowTitlerolefocusedworkspacedisplayfloatinggrouped
"effects": {
"blur": {
"radius": 30,
"saturation": 1.2,
"tint": "#00000022",
"noise": 0.04
},
"shadow": {
"radius": 40,
"offset": [0, -12],
"color": "#00000088"
},
"border": {
"width": 2,
"color": "#88c0d0",
"radius": 14
}
}"animations": {
"snappy": {
"duration": 0.18,
"curve": "easeOut",
"spring": false
},
"springy": {
"spring": true,
"mass": 1,
"damping": 14,
"stiffness": 160
}
}"themes": {
"minimal": { },
"glass-heavy": { },
"brutalist": { },
"retro": { }
}Themes override effects + colors + geometry.
Below is how each visual category maps to real primitives.
CALayer.cornerRadiusCAShapeLayer.maskCGPathCreateWithRoundedRectCAConstraintLayoutManager
- Inject a root CALayer above each window’s content
- Apply a mask layer for non-rectangular shapes
- Animate geometry via
CABasicAnimation - Use multiple layers for asymmetric corners
CAShapeLayer.strokeColorlineWidthstrokeEnd(animated borders)CAGradientLayer
- Border is a sibling layer to content
- Animated borders via stroke animations
- Multi-layer borders for glow stacks
- Blend modes via
compositingFilter
CALayer.shadowRadiusshadowPathshadowOpacityshadowColor
- Replace default shadow with custom shadow layer
- Animate shadow based on focus
- Multi-shadow stacks via layered CALayers
- Fake depth via opacity + blur radius
CAFilter(Gaussian blur)CABackdropLayerNSVisualEffectView(if embedding)compositingFilter
- Backdrop blur layer inserted behind content
- Region-based blur via masks
- Noise overlay via bitmap layer
- Variable blur via gradient mask
- Custom CALayer chrome strip
CATextLayer- Hit-testing via transparent overlay
- Event forwarding
- Hide native chrome
- Rebuild chrome entirely in CALayer
- Custom control hit-regions
- Animate chrome independently of content
- Insets via layout constraints
- Inner shadows via inverted shadow masks
- Edge fade via gradient mask
- Insert inner container layer
- Content clipped to rounded rect
- Scroll edge glow via animated gradients
CAAnimationGroupCASpringAnimationCATransactionCAMediaTimingFunction
- Central animation scheduler
- Interruptible animations via layer presentation state
- Per-window animation profiles
- Global speed scaling
- Layer opacity
- Saturation filters
- Glow layers
- Z-position
- Focus state toggles effect stack
- Background windows dimmed via saturation filter
- Active window lifted via z-position + shadow
- Cursor proximity via event tap
- Shared parent CALayer
- Group masks
- Connector layers
- Create virtual “group layer”
- Attach windows as sublayers
- Shared blur / glass backdrop
- Animated regrouping
zPosition- Perspective transforms
- Depth fog via gradient overlays
- Faux-3D stacking
- Parallax transforms
- Atmospheric depth via opacity curves
CIColorControls- Tint overlays
- Color matrices
- Palette injection
- Live theme switching
- Wallpaper-aware color sampling
- Core Image filters
- Layer filters
- Compositing filters
- Per-window filter chains
- Debug visualizers
- Retro modes via scanline textures
{
"effects": {
"shadow": { "radius": 12, "opacity": 0.2 },
"border": { "width": 1, "color": "#444444" }
},
"animations": {
"default": { "duration": 0.12 }
}
}{
"effects": {
"blur": {
"radius": 40,
"saturation": 1.3,
"noise": 0.06
},
"shadow": {
"radius": 50,
"offset": [0, -18]
}
}
}{
"effects": {
"border": {
"width": 4,
"color": "#ffffff"
},
"shadow": {
"radius": 0
}
},
"animations": {
"default": { "duration": 0 }
}
}{
"effects": {
"filters": {
"scanlines": true,
"grain": 0.12,
"chromaticAberration": 0.04
}
}
}macwmfxd
├── Rule Engine
├── Window Tracker (AX / CGS)
├── Layer Injector
├── Effect Graph Builder
├── Animation Scheduler
├── Config Loader (live reload)
└── Debug Overlay
- Every window becomes a CALayer tree
- Native drawing untouched
- Effects are layered around content
- Config → effect graph → layer mutations
macwmfx is:
- not a theme engine
- not a UI framework
- not an app
It is a compositor-level visual rules engine that treats windows as material objects.
If you want next:
- I can design the effect graph DSL
- map exact private SkyLight entry points
- or help you prototype a single effect pipeline (blur + mask + shadow) cleanly
You’re designing something real — and this spec is viable.