Commit Graph
5024 Commits
Author SHA1 Message Date
apollo79 2b01926e31 settings: add a link to the source code in plugin details (#3690)
* settings: add a link to the source code in plugin details

* style: remove unnecessary whitespace, add empty line

* show link to the plugin source instead of explanation

* fix: check for empty string instead of undefined
2026-10-04 21:36:37 -04:00
bbedward 18610b8972 lock: size the auth box to the field and snap resizes to square 2026-10-04 18:58:11 -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
dms-ci[bot] d3936e1742 nix: sync flake.lock to dank-qml-common submodule 2026-10-04 21:50:18 +00:00
bbedward 23e8bb5935 dash: rebuild the calendar event editor on settings rows
notifications: paint the popup and toast surface once
2026-10-04 17:49:25 -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
EmiOnFlux 375aa2f492 add portage backend (#3676)
* add portage backend

* portage: add excludes
2026-10-04 15:10:36 -04:00
apollo79 30c7171836 timepicker: align with m3e spec (#3689) 2026-10-04 13:32:30 -04:00
bbedward 27f7a1b67b tests: drop the surface fixtures and the ui source slicing tests 2026-10-04 11:28:34 -04:00
Huỳnh Thiện Lộc d8fa3f609d fix(dock): preserve focused indicator in overview mode (#3680) 2026-10-04 11:08:18 -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
arfan c79127c1bb theme: expand vscode syntax and semantic token colors (#3686)
Add missing TextMate scopes (storage, entity namespaces/types) and
semantic tokens (method, struct, interface, enum, typeParameter,
enumMember, namespace), and remap roles to theme-derived hues so
keywords, strings, types and methods read distinctly instead of
flat white.
2026-10-04 10:43:37 -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 d025ccdfc8 refactor(overflow): simplify dbar widgets overflow menu 2026-10-03 18:35:26 -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 27989967b8 media: build the bar lyric line from the word list, not the time-sorted cues 2026-10-03 12:43:31 -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
bbedward 48de42b57c settings: request activation when the window is already open 2026-10-03 05:39:37 -04:00
bbedward 28c76ddb66 settings: hide profile pic on search query 2026-10-03 05:00:58 -04:00
Marlon Kranz 6a320399c9 fix(lock): show the lock screen on every display when none is selected (#3666)
With two or more screens connected and none of them in the lock screen
display list (a laptop docked at a different desk), every surface was
inactive and no password field rendered, so the only way out was a
TTY. getFilteredScreens only falls back to all screens with
showOnLastDisplay and exactly one screen, which the lock screen picker
never sets. Treat an empty result as all screens, the same as the
default "all" preference.
2026-10-03 04:57:52 -04:00
bbedward 497e80732f settings: restore a max content width 2026-10-03 04:52:55 -04:00
bbedward 57de2083ad settings: keep the shortcut search in view and focused while filtering
fixes #3649
2026-10-03 04:40:13 -04:00
尘世凡间 204aa1735b clipboard: decode file uris and stop failing large file copies (#3598)
EntryToFile and the preview helpers stripped file:// without
percent-decoding, so history entries whose paths contain non-ASCII
characters stat'ed a literal %E5... path and copyEntry failed with
"file not found". CopyFile additionally hard-failed any file larger
than MaxEntrySize (5MB default) right after stat, so even decoded
entries for bigger files could never be restored to the clipboard.

Decode the path in EntryToFile, uriListPreview and
tryReadImageFromURI. In CopyFile only read file content when it fits
the size cap; oversized files still get offered as uri-list /
gnome-copied-files / plain path, and the stored entry keeps the file
URI instead of an empty body.

Keep encode and decode symmetric: every URI this service stores or
offers now goes through encodeFileURI (percent-encoded) and every
read path decodes exactly once through pathFromFileURI, so a literal
%20 in a file name survives the round trip. Regression tests cover
space / literal %20 / # / CJK / oversized names across EntryToFile,
uriListPreview, the image probe and handleCopyEntry.
2026-10-03 03:30:53 -04:00
purian23 d9d9dc21d2 feat(system-update): implement floating window variant for system updates 2026-10-03 02:16:30 -04:00
purian23 0bff4524e2 refactor(software-updates): few button tweaks 2026-10-02 23:07:55 -04:00
purian23 136e1f21cd refactor(notification): restore preview icon placement & apply user theme to dank icon 2026-10-02 22:52:45 -04:00
purian23 4395c97a6a refactor(settings): embed avatar in search field & enhance Software Updates UI 2026-10-02 22:32:26 -04:00
Alexander 1e1abb0206 theme: use the current dms executable for matugen (#3648) 2026-10-02 19:07:41 -04:00
lingdianshiren 300544bc8c bluetooth: identify codecs from the profile description (#3643)
* bluetooth: identify codecs from the profile description

PipeWire describes profiles in the daemon's locale and only names the codec in
that description for the bare profile (LHDC settles on "a2dp-sink"), so the old
English "codec %s" match dropped LHDC profiles on non-English systems. Parsing
the translated shape instead only moves the coupling to word order and
punctuation.

Emit the profile index and raw description from the lua script and let the UI
name the codec by matching the untranslated literal from one codec table.
Switch by index, falling back to the profile name or codec literal, so no
translated text is parsed. Also teach the BlueZ fallback the Savitech ids
(LHDC v5 and v3).

Test: quickshell/tests/bluez-codec.test.mjs

* bluetooth: show unknown codec without masking bluez

* bluetooth: ignore stale codec query results
2026-10-02 19:07:28 -04:00
Huỳnh Thiện Lộc 340f2d179c fix(notepad): hide placeholder during IME composition (#3646) 2026-10-02 18:28:58 -04:00
Huỳnh Thiện Lộc 5318c43f3a feat(screenshot): add Ctrl+C shortcut to copy w/o saving (#3645)
* feat(screenshot): add Ctrl+C shortcut to copy selection without saving

Add Ctrl+C shortcut in interactive region selection mode to immediately
copy the current selection (or hovered snap target) to clipboard without
saving to a file.

- Works during mid-drag, on hovered targets, or on existing selections
- Bypasses file saving and forces clipboard output
- Emits aborted status in JSON mode so external callers (such as Quick
  Capture) exit cleanly without launching an annotation editor
- Exits cleanly without error if triggered with no selection
- Updates HUD items with Ctrl+C copy shortcut
- Hides corner resize handles and maintains crosshair cursor while dragging with Ctrl held

* fix(screenshot): bypass stdout and scroll phase when copyOnly is active

- Disable stdout output when copyOnly is active to ensure the image
  is copied to the clipboard instead of being written to stdout.
- Write 'Copied to clipboard' to stderr if --stdout was originally passed.
- Bypass entering scrollPhase in finishSelection() if copyOnly is set,
  immediately capturing and copying the selected region.
2026-10-02 18:25:59 -04:00
bbedward 850d7a6071 dash: fix metric trends, edit bar focus rings, battery color option, forecast containers
fixes #3658
2026-10-02 18:23:50 -04:00
bbedward 1d789892f7 lock: wake outputs on unlock whichever path powered them off
fixes #3660
2026-10-02 16:59:03 -04:00
bbedward 1492b649e6 qml-common symc 2026-10-02 16:52:07 -04:00
bbedward c559a5250c wallpaper: material presets with seed color and dynamic backdrop 2026-10-02 16:51:34 -04:00
bbedward eda8b26f6e trash: only count while a dock shows the trash button
fixes #3664
2026-10-02 15:48:09 -04:00
bbedward e4ec3582b4 settings: raised content pane and surface tier ladder instead of dividers 2026-10-02 11:53:15 -04:00
purian23 af27f0bac0 refactor(software-updates): remove confirmation modal & add action item prompt support 2026-10-02 00:52:44 -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 e61fa45444 config: resolve nested includes against the including file
fixes #3647
2026-10-01 18:06:50 -04:00
bbedward ea6c52b5e8 dash: wallpaper carousel follows the index only, swipe steps it 2026-10-01 17:32:48 -04:00
bbedward b9c8faa60f settings: hold the cups ref while the window is open 2026-10-01 15:31:38 -04:00
bbedward d77c4f6298 wellbeing: add Digital Wellbeing, with a built-in dash plugin 2026-10-01 15:15:37 -04:00
bbedward a348d8bc5e icons: skip the pixmaps fallback when the theme index times out fixes #3642
battery: bridge history gaps, clock-aligned ticks, hover readout
2026-10-01 10:14:38 -04:00