- niri: switch from replaceStrings patching to plain config.kdl for simplicity - niri: add Mod+Shift+Q (close), Mod+Shift+HJKL/Arrow (move window), Mod+Shift+1-9 (move to workspace) - niri: add layer-rule to disable background-blur on noctalia bar (fix seam) - noctalia: add capsule_group for cpu+ram (group:sysmon), panel_overlap, contact_shadow; corner_radius_scale 1.0 - noctalia: add all LC_* locale overrides in plasma-localerc (fix vi_VN calendar) - system: TLP (battery), UPower, disable power-profiles-daemon (conflicts with TLP) - system: DDC/CI support (ddcutil + i2c-dev + hardware.i2c) - system: enable fish shell system-wide - packages: add tree, fish, ddcutil; noctalia required services documented - README: full rewrite with current structure, keybinds, fresh-install steps
92 lines
2.4 KiB
Nix
92 lines
2.4 KiB
Nix
{ config, inputs, pkgs, ... }:
|
|
let
|
|
wallpaperDir = "${config.home.homeDirectory}/.config/wallpapers";
|
|
defaultWallpaper = "${wallpaperDir}/even-in-arcadia.png";
|
|
|
|
noctaliaIpc = pkgs.writeShellScriptBin "noctalia-ipc" ''
|
|
set -eu
|
|
exec noctalia msg "$@"
|
|
'';
|
|
in
|
|
{
|
|
imports = [ inputs.noctalia.homeModules.default ];
|
|
|
|
home.packages = [ noctaliaIpc ];
|
|
|
|
# Wallpapers tracked in the repo; linked to ~/.config/wallpapers for noctalia
|
|
xdg.configFile."wallpapers".source = ./wallpapers;
|
|
|
|
programs.noctalia = {
|
|
enable = true;
|
|
settings = {
|
|
bar.default = {
|
|
# "group:sysmon" renders as one capsule containing cpu + ram
|
|
start = [ "launcher" "clipboard" "group:sysmon" "network" ];
|
|
center = [ "clock" ];
|
|
end = [ "notifications" "volume" "brightness" "battery" "control-center" "session" ];
|
|
thickness = 40;
|
|
padding = 10;
|
|
radius = 0;
|
|
margin_edge = 0;
|
|
margin_ends = 0;
|
|
widget_spacing = 8;
|
|
|
|
capsule_group = [
|
|
{
|
|
id = "sysmon";
|
|
members = [ "cpu" "ram" ];
|
|
fill = "surface_variant";
|
|
opacity = 1.0;
|
|
padding = 6.0;
|
|
}
|
|
];
|
|
};
|
|
|
|
idle = {
|
|
behavior_order = [ "lock" "screen-off" ];
|
|
behavior = {
|
|
lock = {
|
|
action = "lock";
|
|
enabled = true;
|
|
timeout = 600;
|
|
};
|
|
screen-off = {
|
|
action = "screen_off";
|
|
enabled = true;
|
|
timeout = 660;
|
|
};
|
|
};
|
|
};
|
|
|
|
lockscreen.wallpaper = defaultWallpaper;
|
|
|
|
nightlight.enabled = true;
|
|
|
|
osd.position = "top_right";
|
|
|
|
shell = {
|
|
font_family = "JetBrainsMono Nerd Font";
|
|
polkit_agent = true;
|
|
corner_radius_scale = 1.0;
|
|
animation.speed = 1.5;
|
|
panel = {
|
|
clipboard_placement = "attached";
|
|
launcher_placement = "attached";
|
|
launcher_session_search = true;
|
|
panel_overlap = 1; # pull panel flush against bar to hide seam
|
|
contact_shadow = true; # gradient at meeting point masks any residual gap
|
|
};
|
|
shadow.alpha = 0.5;
|
|
};
|
|
|
|
theme.builtin = "Kanagawa";
|
|
|
|
wallpaper = {
|
|
enabled = true;
|
|
directory = wallpaperDir;
|
|
default.path = defaultWallpaper;
|
|
};
|
|
};
|
|
};
|
|
}
|