* feat(settings): add option to suppress config reload toast (#2730)
Add a toggle in Settings → Compositor Layout to disable the 'config reloaded' toast for Niri and MangoWC compositors. Session setting showConfigReloadToast defaults to true.
* chore: update settings search index for config reload toast
* refactor(settings): rename 'Compositor Notifications' to 'Compositor Toasts'
* fix(settings): reuse existing I18n.tr('Notifications') translation
* Add option to ignore app-requested notification timeout
Notifications may include an expireTimeout hint that currently takes
precedence over the configured Low/Normal/Critical durations, so
popups can disappear earlier (or later) than expected with no
interaction involved. Add notificationIgnoreAppTimeout (default off,
matching the notification spec) to let users force their own
durations regardless of what the app requests.
* Update settings search index for new timeout override toggle
* feat(power): lower refresh rate on battery (#1203)
Add a Power & Sleep setting that lowers eligible displays to 60 Hz on battery and restores their previous mode on AC power.
Skip displays without an available 60 Hz mode, displays with a single refresh-rate option, current modes at or below 60 Hz, and VRR-enabled outputs.
Apply niri changes at runtime through output commands and use wlr-output-management as fallback.
* fix(quickshell): debounce display refresh sync
* chore: regenerate settings_search_index.json for pre-commit CI fix
* fix: translator context is missing for lowerDisplayRefreshRateOnBattery
* fix: activeDisplayProfileModes is missing from SettingsSpec
* feat: added guard to syncRefreshRates function
* refactor(display): move refresh sync listeners to display service
* fix(display): publish active profile modes after config write
* feat(display): persist previous refresh modes
* fix(display): route refresh mode writes through compositor backends
* fix(display): detect preferred niri refresh modes
* some small cleanups
---------
Co-authored-by: bbedward <bbedward@gmail.com>
- Provide more status feedback
- Allow 2 fprint tries within 10 seconds for DMS-managed PAM
- Updated dms greeter docs
Note: distro-managed PAM takes precedence and may use different limits.
DMS auth changes remain conditional on greetd being installed.
Fixes#2853
Port 1.5
- Added UI component & popout settings to manage ignored packages
- Added CLI support available in danklinux docs
Fixes: #2827Closes: #2344, #1741
Port 1.5
* fix(media): use system colours in player instead of album cover accent
Closes#2831
Removes ColorQuantizer-based album art accent extraction from
MediaAccentService. All accent properties now return Theme.primary
and Theme.onPrimary directly, so the Dank Dash player always
matches the system colour scheme.
Blame: ee6f7b47 (introduced MediaAccentService & ColorQuantizer)
d799175c (tweaked seekbar accent colours)
a62ae336 (further integrated accent into player/album art)
c44ffae7 (monochrome art edge case fixes)
* feat(media): add toggle for album art accent colours (#2831)
Adds mediaUseAlbumArtAccent setting (default: off) to Settings.
When enabled, MediaAccentService extracts accent from album art
via ColorQuantizer. When disabled, uses Theme.primary.
Toggle is in Settings > Media Player.
* fix: use american english spelling (colour -> color)
Port 1.5
* refactor(battery): restore status list layout and add individual notification types
* settings/battery: fix RTL display of top tablular-like view
---------
Co-authored-by: bbedward <bbedward@gmail.com>
this makes use of the existing getFilteredScreens function to allow
users to specify which displays the lockscreen should appear on. prior
to this change, it was "all" or just one.
* feat(bar): separate workspace appearance for unfocused displays
Add a toggle in the Workspace Appearance card to style workspace
indicators independently on displays that aren't currently focused.
The card is split into Focused Display and Unfocused Display(s) tabs.
When the new master toggle is off (default), unfocused displays inherit
the focused settings, preserving existing behavior. When on, unfocused
displays use their own colors (focused/occupied/unfocused/urgent) and
focused border (enable, color, thickness).
WorkspaceSwitcher resolves the focused monitor per compositor and routes
color/border resolution through isFocusedMonitor/useUnfocusedAppearance.
* refactor(bar): address review feedback for unfocused workspace appearance
- Consolidate focused-monitor lookup into BarWidgetService.getFocusedScreenName(),
adding Mango support, and drop the duplicate compositor switches in
WorkspaceSwitcher (effectiveScreenName + isFocusedMonitor now use the helper).
- Extract the shared color and border options into reusable
WorkspaceAppearanceColorOptions and WorkspaceAppearanceBorderFields components
so the focused and unfocused tabs no longer duplicate the layout.
- Gate the unfocused-display options on BarWidgetService.focusedScreenDetectionSupported
and show an explanatory note on compositors without focus detection (e.g. labwc),
instead of silently no-opping.
* feat(battery): add options to toggle percentage and remaining time
* fix(battery): add SettingsSpec entries and combine verticalDisplayText
* fix(battery): format vertical battery remaining time as HH\nMM and center alignment
* fix(battery): remove percent sign from vertical layout when time is enabled
* feat(wallpaper): support configurable background color
* chore(translations): update settings search index
* revert(wallpaper): keep Pad naming instead of Center
* feat: add battery settings tab and update battery widget interactions
* fix: import Quickshell.Io in BatteryTab.qml to fix Process type compilation error
* feat: move battery tab under media player and add notify when charge limit reached option
* chore: change default notification settings to false
* feat: move battery tab under Power & Security section in settings
* feat: add notification type button selection for battery alerts
Commit e3dbaed started skipping all system sounds (notifications, volume,
power, login) whenever an MPRIS player is playing, with no way to opt out.
Users who rely on notification sounds while listening to music lost them
entirely.
Add a 'Mute During Playback' toggle (SettingsData.muteSoundsWhenMediaPlaying,
default true) so the current behaviour is preserved, but users can disable
it to restore audible sounds while media is playing. The media check is
wrapped in shouldMuteForMedia(), which gates on the new setting before
querying the active player.
Closes#2616
- Add a full popout Notepad experience w/new layout settings
- New ability to choose the left or right side of the screen
- Add more safegaurds to preserve user data throughout
- New banner to show file reload/conflict handling
- New extensionless file support
- Polish settings with gap controls, compact buttons, and shortcuts help