Regenerated

This commit is contained in:
2026-03-21 20:43:48 +00:00
parent dc67b83015
commit 8f85db45d5
30 changed files with 76 additions and 1551 deletions
+76 -78
View File
@@ -119,47 +119,50 @@ The Nix flake definition for Droidnix.
}
#+END_SRC
** =debug-modules.nix=
The Nix flake definition for Droidnix.
#+BEGIN_SRC nix :tangle debug-modules.nix :noweb tangle :mkdirp yes :eval never-html
{ lib, inputs }:
** -generated/template.nix
#+BEGIN_SRC nix :tangle generated/template.nix :noweb tangle :mkdirp yes :eval never-html
{ lib, config, pkgs, inputs, ... }:
let
modulesPath = ./generated/parked;
importedModules = inputs.import-tree modulesPath;
moduleSwitches = import ./assets/system/modules.conf;
# Default username fallback
username = config.defaultUser or "henrov";
enabledModules =
lib.filterAttrs (name: _: moduleSwitches.${name} or false)
importedModules.imports;
# Asset folder for configs
assetPath = ../../../assets/<myModuleName>/conf;
moduleList = builtins.attrValues enabledModules;
# Main configuration file
mainConfig = "${assetPath}/<mainConfigFile>";
debugFragment = module:
let
frag =
if builtins.hasAttr "homeManagerExtraUserFragment" module
then module.homeManagerExtraUserFragment
else {};
evaluated =
if builtins.isFunction frag then frag {} else frag;
isAttrs = builtins.isAttrs evaluated;
isList = builtins.isList evaluated;
isThunk = builtins.isFunction frag;
in
{
name = if builtins.hasAttr "name" module then module.name else "unknown";
isAttrs = isAttrs;
isList = isList;
isThunk = isThunk;
# Determine the package: prefer Nixpkgs, fallback to -git, fallback to flake input
myPkg =
pkgs.<myPackage> or
pkgs.<myPackage>-git or
inputs.<myPackage>.packages.${pkgs.system}.default;
in
{
# Install system-wide
environment.systemPackages = [ myPkg ];
# Home Manager user settings
_module.args.hmUsers = {
${username} = {
home.packages = [ myPkg ];
# Copy main config into user's home
home.file.".config/<myModuleName>/<mainConfigFile>".source = mainConfig;
# Optional module-specific settings
settings.general = {
# Example placeholder
"example.setting" = "value";
};
debugList = map debugFragment moduleList;
in
debugList
# Optional: you can add more files dynamically from assetPath if needed
};
};
}
#+END_SRC
* Let's define the core of the system
** =generated/parked/system/networking.nix=
@@ -504,14 +507,35 @@ This sets the bluetooth implementation
}
#+END_SRC
** =generated/todo/desktop/xdg.nix=
** =generated/modules/desktop/xdg.nix=
This sets the XDG implementation
#+BEGIN_SRC nix :tangle generated/todo/desktop/xdg.nix :noweb tangle :mkdirp yes :eval never-html
{ config, pkgs, ... }:
#+BEGIN_SRC nix :tangle generated/modules/desktop/xdg.nix :noweb tangle :mkdirp yes :eval never-html
{ lib, config, pkgs, inputs, ... }:
let
username = config.defaultUser or "henrov";
# XDG portal package, fallback to flake input if needed
xdgPortalHyprlandPkg = pkgs.xdg-desktop-portal-hyprland or
inputs.xdgPortalHyprland.packages.${pkgs.system}.default;
in
{
xdg.portal = {
enable = true;
config.system.default = [ "hyprland" "gtk" ];
# Enable XDG portal system-wide
services.xdg.portal.enable = true;
# Home Manager user settings
_module.args.hmUsers = {
${username} = {
home.packages = [ xdgPortalHyprlandPkg ];
xdg.portal = {
enable = true;
extraPortals = [ xdgPortalHyprlandPkg ];
config.hyprland = {
"org.freedesktop.impl.portal.Screencast" = [ "hyprland" ];
};
};
};
};
}
#+END_SRC
@@ -945,54 +969,28 @@ settings = {
}
#+END_SRC
** =generated/parked/desktop/wayland.nix=
** =generated/system/desktop/wayland.nix=
This file sets up wayland
#+BEGIN_SRC nix :tangle generated/parked/desktop/wayland.nix :noweb tangle :mkdirp yes :eval never-html
{ lib, config, ... }:
#+BEGIN_SRC nix :tangle generated/system/desktop/wayland.nix :noweb tangle :mkdirp yes :eval never-html
{ lib, config, pkgs, inputs, ... }:
let
# --- Module variables ---
moduleName = "wayland";
username = config.defaultUser or "henrov";
username = config.defaultUser or "henrov";
# Top-level toggle
enableProgram = config.enableWayland or false;
# Wayland-specific packages
uwsmPkg = pkgs.uwsm or inputs.uwsm.packages.${pkgs.system}.default;
in
{
# --- Option ---
options.enableWayland =
lib.mkEnableOption "Enable Wayland support";
# System packages
environment.systemPackages = [ uwsmPkg ];
# --- Config ---
config = lib.mkIf enableProgram {
# Enable Hyprland at system level
wayland.windowManager.hyprland.enable = true;
# Enable Hyprland in Wayland
wayland.windowManager.hyprland = {
enable = true;
# Enable XDG portals (required for Wayland apps)
xdg.portal.enable = true;
# Home Manager configuration
home-manager.users.${username} = {
xdg.portal = {
enable = true;
# Only unavoidable pkgs reference
extraPortals = [
config.pkgs.xdg-desktop-portal-hyprland
];
config.hyprland = {
"org.freedesktop.impl.portal.Screencast" = [ "hyprland" ];
};
};
# Wayland-related user package
home.packages = [
config.pkgs.uwsm
];
# Home Manager user settings
_module.args.hmUsers = {
${username} = {
home.packages = [ uwsmPkg ];
};
};
}