Commit Graph
2340 Commits
Author SHA1 Message Date
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
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
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 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 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
Huỳnh Thiện Lộc b54fa3a584 feat(dock): expand focused app indicator into animated pill (#3640)
Focused dot expands to 3× width (horizontal dock) or 3× height
(vertical dock) using Theme.shortDuration + Easing.OutCubic.
Applies to both circle and line indicator styles.
2026-10-01 08:52:24 -04:00
Stephanos Kamprogiannis 22fa08f0ff idle: wake monitors after automatic lock (#3633)
Locking rearms the normal idle monitors and can lose their wake transition.
Enable the existing locked-monitor wake listener for idle power-off too.
2026-10-01 08:51:32 -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
Alexander d84037066e dock: restore cycling through grouped windows (#3637) 2026-09-30 17:56:15 -04:00
bbedward 3bbf02f502 settings: some changes ref #3635
cc: add trash icon to drag and crush things
cc: allow anchoring footer items to start or end
2026-09-30 16:00:48 -04:00
bbedward 9e7f35de0c settings: index the compositor page in settings search
fixes #3634
2026-09-30 14:38:19 -04:00
bbedward 8e9970efee notifications: more androidy physics
fixes #3636
2026-09-30 14:02:48 -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
bbedward d5a684ce52 settings: use wallpaper icon for wallpaper & colors 2026-09-29 17:50:59 -04:00
bbedward 5cfda4ebe7 notifications: no selection ring on modal open clipboard: match the notification header and add a settings butto
settings/interface: explicit window radius match option
cc: restore dim in edit mode

fixes #3623
2026-09-29 17:44:20 -04:00
bbedward f025a8d7b4 island: keep control center and dash size in edit mode
widgets: show keyboard hint boxes as keycaps

fixes #3624
2026-09-29 17:29:05 -04:00
Huỳnh Thiện Lộc ea70863fd7 feat(dock): add customizable proximity icon magnification (#3625)
* feat(dock): add proximity icon magnification with customizable curves

* fix(dock): restrict proximity magnification to dock and add translator context
2026-09-29 17:07:22 -04:00
Huỳnh Thiện Lộc 34e0ed2e90 feat(screenshot): snap to active popouts & modals in region mode (#3618)
* feat(screenshot): snap to active popouts and modals in region mode

Allow region screenshot selector to detect and snap to visible shell
popouts and modals on hover and click or keyboard confirmation.

- PopoutManager.qml: add getActiveSurfaces() collecting visible
  DankPopout and DankModal global bounding boxes
- DMSShellIPC.qml: add screenshot.getSurfaces IPC endpoint
- core: fetch snap targets from shell IPC during region screenshot init
- selector: highlight snap targets on hover with surface name and dimensions
- selector: click or Enter/Space on hovered target locks selection to surface bounds
- selector: allow hover snap over pre-selection (SelectionState.fromPreSelect)
- selector: reset selection on degenerate (1x1) click release for quick re-selection
- unit tests for display name formatting, hover detection, and render bounds

* fix(screenshot): correct snap off-by-one and drag-away cancellation

- region_input: fix drag-away snap cancellation by setting hasSelection=true
  and clearing preSelect so freeform dragging renders and is not discarded
- region_input: add snapToTarget helper subtracting 1 device pixel (devPxX/Y)
  from currentX/currentY to prevent inclusive coordinate off-by-one (420x580 -> 420x580)
- region_render: compute hover bounds with w = round(width * scaleX) and
  x2 = x1 + w - 1 to eliminate +1 device pixel in render bounds
- region_snap_test: assert exact 420x580 bounds for both hover and snapped states

* style(screenshot): format region_snap_test.go with golangci-lint-fmt
2026-09-29 17:06:19 -04:00
arfan c1818dee2c fix(theme-vscode): update editorSuggestWidget colors for improved visibility (#3599)
* fix(theme-vscode): update editorSuggestWidget colors for improved visibility in dark, default, and light themes

* fix(theme-vscode): update button.hoverBackground to use primary_fixed colors for consistency
2026-09-29 17:06:06 -04:00
bbedward 765ffe8564 plugins: hide the list under the detail overlay
plugins: block activation when the startup check cannot run

ref #3626
2026-09-29 16:57:24 -04:00
Mario Mohar 53b8de2714 fix(keybinds): warn when a bind's key sits above the layout's first level (#3591)
A compositor resolves a bind's keysym on the first level of the active
layout. Layouts that put punctuation higher up therefore cannot reach it
at all: de:neo has bracketleft on layer 4 and plain de on AltGr, so
Mod+bracketleft is a bind that can never fire. The editor recorded and
stored it anyway and gave no sign that anything was wrong (#3585).

`dms keybinds keymap` now reports what the seat's xkb keymap puts on the
first level of every physical key, and the editor says so instead of
letting a dead bind through.

The keymap a compositor hands out writes its keysyms as hex, so only the
range the keymap package can name back is usable for the comparison.
That is the ASCII range, which is where the problem lives, and the
command reports the vocabulary alongside the keys so the caller can tell
"the layout cannot reach this" from "we could not name it" and stay
quiet in the second case.
2026-09-29 16:57:13 -04:00
Hatta 3081941592 lock: lock before sleep when the command skips logind (#3587)
* lock: lock before sleep when the command skips logind

Custom hibernate never emits PrepareForSleep, so the session stayed unlocked. Wait for the compositor lock on every sleep path, and release the delay inhibitor if that lock finished first.

* lock: release the sleep inhibitor only after lockerReady

* lock: read the sleep inhibitor under its mutex in the race test
2026-09-29 16:50:13 -04:00