Files
nixos/Droidnix/Prompt
T
2026-03-25 13:00:33 +00:00

209 lines
5.7 KiB
Plaintext

Rewrite my ./generated/modules/traveldroid/desktop/stylix.nix to integrate nicely with my existing flake.nix en host.nix
Avoid infinite recursion
Just look at how to rewrite this, ignore previous interactions around this nix.
Solve the error. That is really important.
error:
… while calling the 'seq' builtin
at /nix/store/s7bvgynzfisna3jdq2cr4jx73xnhxs27-source/lib/modules.nix:402:18:
401| options = checked options;
402| config = checked (removeAttrs config [ "_module" ]);
| ^
403| _module = checked (config._module);
… while calling the 'throw' builtin
at /nix/store/s7bvgynzfisna3jdq2cr4jx73xnhxs27-source/lib/modules.nix:374:13:
373| else
374| throw baseMsg
| ^
375| else
error: The option `stylix' does not exist. Definition values:
- In `/nix/store/fidsc6g16ir0rrf5g8cxdyz0hy24zc5z-source/Droidnix/generated/modules/traveldroid/desktop/stylix.nix':
{
base16Scheme = "/nix/store/fidsc6g16ir0rrf5g8cxdyz0hy24zc5z-source/Droidnix/assets/system/theming/stylix/catppuccin-mocha.yaml";
enable = true;
polarity = "dark";
targets = {
...
Did you mean `lib', `nix' or `stubby'?
Command 'nix --extra-experimental-features 'nix-command flakes' build --print-out-paths '.#nixosConfigurations."traveldroid".config.system.build.nixos-rebuild' --no-link' returned non-zero exit status 1.
------------------------------------------------------------------------
{ lib, config, pkgs, flakeRoot, ... }:
let
username = config.defaultUser or "henrov";
moduleName = "stylix";
# Path to stylix assets
assetPath = ../../../assets/system/conf/${moduleName};
# Read all files in the asset directory
programFiles = builtins.readDir assetPath;
files = lib.genAttrs (builtins.attrNames programFiles) (name: {
source = "${assetPath}/${name}";
});
# Optional stylix.conf
stylixConfFile = "${assetPath}/stylix.conf";
stylixConf =
if builtins.pathExists stylixConfFile
then builtins.readFile stylixConfFile
else "";
# Cursor defaults
cursorName = "phinger-cursors-light";
cursorSize = 24;
in
{
############################
# System packages
############################
environment.systemPackages = [
pkgs.feh
pkgs.st
];
stylix = {
enable = true;
base16Scheme = "${flakeRoot}/assets/system/theming/stylix/catppuccin-mocha.yaml";
polarity = "dark";
targets = {
gtk = { enable = true; };
};
};
############################
# Home Manager user settings
############################
# Use the _module.args.hmUsers style to avoid "option does not exist"
_module.args.hmUsers = {
"${username}" = {
# Copy all stylix config files into ~/.config/stylix/
xdg.configFile =
lib.mapAttrs' (name: value: {
name = "${moduleName}/${name}";
value = { inherit (value) source; };
}) files;
# Optionally include stylix.conf
home.file."${moduleName}/stylix.conf".text = stylixConf;
# Session variables
home.sessionVariables = {
STYLIX_CONF = "$HOME/.config/stylix/stylix.conf";
XCURSOR_THEME = cursorName;
XCURSOR_SIZE = toString cursorSize;
HYPRCURSOR_THEME = cursorName;
HYPRCURSOR_SIZE = toString cursorSize;
};
};
};
}
------------------------------------------------------------------------
flake.nix
{
description = "Droidnix: A dendritic NixOS + Home Manager configuration";
inputs = {
nixpkgs.url = "github:NixOS/nixpkgs/nixos-unstable";
home-manager = {
url = "github:nix-community/home-manager";
inputs.nixpkgs.follows = "nixpkgs";
};
import-tree.url = "github:vic/import-tree";
stylix = {
url = "github:nix-community/stylix";
inputs.nixpkgs.follows = "nixpkgs";
};
zen-browser = {
url = "github:youwen5/zen-browser-flake";
inputs.nixpkgs.follows = "nixpkgs";
};
hyprland.url = "github:hyprwm/Hyprland";
};
outputs = { self, nixpkgs, home-manager, import-tree, stylix, hyprland, zen-browser, ... }:
let
system = "x86_64-linux";
flakeRoot = self;
in {
nixosConfigurations = {
traveldroid = nixpkgs.lib.nixosSystem {
inherit system;
modules = [
./generated/hosts/traveldroid/host.nix
];
specialArgs = {
inherit flakeRoot;
inherit home-manager import-tree stylix hyprland zen-browser;
};
};
};
};
}
------------------------------------------------------------------------
host.nix
{ lib, config, pkgs, flakeRoot, import-tree, home-manager, ... }:
let
hostname = "traveldroid";
modulesPath = "${flakeRoot}/generated/modules/${hostname}";
usersPath = "${flakeRoot}/generated/users";
hostModules = import-tree modulesPath;
globalUsers = import-tree usersPath;
allModules = hostModules.imports ++ globalUsers.imports;
in
{
#################################
# Core system config
#################################
networking.hostName = hostname;
system.stateVersion = "26.05";
#################################
# Imports
#################################
imports =
[
./boot.nix
./hardware-configuration.nix
# REQUIRED for Home Manager
home-manager.nixosModules.home-manager
]
++ allModules;
#################################
# Home Manager integration
#################################
home-manager.useGlobalPkgs = true;
home-manager.useUserPackages = true;
}