Commit Graph
670 Commits
Author SHA1 Message Date
bbedward 4b0dfa67a0 desktop: add right click context menu for actions on compositors where
it doesnt interfere, with a setting to turn it off

Some compositors like kwin/labwc/sway cannot have this without breaking
some built in layering they do.

niri can have this, but for focus follow mouse it may need to be disabled.

fixes #3717
2026-10-07 15:18:39 -04:00
Marlon Kranz 72c23161e7 fix(hyprland): write window rules Hyprland 0.56 accepts, keep DMS windows opaque (#3655)
* fix(hyprland): write window rules Hyprland 0.56 accepts, keep DMS windows opaque

The Lua window-rule writer emitted match keys and effects Hyprland 0.56
does not know: `floating`/`pinned`/`initialised` as match keys and
`noborder`/`norounding` as effects. It now writes `float`/`pin` and
`border_size = 0`/`rounding = 0`; the parser still reads the old
spellings, so existing files load and are rewritten on the next save.
"No Rounding" now suppresses the corner radius so a rule has one
`rounding` key.

The rule editor no longer offers fields the Hyprland writer drops
(Window Opening output/workspace, Size Constraints, the Initialised
match), and Save is disabled while only one half of a move or size
pair is filled. Every window-rule write now reloads the compositor
through one helper, which also covers Hyprland.

DMS windows draw their own translucent background, so any compositor
opacity rule or decoration opacity multiplied on top of it. DMS now
keeps a hidden rule for its own app id: `opaque = true` on Hyprland
(applied after rule and decoration opacity, independent of order, and
leaving the window's own alpha alone) and `opacity 1.0` on niri, which
the store keeps last. It is re-added on start when missing and hidden
from the rules list and the focused-window menu.

Compositor layout gains a Hyprland "Window opacity" slider writing
decoration.active_opacity/inactive_opacity; 100 leaves the user's own
config in charge.

HyprlandService.reloadConfig queues callbacks: Proc keeps one callback
per id, so a reload requested while the layout writer's reload was
pending dropped its callback and left layout generation stuck.

* fix(windowrules): cap corner radius at 20

Hyprland 0.56's Lua window_rule rejects rounding above 20 ("value 24
is more than the maximum of 20") and the rule loses its rounding. The
Hyprland writer now clamps to 20, and the editor slider stops at 20
for every compositor.
2026-10-07 14:09:49 -04:00
Spyros Psarras 66e37ff843 network monitor: add hide when idle and compact mode options (#3569)
* network monitor: add hide when idle and compact mode options

* network monitor: keep the idle widget out of center layout spacing
2026-10-07 13:59:21 -04:00
bbedward 6f43ece99f control center: let grid drops land where dropped 2026-10-07 13:45:21 -04:00
bbedward b42fe6643f perf: gate idle work behind feature and capability state 2026-10-07 11:55:29 -04:00
Lars Artmannandbbedward 8e59341c50 feat(notifications): timed per-app popup mutes (1h / 4h) (#3628)
* feat(notifications): timed per-app popup mutes (1h / 4h) with expiry

* fix test assertions

* notifications: let a timed mute expire without taking the rule's other settings

---------

Co-authored-by: bbedward <[email protected]>
2026-10-07 10:25:38 -04:00
purian23 650b731164 feat(island): new workspace switcher activity 2026-10-07 03:20:25 -04:00
bbedward 98bf56cbcd windows: drop the qt decoration env, add a title bars toggle and go frameless for own chrome
fixes #3679
fixes #3572
2026-10-06 22:57:21 -04:00
bbedward fd52e0af59 qs: add DankBar and DankDash compatibility shims 2026-10-06 21:07:11 -04:00
bbedward ebf9c5ba7b lock: keep the ime commit sink off for in-process input method modules
ref #3669
2026-10-06 10:11:16 -04:00
bbedward ca93837149 lock: allow anchoring widgets to center, x, and y axises 2026-10-06 09:05:57 -04:00
Aldair Meneses c8d9a8617e bar: add configurable middle and right click actions on empty space (#3582)
Revives PR 2710 using in-process PopoutService toggles per review, extended
with a right click action and a follow-mouse option for anchored popouts.
2026-10-06 02:11:21 -04:00
bbedward f8b25bc43c launcher: add an option to disable history
widgets: delete plugin compatibility shims that arrived after 1.6
2026-10-05 16:58:39 -04:00
bbedward ccbf1d38ad widgets: bump qml-common, rename Dank* prefixed widgets to D, add
deprecation notice to plugin compatibility shims

- When qml-common became a thing, we left qs.Widgets shims in place for
  plugin compatibility
- It's annoying to need to maintain them when qml-common has any change,
  add a warning so we can safely deprecate them in the future
- One shot rename the common stuff to D to make it shorter and nicer to
  write
2026-10-05 16:47:19 -04:00
bbedward f6d0701505 matugen: more clear failure details 2026-10-05 15:05:25 -04:00
bbedward 4b285323a1 i18n: sync 2026-10-05 14:45:34 -04:00
bbedward 0ac7233c4d settings: one-line sidebar hints, slimmer rows
wellbeing: page through past weeks in the chart
2026-10-05 14:42:19 -04:00
euletheia 2f5a438e1e feat(gamma): add exceptions (fullscreen and excluded apps) 2026-10-05 14:01:12 -04:00
bbedward 9b7c0eddd7 greeter: own widget list, state-driven sync page, clock typography fix 2026-10-05 13:39:49 -04:00
bbedward d11075d154 i18n: sync 2026-10-05 11:27:43 -04:00
bbedward 7eee3dcbe7 window rules: percent sizing for niri column width and height, explain float default
fixes #3687
2026-10-05 09:56:35 -04:00
purian23 d8113d2a02 add(digital wellbeing): ipc targets for tracking status & limits 2026-10-05 03:00:11 -04:00
bbedward 076288604e widgets: share the lock editor with the desktop, adjust overlapping
face, share desktop clock widget with lock screen
2026-10-04 22:23:14 -04:00
bbedward c2962f8239 lock: give the editor its own grid and make the grid keys reachable 2026-10-04 18:43:45 -04:00
bbedward d7dc8ae5d2 lock: allow customization, including any desktop widget, to be added and
arranged on lock screen
2026-10-04 15:46:56 -04:00
apollo79 30c7171836 timepicker: align with m3e spec (#3689) 2026-10-04 13:32:30 -04:00
Huỳnh Thiện Lộc 4ca2a8ef99 feat(dock): push neighboring icons apart on magnification (#3681)
* feat(dock): push neighboring icons apart on magnification

* fix(dock): cap magnification expansion and disable it in taskbar mode

* fix(dock): scale pushed icon offsets to the capped magnification expansion

* fix(dock): avoid binding loop when reading expansion ratio
2026-10-04 10:44:58 -04:00
purian23 b48fce0447 refactor(control center): free the edit button and misc tweaks 2026-10-04 00:55:31 -04:00
purian23 585827e7e4 feat(workspace): add dots workspace indicator styles & compact mode 2026-10-03 20:49:25 -04:00
purian23 184a16c2b4 feat(theme): add support for DMS bold color spec variants 2026-10-03 16:43:38 -04:00
purian23 19abc7dc96 feat(island): state pulses, mic, privacy & duo status glyph activities
- caps lock, power profile, idle inhibitor and charging pulse in the island
- microphone mute and volume as a level transient
- privacy slot while mic, camera or screen share is in use
- duo battery style: arc around the network glyph with signal dots
2026-10-03 15:28:06 -04:00
Marlon Kranz 51f115f11e fix(notifications): edit rules from the menu instead of deleting them (#3670)
* fix(notifications): edit rules from the menu instead of deleting them

A notification rule can set an action and Bypass DND together, but
Unmute and Block in Do Not Disturb spliced the whole rule, dropping the
other setting. They now reset only their own field, and a rule is
removed once it no longer does anything (action and urgency default,
no bypass). Mute and Allow in Do Not Disturb set their field on the
app's existing rule instead of appending one that first-match policy
would shadow.

The menu now only reads and edits enabled, exact rules on the app name
or desktop entry. It used to match any rule whose pattern equaled the
app name, including summary, body, contains and regex rules, and could
delete disabled ones.

Also adds a Copy item to the notification menu on popups and center
cards, copying the summary and body as plain text.

* fix(notifications): let mute apply alongside other rule actions

Rule actions are first-match, so a mute rule behind an app's existing
rule (e.g. No history) never applied while the menu showed Unmute.
Mute is now evaluated like Bypass DND: any matching enabled mute rule
disables the popup, and the other actions stay first-match, so No
history and Mute both apply.

* fix(notifications): skip the sound for dropped and muted notifications

The notification sound played before the check that dismisses a
notification with neither a popup nor a center entry, so dropped
notifications (transient while muted, Popup only plus Mute) still made
a sound. Play it only for notifications that are kept, and not when a
mute rule applies, like Do Not Disturb.
2026-10-03 14:39:48 -04:00
bbedward 2a8368a8a4 media: add album art to bar widget
settings: keep the page still when a rebuilt row drops focus

fixes #3673
2026-10-03 12:23:57 -04:00
bbedward 49d7d6b2fe media: bar lyric line, dbus position re-anchor, keep upcoming lines in view
closes #3652
fixes #3650
2026-10-03 07:07:52 -04:00
purian23 d9d9dc21d2 feat(system-update): implement floating window variant for system updates 2026-10-03 02:16:30 -04:00
Alexander 1e1abb0206 theme: use the current dms executable for matugen (#3648) 2026-10-02 19:07:41 -04:00
bbedward c559a5250c wallpaper: material presets with seed color and dynamic backdrop 2026-10-02 16:51:34 -04:00
bbedward e4ec3582b4 settings: raised content pane and surface tier ladder instead of dividers 2026-10-02 11:53:15 -04:00
purian23 e473c92825 feat(overflow): automatic & per/app dbar widget options 2026-10-02 00:34:09 -04:00
purian23 de1c5c99fa feat(settings + keyboard): core clean up & keyboard driven overhaul in settings 2026-10-01 19:34:28 -04:00
bbedward c668ab9fdf cc: place popout menus by the host window's margins 2026-10-01 18:44:12 -04:00
bbedward d77c4f6298 wellbeing: add Digital Wellbeing, with a built-in dash plugin 2026-10-01 15:15:37 -04:00
LOSTDATA 738e19715e battery: pulse the critical bar indicator (#3596)
* battery: pulse the critical bar indicator

* battery: add critical pulse toggle
2026-10-01 02:04:14 -04:00
purian23 a8623e3ccb settings: cleanup pass to update shared surface tier roles 2026-09-30 21:35:40 -04:00
bbedward 5b4faef744 frame: surfaces opened over a stacked modal paint their own chrome
fixes #3638
2026-09-30 20:57:39 -04:00
bbedward c4ea1a1dbd frame: collapse a hidden bar's band to the gutter
fixes #3630
2026-09-30 20:57:39 -04:00
bbedward adccc05397 cc: fixed footer or header, customizable with any widgets, blah blah 2026-09-30 12:46:53 -04:00
purian23 73759d5752 refactor(control center): redesign update #8 2026-09-30 00:15:05 -04:00
bbedward db903801c3 osd: more position options, hookup sheets to some
fixes #3629
2026-09-29 23:31:28 -04:00
bbedward 219a95d869 notifications: edit rules in a dialog like window rules
fixes #3615
2026-09-29 18:08:35 -04:00