* fix: Add browserPickerViewMode persistence to settings spec
The BrowserPickerModal (used by xdg-open feature) was not persisting
view mode selection between sessions. While the modal had code to save
the view mode preference, the browserPickerViewMode property was not
registered in SettingsSpec.js, preventing it from being saved to disk.
Added browserPickerViewMode and browserUsageHistory to SettingsSpec.js
to ensure user's view preference (list/grid) is properly persisted.
Fixes view mode reverting to grid after restarting DMS/QuickShell.
* fix: Add view mode persistence for both browser and file pickers
Extended the fix to include both picker modals used by xdg-open:
BrowserPickerModal (URLs):
- Added browserPickerViewMode and browserUsageHistory to SettingsSpec.js
- Already had save logic in BrowserPickerModal.qml
AppPickerModal/filePickerModal (files):
- Added appPickerViewMode and filePickerUsageHistory to SettingsSpec.js
- Added appPickerViewMode and filePickerUsageHistory properties to SettingsData.qml
- Added viewMode binding and onViewModeChanged handler to filePickerModal
Both modals now properly persist user's view preference (list/grid) and
usage history between sessions.
Fixes view mode reverting to default grid after restarting DMS/QuickShell
for both 'dms open https://...' and 'dms open file.pdf' workflows.
* greetd: add lockScreenShowProfileImage option
* lockscreen/greetd: for non 24 hour formats, add 0 in front of single digit hours to ensure that everything is always centered properly - previously, it would only appear centered if on a double digit hour. also add getEffectiveTimeFormat function to GreetdSettings.
* clock: made pad 12 hour formats optional
---------
Co-authored-by: bbedward <bbedward@gmail.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.
- Aggregate plugins/extensions in new "all" tab
- Quick tab actions
- New tile mode for results
- Plugins can enforce/require view mode, or set preferred default
- Danksearch under "files" category
Add ability to immediately power off monitors when the lock screen
activates, controlled by a new setting "Power off monitors on lock".
Uses a 100ms polling timer to detect when the session lock actually
becomes active, then invokes compositor-specific DPMS commands.
For niri, uses the new power-off-monitors action via niri msg CLI
with socket fallback.
Wake on input: first input after lock arms wake, second input
actually powers monitors back on while keeping the lock screen visible.
Closes#1157
* niri: Handle new Cast events
* bar: Add screen sharing indicator
Configurable like other icons; on by default.
* lockscreen: Add screen sharing indicator
* feat: add configurable app ID substitutions setting
* feat: add live icon updates when substitutions change
* fix: cursor not showing on headerActions in non-collapsible cards
* fix: address PR review feedback
- add tags for search index
- remove hardcoded height from text fields
Steam Proton games use window class steam_app_XXXXX. Steam installs
icons as steam_icon_XXXXX. This maps between them so actual game
icons display instead of generic controller fallback.