Regenerated
This commit is contained in:
+76
-78
@@ -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 ];
|
||||
};
|
||||
};
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user