nixos/shared/modules/home-manager/noctalia.nix
2026-02-12 16:20:21 -07:00

47 lines
1.5 KiB
Nix

# For reference of the available options, see https://docs.noctalia.dev/getting-started/nixos/#config-ref
#
# To see a diff of the nix-set and GUI-set (current) settings, run:
# nix shell nixpkgs#jq nixpkgs#colordiff -c bash -c "colordiff -u --nobanner <(jq -S . ~/.config/noctalia/settings.json) <(noctalia-shell ipc call state all | jq -S .settings)"
{ config, lib, pkgs, inputs, ... }:
let
cfg = config.noctaliaShell;
in
{
imports = [
inputs.noctalia.homeModules.default
];
options.noctaliaShell = {
enable = lib.mkEnableOption "Noctalia shell";
settings = lib.mkOption {
type = lib.types.attrs;
default = { };
description = "Noctalia shell settings. See https://docs.noctalia.dev/getting-started/nixos/#config-ref";
};
};
config = lib.mkIf cfg.enable {
programs.noctalia-shell = {
enable = true;
# Override with calendarSupport for evolution-data-server integration
package = inputs.noctalia.packages.${pkgs.stdenv.hostPlatform.system}.default.override {
calendarSupport = true;
};
settings = cfg.settings;
};
# Disable conflicting services that Noctalia replaces
services.swayosd.enable = lib.mkForce false;
services.swaync.enable = lib.mkForce false;
# Disable wlsunset - Noctalia has built-in night light
services.wlsunset.enable = lib.mkForce false;
# Disable waybar - Noctalia has its own bar
waybarConfig.enable = lib.mkForce false;
programs.waybar.enable = lib.mkForce false;
};
}