📰 Important News
- 💸 Reminder to support me & Loop by sponsoring the project!
- 🌐 Let us know if you are interested in localizing Loop to your language :)
- 💬 Join our Discord server!
- 🙇 Thank you to all contributors who helped make this release possible through bug reports, feature requests, PRs, and community support!
⚙️ Window Actions
- ✨ #785 Horizontal/vertical-only grow/shrink actions
- ✨ #797 New "Minimize others" action
- ✨ #820 Top/bottom/left/right screen switching
- ✨ #855 New horizontal fourths actions
- ✨ #870 Top/bottom/left/right focus navigation between windows
- ✨ #929 New action to focus the next window in a stacked configuration
- ✨ #939 New actions for larger/smaller while preserving aspect ratio
- ✨ #968 New fill available space action
⚡ Input & Triggers
- ✨ #786 Option to restart cycling from the first action
- ⚡ #798 Modularized trigger key detection with system window manager bug fixes
- ⚡ #802 Improved trigger key handling and removed notification usage throughout codebase
- ✨ #866 Side-independent trigger key support (left/right modifiers can be used independently)
- ✨ #897 Improved mouse event handling
- ✨ #953 Configurable trigger key timeout
- ✨ #955 Mouse calculations improved so radial menu can be opened & used at screen edges
🎨 UI/UX Enhancements
- ✨ #789 Focus window action picker popup on appearance
- 💄 #806 Increased Stage Manager strip size range with improved clamping
- 💄 #810 New Liquid Glass icons
- ✨ #814 Centralized accent color management with
AccentColorController - 💄 #851 UI improvements with Liquid Glass styling in radial menu
- 💄 #888 Increased maximum corner radius value in preview configuration
- ✨ #893 Lightweight IconView component for optimized icon rendering in Keybinds & Radial Menu tabs
- ✨ #900 Smoother and more responsive preview window animations
- ✨ #906 Previews can now use actual window corner radius
- 💄 #914 Reorganized menubar dropdown menu
- 💄 #918 Luminare UI updates
- ✨ #934 Fully customizable radial menu with visual guides; actions can be standalone or linked to keybinds!
- 💄 #935 Improved visual effect behaviors when inactive
- 💄 #950 Changed several default settings and fixed graphical bugs
- ✨ #964 Stashed windows will now reveal themselves when activated externally (e.g. Spotlight search)
- 💄 #966 Reworded "Restart" to "Relaunch" in update window
- 💄 #971 Additional preview configuration options with materialized radial menu
🔧 System Integration
- ✨ #842 Option to enable Mission Control gesture even when window snapping is enabled
- ⚙️ #849 Replaced event monitors and improved Accessibility permission handling
- ✨ #874 Windows now preserve proportions when moving between displays
- ✨ #906 Improved methods for loading private APIs in SkyLight
- ✨ #943 Precomputed padding for optimized window positioning
- ✨ #952 Update checks now verify minimum macOS version compatibility
- ✨ #957 Users are notified if their macOS version is no longer supported
🛠️ Developer Experience
- 📄 #813 Project organization improvements
- ✨ #917 Unified logging system with Scribe package
- 📄 #946 Added Internet Access Policy file
- 📄 #960 Updated issue templates
⚡ Performance
- ⚡ #930 System keybinds are now cached during keypress processing
- ⚡ #964 WindowEngine refactored to run on background threads, eliminating UI lag during window operations
🐞 Bug Fixes
- 🐞 #805 Fixed Luminare settings window not disappearing on macOS Tahoe
- 🐞 #812 Window frames are now matched before initializing Window objects
- 🐞 #848 Middle-click down events are no longer swallowed by Loop
- 🐞 #850 Fixed multi-monitor positioning by using
screen.displayBounds - 🐞 #860 Restored trigger delay and double-click functionality
- 🐞 #863 Restored middle-click trigger support
- 🐞 #864 Delete and Help keys now recognized as special Fn keys
- 🐞 #865 Left mouse drag events now properly reveal stashed windows
- 🐞 #873 Handle special keys that are modified by the fn modifier
- 🐞 #886 Fixed potential memory leak in window drag detection
- 🐞 #905 ListenEvent is now reset when requesting Accessibility access
- 🐞 #915 Picture-in-Picture windows are now properly handled
- 🐞 #916 Improved settings window management
- 🐞 #940 Fixed file picker performance issues
- 🐞 #941 TriggerKeycorder now force-closes when window loses focus
- 🐞 #942 Windows with non-window roles are no longer blocked from resizing
- 🐞 #947 Screen switching actions now start from the screen containing the window
- 🐞 #948 Fixed double-click trigger
- 🐞 #951 Prevented rapid action changes for
noSelectionactions - 🐞 #954 Undo functionality now works even when preview is disabled
- 🐞 #959 Fixed event monitor memory leaks
- 🐞 #970 Windows are now correctly focused when system window manager is enabled
🌏 Localization
- 🎌 Loop now supports Japanese!
- 🌐 #868 Add context to many localization keys
- 🤖 #872 Automated Crowdin integration for more frequent translation updates
Minimum macOS version: 13.0