diff --git a/Droidnix/README.html b/Droidnix/README.html index e036fd3f8..376ecd210 100644 --- a/Droidnix/README.html +++ b/Droidnix/README.html @@ -3,7 +3,7 @@ "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> - + Droidnix: A Dendritic NixOS + Home Manager Configuration NixOS Configuration Structure @@ -204,121 +204,120 @@

Table of Contents

-
-

Shortcuts

-
+
+

Shortcuts

+

Introduction The Assets Folder @@ -334,26 +333,26 @@

Introduction   intro

-
-

What is Droidnix

-
+
+

What is Droidnix

+

Droidnix is a modular, declarative NixOS + Home Manager configuration system. It allows users to choose between Hyprland and Mangowc as their window manager, with shared and WM-specific configurations managed via Emacs Org and Nix Flakes. The project is designed for reproducibility, maintainability, and cross-machine compatibility.

-
-

Installed components:

-
+
+

Installed components:

+
    -
  • Core
  • -
  • Hyprland
  • -
  • Mangowc
  • +
  • Core
  • +
  • Hyprland
  • +
  • Mangowc
-
-

Goals, project Structure, import hierarchy

-
+
+

Goals, project Structure, import hierarchy

+

This project uses a modular NixOS configuration with Hyprland and MangoWC support, designed for literate programming and cross-device reusability. The Droidnix repository is organized into two main parts: @@ -366,9 +365,9 @@ The Droidnix repository is organized into two main parts:

-
-

Root Level

-
+
+

Root Level

+
  • flake.nix is the entry point and imports:
      @@ -380,23 +379,23 @@ The Droidnix repository is organized into two main parts:
-
-

Generated Structure

-
+
+

Generated Structure

+

The generated/ directory contains all generated configurations, divided into three main groups: system, hyprland, and mangowc.

-
-

System (generated/system/)

-
+
+

System (generated/system/)

+

This directory contains system-wide configurations that are independent of the window manager.

-
-

Applications (applications/)

-
+
+

Applications (applications/)

+
  • file_management/: Configurations for file managers and storage solutions.
  • gaming/: Settings for gaming-related software.
  • @@ -406,9 +405,9 @@ This directory contains system-wide configurations that are independent of the w
-
-

Development (development/)

-
+
+

Development (development/)

+
  • databases/: Settings for local databases.
  • devops_ci_cd/: Configurations for DevOps tools.
  • @@ -418,9 +417,9 @@ This directory contains system-wide configurations that are independent of the w
-
-

System Management (system_management/)

-
+
+

System Management (system_management/)

+
  • backups/: Settings for backup software.
  • bluetooth/: Configurations for Bluetooth devices and services.
  • @@ -439,9 +438,9 @@ This directory contains system-wide configurations that are independent of the w
-
-

Hyprland (generated/hyprland/)

-
+
+

Hyprland (generated/hyprland/)

+

This directory contains configurations specific to Hyprland.

@@ -458,9 +457,9 @@ This directory contains configurations specific to Hyprland.
-
-

MangoWC (generated/mangowc/)

-
+
+

MangoWC (generated/mangowc/)

+

This directory contains configurations specific to MangoWC.

