Files
nixos-config/home/modules/niri/noctalia/default.nix
T
duynguyen 59624cad0a feat: overhaul config — noctalia shell, niri keybinds, battery, extra packages
- 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
2026-08-14 03:13:46 +07:00

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;
};
};
};
}