A macOS menubar app that makes your laptop feel like a real thing. Keyboard sounds and trackpad haptics.
Your Mac doesn't give you much to feel. Kyrr adds sound and haptics so it feels a little more like a real thing.
- Mechanical -- realistic keyboard clicks. Pick a switch profile (MX Blue, MX Red, Topre, Model M, or Typewriter).
- Melodic -- each key plays a note on the chosen scale.
- Wooden -- each keystroke strikes a wooden block, synthesized with inharmonic modal resonance.
Trackpad feedback as you move the cursor across UI elements, system-wide. Buttons, links, and checkboxes feel heavy. Toolbars, sliders, and window edges feel medium. Text fields, rows, and images feel light. Works with any app, including browsers. Requires a Force Touch trackpad.
- Spatial audio pans sound based on key position for a sense of keyboard width.
- Auto-on when headphones connect; auto-off when your mic starts recording (meeting-aware).
- Launch at login.
- Lightweight Swift + AVAudioEngine. No bundled samples, every sound is synthesized at runtime.
- Haptic hover works independently of sound. Turn off audio and keep the tactile layer, or use both.
- Open
Kyrr.xcodeprojin Xcode. - Run. Grant Accessibility access when macOS prompts (required for global keystroke and cursor monitoring).
- Type. Hover.
- KyrrAudioEngine.swift -- voice pool + per-mode buffer synthesis (modal wood chimes, parameterized mechanical profiles, melodic sine notes).
- KeyboardMonitor.swift -- global
NSEvent+CGEventTapfallback; dispatches by mode. - HapticHoverMonitor.swift -- global
CGEventTapon mouse-move; queries Accessibility API for element under cursor, fires tiered trackpad haptics on boundary crossings. - AudioDeviceMonitor.swift + MicrophoneMonitor.swift -- CoreAudio listeners for headphones and mic-in-use state.
- ControlPanelView.swift --
MenuBarExtraUI (main panel, About, Settings).
swift Scripts/generate-icon.swiftOverwrites Kyrr/Assets.xcassets/AppIcon.appiconset/ with freshly rendered PNGs at all required sizes.
MIT.