{ 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" "com.mitchellh.ghostty" "thunar" "claude" ]; 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; }; }; }; }