Commit graph

2072 commits

Author SHA1 Message Date
2 * r + 2 * t
7b13772f26 chore: add not per-mon opts to readme 2026-04-12 21:07:00 +10:00
2 * r + 2 * t
f1fb68c721 feat: add auto save on option changes 2026-04-12 03:58:35 +10:00
2 * r + 2 * t
dd15b1d80e refactor: static -> anonymous namespace 2026-04-12 03:54:01 +10:00
2 * r + 2 * t
644e70679b refactor: move attached types to own files 2026-04-12 03:52:51 +10:00
2 * r + 2 * t
fc1b3ca2d6 chore: remove unused import 2026-04-12 03:47:42 +10:00
2 * r + 2 * t
42b9e57eae fix: use singleton for conf writes 2026-04-12 03:46:37 +10:00
2 * r + 2 * t
3d012e86b3 chore: remove old Config.save() 2026-04-12 03:45:17 +10:00
2 * r + 2 * t
41ba4f6271 feat: add per monitor enabled prop
Enabled prop should be used in favour of general.excludedScreens. The
latter has been removed
2026-04-12 03:39:58 +10:00
2 * r + 2 * t
bea72b4a64 feat: emit signals on startup
Except loaded signal
2026-04-12 03:20:25 +10:00
2 * r + 2 * t
5a13cc22f6 feat: add unknown option toasts 2026-04-12 03:14:04 +10:00
2 * r + 2 * t
ee9dce0268 fix: propagate per monitor overlay signals to main 2026-04-12 03:01:58 +10:00
2 * r + 2 * t
ef00097a51 feat: improve error toasts 2026-04-12 02:46:42 +10:00
2 * r + 2 * t
3e1b235a75 feat: watch parent dirs recursively for changes 2026-04-12 02:41:42 +10:00
2 * r + 2 * t
b987a39d79 feat: debounce reloads 2026-04-12 02:33:29 +10:00
2 * r + 2 * t
1ad6f657ae fix: don't emit until final retry
Also more descriptive error messages
2026-04-12 02:30:33 +10:00
2 * r + 2 * t
24367dfb3a feat: add config load/fail toasts 2026-04-12 02:30:33 +10:00
2 * r + 2 * t
72e0a218fd refactor: move file logic to RootConfig + to own file 2026-04-12 02:07:00 +10:00
2 * r + 2 * t
697784abce fix: remove key from loaded keys on sync
A sync goes through the property setter, which sets the key as loaded.
But a sync is not considered an explicit set, so unset it after
2026-04-12 01:20:40 +10:00
2 * r + 2 * t
9b1b33a388 feat: remove file prefix on signals 2026-04-12 01:19:48 +10:00
2 * r + 2 * t
746d1af826 feat: allow resetting options
Also make options changed programmatically (from QML, etc) mark
themselves as loaded
2026-04-12 00:00:56 +10:00
2 * r + 2 * t
93b5fb5f4f feat: make all configs sparse 2026-04-11 23:53:36 +10:00
2 * r + 2 * t
31d7a77929 fix: popouts anims, should not be per-monitor
Anims are not per-monitor
2026-04-11 23:49:40 +10:00
2 * r + 2 * t
9be9ec10a6 fix: per monitor configs
Use c++ singleton pattern for monitor manager and bind appearance tokens
properly
Also use scoped properties on ContentWindow
2026-04-11 23:44:13 +10:00
2 * r + 2 * t
37b61fedc9 chore: update readme 2026-04-11 23:27:27 +10:00
2 * r + 2 * t
ae8d344f84 fix: qualify attached props on non-Item components
They do not have parents, so they won't inherit the config scope
otherwise
Animations are not per monitor
2026-04-11 22:43:31 +10:00
2 * r + 2 * t
71dd7b4db8 chore: format QML imports 2026-04-11 22:17:24 +10:00
2 * r + 2 * t
f65723ad71 feat: never destroy config singletons
There are lots of issues with it, so instead give ownership to C++ and
don't destroy on reloads (this does mean it does not reload, but it
doesn't need to anyways)
2026-04-11 22:11:30 +10:00
2 * r + 2 * t
9cf3ad4094 fix: broken config uses + move gif speed adjustments to Config.general 2026-04-11 21:54:27 +10:00
2 * r + 2 * t
ba95924578 fix: dashboard showXXX confs in the wrong file 2026-04-11 21:44:03 +10:00
2 * r + 2 * t
d99fefdd34 fix: use correct anim tokens in QML 2026-04-11 21:41:31 +10:00
2 * r + 2 * t
180120801a feat: add proper anim tokens to Tokens 2026-04-11 21:33:18 +10:00
2 * r + 2 * t
b5dcd07ab8 fix: use correct size tokens in QML 2026-04-11 21:24:16 +10:00
2 * r + 2 * t
2b2d5a4873 feat: move size tokens to subobject 2026-04-11 21:22:58 +10:00
2 * r + 2 * t
3a37d77d1f feat: replace qml config module with c++ module 2026-04-11 21:18:56 +10:00
2 * r + 2 * t
0429650a6e feat: Tokens attached object points to Config.appearance 2026-04-11 21:16:35 +10:00
2 * r + 2 * t
324acb492a fix: ensure singletons exist when evaluating attached props 2026-04-11 21:08:09 +10:00
2 * r + 2 * t
4f2b90147e fix: signal and emit macros -> keywords
Only the ones inside macros are unable to use the keywords
2026-04-11 20:16:37 +10:00
2 * r + 2 * t
d5d6f70f52 feat: add load/save + fail signals 2026-04-11 20:10:27 +10:00
2 * r + 2 * t
e283ee2a9f fix: fully qualify Q_PROPERTY types 2026-04-11 19:49:05 +10:00
2 * r + 2 * t
8f51502f91 fix: use qobject parent 2026-04-11 19:44:22 +10:00
2 * r + 2 * t
edf6184c81 fix: retry reading file before warn
Some programs will not write to the file atomically, causing us to read
a malformed JSON while the write is in progress. Add a retry system to
avoid false warnings.
2026-04-11 19:16:44 +10:00
2 * r + 2 * t
a53aff357a feat: expose default configs to qml 2026-04-11 18:58:45 +10:00
2 * r + 2 * t
08cc492698 fix: ensure tokens are not bound multiple times 2026-04-11 18:36:29 +10:00
2 * r + 2 * t
f15b234753 fix: create tokens singleton when global config is created
GlobalConfig depends on TokenConfig to forward properties
2026-04-11 18:35:05 +10:00
2 * r + 2 * t
9a8c5ec7f9 feat: add debug logging 2026-04-11 18:15:59 +10:00
2 * r + 2 * t
71f27bb45f feat: add per monitor configs
Per monitor configs go in a separate file in the monitor dir, e.g.
`monitors/<MONITOR_NAME>/shell.json`
2026-04-11 18:09:21 +10:00
2 * r + 2 * t
a932a68a40 feat: add config scope 2026-04-11 15:40:19 +10:00
2 * r + 2 * t
9f8fd7d660 feat: make tokens separate singleton 2026-04-11 15:36:18 +10:00
2 * r + 2 * t
f4b851b5b3 feat: advanced -> tokens 2026-04-11 15:09:59 +10:00
2 * r + 2 * t
4ff97c8306 fix: crash/block on qml engine reload 2026-04-11 03:27:19 +10:00