@@ -494,7 +493,7 @@ This directory contains configurations specific to MangoWC.
  • Scalability: Easy to add new machines or configurations.
  • -
    +
     .
     ├── assets
     │   ├── system
    @@ -676,9 +675,9 @@ This directory contains configurations specific to MangoWC.
     
    -
    -

    First Setup

    -
    +
    +

    First Setup

    +
    1. Clone this repository.
    2. Run the setup script: ./setup_droidnix.sh.
    3. @@ -700,9 +699,9 @@ This directory contains configurations specific to MangoWC. The .assets/ folder contains all static files, such as configs, scripts, and themes. These files are not generated and can be edited directly.

    -
    -

    .assets/system/

    -
    +
    +

    .assets/system/

    +

    This folder contains files shared across both window managers, such as wallpapers, shell configs, and system scripts.

    @@ -713,9 +712,9 @@ This folder contains files shared across both window managers, such as wallpaper
    -
    -

    .assets/hyprland/

    -
    +
    +

    .assets/hyprland/

    +

    Hyprland-specific assets, including configs, themes, and scripts.

    @@ -727,9 +726,9 @@ Hyprland-specific assets, including configs, themes, and scripts.
    -
    -

    .assets/mangowc/

    -
    +
    +

    .assets/mangowc/

    +

    Mangowc-specific assets, including configs, themes, and scripts.

    @@ -741,9 +740,9 @@ Mangowc-specific assets, including configs, themes, and scripts.
    -
    -

    .assets/machines/

    -
    +
    +

    .assets/machines/

    +

    Machine-specific NixOS configurations (e.g., configuration.nix for maindroid and traveldroid).

    @@ -761,9 +760,9 @@ Machine-specific NixOS configurations (e.g., configuration.nix for This section contains the Org blocks for tangling Nix code into the generated folders.

    -
    -

    flake.nix

    -
    +
    +

    flake.nix

    +

    The Nix flake definition for Droidnix.

    @@ -848,13 +847,13 @@ The Nix flake definition for Droidnix.
    -
    -

    First the nix-files that flake really needs and that do not fit wel in the hierarchical structure

    -
    +
    +

    First the nix-files that flake really needs and that do not fit wel in the hierarchical structure

    +
    -
    -

    assets/flake/users/henrov.nix

    -
    +
    +

    assets/flake/users/henrov.nix

    +

    This is the default user, just search and replace henrov another name if you want to change

    @@ -870,9 +869,9 @@ This is the default user, just search and replace henrov another name if you wan
    -
    -

    assets/flake/terminal_shell/devshell.nix

    -
    +
    +

    assets/flake/terminal_shell/devshell.nix

    +

    This code defines a Nix shell environment (also called a "devShell") that you can enter using the nix develop command. When you enter this shell, Nix will provide the tools and dependencies listed in buildInputs.

    @@ -888,9 +887,9 @@ mkShell {
    -
    -

    assets/flake/machines/traveldroid/top.nix

    -
    +
    +

    assets/flake/machines/traveldroid/top.nix

    +

    This code defines the machine to build. Just search and replace traveldroid to provision another machine.

    @@ -932,9 +931,9 @@ This code defines the machine to build. Just search and replace traveldroid to p
    -
    -

    assets/flake/machines/traveldroid/boot.nix

    -
    +
    +

    assets/flake/machines/traveldroid/boot.nix

    +

    This file has most of the settings the control how the computer boots up.

    @@ -969,13 +968,13 @@ This file has most of the settings the control how the computer boots up.
    -
    -

    Now we reach the top of the hierarchy which will call all other imports

    -
    +
    +

    Now we reach the top of the hierarchy which will call all other imports

    +
    -
    -

    generated/top.nix

    -
    +
    +

    generated/top.nix

    +

    The ./generated/top.nix file acts as an anchor or entry point for the entire chain of imports in the pyramid structure.

    @@ -992,9 +991,9 @@ The ./generated/top.nix file acts as an anchor or entry point for the entire cha
    -
    -

    generated/hyprland/top.nix

    -
    +
    +

    generated/hyprland/top.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

    @@ -1017,9 +1016,9 @@ This is top file of this level which contains just an import statement for all r
    -
    -

    generated/hyprland/hyprland.nix

    -
    +
    +

    generated/hyprland/hyprland.nix

    +

    The ./generated/top.nix file acts as an anchor or entry point for the entire chain of imports in the pyramid structure.

    @@ -1070,9 +1069,9 @@ in
    -
    -

    generated/mangowc/top.nix

    -
    +
    +

    generated/mangowc/top.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

    @@ -1095,9 +1094,9 @@ This is top file of this level which contains just an import statement for all r
    -
    -

    generated/system/top.nix

    -
    +
    +

    generated/system/top.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

    @@ -1116,9 +1115,9 @@ This is top file of this level which contains just an import statement for all r
    -
    -

    generated/system/applications/top.nix

    -
    +
    +

    generated/system/applications/top.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

    @@ -1141,9 +1140,9 @@ This is top file of this level which contains just an import statement for all r
    -
    -

    generated/system/applications/packages.nix

    -
    +
    +

    generated/system/applications/packages.nix

    +

    This will import all packages listed in ./assets/system/apps/packlages.conf

    @@ -1196,9 +1195,9 @@ in
    -
    -

    generated/system/applications/flatpaks.nix

    -
    +
    +

    generated/system/applications/flatpaks.nix

    +

    This will import all packages listed in ./assets/system/apps/flatpaks.conf

    @@ -1319,9 +1318,9 @@ in
    -
    -

    generated/system/core/top.nix

    -
    +
    +

    generated/system/core/top.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

    @@ -1339,9 +1338,9 @@ This is top file of this level which contains just an import statement for all r
    -
    -

    generated/system/core/login-tuigreeter.nix

    -
    +
    +

    generated/system/core/login-tuigreeter.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

    @@ -1364,9 +1363,9 @@ settings = {
    -
    -

    generated/system/core/wayland.nix

    -
    +
    +

    generated/system/core/wayland.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

    @@ -1410,9 +1409,9 @@ This is top file of this level which contains just an import statement for all r
    -
    -

    generated/system/development/top.nix

    -
    +
    +

    generated/system/development/top.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

    @@ -1432,9 +1431,9 @@ This is top file of this level which contains just an import statement for all r
    -
    -

    generated/system/system_management/top.nix

    -
    +
    +

    generated/system/system_management/top.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

    @@ -1462,9 +1461,9 @@ This is top file of this level which contains just an import statement for all r
    -
    -

    generated/hyprland/animations_effects/top.nix

    -
    +
    +

    generated/hyprland/animations_effects/top.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

    @@ -1480,9 +1479,9 @@ This is top file of this level which contains just an import statement for all r
    -
    -

    generated/hyprland/decorations/top.nix

    -
    +
    +

    generated/hyprland/decorations/top.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

    @@ -1498,9 +1497,9 @@ This is top file of this level which contains just an import statement for all r
    -
    -

    generated/hyprland/keyboard_binds/top.nix

    -
    +
    +

    generated/hyprland/keyboard_binds/top.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

    @@ -1529,9 +1528,9 @@ in
    -
    -

    generated/hyprland/notifications/top.nix

    -
    +
    +

    generated/hyprland/notifications/top.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

    @@ -1547,9 +1546,9 @@ This is top file of this level which contains just an import statement for all r
    -
    -

    generated/hyprland/statusbar_tray/top.nix

    -
    +
    +

    generated/hyprland/statusbar_tray/top.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

    @@ -1565,9 +1564,9 @@ This is top file of this level which contains just an import statement for all r
    -
    -

    generated/hyprland/task_launcher/top.nix

    -
    +
    +

    generated/hyprland/task_launcher/top.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

    @@ -1583,46 +1582,56 @@ This is top file of this level which contains just an import statement for all r
    -
    -

    generated/hyprland/task_launcher/wofi.nix

    -
    +
    +

    generated/system/task_launcher/wofi.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

    -
    { lib, config, pkgs, ... }:
    +
    {
    +  lib,
    +  config,
    +  pkgs,
    +  flakeRoot,
    +  user,
    +  ...
    +}:
     
     let
    -  # Copy the files into the Nix store
    -  wofiConf = builtins.readFile (toFile "wofi.conf" (builtins.readFile ./assets/hyprland/conf/wofi/wofi.conf));
    -  wofiStyle = ./assets/hyprland/conf/wofi/theming.css;
    +  wofiConfigDir = "${config.home-manager.users.${user.username}.xdg.configHome}/wofi";
    +  # Dynamically read all files in assets/hyprland/conf/wofi/
    +  wofiConfs =
    +    lib.genAttrs (builtins.attrNames (builtins.readDir "${flakeRoot}/assets/system/conf/wofi"))
    +      (name: {
    +        text = builtins.readFile "${flakeRoot}/assets/system/conf/wofi/${name}";
    +      });
     in
     {
    -  # Install Wofi
    -  environment.systemPackages = with pkgs; [ wofi ];
    +  environment.systemPackages = with pkgs; [
    +    wofi
    +  ];
     
    -  # Home Manager configuration for Wofi
    -  home-manager.users.henrov = {
    +  home-manager.users.${user.username} = {
         home.file = {
    -      ".config/wofi/config".text = wofiConf;
    -      ".config/wofi/style.css".source = wofiStyle;
    +      # Map the files to their target paths in ~/.config/wofi/
    +      "${wofiConfigDir}/config" = wofiConfs."wofi.conf"; # Use the actual filename
    +      "${wofiConfigDir}/style.css" = wofiConfs."theming.css"; # Use the actual filename
         };
     
    -    # Environment variables for Wofi
         home.sessionVariables = {
    -      WOFI_CONFIG = "$HOME/.config/wofi/config";
    -      WOFI_STYLE = "$HOME/.config/wofi/style.css";
    +      WOFI_CONFIG = "${wofiConfigDir}/config";
    +      WOFI_STYLE = "${wofiConfigDir}/style.css";
         };
       };
     }
    -
     
    -
    -

    generated/hyprland/task_window_workspace_switcher/top.nix

    -
    +
    +

    generated/hyprland/task_window_workspace_switcher/top.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

    @@ -1638,9 +1647,9 @@ This is top file of this level which contains just an import statement for all r
    -
    -

    generated/hyprland/window_rules/top.nix

    -
    +
    +

    generated/hyprland/window_rules/top.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

    @@ -1656,9 +1665,9 @@ This is top file of this level which contains just an import statement for all r
    -
    -

    generated/mangowc/animations_effects/top.nix

    -
    +
    +

    generated/mangowc/animations_effects/top.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

    @@ -1674,9 +1683,9 @@ This is top file of this level which contains just an import statement for all r
    -
    -

    generated/mangowc/decorations/top.nix

    -
    +
    +

    generated/mangowc/decorations/top.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

    @@ -1692,9 +1701,9 @@ This is top file of this level which contains just an import statement for all r
    -
    -

    generated/mangowc/keyboard_binds/top.nix

    -
    +
    +

    generated/mangowc/keyboard_binds/top.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

    @@ -1704,9 +1713,9 @@ This is top file of this level which contains just an import statement for all r
    -
    -

    generated/mangowc/notifications/top.nix

    -
    +
    +

    generated/mangowc/notifications/top.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

    @@ -1722,9 +1731,9 @@ This is top file of this level which contains just an import statement for all r
    -
    -

    generated/mangowc/statusbar_tray/top.nix

    -
    +
    +

    generated/mangowc/statusbar_tray/top.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

    @@ -1740,9 +1749,9 @@ This is top file of this level which contains just an import statement for all r
    -
    -

    generated/mangowc/task_launcher/top.nix

    -
    +
    +

    generated/mangowc/task_launcher/top.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

    @@ -1758,24 +1767,9 @@ This is top file of this level which contains just an import statement for all r
    -
    -

    generated/mangowc/task_launcher/wofi.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 -

    -
    -
    { config, pkgs, lib, user, inputs, flakeRoot,... }:
    -{
    -  # .. put any code here
    -}
    -
    -
    -
    -
    -
    -

    generated/mangowc/task_window_workspace_switcher/top.nix

    -
    +
    +

    generated/mangowc/task_window_workspace_switcher/top.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

    @@ -1791,9 +1785,9 @@ This is top file of this level which contains just an import statement for all r
    -
    -

    generated/mangowc/window_rules/top.nix

    -
    +
    +

    generated/mangowc/window_rules/top.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

    @@ -1809,9 +1803,9 @@ This is top file of this level which contains just an import statement for all r
    -
    -

    generated/system/applications/accessibility/top.nix

    -
    +
    +

    generated/system/applications/accessibility/top.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

    @@ -1827,9 +1821,9 @@ This is top file of this level which contains just an import statement for all r
    -
    -

    generated/system/applications/file_management/top.nix

    -
    +
    +

    generated/system/applications/file_management/top.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

    @@ -1845,9 +1839,9 @@ This is top file of this level which contains just an import statement for all r
    -
    -

    generated/system/applications/gaming/top.nix

    -
    +
    +

    generated/system/applications/gaming/top.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

    @@ -1863,9 +1857,9 @@ This is top file of this level which contains just an import statement for all r
    -
    -

    generated/system/applications/media_playback_editing/top.nix

    -
    +
    +

    generated/system/applications/media_playback_editing/top.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

    @@ -1881,9 +1875,9 @@ This is top file of this level which contains just an import statement for all r
    -
    -

    generated/system/applications/office_productivity/top.nix

    -
    +
    +

    generated/system/applications/office_productivity/top.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

    @@ -1899,9 +1893,9 @@ This is top file of this level which contains just an import statement for all r
    -
    -

    generated/system/applications/terminal_shell/top.nix

    -
    +
    +

    generated/system/applications/terminal_shell/top.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

    @@ -1919,9 +1913,9 @@ This is top file of this level which contains just an import statement for all r
    -
    -

    generated/system/applications/terminal_shell/kitty.nix

    -
    +
    +

    generated/system/applications/terminal_shell/kitty.nix

    +

    This file sets up Kitty terminal

    @@ -1949,9 +1943,9 @@ in
    -
    -

    generated/system/applications/terminal_shell/starship.nix

    -
    +
    +

    generated/system/applications/terminal_shell/starship.nix

    +

    This file sets up starship prompt

    @@ -1976,9 +1970,9 @@ in
    -
    -

    generated/system/applications/terminal_shell/zsh.nix

    -
    +
    +

    generated/system/applications/terminal_shell/zsh.nix

    +

    This sets up the zsh terminal

    @@ -2083,9 +2077,9 @@ This sets up the zsh terminal
    -
    -

    generated/system/development/databases/top.nix

    -
    +
    +

    generated/system/development/databases/top.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

    @@ -2101,9 +2095,9 @@ This is top file of this level which contains just an import statement for all r
    -
    -

    generated/system/development/devops_ci_cd/top.nix

    -
    +
    +

    generated/system/development/devops_ci_cd/top.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

    @@ -2119,9 +2113,9 @@ This is top file of this level which contains just an import statement for all r
    -
    -

    generated/system/development/programming_languages/top.nix

    -
    +
    +

    generated/system/development/programming_languages/top.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

    @@ -2137,9 +2131,9 @@ This is top file of this level which contains just an import statement for all r
    -
    -

    generated/system/development/virtualization/top.nix

    -
    +
    +

    generated/system/development/virtualization/top.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

    @@ -2155,9 +2149,9 @@ This is top file of this level which contains just an import statement for all r
    -
    -

    generated/system/development/web_development/top.nix

    -
    +
    +

    generated/system/development/web_development/top.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

    @@ -2173,9 +2167,9 @@ This is top file of this level which contains just an import statement for all r
    -
    -

    generated/system/system_management/audio/top.nix

    -
    +
    +

    generated/system/system_management/audio/top.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

    @@ -2191,9 +2185,9 @@ This is top file of this level which contains just an import statement for all r
    -
    -

    generated/system/system_management/backups/top.nix

    -
    +
    +

    generated/system/system_management/backups/top.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

    @@ -2209,9 +2203,9 @@ This is top file of this level which contains just an import statement for all r
    -
    -

    generated/system/system_management/bluetooth/top.nix

    -
    +
    +

    generated/system/system_management/bluetooth/top.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

    @@ -2227,9 +2221,9 @@ This is top file of this level which contains just an import statement for all r
    -
    -

    generated/system/system_management/disk_management/top.nix

    -
    +
    +

    generated/system/system_management/disk_management/top.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

    @@ -2245,9 +2239,9 @@ This is top file of this level which contains just an import statement for all r
    -
    -

    generated/system/system_management/hardware_sensors/top.nix

    -
    +
    +

    generated/system/system_management/hardware_sensors/top.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

    @@ -2263,9 +2257,9 @@ This is top file of this level which contains just an import statement for all r
    -
    -

    generated/system/system_management/logging_monitoring/top.nix

    -
    +
    +

    generated/system/system_management/logging_monitoring/top.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

    @@ -2281,9 +2275,9 @@ This is top file of this level which contains just an import statement for all r
    -
    -

    generated/system/system_management/login_manager/top.nix

    -
    +
    +

    generated/system/system_management/login_manager/top.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

    @@ -2299,9 +2293,9 @@ This is top file of this level which contains just an import statement for all r
    -
    -

    generated/system/system_management/monitor_setup/top.nix

    -
    +
    +

    generated/system/system_management/monitor_setup/top.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

    @@ -2317,9 +2311,9 @@ This is top file of this level which contains just an import statement for all r
    -
    -

    generated/system/system_management/networking/top.nix

    -
    +
    +

    generated/system/system_management/networking/top.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

    @@ -2335,9 +2329,9 @@ This is top file of this level which contains just an import statement for all r
    -
    -

    generated/system/system_management/power_management/top.nix

    -
    +
    +

    generated/system/system_management/power_management/top.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

    @@ -2353,9 +2347,9 @@ This is top file of this level which contains just an import statement for all r
    -
    -

    generated/system/system_management/printers_scanners/top.nix

    -
    +
    +

    generated/system/system_management/printers_scanners/top.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

    @@ -2371,9 +2365,9 @@ This is top file of this level which contains just an import statement for all r
    -
    -

    generated/system/system_management/security/top.nix

    -
    +
    +

    generated/system/system_management/security/top.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

    @@ -2389,9 +2383,9 @@ This is top file of this level which contains just an import statement for all r
    -
    -

    generated/system/system_management/system_updates/top.nix

    -
    +
    +

    generated/system/system_management/system_updates/top.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

    @@ -2411,7 +2405,7 @@ This is top file of this level which contains just an import statement for all r

    Author: Henro Veijer

    -

    Created: 2026-03-11 wo 15:02

    +

    Created: 2026-03-11 wo 15:33

    Validate

    diff --git a/Droidnix/README.org b/Droidnix/README.org index 935fca294..6600a6f98 100644 --- a/Droidnix/README.org +++ b/Droidnix/README.org @@ -1012,35 +1012,45 @@ This is top file of this level which contains just an import statement for all r } #+END_SRC -** =generated/hyprland/task_launcher/wofi.nix= +** =generated/system/task_launcher/wofi.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 -#+BEGIN_SRC nix :tangle generated/hyprland/task_launcher/wofi.nix :noweb tangle :mkdirp yes :eval never-html -{ lib, config, pkgs, ... }: +#+BEGIN_SRC nix :tangle generated/system/task_launcher/wofi.nix :noweb tangle :mkdirp yes :eval never-html +{ + lib, + config, + pkgs, + flakeRoot, + user, + ... +}: let - # Copy the files into the Nix store - wofiConf = builtins.readFile (toFile "wofi.conf" (builtins.readFile ./assets/hyprland/conf/wofi/wofi.conf)); - wofiStyle = ./assets/hyprland/conf/wofi/theming.css; + wofiConfigDir = "${config.home-manager.users.${user.username}.xdg.configHome}/wofi"; + # Dynamically read all files in assets/hyprland/conf/wofi/ + wofiConfs = + lib.genAttrs (builtins.attrNames (builtins.readDir "${flakeRoot}/assets/system/conf/wofi")) + (name: { + text = builtins.readFile "${flakeRoot}/assets/system/conf/wofi/${name}"; + }); in { - # Install Wofi - environment.systemPackages = with pkgs; [ wofi ]; + environment.systemPackages = with pkgs; [ + wofi + ]; - # Home Manager configuration for Wofi - home-manager.users.henrov = { + home-manager.users.${user.username} = { home.file = { - ".config/wofi/config".text = wofiConf; - ".config/wofi/style.css".source = wofiStyle; + # Map the files to their target paths in ~/.config/wofi/ + "${wofiConfigDir}/config" = wofiConfs."wofi.conf"; # Use the actual filename + "${wofiConfigDir}/style.css" = wofiConfs."theming.css"; # Use the actual filename }; - # Environment variables for Wofi home.sessionVariables = { - WOFI_CONFIG = "$HOME/.config/wofi/config"; - WOFI_STYLE = "$HOME/.config/wofi/style.css"; + WOFI_CONFIG = "${wofiConfigDir}/config"; + WOFI_STYLE = "${wofiConfigDir}/style.css"; }; }; } - #+END_SRC @@ -1134,15 +1144,6 @@ This is top file of this level which contains just an import statement for all r } #+END_SRC -** =generated/mangowc/task_launcher/wofi.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 -#+BEGIN_SRC nix :tangle generated/mangowc/task_launcher/wofi.nix :noweb tangle :mkdirp yes :eval never-html -{ config, pkgs, lib, user, inputs, flakeRoot,... }: -{ - # .. put any code here -} -#+END_SRC - ** =generated/mangowc/task_window_workspace_switcher/top.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 #+BEGIN_SRC nix :tangle generated/mangowc/task_window_workspace_switcher/top.nix :noweb tangle :mkdirp yes :eval never-html diff --git a/Droidnix/assets/hyprland/conf/wofi/theming.css b/Droidnix/assets/system/conf/wofi/theming.css similarity index 100% rename from Droidnix/assets/hyprland/conf/wofi/theming.css rename to Droidnix/assets/system/conf/wofi/theming.css diff --git a/Droidnix/assets/hyprland/conf/wofi/wofi.conf b/Droidnix/assets/system/conf/wofi/wofi.conf similarity index 100% rename from Droidnix/assets/hyprland/conf/wofi/wofi.conf rename to Droidnix/assets/system/conf/wofi/wofi.conf diff --git a/Droidnix/generated/hyprland/hyprland.nix b/Droidnix/generated/hyprland/hyprland.nix index bbea43bcf..231f5fd27 100644 --- a/Droidnix/generated/hyprland/hyprland.nix +++ b/Droidnix/generated/hyprland/hyprland.nix @@ -16,7 +16,7 @@ let }); in { - # NixOS: Enable Hyprland + # NixOS: Enable Hyprland (optional) programs.hyprland = { enable = true; }; diff --git a/Droidnix/generated/hyprland/task_launcher/wofi.nix b/Droidnix/generated/hyprland/task_launcher/wofi.nix index 0ef6b1126..d151550d2 100644 --- a/Droidnix/generated/hyprland/task_launcher/wofi.nix +++ b/Droidnix/generated/hyprland/task_launcher/wofi.nix @@ -11,9 +11,9 @@ let wofiConfigDir = "${config.home-manager.users.${user.username}.xdg.configHome}/wofi"; # Dynamically read all files in assets/hyprland/conf/wofi/ wofiConfs = - lib.genAttrs (builtins.attrNames (builtins.readDir "${flakeRoot}/assets/hyprland/conf/wofi")) + lib.genAttrs (builtins.attrNames (builtins.readDir "${flakeRoot}/assets/system/conf/wofi")) (name: { - text = builtins.readFile "${flakeRoot}/assets/hyprland/conf/wofi/${name}"; + text = builtins.readFile "${flakeRoot}/assets/system/conf/wofi/${name}"; }); in { diff --git a/Droidnix/generated/system/task_launcher/wofi.nix b/Droidnix/generated/system/task_launcher/wofi.nix new file mode 100644 index 000000000..d151550d2 --- /dev/null +++ b/Droidnix/generated/system/task_launcher/wofi.nix @@ -0,0 +1,36 @@ +{ + lib, + config, + pkgs, + flakeRoot, + user, + ... +}: + +let + wofiConfigDir = "${config.home-manager.users.${user.username}.xdg.configHome}/wofi"; + # Dynamically read all files in assets/hyprland/conf/wofi/ + wofiConfs = + lib.genAttrs (builtins.attrNames (builtins.readDir "${flakeRoot}/assets/system/conf/wofi")) + (name: { + text = builtins.readFile "${flakeRoot}/assets/system/conf/wofi/${name}"; + }); +in +{ + environment.systemPackages = with pkgs; [ + wofi + ]; + + home-manager.users.${user.username} = { + home.file = { + # Map the files to their target paths in ~/.config/wofi/ + "${wofiConfigDir}/config" = wofiConfs."wofi.conf"; # Use the actual filename + "${wofiConfigDir}/style.css" = wofiConfs."theming.css"; # Use the actual filename + }; + + home.sessionVariables = { + WOFI_CONFIG = "${wofiConfigDir}/config"; + WOFI_STYLE = "${wofiConfigDir}/style.css"; + }; + }; +}