Regenerated
This commit is contained in:
@@ -0,0 +1,52 @@
|
||||
{ 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)
|
||||
);
|
||||
};
|
||||
};
|
||||
}
|
||||
@@ -0,0 +1,55 @@
|
||||
{ lib, config, pkgs, flakeRoot, ... }:
|
||||
|
||||
let
|
||||
#################################
|
||||
# Read package list from config file
|
||||
#################################
|
||||
packagesConfPath = "${flakeRoot}/assets/traveldroid/conf/packages.conf";
|
||||
raw = builtins.readFile packagesConfPath;
|
||||
|
||||
rawLines = lib.splitString "\n" raw;
|
||||
|
||||
# Guard against splitting into characters accidentally
|
||||
_guard = assert !(builtins.stringLength raw > 1 && builtins.length rawLines == builtins.stringLength raw); true;
|
||||
|
||||
# Clean each line: remove CRs, comments, trim whitespace
|
||||
cleanLine = line:
|
||||
let
|
||||
noCR = lib.replaceStrings [ "\r" ] [ "" ] line;
|
||||
noInlineComment = lib.head (lib.splitString "#" noCR);
|
||||
in
|
||||
lib.strings.trim noInlineComment;
|
||||
|
||||
# Filter out empty lines
|
||||
entries = builtins.filter (l: l != "") (map cleanLine rawLines);
|
||||
|
||||
# Resolve attribute paths in pkgs
|
||||
resolvePkg = name:
|
||||
let
|
||||
parts = lib.splitString "." name;
|
||||
found = lib.attrByPath parts null pkgs;
|
||||
in
|
||||
if found == null then
|
||||
(throw ''
|
||||
packages.nix: package not found in pkgs
|
||||
Token : ${builtins.toJSON name}
|
||||
packages.conf : ${packagesConfPath}
|
||||
Hint : check the attribute name on search.nixos.org/packages
|
||||
'')
|
||||
else
|
||||
found;
|
||||
|
||||
# Final system-wide package list
|
||||
packages = builtins.seq _guard (map resolvePkg entries);
|
||||
|
||||
in {
|
||||
#################################
|
||||
# Allow unfree packages globally
|
||||
#################################
|
||||
nixpkgs.config = { allowUnfree = true; };
|
||||
|
||||
#################################
|
||||
# System packages
|
||||
#################################
|
||||
environment.systemPackages = packages;
|
||||
}
|
||||
@@ -0,0 +1,31 @@
|
||||
{ lib, config, pkgs, flakeRoot, ... }:
|
||||
|
||||
let
|
||||
# Default username fallback
|
||||
username = config.defaultUser or "henrov";
|
||||
|
||||
# Path to the starship config in assets
|
||||
starshipConfSrc = "${flakeRoot}/assets/traveldroid/conf/starship.toml";
|
||||
in
|
||||
{
|
||||
#################################
|
||||
# Enable Starship system-wide
|
||||
#################################
|
||||
environment.systemPackages = [ pkgs.starship ];
|
||||
|
||||
#################################
|
||||
# Home Manager user configuration
|
||||
#################################
|
||||
_module.args.hmUsers = {
|
||||
${username} = {
|
||||
programs.starship = {
|
||||
enable = true;
|
||||
};
|
||||
|
||||
# Copy the starship.toml from assets to ~/.config/starship.toml
|
||||
home.file = {
|
||||
".config/starship.toml" = { source = starshipConfSrc; };
|
||||
};
|
||||
};
|
||||
};
|
||||
}
|
||||
@@ -0,0 +1,31 @@
|
||||
{ pkgs, config, lib, ... }:
|
||||
|
||||
let
|
||||
# Resolve the default username from host config
|
||||
username = config.defaultUser or "henrov";
|
||||
in
|
||||
{
|
||||
############################
|
||||
# System-level packages
|
||||
############################
|
||||
environment.systemPackages = with pkgs; [
|
||||
thunar # main file manager
|
||||
thunar-archive-plugin # zip, tar, rar, 7z support
|
||||
thunar-volman # auto-mount removable drives
|
||||
gvfs # support for external drives and network shares
|
||||
xarchiver # optional GUI archive manager
|
||||
];
|
||||
|
||||
############################
|
||||
# Home Manager user-level configuration
|
||||
############################
|
||||
# Direct assignment to the user avoids recursiveUpdate issues
|
||||
home-manager.users."${username}" = {
|
||||
home.stateVersion = "26.05"; # required
|
||||
|
||||
home.sessionVariables = {
|
||||
FILE_MANAGER = "thunar";
|
||||
USERNAME = username;
|
||||
};
|
||||
};
|
||||
}
|
||||
@@ -0,0 +1,11 @@
|
||||
{ config, pkgs, lib, zen-browser, ... }:
|
||||
|
||||
let
|
||||
# Grab the Zen Browser package for this host system
|
||||
zenBrowser = zen-browser.packages.${pkgs.stdenv.hostPlatform.system}.default;
|
||||
in
|
||||
{
|
||||
environment.systemPackages = [
|
||||
zenBrowser
|
||||
];
|
||||
}
|
||||
@@ -0,0 +1,33 @@
|
||||
{ config, pkgs, lib, ... }:
|
||||
|
||||
{
|
||||
#################################
|
||||
# Zsh configuration
|
||||
#################################
|
||||
programs.zsh = {
|
||||
enable = true;
|
||||
enableCompletion = true;
|
||||
syntaxHighlighting.enable = true;
|
||||
|
||||
# Oh My Zsh integration
|
||||
ohMyZsh = {
|
||||
enable = true;
|
||||
theme = ""; # default theme, you can override per user
|
||||
plugins = [
|
||||
"git"
|
||||
"sudo"
|
||||
"extract"
|
||||
"colored-man-pages"
|
||||
"command-not-found"
|
||||
"history"
|
||||
"docker"
|
||||
"kubectl"
|
||||
];
|
||||
};
|
||||
|
||||
# Uncomment if you want additional features
|
||||
# autosuggestion.enable = true;
|
||||
# autocd = true;
|
||||
# dotDir = "${config.xdg.configHome}/zsh";
|
||||
};
|
||||
}
|
||||
Reference in New Issue
Block a user