* feat: add osd toggles to search index
this commit also regenerates the search index
* add newline at end of translations file
* ran prek to fix the file :)
* Add audioWheelScrollAmount setting
* Add UI to configure volume change amount for Media Player widget
* Let Media Player widget use the configured volume change on wheel event
* feat: decouple track art downloads into new TrackArtService
* feat: beautify media playback osd with track art
* fix: bug when switching from art to no art
* fix(vpn-widget): correct tooltip positioning for bottom bar alignment
- Calculate tooltip Y position based on bar edge (bottom vs top)
- Position tooltip above bar when edge is bottom to prevent overflow
- Account for tooltip height when positioning on bottom edge
- Use proper screen reference for consistent positioning across displays
* fix(VpnPopout): use correct screen height for popup sizing
- Fix popup height calculation to use the assigned screen property
instead of the global Screen object
- Prevents incorrect positioning when multiple screens are present
- Fallback to Screen.height if screen property is not set
* fix(widgets): close DankPopout when screen is removed
- Add Connections handler to monitor Quickshell.onScreensChanged
- Automatically close popout if its assigned screen no longer exists
- Prevent orphaned popouts when displays are disconnected
This will optionally include one or two files into the Niri conf for
dms-greeter:
- `/usr/share/greetd/niri_overrides.kdl` (for building into a system image)
- `/etc/greetd/niri_overrides.kdl` (for local overrides)
This enables a distro or a system administrator to easily add their own
customizations to the dms-greeter Niri configuration.
Note: Niri next includes https://github.com/YaLTeR/niri/pull/3022 which
can make this a whole lot simpler: we're testing for the existence of
files and optionally adding `include` lines within the dms-greeter shell
script, but in the future it will be possible to simply use `include
optional=true` which we can just append unconditionally.
Lastly, I deduplicated the line that spawns the actual greeter by
appending that unconditionally at the end.
* feat(niri): Add drag-and-drop workspace reordering
Add interactive drag-and-drop reordering for Niri workspace indicators
with smooth animations matching the system tray behavior.
- Add moveWorkspaceToIndex() to NiriService for workspace reordering
- Implement drag detection with 5px threshold
- Add shift animation for items between source and target
- Clamp drag offset to stay within workspace row bounds
- Reset drag state when workspace list changes during drag
- Visual feedback: opacity change, border highlight on drag/drop target
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
* feat(settings): Add workspace drag reorder toggle
Add workspaceDragReorder setting to enable/disable workspace
drag-and-drop reordering. Enabled by default, only visible on Niri.
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
---------
Co-authored-by: Claude Opus 4.5 <noreply@anthropic.com>