53 lines
1.3 KiB
Nix
53 lines
1.3 KiB
Nix
{ lib, pkgs, config, ... }:
|
|
|
|
let
|
|
#################################
|
|
# Determine default username
|
|
#################################
|
|
username = config.defaultUser or "henrov";
|
|
moduleName = "kitty";
|
|
|
|
#################################
|
|
# Paths to assets
|
|
#################################
|
|
assetPath = ../../../assets/traveldroid/conf/${moduleName};
|
|
programFiles = builtins.readDir assetPath;
|
|
|
|
# Convert asset files into a nix attribute set
|
|
files = lib.genAttrs (builtins.attrNames programFiles) (name: {
|
|
source = "${assetPath}/${name}";
|
|
});
|
|
|
|
in
|
|
{
|
|
#################################
|
|
# System-wide packages
|
|
#################################
|
|
environment.systemPackages = [
|
|
pkgs.kitty
|
|
];
|
|
|
|
#################################
|
|
# Home Manager user configuration
|
|
#################################
|
|
_module.args.hmUsers = {
|
|
${username} = {
|
|
|
|
# Enable Kitty through Home Manager
|
|
programs.kitty.enable = true;
|
|
|
|
# Extra user-specific config snippet
|
|
programs.kitty.extraConfig = ''
|
|
# Include the Catppuccin-Mocha theme
|
|
include themes/Catppuccin-Mocha.conf
|
|
'';
|
|
|
|
# Map all asset files into ~/.config/kitty/
|
|
home.file = lib.mkMerge (
|
|
map (name: { ".config/${moduleName}/${name}" = { source = files.${name}.source; }; })
|
|
(builtins.attrNames files)
|
|
);
|
|
};
|
|
};
|
|
}
|