Commit Graph
4877 Commits
Author SHA1 Message Date
bbedward 878aa69fac lyrics: keep following through same-song refreshes 2026-09-23 20:16:42 -04:00
bbedward 145b9bbc18 launcher: even out spacing 2026-09-23 18:13:37 -04:00
bbedward c5029444ff lyrics: fix fade 2026-09-23 16:41:41 -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
bbedward 4d31c84188 bump qml-common 2026-09-23 14:39:18 -04:00
bbedward eb0b56e578 i18n: sync 2026-09-23 14:18:09 -04:00
Thomas KrollandClaude Opus 5.5 eb0cb80884 fix(workspace): ignore duplicate submit in rename modal (#3549)
Pressing Enter in the name field fires both the text field's accepted
signal and the dialog's own Return handler, so submitAndClose() runs
twice. The first call renames and hides the window, which clears the
field; the second call then renames to an empty string and unsets the
workspace name. The OK button only fires once, so it was unaffected.

Ignore submits once the window is hidden.


Claude-Session: https://claude.ai/code/session_01791wgvD8EqJaAeURYXYbT5

Signed-off-by: Thomas Kroll <[email protected]>
Co-authored-by: Claude Opus 5.5 (1M context) <[email protected]>
2026-09-23 14:05:16 -04:00
dms-ci[bot] 7e8c556ab6 nix: sync flake.lock to dank-qml-common submodule 2026-09-23 16:59:34 +00:00
bbedward ccd6da3b43 media: add loading indicator between lyrics changes, add no-smoothing
option, adjust surface colors and theme tokens
2026-09-23 12:58:08 -04:00
bbedward f97e7f7fe9 audio: drop input ports and hidden sinks from switchable outputs 2026-09-23 11:41:35 -04:00
bbedward 6ab3755405 bar: keep the full-width center fixed and cap the focused app before it 2026-09-23 11:00:27 -04:00
bbedward fb973951e3 screenshot: configure surfaces before requesting screen captures 2026-09-23 11:00:27 -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
Huỳnh Thiện Lộc 9d1884fb19 feat(keybinds): redesign cheatsheet with category navigation (#3534)
* feat(keybinds): redesign cheatsheet with category navigation, M3 styling, and click-to-execute

- Add category sidebar with Material Symbols icons and badge counts
- Move search field to top of sidebar with Ctrl+F shortcut
- Implement 2-column masonry layout for keybind items
- Deduplicate duplicate actions and stack multi-key combos vertically
- Collapse consecutive workspace keybindings (1-9) into range entries
- Add media & hardware icons for volume, mic, brightness, and PrtSc keycaps
- Preserve Niri window filter properties and distinguish same-app Alt-Tab binds
- Enable click-to-execute for keybind actions across supported compositors

* fix(keybinds): preserve niri action properties and disable execution on range rows

* fix(keybinds): convert niri action properties to CLI flags and disable IPC execution for window switcher binds

* fix(keybinds): pass skip-confirmation as boolean switch in niri executeAction

* fix(keybinds): handle niri spawn-sh actions in executeAction
2026-09-23 09:09:28 -04:00
purian23 80060ee925 fix(debian): obs preinstall & ID checks for debian testing builds 2026-09-22 23:29:34 -04:00
bbedward c66ca00062 settings/bar: move name back to its own pill 2026-09-22 22:24:45 -04:00
bbedward 62098c8add rename test 2026-09-22 22:14:35 -04:00
bbedward 4cb2be5fa4 bar: adjust settings UI 2026-09-22 22:12:34 -04:00
purian23 edf936973f fix(pointer): update mouse pointer on bar widgets 2026-09-22 21:44:52 -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 27434cf016 ci: fix review job 2026-09-22 14:52:16 -04:00
bbedward abd51287f3 settings: align nested rows and page widths to shared spacing 2026-09-22 14:19:41 -04:00
bbedward 17d52d3c88 media: rebrand to Bento
popouts: instantly set empty input region on exit
2026-09-22 13:44:12 -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 2d1b4f905d bar/goth: fix inverse radius override 2026-09-21 22:51:49 -04:00
bbedward e9498716f9 dankbar: trace goth wings and adjacent-bar seams in the border outline
fixes #3502
2026-09-21 22:14:42 -04:00
bbedward 8538b303e3 dankbar: trace goth wings and adjacent bar seams
fixes #3496
2026-09-21 21:32:47 -04:00
bbedward 75b8cfff4f i18n: keep translations when the selected locale resolves to the same file
fixes #3508
2026-09-21 20:46:29 -04:00
bbedward b41f0f2c4e launcher: open files through the mime handler so terminal apps get a terminal
fixes #3518
2026-09-21 19:01:22 -04:00
bbedward f3af870d93 matugen: fix kitty cursor color
fixes #3520
2026-09-21 18:11:39 -04:00
bbedward a84e84c39b layout: let an overview-only bar share the row of a bar that hides in the overview
fixes #3527
2026-09-21 18:09:25 -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 8266e078e7 dock: show an overview-only dock on niri again
fixes #3528
2026-09-21 17:09:41 -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
14Do 17ecaad8dd sysupdate: skip the obsoleted packages in dnf output (#3525)
dnf lists the packages an upgrade obsoletes indented beneath it, under a
separate heading. Those rows are removals carrying their installed
version, so they were parsed as upgrades from a version to itself and
counted as pending. Skip indented rows. The heading is translated, so
matching it would only work in English.
2026-09-21 15:27:20 -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 e3b4efc498 notifications: make compact mode more compact 2026-09-21 13:34:21 -04:00
bbedward a3f1a3d620 feat(bar): add support for fractional sizes, fit to contents 2026-09-21 13:27:14 -04:00
bbedward 0bd3e85150 settings: fix window rules overflow, unify popout border settings
cards: fix regression that created borders
matugen: run on a low priority worker and seeds dms-colors before other
templates
2026-09-21 11:47:52 -04:00
14Do 1c683e932f sysupdate: collapse dnf rows duplicated across repos (#3524)
dnf prints one row per (package, repo), so a package offered at the same
version by two enabled repos is listed twice and inflates the pending
count. Key the parse on (name.arch, version) and keep the first row.
2026-09-21 09:40:39 -04:00
Huỳnh Thiện Lộc 21cd0a70ce feat(bar): show edit window rule when rule exists (#3516)
* feat(bar): show edit window rule in focused app popout when rule exists

Check existing DMS-managed window rules when the focused window popout
opens. If a matching rule exists for the focused window, show
'Edit window rule' and open the rule in edit mode via showEdit().
Otherwise, keep showing 'Add window rule' for new rule creation.

* fix(bar): address PR review feedback for focused window rules

- Clear matchingRule up front in checkMatchingRule() to prevent showing previous window's rule while async query is in flight
- Reuse existing catalog term 'Edit Window Rule' to leverage existing translations
2026-09-21 09:38:12 -04:00
neofion cb037e2543 keyboard layout: add user-editable label overrides for compact mode (#3503)
* keyboard layout: add user-editable label overrides for compact mode

* keyboard layout: add translator context and fix search index for label overrides
2026-09-21 09:36:56 -04:00
bbedward 567c14f6d9 processlist: design changes 2026-09-20 22:40:40 -04:00
SatoshoeandClaude Opus 5 dacffb16b3 i18n: pick the DankCommon translation for the chosen locale (#3505)
* i18n: pick the DankCommon translation for the chosen locale

updateLocale() switches the shell translation, but the DankCommon one was
picked once at startup from the system locale and never changed. With DMS set
to English on a German system, plugin strings that fall back to I18n.tr()
(Suspend, Reboot, ...) stayed German. _pickCommonTranslation() now uses the
resolved locale and runs again from useLocale(); for English, where no common
file exists, the table is cleared.

Co-Authored-By: Claude Opus 5 (1M context) <[email protected]>

* i18n: clear the DankCommon table when falling back to English

_fallbackToEnglish() left the common table as it was picked for the previous
locale. Setting Language to "System default" on a system without a shell
translation (an English one, cs_CZ, ...) goes through that path, so the shell
switched to English while DankCommon strings stayed in the old language - the
same mismatch this branch fixes for the useLocale() path.

The function now resolves to "en" before re-picking, which clears the table
because no English common file exists, and it also covers the case where the
selected translation file is missing or fails to parse.

Co-Authored-By: Claude Opus 5 (1M context) <[email protected]>

---------

Co-authored-by: Claude Opus 5 (1M context) <[email protected]>
2026-09-20 21:18:53 -04:00
bbedward 64ba6163e2 settings: proper color swatches everywhere 2026-09-20 21:18:13 -04:00