mirror of
https://github.com/AvengeMedia/DankMaterialShell.git
synced 2026-10-27 21:47:50 -04:00
8334ed3c19de4566329596c30f3de9b43860b6e1
668
Commits
| Author | SHA1 | Message | Date | |
|---|---|---|---|---|
|
|
8e9cd3f4a5 |
Squashed commit of the following:
commit f9bcdfdce1ab4a028cd9ccc08bc5fc6748e2d9e8 Author: bbedward <[email protected]> Date: Thu Sep 17 16:37:31 2026 -0400 wallpaper: regenerate colors when the active light/dark wallpaper changes commit 0b2dd37971a7b360f26b1a302297335963282313 Author: bbedward <[email protected]> Date: Thu Sep 17 16:16:03 2026 -0400 lyrics: keep the active line in place when rows above resize, remember the lyrics view commit db56722c7af9cb50a9c779a39e12a54dc5a607a6 Author: bbedward <[email protected]> Date: Thu Sep 17 16:04:33 2026 -0400 lyrics: emphasize vocals per part instead of per group commit 934e0676d9d63f6a7cb314c693ac256c1b56e057 Author: bbedward <[email protected]> Date: Thu Sep 17 15:59:56 2026 -0400 lyrics: drop focus from overlapping lines when their vocals end commit 3fe092446b1f27d7acc1a0a2a2ecc5d19f455275 Author: bbedward <[email protected]> Date: Thu Sep 17 15:17:28 2026 -0400 media: add lyrics attribution, unison provider, shrink album art slightly when its low res commit f54b3e2c1dc589451f449218d4985758b88757b4 Author: bbedward <[email protected]> Date: Thu Sep 17 14:35:52 2026 -0400 media/zurvan: style changes commit 9ea5aecfba4c638e2f08ab288706d2fb3143ea0b Author: bbedward <[email protected]> Date: Thu Sep 17 14:02:03 2026 -0400 rebase fixes commit b2b04d12d2e9118346d0e5950b348aa222d58e50 Author: bbedward <[email protected]> Date: Thu Sep 17 13:46:03 2026 -0400 i18n: overhaul battery popout: redesign clipboard: fix style of pinned button and remove number sidebar commit 3057940bb28a29de22f90f5630a2c68113707d16 Author: bbedward <[email protected]> Date: Thu Sep 17 11:48:16 2026 -0400 displayconfig: show valid fractional scales only, fix custom setter commit 2bbe9e4b4c4278d1aca8632d650feba912a1c0af Author: bbedward <[email protected]> Date: Thu Sep 17 10:47:43 2026 -0400 media/zurvan: restyle commit 33299ef45261c4f0a7e8e663c1ed2f0996e3ac78 Author: purian23 <[email protected]> Date: Thu Sep 17 02:50:08 2026 -0400 refactor(clipboard): add click to open image previews & misc adjustments commit 9809aad3c466bf4974b887a37a806039e58b47ed Author: purian23 <[email protected]> Date: Thu Sep 17 02:35:20 2026 -0400 add(media): dynamic sizing - tests: start the fixture bus with dbus-broker or dbus-daemon commit 75a20eeb5a1299af1b0dd0d99cb374b4c5c8f15f Author: purian23 <[email protected]> Date: Thu Sep 17 00:30:04 2026 -0400 fix(dash): position bar-triggered popout once commit 1536691beb0bf2cd58fa3e1b2106eeeb9317a39c Author: purian23 <[email protected]> Date: Wed Sep 16 23:58:50 2026 -0400 dash & cc: operation freedom commit f3a2ae13bffbbdb92134af23138dc9a253f69e09 Author: bbedward <[email protected]> Date: Wed Sep 16 23:12:58 2026 -0400 lyrics: keep track identity independent of mpris length commit a59dd84908486f23e07172a6fca4c76eed27d31f Author: bbedward <[email protected]> Date: Wed Sep 16 22:41:44 2026 -0400 more zurvan changes commit fda890225576e6fc740946486c5c05cdc58ebd77 Author: bbedward <[email protected]> Date: Wed Sep 16 22:10:55 2026 -0400 media: more style changes commit 2170f055e3700466f87c0f6a072cb67e5e610574 Author: bbedward <[email protected]> Date: Wed Sep 16 20:00:36 2026 -0400 zurvan style tweaks commit 10795b2f2c41fcd1c24f5625324ff0ea7dd3e4ae Author: bbedward <[email protected]> Date: Wed Sep 16 18:32:48 2026 -0400 media: adjust styling of zurvan player commit 363eb10f7f53681d8f36fc6e9648205c9d5879d2 Author: bbedward <[email protected]> Date: Wed Sep 16 17:30:05 2026 -0400 lyrics: dont classify 401s as failures commit 0267c7110e14285fe4a611dbc78aee93e77e6ec8 Author: bbedward <[email protected]> Date: Wed Sep 16 17:07:34 2026 -0400 media: create the dank lyrics engine with multiple providers and priority support media: add zurvan style player and make it default commit 0aae835377cc96c5ec8383650df914058f604a42 Author: bbedward <[email protected]> Date: Wed Sep 16 10:22:36 2026 -0400 remove dumb test commit 8610121b1cb20b4b4b557170b7df52af39f4efff Author: bbedward <[email protected]> Date: Wed Sep 16 10:16:00 2026 -0400 notifications: redesign card header commit 868b73740a575d51577fa3aaff5abc1ccd53043c Author: bbedward <[email protected]> Date: Wed Sep 16 09:24:13 2026 -0400 clipboard: tweak image preview style commit 6de9a1ba7c306269889227b892703dc822049ac9 Author: purian23 <[email protected]> Date: Tue Sep 15 22:52:40 2026 -0400 clipboard: new size variants & image previews commit 05909190a2fb93a3a2c68fc711c07c3ffc09a529 Author: bbedward <[email protected]> Date: Tue Sep 15 19:14:41 2026 -0400 qs: drop the delegates the layout and output migrations left behind commit 6ca48caf7c2141e7e5f55a7d4634e0803a90c6b9 Author: bbedward <[email protected]> Date: Tue Sep 15 19:03:03 2026 -0400 config: one implementation of the compositor fragment mechanics commit 9f024c001e0c661a19c35b92bb36a6a9758f9d4d Author: bbedward <[email protected]> Date: Tue Sep 15 18:34:03 2026 -0400 compositor: name capabilities instead of checking identity in the ui commit 90067f14ed38e0cbf919e35cbf333f62240bc585 Author: bbedward <[email protected]> Date: Tue Sep 15 18:19:57 2026 -0400 settings: read every default from the spec commit 7f7ae95ed3093c5df7cb4bf5d23b718497a769ff Author: bbedward <[email protected]> Date: Tue Sep 15 15:47:13 2026 -0400 notifications: watch screen sharing from the service side commit a470ed448cbddb849922e80afdd2b13eb85f08f9 Author: bbedward <[email protected]> Date: Tue Sep 15 15:15:38 2026 -0400 rebase fix commit dc8f05fa0ca4650a40e32fb59614ca1b7df75f38 Author: bbedward <[email protected]> Date: Tue Sep 15 10:57:38 2026 -0400 dash: keep cards still when edit mode opens commit bc2001359613fd9b47ba0000a8f8f081d412a166 Author: bbedward <[email protected]> Date: Tue Sep 15 10:16:48 2026 -0400 settings: own the full spec again and merge the shared greeter keys settings: drop sidebar hints that repeat their own label cc/dash: change edit interface design slightly commit ee963f54b259eced7ec23701194539441b264db0 Author: purian23 <[email protected]> Date: Mon Sep 14 23:43:56 2026 -0400 settings: update island notification handling to use bar context commit 4d6f9fde4401001625f0352f97821ce5034a7e1c Author: bbedward <[email protected]> Date: Mon Sep 14 23:21:28 2026 -0400 greeter: read the shared settings schema instead of a duplicated one commit 70e4bdaec84efa3d68438ef235e46762cee38101 Author: bbedward <[email protected]> Date: Mon Sep 14 22:42:31 2026 -0400 osd, toast, launcher: start open motion after onFrameSwapped signal commit ddfd28b7be6dd4b0940512897d835107dbab1f23 Author: bbedward <[email protected]> Date: Mon Sep 14 21:12:37 2026 -0400 notifications: wait for onFrameSwapped signal before showing notification popup Lets the layer-surface map before rendering the body, resulting in better animation appearance commit 24efe6f8a18b36bb42c6b399086ffa5c5e2aa9c5 Author: purian23 <[email protected]> Date: Mon Sep 14 18:55:46 2026 -0400 notifications: adjust animation durations - Mapped the layer-shell surface - Fixed group chevron/dismiss button commit 52389ecf5cc586e912c26a345004814e37f4048a Author: bbedward <[email protected]> Date: Mon Sep 14 18:10:33 2026 -0400 dash: spacing tweak of tabbart commit 0285a70c1b07d09558c450c1eeb925a5c903069f Author: bbedward <[email protected]> Date: Mon Sep 14 17:55:43 2026 -0400 blah commit a1abc7a8df94032b01b51189b214aa21543f7218 Author: bbedward <[email protected]> Date: Mon Sep 14 17:40:10 2026 -0400 shrink window CSD height commit db20f7e9bb93c7dce503e410e82e15e7a03b1e7d Author: bbedward <[email protected]> Date: Mon Sep 14 17:16:16 2026 -0400 windows: center titles commit 7268712bdf58c5c1903606f24a392d64655a4ad5 Author: purian23 <[email protected]> Date: Mon Sep 14 16:45:44 2026 -0400 notifications: updated entry/exit paths - Added popout option in island mode - Fixed cards getting stuck & out of place when multiples arise at once commit 3a3f0b3061bd0a7ce895152ec5a056600e41e7e8 Author: bbedward <[email protected]> Date: Mon Sep 14 16:34:36 2026 -0400 battery: make cc variant consistent commit ee569ddef3bf2875d42347d18b57f493f492b243 Author: bbedward <[email protected]> Date: Mon Sep 14 16:15:42 2026 -0400 battery: remove bottom text footer thing commit 817c4e46eac52c95d91f418e3ddbafdab0888b5c Author: purian23 <[email protected]> Date: Mon Sep 14 15:34:18 2026 -0400 settings: rework interface style and bar hub layouts - Separate global surface styling from per-surface overrides on Interface style - Move bar management into the hub header and render island settings inline - Cut redirect banners down to one per page and point them at the right row commit 03a4e45d65aec83c927c7419a4a0f3f252e0e955 Author: bbedward <[email protected]> Date: Mon Sep 14 14:52:20 2026 -0400 launcher: fix inconsistency in niri overview variant commit e74246d058a5db215200606eb9f9c662706d8689 Author: bbedward <[email protected]> Date: Mon Sep 14 14:21:10 2026 -0400 plugins: eval symlinks in repo lookup commit 7dd2cddebf4819da51ff7da792560372f5d9a03e Author: bbedward <[email protected]> Date: Mon Sep 14 09:09:46 2026 -0400 update common commit a8c1f77fe2d952b1ec33e622b2951e5382860c9e Author: purian23 <[email protected]> Date: Mon Sep 14 02:05:09 2026 -0400 island: fix search input focus on launcher commit 2d1f8bf5338ca5e0a4a58f0f18b54b92dfe5e5ee Author: purian23 <[email protected]> Date: Mon Sep 14 01:29:05 2026 -0400 tooltips: add further label & accessibility parity commit 3ebfe85d57553b4803b52d5e5ea417b8abec5bcf Author: bbedward <[email protected]> Date: Sun Sep 13 23:28:29 2026 -0400 ui: drop tooltips from obvious icon buttons, keep labels on Accessible.name commit a8e7a072b2bad394c5c5d9fd60eaff5240ce37d4 Author: bbedward <[email protected]> Date: Sun Sep 13 22:55:28 2026 -0400 widgets: dim filled action buttons when disabled commit 0dc58825344ebfc5479d2a3bc75b5d2ae014131a Author: bbedward <[email protected]> Date: Sun Sep 13 22:45:34 2026 -0400 settings: one compositor include workflow for outputs, layout, input, window rules, cursor and binds commit 9fc8c8e53c18de18b33ccdfe1e1abed84e01b219 Author: purian23 <[email protected]> Date: Sun Sep 13 22:27:28 2026 -0400 theme: add focus ring settings & replace text fields w/search fields aligned to m3e specs commit 8359fea68230172b1c10df08831efdf944fbbd64 Author: bbedward <[email protected]> Date: Sun Sep 13 20:37:49 2026 -0400 auth: share one pam stack parser between the greeter, lock probe and polkit commit bf05136e78aada16e41a7d0b7164a7f543d65760 Author: bbedward <[email protected]> Date: Sun Sep 13 20:24:01 2026 -0400 tests: replace golden files and dump-only fixtures with hand-written assertions commit f2cd6a877b561a5078e7b6cbad8348e9165158ca Author: bbedward <[email protected]> Date: Sun Sep 13 19:15:02 2026 -0400 display: split DisplayService into brightness, night mode and refresh rate services commit fa7ce5fe836e4f00646c80eb3cb50ecc004f4524 Author: bbedward <[email protected]> Date: Sun Sep 13 18:19:26 2026 -0400 battery: m3e redesign commit 04576106158c009374d9564d18852cf7ea1f9284 Author: bbedward <[email protected]> Date: Sun Sep 13 17:21:32 2026 -0400 shell: one window model and one keyboard layout source hosts: put change handlers on the observed object instead of proxy properties commit e4750c767b27d4650b95d42930410ad090d6ca87 Author: bbedward <[email protected]> Date: Sun Sep 13 15:39:10 2026 -0400 shell: replace connections with bound property handlers in per-item and per-screen components commit 8efb05dc014f0d09b36d6112b03e6f4e1f60d1d2 Author: bbedward <[email protected]> Date: Sun Sep 13 13:43:10 2026 -0400 display config: move output parsing, identifiers and geometry into a pure model commit e9b8174812b2da316eeae42e3989f2f269ef5649 Author: bbedward <[email protected]> Date: Sun Sep 13 12:52:46 2026 -0400 slideout: build content on first open commit b899f307650cf5cc646de90ac666b6e1731bbc4f Author: bbedward <[email protected]> Date: Sun Sep 13 12:28:11 2026 -0400 services: stop using weakmap for workspace, window and term caches commit b90e9a4c2a72744685f79cf613ab80660721389f Author: bbedward <[email protected]> Date: Sun Sep 13 10:35:48 2026 -0400 workspaces: one model with per-compositor adapters, no compositor branches in widgets shell: stop hot reload while the session lock is held commit e200e17e96e06b4fd7e0dd596b50dcbbc254494a Author: purian23 <[email protected]> Date: Sun Sep 13 02:36:41 2026 -0400 dock: mix widgets between pinned apps - Pinned apps become individual units in edit mode with a saved per-dock order, while running windows stay one unit in compositor order. - Fix the Window.window Connections crash - Add right-click-to-edit empty dock space option and dock edit / editFor ipc commands commit cad3ba78727695419a4fe8a96c90146bbf5e6120 Author: bbedward <[email protected]> Date: Sun Sep 13 00:51:35 2026 -0400 launcher: create plugin instances only when a query needs them commit aed25c3c75d0c24a17a940c162a6956a372c4e0f Author: bbedward <[email protected]> Date: Sat Sep 12 23:45:19 2026 -0400 settings: rebuild about, printer, wifi, display and window rules pages on settings blocks popouts: drop inconsistent headers commit 3a20c2c9528fe1fed3464085492af3bebdcdf809 Author: bbedward <[email protected]> Date: Sat Sep 12 17:41:18 2026 -0400 launcher: consolidate host code and logic commit 4e53b470d5beaffa54687c8164e492ee41472e49 Author: bbedward <[email protected]> Date: Sat Sep 12 15:37:44 2026 -0400 surfaces: collapse connected/standalone popout and modal hosts typography: make font weight work and follow m3 weights settings: fix reset to default shifting rows commit ce71b5dc3ca0e96ee11b906b1ea3399d3d7d93ac Author: bbedward <[email protected]> Date: Sat Sep 12 15:02:25 2026 -0400 dock: move widgets, launcher, apps and trash as units in edit mode commit 6ebaef52d885744a45f3db7d48c3b6d0924993b2 Author: bbedward <[email protected]> Date: Sat Sep 12 13:24:31 2026 -0400 plugins: add examples for dash and dock commit 067cabc95991f5676a19746d3cad0700eb525082 Author: bbedward <[email protected]> Date: Sat Sep 12 12:25:59 2026 -0400 settings: fix v18 migration commit 55d07f3bba352972c768acdd7b6705f80fac4e0f Author: bbedward <[email protected]> Date: Sat Sep 12 12:09:56 2026 -0400 ci: fix fails commit 2e81531dd6980f0331af80fe5beca1d695c58f06 Author: bbedward <[email protected]> Date: Sat Sep 12 11:49:39 2026 -0400 surfaces: add windowRadius token to make surfaces actually follow settings and match the compositor windows surfaces: change default radius (Strength 50) from 12->16 settings: add result to default for everything settings: further re-organization and re-structuring position of things settings: remove dead keys dock: remove hardcoded border and respect border setting bar: add a third style and color options ci: hookup QML testing commit a2fd8abd37e0ff1ef67af9bfa4e7679e7aa338bd Author: bbedward <[email protected]> Date: Sat Sep 12 09:20:00 2026 -0400 dash: size surface width to the width of the largest tab commit 93394549a2cb3f7647b564ba71621e113c83e106 Author: bbedward <[email protected]> Date: Sat Sep 12 00:11:15 2026 -0400 bar/workspaces: restore old style, respect color choices, make pills default > segments commit 71f8351a3b11f8d06e45dd28db4d501e54a27f9a Author: purian23 <[email protected]> Date: Fri Sep 11 23:48:04 2026 -0400 dbar: initial M3E remaster pass on shared chrome w/dock & island commit 1711716073f660afd519ab0af88d3c8177f1a8c8 Author: bbedward <[email protected]> Date: Fri Sep 11 21:44:31 2026 -0400 dash: only show focus ring when KB navigating commit 6037de06471e7fa80ec36088e9e86cbf2e4d3941 Author: bbedward <[email protected]> Date: Fri Sep 11 21:41:53 2026 -0400 launcher: scope plugin and clipboard refreshes, paint the keystroke before plugin search commit 78c9ab990b7665e76762dadd65d1a1d23275a405 Author: bbedward <[email protected]> Date: Fri Sep 11 21:16:36 2026 -0400 launcher: one open-session reset, faster keystroke settle commit 01b15051363715bfb2bfe1d905b4b573fb4e49ac Author: bbedward <[email protected]> Date: Fri Sep 11 20:47:45 2026 -0400 dash: fix kb navigation on overview commit 27465074e1fa395a844cc3b804a362ee7a4e4f70 Author: bbedward <[email protected]> Date: Fri Sep 11 16:58:53 2026 -0400 dash: replace material shapes on resource cards with a ring gauge commit 5e41b85a1df69885c57a41ab44a43ef38b0c5560 Author: bbedward <[email protected]> Date: Fri Sep 11 16:33:48 2026 -0400 qml: share bases for registry browsers, fade windows and plugin list settings Fixes fade window focus, list setting load write-back and the missing Theme.onError commit be3542ab8fc1949a256d6498b5c4a0379b86e023 Author: bbedward <[email protected]> Date: Fri Sep 11 16:11:15 2026 -0400 popout: fix pixel jumps commit 2ad0e9e2f5b12f13f0acc9733c29c4c42d640df7 Author: bbedward <[email protected]> Date: Fri Sep 11 15:52:52 2026 -0400 popout: fade the surface fill with the content commit 4b11e21b1a09895f67ca1b6b858fe772500e4a2c Author: bbedward <[email protected]> Date: Fri Sep 11 15:13:14 2026 -0400 desktop widgets: read and write saved geometry through one path commit 21ed01bbb20627d4d68bbb704b9f2bb50b45c911 Author: bbedward <[email protected]> Date: Fri Sep 11 15:10:02 2026 -0400 surfaces: bind modal and popout backends to their handle commit 362859d810b768621061f0429c39b17ff3b00184 Author: bbedward <[email protected]> Date: Fri Sep 11 14:30:27 2026 -0400 notifications: move the popup context menu onto DankContextMenu commit 8942b622f5929e854fbcf145e7f34f4637904731 Author: bbedward <[email protected]> Date: Fri Sep 11 14:20:49 2026 -0400 colorpicker: design changes consolidate context menus commit 29be554d488aefd9a8f6e4e5f5d094147e3b214d Author: bbedward <[email protected]> Date: Fri Sep 11 12:48:02 2026 -0400 dash: add analog clock option commit 43748726983a466e19e4b642399ea040d4095de9 Author: bbedward <[email protected]> Date: Fri Sep 11 12:12:51 2026 -0400 popouts: fix spacing inconsistencies dash: redesign overview media card osd: more redesign dash/overview: remove row cap and make it dynamic commit 14a3a315d94336cac6e8eb77e08965503717d780 Author: bbedward <[email protected]> Date: Fri Sep 11 09:23:53 2026 -0400 shell: dedupe bar ipc handlers, weather resets, color options, launcher icons commit 9f2b6d4bbe6f5954a33b5853ecea0ef0ac4b483e Author: purian23 <[email protected]> Date: Thu Sep 10 23:52:39 2026 -0400 dock: add spacing option & update defaults commit 3e6cb55488a42ade23728bcf4d8608efab2e6e0f Author: bbedward <[email protected]> Date: Thu Sep 10 23:29:07 2026 -0400 session: collapse the monitor cycling setters onto one helper commit 613e756d8bf88b3c2e6ae7edcede4c680da72456 Author: bbedward <[email protected]> Date: Thu Sep 10 21:56:38 2026 -0400 dock: share the hover bounce animation across dock buttons commit 8d8f801874ddf5dcc3b299405de458183e758c7c Author: bbedward <[email protected]> Date: Thu Sep 10 21:46:44 2026 -0400 settings: share one picker window for bar and desktop widgets commit e3c90efbce4d7d11adf0cceefb8e9758e7d9099c Author: bbedward <[email protected]> Date: Thu Sep 10 21:24:10 2026 -0400 network: merge wired and wifi info modals commit 43f75e6a3dfc988f3adc8c7d659fff5529ed6db8 Author: purian23 <[email protected]> Date: Thu Sep 10 21:22:06 2026 -0400 island: unify new dashboard dynamic sizing & activities - New wallpaper carousel and Colum/Row options - Fixed island controller overlap in bar widget settings - Fixed island widgets click to hide activity - Expanded island IPC cyle targets commit 805611efca91bea029894436dad9baa6dd492461 Author: bbedward <[email protected]> Date: Thu Sep 10 19:40:27 2026 -0400 bar: share context menu window and tooltip offset across widgets also fix Media art glitches and things commit 17a08c4c7e56312d0b3a7732978223f569828aaf Author: bbedward <[email protected]> Date: Thu Sep 10 19:00:48 2026 -0400 osd/media: respect follow album accent option commit 6a753a7ab6304568f178bc3ec0910a9132020dd2 Author: bbedward <[email protected]> Date: Thu Sep 10 18:57:15 2026 -0400 theme: fix surface elevation commit af4f44eba649923bfb0928423a24fc6d115518c4 Author: bbedward <[email protected]> Date: Thu Sep 10 18:45:09 2026 -0400 m3e: redesign OSDs, Forms, etc. commit 1d2add180a661157b3c06a1221edae21bdbcb765 Author: bbedward <[email protected]> Date: Thu Sep 10 17:19:07 2026 -0400 rebase fixes commit ac39a7745cfe88bcfd3826f64cfd55ed41b18b3e Author: bbedward <[email protected]> Date: Thu Sep 10 16:51:16 2026 -0400 tray: share one item delegate and icon for both bar orientations commit 642eeb0f4b5d0a912fc44c134fc10adf8a5b5291 Author: bbedward <[email protected]> Date: Thu Sep 10 16:33:36 2026 -0400 bar: share one delegate for running apps in both orientations commit 7f69e42f3bef9025d411acfc768deb3865338922 Author: bbedward <[email protected]> Date: Thu Sep 10 15:56:33 2026 -0400 bar: share one monitor pill for cpu, ram, temp and disk widgets commit f5507dc3b2df6929521e87cd820eb45a3e3077ad Author: bbedward <[email protected]> Date: Thu Sep 10 14:03:00 2026 -0400 island: reuse widget model, surface palette and layout metrics in hosts commit aceac03ba0c9a2b0aa1a47f1b62a380fc785ec6d Author: bbedward <[email protected]> Date: Thu Sep 10 13:36:47 2026 -0400 osd: share one level osd for volume, brightness, mic and media commit 1b4a68d10c5b59f3ecf3e7c44974a2cb83964246 Author: bbedward <[email protected]> Date: Thu Sep 10 13:12:30 2026 -0400 shell: consolidate connected surface state into one slot store commit d7edc23cf14a10cd275fdf3888d24482d43a15f3 Author: bbedward <[email protected]> Date: Thu Sep 10 12:19:30 2026 -0400 shell: restore centered dash popout for center-section widgets commit d2f9405de9e7ade7db402826cfb0520249c58a2b Author: bbedward <[email protected]> Date: Thu Sep 10 12:11:29 2026 -0400 dash/media: always show placeholder player when no players are playing commit 55535082f53163914440e1e858aa78246bc4e40a Author: bbedward <[email protected]> Date: Thu Sep 10 12:08:10 2026 -0400 dock: fix sizing, exclusive zone, edit mode and multi-instance settings commit c82cc738ca2d20e7a4363b7abb86ad6d9e7bb172 Author: bbedward <[email protected]> Date: Thu Sep 10 11:08:40 2026 -0400 settings/plugins: redesign page commit 9c283e0f6c4b7d812362124fdd36fc15327ef03c Author: bbedward <[email protected]> Date: Wed Sep 9 20:44:26 2026 -0400 shell: route widget instances and support same-edge layouts commit 405a3b397c264688b2271d6acec881a4aea4864f Author: bbedward <[email protected]> Date: Wed Sep 9 18:05:37 2026 -0400 shell: share bar content and clock presentation commit 65a6d2df8e870af259b1542c896fce60be4f6cb6 Author: bbedward <[email protected]> Date: Wed Sep 9 15:49:23 2026 -0400 shell: centralize layout ownership commit 585aeb4e1cba737cc4007fc214ac1e109d3e0f19 Author: purian23 <[email protected]> Date: Wed Sep 9 18:05:13 2026 -0400 dock: initial m3e remaster commit a2e646f2fb364f042fb134e74e9014386b80971b Author: bbedward <[email protected]> Date: Wed Sep 9 14:58:38 2026 -0400 plugins: consolidate upgrade path commit 139253504c5f62d522fbc6109689c11ccaec7493 Author: bbedward <[email protected]> Date: Wed Sep 9 14:43:28 2026 -0400 settings: use icons on all outlined text fields commit a9c1e569b8428e4f3748da345200e8a62c90ba20 Author: bbedward <[email protected]> Date: Wed Sep 9 14:32:33 2026 -0400 launcher: fix KB navigation focus and modes commit ac64eb52d360322a0e952844b41b58532d5ae32f Author: bbedward <[email protected]> Date: Wed Sep 9 14:05:10 2026 -0400 m3e: remove inconsistent widget usage, adjust SystemUpdater rredesign, fix window decoration inconsistencies commit 0eac1d3e22cb879c7b7e9205fba0ed9c17b89dcd Author: bbedward <[email protected]> Date: Wed Sep 9 13:25:44 2026 -0400 server: consolidate ipc routing and subscription forwarding commit ed289e5c2c867eb2d6e1319d9517885e6e80d1a3 Author: bbedward <[email protected]> Date: Wed Sep 9 12:56:29 2026 -0400 plugins: redesign management and browsers with m3 expressive commit 7f3a526e2d38c24edbb5d51c4c9c550a0bc93752 Author: bbedward <[email protected]> Date: Wed Sep 9 11:00:07 2026 -0400 settings: fix inconsistent ripple effect radius commit 8f1fb8a11e92b1811808325c136199fef10d4a53 Author: bbedward <[email protected]> Date: Wed Sep 9 10:26:39 2026 -0400 aqueous: fix variant terms commit 2ba861947092cb657d983702c842e88ffc6fb0fa Author: bbedward <[email protected]> Date: Wed Sep 9 10:01:50 2026 -0400 running apps: fix delegate bug commit b37c925e85cb6902bbb3005d92a5b522e3648116 Author: bbedward <[email protected]> Date: Wed Sep 9 00:18:57 2026 -0400 bump dml-common commit 5e83c40c56c624df74306efc839d707ec8d6aa14 Author: bbedward <[email protected]> Date: Wed Sep 9 00:12:16 2026 -0400 settings: incorporate user & accounts tab, consolidate security, add M3E textfield commit 278370c7909226ca42f0a53cbd9ca2bd5f2fb4e7 Author: bbedward <[email protected]> Date: Tue Sep 8 18:17:25 2026 -0400 m3e: unify shell surfaces and refresh process monitoring commit e2d5860d3952da717ba9073e857133f2538a70b0 Author: bbedward <[email protected]> Date: Tue Sep 8 15:15:17 2026 -0400 notifications: fix expansion timing and simplify the header commit d8f29c221474c2884ec482d26c827de09d581539 Author: bbedward <[email protected]> Date: Tue Sep 8 14:53:11 2026 -0400 icon: install app icon under the conventional name (app id) commit ebeebb70fd4c7538ef5ea867116d9fa7118eee27 Author: bbedward <[email protected]> Date: Tue Sep 8 14:47:09 2026 -0400 notifications: refine card styling and separate app icons from image previews commit d6133d93ed314ca02a9a3b634872ee32484a0bb3 Author: bbedward <[email protected]> Date: Tue Sep 8 14:27:18 2026 -0400 settings: unify expressive rows and drag and drop commit 0a4d14752a2a1e8dd60b3056fd006d02d818d6a4 Author: bbedward <[email protected]> Date: Tue Sep 8 12:32:16 2026 -0400 settings: use native action button hover state commit dc8c4564cc964ab50ed28a3e9e4ca7b13ebfbcb1 Author: bbedward <[email protected]> Date: Tue Sep 8 09:55:42 2026 -0400 shell: refine weather, slider controls, and tooltips commit bec5c6ad0119e22a3cb69975d135d3b72654f77e Author: bbedward <[email protected]> Date: Mon Sep 7 18:43:39 2026 -0400 theme: tweak token values commit 8519cbc4bbb396a8b6779764ff0f5a0945156dcf Author: bbedward <[email protected]> Date: Mon Sep 7 13:43:53 2026 -0400 dankdash: fix grid sizing, controls, notifications, and popout blur commit f2405f2925aa63eba480cff4ddc55119818f8057 Author: bbedward <[email protected]> Date: Mon Sep 7 10:38:07 2026 -0400 dash: redesign media player and migrate its appearance options commit cb57ce04fbd50920a17d9a8ad33e4d20fc856021 Author: bbedward <[email protected]> Date: Mon Sep 7 09:07:01 2026 -0400 lock: add lock m3e redesign commit e89909e3743993dad1bdf17d57ab17f1122dfa3c Author: bbedward <[email protected]> Date: Sun Sep 6 21:24:48 2026 -0400 qs: more loaders, less repetition commit 288335fef67b523f51e22bb234c81bd8b88e7e2c Author: bbedward <[email protected]> Date: Sun Sep 6 20:16:41 2026 -0400 launcher: initial m3e redesign commit 5b7fc75c473491bf086b65a41416325697ae330c Author: purian23 <[email protected]> Date: Sun Sep 6 19:50:14 2026 -0400 feat(motion): new fluid animation variant - Refactored Popouts/Modals for performance passes commit 0fc4f51f4d0b1d297c1886b19be8062d279c505b Author: bbedward <[email protected]> Date: Sun Sep 6 15:36:22 2026 -0400 notifications: tweak animnation stacking behavior on popups commit 4369233794e3bebd890a2b830c6450d0a65eb31a Author: bbedward <[email protected]> Date: Sun Sep 6 15:15:55 2026 -0400 notifications: initial M3E redesign commit eb67a51779c543038ad885ecd406bfe21aecd1e2 Author: bbedward <[email protected]> Date: Sat Sep 5 15:10:37 2026 -0400 ddash: exhaustive overhaul of even more pieces of the system commit 14554a39effd677206f7a3c4b5944d2ae47c2b03 Author: bbedward <[email protected]> Date: Sat Sep 5 12:47:06 2026 -0400 settings: rebase fixes commit d6e0bb604bdb15ed94d77f9e1d85a26381ed6836 Author: bbedward <[email protected]> Date: Sat Sep 5 10:18:38 2026 -0400 ddash: initial rewrite commit 29903114d0d8849b25c6f6e9161765b0ad03da49 Author: bbedward <[email protected]> Date: Fri Sep 4 16:48:23 2026 -0400 cc: tweak s lider size commit 8d14a07864972e4b705e77b371d21f5fdb7c4c07 Author: bbedward <[email protected]> Date: Fri Sep 4 16:44:53 2026 -0400 cc: initial M3E re-design commit 976f968967166c61cec423f3bb3f7a28a5a9ac76 Author: bbedward <[email protected]> Date: Fri Sep 4 15:00:35 2026 -0400 settings: continue to iterate commit a99a1c5ad183e34435a20dd90f19ed84099a1070 Author: bbedward <[email protected]> Date: Fri Sep 4 09:44:55 2026 -0400 stash m3e work |
||
|
|
8c3d3c653c | bluetooth: route headset controls to the active player (#3273) | ||
|
|
641d65cbd9 |
dank16: use the real primary_container and fix light-mode derivation
fixes #3405 fixes #3406 ref #3408 port 1.6 |
||
|
|
c9506bc847 |
core: bump dankgop
port 1.6 |
||
|
|
6e9a657132 |
evdev: open input devices read-only
go-evdev default is O_RDWR but we dont need to open evdev devices RW |
||
|
|
e809733e3a |
feat(display): per-output ICC color profiles and color temperature (#3388)
* feat(display): per-output ICC color profiles and color temperature Rebuild of #3388 on current master: the previous branch was cut from an older base and reverted unrelated fixes in the gamma stack and the display settings UI. ICC profiles: - core/internal/icc: ICC v2/v4 parser (TRC, LUT8/16 and parametric curves, vcgt, description/version/color space) plus gamma ramp generation, with synthetic coverage and optional vendor-profile tests (ICC_TEST_DIR). - wayland manager: load iccProfiles from the compositor's DMS config dir, build the ramp from the profile when one is set (falling back to the temperature ramp when it is missing or unparsable), and re-apply on output hotplug and after resume. - ICC ramps apply while the night light schedule is disabled; outputs without a profile keep an identity ramp. - desc/mluc offsets are validated before slicing, so a malformed profile returns an error instead of panicking the daemon. Per-output temperature: - outputTemps in the same config; SetOutputTemp accepts 1000-10000K and the Display Config slider exposes 3000-10000K, which matters for displays calibrated at a higher white point (e.g. a 7000K profile). Gamma control lifecycle: - needsControls() now keeps the controls alive for configured ICC profiles and per-output temperatures, so toggling the night light off no longer destroys the controls and drops the ramps. - Re-apply paths clear the per-output dedup state instead of adding a manager-level guard, which would have suppressed contrast-only writes and the post-resume forced resend (#1235), and left a recreated control without a ramp. - Monitor sleep/disconnect still re-establishes controls when an output comes back. IPC / CLI / UI: - wayland.icc.{getStatus,apply,remove,listOutputs,setTemp,getTemps} - dms icc list | info <file> | apply <output> <file> | remove <output> | status - Display Config output card gains a Color Profile row (browse/apply/remove with description, version, color space and active state) and a per-output color temperature slider, backed by Services/ICCService.qml. Config path: - DMSConfigDir() follows the compositor layout (niri/dms, hypr/dms, mango/dms) via the shared compositor detection and utils.XDGConfigHome(), replacing the hardcoded niri path in both the manager and `dms icc`. Tests: TZ=UTC go test ./... (60 packages ok), including red/green coverage for the icc parser bounds checks and needsControls(). * feat(icc): add `dms icc set-temp` and show per-output temps in `status` The per-output temperature override was reachable from the Display Config slider and from `wayland.icc.setTemp` over IPC, but not from the CLI. - `dms icc set-temp <output> <kelvin>` (alias `setTemp`) sets a per-output override, 1000-10000K, and 0 clears it so the output follows the night light schedule again. Range checking matches the daemon so an invalid value fails in the CLI instead of over IPC. - `dms icc status` gains a Temp column (the override in K, or `schedule`), so an override can be verified without opening the settings UI. Verified against a running daemon: `dms icc status` reports 7000K for the three overridden outputs and `schedule` for the remaining one. * feat(icc): treat the per-output temperature as the profile's reference white point The per-output temperature was documented as the white point a profile was produced at, but an output with a profile ignored it entirely: the ramp was generated from the profile and the temperature only applied to outputs without one (or as the fallback when a profile failed to parse). A display calibrated at 7000K therefore got the profile ramp, and enabling the night light had no effect on it at all. - `ProfileRampWithTemp` composes the profile ramp with the ratio between the target temperature ramp and the reference ramp, so the temperature is the white point the profile describes and the night light shifts relative to it. - `applyGamma` passes the night light temperature as the target, and `noTempTarget` when the schedule is disabled, which leaves profiled outputs at their reference white point and drives plain outputs with the neutral ramp. - The re-apply sentinel stays 0, so it cannot collide with an applied temperature. Covered by TestProfileRampWithTemp (reference == target is a no-op, warmer and cooler targets move the expected channels). Also: `dms icc set-temp` help text describes the reference-white-point semantics. * fix(icc): load the configured profiles even when controls already exist Restoring the upstream "output returned, re-establishing controls" branch made the registry handler establish the gamma controls before the startup post runs, and that post returned early on `m.controlsInitialized`, so the configured ICC profiles and per-output temperatures were never attached: every output reported "(none)" and the night light ran with defaults until the user re-applied a profile by hand. - `initializeControlsAndICC` (the startup post) loads the configuration first and only creates the controls when they are missing. - The loading is split into `loadConfiguredICC` / `applyConfiguredICCForOutput` so it can also run per output. - A hotplugged output now gets its configured profile and temperature as soon as its name is known (name handler) or when its control is created, which also makes the "re-applies on hotplug" claim in the description true. - After attaching, the output's dedup state is cleared so the ramp is written. Covered by TestManager_LoadConfiguredICCWhenControlsAlreadyExist and TestManager_AttachConfiguredICCForNamedOutput. * fix(icc): make the per-output temperature an actual target The per-output value was treated as the white point a profile was produced at, which meant a display with a profile never changed when the user set a temperature: the profile ramp was applied as measured and the value only mattered when a night light target existed. Per-display temperatures were therefore unusable on profiled outputs while the night light was disabled, which is the normal state for users who want each monitor at its own value. - `effectiveTempTarget` decides per output: a per-output override wins over the night light schedule, the schedule applies when there is no override, and `noTempTarget` means neither. `0` is "no override", not 0K. - `applyGamma` composes the override on top of the profile ramp, treating the profile as measured at 6500K (D65), and drives outputs without a profile with the same target so both paths agree. - `dms icc set-temp` help text and the Display Config slider description go back to describing an independent per-output temperature. Covered by TestEffectiveTempTarget (override wins, schedule fallback, none) and the updated TestProfileRampWithTemp (7000K cools, 5000K warms relative to the 6500K reference). * feat(icc): show the profile details in Display Config The profile row only showed the description, so there was no way to tell which profile a display actually has applied (whitepoint, curve type, file provenance) without leaving the settings page. - `ICCStatus` carries the descriptive metadata: class, tone-curve kind (plus gamma or table size), vcgt channels/entries, white point chromaticity with a derived CCT and standard illuminant name, file size and mtime. - `internal/icc` gains `WhitePointXY`, `WhitePointCCT` (McCamy), `WhitePointName` (D50/D65) and `TRCKind`, all covered by tests. - Display Config's Color Profile row gets an info button that opens `ICCProfileInfoModal` with those fields and the profile path, alongside the existing browse/remove actions. - `dms icc info` reports the white point as name/xy/CCT instead of raw XYZ. * fix(icc): keep the daemon, the state snapshot and the temp slider honest A malformed profile could still take the daemon down, the ICC getters ran off the wayland actor goroutine, the pushed state hid a removal, and the per-output temperature slider dropped wheel changes. - `internal/icc`: the tag table was sized with `uint32` arithmetic, so `tagCount*12` wrapped (`0x15555556*12 == 8`) and a 140-byte profile passed the bounds check, allocated ~4.3 GB and then panicked. `ParseFile` runs on the wayland actor goroutine, which has no `recover()`, so a bad profile persisted in `wayland.json` took the daemon down at startup. The count is now compared against the bytes that are actually left before anything is sized with it. - The manager publishes an ICC snapshot (`iccStatus`/`iccTemps`) whenever the actor changes an output's profile or temperature, and `GetICCStatus`/ `GetOutputTemps` serve that snapshot instead of ranging `m.outputs` and reading fields the actor owns. That removes the data race reported by `go test -race` for `dms icc status` running against a hotplug, and keeps the per-profile `os.Stat` off the night light animation path, where it ran on every `updateStateFromSchedule` (including each 25 K step). - `State.ICCProfiles`/`OutputTemps` drop `omitempty`, so removing the last profile pushes `{}` instead of omitting the key: the QML truthiness guard then clears `ICCService.status` instead of leaving the removed profile on screen with a green "active" dot. - `removeOutputByRegistryName` (extracted from the registry remove handler) deletes the `outputNames`/`outputRegNames` entries along with the output, so a disconnected monitor stops being listed by `dms icc status`/`listOutputs`, and a rebound `wl_output` reusing the released object ID cannot attach the previous monitor's profile from the stale name. - The per-output temperature slider sets `wheelEnabled: false` like the other drag-finished sliders: `DankSlider`'s wheel handler assigns `value` and emits `sliderValueChanged` without `sliderDragFinished`, so scrolling dropped the change, froze the label on the scrolled value and destroyed the value binding. Covered by TestParseBytesTagTableBounds (allocates 4,299,161,600 bytes at parser.go:138 and dies with an unrecovered fatal error on the previous commit), TestManager_ICCStatusServesPublishedSnapshot, TestManager_RemoveOutputByRegistryNamePrunesNames and TestManager_ICCStatusConcurrentPublishAndRead; a temporary copy of the getter test against the previous commit reports DATA RACE and passes here. * fix(icc): keep the attached profile when a gamma control is re-created `setupOutputControls` stored a fresh `outputState` for every output it touched, and `createControls` calls it whenever the controls are rebuilt, so recreating a control dropped the output's `iccPath`/`iccProfile`/`outputTemp` — configured state that does not belong to the control. The path is dormant today because `destroyControls` only runs when nothing is configured (`needsControls()` covers `ICCProfiles`/`OutputTemps`), but the snapshot published after `createControls` would then report whatever the rebuilt state holds instead of the profile the display is configured with. `controlStateFor` reuses the state of a known output and resets only what belongs to the new control: the ramp bookkeeping and the failure budget (rampSize, failed, retryCount, lastFailTime, lastTemp, lastGamma, lastContrast). A control that has not reported gamma_size yet has to receive its ramp again, while the profile and the per-output temperature survive. An output seen for the first time still starts from a clean state. Covered by TestManager_ControlStateReuseKeepsAttachedICC. * fix(icc): keep the config a real snapshot and make the per-output temperature apply Third review round. - `Config` is copied by value all over the manager, but `ICCProfiles` and `OutputTemps` are maps, so every copy aliased the ones the manager writes under `configMutex`. `updateStateFromSchedule` stored such a copy in `m.state` and it was marshalled on the connection writer goroutine while `ApplyICC` stored a profile from the IPC goroutine (`fatal error: concurrent map iteration and map write`, which no `recover()` catches); `SaveConfig` marshalled its copy after the unlock, and `loadConfiguredICC`/`attachConfiguredICC` indexed the maps after releasing the lock. Every copy that outlives the lock is cloned now (`cloneConfig`/`configSnapshot`), so a value copy is a snapshot again. - `SetOutputTemp` never created the gamma controls. On a default install (night light off, gamma 1.0, contrast 1.0, no profile, no override) they do not exist, so the `Range` over `m.outputs` matched nothing: the value was written to `wayland.json`, no ramp was applied, and the settings slider snapped back to "Default" until a daemon restart. It now persists first, creates the controls through `ensureOutputControls` (shared with `ApplyICC`), and pushes the state from the actor, and the published temperatures report the configured value even before an output is known. - A TRC is not a video card gamma ramp: `rTRC`/`gTRC`/`bTRC` describe the display's own transfer function, so a gamma-2.2 profile was written as `t^(1/2.2)` — mid gray 0.5 became 47909/65535 — washing the display out instead of correcting it. `ApplyICC` refuses a profile without `vcgt`, the attach path skips one with a warning, and `GenerateGammaRamp` returns an error instead of falling back to the TRC or to an identity ramp. TRC stays profile metadata (`dms icc info`, the settings dialog). - `icc: applied ICC ramp` was logged at Info on every 25 K animation step; it is Debug now, which is where a per-step message belongs. - `I18n.tr("No information available")` in the profile info modal passes its translator context, like every other string this PR adds. Covered by TestManager_ConfigSnapshotOwnsItsMaps, TestManager_ConfigSnapshotConcurrentMarshal (the previous commit dies with `fatal error: concurrent map iteration and map write`), TestManager_SetOutputTempWithoutControlsPublishesValue (the previous commit reports 0 for the value it just stored), TestGenerateGammaRampRequiresVCGT, and the updated TestProfileRampWithTemp, whose fixture now carries an identity vcgt table instead of relying on an empty profile. * fix(icc): push the state when only the ICC part changed Found while sweeping the same class of problem: `stateChanged` compared only the schedule fields, so a change that touches nothing else — applying or removing a profile, `dms icc set-temp` — was treated as "no change" and the notifier never pushed it. The settings page then only caught up because the UI path calls `requestStatus()` afterwards, and the CLI path did not catch up at all, which is the symptom the omitempty fix was meant to remove. `iccStateChanged` compares the ICC profile status and the per-output temperatures, so those changes reach the subscribers on their own. Covered by the new TestStateChanged cases (profile applied, profile removed, profile description changed, output temp changed, unchanged ICC state); the four change cases report `stateChanged() = false` on the previous commit. * fix(icc): keep the night light state, prune names without a control, use a 0 sentinel Fifth review round. - `SaveICCConfig` replaces `SaveConfig` on the three ICC paths (apply, remove, set-temp). Writing the daemon's whole config persisted the night light fields it happens to hold in memory: with the night light on, applying a profile stored `"Enabled": true`, and since the shell only ever sends `wayland.gamma.setEnabled` when the mode is on, turning it off afterwards (an in-memory change on the daemon side, no write) left that `true` on disk — after log out/in the daemon came up driving the schedule while the UI showed night mode off, with no way to resync short of a toggle. The ICC save now reads the file and rewrites only `iccProfiles`/`outputTemps`, so the fields the shell owns stay as they are. - `removeOutputByRegistryName` resolved the output from `m.outputs`, which only has entries once the gamma controls exist. On a default install (night light off, no profile, no override) no control is ever created, so a disconnected monitor kept its `outputNames`/`outputRegNames` entries for the life of the daemon: `dms icc status`/`listOutputs` listed monitors that were gone, and both maps grew with every dock/undock cycle. The object ID is resolved from `m.outputRegNames` (populated for every `wl_output`), the name entries are dropped before the output state is looked up, and a state that is known without a registry name still falls back to matching its own. - The Display Config temperature row used `7000` as its fallback for an output with no override. `publishICCState` only copies entries with `temp != 0`, so the value is absent rather than `0` for an unconfigured output: the card claimed "7000K" while the daemon drove the night light or neutral, and a user who deliberately set 7000K got the "no override" colouring because the highlight tested `!== 7000`. The sentinel is `0` now, which is what the `Default` label branches and the "is overridden" tests were written against. Covered by TestSaveICCConfigKeepsNightLightFields (the previous commit brings the night light back on after a restart), TestManager_RemoveOutputByRegistryNameWithoutControl (the previous commit keeps an unplugged monitor listed) and the existing TestManager_RemoveOutputByRegistryNamePrunesNames. * fix(icc): validate the CLI arguments and the IPC parameters of the ICC commands Sweep of the two surfaces the review has not looked at yet, so the failures are found here instead of in the next round. - `dms icc apply` copied the profile into the config directory before asking the daemon, and only the *parse* was checked locally. A profile the daemon refuses (no `vcgt` table, non-RGB color space) was therefore left in the profile directory for `dms icc list` to keep offering, and an IPC failure left the copy behind as well. The command now checks the same rules the daemon enforces before copying anything, and removes the copy it just made when the request fails (a file that was already there is left alone). - `dms icc list` marks a profile without a `vcgt` table, so the rule that makes `apply` refuse it is visible where the profiles are listed. - `ApplyICC`/`RemoveICC`/`SetOutputTemp` reach the manager over IPC with whatever the caller sent: an empty (or whitespace-padded) output name used to be persisted as an entry in `wayland.json` that no `wl_output` can ever match, and a relative profile path was stored to be resolved again on the next start, from a different working directory. Both are rejected now, before anything is written. Verified with the built CLI against the previous binary: with a profile that has no vcgt table, `dms icc apply` now exits before touching the config directory (`residual=[]`) where the previous one copied the file and went on to the IPC (`residual=[nogamma.icc]`); with a valid profile and no daemon reachable, the previous one leaves `vcgt.icc` behind and this one does not. Covered by TestManager_RejectsInvalidICCArguments. * fix(icc): apply the user gamma and contrast on profiled outputs * fix(icc): recreate failed controls without the night light and allow clearing a per-output temp * test(icc): cover the recreated control and the cleared temperature override Follow-up on |
||
|
|
218f7f752f |
tailscale: handle profile switches and bus updates reactively (#3427)
* tailscale: handle profile switches and bus updates reactively * tailscale: address review feedback on test coverage and dead code |
||
|
|
4141089e63 |
fix(clipboard): preserve pinned state when editing entries (#3412)
* fix(clipboard): preserve pinned state when editing entries * fix(clipboard): address PR review feedback on editEntry * fix(clipboard): validate empty text and entry size in EditEntry * fix(clipboard): gate saving entry on full text load completion * fix(clipboard): add user feedback and error fallback for entry loading * fix(clipboard): keep entry and gate save with error toast on load failure * fix(clipboard): reject non-text edits and add translator contexts * fix(clipboard): support alt text mime types in EditEntry and UI guards * fix(clipboard): pre-fetch entry before opening editor and allow retry on load failure |
||
|
|
13192370f5 |
feat(screenshot): add flag to control HUD scale and visibility (#3398)
* feat(screenshot): add --hud flag to control HUD scale and visibility * fix(screenshot): clamp HUD scale to 1-4 and clarify flag description |
||
|
|
09ddd6da82 |
doctor: add aqueous and scroll
port 1.6 |
||
|
|
5e873170ee |
network: support fortinet vpn with saml and password auth (#3384)
Adds Fortinet gateway support to the NetworkManager openconnect path. A SAML gateway authenticates through the browser, with the loopback redirect handled in core and the session traded for the cookie openconnect needs. Certificate trust is confirmed once and stored as the digest openfortivpn uses. openfortivpn config files can be imported as profiles. A saml-login line selects the browser login, anything else imports as a password profile carrying whatever credentials the file had. Co-authored-by: Claude Opus 5 <[email protected]> |
||
|
|
4b04af121f | outputs: cycle connected displays on niri (#3362) | ||
|
|
8fe918ff24 |
add support for shelly (#3367)
* add support for shelly * fixed terminal failure * updated to have it not allow adding ignore aur * updated error strings * Fixed label port 1.6 |
||
|
|
0f058468a5 |
fix(screenshot): force full-damage commit on cursor toggle (#3365)
* fix(screenshot): force full-damage commit on cursor toggle with compositor v4 * test(screenshot): drop tautological cursor-mismatch test |
||
|
|
b9365610c8 |
feat: support for Aqueous Compositor (#3357)
* updated dank to support aqueous * further updates * aqueous support work * updated to support workspace options better in aqueous * added blur to dms shell for aqueous * added keybinding update * remove unneeded blur * clean up per claud review * swapped to ipc * aqueous: move IPC integration to QML, delete test fixtures (since we dont have a QML test structure even setup), delete in-repo docs * fix staticcheck * aqueous: consolidate more aqueous specific stuff * add aqueous logo --------- Co-authored-by: Zoey <[email protected]> |
||
|
|
8232144bb7 |
core: bump dankgo
fixes #3361 port 1.6 |
||
|
|
24e17a5957 |
hyprland: stop overwriting the config backup during lua migration
fixes #3359 port 1.6 |
||
|
|
a9fce46fec |
feat(screenshot): add touch & stylus support for region capture (#3353)
* feat(screenshot): add touch and stylus input support for region capture * fix(screenshot): guard against finishSelection on touch up during scroll phase port 1.6 |
||
|
|
f402731ef2 |
network: reject weak hotspot passwords before handing them to NetworkManager
fixes #3318 port 1.6 |
||
|
|
c0f775ae49 |
network: keep saved wifi profiles when NM fails with no-secrets
fixes #3313 port 1.6 |
||
|
|
3674d0f480 |
screenshot: resolve region and picker keys through the seat keymap
fixes #3311 port 1.6 |
||
|
|
5f124de8d4 |
fix(screenshot): scale HUD and selection label for HiDPI displays (#3308)
port 1.6 |
||
|
|
7e18a68b82 |
screenshot: add instancelock on runtimedir/wayland-display to prevent
multiple instances from running fixes #3293 port 1.6 |
||
|
|
a665ba8ca5 |
theme: write desktop settings through dconf instead of gsettings
fixes #3280 port 1.6 |
||
|
|
d57e32c5cb |
matugen: give dry runs their own config file
fixes #3279 port 1.6 |
||
|
|
ec22e9e594 |
brightness: retry initial ddc read (#3287)
port 1.6 |
||
|
|
4693178345 |
feat(theme): add a selectable source color mode for wallpaper palettes (#3020)
* feat(theme): add a selectable source color mode for wallpaper palettes DMS always seeds the palette from matugen's most dominant candidate (--source-color-index 0, hardcoded at both call sites). When a large muted region outvotes a smaller vivid one, a visibly warm wallpaper produces a cold palette: one image here goes to #8ad0ee where the warm subject is at hue 46. Adds a Source Color setting with seven values. Dominant is the default and is byte-identical to today. Colorful is computed in Go before matugen runs: quantize the image (Wu for the starting clusters, then a weighted k-means in Lab), score the result the way caelestia-cli does, and hand matugen the resulting hex. Its scoring walks a chroma/tone bar down from 20 until something clears it, which biases the pick toward a colorful, well-lit color rather than whichever muted color covers the most pixels. The remaining five map to matugen's --prefer. - core/internal/matugen/sourcecolor.go: extraction, scoring, and the one helper both matugen call sites now share - buildOnce resolves the seed once, before the StockColors branch, so the dry run and the real run cannot disagree about it - extraction failure logs a warning and falls through to matugen's own extraction; it never fails a theme build - --prefer arrived in matugen 4.1, so it is gated separately from the existing isV4 check; on 4.0.x those five modes degrade to the dominant color instead of aborting on an unknown argument - --source-mode on generate and queue, plus sourceMode on the socket handler - Source Color dropdown in Theme & Colors, defaulting to Dominant Adds github.com/Nadim147c/material/v3 (Apache-2.0, no dependencies) for HCT conversions, Wu quantization and the dislike analyzer. Its QuantizeCelebi is not used: it returns after one unconverged iteration and its Lab.DistanceSquared is a dot product rather than a distance, so it collapses most of an image into a single cluster. * fix(theme): address review feedback on source color mode Two points from review on #3020. The quantize comment pointed at a FOLLOWUPS file that does not exist in this repository. Replaced the reference with the measurement it was standing in for, so the claim is self-contained. setMatugenSourceMode called Theme.generateSystemThemesFromCurrentTheme() directly on top of the regenSystemThemes onChange hook that Spec.set already dispatches. Both feed a 100ms debounce so it was one generation either way, but the direct call was redundant and is gone. * fix(theme): keep {{image}} resolvable in colorful mode Colorful resolves the seed itself and calls matugen with a hex source, which leaves matugen's {{image}} unset: the builtin pywalfox template and any user template using the keyword render the literal string "Null". Pass the wallpaper path alongside dank16 in --import-json-string, as suggested in review, so those templates keep working unedited. The path is made absolute to match what matugen renders for {{image}} in the other modes. * fix(theme): cut translator terms on the source color dropdown Per-mode descriptions were seven of the fifteen new terms this branch adds, and five of them differed by a single adjective. Drop them: the dropdown row already describes what the setting does, and the docs cover each mode. |
||
|
|
0fc4aac964 |
feat(screenshot): add --geometry flag to selection coordinates (#3274)
* feat(screenshot): add -g/--geometry flag to print selection coordinates - Add -g/--geometry persistent flag to print region geometry (X,Y WxH) to stdout. - Skip image buffer allocation, cropping, and file/clipboard/notification actions when in geometry mode. - Support standard Enter/Space confirmation or mouse release via --no-confirm. - Exit with code 1 when selection is cancelled, matching slurp behavior for script integrations. - Support printing geometry across last, window, output, full, and all modes. - Add unit tests in region_geometry_test.go. * refactor(screenshot): deduplicate output bounds and clean geometry result helpers - Add bounds() method on WaylandOutput to deduplicate Hyprland geometry lookup across output capture and search. - Add geometryResult() helper in screenshot package to eliminate redundant CaptureResult literals. - Add GeometryString() method on Region to unify geometry formatting. - Refactor selectedLogicalGeometry() to return Region directly. - Clean up flag validation in runScreenshot. * fix(screenshot): address PR review on geometry coordinates and JSON output - Derive selectedLogicalGeometry from selectionExtent and ext.logical to keep geometry in sync with inclusive selection bounds. - Use pointer int for X and Y in screenshotMetadata so (0,0) origins are preserved in JSON output. - Divide output dimensions by effectiveScale in bounds() for non-Hyprland compositors and handle transform rotation. - Convert stored device coordinates to logical units in captureLastRegion geometry mode. - Update and expand unit tests for inclusive bounds, preselection, and scaled outputs. * fix(screenshot): prevent geometry query from clobbering last region and handle niri window geometry - Guard SaveLastRegion in captureRegion with !s.config.Geometry to prevent overwriting saved region with logical coordinates. - Return explicit error when attempting window -g on niri instead of printing bogus 0,0 0x0 rect. - Populate Region dimensions in captureNiriWindow. |
||
|
|
99e2368b1c |
feat(screenshot): add live preview panel for scroll capture (#3269)
* feat(screenshot): add live preview panel for scroll capture - Port scrolling live preview from dms-quick-capture backend to native screenshot. - Calculate dynamic preview panel geometry placed beside the capture hole on the side with most available space. - Render downscaled live stitched canvas with dark translucent background and white border in drawScrollOverlay. - Include preview panel in Wayland input regions and allow completing capture by clicking the preview panel. - Update cursor shape to pointer hand when hovering over preview or control buttons. - Add unit tests for layout, hit testing, and canvas rendering. * fix(screenshot): bound scroll preview aspect ratio to recent canvas tail - Derive preview aspect ratio from a bounded tail window of the canvas (maxPreviewRows = frameW * maxHeight / minImageW). - Prevent preview panel width from collapsing below minImageW and disappearing when stitched rows exceed ~4.5x width. - Render the recent window rows in drawScrollPreview to maintain a stable panel size and display live incoming content. - Add unit test for long scrolling capture preview bounds. |
||
|
|
875d32176d |
wayland/gamma: expose contrasta and gamma settings
fixes #3255 |
||
|
|
95ee917e37 |
feat(screenshot): support 4-corner resizing while holding Ctrl (#3259)
* feat(screenshot): support 4-corner resizing while holding Ctrl - Hit-test selection corners when Ctrl is held to allow resizing. - Set opposite corner as fixed anchor and update dynamic cursor shape (NwseResize/NeswResize). - Draw corner handle indicators when Ctrl is held or during active resize. - Add 'Ctrl resize/move' to overlay HUD and provide complete glyph coverage for HUD labels. - Add comprehensive unit tests covering hit testing, inverted dragging, incremental handle damage, and glyph coverage. * fix(screenshot): invalidate background cache on handle and shift modifier changes - Track backgroundHandles and backgroundShift in RenderSlot.cacheValid. - Rebuild background slot and HUD when handle or shift modifier states change with an existing selection, preventing incremental re-dimming from punching holes in the HUD. - Fix trailing newline in region_resize_test.go for golangci-lint. * fix(screenshot): gate redraw and handle dimming on render modifier changes - Only trigger redrawSurface when Shift or Ctrl modifier states actually change, preventing redundant redraws when tapping Alt, Super, or Locks. - Only re-dim and damage corner handle bounding boxes in overlayDelta and overlayDamage when handles move or their visibility changes, preventing unnecessary re-dimming of stationary handles over the HUD. - Add TestOverlayDeltaIdenticalOverlayNoHandleDimming test. * fix(screenshot): measure hud text advance accurately to prevent pill overflow - Use (1+len(item.desc))*(charW+1) when calculating totalW in drawHUD, matching the full 9px advance used when drawing space and description. - Add TestHUDDimensionsContainText to verify HUD pill dimensions enclose all text items with correct padding across all variant combinations. * fix(screenshot): compare handle rect sets in overlay delta and damage - Use slices.Equal to compare prev and cur handleRects in overlayDelta and overlayDamage instead of interior equality. - Properly re-dim and damage handles when selection corners cross monitor boundaries where clamped interior is unchanged but top/bottom/left/right flags change. - Add TestOverlayDeltaHandlesClampedMonitorEdge test. * test(screenshot): verify drawHUD output buffer pixels stay within pill bounds - Extract hudDimensions helper on RegionSelector used by drawHUD. - Update TestHUDDimensionsContainText to drive drawHUD directly into a zeroed buffer and assert no lit pixel falls outside the computed HUD pill boundary across all configuration variants. |
||
|
|
881cfd2fd3 | core: bump dankgo | ||
|
|
4f6841d8d2 | core: load only the mesa egl vendor when the compositor renders on it | ||
|
|
c0135b11e5 | core: update dankgo dep | ||
|
|
5bb6058751 |
feat(clipboard): add a copy-as-text action for entries with a text alternates
- New Entries captured from a mixed image+text offer keep the image as the primary mime i.e. bitmap - Copy Text context-menu item on atlernates Closes #2849 |
||
|
|
ef63de44b4 | core: bump dankgo | ||
|
|
16c098d09b |
fix(doctor): validate QT_QPA_PLATFORMTHEME instead of trusting its presence (#3240)
* fix(doctor): validate QT_QPA_PLATFORMTHEME instead of trusting its presence
dms doctor reported any non-empty QT_QPA_PLATFORMTHEME as healthy, so a
wrong value passed with "All checks passed!" while every Qt app silently
ran without a platform theme: palettes stayed unstyled and QIcon lookups
returned nothing, which is how Quickshell ends up drawing its missing-
icon placeholder for every icon an SNI app such as blueman publishes in
tray menus. The real-world trap is qt6ct-kde — the AUR package name —
set as the theme value; the settings UI toast already documents that
only the qt6ct theme requires the qt6ct-kde package, but the doctor,
the tool meant to catch exactly this, blessed the broken value.
- checkQtPlatformThemePlugin validates both QT_QPA_PLATFORMTHEME and
QT_QPA_PLATFORMTHEME_QT6 (the latter was not reported at all):
qt6ct-kde gets a targeted warning naming the fix, and any other value
has its plugin probed the way the qtengine check does — qmake/qtpaths
are asked for QT_INSTALL_PLUGINS and the conventional file names are
looked up, warning with the exact expected path on a miss
- a miss never warns when it cannot be sure: no Qt build tools and the
version-dependent plasma-integration file name both degrade to info,
mirroring the qtengine check's no-false-alarm policy
- the plugin-root interrogation moves into qtPluginRoots, shared with
the qtengine check
On an affected system:
before: ○ QT_QPA_PLATFORMTHEME · qt6ct-kde
✓ All checks passed!
after: ○ QT_QPA_PLATFORMTHEME · qt6ct-kde
● qt6ct-kde Package name, not a theme
* fix(doctor): probe qtengine plugin with a bare file name
qtenginePluginFile("", major) returns a path with a directory
component, and qtPluginPath joins platformthemes/ again, so the
qtengine check stat'd
<root>/platformthemes/platformthemes/libqt6engine-plugin.so and warned
"Not found" on every correctly installed system. Pass the bare file
name instead, and pin the resolved path with a regression test that
fails on the double join.
Found in review by claude[bot].
* Update core/cmd/dms/commands_doctor.go
Co-authored-by: claude[bot] <209825114+claude[bot]@users.noreply.github.com>
---------
Co-authored-by: claude[bot] <209825114+claude[bot]@users.noreply.github.com>
|
||
|
|
99c5f96575 |
bluetooth: toggle power from the adapter's live state,
fixes #3242 |
||
|
|
887509548b |
fix(theme): take sun times from the local calendar day, not the UTC one (#3237)
* fix(theme): take sun times from the local calendar day, not the UTC one CalculateSunTimesWithTwilight read its reference day off date.UTC(). The event seconds it computes are local mean solar time and lonOffset converts them to UTC, so the instant of a local day's sunrise lands on the previous UTC day east of Greenwich and a local sunset on the next one west of it. Whenever the local and UTC calendars disagree, the function therefore returned a neighbouring day's times. Everything around it already works in local calendar days: the polar branches of CalculateSunTimes build their day from date.Year/Month/Day, thememode's startOfNextDay uses next.Location(), and the gamma scheduler keys its calcDay cache on now.Location(). Only the reference day inside the calculation disagreed. Effect at UTC+8 (Kunming, 25.04N 102.72E): between local sunrise and 08:00 local, computeLocationSchedule got yesterday's sunrise and sunset, both already past, fell through to the next-day branch and got today's sunrise, also past. It reported dark with nextTransition in the past, which schedulerLoop clamps to a one-second wait, so it re-evaluated every second until 08:00 local and then flipped to light on its own. West of UTC the mirror image: at UTC-7 the mode went dark from 17:00 local, when the UTC date rolls over, until the real sunset. The same SunTimes drive the gamma/night-light scheduler, so night light shifted by a day the same way. Fix: derive the reference day from date's own calendar day, keeping dayStart anchored at UTC midnight so the lonOffset arithmetic is unchanged, and take the orbit angle from the same day. Callers whose date is already in UTC are unaffected. Tests: suncalc_refday_test.go covers the reference day east and west of UTC, stability across UTC midnight, and that UTC callers do not move. manager_location_test.go is new to the thememode package and covers computeLocationSchedule at both offsets, including that nextTransition is never in the past. * fix(theme): pick the reference day from the solar day, not the civil one Taking the reference day straight off the caller's calendar day is right for nearly every zone, but not for one shifted a full day away from its own meridian. Apia, Kiritimati, Tongatapu and the Chathams all sit on west longitudes while keeping a UTC+12:45..+14 offset, so their mean solar time and their civil time are a day apart. Every sun event landed on the following local day there, and the location schedule reported dark around the clock. Anchor on the caller's local noon and convert that to mean solar time to pick the reference day. For every other zone this resolves to the same date as before, so Kunming, Los Angeles and London are unchanged to the second. dateOrbitAngle now takes the same reference day, so declination and the equation of time no longer belong to a different day than the events computed from them. Covered at both levels: three antimeridian zones in the suncalc test, and two cases in the location schedule test for the symptom itself. Both fail without this change. |
||
|
|
e1b2279a70 |
fix(keybinds): show hl.unbind + hl.bind overrides from user Lua modules (#3238)
In Hyprland a second bind on an already bound key does not replace the first, both stay live, which is why an override is written as hl.unbind followed by hl.bind. The parser dropped that pair on the floor when it came from a user's own Lua module: - parseLuaLines discarded the unbind whenever the same file rebound the key, so the DMS default was never removed - addBind then treated the rebind as a config bind conflicting with a DMS bind, counted it in bindsAfterDMS and returned false, so it never reached the section The keybinds modal therefore showed the DMS default for that key and the user's actual action was nowhere, which is what #3145 reports. The discard existed to protect dms/binds-user.lua, the file the settings modal writes, which uses the same unbind+bind pair: recording its unbind would have deleted its own rebind too, since that file is also a DMS bind source. The guard was just too coarse, suppressing the unbind entirely instead of exempting the one bind it belongs to. Now the unbind is always recorded, and rebindSources remembers which file unbound and rebound a key so removeUnboundDMSBinds spares that file's own bind. addBind treats a bind as an override, not a conflict, when the same file unbound the key earlier — tracked per file in fileUnbinds, saved and restored around each parsed file so an include cannot leak into its parent. A config bind without a preceding unbind is unchanged: both binds really are live in Hyprland, so it stays a conflict and keeps counting towards "Some DMS binds may be overridden by config binds". No other provider has an unbind concept; mangowc, niri and sway parse formats without one, so this is Hyprland-only. Tests: hyprland_parser_override_test.go covers the reported case, the conflict case without an unbind, a bare unbind with no rebind, and the dms/binds-user.lua round trip. Only the first fails without the fix; the other three pass either way and guard against over-correcting. |
||
|
|
9eaaed3203 |
feat(clipboard): clear only the filtered entries (#3235)
* feat(clipboard): clear only the filtered entries With a search query or type filter active, the clear button deleted every unpinned entry regardless of what the list was showing, so pruning a subset meant deleting entries one by one from the context menu. When the recents list is filtered, the button now clears exactly the entries it shows and the modal stays open on that filter; with no filter the previous behaviour is untouched. A filter that matches nothing does nothing at all, rather than falling back to clearing everything. The tooltip says "Clear Filtered" while a filter is active, and the confirmation names the count. Deleting one id at a time would have cost a round trip and a full state broadcast per entry, so this adds clipboard.deleteEntries: one bolt transaction, one state update, and it skips pinned entries server-side so a bulk delete can never take out saved items. Fixes #3198 * fix(clipboard): add translator context and list deleteEntries in IPC help Review follow-up. The two strings this branch adds carried no translator context: the "Clear Filtered" tooltip in ClipboardHeader and the confirmation body for a filtered clear in ClipboardHistoryContent. Both now say where they appear, and the second one names what %1 is, per CONTRIBUTING. "Clear All" on the same line is deliberately left alone. It is an existing shared term with four other call sites, so a context there would attach a clipboard-specific comment to a term the printer tab also uses. clipboard.deleteEntries was handled but absent from the IPC method listing that `dms debug-srv` prints, which left it undiscoverable right next to clipboard.deleteEntry. Catalogs untouched. * chore: re-trigger CI The lint-and-test failure on |
||
|
|
905726547d |
setup: add headless subcommand for non-interactive installs
ref #2851 |
||
|
|
ac46c7dd1b | dankinstall: refactor tui package, single-source selection state | ||
|
|
c68b7e5333 |
clipboard: survive corrupted bbolt db
fixes #3232 |
||
|
|
b8cceb7b3a | gamma: configurable transition duration for time-based night mode | ||
|
|
e99813b07d |
network: classify AP security by the privacy bit
fixes #3218 |
||
|
|
08dde7f79a |
add: Cellular Network support (rebase of #2765) (#3096)
* feat: add cellular support * fix(settings): resolve cellular tab index collision * fix: address review feedback for cellular support Bump the network API version, drop the deleted term freeze file, regenerate the settings search index, and reuse existing translation terms where they already cover the new cellular UI. * fix: do not assign readonly userPreference when switching network type Assigning SettingsData.networkPreference through the readonly alias threw on click, so the Cellular segment in Control Center did nothing. * fix: make Cellular selectable and the modem row clickable The Control Center type switcher was bound only to preference, so Cellular snapped back to Ethernet. The settings modem row highlighted on hover but had no click handler. Show the modem as a connect target when no APN profiles exist. * fix: create a GSM profile when connecting cellular with none saved Clicking Mobile broadband only activated an existing profile, so a modem with no APN did nothing useful. Fall back to AddAndActivate like ethernet connect. * fix: address second round of cellular review feedback - Guard cellularDevices map with devMutex via snapshot/by-iface/set/remove helpers, mirroring the existing ethernet and wifi accessors - Regenerate mocks with mockery v3 instead of hand-editing mock_Backend.go - Reuse refreshCellularState() in SetCellularEnabled, DisconnectCellular, DisconnectCellularDevice, ActivateCellularConnection and device removal - Wrap retryErr rather than the first error when the auto-config retry fails - Use Theme.surfaceTextSecondary/primaryHover/primaryHoverLight in the cellular-off state instead of hand-rolled Qt.rgba values - Drop the duplicate "No devices found" label so it can no longer render twice with no modem and no saved config Co-Authored-By: Claude Opus 5 (1M context) <[email protected]> * fix: address remaining cellular review comments - Toast "Failed to toggle cellular" instead of always "enable" - Remove unused enableCellularRadio() wrappers - Store Control Center network type as a value, not a list index * fix: pass nmcli connection selector as separate argument `nmcli con mod uuid:<UUID>` is not valid syntax -- nmcli expects the selector keyword as its own argument, so every priority update failed with "no such connection profile". Because practically every NM profile has a UUID, this silently disabled autoconnect-priority and route-metric updates for ethernet and WiFi as well as cellular. Also fix the Cellular settings status text, which said "Connecting..." for a flag that only tracks radio enable/disable, and add the seven cellular terms that were missing from the translation catalogs. Co-Authored-By: Claude Opus 5 (1M context) <[email protected]> * apply review comments * fix lints * update debug doc * fix style inconsistencies --------- Co-authored-by: Yechiel Worenklein <[email protected]> Co-authored-by: Claude Opus 5 (1M context) <[email protected]> Co-authored-by: bbedward <[email protected]> |
||
|
|
d272e7d9da | greetd: re-add embedded greeter for archinstall compatibility | ||
|
|
104bbebbc2 |
ipc: stop cups capability churn from re-dialing the subscribe socket
ref #3140 |
||
|
|
f0867798e6 |
dankinstall: add non-interactive install script (#3063)
fixes #3043 |