Commit Graph
740 Commits
Author SHA1 Message Date
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
bbedward 089dc98166 network: set routing preference only from settings
fixes #3068
2026-10-06 15:02:12 -04:00
bbedward 4265ea1620 freebsd: gate audio and battery polling on consumer refs instead of popout bindings 2026-10-05 22:23:34 -04:00
Zer0TraceXandclaude[bot] 87a4da9e13 feat(freebsd): Add initial native FreeBSD support (#3559)
* feat(freebsd): add comprehensive native FreeBSD support

* Update BatteryService.qml

* Add battery probe completion and fallback updates

* Add isVideoSource function and update PwObjectTracker filter

* Add isPipewireVideoSource function to AudioService

Added a function to check if a Pipewire node is a video source.

* Refactor video source check to use AudioService

* Remove unnecessary call in BatteryService.qml

* Add call to updateFreeBsdBatteryFallback on completion

* Simplify AudioService by eliminating redundant bindings

Removed unnecessary bindings in the AudioService loader to streamline the loading process.

* Improve error handling in CheckUpdates function

Handle specific exit error for package upgrade check.

* Enhance FreeBSD network detection logic

* Implement FreeBSD Wi-Fi hardware discovery in Initialize

Added FreeBSD Wi-Fi hardware discovery and updated initialization logic to handle cases where no wpa_supplicant control socket is found.

* Implement Ethernet state monitoring in StartMonitoring

Added monitoring for Ethernet state updates in StartMonitoring function.

* Add Ethernet management functions to backend

* Remove unimplemented Ethernet control methods

Removed unimplemented Ethernet control methods from WpaSupplicantBackend.

* Implement SetWiFiEnabled method for WiFi control

Add error handling and state management for WiFi control

* Update core/internal/server/network/backend_wpa_ethernet.go

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

* Implement Ethernet monitoring in WpaSupplicantBackend

* Refactor startEthernetMonitor and add debounce logic

Refactor the startEthernetMonitor function to improve readability and maintainability. Introduce a debounce mechanism for processing relevant FreeBSD route events.

* Reorder import statements in backend_pkg.go

* Remove unnecessary blank line in backend_wpa_ethernet.go

* Implement FreeBSD audio polling based on UI visibility

Introduce a polling mechanism for FreeBSD audio device updates based on visibility of UI elements.

* Add readonly freeBsdPollingRequested property and optimize polling

Introduce a readonly property to determine if FreeBSD polling is requested based on various UI conditions. Update command execution to prioritize polling efficiency.

* Simplify freeBsdPollingRequested logic

Removed unnecessary conditions from freeBsdPollingRequested property.

* Implement reference counting for battery consumers

Added reference counting to manage battery information consumers and updated related functions for better battery state handling.

---------

Co-authored-by: claude[bot] <209825114+claude[bot]@users.noreply.github.com>
2026-10-05 22:03:32 -04:00