Files

136 lines
4.0 KiB
Nix

{ config, inputs, pkgs, ... }:
let
# Repo wallpapers are symlinked to ~/.config/wallpapers by xdg.configFile below
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; symlinked to ~/.config/wallpapers for noctalia
xdg.configFile."wallpapers".source = ./wallpapers;
programs.noctalia = {
enable = true;
settings = {
bar.default = {
start = [ "launcher" "clipboard" "volume" "brightness" "active_window" ];
center = [ "workspaces" ];
end = [ "network" "sysmon" "battery" "notifications" "clock" "session" ];
thickness = 35;
padding = 17;
radius = 17;
margin_edge = 5;
margin_ends = 5;
margin_opposite_edge = 5;
widget_spacing = 15;
background_opacity = 0.9;
border = "outline";
capsule = true;
capsule_fill = "surface_variant";
capsule_opacity = 1.0;
capsule_padding = 6.0;
capsule_thickness = 0.76;
contact_shadow = true;
panel_overlap = 1;
shadow = true;
hover_highlight = true;
concave_edge_corners = true;
# cpu + ram rendered as one capsule labelled "sysmon"
capsule_group = [
{
id = "sysmon";
members = [ "cpu" "ram" ];
fill = "surface_variant";
opacity = 1.0;
padding = 6.0;
}
];
};
dock = {
enabled = true;
# Desktop entry IDs (filename without .desktop)
pinned = [ "zen" "codium" "ghostty" "thunar" "claude-desktop" ];
position = "bottom";
smart_auto_hide = true;
icon_size = 20;
radius = 15;
show_dots = true;
show_running = true;
show_instance_count = true;
magnification = true;
magnification_scale = 1.35;
background_opacity = 1.0;
border = "outline";
concave_edge_corners = true;
shadow = true;
main_axis_padding = 20;
cross_axis_padding = 10;
item_spacing = 5;
inactive_opacity = 0.85;
inactive_scale = 0.85;
};
idle = {
# screen turns off first, then locks after
behavior_order = [ "screen-off" "lock" ];
behavior = {
screen-off = {
action = "screen_off";
enabled = true;
timeout = 300; # 5 min
};
lock = {
action = "lock";
enabled = true;
timeout = 600; # 10 min
};
};
};
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 = 2.0;
panel = {
clipboard_placement = "attached";
launcher_placement = "attached";
};
shadow.alpha = 0.5;
};
# Theme follows wallpaper colours (Catppuccin palette, muted scheme, dark mode)
theme = {
builtin = "Catppuccin";
source = "wallpaper";
mode = "dark";
wallpaper_scheme = "muted";
};
wallpaper = {
enabled = true;
directory = wallpaperDir;
default.path = defaultWallpaper;
};
};
};
}