Tags: karinushka/paneru
Tags
chore: Adjust Cargo dependencies and bump version to v0.4.2 # New features - Query and subscribe to the internal state with JSON for easy integration with external tools like custom menubars. - Numbered virtual workspace navigation. - Smooth resizing with mouse movement while holding a modifier. - Event pump will no longer be throttling if in high power mode. Low power mode (on battery) will continue throttling as before. - Mouse warp feature improved with more realistic movement and intertia. - Vertical swipe gestures can now be disabled - if you want to use them for native macOS gestures. - Displays current virtual workspace number in the menubar. - Window resizing can now optionally stop cycling. # Notable Fixes - Correctly center mouse in a focused window. - Full-width mode now works as expected with stacked windows. - Swapping windows in a vertical stack works as expected. - Focus is properly recovered if a window is hidden, minimized, or destroyed. - Corret auto centering on scroll when using the `auto_center` option. - General swipe gesture fixes. - All key bind names are now parsed correctly (such as 'minus'). ## Contributors - @AndreiTich - @emreekici3 - @bensleveritt - @presi300 - @kiwnix - @mkdir700 - @zornfeuer - @oHaiyang
chore: Adjust Cargo dependencies and bump version to v0.4.1. # New features - Warp mouse near the screen edge, emulating displays to the left or right. This is similar to the https://github.com/mogenson/WarpMouse.spoon approach. (#178) - Saving & restoring of window state into a temporary file. This should make it less tedious to restart the window manager and having to reshuffle all the windows. - Nix-darwin module (#177) # Notable Fixes - Scrolling layout strips no longer causes inadvertant scrolling inside of the application windows. (#101) - Edge cases where a lost focus event would cause all window operations requiring a currently focused window to become unresponsive. - When starting Paneru would gather all the windows from all displays on the current display. This has now been fixed and the windows remain where they are. - Windows on separate displays would no longer be auto-dimmed. This allows watching YouTube on another display without the dimming effect. - Configuration file detection in XDG_CONFIG_HOME is now more robust. - Some endgecases with window sizing should be fixed. (#168) ## Contributors - @ToroidalFox - @nikosdouvlis - Fjx-dylanZ - @hakamadare - @chrisfinazzo - @CyrilPeponnet - @shidil - @emonadeo
chore: Adjust Cargo dependencies and bump version to v0.4.0. # New features - Virtual workspaces (#119) - Workspace change indicator in the upper corner. - Trackpad and scrollwheel navigation between virtual workspaces. - Send windows to another display with and without follow. # Notable Fixes - More robust mouse follows focus. - Handling of native fullscreen windows improved. - Floating/maximized/unmanaged windows are re-inserted in correct positions. - Detection of orphaned workspaces on display changes reworked with virtual workspaces. - Stopping of Paneru service if it fails to startup due to a missing AXUI priviledge. (#154) - Create LaunchAgents directory if it did not exist before. (#159) - Per window preferences are respected during re-insertion into the - Re-insert windows back into the strip according to preferences. (#157) ## Contributors - @Fjx-dylanZ - @HarryFalse - @acsandmann - @jake-carpenter - @nikosdouvlis
chore: Adjust Cargo dependencies and bump version to v0.3.7. # New features - Support native macOS tabs (i.e. Ghostty) - Scroll the layout strip with a mouse wheel. (#96) - Track light/dark OS theme and adjust the dim ratio. (#137) - Autodetect corner radius for window borders. - Configuration options are now grouped. - Add `window_hidden_ratio` which controls window exposure eagerness. # Notable Fixes - Better reparenting of workspaces during display changes and refresh of window sizes. - Hide window border in mission control and in fullscreen - More robust touchpad handling by matcing swipe touches by identity instead of iteration order. - Giving away focus will give it to the window closest to the center. - Correct window focus handling on rare transient AX query failure. - Defer window movements after the mouse click, to avoid moving the content under the cursor. - Correctly handle window properties after de-minimizing them. ## Contributors * @CyrilPeponnet * @OlshaMB * @Fjx-dylanZ * @Lemirq * @22ispencer
chore: Adjust Cargo dependencies and bump version to v0.3.6. # New features - Use native macOS dimming for windows without focus. - Soft-snap to center during scrolling if `auto_center` is on. - Snap layout strip scrolling to edges. `continuous_swipe` to disable. - Add per-window keyboard shortcut passthrough. (#112) - Add paneru to home manager packages when configured - Navigate to and between native fullscreen spaces. - Add window swipe inertia. - Configurable menubar height. Overrides auto-detection. - Experimental colored dim overlay and colored border for active window. - Add `swipe_gesture_direction` option (#117) - natural or not. # Notable Fixes - Add orphaned workspaces during display hotplug. - Prevent window loss from FreshMarker race. - Layout padding nits - display and window padding. - Race in auto_center for reshuffling windows. - Skip make_key_window on macOS 14 to prevent SIGABRT (#123) - No more flicker when clicking a window during touchpad swipe. - Retry unresolved windows during workspace change. - Skip tests during Nix installation. ## Contributors * @CyrilPeponnet * @skokenes * @presi300 * @ZeterMordio * @vargasd * @danielsilvaperez
chore: Adjust Cargo dependencies and bump version to v0.3.4. # New features * Expand stacked windows to full height when toggling full-width. * Add grid-based size/position for floating windows in rules. * Clamp trackpad swipe and update `continuous_swipe` option. * Independent edge padding for screen margins. * Add per-window width configuration option. * Configurable off-screen window sliver appearance. * Floating windows will visibly pop out during floating. * Focus/Move windows to other display using navigation keys. For example switching focus upwards without a window, will attempt to change focus to a display above. * Detect dock state and avoid placing active windows under it. * Add 'auto_center' option for keyboard navigation. This will automatically center the focused window on screen. * Add 'dont_focus' window parameter to spawn windows silently without popping them into focus. # Fixes * Re-insert window on fullscreen exit and retry unresolved windows. * Hide overlays during fullscreen windows. * Hide overlays during swipe to prevent compositor flash. * Allow managing of windows with AXDialog subrole. * Allow simultaneous resize when shrinking a moving window. * Smooth top-edge resize of stacked windows. * Resize all stacked siblings when cycling preset column widths. * Preserve stacked window heights when column scrolls off-screen. * Navigate to matching stack position when moving between adjacent stacks. * Make per-window `width` config actually resize the window on spawn. * Preserve floating/minimized state across app hide/show cycles. * Handle lost focus during despawn of a window. * Do not resize a window which is being moved. * Warping mouse into a window on another display. * Don't auto_center floating windows and let them be swipeable. * Regression of 'dont_focus' parameters. Now with unit tests (#92) * Force focus a first window in a strip on startup. * Do not insert minimized windows into layout at startup. * Regression in minimize/hide/float window. * When moving the window to other display, move the mouse as well.
chore: Adjust Cargo dependencies and bump version to v0.3.3. # New features * New `mouse_nextdislay` command to warp mouse to another display. * New `window_equalize` command to make a stacked column of window all the same height. # Fixes * Windows on multiple displays are now correctly updating their positions. This should remove weird ghost sizing when switching between displays. * Nudge off-screen windows slightly down. This should help against MacOS "catching" moving windows and moving them to another display. * Specifyign a too high index number was causing an out-of-bounds error when attempting to insert a window. These should not be possible in Rust :) * There was a small race condition during despawning of windows. * When maximizing a window, its previous size is now correctly saved. This allows a workflow where one temporarily maximizes a window and then sizes it down again. (#51) * Fixed jumping mouse behavior for "mouse follows focus". Now the mouse will no longer center on windows when the mouse is moving - only when the focus change was done by a keyboard command.
chore: Adjust Cargo dependencies and bump version to v0.3.2. This release completes the transition from the original flat Paneru architecture to a native, multi-threaded Bevy ECS (Entity Component System). Originally inspired by Yabai, Paneru utilized a dual-thread model: one thread received MacOS events and forwarded them to a handler thread for sequential processing. Under the old architecture, implementing true parallelism was difficult because Rust’s strict mutability tracking made it complicated to safely share and modify window state across multiple objects simultaneously. The move to Bevy ECS solves this by leveraging a system-based architecture. While a main Bevy thread captures macOS events, window management logic is now handled by independent systems. This asynchronous approach allows Paneru to seamlessly handle concurrent tasks such as animations, timers and timeouts.
PreviousNext