rose-pine-nix/test.nix
2023-11-04 19:46:21 -04:00

100 lines
2 KiB
Nix

{ self
, inputs
, ...
}:
let
common = {
catppuccin.flavour = "mocha";
users.users.test = {
isNormalUser = true;
home = "/home/test";
};
};
ctpEnable = {
enable = true;
catppuccin.enable = true;
};
in
{
name = "module-test";
nodes.machine = { lib, ... }: {
imports = [
self.nixosModules.catppuccin
inputs.home-manager.nixosModules.default
common
];
boot.loader.grub = ctpEnable;
programs.dconf.enable = true; # required for gtk
virtualisation = {
memorySize = 4096;
writableStore = true;
};
home-manager.users.test = {
imports = [
self.homeManagerModules.catppuccin
];
inherit (common) catppuccin;
xdg.enable = true;
home = {
username = "test";
stateVersion = lib.mkDefault "23.11";
};
manual.manpages.enable = lib.mkDefault false;
programs = {
alacritty = ctpEnable;
bat = ctpEnable;
bottom = ctpEnable;
btop = ctpEnable;
fish = ctpEnable;
glamour.catppuccin.enable = true;
helix = ctpEnable;
home-manager.enable = false;
kitty = ctpEnable;
lazygit = ctpEnable;
micro = ctpEnable;
neovim = ctpEnable;
starship = ctpEnable;
tmux = ctpEnable;
zathura = ctpEnable;
};
gtk =
ctpEnable
// {
catppuccin.cursor.enable = true;
};
services = {
mako = ctpEnable;
polybar =
ctpEnable
// {
script = ''
polybar top &
'';
};
};
wayland.windowManager.sway = ctpEnable;
wayland.windowManager.hyprland = ctpEnable;
};
};
testScript = _: ''
machine.start()
machine.wait_for_unit("home-manager-test.service")
machine.wait_until_succeeds("systemctl status home-manager-test.service")
machine.succeed("echo \"system started!\"")
'';
}