Feat: Dashboard tabs and repositioning. New processes view. Settings backend changes #158

Merged
zach merged 21 commits from feat/dashboard-tabs-processes-and-settings-backend into main 2026-09-30 16:51:16 +02:00
Owner

What & why

New nightlight shader

Hyprland plugin + C++ QML extension combo to support a custom shader implementation for nightlight which hooks Hyprland's render pipeline to insert itself after the buffer has been mirrored, meaning the shader doesn't shouldn't show up in screen captures.

New config options

  • Config.display.nightlight.useNative
  • Config.display.nightlight.fadeDuration

Fade duration is not available when useNative == false due to insufficient support from hyprsunset.

Backend config migration

We now have a reliable way to migrate objects in the config file, preserving the user's values cleanly. Can be found in Plugins/ZShell/Config/migration.{c,h}pp.

Usage

// migration.cpp
const QList<ConfigMigrationRule>& ConfigMigrations::rules() {
	static const QList<ConfigMigrationRule> s_rules = {
		migrate("old.object.path", "new.object.path"),
	};
	return s_rules;
}

Once migrated, rules are a no-op and can stay indefinitely (though they shouldn't.)

Related issue

No response

Type

New feature

Tested

  • Build succeeds
  • Existing tests pass
  • Manually verified

Breaking changes?

No response

Checklist

  • CI passes (format, lint, typecheck)
  • Clean commits
  • No new warnings
  • Docs updated if needed
### What & why ## New nightlight shader Hyprland plugin + C++ QML extension combo to support a custom shader implementation for nightlight which hooks Hyprland's render pipeline to insert itself after the buffer has been mirrored, meaning the shader ~~doesn't~~ shouldn't show up in screen captures. New config options - `Config.display.nightlight.useNative` - `Config.display.nightlight.fadeDuration` Fade duration is not available when `useNative == false` due to insufficient support from hyprsunset. ## Backend config migration We now have a reliable way to migrate objects in the config file, preserving the user's values cleanly. Can be found in `Plugins/ZShell/Config/migration.{c,h}pp`. ### Usage ```cpp // migration.cpp const QList<ConfigMigrationRule>& ConfigMigrations::rules() { static const QList<ConfigMigrationRule> s_rules = { migrate("old.object.path", "new.object.path"), }; return s_rules; } ``` Once migrated, rules are a no-op and can stay indefinitely (though they shouldn't.) ### Related issue _No response_ ### Type New feature ### Tested - [x] Build succeeds - [ ] Existing tests pass - [x] Manually verified ### Breaking changes? _No response_ ### Checklist - [ ] CI passes (format, lint, typecheck) - [x] Clean commits - [x] No new warnings - [x] Docs updated if needed
zach added 20 commits 2026-09-30 15:16:49 +02:00
separate dashboard and settings changes to new branch
C++ / fmt (pull_request) Failing after 5s
C++ / build (pull_request) Failing after 9s
C++ / clang-tidy (pull_request) Failing after 10s
JS/TS / fmt (pull_request) Successful in 5s
JS/TS / lint (pull_request) Successful in 7s
Python / static (pull_request) Successful in 26s
Rust / build (pull_request) Successful in 46s
Python / verify (pull_request) Successful in 1m38s
Rust / fmt (pull_request) Successful in 28s
Rust / clippy (pull_request) Successful in 49s
7cc673430c
zach added 1 commit 2026-09-30 15:18:25 +02:00
remove unrelated files
C++ / fmt (pull_request) Failing after 4s
C++ / build (pull_request) Failing after 13s
C++ / clang-tidy (pull_request) Failing after 18s
JS/TS / fmt (pull_request) Successful in 6s
JS/TS / lint (pull_request) Successful in 8s
Python / static (pull_request) Successful in 24s
Rust / build (pull_request) Successful in 54s
Rust / fmt (pull_request) Successful in 32s
Python / verify (pull_request) Successful in 1m45s
Rust / clippy (pull_request) Successful in 46s
e86d1e8220
zach changed title from Feat/dashboard tabs processes and settings backend to Feat: Dashboard tabs and repositioning. New processes view. Settings backend changes 2026-09-30 15:19:29 +02:00
zach merged commit 42026ba5e5 into main 2026-09-30 16:51:16 +02:00
zach deleted branch feat/dashboard-tabs-processes-and-settings-backend 2026-09-30 16:51:16 +02:00
Sign in to join this conversation.