forked from
lass.pds.lassul.us/superconfig
This repository has no description
2.3 kB
49 lines
1{ self, inputs, ... }:
2{
3 perSystem =
4 { pkgs, ... }:
5 let
6 noctalia = inputs.wrappers.lib.wrapModule {
7 imports = [ self.wrapperModules.noctalia-shell ];
8 inherit pkgs;
9
10 # Declarative settings merged into ~/.config/noctalia/settings.json
11 # on every start. Anything not listed here remains user-mutable.
12 settings = {
13 hooks = {
14 enabled = true;
15 # Mirror noctalia's dark mode toggle to the system theme.
16 darkModeChange = ''if [ "$1" = "true" ]; then switch-theme dark; else switch-theme light; fi'';
17 };
18 # noctalia owns the desktop background. It draws a static image (or
19 # a solid colour), unlike the mpvpaper live video wallpaper it
20 # replaced: a looping video on every output means every frame is
21 # full-screen motion, which is unusable for the sunshine-streamed
22 # tablet screen (configs/tablet-screen.nix) and pointless power
23 # draw on the real ones. Pick the image in noctalia's wallpaper
24 # panel; only `enabled` is pinned here.
25 wallpaper.enabled = true;
26 # DDC/CI control for external monitors via ddcutil. Inert on
27 # machines without DDC/CI-capable displays (detection finds
28 # nothing, internal backlight path is used as before).
29 brightness.enableDdcSupport = true;
30 # Don't pop the changelog panel on every startup; it is an
31 # interruption nobody asked for. Note this is *only* the changelog
32 # (UpdateService.showLatestChangelog): the separate telemetry wizard
33 # is gated on noctalia's cache, not on this setting. Telemetry itself
34 # is already off by default (general.telemetryEnabled = false).
35 general.showChangelogOnStartup = false;
36 };
37
38 settingsPatches = [
39 # Show workspace names (not indices) in the bar, and don't
40 # truncate them. The widget caps to 2 chars on vertical bars
41 # regardless; this only affects horizontal bars.
42 ''.bar.widgets.center |= map(if .id == "Workspace" then .labelMode = "name" | .characterCount = 20 else . end)''
43 ];
44 };
45 in
46 {
47 packages.noctalia-shell = noctalia.wrapper;
48 };
49}