743 Commits
Author SHA1 Message Date
bbedward 8a30a83896 changelog: track the seen release with a config dir marker instead of cache.json
Setups with a read-only session json broke the changelog marker

fixes #3825
2026-10-20 09:45:34 -04:00
apollo79 7bcbc34c57 feat(lyrics): add seek-to-line on clicking lyrics line (#3823) 2026-10-19 12:53:45 -04:00
bbedward fcb74f5884 greeting: redesign welcome page & changelog page
+ enable changelog
2026-10-19 12:05:38 -04:00
bbedward 6a2b4378d6 night mode: push the automation schedule before night mode is first enabled
fixes #3186
2026-10-19 09:08:52 -04:00
cmleon51 880135da67 brightness: dim outputs without a backlight or ddc through gamma (#3813) 2026-10-18 23:02:21 -04:00
bbedward e6f215b91d control center: hide the shell's own sound effect stream from the playback list
fixes #3810
2026-10-18 22:55:07 -04:00
bbedward a72f2ac43d launcher: name launch scopes app-dms-<id>-<random> so portals see the app id
Fixes #3814
2026-10-18 21:48:00 -04:00
lung595 47885e4981 plugins: detail page actions, one-click upvote, author page and undo after uninstall (3/3) (#3753) 2026-10-17 12:20:46 -04:00
Artrixandclaude[bot] 0983c2267a audio: show headphones icon for bluetooth headset (#3783)
* audio: show headphones icon for bluetooth headset

* audio: fix bluetooth headset icons and preserve mute states

* Delete audio-output-icon.test.mjs

* Update quickshell/Services/AudioService.qml

Co-authored-by: claude[bot] <209825114+claude[bot]@users.noreply.github.com>

---------

Co-authored-by: claude[bot] <209825114+claude[bot]@users.noreply.github.com>
2026-10-15 09:23:12 -04:00
bbedward 0f33c4b830 niri: drop touchpad osd ipc, rely on the event stream 2026-10-15 09:03:48 -04:00
bbedward 290a1a085b desktop widgets: intuitiveness improvements to editor 2026-10-15 08:39:49 -04:00
purian23 c4aea85296 niri: drive touchpad OSD from native compositor events 2026-10-15 02:01:02 -04:00
purian23 87ce92703c fix(ipc): open bar widget popouts at the right bar, hidden bars included
- References #3786
2026-10-15 01:40:05 -04:00
purian23 3c13700fc5 feat(niri): add toggle functionality & OSD for touchpad control 2026-10-14 17:42:27 -04:00
bbedward ba8c4e60a1 lock: hold the fingerprint scan from a sleep request until PrepareForSleep
fixes #3774
2026-10-13 10:18:12 -04:00
bbedward 14de920cd2 idle: wake monitors on input whenever dms powered them off
fixes #3742
2026-10-12 15:35:08 -04:00
Marlon Kranz 4a8f1062be island: open media and the power menu in one step (#3756)
* island: open media and the power menu in one step, fix dash edits

- Clicking media on the home face opens the player. Closing a sheet
  goes back to the face the user picked, and an opt-in setting
  switches to media when playback starts.
- The power menu can open in the island (Super+X, the dock button),
  with its own route row in the island settings.
- An island collapses when another popout opens on its screen.
- The widgets page hides the center section the island replaces.
- Dragging or resizing a dashboard card no longer blanks the overview:
  Qt hands the committed list over as a non-array, which read as empty.
- The island blur region stays inside the rounded fill.

* fix(island): address review feedback on switching faces by mouse

Opening the player with one click removed the only mouse path from
the home face to the media face. A right-click on the collapsed island
now swaps between the two while media is available.

The swap resizes the island under the pointer, so hover-open stays off
until the pointer leaves. Without a face to swap to, the press is not
accepted and reaches the bar's own right-click action as before.
2026-10-12 12:52:12 -04:00
93bd3eecd1 notifications: allow extra conditions per rule (#3683)
* notifications: allow extra conditions per rule

Co-Authored-By: Claude Opus 5.5 <[email protected]>

* notifications: add translator context to the rule condition strings

Co-Authored-By: Claude Opus 5.5 <[email protected]>

* don't use deprecated widgets

---------

Co-authored-by: Claude Opus 5.5 <[email protected]>
Co-authored-by: bbedward <[email protected]>
2026-10-12 11:52:59 -04:00
Kadir 8cf89f17c0 session: end the logind session on logout when the compositor has no quit request (#3700) 2026-10-12 11:26:27 -04:00
Kadir 718ba6b118 workspace rename: prefill the focused workspace name on hyprland (#3698)
The rename IPC always read the name from NiriService, so on Hyprland the
field opened empty. Hyprland names are stored as "<id> <name>", so the
prefill drops that prefix to keep a second rename from stacking it.
2026-10-12 11:23:00 -04:00
bbedward 3ff724e4ea bluetooth: treat alias-is-address as the only unnamed case when sorting scan results
fixes #3761
2026-10-12 11:17:54 -04:00
a8bb04a2b2 displays: send the vrr setting on the wlr-output path (#3701)
* displays: send the vrr setting on the wlr-output path

The toggle shown on compositors without their own output writer (sway,
labwc, ...) was dropped when the heads were built, so it never applied.

Co-Authored-By: Claude Opus 5.5 <[email protected]>

* remove test

---------

Co-authored-by: Claude Opus 5.5 <[email protected]>
Co-authored-by: bbedward <[email protected]>
2026-10-12 11:13:45 -04:00
Mario Mohar 0fb2297c15 processlist: search every process, not just the top 100 by cpu (#3763)
* processlist: search every process, not just the top 100 by cpu

* processlist: drop the process search test
2026-10-12 02:47:23 -04:00
purian23 ce389d2e87 feat(input): focus follows mouse on niri and mango 2026-10-12 02:27:21 -04:00
Perdixky 80ca0f0ee5 hyprland: add focus follows mouse toggle (#3755) 2026-10-12 02:15:46 -04:00
lung595 846a0ff22f plugins: ranking module and directory metadata for the plugin browser (1/3) (#3751)
* plugins: forward directory metadata (version, icon, permissions, dates) to the shell

* plugins: ranking module for recommendations, trending and picks

* plugins: mark new and recently updated plugins on the browser cards, keep badges clear of the vote count

* i18n: allow the lowercase plugin recency badge next to the New action
2026-10-11 16:45:25 -04:00
purian23 1966c8760d fix(audio): manage sink volume writes & prevent overwrites during adjustments
Closes #2060
2026-10-11 12:18:34 -04:00
purian23 adaa5e2bb0 fix(clipboard): multi-second tab switch bind & stale pinned count
- qml common fix & update
2026-10-11 03:39:24 -04:00
bbedward d8aca6ab48 grids: hand committed layouts and display picks to callbacks, not var signals
fixes #3746
2026-10-10 18:00:39 -04:00
bbedward 583333dfb5 matugen: drop stale preview result when the key returns to the loaded one
fixes #3741
2026-10-10 11:45:07 -04:00
bbedward 5193fcd473 media: queue album art for the quantizer 2026-10-10 11:35:40 -04:00
Huỳnh Thiện Lộc 400f62316c feat(wallpaper): allow recursive cycling through subdirectories (#3739)
* feat(wallpaper): allow recursive cycling through subdirectories

* fix(wallpaper): persist root folder when recursively cycling without folder set
2026-10-09 22:53:29 -04:00
Mario Mohar e2a0b37d03 notifications: add invokeLast ipc to run the newest notification's default action (#3734)
* notifications: add invokeLast ipc to run the newest notification's default action

* notifications: drop the invokeLast test file
2026-10-09 15:29:21 -04:00
bbedward aef801fc4b wallpaper: import material layouts, dms://wallpaper/install uri, profiles 2026-10-09 14:51:07 -04:00
bbedward 534913dc0b wheel: use WheelInput horizontal helper, make default action cycle
window on WS pill
2026-10-09 12:45:27 -04:00
purian23 e10102edc0 feat(mango): native mouse/touchpad & keyboard input support
- Hide blur toggle options until mango support is added
2026-10-09 05:55:47 -04:00
purian23 ea68399ef3 feat(blur): add configurable blur strength slider in all supported compositors
- Updated Hyprland defaults
2026-10-09 05:19:46 -04:00
purian23 2747a75198 hyprland: bring up features parity overhaul w/0.56+ and upcoming stable releases
- new blur variants, glow, wobble, motion blur and groupbar support
- new inputs support for mouse, touchpad and keyboard settings
- greeter, cheatsheet and scroll capture dispatch in Lua
- scrolling workspace screenshot focus fix
- fix scrolling screenshots from being cut-off on fractional-scale displays
- workspaces are keyed by address on the beta branch and upcoming stable release where named workspaces have no id
- bind flags, per-device binds, new window-rule keys and effects
- outputs default to preferred/auto/auto and gate HDR/VRR on hardwareDetails
- new dms setup/installer systemd session support on hyprland-session.target
2026-10-09 05:14:55 -04:00
Mario Mohar f9574ef9ae plugins: write the first state save after a reload (#3733) 2026-10-09 04:20:19 -04:00
purian23 39b0d40877 mango: bring up newly supported config dialects, systemd sessions & setups
- Auto detect the snake_case dialect of Mango master from the binary, write configs and respell existing fragments with:
 `dms config mango-migrate`
- Setup backs up and replaces config.conf, moves binds and rules into dms/
- Start DMS from mango-session.target with systemd or exec-once without
- fix cheatsheet run action and bind precedence, window-rule and display save updates
- Support urgent active tag, greeter loading  /etc/mango, per-screen overviews
2026-10-08 20:50:53 -04:00
bbedward 474b723faf keybinds: capture pressed shortcuts in the search fields
settings: add a cheatsheet button to the keyboard shortcuts page

fixes #3631
fixes #3632
2026-10-08 16:03:55 -04:00
Alexander 97004ffd6e niri: keep workspace focus in sync with niri (#3713) 2026-10-08 11:06:50 -04:00
bbedward c1006f6b34 audio: wait for the sound theme before playing any event sound
ref #3723
2026-10-08 10:04:28 -04:00
bbedward b1dde74e4d settings: improve transition behavior 2026-10-07 19:22:24 -04:00
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
bbedward b42fe6643f perf: gate idle work behind feature and capability state 2026-10-07 11:55:29 -04:00
Artem Timofeev 8fedfae1dc fix(power): reconcile refresh rate after resume (#3459) 2026-10-07 11:17:12 -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 54eb0ccaed plugins: stipe dupe plugin previews & add fallback support 2026-10-06 17:57:16 -04:00