* fix: use UnsetWorkspaceName for empty input in workspace rename
Previously, empty input would set workspace name to empty string,
causing issues with Niri's unique workspace name requirement.
Now uses UnsetWorkspaceName action when input is empty.
* prevent false failed to load config toast on niri validation
Move error toast logic from StdioCollector.onStreamFinished to Process.onExited
so it only displays when niri validate actually fails (non-zero exit code),
not when stderr outputs early progress messages during config processing.
Swappy seems to not be quite as well maintained as satty, latest commit (ff7d641b8c) is a translation, before that the latest commit was in august 2025. Latest release is also from Aug 27 2025.
Satty however has had commits quite recently and releases as well.
- 590253c8bb - This was from yesterday
- https://github.com/Satty-org/Satty/releases/tag/v0.20.1 - Febuary 6th
Signed-off-by: Tulip Blossom <tulilirockz@outlook.com>
Previously, empty input would set workspace name to empty string,
causing issues with Niri's unique workspace name requirement.
Now uses UnsetWorkspaceName action when input is empty.
* 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>
* feat: add workspace rename dialog
- Adds a modal dialog to rename the current workspace
- Supports both Niri (via IPC socket) and Hyprland (via hyprctl dispatch)
- Default keybinding: Ctrl+Shift+R to open the dialog
- Pre-fills with current workspace name
- Allows setting empty name to reset to default
* refactor: wrap WorkspaceRenameModal in LazyLoader
Reduces memory footprint when the modal is not in use.
* dankbar: show niri workspace names
Keep labels aligned with niri indices and live renames.
* dankbar: prefix named workspaces with index
Use workspace index toggle to show index: name labels.
* workspaces: change size conditions for workspace names
---------
Co-authored-by: bbedward <bbedward@gmail.com>
* niri: Handle new Cast events
* bar: Add screen sharing indicator
Configurable like other icons; on by default.
* lockscreen: Add screen sharing indicator
- Configure position, VRR, orientation, resolution, refresh rate
- Split Display section into Configuration, Gamma, and Widgets
- MangoWC omits VRR because it doesnt have per-display VRR
- HDR configuration not present for Hyprland
- niri only for now
- requires quickshell-git, hidden otherwise
- Add, Edit, Delete keybinds
- Large suite of pre-defined and custom actions
- Works with niri 25.11+ include feature