Compare commits

...

2 Commits

Author SHA1 Message Date
henrov 16361d7f68 Working on reshuffling 2026-03-19 13:02:17 +00:00
henrov ca92609994 deleted generated files 2026-03-19 13:02:16 +00:00
3 changed files with 79 additions and 142 deletions
+38 -72
View File
@@ -734,90 +734,56 @@ in
** =generated/modules/apps/zenbrowser.nix= ** =generated/modules/apps/zenbrowser.nix=
This is top file of this level which contains just an import statement for all relevant files and/or the subfolder in this folder This is top file of this level which contains just an import statement for all relevant files and/or the subfolder in this folder
#+BEGIN_SRC nix :tangle generated/modules/apps/zenbrowser.nix :noweb tangle :mkdirp yes :eval never-html #+BEGIN_SRC nix :tangle generated/modules/apps/zenbrowser.nix :noweb tangle :mkdirp yes :eval never-html
# ./generated/modules/apps/zenbrowser.nix { lib, flakeRoot, ... }:
{ lib, pkgs, ... }:
let let
username = "henrov"; # vervang door je echte gebruikersnaam # --- Program-specific paths/assets ---
programName = "zenbrowser";
programAssets = ../../../assets/system/conf/${programName};
programFiles = builtins.readDir programAssets;
files = lib.genAttrs (builtins.attrNames programFiles) (name: {
src = "${programAssets}/${name}";
});
in in
{ {
flake.nixosModules.zenbrowser = { config, pkgs, lib, ... }: # Top-level toggle for this program
options.enable${lib.str.capitalize programName} =
lib.mkEnableOption "Enable ${programName} program";
{ # Wrap everything in config if enabled
options.mySystem.apps.zenbrowser.enable = config = { config, pkgs, ... }: let
lib.mkEnableOption "Enable Zen Browser"; # Determine whether the program is enabled
enableProgram = config.enableZenbrowser or false;
config = lib.mkIf (config.mySystem.apps.zenbrowser.enable or false) { # Determine username safely *after config exists*
username = config.defaultUser or "henrov";
# --- Home Manager gebruiker --- in lib.mkIf enableProgram {
home-manager.users.${username} = {
home.stateVersion = "26.05";
home.username = username;
home.homeDirectory = "/home/${username}";
# --- Thunar en plugins --- # Top-level container for all apps
home.packages = with pkgs; [ myApps = {
zen-browser ${programName} = {
]; enable = true;
assetsDir = programAssets;
files = files;
user = username;
# Optional: more program-specific options can go here
# e.g., theme = "dark";
# plugins = [ "adblock" "session-manager" ];
}; };
}; };
};
}
#+END_SRC
** =generated/modules/apps/packages.nix= # --- Home Manager user configuration ---
This will import all packages listed in ./assets/system/apps/packages.conf home-manager.users.${username} = {
#+BEGIN_SRC nix :tangle generated/modules/apps/packages.nix :noweb tangle :mkdirp yes :eval never-html home.stateVersion = "26.05";
{ lib, ... }: home.username = username;
home.homeDirectory = "/home/${username}";
let # Install the package symbolically
# --- Path naar je packages.conf, relatief aan dit bestand --- home.packages = [
packagesConfPath = ./assets/system/apps/packages.conf; pkgs.zen-browser
];
# --- Lees en split ---
raw = builtins.readFile packagesConfPath;
rawLines = lib.splitString "\n" raw;
_guard = assert !(builtins.stringLength raw > 1 &&
builtins.length rawLines == builtins.stringLength raw); true;
cleanLine = line:
let
noCR = lib.replaceStrings [ "\r" ] [ "" ] line;
noComment = lib.head (lib.splitString "#" noCR);
in
lib.strings.trim noComment;
entries = builtins.filter (l: l != "") (map cleanLine rawLines);
in
{
# --- Flake NixOS module export ---
flake.nixosModules.packages = { config, pkgs, lib, ... }:
let
# Resolve packages via 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 : ${toString packagesConfPath}
''
else
found;
packages = builtins.seq _guard (map resolvePkg entries);
in
{
options.mySystem.system.packages.enable = lib.mkEnableOption "Enable packages from packages.conf";
config = lib.mkIf (config.mySystem.system.packages.enable or false) {
environment.systemPackages = packages;
}; };
}; };
} }
@@ -1,53 +0,0 @@
{ lib, ... }:
let
# --- Path naar je packages.conf, relatief aan dit bestand ---
packagesConfPath = ./assets/system/apps/packages.conf;
# --- Lees en split ---
raw = builtins.readFile packagesConfPath;
rawLines = lib.splitString "\n" raw;
_guard = assert !(builtins.stringLength raw > 1 &&
builtins.length rawLines == builtins.stringLength raw); true;
cleanLine = line:
let
noCR = lib.replaceStrings [ "\r" ] [ "" ] line;
noComment = lib.head (lib.splitString "#" noCR);
in
lib.strings.trim noComment;
entries = builtins.filter (l: l != "") (map cleanLine rawLines);
in
{
# --- Flake NixOS module export ---
flake.nixosModules.packages = { config, pkgs, lib, ... }:
let
# Resolve packages via 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 : ${toString packagesConfPath}
''
else
found;
packages = builtins.seq _guard (map resolvePkg entries);
in
{
options.mySystem.system.packages.enable = lib.mkEnableOption "Enable packages from packages.conf";
config = lib.mkIf (config.mySystem.system.packages.enable or false) {
environment.systemPackages = packages;
};
};
}
+41 -17
View File
@@ -1,29 +1,53 @@
# ./generated/modules/apps/zenbrowser.nix { lib, flakeRoot, ... }:
{ lib, pkgs, ... }:
let let
username = "henrov"; # vervang door je echte gebruikersnaam # --- Program-specific paths/assets ---
programName = "zenbrowser";
programAssets = ../../../assets/system/conf/${programName};
programFiles = builtins.readDir programAssets;
files = lib.genAttrs (builtins.attrNames programFiles) (name: {
src = "${programAssets}/${name}";
});
in in
{ {
flake.nixosModules.zenbrowser = { config, pkgs, lib, ... }: # Top-level toggle for this program
options.enable${lib.str.capitalize programName} =
lib.mkEnableOption "Enable ${programName} program";
{ # Wrap everything in config if enabled
options.mySystem.apps.zenbrowser.enable = config = { config, pkgs, ... }: let
lib.mkEnableOption "Enable Zen Browser"; # Determine whether the program is enabled
enableProgram = config.enableZenbrowser or false;
config = lib.mkIf (config.mySystem.apps.zenbrowser.enable or false) { # Determine username safely *after config exists*
username = config.defaultUser or "henrov";
# --- Home Manager gebruiker --- in lib.mkIf enableProgram {
home-manager.users.${username} = {
home.stateVersion = "26.05";
home.username = username;
home.homeDirectory = "/home/${username}";
# --- Thunar en plugins --- # Top-level container for all apps
home.packages = with pkgs; [ myApps = {
zen-browser ${programName} = {
]; enable = true;
assetsDir = programAssets;
files = files;
user = username;
# Optional: more program-specific options can go here
# e.g., theme = "dark";
# plugins = [ "adblock" "session-manager" ];
}; };
}; };
# --- Home Manager user configuration ---
home-manager.users.${username} = {
home.stateVersion = "26.05";
home.username = username;
home.homeDirectory = "/home/${username}";
# Install the package symbolically
home.packages = [
pkgs.zen-browser
];
};
}; };
} }