Commit Graph
687 Commits
Author SHA1 Message Date
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 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
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
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
arfan c205358b79 feat(settings-appdefault): add office and archive manager categories (#3580)
Add word processor, spreadsheet, presentation and archive manager
selectors to default apps, fix calendar lookup to query text/calendar
first so Dank Calendar is detected, and expand image mime coverage
with tiff/heic/heif/jxl.
2026-09-29 16:42:49 -04:00
dion 13034cb85c audio: add mono audio toggle with support detection (#3539) 2026-09-29 16:38:22 -04:00
bbedward f482642880 sysupdate: check only on demand, run at low priority, fix the settings page
scrollbar: interface style toggle and no scrollbars in the dash
dash: never allow scrollbars
cc: widget sheet cards, header close button and content-sized dialogs
2026-09-29 16:30:04 -04:00
bbedward 182e08b1a4 dash: soft primary container, per-widget options and weather tones 2026-09-29 11:22:55 -04:00
bbedward 00952d4d51 settings: window rule editor on the shortcut editor's dialog and cards
fixes #3608
2026-09-29 11:11:23 -04:00
purian23 35faa3130c feat(island): add clipboard support & align launcher sizing options 2026-09-29 03:30:58 -04:00
purian23 eda77f7816 feat(settings): dms system software updates & versioning support 2026-09-28 19:45:07 -04:00
bbedward e372c48009 settings/cc: network and brightness pages on the shared row pattern
fixes #3602
fixes #3603
fixes #3610
2026-09-28 16:52:51 -04:00
bbedward f9de6b86ea theme: unify every selected list fill on selectedContainer 2026-09-28 16:05:12 -04:00
bbedward ffe2da7e99 avatar: material person glyph instead of an app icon lookup
fixes #3600
2026-09-28 14:43:04 -04:00
bbedward 1142390724 settings: add + item name on every creation fab
settings: stop repeating the page title as the first card label
translations: index untitled cards by their page, not a nested row

fixes #3604
fixes #3609
2026-09-28 14:38:43 -04:00
purian23 64b4d0d235 feat(control center): configurable user card & power control action tiles
- Quick actions are reorderable with button color roles and optional power accents
- Updated dank-qml-common
2026-09-27 20:55:54 -04:00
bbedward d5c96a1756 keybinds: resolve the main modifier per compositor and report it on the cheatsheet 2026-09-27 16:19:06 -04:00
Matt Jiang f27627ead2 powermenu: reboot into a chosen EFI boot entry (#3568)
* powermenu: derive shortcuts and extra actions from one source

The power menu matched keys with a switch that repeated the key hints
getPowerActionData already returns, plus a second key list for release.
Look the pressed key up against the hints of the visible actions instead,
so every action with a hint gets its shortcut and the two cannot drift.

Side effects:
- Ctrl+letter no longer triggers actions. Only Ctrl+P was excluded
  before, so Ctrl+R still rebooted. Ctrl combinations are navigation.
- U now triggers switch user when it is shown. Its hint already said U.
- Releasing a letter with no visible action no longer cancels a hold.

SessionService now owns the custom:N action ids as customPowerActions
and extraPowerActions, which the power menu and the launcher both use.
Actions resolve by index into that list instead of slicing the prefix.

* powermenu: add actions that reboot into a chosen efi boot entry

Settings → Power & Sleep gets a "Reboot to another OS" card that lists
the firmware's active EFI entries through efibootmgr. Each saved entry
becomes a "Reboot to <name>" action in the power menu and the launcher,
bound to 1-9 in the order it was added.

Picking one lists the entries again, and stops with a toast if the id no
longer carries the saved label. Otherwise it sets BootNext through pkexec
and reboots through SessionService, so custom reboot commands still apply.

BootEntryService reports why entries are unavailable: not booted in UEFI
mode, efibootmgr missing, or efibootmgr failing with its stderr. Saved
entries stay listed in settings whatever the status, so a synced config
on another machine can still remove them.

efibootmgr parsing and the picker's filtering live in BootEntries.js,
covered by tests/boot-entries.test.mjs.

* powermenu: ignore special keys in action shortcuts
2026-09-27 11:47:05 -04:00
purian23 5623476126 feat(island): host the island as a widget in any bar configuration
- The island is now a bar widget so any bar can host one alongside the island layout and dot
- Routing got simpler: pick which shortcuts open here, the rest follow the shared rules
- IPC close/hide take down every surface showing the activity
- Qt 6.11 pointer prune workaround so the expanded island stays clickable
2026-09-27 02:02:30 -04:00
bbedward 9dc5b2c5af settings: some loader restructure and restyle keybinds
island: fix satellite opacity and blur
2026-09-26 16:25:34 -04:00
bbedward a48f41b749 theme: switch to dankgo material utilities fork
settings: label some non-obvious thing swith more details

fixes #3555
fixes #3553
2026-09-25 21:31:34 -04:00
bbedward cc45f8b445 settings: add reusable FAB component and use it in more places 2026-09-25 15:02:45 -04:00
bbedward 3b529b3a97 lyrics: add kugou and YT music providers 2026-09-25 14:02:27 -04:00
Nat Fletcher 7c2140dd60 theme: add toggle to skip matugen at startup when nothing changed (#3270) 2026-09-25 10:56:20 -04:00
bbedward 890166e384 cc: apply some non-compositor blur to details pages based on settings
Can't do real compositor blur since they arent real subsurfaces
2026-09-25 10:27:39 -04:00
bbedward 6cb8a3b67a launcher: restore focus ring to spotlight and respect global setting 2026-09-25 10:27:39 -04:00
bbedward e76d989656 hyprland: use focusgrab in overview
fixes #3486
2026-09-24 20:09:33 -04:00
bbedward 4949c2fbbe settings: fix some inconsistencies
dash: no header for disabled tabs
2026-09-24 10:00:25 -04:00
bbedward 6e9bbc15a6 files: swith to diles shared components 2026-09-23 21:27:14 -04:00
bbedward 4b926be08f launcher: design adjustments
shell: cut animation frame cost and cold open stalls
dock: restore 1.6-like spacing behaviors

fixes #3537
2026-09-23 16:35:18 -04:00
f22ad2c333 feat(theme): inject external color palettes into matugen (#3509)
* matugen: support multiple injected palettes with settings ui

Run user-configured external commands on each theme build and merge their
JSON output into matugen's import data under a namespace, so templates can
reference e.g. {{mypalette.color0}} alongside dank16. Multiple palettes are
supported, each under its own namespace. Command output may be nested JSON
(pywal/wallust shape). A settings page manages the list; a legacy
single-object config file is still read.

* settings: map PaletteInjectTab in search index

* matugen: bound palette-inject command with timeout and WaitDelay

* fix palette column spacing (review suggested

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

* remove wallpaper kind guard (review suggestion)

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

* fixup! remove wallpaper kind guard (review suggestion)

---------

Co-authored-by: bbedward <[email protected]>
Co-authored-by: claude[bot] <209825114+claude[bot]@users.noreply.github.com>
2026-09-23 10:26:47 -04:00
bbedward 4bdfcfc0cf settings: adjust window rules and clock options 2026-09-23 09:42:28 -04:00
bbedward c66ca00062 settings/bar: move name back to its own pill 2026-09-22 22:24:45 -04:00
bbedward 4cb2be5fa4 bar: adjust settings UI 2026-09-22 22:12:34 -04:00
purian23 a96dea2019 settings: re-org & unify bar sections into updated sub-sections 2026-09-22 20:41:24 -04:00
purian23 7ba4bccf6c feat(dankdot): operation DMS freedom & island anywere modes
- A new minimal and fun island instance (dot) that gets out of your way to be tossed anywhere on your screen
- Dankisland freedom is here too! It can now also be used in anywhere mode and used horizontally or vertically as you see fit!
2026-09-22 20:38:45 -04:00
bbedward 860542314e settings: re-org launcehr tab built-in plugins, make desktop widgets
sub-pages to match the pattern of bar widgets
2026-09-22 18:11:12 -04:00
bbedward 89484b5d85 compositor: initial support for umbriel
tests: remove a lot of them

fixes #3214
2026-09-22 16:43:41 -04:00
bbedward abd51287f3 settings: align nested rows and page widths to shared spacing 2026-09-22 14:19:41 -04:00
bbedward 4eb163538c media: change player style
theme: restore layer outline option
launcher/theme: tweaks and fix icon service
2026-09-22 09:00:34 -04:00
bbedward 74e146a1e8 theme: add surface role color overrides and a per-bar background color 2026-09-21 17:57:12 -04:00
bbedward c9032926d7 settings: load all pages asynchronously 2026-09-21 16:47:09 -04:00
bbedward bb20528f68 popouts: grow surfaces at their origin
cc: slide grid with the detail page
settings: tweak appearance header style
settings: tweak sidebar profile style
2026-09-21 15:47:01 -04:00
Matt Jiang cc8a6053c5 feat(mux): add Herdr backend (#3531)
* mux: add herdr backend

* mux: remove herdr service tests

* mux: include herdr in settings subtitle

* mux: add translator context to the multiplexers subtitle

* mux: drive the service from a backend table

Each backend (tmux, zellij, herdr) is one entry in MuxBackends.js with
its commands and parser, so the service no longer branches on muxType
in eight places and the settings dropdown lists the table keys. One
availability check runs for the selected backend and re-runs when the
backend changes. The herdr parser reads the real {sessions:[...]}
shape only.
2026-09-21 15:26:56 -04:00
bbedward a3f1a3d620 feat(bar): add support for fractional sizes, fit to contents 2026-09-21 13:27:14 -04:00