From 084cd4c0f1bee6af63117cb240754dd57e806d24 Mon Sep 17 00:00:00 2001 From: "info@data-pro.nu" Date: Wed, 18 Mar 2026 15:05:33 +0000 Subject: [PATCH] New structure since I kept struggling with the home-manager implemnentation --- Droidnix/README.html | 3162 ----------------- Droidnix/README.org | 1144 ++---- Droidnix/flake.nix | 79 +- .../traveldroid/bluetooth.nix | 0 .../machines => hosts}/traveldroid/boot.nix | 0 .../machines => hosts}/traveldroid/dbus.nix | 0 .../traveldroid/hardware-configuration.nix | 0 .../traveldroid/machine.nix | 0 .../machines => hosts}/traveldroid/xdg.nix | 0 .../hyprland/animations_effects/top.nix | 7 - .../decorations/rotating_wallpaper.nix | 32 - .../generated/hyprland/decorations/top.nix | 6 - .../generated/hyprland/notifications/top.nix | 6 - .../generated/hyprland/statusbar_tray/top.nix | 7 - .../task_window_workspace_switcher/top.nix | 7 - Droidnix/generated/hyprland/top.nix | 12 - .../generated/hyprland/window_rules/top.nix | 7 - .../apps/emacs}/early-init.el | 0 .../apps/emacs}/emacs.nix | 0 .../apps/emacs}/init.el | 0 .../apps}/flatpaks.nix | 0 .../apps}/packages.nix | 0 .../apps}/thunar.nix | 0 .../task_launcher => modules/apps}/wofi.nix | 0 .../browsing => modules/apps}/zen-browser.nix | 0 .../{system/core => modules/desktop}/eww.nix | 0 .../core => modules/desktop}/fonts.nix | 0 .../desktop}/hyprland.nix | 0 .../desktop}/rotating_wallpaper.nix | 0 .../core => modules/desktop}/waybar.nix | 0 .../core => modules/desktop}/wayland.nix | 0 Droidnix/generated/modules/system/boot.nix | 34 + Droidnix/generated/modules/system/core.nix | 25 + .../system}/devshell.nix | 0 .../{system/core => modules/system}/gtk.nix | 13 + .../generated/modules/system/homebase.nix | 28 + Droidnix/generated/modules/system/locale.nix | 28 + .../system}/login-tuigreeter.nix | 0 .../system}/networking.nix | 18 +- Droidnix/generated/modules/system/nix.nix | 26 + .../generated/modules/system/services.nix | 23 + .../core => modules/system}/stylix.nix | 0 .../core => modules/system}/terminal.nix | 0 .../system}/users/henrov.nix | 0 .../system}/users/user.nix | 10 +- .../terminals}/kitty.nix | 0 .../terminals}/starship.nix | 0 .../terminals}/zsh.nix | 5 - Droidnix/generated/out_of_tree/core/gtk.nix | 12 - Droidnix/generated/out_of_tree/core/nix.nix | 6 - .../machines/traveldroid/audio.nix | 12 - .../out_of_tree/machines/traveldroid/top.nix | 26 - .../out_of_tree/terminal_shell/top.nix | 16 - Droidnix/generated/out_of_tree/users/top.nix | 6 - .../system/applications/accessibility/top.nix | 7 - .../system/applications/browsing/top.nix | 8 - .../applications/file_management/top.nix | 6 - .../system/applications/gaming/top.nix | 7 - .../media_playback_editing/top.nix | 7 - .../applications/office_productivity/top.nix | 7 - .../applications/terminal_shell/top.nix | 10 - .../generated/system/applications/top.nix | 15 - Droidnix/generated/system/core/top.nix | 11 - .../system/development/databases/top.nix | 7 - .../system/development/devops_ci_cd/top.nix | 7 - .../development/programming_languages/top.nix | 7 - Droidnix/generated/system/development/top.nix | 11 - .../system/development/virtualization/top.nix | 7 - .../development/web_development/top.nix | 7 - .../system/system_management/audio/top.nix | 7 - .../system/system_management/backups/top.nix | 7 - .../system_management/bluetooth/top.nix | 7 - .../system_management/disk_management/top.nix | 7 - .../hardware_sensors/top.nix | 7 - .../logging_monitoring/top.nix | 7 - .../system_management/login_manager/top.nix | 7 - .../system_management/monitor_setup/top.nix | 7 - .../system_management/networking/top.nix | 7 - .../power_management/top.nix | 7 - .../printers_scanners/top.nix | 7 - .../system/system_management/security/top.nix | 7 - .../system_management/system_updates/top.nix | 7 - .../system/system_management/top.nix | 19 - .../generated/system/task_launcher/top.nix | 7 - Droidnix/generated/system/top.nix | 10 - Droidnix/generated/top.nix | 8 - 86 files changed, 507 insertions(+), 4509 deletions(-) delete mode 100644 Droidnix/README.html rename Droidnix/generated/{out_of_tree/machines => hosts}/traveldroid/bluetooth.nix (100%) rename Droidnix/generated/{out_of_tree/machines => hosts}/traveldroid/boot.nix (100%) rename Droidnix/generated/{out_of_tree/machines => hosts}/traveldroid/dbus.nix (100%) rename Droidnix/generated/{out_of_tree/machines => hosts}/traveldroid/hardware-configuration.nix (100%) rename Droidnix/generated/{out_of_tree/machines => hosts}/traveldroid/machine.nix (100%) rename Droidnix/generated/{out_of_tree/machines => hosts}/traveldroid/xdg.nix (100%) delete mode 100644 Droidnix/generated/hyprland/animations_effects/top.nix delete mode 100644 Droidnix/generated/hyprland/decorations/rotating_wallpaper.nix delete mode 100644 Droidnix/generated/hyprland/decorations/top.nix delete mode 100644 Droidnix/generated/hyprland/notifications/top.nix delete mode 100644 Droidnix/generated/hyprland/statusbar_tray/top.nix delete mode 100644 Droidnix/generated/hyprland/task_window_workspace_switcher/top.nix delete mode 100644 Droidnix/generated/hyprland/top.nix delete mode 100644 Droidnix/generated/hyprland/window_rules/top.nix rename Droidnix/generated/{system/applications/terminal_shell => modules/apps/emacs}/early-init.el (100%) rename Droidnix/generated/{system/applications/terminal_shell => modules/apps/emacs}/emacs.nix (100%) rename Droidnix/generated/{system/applications/terminal_shell => modules/apps/emacs}/init.el (100%) rename Droidnix/generated/{system/applications => modules/apps}/flatpaks.nix (100%) rename Droidnix/generated/{system/applications => modules/apps}/packages.nix (100%) rename Droidnix/generated/{system/applications/file_management => modules/apps}/thunar.nix (100%) rename Droidnix/generated/{system/task_launcher => modules/apps}/wofi.nix (100%) rename Droidnix/generated/{system/applications/browsing => modules/apps}/zen-browser.nix (100%) rename Droidnix/generated/{system/core => modules/desktop}/eww.nix (100%) rename Droidnix/generated/{system/core => modules/desktop}/fonts.nix (100%) rename Droidnix/generated/{hyprland => modules/desktop}/hyprland.nix (100%) rename Droidnix/generated/{out-of-tree/core => modules/desktop}/rotating_wallpaper.nix (100%) rename Droidnix/generated/{system/core => modules/desktop}/waybar.nix (100%) rename Droidnix/generated/{system/core => modules/desktop}/wayland.nix (100%) create mode 100644 Droidnix/generated/modules/system/boot.nix create mode 100644 Droidnix/generated/modules/system/core.nix rename Droidnix/generated/{out_of_tree/terminal_shell => modules/system}/devshell.nix (100%) rename Droidnix/generated/{system/core => modules/system}/gtk.nix (64%) create mode 100644 Droidnix/generated/modules/system/homebase.nix create mode 100644 Droidnix/generated/modules/system/locale.nix rename Droidnix/generated/{system/core => modules/system}/login-tuigreeter.nix (100%) rename Droidnix/generated/{out_of_tree/machines/traveldroid => modules/system}/networking.nix (67%) create mode 100644 Droidnix/generated/modules/system/nix.nix create mode 100644 Droidnix/generated/modules/system/services.nix rename Droidnix/generated/{out_of_tree/core => modules/system}/stylix.nix (100%) rename Droidnix/generated/{out_of_tree/core => modules/system}/terminal.nix (100%) rename Droidnix/generated/{out_of_tree => modules/system}/users/henrov.nix (100%) rename Droidnix/generated/{out_of_tree => modules/system}/users/user.nix (65%) rename Droidnix/generated/{system/applications/terminal_shell => modules/terminals}/kitty.nix (100%) rename Droidnix/generated/{system/applications/terminal_shell => modules/terminals}/starship.nix (100%) rename Droidnix/generated/{system/applications/terminal_shell => modules/terminals}/zsh.nix (96%) delete mode 100644 Droidnix/generated/out_of_tree/core/gtk.nix delete mode 100644 Droidnix/generated/out_of_tree/core/nix.nix delete mode 100644 Droidnix/generated/out_of_tree/machines/traveldroid/audio.nix delete mode 100644 Droidnix/generated/out_of_tree/machines/traveldroid/top.nix delete mode 100644 Droidnix/generated/out_of_tree/terminal_shell/top.nix delete mode 100644 Droidnix/generated/out_of_tree/users/top.nix delete mode 100644 Droidnix/generated/system/applications/accessibility/top.nix delete mode 100644 Droidnix/generated/system/applications/browsing/top.nix delete mode 100644 Droidnix/generated/system/applications/file_management/top.nix delete mode 100644 Droidnix/generated/system/applications/gaming/top.nix delete mode 100644 Droidnix/generated/system/applications/media_playback_editing/top.nix delete mode 100644 Droidnix/generated/system/applications/office_productivity/top.nix delete mode 100644 Droidnix/generated/system/applications/terminal_shell/top.nix delete mode 100644 Droidnix/generated/system/applications/top.nix delete mode 100644 Droidnix/generated/system/core/top.nix delete mode 100644 Droidnix/generated/system/development/databases/top.nix delete mode 100644 Droidnix/generated/system/development/devops_ci_cd/top.nix delete mode 100644 Droidnix/generated/system/development/programming_languages/top.nix delete mode 100644 Droidnix/generated/system/development/top.nix delete mode 100644 Droidnix/generated/system/development/virtualization/top.nix delete mode 100644 Droidnix/generated/system/development/web_development/top.nix delete mode 100644 Droidnix/generated/system/system_management/audio/top.nix delete mode 100644 Droidnix/generated/system/system_management/backups/top.nix delete mode 100644 Droidnix/generated/system/system_management/bluetooth/top.nix delete mode 100644 Droidnix/generated/system/system_management/disk_management/top.nix delete mode 100644 Droidnix/generated/system/system_management/hardware_sensors/top.nix delete mode 100644 Droidnix/generated/system/system_management/logging_monitoring/top.nix delete mode 100644 Droidnix/generated/system/system_management/login_manager/top.nix delete mode 100644 Droidnix/generated/system/system_management/monitor_setup/top.nix delete mode 100644 Droidnix/generated/system/system_management/networking/top.nix delete mode 100644 Droidnix/generated/system/system_management/power_management/top.nix delete mode 100644 Droidnix/generated/system/system_management/printers_scanners/top.nix delete mode 100644 Droidnix/generated/system/system_management/security/top.nix delete mode 100644 Droidnix/generated/system/system_management/system_updates/top.nix delete mode 100644 Droidnix/generated/system/system_management/top.nix delete mode 100644 Droidnix/generated/system/task_launcher/top.nix delete mode 100644 Droidnix/generated/system/top.nix delete mode 100644 Droidnix/generated/top.nix diff --git a/Droidnix/README.html b/Droidnix/README.html deleted file mode 100644 index efa33e9c9..000000000 --- a/Droidnix/README.html +++ /dev/null @@ -1,3162 +0,0 @@ - - - - - - - -Droidnix: A Dendritic NixOS + Home Manager Configuration NixOS Configuration Structure - - - - - - - - -
-

Droidnix: A Dendritic NixOS + Home Manager Configuration NixOS Configuration Structure

-
-

Table of Contents

-
- -
-
-
-

Shortcuts

- -
-
-

Introduction   intro

-
-
-
-

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:

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

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: -

-
    -
  1. .assets/: Static, non-generated files (e.g., configs, scripts, themes).
  2. -
  3. Generated folders (system, hyprland, mangowc): NixOS and Home Manager configurations, generated from Org files.
  4. -
-
-
-
-
-
-

Root Level

-
-
    -
  • flake.nix is the entry point and imports: -
      -
    • generated/system/
    • -
    • generated/hyprland/
    • -
    • Machine-specific configurations from assets/machines/
    • -
  • -
-
-
-
-

Generated Structure

-
-

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

-
-
-

System (generated/system/)

-
-

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

-
-
-

Applications (applications/)

-
-
    -
  • file_management/: Configurations for file managers and storage solutions.
  • -
  • gaming/: Settings for gaming-related software.
  • -
  • office_productivity/: Configurations for office software.
  • -
  • media_playback_editing/: Settings for media playback and editing software.
  • -
  • terminal_shell/: Configurations for terminal emulators and shells.
  • -
-
-
-
-

Development (development/)

-
-
    -
  • databases/: Settings for local databases.
  • -
  • devops_ci_cd/: Configurations for DevOps tools.
  • -
  • programming_languages/: Settings for programming languages and their runtimes.
  • -
  • virtualization/: Configurations for virtualization and containerization tools.
  • -
  • web_development/: Settings for web development.
  • -
-
-
-
-

System Management (system_management/)

-
-
    -
  • backups/: Settings for backup software.
  • -
  • bluetooth/: Configurations for Bluetooth devices and services.
  • -
  • power_management/: Settings for power management.
  • -
  • audio/: Configurations for audio.
  • -
  • hardware_sensors/: Settings for hardware monitoring.
  • -
  • logging_monitoring/: Configurations for system logging and monitoring.
  • -
  • login_manager/: Settings for the login manager.
  • -
  • monitor_setup/: Configurations for display settings.
  • -
  • networking/: Settings for networking.
  • -
  • printers_scanners/: Configurations for printers and scanners.
  • -
  • disk_management/: Settings for disk management.
  • -
  • security/: Security-related configurations.
  • -
  • system_updates/: Settings for system updates and package management.
  • -
-
-
-
-
-

Hyprland (generated/hyprland/)

-
-

-This directory contains configurations specific to Hyprland. -

- -
    -
  • animations_effects/: Settings for window animations and visual effects.
  • -
  • decorations/: Configurations for window decorations.
  • -
  • keyboard_binds/: Keyboard shortcuts for Hyprland.
  • -
  • notifications/: Settings for notifications.
  • -
  • statusbar_tray/: Configurations for the status bar and system tray.
  • -
  • task_launcher/: Settings for task launchers.
  • -
  • task_window_workspace_switcher/: Configurations for switching between windows and workspaces.
  • -
  • window_rules/: Rules for window behavior.
  • -
- -
-<<TREE>>
-
-
-
-
-

First Setup

-
-
    -
  1. Clone this repository.
  2. -
  3. Run the setup script: ./setup_droidnix.sh.
  4. -
  5. Edit .assets/system/conf/base.conf to choose your window manager (wm = "hyprland" or wm = "mangowc").
  6. -
  7. Tangle this Org file to generate Nix configurations: C-c C-v t in Emacs or use this: emacs README.org --batch -f org-babel-tangle && emacs --batch --eval "(setq org-html-htmlize-output-type nil)" README.org -f org-html-export-to-html
  8. -
  9. Build and switch: sudo nixos-rebuild switch --flake .#<hostname>.
  10. -
- -

-— -

-
-
-
-
-

The Assets Folder   assets

-
-

-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/

-
-

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

- -
    -
  • conf/base.conf: Defines the window manager choice and other global settings.
  • -
  • scripts/: System-wide scripts (e.g., utilities, helpers).
  • -
-
-
-
-

.assets/hyprland/

-
-

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

- -
    -
  • conf/: Hyprland configuration files (e.g., hyprland.conf).
  • -
  • themes/: Hyprland-specific theme scripts.
  • -
  • scripts/: Hyprland-specific scripts.
  • -
-
-
-
-

.assets/mangowc/

-
-

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

- -
    -
  • conf/: Mangowc configuration files.
  • -
  • themes/: Mangowc-specific theme scripts.
  • -
  • scripts/: Mangowc-specific scripts.
  • -
-
-
-
-

.assets/machines/

-
-

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

- -

-— -

-
-
-
-
-

The Actual Code   code

-
-

-This section contains the Org blocks for tangling Nix code into the generated folders. -

-
-
-

flake.nix

-
-

-The Nix flake definition for Droidnix. -

-
-
{
-  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";
-    };
-    catppuccin = {
-      url = "github:catppuccin/nix";
-      inputs.nixpkgs.follows = "nixpkgs";
-    };
-    emacs-overlay = {
-      url = "github:nix-community/emacs-overlay";
-      inputs.nixpkgs.follows = "nixpkgs";
-    };
-    zen-browser = {
-      url = "github:youwen5/zen-browser-flake";
-      inputs.nixpkgs.follows = "nixpkgs";
-    };
-    hyprland.url = "github:hyprwm/Hyprland";
-  };
-
-outputs =
-  inputs@{
-    self,
-    nixpkgs,
-    home-manager,
-    emacs-overlay,
-    catppuccin,
-    zen-browser,
-    hyprland,
-    ...
-  }:
-  let
-    lib = nixpkgs.lib;
-    system = "x86_64-linux";
-    user = import ./generated/out_of_tree/users/henrov.nix;
-    machines = [
-      "traveldroid"
-      "maindroid"
-    ];
-    flakeRoot = ./.; # Define flakeRoot here
-  in
-  {
-    nixosConfigurations = lib.genAttrs machines (
-      machine:
-      lib.nixosSystem {
-        inherit system;
-        modules = [
-          # Import machine-specific configurations
-          ./generated/out_of_tree/machines/traveldroid/top.nix
-          # Catppuccin theme module
-          catppuccin.nixosModules.catppuccin
-          # Anchoring all the other nixes
-          ./generated/top.nix
-          # Home Manager module
-          inputs.home-manager.nixosModules.home-manager
-          {
-            home-manager.useGlobalPkgs = true;
-            home-manager.useUserPackages = true;
-            home-manager.extraSpecialArgs = { inherit user inputs flakeRoot; };
-          }
-        ];
-        specialArgs = { inherit user inputs flakeRoot; };
-      }
-    );
-
-    homeConfigurations = lib.genAttrs (map (machine: "${user.username}@${machine}") machines) (
-      userMachine:
-      home-manager.lib.homeManagerConfiguration {
-        inherit system;
-        configuration = import ./user.nix { inherit inputs user flakeRoot; };
-        extraSpecialArgs = { inherit user inputs flakeRoot; };
-      }
-    );
-
-    devShells.${system}.default = import ./generated/out_of_tree/terminal_shell/devshell.nix {
-      inherit (nixpkgs.legacyPackages.${system}) mkShell;
-    };
-  };
-}
-
-
-
-
-
-
-

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

-
-
-
-

generated/out_of_tree/users/top.nix

-
-

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

-
-
{ config, pkgs, lib, ... }:
-{
-  imports = [
-    ./user.nix
-  ];
-}
-
-
-
-
-
-

generated/out_of_tree/users/user.nix

-
-

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

-
-
{
-  config,
-  pkgs,
-  lib,
-  inputs,
-  ...
-}:
-
-let
-  user = import ./henrov.nix;
-in
-{
-  home-manager.users.${user.username} = {
-    home.stateVersion = "25.11";
-    home.username = user.username;
-    home.homeDirectory = user.homeDirectory;
-    home.packages = with pkgs; [
-      direnv
-      git-extras
-    ];
-  };
-
-  # Ensure the user is in the necessary groups
-  users.users.${config.users.users.${user.username}.username} = {
-    extraGroups = [ "networkmanager" ];
-}
-
-
-
-
-
-

generated/out_of_tree/users/henrov.nix

-
-

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

-
-
{
-  username = "henrov";
-  hashedPassword = "$6$ISAmsPLyFi7idYXr$VmZsq.zMsyh1irSkyDNqtorNXG0oEHbbMVqTii1t8bymvrQ5ZQmbdi4OiBNeNYe/huHGrojXM.3TST2fTLz0T.";
-  homeDirectory = "/home/henrov";
-  stateVersion = "25.11";
-  locale = "nl_NL.UTF-8";
-}
-
-
-
-
-
-

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

-
-
{
-  config,
-  pkgs,
-  lib,
-  user,
-  inputs,
-  flakeRoot,
-  ...
-}:
-
-{
-  imports = [
-    ./devshell.nix
-    inputs.home-manager.nixosModules.home-manager
-  ];
-}
-
-
-
-
-
-

generated/out_of_tree/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. -

-
-
{ mkShell, ... }:
-mkShell {
-  buildInputs = with import <nixpkgs> {}; [
-    nil
-    nixfmt-rfc-style
-  ];
-}
-
-
-
-
-
-

generated/out_of_tree/machines/traveldroid/top.nix

-
-

-This is the top of the machine hierarchy -

-
-
{
-  config,
-  pkgs,
-  lib,
-  user,
-  inputs,
-  flakeRoot,
-  ...
-}:
-
-{
-  imports = [
-    ./boot.nix
-    ./hardware-configuration.nix
-    ./machine.nix
-    ./dbus.nix
-    ./audio.nix
-    ./xdg.nix
-    ./session.nix
-    ./networking.nix
-    inputs.home-manager.nixosModules.home-manager
-  ];
-}
-
-
-
-
-
-

generated/out_of_tree/machines/traveldroid/hardware-configuration.nix

-
-
    -
  1. Boot into NixOS Live ISO or your installed system.
  2. -
  3. Open a terminal.
  4. -
  5. Run: <code>sudo nixos-generate-config –root /mnt</code> (Omit –root /mnt if already running NixOS.)
  6. -
-
-
{
-  hostname,
-  pkgs,
-  lib,
-  modulesPath,
-  user,
-  config,
-  ...
-}:
-{
-  imports = [
-    # (modulesPath + "/installer/scan/not-detected.nix")
-    #../../hardware/hardware.nix
-  ];
-
-  boot.initrd.availableKernelModules = [
-    "xhci_pci"
-    "nvme"
-    "usb_storage"
-    "sd_mod"
-    "rtsx_usb_sdmmc"
-  ];
-  boot.initrd.kernelModules = [ ];
-  boot.kernelModules = [ "kvm-intel" ];
-  boot.extraModulePackages = [ ];
-
-  fileSystems."/" = {
-    device = "/dev/disk/by-uuid/69433a14-fbaf-401b-af85-cd1bbf02b4e2";
-    fsType = "ext4";
-  };
-
-  fileSystems."/boot" = {
-    device = "/dev/disk/by-uuid/811D-0676";
-    fsType = "vfat";
-    options = [
-      "fmask=0077"
-      "dmask=0077"
-    ];
-  };
-
-  swapDevices = [
-    { device = "/dev/disk/by-uuid/b6c557c2-7682-460b-a5e7-8f6f2f429a3a"; }
-  ];
-
-  nixpkgs.hostPlatform = lib.mkDefault "x86_64-linux";
-  hardware.cpu.intel.updateMicrocode = lib.mkDefault config.hardware.enableRedistributableFirmware;
-}
-
-
-
-
-
-

generated/out_of_tree/machines/traveldroid/boot.nix

-
-

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

-
-
{ pkgs, ... } :
-{
-  boot = {
-  initrd = {
-  verbose = false;   # its a lot of logs. dont need it, unless we do.
-  kernelModules = [ ]; # no kernel modules on boot
-  };
-
-  extraModulePackages = [ ];       # no extra packages on boot either
-  kernelPackages = pkgs.linuxPackages_latest;  # latest greatest linux kernel
-  kernelParams = [ "silent" ];       # quiet those logs
-
-  consoleLogLevel = 0;         # quiten more logs
-  plymouth.enable = true;        # graphical boot animation instead
-
-  supportedFilesystems = [ "ntfs" ];     # should see the ntfs (windows)
-
-  loader = {
-  systemd-boot.enable = true;      # systemd-boot
-  systemd-boot.configurationLimit = 10;
-  efi.canTouchEfiVariables = true;     # allow editing efi to edit the boot loader
-  timeout = 5;           # grub timeout to make a selection
-  };
-  };
-}
-
-
-
-
-
-

generated/out_of_tree/machines/traveldroid/machine.nix

-
-

-This is the top if the machine hierarchy -

-
-
{
-  config,
-  pkgs,
-  lib,
-  user,
-  inputs,
-  flakeRoot,
-  ...
-}:
-
-{
-  options = {
-    wm = lib.mkOption {
-      type = lib.types.str;
-      default = "hyprland";
-      description = "Type of window manager to use";
-    };
-  };
-
-  config = {
-    # Minimal settings that must be defined here
-    networking.hostName = "traveldroid";
-    wm.type = "hyprland";
-
-    # User configuration
-    users.users.${user.username} = {
-      isNormalUser = true;
-      extraGroups = [
-        "wheel"
-        "networkmanager"
-      ];
-      hashedPassword = user.hashedPassword;
-      home = user.homeDirectory;
-    };
-    # Optional: Enable auto-login for testing
-    services.getty.autologinUser = user.username;
-  };
-}
-
-
-
-
-
-

generated/out_of_tree/machines/traveldroid/dbus.nix

-
-

-This sets the dbus implementation -

-
-
{ config, pkgs, lib, ... }:
-{
-  services.dbus = lib.mkForce {
-    enable = true; # Force this to be true
-  };
-
-  # Configure dbus-broker via its configuration file
-  environment.etc."dbus-broker/launch.conf".text = ''
-    [General]
-    LogLevel=warning
-    MaxConnectionsPerUser=2048
-  '';
-}
-
-
-
-
-
-

generated/out_of_tree/machines/traveldroid/networking.nix

-
-

-This sets the networking. -

-
-
{
-  config,
-  pkgs,
-  lib,
-  ...
-}:
-
-{
-  networking = {
-    useDHCP = lib.mkDefault true;
-    networkmanager.enable = true;
-    networkmanager.wifi.backend = "iwd";
-    wireless.iwd.enable = true;
-    wireless.userControlled.enable = true;
-    firewall = {
-      enable = true;
-      # KDE Connect: discovery + encrypted connections
-      allowedTCPPortRanges = [
-        {
-          from = 1714;
-          to = 1764;
-        }
-      ];
-      allowedUDPPortRanges = [
-        {
-          from = 1714;
-          to = 1764;
-        }
-      ];
-    };
-  };
-
-  # Install NetworkManager and wofi
-  environment.systemPackages = with pkgs; [
-    networkmanager
-    wofi
-  ];
-}
-
-
-
-
-
-

generated/out_of_tree/machines/traveldroid/session.nix

-
-

-This sets the session variables -

-
-
{ config, pkgs, user, ... }:
-{
-  environment.sessionVariables = {
-    XDG_SESSION_TYPE = "wayland";
-    XDG_CURRENT_DESKTOP = "Hyprland";
-    XCURSOR_SIZE = "24";
-    GTK_ENABLE_DARK_MODE = "1";
-    GTK_THEME = "Catppuccin-Mocha-Standard-Blue-Dark";
-    GTK_ICON_THEME = "Papirus-Dark";
-    # Use this instead of GTK_APPLICATION_PREFER_DARK_THEME for newer GTK apps:
-    GTK_THEME_VARIANT = "dark";
-    # For Qt apps (if any):
-    QT_STYLE_OVERRIDE = "gtk2";
-    # For Zen Browser (Firefox fork):
-    MOZ_ENABLE_WAYLAND = "1";
-    GSETTINGS_SCHEMA_DIR = "${pkgs.gsettings-desktop-schemas}/share/glib-2.0/schemas";
-  };
-
-    # Add other session-wide variables here (e.g., QT_QPA_PLATFORM, SDL_VIDEODRIVER)
-}
-
-
-
-
-
-

generated/out_of_tree/machines/traveldroid/bluetooth.nix

-
-

-This sets the bluetooth implementation -

-
-
{ config, pkgs, ... }:
-{
-  # Enable Bluetooth hardware and daemon
-  hardware.bluetooth = {
-    enable = true;
-    powerOnBoot = true;
-    packages = with pkgs; [ bluez ];
-  };
-
-  # Enable Bluetooth audio support in PipeWire
-  services.pipewire = {
-    config.pulse = {
-      bluez5.enable = true;
-    };
-  };
-
-  # Optional: Additional Bluetooth settings
-  hardware.bluetooth.extraConfig = ''
-    AutoEnable=true
-    DiscoverableTimeout=0
-    PairableTimeout=0
-  '';
-
-  # Install a graphical Bluetooth manager (optional)
-  environment.systemPackages = with pkgs; [
-    blueman
-  ];
-}
-
-
-
-
-
-

generated/out_of_tree/machines/traveldroid/audio.nix

-
-

-This sets audiosystem for this machine -

-
-
{ config, pkgs, ... }:
-{
-  services.pipewire = {
-    enable = true;
-    alsa.enable = true;    # ALSA compatibility
-    pulse.enable = true;   # PulseAudio compatibility
-    wireplumber.enable = true; # Session manager for PipeWire
-  };
-
-  # Realtime privileges for pro audio (optional)
-  security.rtkit.enable = true;
-}
-
-
-
-
-
-

generated/out_of_tree/machines/traveldroid/xdg.nix

-
-

-This sets the XDG implementation -

-
-
{ config, pkgs, ... }:
-{
-  xdg.portal = {
-    enable = true;
-    config.system.default = [ "hyprland" "gtk" ];
-  };
-}
-
-
-
-
-
-
-
-

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

-
-
-
-

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. -

-
-
{ config, pkgs, lib, ... }:
-{
-  imports = [
-    ./system/top.nix
-    ./hyprland/top.nix
-    # ./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 -

-
-
{ config, pkgs, lib, user, inputs, flakeRoot,... }:
-{
-  imports = [
-    ./hyprland.nix
-    ./animations_effects/top.nix
-    ./decorations/top.nix
-    ./notifications/top.nix
-    ./statusbar_tray/top.nix
-    ./task_window_workspace_switcher/top.nix
-    ./window_rules/top.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. -

-
-
{
-  config,
-  pkgs,
-  lib,
-  user,
-  flakeRoot,
-  ...
-}:
-
-let
-  hyprlandFiles = builtins.attrNames (builtins.readDir "${flakeRoot}/assets/hyprland/conf/hypr");
-  # Filter out hyprland.conf from the list of files to symlink
-  otherHyprlandFiles = lib.filter (name: name != "hyprland.conf") hyprlandFiles;
-  # Generate xdg.configFile entries for all files except hyprland.conf
-  otherConfigs = lib.genAttrs otherHyprlandFiles (name: {
-    target = "hypr/${name}";
-    source = "${flakeRoot}/assets/hyprland/conf/hypr/${name}";
-  });
-in
-{
-  programs.hyprland = {
-    enable = true;
-  };
-
-  home-manager.users.${user.username} = {
-    home.stateVersion = "25.11";
-    home.username = user.username;
-    home.homeDirectory =
-      config.home-manager.users.${user.username}.homeDirectory or "/home/${user.username}";
-
-    wayland.windowManager.hyprland = {
-      enable = true;
-    };
-
-    # Merge all xdg.configFile definitions
-    xdg.configFile = otherConfigs // {
-      "hypr/hyprland.conf".text = ''
-        ${builtins.readFile "${flakeRoot}/assets/hyprland/conf/hypr/hyprland.conf"}
-        # Your manual settings will go below this line and will not be overwritten
-      '';
-      "hypr/.keep".text = "";
-    };
-  };
-}
-
-
-
-
-
-

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 -

-
-
{ config, pkgs, lib, user, inputs, flakeRoot,... }:
-{
-  imports = [
-    # No subfolders to import
-  ];
-  # .. put any code here
-}
-
-
-
-
-
-

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 -

-
-
{ config, pkgs, lib, user, inputs, flakeRoot,... }:
-{
-  imports = [
-    # No subfolders to import
-  ];
-  # .. put any code here
-}
-
-
-
-
-
-

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 -

-
-
{ config, pkgs, lib, user, inputs, flakeRoot,... }:
-{
-  imports = [
-    # No subfolders to import
-  ];
-  # .. put any code here
-}
-
-
-
-
-
-

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 -

-
-
{ config, pkgs, lib, user, inputs, flakeRoot,... }:
-{
-  imports = [
-    # No subfolders to import
-  ];
-  # .. put any code here
-}
-
-
-
-
-
-

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 -

-
-
{ config, pkgs, lib, user, inputs, flakeRoot,... }:
-{
-  imports = [
-    # No subfolders to import
-  ];
-  # .. put any code here
-}
-
-
-
-
-
-

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 -

-
-
{ config, pkgs, lib, user, inputs, flakeRoot,... }:
-{
-  imports = [
-    # No subfolders to import
-  ];
-  # .. put any code here
-}
-
-
-
-
-
-

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 -

-
-
{ config, pkgs, lib, user, inputs, flakeRoot,... }:
-{
-  imports = [
-    ./applications/top.nix
-    ./core/top.nix
-    ./development/top.nix
-    ./system_management/top.nix
-  ];
-  # .. put any code here
-}
-
-
-
-
-
-

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 -

-
-
{ config, pkgs, lib, user, inputs, flakeRoot,... }:
-{
-  imports = [
-    ./packages.nix
-    ./flatpaks.nix
-    ./accessibility/top.nix
-    ./file_management/top.nix
-    ./gaming/top.nix
-    ./media_playback_editing/top.nix
-    ./office_productivity/top.nix
-    ./terminal_shell/top.nix
-  ];
-  nixpkgs.config.allowUnfree = true;
-}
-
-
-
-
-
-

generated/system/applications/packages.nix

-
-

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

-
-
{ config, lib, pkgs, flakeRoot, inputs, ... }:
-let
-  packagesConfPath = "${flakeRoot}/assets/system/apps/packages.conf";
-  raw = builtins.readFile packagesConfPath;
-  # IMPORTANT: explicit "\n" so we never accidentally split into characters
-  rawLines = lib.splitString "\n" raw;
-  # Guard: if we accidentally split into characters, rawLines length ~= stringLength raw
-  _guard = assert !(
-  builtins.stringLength raw > 1 &&
-  builtins.length rawLines == builtins.stringLength raw
-  ); true;
-  cleanLine = l:
-  let
-  noCR = lib.replaceStrings [ "\r" ] [ "" ] l;
-  noInlineComment = lib.head (lib.splitString "#" noCR);
-  in
-  lib.strings.trim noInlineComment;
-  entries =
-  builtins.filter (l: l != "")
-  (map cleanLine rawLines);
-  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}
-    Hint     : check the attribute name on search.nixos.org/packages
-    ''
-  else
-    found;
-  packages = builtins.seq _guard (map resolvePkg entries);
-  zenBrowser =
-  inputs.zen-browser.packages.${pkgs.stdenv.hostPlatform.system}.default;
-in
-{
-  environment.systemPackages =
-  packages
-  ++ [ zenBrowser ];
-}
-
-
-
-
-
-
-

generated/system/applications/flatpaks.nix

-
-

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

-
-
{
-  config,
-  pkgs,
-  lib,
-  flakeRoot,
-  ...
-}:
-let
-  moduleName = "install-flatpaks";
-  flatpakConfPath = "${flakeRoot}/assets/system/apps/flatpaks.conf";
-  raw = builtins.readFile flatpakConfPath;
-  # Explicit "\n" so we never accidentally split into characters
-  rawLines = lib.splitString "\n" raw;
-
-  # Guard: if we accidentally split into characters, rawLines length ~= stringLength raw
-  _guard =
-    assert !(builtins.stringLength raw > 1 && builtins.length rawLines == builtins.stringLength raw);
-    true;
-
-  cleanLine =
-    l:
-    let
-      noCR = lib.replaceStrings [ "\r" ] [ "" ] l;
-      noInlineComment = lib.head (lib.splitString "#" noCR);
-    in
-    lib.strings.trim noInlineComment;
-
-  entries = builtins.filter (l: l != "") (map cleanLine rawLines);
-
-  # Flatpak app IDs are reverse-DNS style like org.example.App (at least 2 dots).
-  # We'll validate and fail early with a clear message.
-  dotCount = s: builtins.length (lib.splitString "." s) - 1;
-
-  isValidId = s: (dotCount s) >= 2; # matches the error you're seeing: "at least 2 periods"
-
-  _validate = builtins.seq _guard (
-    builtins.map (
-      id:
-      if isValidId id then
-        true
-      else
-        throw ''
-          ${moduleName}: invalid Flatpak ID in flatpaks.conf (needs reverse-DNS with at least 2 dots)
-
-          Token    : ${builtins.toJSON id}
-          flatpaks.conf : ${toString flatpakConfPath}
-
-          Fix: remove stray tokens/headers, or comment them out with '#'.
-        ''
-    ) entries
-  );
-
-  # Use validated entries
-  flatpakApps = builtins.seq _validate entries;
-
-  syncFlatpaks = pkgs.writeShellScript "sync-flatpaks" ''
-    set -euo pipefail
-
-    # Use the deployed config path (matches environment.etc below)
-    CONF="/etc/flatpak/flatpaks.conf"
-    if [[ -f "$CONF" ]]; then
-    echo "flatpak-sync: using $CONF"
-    else
-    echo "flatpak-sync: WARNING: $CONF not found, using embedded list"
-    fi
-
-    if ! flatpak remotes --system --columns=name | grep -qx flathub; then
-    flatpak remote-add --system --if-not-exists flathub https://dl.flathub.org/repo/flathub.flatpakrepo
-    fi
-
-    desired_apps=(
-    ${lib.concatStringsSep "\n" (map (a: ''"${a}"'') flatpakApps)}
-    )
-
-    for app in "''${desired_apps[@]}"; do
-    if ! flatpak info --system "$app" >/dev/null 2>&1; then
-      flatpak install --system -y --noninteractive flathub "$app"
-    fi
-    done
-  '';
-in
-{
-  services.flatpak.enable = true;
-
-  xdg.portal = {
-    enable = true;
-  };
-
-  # Deploy the config file for runtime visibility/debugging
-  environment.etc."flatpak/flatpaks.conf".source = lib.mkForce flatpakConfPath;
-
-  systemd.services.flatpak-sync = {
-    description = "Install Flatpak apps listed in flatpaks.conf";
-    wantedBy = [ "multi-user.target" ];
-    wants = [ "network-online.target" ];
-    after = [ "network-online.target" ];
-
-    serviceConfig = {
-      Type = "oneshot";
-      ExecStart = syncFlatpaks;
-    };
-
-    restartTriggers = [ flatpakConfPath ];
-    path = [
-      pkgs.flatpak
-      pkgs.coreutils
-      pkgs.gnugrep
-      pkgs.gnused
-    ];
-  };
-}
-
-
-
-
-
-
-

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 -

-
-
{ config, pkgs, lib, user, inputs, flakeRoot,... }:
-{
-  imports = [
-    ./wayland.nix
-    #./eww.nix
-    ./waybar.nix
-    ./login-tuigreeter.nix
-    #./login-lightdm.nix
-    ./fonts.nix
-    ./gtk.nix
-  ];
-}
-
-
-
-
-
-

generated/system/core/gtk.nix

-
-

-I use the Catppuccin almost everywhere. The nix module integrates almost automatically everywhere (except gtk). -You'll notice the color values in multiple places outside this as well. -

-
-
{ pkgs, user, ... }:
-{
-  home-manager.users.${user.username} = {
-    gtk = {
-      enable = true;
-      theme = {
-        name = "Catppuccin-Mocha-Standard-Blue-Dark";
-        package = pkgs.magnetic-catppuccin-gtk;
-      };
-      iconTheme = {
-        name = "Papirus-Dark";
-        package = pkgs.papirus-icon-theme;
-      };
-      gtk3.extraConfig = {
-        gtk-application-prefer-dark-theme = 1;
-      };
-      gtk4.extraConfig = {
-        gtk-application-prefer-dark-theme = 1;
-      };
-    };
-
-  };
-}
-
-
-
-
-
-

generated/system/core/fonts.nix

-
-

-This file installs and configures fonts -

-
-
{ config, pkgs, ... }:
-{
-  fonts.packages = with pkgs; [
-    pkgs.nerd-fonts.iosevka
-  ];
-}
-
-
-
-
-
-

generated/system/core/eww.nix

-
-

-This file installs and configures eww -

-
-
{ lib, config, pkgs, flakeRoot, user, ... }:
-let
-  ewwConfigDir = "${config.home-manager.users.${user.username}.xdg.configHome}/eww";
-  # Dynamically read all files in assets/system/conf/eww/
-  ewwConfs = lib.genAttrs (builtins.attrNames (builtins.readDir "${flakeRoot}/assets/system/conf/eww")) (name: {
-    text = builtins.readFile "${flakeRoot}/assets/system/conf/eww/${name}";
-  });
-in
-{
-  environment.systemPackages = with pkgs; [ eww ];
-
-  home-manager.users.${user.username} = {
-    home.file = {
-      "${ewwConfigDir}" = {
-        source = "${flakeRoot}/assets/system/conf/eww";
-        recursive = true;
-      };
-    };
-
-    home.sessionVariables = {
-      EWW_BIN = "${pkgs.eww}/bin/eww";
-    };
-
-    # Start eww with Hyprland/MangoWC
-    wayland.windowManager.hyprland.settings = lib.mkForce {
-      exec-once = [ "eww daemon" ];
-      exec = [ "eww open-many ${ewwConfigDir}/widgets" ]; # Adjust as needed
-    };
-  };
-}
-
-
-
-
-
-

generated/system/core/waybar.nix

-
-

-This file installs and configures waybar -

-
-
{ lib, pkgs, config, flakeRoot, ... }:
-let
-  username = "henrov";  # Replace with your actual username
-  waybar-config = pkgs.writeText "waybar-config" (builtins.readFile (flakeRoot + "/assets/system/conf/waybar/config"));
-  waybar-style = pkgs.writeText "waybar-style" (builtins.readFile (flakeRoot + "/assets/system/conf/waybar/style.css"));
-in
-{
-  programs.waybar = {
-    enable = true;
-    package = pkgs.waybar;
-  };
-
-  systemd.user.services.waybar = {
-    description = "Waybar (status bar for Wayland)";
-    wantedBy = [ "graphical-session.target" ];
-    after = [ "graphical-session.target" ];
-    serviceConfig = {
-      ExecStart = "${config.programs.waybar.package}/bin/waybar -c ${waybar-config} -s ${waybar-style}";
-      Restart = "on-failure";
-      RestartSec = "5s";
-    };
-  };
-
-  # Create symlinks for config and style
-  system.activationScripts.waybarSetup = lib.mkAfter ''
-    mkdir -p /home/${username}/.config/waybar
-    ln -sf ${waybar-config} /home/${username}/.config/waybar/config
-    ln -sf ${waybar-style} /home/${username}/.config/waybar/style.css
-    chown -R ${username}:users /home/${username}/.config/waybar
-  '';
-}
-
-
-
-
-
-

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 -

-
-
{ pkgs, user, ... } :
-{
-environment.systemPackages = with pkgs; [
-tuigreet
-];
-services.greetd = {
-enable = true;
-settings = {
-  default_session = {
-  command = pkgs.lib.mkForce "${pkgs.tuigreet}/bin/tuigreet --remember --time --time-format '%I:%M %p | %a • %h | %F'";
-  };
-};
-};
-}
-
-
-
-
-
-

generated/system/core/wayland.nix

-
-

-This file sets up wayland -

-
-
{ config, pkgs, lib, user, ... }:
-{
-  home-manager.users.${user.username} = {
-    xdg.portal = {
-      enable = true;
-      extraPortals = with pkgs; [ xdg-desktop-portal-hyprland ];
-      config.hyprland = {
-        "org.freedesktop.impl.portal.Screencast" = [ "hyprland" ];
-      };
-    };
-
-  home.packages = with pkgs; [
-     uwsm
-     ];
-  };
-}
-
-
-
-
-
-

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 -

-
-
{ config, pkgs, lib, user, inputs, flakeRoot,... }:
-{
-  imports = [
-    ./databases/top.nix
-    ./devops_ci_cd/top.nix
-    ./programming_languages/top.nix
-    ./virtualization/top.nix
-    ./web_development/top.nix
-  ];
-  # .. put any code here
-}
-
-
-
-
-
-

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 -

-
-
{ config, pkgs, lib, user, inputs, flakeRoot,... }:
-{
-  imports = [
-    ./audio/top.nix
-    ./backups/top.nix
-    ./bluetooth/top.nix
-    ./disk_management/top.nix
-    ./hardware_sensors/top.nix
-    ./logging_monitoring/top.nix
-    ./login_manager/top.nix
-    ./monitor_setup/top.nix
-    ./networking/top.nix
-    ./power_management/top.nix
-    ./printers_scanners/top.nix
-    ./security/top.nix
-    ./system_updates/top.nix
-  ];
-  # .. put any code here
-}
-
-
-
-
-
-

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 -

-
-
{ config, pkgs, lib, user, inputs, flakeRoot,... }:
-{
-  imports = [
-    # No subfolders to import
-  ];
-  # .. put any code here
-}
-
-
-
-
-
-

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 -

-
-
{ config, pkgs, lib, user, inputs, flakeRoot,... }:
-{
-  imports = [
-    ./thunar.nix
-  ];
-}
-
-
-
-
-
-

generated/system/applications/file_management/thunar.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,
-  ...
-}:
-
-let
-  username = "henrov"; # vervang door je echte gebruikersnaam
-in
-{
-  home-manager.users.${username} = {
-
-       # Thunar and plugins
-    home.packages = with pkgs; [
-      thunar
-      thunar-volman
-      thunar-archive-plugin
-      thunar-media-tags-plugin
-      tumbler
-      ffmpegthumbnailer
-      gvfs
-      xdg-utils
-    ];
-
-    # Default file manager
-    xdg.mimeApps = {
-      defaultApplications = {
-        "inode/directory" = "Thunar.desktop";
-      };
-    };
-  };
-}
-
-
-
-
-
-

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 -

-
-
{ config, pkgs, lib, user, inputs, flakeRoot,... }:
-{
-  imports = [
-    # No subfolders to import
-  ];
-  # .. put any code here
-}
-
-
-
-
-
-

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 -

-
-
{ config, pkgs, lib, user, inputs, flakeRoot,... }:
-{
-  imports = [
-    # No subfolders to import
-  ];
-  # .. put any code here
-}
-
-
-
-
-
-

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 -

-
-
{ config, pkgs, lib, user, inputs, flakeRoot,... }:
-{
-  imports = [
-    # No subfolders to import
-  ];
-  # .. put any code here
-}
-
-
-
-
-
-

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 -

-
-
{ config, pkgs, lib, user, inputs, flakeRoot,... }:
-{
-  imports = [
-    ./kitty.nix
-    ./starship.nix
-    ./zsh.nix
-    ./emacs.nix
-  ];
-  # .. put any code here
-}
-
-
-
-
-
-

generated/system/applications/terminal_shell/kitty.nix

-
-

-This file sets up Kitty terminal -

-
-
{ config, pkgs, lib, user, flakeRoot, ... }:
-let
-  kittyConfigDir = "${config.home-manager.users.${user.username}.xdg.configHome}/kitty";
-in
-{
-  home-manager.users.${user.username} = {
-    programs.kitty = {
-      enable = true;
-    };
-
-    # Copy the actual kitty.conf (not a symlink)
-    xdg.configFile."kitty/kitty.conf".text = lib.concatStringsSep "\n" [
-      (builtins.readFile "${flakeRoot}/assets/system/conf/kitty/kitty.conf")
-    ];
-
-    # Copy the theme file
-    xdg.configFile."kitty/Catppuccin-Mocha.conf".source = "${flakeRoot}/assets/system/conf/kitty/Catppuccin-Mocha.conf";
-  };
-}
-
-
-
-
-
-

generated/system/applications/terminal_shell/starship.nix

-
-

-This file sets up starship prompt -

-
-
{
-  lib,
-  config,
-  pkgs,
-  flakeRoot,
-  ...
-}:
-let
-  starshipConfig = lib.importTOML (flakeRoot + "/assets/system/conf/starship.toml");
-in
-{
-  programs.starship = {
-    enable = true;
-    settings = starshipConfig;
-  };
-}
-
-
-
-
-
-

generated/system/applications/terminal_shell/zsh.nix

-
-

-This sets up the zsh terminal -

-
-
{
-  lib,
-  config,
-  pkgs,
-  ...
-}:
-
-{
-  # --- NixOS Configuration ---
-  environment.systemPackages = with pkgs; [
-    zsh
-    git
-    docker
-  ];
-
-  # --- Home Manager Configuration ---
-  home-manager.users.henrov = {
-    programs.zsh = {
-      enable = true;
-      enableCompletion = true;
-
-      # Enable oh-my-zsh and use its plugins
-      oh-my-zsh = {
-        enable = true;
-        plugins = [
-          "git"
-          "docker"
-          "direnv"
-          "zsh-autosuggestions"
-          "zsh-syntax-highlighting"
-          "zsh-completions"
-          "zsh-history-substring-search"
-        ];
-        theme = "agnoster"; # Fallback, overridden below
-      };
-
-      # Source Nixpkgs-provided plugins explicitly
-      initContent = ''
-        # Source plugins installed by Nix
-        source ${pkgs.zsh-autosuggestions}/share/zsh-autosuggestions/zsh-autosuggestions.zsh
-        source ${pkgs.zsh-syntax-highlighting}/share/zsh-syntax-highlighting/zsh-syntax-highlighting.zsh
-        source ${pkgs.zsh-history-substring-search}/share/zsh-history-substring-search/zsh-history-substring-search.zsh
-
-        # Catppuccin Mocha theme for oh-my-zsh
-        local mocha_base="#1E1E2E"
-        local mocha_surface0="#313244"
-        local mocha_text="#CDD6F4"
-        local mocha_lavender="#B4BEFE"
-        local mocha_blue="#89B4FA"
-        local mocha_sapphire="#74C7EC"
-        local mocha_teal="#94E2D5"
-        local mocha_green="#A6E3A1"
-        local mocha_yellow="#F9E2AF"
-        local mocha_peach="#FAB387"
-        local mocha_maroon="#EBA0AC"
-        local mocha_red="#F38BA8"
-        local mocha_mauve="#CBA6F7"
-        local mocha_pink="#F5C2E7"
-        local mocha_flamingo="#F2CDCD"
-        local mocha_rosewater="#F5E0DC"
-
-        # Prompt
-        PROMPT='%{$fg[$mocha_blue]%}%n%{$reset_color%}@%{$fg[$mocha_peach]%}%m%{$reset_color%} %{$fg[$mocha_lavender]%}%~%{$reset_color%} %{$fg[$mocha_red]%}$%{$reset_color%} '
-        RPROMPT='%{$fg[$mocha_green]%}%T%{$reset_color%}'
-
-        # Git prompt
-        ZSH_THEME_GIT_PROMPT_PREFIX="%{$fg[$mocha_yellow]%}(%{$reset_color%}"
-        ZSH_THEME_GIT_PROMPT_SUFFIX="%{$fg[$mocha_yellow]%})%{$reset_color%}"
-        ZSH_THEME_GIT_PROMPT_DIRTY="%{$fg[$mocha_red]%}✗%{$reset_color%}"
-        ZSH_THEME_GIT_PROMPT_CLEAN="%{$fg[$mocha_green]%}✓%{$reset_color%}"
-        ZSH_THEME_GIT_PROMPT_AHEAD="%{$fg[$mocha_blue]%}⇡%{$reset_color%}"
-        ZSH_THEME_GIT_PROMPT_BEHIND="%{$fg[$mocha_blue]%}⇣%{$reset_color%}"
-        ZSH_THEME_GIT_PROMPT_UNTRACKED="%{$fg[$mocha_pink]%}?%{$reset_color%}"
-        ZSH_THEME_GIT_PROMPT_STAGED="%{$fg[$mocha_sapphire]%}+%{$reset_color%}"
-        ZSH_THEME_GIT_PROMPT_UNSTAGED="%{$fg[$mocha_red]%}!%{$reset_color%}"
-
-        # Virtualenv/pyenv
-        ZSH_THEME_VIRTUAL_ENV_PREFIX="(%{$fg[$mocha_teal]%}"
-        ZSH_THEME_VIRTUAL_ENV_SUFFIX="%{$reset_color%})"
-
-        # Right prompt with Git status
-        RPROMPT='$(git_prompt_info) %{$fg[$mocha_green]%}%T%{$reset_color%}'
-
-        # Set the custom theme
-        ZSH_THEME="catppuccin-mocha"
-      '';
-    };
-
-    # Home Manager packages (optional)
-    home.packages = with pkgs; [
-      direnv
-      git-extras
-    ];
-  };
-}
-
-
-
-
-
-

generated/system/applications/terminal_shell/emacs.nix

-
-

-This sets up the emacs terminal -

-
-
{ pkgs, ... }:
-
-{
-  # NixOS Configuration
-  environment.systemPackages = with pkgs; [
-    # Add system-wide packages here, if any
-  ];
-
-  # Home Manager Configuration for the user 'henrov'
-  home-manager.users.henrov = {
-    programs.emacs = {
-      enable = true;
-      package = pkgs.emacs-pgtk.override { withTreeSitter = true; };
-
-      # Group related packages for clarity and easier maintenance
-      extraPackages = epkgs: with epkgs; [
-        # Tree-sitter and language support
-        manualPackages.treesit-grammars.with-all-grammars
-        rust-mode
-        rustic
-        nix-mode
-        hcl-mode
-
-        # UI/UX and navigation
-        nerd-icons
-        doom-modeline
-        diminish
-        eldoc
-        eldoc-box
-        pulsar
-        which-key
-        avy
-        consult
-        vertico
-        marginalia
-        crux
-        shell-pop
-
-        # Completion and snippets
-        nerd-icons-corfu
-        corfu
-        cape
-        orderless
-        yasnippet
-        yasnippet-snippets
-
-        # Utilities and tools
-        rg
-        exec-path-from-shell
-        eat
-        f
-        gptel
-        nixpkgs-fmt
-        envrc
-
-        # Theming
-        catppuccin-theme
-
-        # Git
-        magit
-
-        # Editing and workflow
-        expreg
-        vundo
-        puni
-
-        # Error and side panel support
-        sideline
-        sideline-flymake
-        sideline-eglot
-      ];
-    };
-
-    # Home Manager session variables
-    home.sessionVariables = {
-      EDITOR = "emacs";
-      XDG_SCREENSHOTS_DIR = "~/screenshots";
-    };
-  /*
-    # Home Manager file management
-    home.file = {
-      "emacs/early-init.el" = {
-        source = ./early-init.el;
-        target = ".emacs.d/early-init.el";
-      };
-      "emacs/init.el" = {
-        source = ./init.el;
-        target = ".emacs.d/init.el";
-      };
-    };
-  */
-  };
-}
-
-
-
-
-
-
-

generated/system/applications/terminal_shell/early-init.el

-
-

-This helps set up the emacs terminal -

-
-
;;; package --- early init -*- lexical-binding: t -*-
- ;;; Commentary:
- ;;; Prevents white flash and better Emacs defaults
- ;;; Code:
- (set-language-environment "UTF-8")
- (setq-default
-default-frame-alist
-'((background-color . "#1e1e2e")
-  (bottom-divider-width . 1)    ; Thin horizontal window divider
-  (foreground-color . "#bac2de")    ; Default foreground color
-  (fullscreen . maximized)      ; Maximize the window by default
-  (horizontal-scroll-bars . nil)    ; No horizontal scroll-bars
-  (left-fringe . 8)       ; Thin left fringe
-  (menu-bar-lines . 0)      ; No menu bar
-  (right-divider-width . 1)     ; Thin vertical window divider
-  (right-fringe . 8)        ; Thin right fringe
-  (tool-bar-lines . 0)      ; No tool bar
-  (undecorated . t)       ; Remove extraneous X decorations
-  (vertical-scroll-bars . nil))   ; No vertical scroll-bars
-user-full-name "Henrov henrov"      ; ME!
-;; memory configuration
-;; Higher garbage collection threshold, prevents frequent gc locks, reset later
-gc-cons-threshold most-positive-fixnum
-;; Ignore warnings for (obsolete) elisp compilations
-byte-compile-warnings '(not obsolete)
-;; And other log types completely
-warning-suppress-log-types '((comp) (bytecomp))
-;; Large files are okay in the new millenium.
-large-file-warning-threshold 100000000
-;; dont show garbage collection messages at startup, will reset later
-garbage-collection-messages nil
-;; native compilation
-package-native-compile t
-native-comp-warning-on-missing-source nil
-native-comp-async-report-warnings-errors 'silent
-;; Read more based on system pipe capacity
-read-process-output-max (max (* 10240 10240) read-process-output-max)
-;; scroll configuration
-scroll-margin 0           ; Lets scroll to the end of the margin
-scroll-conservatively 100000        ; Never recenter the window
-scroll-preserve-screen-position 1     ; Scrolling back and forth
-;; frame config
-;; Improve emacs startup time by not resizing to adjust for custom settings
-frame-inhibit-implied-resize t
-;; Dont resize based on character height / width but to exact pixels
-frame-resize-pixelwise t
-;; backups & files
-backup-directory-alist '(("." . "~/.backups/")) ; Don't clutter
-backup-by-copying t           ; Don't clobber symlinks
-create-lockfiles nil          ; Don't have temp files
-delete-old-versions t         ; Cleanup automatically
-kept-new-versions 6           ; Update every few times
-kept-old-versions 2           ; And cleanup even more
-version-control t           ; Version them backups
-delete-by-moving-to-trash t       ; Dont delete, send to trash instead
-;; startup
-inhibit-startup-screen t        ; I have already done the tutorial. Twice
-inhibit-startup-message t         ; I know I am ready
-inhibit-startup-echo-area-message t     ; Yep, still know it
-initial-scratch-message nil       ; I know it is the scratch buffer!
-initial-buffer-choice nil
-inhibit-startup-buffer-menu t
-inhibit-x-resources t
-initial-major-mode 'fundamental-mode
-pgtk-wait-for-event-timeout 0.001     ; faster child frames
-ad-redefinition-action 'accept      ; dont care about legacy things being redefined
-inhibit-compacting-font-caches t
-;; tabs
-tab-width 4             ; Always tab 4 spaces.
-indent-tabs-mode nil          ; Never use actual tabs.
-;; rendering
-cursor-in-non-selected-windows nil      ; dont render cursors other windows
-;; packages
-use-package-always-defer t
-load-prefer-newer t
-default-input-method nil
-use-dialog-box nil
-use-file-dialog nil
-use-package-expand-minimally t
-package-enable-at-startup nil
-use-package-enable-imenu-support t
-auto-mode-case-fold nil  ; No second pass of case-insensitive search over auto-mode-alist.
-package-archives '(("melpa"    . "https://melpa.org/packages/")
-        ("gnu"    . "https://elpa.gnu.org/packages/")
-        ("nongnu"   . "https://elpa.nongnu.org/nongnu/")
-        ("melpa-stable" . "https://stable.melpa.org/packages/"))
-package-archive-priorities '(("gnu"  . 99)
-            ("nongnu" . 80)
-            ("melpa"  . 70)
-            ("melpa-stable" . 50))
-)
-;;; early-init.el ends here
-
-
-
-
-
-

generated/system/applications/terminal_shell/init.el

-
-

-This helps set up the emacs terminal -

-
-
;;; package --- Summary - My minimal Emacs init file -*- lexical-binding: t -*-
-
-;;; Commentary:
-;;; Simple Emacs setup I carry everywhere
-
-;;; Code:
-(setq custom-file (locate-user-emacs-file "custom.el"))
-(load custom-file 'noerror)    ;; no error on missing custom file
-
-(require 'package)
-(package-initialize)
-
-(defun reset-custom-vars ()
-"Resets the custom variables that were set to crazy numbers"
-(setopt gc-cons-threshold (* 1024 1024 100))
-(setopt garbage-collection-messages t))
-
-(use-package emacs
-:custom
-(native-comp-async-query-on-exit t)
-(read-answer-short t)
-(use-short-answers t)
-(enable-recursive-minibuffers t)
-(which-func-update-delay 1.0)
-(visible-bell nil)
-(custom-buffer-done-kill t)
-(whitespace-line-column nil)
-(x-underline-at-descent-line t)
-(imenu-auto-rescan t)
-(uniquify-buffer-name-style 'forward)
-(confirm-nonexistent-file-or-buffer nil)
-(create-lockfiles nil)
-(make-backup-files nil)
-(kill-do-not-save-duplicates t)
-(sentence-end-double-space nil)
-(treesit-enabled-modes t)
-:init
-;; base visual
-(menu-bar-mode -1)       ;; no menu bar
-(toggle-scroll-bar -1)     ;; no scroll bar
-(tool-bar-mode -1)       ;; no tool bar either
-(blink-cursor-mode -1)     ;; stop blinking
-
-;; font of the century
-(set-frame-font "Aporetic Sans Mono 12" nil t)
-
-:bind
-(("C-<wheel-up>" . pixel-scroll-precision) ; dont zoom in please, just scroll
- ("C-<wheel-down>" . pixel-scroll-precision) ; dont zoom in either, just scroll
- ("C-x k"    . kill-current-buffer)) ; kill the buffer, dont ask
-:hook
-(text-mode . delete-trailing-whitespace-mode)
-(prog-mode . delete-trailing-whitespace-mode)
-(after-init . global-display-line-numbers-mode) ;; always show line numbers
-(after-init . column-number-mode)     ;; column number in the mode line
-(after-init . size-indication-mode)     ;; file size in the mode line
-(after-init . pixel-scroll-precision-mode)  ;; smooth mouse scroll
-(after-init . electric-pair-mode)     ;; i mean ... parens should auto create
-(after-init . reset-custom-vars)
-)
-
-(use-package autorevert
-:ensure nil
-:custom
-(auto-revert-interval 3)
-(auto-revert-remote-files nil)
-(auto-revert-use-notify t)
-(auto-revert-avoid-polling nil)
-(auto-revert-verbose t)
-:hook
-(after-init . global-auto-revert-mode))
-
-(use-package recentf
-:ensure nil
-:commands (recentf-mode recentf-cleanup)
-:hook
-(after-init . recentf-mode)
-:custom
-(recentf-auto-cleanup 'never)
-(recentf-exclude
- (list "\\.tar$" "\\.tbz2$" "\\.tbz$" "\\.tgz$" "\\.bz2$"
-   "\\.bz$" "\\.gz$" "\\.gzip$" "\\.xz$" "\\.zip$"
-   "\\.7z$" "\\.rar$"
-   "COMMIT_EDITMSG\\'"
-   "\\.\\(?:gz\\|gif\\|svg\\|png\\|jpe?g\\|bmp\\|xpm\\)$"
-   "-autoloads\\.el$" "autoload\\.el$"))
-
-:config
-;; A cleanup depth of -90 ensures that `recentf-cleanup' runs before
-;; `recentf-save-list', allowing stale entries to be removed before the list
-;; is saved by `recentf-save-list', which is automatically added to
-;; `kill-emacs-hook' by `recentf-mode'.
-(add-hook 'kill-emacs-hook #'recentf-cleanup -90))
-
-(use-package savehist
-:ensure nil
-:commands (savehist-mode savehist-save)
-:hook
-(after-init . savehist-mode)
-:custom
-(savehist-autosave-interval 600)
-(savehist-additional-variables
- '(kill-ring        ; clipboard
- register-alist       ; macros
- mark-ring global-mark-ring   ; marks
- search-ring regexp-search-ring)))
-
-(use-package hl-line
-:ensure nil
-:custom
-(hl-line-sticky-flag nil)
-(global-hl-line-sticky-flag nil)
-:hook
-(after-init . global-hl-line-mode))
-
-(use-package saveplace
-:ensure nil
-:commands (save-place-mode save-place-local-mode)
-:hook
-(after-init . save-place-mode)
-:custom
-(save-place-limit 400))
-
-(use-package nerd-icons
-:custom
-;; disable bright icon colors
-(nerd-icons-color-icons nil))hells.nix
-
-(use-package doom-modeline
-:custom
-(inhibit-compacting-font-caches t)  ;; speed
-(doom-modeline-buffer-file-name-style 'relative-from-project)
-(doom-modeline-major-mode-icon nil) ;; distracting icons, no thank you
-(doom-modeline-buffer-encoding nil) ;; everything is utf-8 anyway
-(doom-modeline-buffer-state-icon nil) ;; the filename already shows me
-(doom-modeline-lsp nil)     ;; lsp state is too distracting, too often
-:hook (after-init . doom-modeline-mode))
-
-(load-theme 'catppuccin :no-confirm)
-
-(use-package diminish :demand t)   ;; declutter the modeline
-(use-package eldoc
-:diminish eldoc-mode
-:custom
-(eldoc-echo-area-use-multiline-p nil)) ;; docs for everything
-
-(use-package eldoc-box
-:defer t
-:config
-(set-face-background 'eldoc-box-border (catppuccin-color 'green))
-(set-face-background 'eldoc-box-body (catppuccin-color 'base))
-:bind
-(("M-h" . eldoc-box-help-at-point)))
-
-(use-package pulsar
-:commands pulsar-global-mode pulsar-recenter-top pulsar-reveal-entry
-:init
-(defface pulsar-catppuccin
-`((default :extend t)
-  (((class color) (min-colors 88) (background light))
- :background ,(catppuccin-color 'sapphire))
-  (((class color) (min-colors 88) (background dark))
- :background ,(catppuccin-color 'sapphire))
-  (t :inverse-video t))
-"Alternative nord face for `pulsar-face'."
-:group 'pulsar-faces)
-:custom
-(pulsar-face 'pulsar-catppuccin)
-:hook
-(after-init . pulsar-global-mode))
-
-(use-package which-key
-:commands which-key-mode
-:diminish which-key-mode
-:hook
-(after-init . which-key-mode))
-
-(use-package expreg
-:bind ("M-m" . expreg-expand))
-
-(use-package vundo) ;; undo tree
-
-;; better structured editing
-(use-package puni
-:commands puni-global-mode
-:hook
-(after-init . puni-global-mode))
-
-(use-package avy
-:bind
-("M-i" . avy-goto-char-2)
-:custom
-(avy-background t))
-
-(use-package consult
-:bind
-("C-x b" . consult-buffer)   ;; orig. switch-to-buffer
-("M-y"   . consult-yank-pop) ;; orig. yank-pop
-("M-g M-g" . consult-goto-line)  ;; orig. goto-line
-("M-g i" . consult-imenu)  ;; consult version is interactive
-("M-g r" . consult-ripgrep)  ;; find in project also works
-:custom
-(consult-narrow-key "<"))
-
-(use-package vertico
-:commands vertico-mode
-:custom
-(read-file-name-completion-ignore-case t)
-(read-buffer-completion-ignore-case t)
-(completion-ignore-case t)
-(enable-recursive-minibuffers t)
-(minibuffer-prompt-properties '(read-only t cursor-intangible t face minibuffer-prompt))
-:init
-(vertico-mode)
-:hook
-(minibuffer-setup-hook . cursor-intangible-mode))
-
-(use-package marginalia
-:commands marginalia-mode
-:hook (after-init . marginalia-mode))
-
-(use-package crux
-:bind
-("C-c M-e" . crux-find-user-init-file)
-("C-c C-w" . crux-transpose-windows)
-("C-c M-d" . crux-find-current-directory-dir-locals-file)
-("C-a"   . crux-move-beginning-of-line))
-
-(use-package magit
-:bind (("C-M-g" . magit-status)))
-
-(use-package nerd-icons-corfu
-:commands nerd-icons-corfu-formatter
-:defines corfu-margin-formatters)
-
-(use-package corfu
-:commands global-corfu-mode
-:custom
-(corfu-cycle t)
-(corfu-auto t)
-(corfu-auto-delay  1)
-(corfu-auto-prefix 3)
-(corfu-separator ?_)
-:hook
-(after-init . global-corfu-mode)
-:config
-(add-to-list 'corfu-margin-formatters #'nerd-icons-corfu-formatter))
-
-(use-package cape)
-
-(use-package orderless
-:custom
-(completion-styles '(orderless partial-completion basic))
-(completion-category-defaults nil)
-(completion-category-overrides nil))
-
-(use-package yasnippet
-:commands yas-global-mode
-:diminish yas-minor-mode
-:hook
-(after-init . yas-global-mode))
-
-(use-package yasnippet-snippets :after yasnippet)
-
-(use-package exec-path-from-shell
-:commands exec-path-from-shell-initialize
-:custom
-(exec-path-from-shell-arguments nil)
-:hook
-(after-init . exec-path-from-shell-initialize))
-
-(use-package nixpkgs-fmt
-:custom
-(nixpkgs-fmt-command "nixfmt"))
-
-(use-package eat
-:bind
-(("C-c e p" . eat-project)
- ("C-c e t" . eat)))
-
-(use-package f :demand t)
-
-(use-package envrc
-:commands envrc-global-mode
-:hook
-(after-init . envrc-global-mode))
-
-(use-package gptel
-:commands gptel-make-anthropic f-read-text
-:config
-(gptel-make-anthropic "Claude"
-:stream t :key (f-read-text "/run/secrets/claude_key")))
-
-(use-package sideline-flymake)
-(use-package sideline-eglot)
-(use-package sideline
-:custom
-(sideline-backends-right '(sideline-flymake sideline-eglot))
-:hook
-(eglot-managed-mode . sideline-mode)
-(flymake-mode . sideline-mode))
-
-(use-package eglot
-:custom
-(eglot-extend-to-xref t)
-(eglot-ignored-server-capabilities '(:inlayHintProvider))
-(jsonrpc-event-hook nil)
-:hook
-(eglot-managed-mode . eldoc-box-hover-mode)
-(before-save . eldoc-format-buffer)
-:bind
-(:map eglot-mode-map
-  ("C-c l a" . eglot-code-actions)
-  ("C-c l r" . eglot-rename)
-  ("C-c l h" . eldoc)
-  ("C-c l g" . xref-find-references)
-  ("C-c l w" . eglot-reconnect)))
-
-(use-package proced
-:custom
-(proced-auto-update-flag t)
-(proced-auto-update-interval 3)
-(proced-enable-color-flag t)
-(proced-show-remote-processes t))
-
-(use-package org
-:ensure t
-:defer t
-:commands (org-mode org-capture org-agenda)
-:init
-(defvar org-journal-file "~/nextcloud/org/journal.org")
-(defvar org-archive-file "~/nextcloud/org/archive.org")
-(defvar org-notes-file "~/nextcloud/org/notes.org")
-(defvar org-inbox-file "~/nextcloud/org/inbox.org")
-(defvar org-work-file "~/nextcloud/org/work.org")
-(defun my/org-capture-project-target-heading ()
-"Determine Org target headings from the current file's project path.
-
-This function assumes a directory structure like '~/projects/COMPANY/PROJECT/'.
-It extracts 'COMPANY' and 'PROJECT' to use as nested headlines
-for an Org capture template.
-
-If the current buffer is not visi
-ting a file within such a
-project structure, it returns nil, causing capture to default to
-the top of the file."
-(when-let* ((path (buffer-file-name))) ; Ensure we are in a file-visiting buffer
-  (let ((path-parts (split-string path "/" t " ")))
-  (when-let* ((projects-pos (cl-position "projects" path-parts :test #'string=))
-      (company  (nth (+ 1 projects-pos) path-parts))
-      (project  (nth (+ 2 projects-pos) path-parts)))
-  ;; Return a list of headlines for Org to find or create.
-  (list company project)))))
-:bind
-(("C-c c" . org-capture)
- ("C-c i" . org-store-link)
- ("C-c a" . org-agenda)
- :map org-mode-map
- ("C-c t" . org-toggle-inline-images)
- ("C-c l" . org-toggle-link-display))
-:custom
-(org-agenda-files (list org-inbox-file org-journal-file))
-(org-directory "~/nextcloud/org")
-(org-default-notes-file org-inbox-file)
-(org-archive-location (concat org-archive-file "::* From %s"))
-(org-log-done 'time)
-(org-log-into-drawer t)
-(org-hide-emphasis-markers t)
-(org-src-fontify-natively t)
-(org-src-tab-acts-natively t)
-(org-capture-templates '(("t" "Todo" entry (file org-inbox-file)
-        "* TODO %?\n:PROPERTIES:\n:CREATED: %U\n:END:\n\n%a\n\n)")
-         ("j" "Journal" entry (file+olp+datetree org-journal-file)
-        "* %?\n:PROPERTIES:\n:CREATED: %U\n:END:\n\n%a\n\n")
-         ("n" "Note" entry (file org-notes-file)
-        "* %?\n:PROPERTIES:\n:CREATED: %U\n:END:\n\n%a\n\n")
-         ("p" "Project Task" item
-        (file+function org-work-file my/org-capture-project-target-heading)
-        "* TODO %? \n  CLOCK: %U"
-        ))
-       )
-:config
-;; Enable syntax highlighting in code blocks
-(add-hook 'org-mode-hook 'turn-on-font-lock)
-(add-hook 'org-mode-hook 'org-indent-mode))
-
-;; extras
-(use-package comp-run
-:ensure nil
-:config
-(push "tramp-loaddefs.el.gz" native-comp-jit-compilation-deny-list)
-(push "cl-loaddefs.el.gz" native-comp-jit-compilation-deny-list))
-
-(use-package rustic
-:custom
-(rustic-lsp-client 'eglot))
-
-(provide 'init)
-
-;;; init.el ends here
-
-
-
-
-
-
-

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 -

-
-
{ config, pkgs, lib, user, inputs, flakeRoot,... }:
-{
-  imports = [
-    # No subfolders to import
-  ];
-  # .. put any code here
-}
-
-
-
-
-
-

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 -

-
-
{ config, pkgs, lib, user, inputs, flakeRoot,... }:
-{
-  imports = [
-    # No subfolders to import
-  ];
-  # .. put any code here
-}
-
-
-
-
-
-

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 -

-
-
{ config, pkgs, lib, user, inputs, flakeRoot,... }:
-{
-  imports = [
-    # No subfolders to import
-  ];
-  # .. put any code here
-}
-
-
-
-
-
-

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 -

-
-
{ config, pkgs, lib, user, inputs, flakeRoot,... }:
-{
-  imports = [
-    # No subfolders to import
-  ];
-  # .. put any code here
-}
-
-
-
-
-
-

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 -

-
-
{ config, pkgs, lib, user, inputs, flakeRoot,... }:
-{
-  imports = [
-    # No subfolders to import
-  ];
-  # .. put any code here
-}
-
-
-
-
-
-

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 -

-
-
{ config, pkgs, lib, user, inputs, flakeRoot,... }:
-{
-  imports = [
-    # No subfolders to import
-  ];
-  # .. put any code here
-}
-
-
-
-
-
-

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 -

-
-
{ config, pkgs, lib, user, inputs, flakeRoot,... }:
-{
-  imports = [
-    # No subfolders to import
-  ];
-  # .. put any code here
-}
-
-
-
-
-
-

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 -

-
-
{ config, pkgs, lib, user, inputs, flakeRoot,... }:
-{
-  imports = [
-    # No subfolders to import
-  ];
-  # .. put any code here
-}
-
-
-
-
-
-

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 -

-
-
{ config, pkgs, lib, user, inputs, flakeRoot,... }:
-{
-  imports = [
-    # No subfolders to import
-  ];
-  # .. put any code here
-}
-
-
-
-
-
-

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 -

-
-
{ config, pkgs, lib, user, inputs, flakeRoot,... }:
-{
-  imports = [
-    # No subfolders to import
-  ];
-  # .. put any code here
-}
-
-
-
-
-
-

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 -

-
-
{ config, pkgs, lib, user, inputs, flakeRoot,... }:
-{
-  imports = [
-    # No subfolders to import
-  ];
-  # .. put any code here
-}
-
-
-
-
-
-

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 -

-
-
{ config, pkgs, lib, user, inputs, flakeRoot,... }:
-{
-  imports = [
-    # No subfolders to import
-  ];
-  # .. put any code here
-}
-
-
-
-
-
-

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 -

-
-
{ config, pkgs, lib, user, inputs, flakeRoot,... }:
-{
-  imports = [
-    # No subfolders to import
-  ];
-  # .. put any code here
-}
-
-
-
-
-
-

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 -

-
-
{ config, pkgs, lib, user, inputs, flakeRoot,... }:
-{
-  imports = [
-    # No subfolders to import
-  ];
-  # .. put any code here
-}
-
-
-
-
-
-

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 -

-
-
{ config, pkgs, lib, user, inputs, flakeRoot,... }:
-{
-  imports = [
-    # No subfolders to import
-  ];
-  # .. put any code here
-}
-
-
-
-
-
-

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 -

-
-
{ config, pkgs, lib, user, inputs, flakeRoot,... }:
-{
-  imports = [
-    # No subfolders to import
-  ];
-  # .. put any code here
-}
-
-
-
-
-
-

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 -

-
-
{ config, pkgs, lib, user, inputs, flakeRoot,... }:
-{
-  imports = [
-    # No subfolders to import
-  ];
-  # .. put any code here
-}
-
-
-
-
-
-

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 -

-
-
{ config, pkgs, lib, user, inputs, flakeRoot,... }:
-{
-  imports = [
-    # No subfolders to import
-  ];
-  # .. put any code here
-}
-
-
-
-
-
-

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

-
-
{ config, pkgs, lib, user, inputs, flakeRoot,... }:
-{
-  imports = [
-    ./wofi.nix
-  ];
-  # .. put any code here
-}
-
-
-
-
-
-

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,
-  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";
-    };
-  };
-}
-
-
-
-
-
-
-
-

Author: Henro Veijer

-

Created: 2026-03-16 Mon 17:13

-

Validate

-
- - diff --git a/Droidnix/README.org b/Droidnix/README.org index a7a45dc7e..bf240578a 100644 --- a/Droidnix/README.org +++ b/Droidnix/README.org @@ -36,61 +36,13 @@ The Droidnix repository is organized into two main parts: * Root Level - =flake.nix= is the entry point and imports: - =generated/system/= - - =generated/hyprland/= + - =generated/modules/desktop/= - Machine-specific configurations from =assets/machines/= * Generated Structure The =generated/= directory contains all generated configurations, divided into three main groups: =system=, =hyprland=, and =mangowc=. -** System (=generated/system/=) -This directory contains system-wide configurations that are independent of the window manager. - -*** Applications (=applications/=) -- =file_management/=: Configurations for file managers and storage solutions. -- =gaming/=: Settings for gaming-related software. -- =office_productivity/=: Configurations for office software. -- =media_playback_editing/=: Settings for media playback and editing software. -- =terminal_shell/=: Configurations for terminal emulators and shells. - -*** Development (=development/=) -- =databases/=: Settings for local databases. -- =devops_ci_cd/=: Configurations for DevOps tools. -- =programming_languages/=: Settings for programming languages and their runtimes. -- =virtualization/=: Configurations for virtualization and containerization tools. -- =web_development/=: Settings for web development. - -*** System Management (=system_management/=) -- =backups/=: Settings for backup software. -- =bluetooth/=: Configurations for Bluetooth devices and services. -- =power_management/=: Settings for power management. -- =audio/=: Configurations for audio. -- =hardware_sensors/=: Settings for hardware monitoring. -- =logging_monitoring/=: Configurations for system logging and monitoring. -- =login_manager/=: Settings for the login manager. -- =monitor_setup/=: Configurations for display settings. -- =networking/=: Settings for networking. -- =printers_scanners/=: Configurations for printers and scanners. -- =disk_management/=: Settings for disk management. -- =security/=: Security-related configurations. -- =system_updates/=: Settings for system updates and package management. - -** Hyprland (=generated/hyprland/=) -This directory contains configurations specific to Hyprland. - -- =animations_effects/=: Settings for window animations and visual effects. -- =decorations/=: Configurations for window decorations. -- =keyboard_binds/=: Keyboard shortcuts for Hyprland. -- =notifications/=: Settings for notifications. -- =statusbar_tray/=: Configurations for the status bar and system tray. -- =task_launcher/=: Settings for task launchers. -- =task_window_workspace_switcher/=: Configurations for switching between windows and workspaces. -- =window_rules/=: Rules for window behavior. - -#+BEGIN_EXAMPLE -<> -#+END_EXAMPLE - ** First Setup 1. Clone this repository. 2. Run the setup script: =./setup_droid=. @@ -106,36 +58,12 @@ This directory contains configurations specific to Hyprland. :END: 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/= -This folder contains files shared across both window managers, such as wallpapers, shell configs, and system scripts. -- =conf/base.conf=: Defines the window manager choice and other global settings. -- =scripts/=: System-wide scripts (e.g., utilities, helpers). - -** =.assets/hyprland/= -Hyprland-specific assets, including configs, themes, and scripts. - -- =conf/=: Hyprland configuration files (e.g., =hyprland.conf=). -- =themes/=: Hyprland-specific theme scripts. -- =scripts/=: Hyprland-specific scripts. - -** =.assets/mangowc/= -Mangowc-specific assets, including configs, themes, and scripts. - -- =conf/=: Mangowc configuration files. -- =themes/=: Mangowc-specific theme scripts. -- =scripts/=: Mangowc-specific scripts. - -** =.assets/machines/= -Machine-specific NixOS configurations (e.g., =configuration.nix= for =maindroid= and =traveldroid=). - ---- * The Actual Code :code: :PROPERTIES: :CUSTOM_ID: the-actual-code :END: - This section contains the Org blocks for tangling Nix code into the generated folders. @@ -144,108 +72,179 @@ The Nix flake definition for Droidnix. #+BEGIN_SRC nix :tangle flake.nix :noweb tangle :mkdirp yes :eval never-html { 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"; - }; - catppuccin = { - url = "github:catppuccin/nix"; - inputs.nixpkgs.follows = "nixpkgs"; - }; + }; stylix = { url = "github:nix-community/stylix"; inputs.nixpkgs.follows = "nixpkgs"; - }; + }; emacs-overlay = { url = "github:nix-community/emacs-overlay"; inputs.nixpkgs.follows = "nixpkgs"; - }; + }; zen-browser = { url = "github:youwen5/zen-browser-flake"; inputs.nixpkgs.follows = "nixpkgs"; - }; - hyprland.url = "github:hyprwm/Hyprland"; + }; }; -outputs = - inputs@{ - self, - nixpkgs, - home-manager, - emacs-overlay, - catppuccin, - zen-browser, - hyprland, - stylix, - ... - }: - let - lib = nixpkgs.lib; - system = "x86_64-linux"; - user = import ./generated/out_of_tree/users/henrov.nix; - machines = [ - "traveldroid" - "maindroid" - ]; - flakeRoot = ./.; # Define flakeRoot here - in - { - nixosConfigurations = lib.genAttrs machines ( - machine: - lib.nixosSystem { - inherit system; - modules = [ - # Import machine-specific configurations - ./generated/out_of_tree/machines/traveldroid/top.nix - # Anchoring all the other nixes - ./generated/top.nix - # Home Manager module - inputs.home-manager.nixosModules.home-manager - { - home-manager.useGlobalPkgs = true; - home-manager.useUserPackages = true; + outputs = inputs@{self, nixpkgs,home-manager, emacs-overlay, zen-browser, hyprland, stylix, import-tree,...}; + flake-parts.lib.mkFlake { inherit inputs; } + { + # flake-parts requires you to define systems + systems = [ "x86_64-linux" ]; - home-manager.extraSpecialArgs = { inherit user inputs flakeRoot; }; - } + imports = [ + (import-tree ./generated/modules) # Auto-loads your modules + .generated/hosts/traveldroid/traveldroid.nix # Explicitly load grouped host ]; - specialArgs = { inherit user inputs flakeRoot; }; - } - ); + }; +} +#+END_SRC - homeConfigurations = lib.genAttrs (map (machine: "${user.username}@${machine}") machines) ( - userMachine: - home-manager.lib.homeManagerConfiguration { - inherit system; - configuration = import ./user.nix { inherit inputs user flakeRoot; }; - extraSpecialArgs = { inherit user inputs flakeRoot; }; - } - ); +* Let's define the core of the system - devShells.${system}.default = import ./generated/out_of_tree/terminal_shell/devshell.nix { - inherit (nixpkgs.legacyPackages.${system}) mkShell; +** =generated/modules/system/core.nix= +#+BEGIN_SRC nix :tangle generated/modules/system/core.nix :noweb tangle :mkdirp yes :eval never-html +{ lib, config, ... }: + +let + cfg = config.mySystem.system.core; +in +{ + options.mySystem.system.core.enable = + lib.mkEnableOption "Core System Settings"; + + imports = [ + ./locale.nix + ./networking.nix + ./services.nix + ./generated/modules/system/users/user.nix + ./homebase.nix + ./nix.nix + ./boot.nix + ]; + + config = lib.mkIf cfg.enable { + # alleen echt "core-specifieke" dingen hier + + nixpkgs.config.allowUnfree = true; + }; +} +#+END_SRC + +** =generated/modules/system/locale.nix= +#+BEGIN_SRC nix :tangle generated/modules/system/locale.nix :noweb tangle :mkdirp yes :eval never-html +{ lib, config, ... }: + +let + coreEnabled = config.mySystem.system.core.enable or false; +in +{ + options.mySystem.system.locale.enable = + lib.mkEnableOption "Locale settings"; + + config = lib.mkIf (coreEnabled || config.mySystem.system.locale.enable) { + + time.timeZone = "Europe/Amsterdam"; + + i18n.defaultLocale = "nl_NL.UTF-8"; + + i18n.extraLocaleSettings = { + LC_ADDRESS = "nl_NL.UTF-8"; + LC_IDENTIFICATION = "nl_NL.UTF-8"; + LC_MEASUREMENT = "nl_NL.UTF-8"; + LC_MONETARY = "nl_NL.UTF-8"; + LC_NAME = "nl_NL.UTF-8"; + LC_NUMERIC = "nl_NL.UTF-8"; + LC_PAPER = "nl_NL.UTF-8"; + LC_TELEPHONE = "nl_NL.UTF-8"; + LC_TIME = "nl_NL.UTF-8"; }; }; } #+END_SRC -* First the nix-files that flake really needs and that do not fit wel in the hierarchical structure -** =generated/out_of_tree/users/top.nix= -The ./generated/top.nix file acts as an anchor or entry point for the entire chain of imports in the pyramid structure. -#+BEGIN_SRC nix :tangle generated/out_of_tree/users/top.nix :noweb tangle :mkdirp yes :eval never-html -{ config, pkgs, lib, ... }: +** =generated/modules/system/networking.nix= +This sets the networking. +#+BEGIN_SRC nix :tangle generated/modules/system/networking.nix :noweb tangle :mkdirp yes :eval never-html +{ lib, config, pkgs,... }: + +let + coreEnabled = config.mySystem.system.core.enable or false; +in { - imports = [ - ./user.nix + options.mySystem.system.locale.enable = + lib.mkEnableOption "Network settings"; + + config = lib.mkIf (coreEnabled || config.mySystem.system.locale.enable) { + + networking = { + useDHCP = lib.mkDefault true; + networkmanager.enable = true; + networkmanager.wifi.backend = "iwd"; + wireless.iwd.enable = true; + wireless.userControlled.enable = true; + firewall = { + enable = true; + # KDE Connect: discovery + encrypted connections + allowedTCPPortRanges = [ + { + from = 1714; + to = 1764; + } + ]; + allowedUDPPortRanges = [ + { + from = 1714; + to = 1764; + } + ]; + }; + }; + + # Install NetworkManager + environment.systemPackages = with pkgs; [ + networkmanager ]; } #+END_SRC -** =generated/out_of_tree/users/user.nix= +** =generated/modules/system/services.nix= +This sets the networking. +#+BEGIN_SRC nix :tangle generated/modules/system/services.nix :noweb tangle :mkdirp yes :eval never-html +{ lib, config, ... }: + +let + coreEnabled = config.mySystem.system.core.enable or false; +in +{ + options.mySystem.system.locale.enable = + lib.mkEnableOption "Services settings (printing / audio)"; + + config = lib.mkIf (coreEnabled || config.mySystem.system.locale.enable) { + + # --- Services (Printing & Audio) --- + services.printing.enable = true; + services.pulseaudio.enable = false; + security.rtkit.enable = true; + services.pipewire = { + enable = true; + alsa.enable = true; + alsa.support32Bit = true; + pulse.enable = true; + }; + }; +} +#+END_SRC + +** =generated/modules/system/users/user.nix= This is the default user, just search and replace henrov another name if you want to change -#+BEGIN_SRC nix :tangle generated/out_of_tree/users/user.nix :noweb tangle :mkdirp yes :eval never-html +#+BEGIN_SRC nix :tangle generated/modules/system/users/user.nix :noweb tangle :mkdirp yes :eval never-html { config, pkgs, @@ -262,25 +261,17 @@ in home.stateVersion = "25.11"; home.username = user.username; home.homeDirectory = user.homeDirectory; - home.packages = with pkgs; [ - direnv - git-extras - ]; - - imports = [ - ./generated/out-of-tree/core/rotating_wallpaper.nix - ]; }; # Ensure the user is in the necessary groups users.users.${config.users.users.${user.username}.username} = { - extraGroups = [ "networkmanager" ]; + extraGroups = [ "wheel", "networkmanager" ]; } #+END_SRC -** =generated/out_of_tree/users/henrov.nix= +** =generated/modules/system/users/henrov.nix= This is the default user, just search and replace henrov another name if you want to change -#+BEGIN_SRC nix :tangle generated/out_of_tree/users/henrov.nix :noweb tangle :mkdirp yes :eval never-html +#+BEGIN_SRC nix :tangle generated/modules/system/users/henrov.nix :noweb tangle :mkdirp yes :eval never-html { username = "henrov"; hashedPassword = "$6$ISAmsPLyFi7idYXr$VmZsq.zMsyh1irSkyDNqtorNXG0oEHbbMVqTii1t8bymvrQ5ZQmbdi4OiBNeNYe/huHGrojXM.3TST2fTLz0T."; @@ -290,30 +281,109 @@ This is the default user, just search and replace henrov another name if you wan } #+END_SRC -** =generated/out_of_tree/terminal_shell/top.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. -#+BEGIN_SRC nix :tangle generated/out_of_tree/terminal_shell/top.nix :noweb tangle :mkdirp yes :eval never-html -{ - config, - pkgs, - lib, - user, - inputs, - flakeRoot, - ... -}: +** =generated/modules/system/homebase.nix= +#+BEGIN_SRC nix :tangle generated/modules/system/homebase.nix :noweb tangle :mkdirp yes :eval never-html +{ lib, config, ... }: +let + coreEnabled = config.mySystem.system.core.enable or false; +in { - imports = [ - ./devshell.nix - inputs.home-manager.nixosModules.home-manager - ]; + options.mySystem.system.locale.enable = + lib.mkEnableOption "Home-Manager settings"; + + config = lib.mkIf (coreEnabled || config.mySystem.system.locale.enable) { + + # --- Home Manager Base --- + home-manager = { + backupFileExtension = "backup"; + + users.henrov = { + home.sessionVariables = { + TERMINAL = "kitty"; + EDITOR = "emacs"; + BROWSER = "zen"; + }; + + home.stateVersion = "25.11"; + }; + }; + + }; } #+END_SRC -** =generated/out_of_tree/terminal_shell/devshell.nix= +** =generated/modules/system/nix.nix= +#+BEGIN_SRC nix :tangle generated/modules/system/nix.nix :noweb tangle :mkdirp yes :eval never-html +{ lib, config, ... }: + +let + coreEnabled = config.mySystem.system.core.enable or false; +in +{ + options.mySystem.system.locale.enable = + lib.mkEnableOption "Flake & Nix settings"; + + config = lib.mkIf (coreEnabled || config.mySystem.system.locale.enable) { + + # --- Flakes & Nix Settings --- + nix.settings = { + experimental-features = [ "nix-command" "flakes" ]; + download-buffer-size = 536870912; # 512 MB + cores = 2; + max-jobs = 1; + }; +} +#+END_SRC + +** =generated/modules/system/boot.nix= +#+BEGIN_SRC nix :tangle generated/modules/system/boot.nix :noweb tangle :mkdirp yes :eval never-html +{ lib, config, ... }: + +let + coreEnabled = config.mySystem.system.core.enable or false; +in +{ + options.mySystem.system.locale.enable = + lib.mkEnableOption "Boot settings"; + + config = lib.mkIf (coreEnabled || config.mySystem.system.locale.enable) { + + boot = { + initrd = { + verbose = false; # its a lot of logs. dont need it, unless we do. + kernelModules = [ ]; # no kernel modules on boot + }; + + extraModulePackages = [ ]; # no extra packages on boot either + kernelPackages = pkgs.linuxPackages_latest; # latest greatest linux kernel + kernelParams = [ "silent" ]; # quiet those logs + + consoleLogLevel = 0; # quiten more logs + plymouth.enable = true; # graphical boot animation instead + + supportedFilesystems = [ "ntfs" ]; # should see the ntfs (windows) + + loader = { + systemd-boot.enable = true; # systemd-boot + systemd-boot.configurationLimit = 10; + efi.canTouchEfiVariables = true; # allow editing efi to edit the boot loader + timeout = 5; # grub timeout to make a selection + }; + }; +} +#+END_SRC + + + + +* First the nix-files that flake really needs and that do not fit wel in the hierarchical structure + + + +** =generated/modules/system/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. -#+BEGIN_SRC nix :tangle generated/out_of_tree/terminal_shell/devshell.nix :noweb tangle :mkdirp yes :eval never-html +#+BEGIN_SRC nix :tangle generated/modules/system/devshell.nix :noweb tangle :mkdirp yes :eval never-html { mkShell, ... }: mkShell { buildInputs = with import {}; [ @@ -323,42 +393,11 @@ mkShell { } #+END_SRC -** =generated/out_of_tree/machines/traveldroid/top.nix= -This is the top of the machine hierarchy -#+BEGIN_SRC nix :tangle generated/out_of_tree/machines/traveldroid/top.nix :noweb tangle :mkdirp yes :eval never-html -{ - config, - pkgs, - lib, - user, - inputs, - flakeRoot, - ... -}: - -{ - imports = [ - ./../../core/nix.nix - ./../../core/stylix.nix - ./../../core/gtk.nix - ./../../core/terminal.nix - ./boot.nix - ./hardware-configuration.nix - ./machine.nix - ./dbus.nix - ./audio.nix - ./xdg.nix - ./networking.nix - inputs.home-manager.nixosModules.home-manager - ]; -} -#+END_SRC - -** =generated/out_of_tree/machines/traveldroid/hardware-configuration.nix= +** =generated/hosts/traveldroid/hardware-configuration.nix= 1. Boot into NixOS Live ISO or your installed system. 2. Open a terminal. 3. Run: sudo nixos-generate-config --root /mnt (Omit --root /mnt if already running NixOS.) -#+BEGIN_SRC nix :tangle generated/out_of_tree/machines/traveldroid/hardware-configuration.nix :noweb tangle :mkdirp yes :eval never-html +#+BEGIN_SRC nix :tangle generated/hosts/traveldroid/hardware-configuration.nix :noweb tangle :mkdirp yes :eval never-html { hostname, pkgs, @@ -408,9 +447,9 @@ This is the top of the machine hierarchy } #+END_SRC -** =generated/out_of_tree/machines/traveldroid/boot.nix= +** =generated/hosts/traveldroid/boot.nix= This file has most of the settings the control how the computer boots up. -#+BEGIN_SRC nix :tangle generated/out_of_tree/machines/traveldroid/boot.nix :noweb tangle :mkdirp yes :eval never-html +#+BEGIN_SRC nix :tangle generated/hosts/traveldroid/boot.nix :noweb tangle :mkdirp yes :eval never-html { pkgs, ... } : { boot = { @@ -438,9 +477,9 @@ This file has most of the settings the control how the computer boots up. } #+END_SRC -** =generated/out_of_tree/machines/traveldroid/machine.nix= +** =generated/hosts/traveldroid/machine.nix= This is the top if the machine hierarchy -#+BEGIN_SRC nix :tangle generated/out_of_tree/machines/traveldroid/machine.nix :noweb tangle :mkdirp yes :eval never-html +#+BEGIN_SRC nix :tangle generated/hosts/traveldroid/machine.nix :noweb tangle :mkdirp yes :eval never-html { config, pkgs, @@ -481,9 +520,9 @@ This is the top if the machine hierarchy } #+END_SRC -** =generated/out_of_tree/machines/traveldroid/dbus.nix= +** =generated/hosts/traveldroid/dbus.nix= This sets the dbus implementation -#+BEGIN_SRC nix :tangle generated/out_of_tree/machines/traveldroid/dbus.nix :noweb tangle :mkdirp yes :eval never-html +#+BEGIN_SRC nix :tangle generated/hosts/traveldroid/dbus.nix :noweb tangle :mkdirp yes :eval never-html { config, pkgs, lib, ... }: { services.dbus = lib.mkForce { @@ -499,52 +538,11 @@ This sets the dbus implementation } #+END_SRC -** =generated/out_of_tree/machines/traveldroid/networking.nix= -This sets the networking. -#+BEGIN_SRC nix :tangle generated/out_of_tree/machines/traveldroid/networking.nix :noweb tangle :mkdirp yes :eval never-html -{ - config, - pkgs, - lib, - ... -}: -{ - networking = { - useDHCP = lib.mkDefault true; - networkmanager.enable = true; - networkmanager.wifi.backend = "iwd"; - wireless.iwd.enable = true; - wireless.userControlled.enable = true; - firewall = { - enable = true; - # KDE Connect: discovery + encrypted connections - allowedTCPPortRanges = [ - { - from = 1714; - to = 1764; - } - ]; - allowedUDPPortRanges = [ - { - from = 1714; - to = 1764; - } - ]; - }; - }; - # Install NetworkManager and wofi - environment.systemPackages = with pkgs; [ - networkmanager - wofi - ]; -} -#+END_SRC - -** =generated/out_of_tree/machines/traveldroid/bluetooth.nix= +** =generated/hosts/traveldroid/bluetooth.nix= This sets the bluetooth implementation -#+BEGIN_SRC nix :tangle generated/out_of_tree/machines/traveldroid/bluetooth.nix :noweb tangle :mkdirp yes :eval never-html +#+BEGIN_SRC nix :tangle generated/hosts/traveldroid/bluetooth.nix :noweb tangle :mkdirp yes :eval never-html { config, pkgs, ... }: { # Enable Bluetooth hardware and daemon @@ -575,27 +573,9 @@ This sets the bluetooth implementation } #+END_SRC -** =generated/out_of_tree/machines/traveldroid/audio.nix= -This sets audiosystem for this machine -#+BEGIN_SRC nix :tangle generated/out_of_tree/machines/traveldroid/audio.nix :noweb tangle :mkdirp yes :eval never-html -{ config, pkgs, ... }: -{ - services.pipewire = { - enable = true; - alsa.enable = true; # ALSA compatibility - pulse.enable = true; # PulseAudio compatibility - wireplumber.enable = true; # Session manager for PipeWire - }; - - # Realtime privileges for pro audio (optional) - security.rtkit.enable = true; -} -#+END_SRC - - -** =generated/out_of_tree/machines/traveldroid/xdg.nix= +** =generated/hosts/traveldroid/xdg.nix= This sets the XDG implementation -#+BEGIN_SRC nix :tangle generated/out_of_tree/machines/traveldroid/xdg.nix :noweb tangle :mkdirp yes :eval never-html +#+BEGIN_SRC nix :tangle generated/hosts/traveldroid/xdg.nix :noweb tangle :mkdirp yes :eval never-html { config, pkgs, ... }: { xdg.portal = { @@ -605,9 +585,9 @@ This sets the XDG implementation } #+END_SRC -** =generated/out_of_tree/core/stylix.nix= +** =generated/modules/system/stylix.nix= This sets the stylix implementation -#+BEGIN_SRC nix :tangle generated/out_of_tree/core/stylix.nix :noweb tangle :mkdirp yes :eval never-html +#+BEGIN_SRC nix :tangle generated/modules/system/stylix.nix :noweb tangle :mkdirp yes :eval never-html { config, pkgs, inputs, flakeRoot, ... }: let @@ -633,9 +613,9 @@ in } #+END_SRC -** =generated/out_of_tree/core/gtk.nix= +** =generated/modules/system/gtk.nix= Sets theming for GTK -#+BEGIN_SRC nix :tangle generated/out_of_tree/core/gtk.nix :noweb tangle :mkdirp yes :eval never-html +#+BEGIN_SRC nix :tangle generated/modules/system/gtk.nix :noweb tangle :mkdirp yes :eval never-html { config, pkgs, ... }: { @@ -650,9 +630,9 @@ Sets theming for GTK } #+END_SRC -** =generated/out_of_tree/core/terminal.nix= +** =generated/modules/system/terminal.nix= Sets theming for the terminal -#+BEGIN_SRC nix :tangle generated/out_of_tree/core/terminal.nix :noweb tangle :mkdirp yes :eval never-html +#+BEGIN_SRC nix :tangle generated/modules/system/terminal.nix :noweb tangle :mkdirp yes :eval never-html { config, pkgs, ... }: { @@ -663,23 +643,23 @@ Sets theming for the terminal } #+END_SRC -** =generated/out_of_tree/core/nix.nix= +** =generated/modules/system/nix.nix= I use the [[https://catppuccin.com/][Catppuccin]] almost everywhere. The nix module integrates almost automatically everywhere (except gtk). You'll notice the color values in multiple places outside this as well. -#+BEGIN_SRC nix :tangle generated/out_of_tree/core/nix.nix :noweb tangle :mkdirp yes :eval never-html +#+BEGIN_SRC nix :tangle generated/modules/system/nix.nix :noweb tangle :mkdirp yes :eval never-html { config, pkgs, ... }: { nix.settings = { - extra-experimental-features = [ "nix-command" "flakes" ]; + extra-experimental-cores = [ "nix-command" "flakes" ]; }; } #+END_SRC -** =generated/out-of-tree/core/rotating_wallpaper.nix= +** =generated/modules/desktop/rotating_wallpaper.nix= rotating_wallpaper.nix installs wpaperd and deploys your wallpaper files from the repo (./assets/hyprland/wallpaperstuff/) into ~/Droidnix/wallpaperstuff/. You can edit assets/hyprland/wallpaperstuff/wallpaper.toml to change settings Finally, it creates a systemd user service (wpaperd.service) that automatically starts wpaperd at login and keeps it running, using your override config so wallpapers rotate according to your settings. -#+BEGIN_SRC nix :tangle generated/out-of-tree/core/rotating_wallpaper.nix :noweb tangle :mkdirp yes :eval never-html +#+BEGIN_SRC nix :tangle generated/modules/desktop/rotating_wallpaper.nix :noweb tangle :mkdirp yes :eval never-html { config, pkgs, lib, flakeRoot, ... }: let @@ -707,42 +687,9 @@ in } #+END_SRC - -* Now we reach the top of the hierarchy which will call all other imports - -** =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. -#+BEGIN_SRC nix :tangle generated/top.nix :noweb tangle :mkdirp yes :eval never-html -{ config, pkgs, lib, ... }: -{ - imports = [ - ./system/top.nix - ./hyprland/top.nix - # ./mangowc/top.nix - ]; -} -#+END_SRC - - -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/top.nix :noweb tangle :mkdirp yes :eval never-html -{ config, pkgs, lib, user, inputs, flakeRoot,... }: -{ - imports = [ - ./hyprland.nix - ./animations_effects/top.nix - ./decorations/top.nix - ./notifications/top.nix - ./statusbar_tray/top.nix - ./task_window_workspace_switcher/top.nix - ./window_rules/top.nix - ]; -} -#+END_SRC - -** =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. -#+BEGIN_SRC nix :tangle generated/hyprland/hyprland.nix :noweb tangle :mkdirp yes :eval never-html +** =generated/modules/desktop/hyprland.nix= +Setting up Hyprland +#+BEGIN_SRC nix :tangle generated/modules/desktop/hyprland.nix :noweb tangle :mkdirp yes :eval never-html { config, pkgs, @@ -788,128 +735,10 @@ in } #+END_SRC -** =generated/hyprland/animations_effects/top.nix= + +** =generated/modules/apps/zen-browser.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/animations_effects/top.nix :noweb tangle :mkdirp yes :eval never-html -{ config, pkgs, lib, user, inputs, flakeRoot,... }: -{ - imports = [ - # No subfolders to import - ]; - -} -#+END_SRC - -** =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 -#+BEGIN_SRC nix :tangle generated/hyprland/decorations/top.nix :noweb tangle :mkdirp yes :eval never-html -{ config, pkgs, lib, user, inputs, flakeRoot,... }: -{ - imports = [ - # No imports yet - ]; -} -#+END_SRC - -** =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 -#+BEGIN_SRC nix :tangle generated/hyprland/notifications/top.nix :noweb tangle :mkdirp yes :eval never-html -{ config, pkgs, lib, user, inputs, flakeRoot,... }: -{ - imports = [ - # No subfolders to import - ]; -} -#+END_SRC - -** =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 -#+BEGIN_SRC nix :tangle generated/hyprland/statusbar_tray/top.nix :noweb tangle :mkdirp yes :eval never-html -{ config, pkgs, lib, user, inputs, flakeRoot,... }: -{ - imports = [ - # No subfolders to import - ]; - -} -#+END_SRC - -** =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 -#+BEGIN_SRC nix :tangle generated/hyprland/task_window_workspace_switcher/top.nix :noweb tangle :mkdirp yes :eval never-html -{ config, pkgs, lib, user, inputs, flakeRoot,... }: -{ - imports = [ - # No subfolders to import - ]; - -} -#+END_SRC - -** =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 -#+BEGIN_SRC nix :tangle generated/hyprland/window_rules/top.nix :noweb tangle :mkdirp yes :eval never-html -{ config, pkgs, lib, user, inputs, flakeRoot,... }: -{ - imports = [ - # No subfolders to import - ]; - -} -#+END_SRC - - -** =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 -#+BEGIN_SRC nix :tangle generated/system/top.nix :noweb tangle :mkdirp yes :eval never-html -{ config, pkgs, lib, user, inputs, flakeRoot,... }: -{ - imports = [ - ./applications/top.nix - ./core/top.nix - ./development/top.nix - ./system_management/top.nix - ]; - -} -#+END_SRC - -** =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 -#+BEGIN_SRC nix :tangle generated/system/applications/top.nix :noweb tangle :mkdirp yes :eval never-html -{ config, pkgs, lib, user, inputs, flakeRoot,... }: -{ - imports = [ - ./packages.nix - ./flatpaks.nix - ./accessibility/top.nix - ./browsing/top.nix - ./file_management/top.nix - ./gaming/top.nix - ./media_playback_editing/top.nix - ./office_productivity/top.nix - ./terminal_shell/top.nix - ]; - nixpkgs.config.allowUnfree = true; -} -#+END_SRC - -** =generated/system/applications/browsing/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/system/applications/browsing/top.nix :noweb tangle :mkdirp yes :eval never-html -{ config, pkgs, lib, user, inputs, flakeRoot,... }: -{ - imports = [ - ./zen-browser.nix - # ./firefox.nix - # ./vivaldi.nix - ]; -} -#+END_SRC - -** =generated/system/applications/browsing/zen-browser.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/system/applications/browsing/zen-browser.nix :noweb tangle :mkdirp yes :eval never-html +#+BEGIN_SRC nix :tangle generated/modules/apps/zen-browser.nix :noweb tangle :mkdirp yes :eval never-html { config, lib, pkgs, flakeRoot, inputs, ... }: let zenBrowser = inputs.zen-browser.packages.${pkgs.stdenv.hostPlatform.system}.default; @@ -919,9 +748,9 @@ in } #+END_SRC -** =generated/system/applications/packages.nix= +** =generated/modules/apps/packages.nix= This will import all packages listed in ./assets/system/apps/packlages.conf -#+BEGIN_SRC nix :tangle generated/system/applications/packages.nix :noweb tangle :mkdirp yes :eval never-html +#+BEGIN_SRC nix :tangle generated/modules/apps/packages.nix :noweb tangle :mkdirp yes :eval never-html { config, lib, pkgs, flakeRoot, inputs, ... }: let packagesConfPath = "${flakeRoot}/assets/system/apps/packages.conf"; @@ -963,9 +792,9 @@ in } #+END_SRC -** =generated/system/applications/flatpaks.nix= +** =generated/modules/apps/flatpaks.nix= This will import all packages listed in ./assets/system/apps/flatpaks.conf -#+BEGIN_SRC nix :tangle generated/system/applications/flatpaks.nix :noweb tangle :mkdirp yes :eval never-html +#+BEGIN_SRC nix :tangle generated/modules/apps/flatpaks.nix :noweb tangle :mkdirp yes :eval never-html { config, pkgs, @@ -1077,28 +906,11 @@ in ]; }; } - #+END_SRC -** =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 -#+BEGIN_SRC nix :tangle generated/system/core/top.nix :noweb tangle :mkdirp yes :eval never-html -{ config, pkgs, lib, user, inputs, flakeRoot,... }: -{ - imports = [ - ./wayland.nix - #./eww.nix - ./waybar.nix - ./login-tuigreeter.nix - #./login-lightdm.nix - ./fonts.nix - ]; -} -#+END_SRC - -** =generated/system/core/gtk.nix= +** =generated/modules/system/gtk.nix= Sewtting up GTK -#+BEGIN_SRC nix :tangle generated/system/core/gtk.nix :noweb tangle :mkdirp yes :eval never-html +#+BEGIN_SRC nix :tangle generated/modules/system/gtk.nix :noweb tangle :mkdirp yes :eval never-html { pkgs, user, ... }: { home-manager.users.${user.username} = { @@ -1124,9 +936,9 @@ Sewtting up GTK } #+END_SRC -** =generated/system/core/fonts.nix= +** =generated/modules/desktop/fonts.nix= This file installs and configures fonts -#+BEGIN_SRC nix :tangle generated/system/core/fonts.nix :noweb tangle :mkdirp yes :eval never-html +#+BEGIN_SRC nix :tangle generated/modules/desktop/fonts.nix :noweb tangle :mkdirp yes :eval never-html { config, pkgs, ... }: { fonts.packages = with pkgs; [ @@ -1135,9 +947,9 @@ This file installs and configures fonts } #+END_SRC -** =generated/system/core/eww.nix= +** =generated/modules/desktop/eww.nix= This file installs and configures eww -#+BEGIN_SRC nix :tangle generated/system/core/eww.nix :noweb tangle :mkdirp yes :eval never-html +#+BEGIN_SRC nix :tangle generated/modules/desktop/eww.nix :noweb tangle :mkdirp yes :eval never-html { lib, config, pkgs, flakeRoot, user, ... }: let ewwConfigDir = "${config.home-manager.users.${user.username}.xdg.configHome}/eww"; @@ -1170,9 +982,9 @@ in } #+END_SRC -** =generated/system/core/waybar.nix= +** =generated/modules/desktop/waybar.nix= This file installs and configures waybar -#+BEGIN_SRC nix :tangle generated/system/core/waybar.nix :noweb tangle :mkdirp yes :eval never-html +#+BEGIN_SRC nix :tangle generated/modules/desktop/waybar.nix :noweb tangle :mkdirp yes :eval never-html { lib, pkgs, config, flakeRoot, ... }: let @@ -1208,9 +1020,9 @@ in } #+END_SRC -** =generated/system/core/login-tuigreeter.nix= +** =generated/modules/system/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 -#+BEGIN_SRC nix :tangle generated/system/core/login-tuigreeter.nix :noweb tangle :mkdirp yes :eval never-html +#+BEGIN_SRC nix :tangle generated/modules/system/login-tuigreeter.nix :noweb tangle :mkdirp yes :eval never-html { pkgs, user, ... } : { environment.systemPackages = with pkgs; [ @@ -1227,9 +1039,9 @@ settings = { } #+END_SRC -** =generated/system/core/wayland.nix= +** =generated/modules/desktop/wayland.nix= This file sets up wayland -#+BEGIN_SRC nix :tangle generated/system/core/wayland.nix :noweb tangle :mkdirp yes :eval never-html +#+BEGIN_SRC nix :tangle generated/modules/desktop/wayland.nix :noweb tangle :mkdirp yes :eval never-html { config, pkgs, lib, user, ... }: { home-manager.users.${user.username} = { @@ -1248,73 +1060,9 @@ This file sets up wayland } #+END_SRC -** =generated/system/development/top.nix= +** =generated/modules/apps/thunar.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/system/development/top.nix :noweb tangle :mkdirp yes :eval never-html -{ config, pkgs, lib, user, inputs, flakeRoot,... }: -{ - imports = [ - ./databases/top.nix - ./devops_ci_cd/top.nix - ./programming_languages/top.nix - ./virtualization/top.nix - ./web_development/top.nix - ]; - -} -#+END_SRC - -** =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 -#+BEGIN_SRC nix :tangle generated/system/system_management/top.nix :noweb tangle :mkdirp yes :eval never-html -{ config, pkgs, lib, user, inputs, flakeRoot,... }: -{ - imports = [ - ./audio/top.nix - ./backups/top.nix - ./bluetooth/top.nix - ./disk_management/top.nix - ./hardware_sensors/top.nix - ./logging_monitoring/top.nix - ./login_manager/top.nix - ./monitor_setup/top.nix - ./networking/top.nix - ./power_management/top.nix - ./printers_scanners/top.nix - ./security/top.nix - ./system_updates/top.nix - ]; - -} -#+END_SRC - - -** =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 -#+BEGIN_SRC nix :tangle generated/system/applications/accessibility/top.nix :noweb tangle :mkdirp yes :eval never-html -{ config, pkgs, lib, user, inputs, flakeRoot,... }: -{ - imports = [ - # No subfolders to import - ]; - -} -#+END_SRC - -** =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 -#+BEGIN_SRC nix :tangle generated/system/applications/file_management/top.nix :noweb tangle :mkdirp yes :eval never-html -{ config, pkgs, lib, user, inputs, flakeRoot,... }: -{ - imports = [ - ./thunar.nix - ]; -} -#+END_SRC - -** =generated/system/applications/file_management/thunar.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/system/applications/file_management/thunar.nix :noweb tangle :mkdirp yes :eval never-html +#+BEGIN_SRC nix :tangle generated/modules/apps/thunar.nix :noweb tangle :mkdirp yes :eval never-html { config, pkgs, @@ -1350,60 +1098,11 @@ in } #+END_SRC -** =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 -#+BEGIN_SRC nix :tangle generated/system/applications/gaming/top.nix :noweb tangle :mkdirp yes :eval never-html -{ config, pkgs, lib, user, inputs, flakeRoot,... }: -{ - imports = [ - # No subfolders to import - ]; -} -#+END_SRC -** =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 -#+BEGIN_SRC nix :tangle generated/system/applications/media_playback_editing/top.nix :noweb tangle :mkdirp yes :eval never-html -{ config, pkgs, lib, user, inputs, flakeRoot,... }: -{ - imports = [ - # No subfolders to import - ]; - -} -#+END_SRC - -** =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 -#+BEGIN_SRC nix :tangle generated/system/applications/office_productivity/top.nix :noweb tangle :mkdirp yes :eval never-html -{ config, pkgs, lib, user, inputs, flakeRoot,... }: -{ - imports = [ - # No subfolders to import - ]; - -} -#+END_SRC - -** =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 -#+BEGIN_SRC nix :tangle generated/system/applications/terminal_shell/top.nix :noweb tangle :mkdirp yes :eval never-html -{ config, pkgs, lib, user, inputs, flakeRoot,... }: -{ - imports = [ - ./kitty.nix - ./starship.nix - ./zsh.nix - ./emacs.nix - ]; - -} -#+END_SRC - -** =generated/system/applications/terminal_shell/kitty.nix= +** =generated/modules/terminals/kitty.nix= This file sets up Kitty terminal -#+BEGIN_SRC nix :tangle generated/system/applications/terminal_shell/kitty.nix :noweb tangle :mkdirp yes :eval never-html +#+BEGIN_SRC nix :tangle generated/modules/terminals/kitty.nix :noweb tangle :mkdirp yes :eval never-html { config, pkgs, lib, user, flakeRoot, ... }: let kittyConf = "${flakeRoot}/assets/system/conf/kitty/kitty.conf"; @@ -1418,9 +1117,9 @@ in } #+END_SRC -** =generated/system/applications/terminal_shell/starship.nix= +** =generated/modules/terminals/starship.nix= This file sets up starship prompt -#+BEGIN_SRC nix :tangle generated/system/applications/terminal_shell/starship.nix :noweb tangle :mkdirp yes :eval never-html +#+BEGIN_SRC nix :tangle generated/modules/terminals/starship.nix :noweb tangle :mkdirp yes :eval never-html { lib, config, @@ -1439,9 +1138,9 @@ in } #+END_SRC -** =generated/system/applications/terminal_shell/zsh.nix= +** =generated/modules/terminals/zsh.nix= This sets up the zsh terminal -#+BEGIN_SRC nix :tangle generated/system/applications/terminal_shell/zsh.nix :noweb tangle :mkdirp yes :eval never-html +#+BEGIN_SRC nix :tangle generated/modules/terminals/zsh.nix :noweb tangle :mkdirp yes :eval never-html { lib, config, @@ -1530,18 +1229,13 @@ This sets up the zsh terminal ''; }; - # Home Manager packages (optional) - home.packages = with pkgs; [ - direnv - git-extras - ]; }; } #+END_SRC -** =generated/system/applications/terminal_shell/emacs.nix= +** =generated/modules/apps/emacs/emacs.nix= This sets up the emacs terminal -#+BEGIN_SRC nix :tangle generated/system/applications/terminal_shell/emacs.nix :noweb tangle :mkdirp yes :eval never-html +#+BEGIN_SRC nix :tangle generated/modules/apps/emacs/emacs.nix :noweb tangle :mkdirp yes :eval never-html { pkgs, ... }: { @@ -1638,9 +1332,9 @@ This sets up the emacs terminal #+END_SRC -** =generated/system/applications/terminal_shell/early-init.el= +** =generated/modules/apps/emacs/early-init.el= This helps set up the emacs terminal -#+BEGIN_SRC nix :tangle generated/system/applications/terminal_shell/early-init.el :noweb tangle :mkdirp yes :eval never-html +#+BEGIN_SRC nix :tangle generated/modules/apps/emacs/early-init.el :noweb tangle :mkdirp yes :eval never-html ;;; package --- early init -*- lexical-binding: t -*- ;;; Commentary: ;;; Prevents white flash and better Emacs defaults @@ -1735,9 +1429,9 @@ package-archive-priorities '(("gnu" . 99) ;;; early-init.el ends here #+END_SRC -** =generated/system/applications/terminal_shell/init.el= +** =generated/modules/apps/emacs/init.el= This helps set up the emacs terminal -#+BEGIN_SRC nix :tangle generated/system/applications/terminal_shell/init.el :noweb tangle :mkdirp yes :eval never-html +#+BEGIN_SRC nix :tangle generated/modules/apps/emacs/init.el :noweb tangle :mkdirp yes :eval never-html ;;; package --- Summary - My minimal Emacs init file -*- lexical-binding: t -*- ;;; Commentary: @@ -2141,237 +1835,11 @@ the top of the file." #+END_SRC -** =generated/system/development/databases/top.nix= + + +** =generated/modules/apps/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/system/development/databases/top.nix :noweb tangle :mkdirp yes :eval never-html -{ config, pkgs, lib, user, inputs, flakeRoot,... }: -{ - imports = [ - # No subfolders to import - ]; - -} -#+END_SRC - -** =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 -#+BEGIN_SRC nix :tangle generated/system/development/devops_ci_cd/top.nix :noweb tangle :mkdirp yes :eval never-html -{ config, pkgs, lib, user, inputs, flakeRoot,... }: -{ - imports = [ - # No subfolders to import - ]; - -} -#+END_SRC - -** =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 -#+BEGIN_SRC nix :tangle generated/system/development/programming_languages/top.nix :noweb tangle :mkdirp yes :eval never-html -{ config, pkgs, lib, user, inputs, flakeRoot,... }: -{ - imports = [ - # No subfolders to import - ]; - -} -#+END_SRC - -** =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 -#+BEGIN_SRC nix :tangle generated/system/development/virtualization/top.nix :noweb tangle :mkdirp yes :eval never-html -{ config, pkgs, lib, user, inputs, flakeRoot,... }: -{ - imports = [ - # No subfolders to import - ]; - -} -#+END_SRC - -** =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 -#+BEGIN_SRC nix :tangle generated/system/development/web_development/top.nix :noweb tangle :mkdirp yes :eval never-html -{ config, pkgs, lib, user, inputs, flakeRoot,... }: -{ - imports = [ - # No subfolders to import - ]; - -} -#+END_SRC - -** =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 -#+BEGIN_SRC nix :tangle generated/system/system_management/audio/top.nix :noweb tangle :mkdirp yes :eval never-html -{ config, pkgs, lib, user, inputs, flakeRoot,... }: -{ - imports = [ - # No subfolders to import - ]; - -} -#+END_SRC - -** =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 -#+BEGIN_SRC nix :tangle generated/system/system_management/backups/top.nix :noweb tangle :mkdirp yes :eval never-html -{ config, pkgs, lib, user, inputs, flakeRoot,... }: -{ - imports = [ - # No subfolders to import - ]; - -} -#+END_SRC - -** =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 -#+BEGIN_SRC nix :tangle generated/system/system_management/bluetooth/top.nix :noweb tangle :mkdirp yes :eval never-html -{ config, pkgs, lib, user, inputs, flakeRoot,... }: -{ - imports = [ - # No subfolders to import - ]; - -} -#+END_SRC - -** =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 -#+BEGIN_SRC nix :tangle generated/system/system_management/disk_management/top.nix :noweb tangle :mkdirp yes :eval never-html -{ config, pkgs, lib, user, inputs, flakeRoot,... }: -{ - imports = [ - # No subfolders to import - ]; - -} -#+END_SRC - -** =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 -#+BEGIN_SRC nix :tangle generated/system/system_management/hardware_sensors/top.nix :noweb tangle :mkdirp yes :eval never-html -{ config, pkgs, lib, user, inputs, flakeRoot,... }: -{ - imports = [ - # No subfolders to import - ]; - -} -#+END_SRC - -** =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 -#+BEGIN_SRC nix :tangle generated/system/system_management/logging_monitoring/top.nix :noweb tangle :mkdirp yes :eval never-html -{ config, pkgs, lib, user, inputs, flakeRoot,... }: -{ - imports = [ - # No subfolders to import - ]; - -} -#+END_SRC - -** =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 -#+BEGIN_SRC nix :tangle generated/system/system_management/login_manager/top.nix :noweb tangle :mkdirp yes :eval never-html -{ config, pkgs, lib, user, inputs, flakeRoot,... }: -{ - imports = [ - # No subfolders to import - ]; - -} -#+END_SRC - -** =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 -#+BEGIN_SRC nix :tangle generated/system/system_management/monitor_setup/top.nix :noweb tangle :mkdirp yes :eval never-html -{ config, pkgs, lib, user, inputs, flakeRoot,... }: -{ - imports = [ - # No subfolders to import - ]; - -} -#+END_SRC - -** =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 -#+BEGIN_SRC nix :tangle generated/system/system_management/networking/top.nix :noweb tangle :mkdirp yes :eval never-html -{ config, pkgs, lib, user, inputs, flakeRoot,... }: -{ - imports = [ - # No subfolders to import - ]; - -} -#+END_SRC - -** =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 -#+BEGIN_SRC nix :tangle generated/system/system_management/power_management/top.nix :noweb tangle :mkdirp yes :eval never-html -{ config, pkgs, lib, user, inputs, flakeRoot,... }: -{ - imports = [ - # No subfolders to import - ]; - -} -#+END_SRC - -** =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 -#+BEGIN_SRC nix :tangle generated/system/system_management/printers_scanners/top.nix :noweb tangle :mkdirp yes :eval never-html -{ config, pkgs, lib, user, inputs, flakeRoot,... }: -{ - imports = [ - # No subfolders to import - ]; - -} -#+END_SRC - -** =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 -#+BEGIN_SRC nix :tangle generated/system/system_management/security/top.nix :noweb tangle :mkdirp yes :eval never-html -{ config, pkgs, lib, user, inputs, flakeRoot,... }: -{ - imports = [ - # No subfolders to import - ]; - -} -#+END_SRC - -** =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 -#+BEGIN_SRC nix :tangle generated/system/system_management/system_updates/top.nix :noweb tangle :mkdirp yes :eval never-html -{ config, pkgs, lib, user, inputs, flakeRoot,... }: -{ - imports = [ - # No subfolders to import - ]; - -} -#+END_SRC - -** =generated/system/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 -#+BEGIN_SRC nix :tangle generated/system/task_launcher/top.nix :noweb tangle :mkdirp yes :eval never-html -{ config, pkgs, lib, user, inputs, flakeRoot,... }: -{ - imports = [ - ./wofi.nix - ]; - -} -#+END_SRC - -** =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/system/task_launcher/wofi.nix :noweb tangle :mkdirp yes :eval never-html +#+BEGIN_SRC nix :tangle generated/modules/apps/wofi.nix :noweb tangle :mkdirp yes :eval never-html { lib, config, diff --git a/Droidnix/flake.nix b/Droidnix/flake.nix index 2df86239d..fd70e9fa4 100644 --- a/Droidnix/flake.nix +++ b/Droidnix/flake.nix @@ -1,87 +1,34 @@ { 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"; - }; - catppuccin = { - url = "github:catppuccin/nix"; - inputs.nixpkgs.follows = "nixpkgs"; - }; + }; stylix = { url = "github:nix-community/stylix"; inputs.nixpkgs.follows = "nixpkgs"; - }; + }; emacs-overlay = { url = "github:nix-community/emacs-overlay"; inputs.nixpkgs.follows = "nixpkgs"; - }; + }; zen-browser = { url = "github:youwen5/zen-browser-flake"; inputs.nixpkgs.follows = "nixpkgs"; - }; - hyprland.url = "github:hyprwm/Hyprland"; + }; }; -outputs = - inputs@{ - self, - nixpkgs, - home-manager, - emacs-overlay, - catppuccin, - zen-browser, - hyprland, - stylix, - ... - }: - let - lib = nixpkgs.lib; - system = "x86_64-linux"; - user = import ./generated/out_of_tree/users/henrov.nix; - machines = [ - "traveldroid" - "maindroid" - ]; - flakeRoot = ./.; # Define flakeRoot here - in - { - nixosConfigurations = lib.genAttrs machines ( - machine: - lib.nixosSystem { - inherit system; - modules = [ - # Import machine-specific configurations - ./generated/out_of_tree/machines/traveldroid/top.nix - # Anchoring all the other nixes - ./generated/top.nix - # Home Manager module - inputs.home-manager.nixosModules.home-manager - { - home-manager.useGlobalPkgs = true; - home-manager.useUserPackages = true; + outputs = inputs@{self, nixpkgs,home-manager, emacs-overlay, zen-browser, hyprland, stylix, import-tree,...}; + flake-parts.lib.mkFlake { inherit inputs; } + { + # flake-parts requires you to define systems + systems = [ "x86_64-linux" ]; - home-manager.extraSpecialArgs = { inherit user inputs flakeRoot; }; - } + imports = [ + (import-tree ./generated/modules) # Auto-loads your modules + .generated/hosts/traveldroid/traveldroid.nix # Explicitly load grouped host ]; - specialArgs = { inherit user inputs flakeRoot; }; - } - ); - - homeConfigurations = lib.genAttrs (map (machine: "${user.username}@${machine}") machines) ( - userMachine: - home-manager.lib.homeManagerConfiguration { - inherit system; - configuration = import ./user.nix { inherit inputs user flakeRoot; }; - extraSpecialArgs = { inherit user inputs flakeRoot; }; - } - ); - - devShells.${system}.default = import ./generated/out_of_tree/terminal_shell/devshell.nix { - inherit (nixpkgs.legacyPackages.${system}) mkShell; - }; - }; + }; } diff --git a/Droidnix/generated/out_of_tree/machines/traveldroid/bluetooth.nix b/Droidnix/generated/hosts/traveldroid/bluetooth.nix similarity index 100% rename from Droidnix/generated/out_of_tree/machines/traveldroid/bluetooth.nix rename to Droidnix/generated/hosts/traveldroid/bluetooth.nix diff --git a/Droidnix/generated/out_of_tree/machines/traveldroid/boot.nix b/Droidnix/generated/hosts/traveldroid/boot.nix similarity index 100% rename from Droidnix/generated/out_of_tree/machines/traveldroid/boot.nix rename to Droidnix/generated/hosts/traveldroid/boot.nix diff --git a/Droidnix/generated/out_of_tree/machines/traveldroid/dbus.nix b/Droidnix/generated/hosts/traveldroid/dbus.nix similarity index 100% rename from Droidnix/generated/out_of_tree/machines/traveldroid/dbus.nix rename to Droidnix/generated/hosts/traveldroid/dbus.nix diff --git a/Droidnix/generated/out_of_tree/machines/traveldroid/hardware-configuration.nix b/Droidnix/generated/hosts/traveldroid/hardware-configuration.nix similarity index 100% rename from Droidnix/generated/out_of_tree/machines/traveldroid/hardware-configuration.nix rename to Droidnix/generated/hosts/traveldroid/hardware-configuration.nix diff --git a/Droidnix/generated/out_of_tree/machines/traveldroid/machine.nix b/Droidnix/generated/hosts/traveldroid/machine.nix similarity index 100% rename from Droidnix/generated/out_of_tree/machines/traveldroid/machine.nix rename to Droidnix/generated/hosts/traveldroid/machine.nix diff --git a/Droidnix/generated/out_of_tree/machines/traveldroid/xdg.nix b/Droidnix/generated/hosts/traveldroid/xdg.nix similarity index 100% rename from Droidnix/generated/out_of_tree/machines/traveldroid/xdg.nix rename to Droidnix/generated/hosts/traveldroid/xdg.nix diff --git a/Droidnix/generated/hyprland/animations_effects/top.nix b/Droidnix/generated/hyprland/animations_effects/top.nix deleted file mode 100644 index e2d6f8174..000000000 --- a/Droidnix/generated/hyprland/animations_effects/top.nix +++ /dev/null @@ -1,7 +0,0 @@ -{ config, pkgs, lib, user, inputs, flakeRoot,... }: -{ - imports = [ - # No subfolders to import - ]; - -} diff --git a/Droidnix/generated/hyprland/decorations/rotating_wallpaper.nix b/Droidnix/generated/hyprland/decorations/rotating_wallpaper.nix deleted file mode 100644 index 5aa8b80b8..000000000 --- a/Droidnix/generated/hyprland/decorations/rotating_wallpaper.nix +++ /dev/null @@ -1,32 +0,0 @@ -{ - config, - pkgs, - lib, - flakeRoot, - user, - ... -}: - -let - # Pad naar de wallpaper config in de flake - wallpaperConf = "${flakeRoot}/assets/hyprland/wallpaperstuff/wallpaper.conf"; -in -{ - home.packages = [ pkgs.wpaperd ]; - - systemd.user.services.wpaperd = { - Unit = { - Description = "wpaperd wallpaper daemon"; - After = [ "default.target" ]; - }; - Service = { - Type = "simple"; - ExecStart = "${pkgs.wpaperd}/bin/wpaperd --config ${wallpaperConf}"; - Restart = "on-failure"; - RestartSec = 1; - }; - Install = { - WantedBy = [ "default.target" ]; - }; - }; -} diff --git a/Droidnix/generated/hyprland/decorations/top.nix b/Droidnix/generated/hyprland/decorations/top.nix deleted file mode 100644 index 3da113a1d..000000000 --- a/Droidnix/generated/hyprland/decorations/top.nix +++ /dev/null @@ -1,6 +0,0 @@ -{ config, pkgs, lib, user, inputs, flakeRoot,... }: -{ - imports = [ - # No imports yet - ]; -} diff --git a/Droidnix/generated/hyprland/notifications/top.nix b/Droidnix/generated/hyprland/notifications/top.nix deleted file mode 100644 index 244335420..000000000 --- a/Droidnix/generated/hyprland/notifications/top.nix +++ /dev/null @@ -1,6 +0,0 @@ -{ config, pkgs, lib, user, inputs, flakeRoot,... }: -{ - imports = [ - # No subfolders to import - ]; -} diff --git a/Droidnix/generated/hyprland/statusbar_tray/top.nix b/Droidnix/generated/hyprland/statusbar_tray/top.nix deleted file mode 100644 index e2d6f8174..000000000 --- a/Droidnix/generated/hyprland/statusbar_tray/top.nix +++ /dev/null @@ -1,7 +0,0 @@ -{ config, pkgs, lib, user, inputs, flakeRoot,... }: -{ - imports = [ - # No subfolders to import - ]; - -} diff --git a/Droidnix/generated/hyprland/task_window_workspace_switcher/top.nix b/Droidnix/generated/hyprland/task_window_workspace_switcher/top.nix deleted file mode 100644 index e2d6f8174..000000000 --- a/Droidnix/generated/hyprland/task_window_workspace_switcher/top.nix +++ /dev/null @@ -1,7 +0,0 @@ -{ config, pkgs, lib, user, inputs, flakeRoot,... }: -{ - imports = [ - # No subfolders to import - ]; - -} diff --git a/Droidnix/generated/hyprland/top.nix b/Droidnix/generated/hyprland/top.nix deleted file mode 100644 index 8a0f7b44e..000000000 --- a/Droidnix/generated/hyprland/top.nix +++ /dev/null @@ -1,12 +0,0 @@ -{ config, pkgs, lib, user, inputs, flakeRoot,... }: -{ - imports = [ - ./hyprland.nix - ./animations_effects/top.nix - ./decorations/top.nix - ./notifications/top.nix - ./statusbar_tray/top.nix - ./task_window_workspace_switcher/top.nix - ./window_rules/top.nix - ]; -} diff --git a/Droidnix/generated/hyprland/window_rules/top.nix b/Droidnix/generated/hyprland/window_rules/top.nix deleted file mode 100644 index e2d6f8174..000000000 --- a/Droidnix/generated/hyprland/window_rules/top.nix +++ /dev/null @@ -1,7 +0,0 @@ -{ config, pkgs, lib, user, inputs, flakeRoot,... }: -{ - imports = [ - # No subfolders to import - ]; - -} diff --git a/Droidnix/generated/system/applications/terminal_shell/early-init.el b/Droidnix/generated/modules/apps/emacs/early-init.el similarity index 100% rename from Droidnix/generated/system/applications/terminal_shell/early-init.el rename to Droidnix/generated/modules/apps/emacs/early-init.el diff --git a/Droidnix/generated/system/applications/terminal_shell/emacs.nix b/Droidnix/generated/modules/apps/emacs/emacs.nix similarity index 100% rename from Droidnix/generated/system/applications/terminal_shell/emacs.nix rename to Droidnix/generated/modules/apps/emacs/emacs.nix diff --git a/Droidnix/generated/system/applications/terminal_shell/init.el b/Droidnix/generated/modules/apps/emacs/init.el similarity index 100% rename from Droidnix/generated/system/applications/terminal_shell/init.el rename to Droidnix/generated/modules/apps/emacs/init.el diff --git a/Droidnix/generated/system/applications/flatpaks.nix b/Droidnix/generated/modules/apps/flatpaks.nix similarity index 100% rename from Droidnix/generated/system/applications/flatpaks.nix rename to Droidnix/generated/modules/apps/flatpaks.nix diff --git a/Droidnix/generated/system/applications/packages.nix b/Droidnix/generated/modules/apps/packages.nix similarity index 100% rename from Droidnix/generated/system/applications/packages.nix rename to Droidnix/generated/modules/apps/packages.nix diff --git a/Droidnix/generated/system/applications/file_management/thunar.nix b/Droidnix/generated/modules/apps/thunar.nix similarity index 100% rename from Droidnix/generated/system/applications/file_management/thunar.nix rename to Droidnix/generated/modules/apps/thunar.nix diff --git a/Droidnix/generated/system/task_launcher/wofi.nix b/Droidnix/generated/modules/apps/wofi.nix similarity index 100% rename from Droidnix/generated/system/task_launcher/wofi.nix rename to Droidnix/generated/modules/apps/wofi.nix diff --git a/Droidnix/generated/system/applications/browsing/zen-browser.nix b/Droidnix/generated/modules/apps/zen-browser.nix similarity index 100% rename from Droidnix/generated/system/applications/browsing/zen-browser.nix rename to Droidnix/generated/modules/apps/zen-browser.nix diff --git a/Droidnix/generated/system/core/eww.nix b/Droidnix/generated/modules/desktop/eww.nix similarity index 100% rename from Droidnix/generated/system/core/eww.nix rename to Droidnix/generated/modules/desktop/eww.nix diff --git a/Droidnix/generated/system/core/fonts.nix b/Droidnix/generated/modules/desktop/fonts.nix similarity index 100% rename from Droidnix/generated/system/core/fonts.nix rename to Droidnix/generated/modules/desktop/fonts.nix diff --git a/Droidnix/generated/hyprland/hyprland.nix b/Droidnix/generated/modules/desktop/hyprland.nix similarity index 100% rename from Droidnix/generated/hyprland/hyprland.nix rename to Droidnix/generated/modules/desktop/hyprland.nix diff --git a/Droidnix/generated/out-of-tree/core/rotating_wallpaper.nix b/Droidnix/generated/modules/desktop/rotating_wallpaper.nix similarity index 100% rename from Droidnix/generated/out-of-tree/core/rotating_wallpaper.nix rename to Droidnix/generated/modules/desktop/rotating_wallpaper.nix diff --git a/Droidnix/generated/system/core/waybar.nix b/Droidnix/generated/modules/desktop/waybar.nix similarity index 100% rename from Droidnix/generated/system/core/waybar.nix rename to Droidnix/generated/modules/desktop/waybar.nix diff --git a/Droidnix/generated/system/core/wayland.nix b/Droidnix/generated/modules/desktop/wayland.nix similarity index 100% rename from Droidnix/generated/system/core/wayland.nix rename to Droidnix/generated/modules/desktop/wayland.nix diff --git a/Droidnix/generated/modules/system/boot.nix b/Droidnix/generated/modules/system/boot.nix new file mode 100644 index 000000000..cf746f75e --- /dev/null +++ b/Droidnix/generated/modules/system/boot.nix @@ -0,0 +1,34 @@ +{ lib, config, ... }: + +let + coreEnabled = config.mySystem.system.core.enable or false; +in +{ + options.mySystem.system.locale.enable = + lib.mkEnableOption "Boot settings"; + + config = lib.mkIf (coreEnabled || config.mySystem.system.locale.enable) { + + boot = { + initrd = { + verbose = false; # its a lot of logs. dont need it, unless we do. + kernelModules = [ ]; # no kernel modules on boot + }; + + extraModulePackages = [ ]; # no extra packages on boot either + kernelPackages = pkgs.linuxPackages_latest; # latest greatest linux kernel + kernelParams = [ "silent" ]; # quiet those logs + + consoleLogLevel = 0; # quiten more logs + plymouth.enable = true; # graphical boot animation instead + + supportedFilesystems = [ "ntfs" ]; # should see the ntfs (windows) + + loader = { + systemd-boot.enable = true; # systemd-boot + systemd-boot.configurationLimit = 10; + efi.canTouchEfiVariables = true; # allow editing efi to edit the boot loader + timeout = 5; # grub timeout to make a selection + }; + }; +} diff --git a/Droidnix/generated/modules/system/core.nix b/Droidnix/generated/modules/system/core.nix new file mode 100644 index 000000000..26aed48f7 --- /dev/null +++ b/Droidnix/generated/modules/system/core.nix @@ -0,0 +1,25 @@ +{ lib, config, ... }: + +let + cfg = config.mySystem.system.core; +in +{ + options.mySystem.system.core.enable = + lib.mkEnableOption "Core System Settings"; + + imports = [ + ./locale.nix + ./networking.nix + ./services.nix + ./generated/modules/system/users/user.nix + ./homebase.nix + ./nix.nix + ./boot.nix + ]; + + config = lib.mkIf cfg.enable { + # alleen echt "core-specifieke" dingen hier + + nixpkgs.config.allowUnfree = true; + }; +} diff --git a/Droidnix/generated/out_of_tree/terminal_shell/devshell.nix b/Droidnix/generated/modules/system/devshell.nix similarity index 100% rename from Droidnix/generated/out_of_tree/terminal_shell/devshell.nix rename to Droidnix/generated/modules/system/devshell.nix diff --git a/Droidnix/generated/system/core/gtk.nix b/Droidnix/generated/modules/system/gtk.nix similarity index 64% rename from Droidnix/generated/system/core/gtk.nix rename to Droidnix/generated/modules/system/gtk.nix index 50ea31c9e..16f3a39ae 100644 --- a/Droidnix/generated/system/core/gtk.nix +++ b/Droidnix/generated/modules/system/gtk.nix @@ -1,3 +1,16 @@ +{ config, pkgs, ... }: + +{ + environment.systemPackages = with pkgs; [ + # feh # wallpaper target + gtk3 # GTK target + gtk4 # GTK target + #st # NVF / terminal target, or kitty + ]; + # Stylix GTK target + stylix.targets.gtk.enable = true; +} + { pkgs, user, ... }: { home-manager.users.${user.username} = { diff --git a/Droidnix/generated/modules/system/homebase.nix b/Droidnix/generated/modules/system/homebase.nix new file mode 100644 index 000000000..a1986d92d --- /dev/null +++ b/Droidnix/generated/modules/system/homebase.nix @@ -0,0 +1,28 @@ +{ lib, config, ... }: + +let + coreEnabled = config.mySystem.system.core.enable or false; +in +{ + options.mySystem.system.locale.enable = + lib.mkEnableOption "Home-Manager settings"; + + config = lib.mkIf (coreEnabled || config.mySystem.system.locale.enable) { + + # --- Home Manager Base --- + home-manager = { + backupFileExtension = "backup"; + + users.henrov = { + home.sessionVariables = { + TERMINAL = "kitty"; + EDITOR = "emacs"; + BROWSER = "zen"; + }; + + home.stateVersion = "25.11"; + }; + }; + + }; +} diff --git a/Droidnix/generated/modules/system/locale.nix b/Droidnix/generated/modules/system/locale.nix new file mode 100644 index 000000000..46005c991 --- /dev/null +++ b/Droidnix/generated/modules/system/locale.nix @@ -0,0 +1,28 @@ +{ lib, config, ... }: + +let + coreEnabled = config.mySystem.system.core.enable or false; +in +{ + options.mySystem.system.locale.enable = + lib.mkEnableOption "Locale settings"; + + config = lib.mkIf (coreEnabled || config.mySystem.system.locale.enable) { + + time.timeZone = "Europe/Amsterdam"; + + i18n.defaultLocale = "nl_NL.UTF-8"; + + i18n.extraLocaleSettings = { + LC_ADDRESS = "nl_NL.UTF-8"; + LC_IDENTIFICATION = "nl_NL.UTF-8"; + LC_MEASUREMENT = "nl_NL.UTF-8"; + LC_MONETARY = "nl_NL.UTF-8"; + LC_NAME = "nl_NL.UTF-8"; + LC_NUMERIC = "nl_NL.UTF-8"; + LC_PAPER = "nl_NL.UTF-8"; + LC_TELEPHONE = "nl_NL.UTF-8"; + LC_TIME = "nl_NL.UTF-8"; + }; + }; +} diff --git a/Droidnix/generated/system/core/login-tuigreeter.nix b/Droidnix/generated/modules/system/login-tuigreeter.nix similarity index 100% rename from Droidnix/generated/system/core/login-tuigreeter.nix rename to Droidnix/generated/modules/system/login-tuigreeter.nix diff --git a/Droidnix/generated/out_of_tree/machines/traveldroid/networking.nix b/Droidnix/generated/modules/system/networking.nix similarity index 67% rename from Droidnix/generated/out_of_tree/machines/traveldroid/networking.nix rename to Droidnix/generated/modules/system/networking.nix index 95d838197..8f14ed836 100644 --- a/Droidnix/generated/out_of_tree/machines/traveldroid/networking.nix +++ b/Droidnix/generated/modules/system/networking.nix @@ -1,11 +1,14 @@ -{ - config, - pkgs, - lib, - ... -}: +{ lib, config, pkgs,... }: +let + coreEnabled = config.mySystem.system.core.enable or false; +in { + options.mySystem.system.locale.enable = + lib.mkEnableOption "Network settings"; + + config = lib.mkIf (coreEnabled || config.mySystem.system.locale.enable) { + networking = { useDHCP = lib.mkDefault true; networkmanager.enable = true; @@ -30,9 +33,8 @@ }; }; - # Install NetworkManager and wofi + # Install NetworkManager environment.systemPackages = with pkgs; [ networkmanager - wofi ]; } diff --git a/Droidnix/generated/modules/system/nix.nix b/Droidnix/generated/modules/system/nix.nix new file mode 100644 index 000000000..ad4360013 --- /dev/null +++ b/Droidnix/generated/modules/system/nix.nix @@ -0,0 +1,26 @@ +{ lib, config, ... }: + +let + coreEnabled = config.mySystem.system.core.enable or false; +in +{ + options.mySystem.system.locale.enable = + lib.mkEnableOption "Flake & Nix settings"; + + config = lib.mkIf (coreEnabled || config.mySystem.system.locale.enable) { + + # --- Flakes & Nix Settings --- + nix.settings = { + experimental-features = [ "nix-command" "flakes" ]; + download-buffer-size = 536870912; # 512 MB + cores = 2; + max-jobs = 1; + }; +} + +{ config, pkgs, ... }: +{ + nix.settings = { + extra-experimental-cores = [ "nix-command" "flakes" ]; + }; +} diff --git a/Droidnix/generated/modules/system/services.nix b/Droidnix/generated/modules/system/services.nix new file mode 100644 index 000000000..79688f4fc --- /dev/null +++ b/Droidnix/generated/modules/system/services.nix @@ -0,0 +1,23 @@ +{ lib, config, ... }: + +let + coreEnabled = config.mySystem.system.core.enable or false; +in +{ + options.mySystem.system.locale.enable = + lib.mkEnableOption "Services settings (printing / audio)"; + + config = lib.mkIf (coreEnabled || config.mySystem.system.locale.enable) { + + # --- Services (Printing & Audio) --- + services.printing.enable = true; + services.pulseaudio.enable = false; + security.rtkit.enable = true; + services.pipewire = { + enable = true; + alsa.enable = true; + alsa.support32Bit = true; + pulse.enable = true; + }; + }; +} diff --git a/Droidnix/generated/out_of_tree/core/stylix.nix b/Droidnix/generated/modules/system/stylix.nix similarity index 100% rename from Droidnix/generated/out_of_tree/core/stylix.nix rename to Droidnix/generated/modules/system/stylix.nix diff --git a/Droidnix/generated/out_of_tree/core/terminal.nix b/Droidnix/generated/modules/system/terminal.nix similarity index 100% rename from Droidnix/generated/out_of_tree/core/terminal.nix rename to Droidnix/generated/modules/system/terminal.nix diff --git a/Droidnix/generated/out_of_tree/users/henrov.nix b/Droidnix/generated/modules/system/users/henrov.nix similarity index 100% rename from Droidnix/generated/out_of_tree/users/henrov.nix rename to Droidnix/generated/modules/system/users/henrov.nix diff --git a/Droidnix/generated/out_of_tree/users/user.nix b/Droidnix/generated/modules/system/users/user.nix similarity index 65% rename from Droidnix/generated/out_of_tree/users/user.nix rename to Droidnix/generated/modules/system/users/user.nix index 0d8be5f1d..549a7eeb6 100644 --- a/Droidnix/generated/out_of_tree/users/user.nix +++ b/Droidnix/generated/modules/system/users/user.nix @@ -14,17 +14,9 @@ in home.stateVersion = "25.11"; home.username = user.username; home.homeDirectory = user.homeDirectory; - home.packages = with pkgs; [ - direnv - git-extras - ]; - - imports = [ - ./generated/out-of-tree/core/rotating_wallpaper.nix - ]; }; # Ensure the user is in the necessary groups users.users.${config.users.users.${user.username}.username} = { - extraGroups = [ "networkmanager" ]; + extraGroups = [ "wheel", "networkmanager" ]; } diff --git a/Droidnix/generated/system/applications/terminal_shell/kitty.nix b/Droidnix/generated/modules/terminals/kitty.nix similarity index 100% rename from Droidnix/generated/system/applications/terminal_shell/kitty.nix rename to Droidnix/generated/modules/terminals/kitty.nix diff --git a/Droidnix/generated/system/applications/terminal_shell/starship.nix b/Droidnix/generated/modules/terminals/starship.nix similarity index 100% rename from Droidnix/generated/system/applications/terminal_shell/starship.nix rename to Droidnix/generated/modules/terminals/starship.nix diff --git a/Droidnix/generated/system/applications/terminal_shell/zsh.nix b/Droidnix/generated/modules/terminals/zsh.nix similarity index 96% rename from Droidnix/generated/system/applications/terminal_shell/zsh.nix rename to Droidnix/generated/modules/terminals/zsh.nix index 034bfb243..6c9e211ad 100644 --- a/Droidnix/generated/system/applications/terminal_shell/zsh.nix +++ b/Droidnix/generated/modules/terminals/zsh.nix @@ -86,10 +86,5 @@ ''; }; - # Home Manager packages (optional) - home.packages = with pkgs; [ - direnv - git-extras - ]; }; } diff --git a/Droidnix/generated/out_of_tree/core/gtk.nix b/Droidnix/generated/out_of_tree/core/gtk.nix deleted file mode 100644 index fb87a5203..000000000 --- a/Droidnix/generated/out_of_tree/core/gtk.nix +++ /dev/null @@ -1,12 +0,0 @@ -{ config, pkgs, ... }: - -{ - environment.systemPackages = with pkgs; [ - # feh # wallpaper target - gtk3 # GTK target - gtk4 # GTK target - #st # NVF / terminal target, or kitty - ]; - # Stylix GTK target - stylix.targets.gtk.enable = true; -} diff --git a/Droidnix/generated/out_of_tree/core/nix.nix b/Droidnix/generated/out_of_tree/core/nix.nix deleted file mode 100644 index bb28420bf..000000000 --- a/Droidnix/generated/out_of_tree/core/nix.nix +++ /dev/null @@ -1,6 +0,0 @@ -{ config, pkgs, ... }: -{ - nix.settings = { - extra-experimental-features = [ "nix-command" "flakes" ]; - }; -} diff --git a/Droidnix/generated/out_of_tree/machines/traveldroid/audio.nix b/Droidnix/generated/out_of_tree/machines/traveldroid/audio.nix deleted file mode 100644 index 6b3bcbc17..000000000 --- a/Droidnix/generated/out_of_tree/machines/traveldroid/audio.nix +++ /dev/null @@ -1,12 +0,0 @@ -{ config, pkgs, ... }: -{ - services.pipewire = { - enable = true; - alsa.enable = true; # ALSA compatibility - pulse.enable = true; # PulseAudio compatibility - wireplumber.enable = true; # Session manager for PipeWire - }; - - # Realtime privileges for pro audio (optional) - security.rtkit.enable = true; -} diff --git a/Droidnix/generated/out_of_tree/machines/traveldroid/top.nix b/Droidnix/generated/out_of_tree/machines/traveldroid/top.nix deleted file mode 100644 index 460824268..000000000 --- a/Droidnix/generated/out_of_tree/machines/traveldroid/top.nix +++ /dev/null @@ -1,26 +0,0 @@ -{ - config, - pkgs, - lib, - user, - inputs, - flakeRoot, - ... -}: - -{ - imports = [ - ./../../core/nix.nix - ./../../core/stylix.nix - ./../../core/gtk.nix - ./../../core/terminal.nix - ./boot.nix - ./hardware-configuration.nix - ./machine.nix - ./dbus.nix - ./audio.nix - ./xdg.nix - ./networking.nix - inputs.home-manager.nixosModules.home-manager - ]; -} diff --git a/Droidnix/generated/out_of_tree/terminal_shell/top.nix b/Droidnix/generated/out_of_tree/terminal_shell/top.nix deleted file mode 100644 index 745cb377b..000000000 --- a/Droidnix/generated/out_of_tree/terminal_shell/top.nix +++ /dev/null @@ -1,16 +0,0 @@ -{ - config, - pkgs, - lib, - user, - inputs, - flakeRoot, - ... -}: - -{ - imports = [ - ./devshell.nix - inputs.home-manager.nixosModules.home-manager - ]; -} diff --git a/Droidnix/generated/out_of_tree/users/top.nix b/Droidnix/generated/out_of_tree/users/top.nix deleted file mode 100644 index 1125f3e3f..000000000 --- a/Droidnix/generated/out_of_tree/users/top.nix +++ /dev/null @@ -1,6 +0,0 @@ -{ config, pkgs, lib, ... }: -{ - imports = [ - ./user.nix - ]; -} diff --git a/Droidnix/generated/system/applications/accessibility/top.nix b/Droidnix/generated/system/applications/accessibility/top.nix deleted file mode 100644 index e2d6f8174..000000000 --- a/Droidnix/generated/system/applications/accessibility/top.nix +++ /dev/null @@ -1,7 +0,0 @@ -{ config, pkgs, lib, user, inputs, flakeRoot,... }: -{ - imports = [ - # No subfolders to import - ]; - -} diff --git a/Droidnix/generated/system/applications/browsing/top.nix b/Droidnix/generated/system/applications/browsing/top.nix deleted file mode 100644 index f2041be4c..000000000 --- a/Droidnix/generated/system/applications/browsing/top.nix +++ /dev/null @@ -1,8 +0,0 @@ -{ config, pkgs, lib, user, inputs, flakeRoot,... }: -{ - imports = [ - ./zen-browser.nix - # ./firefox.nix - # ./vivaldi.nix - ]; -} diff --git a/Droidnix/generated/system/applications/file_management/top.nix b/Droidnix/generated/system/applications/file_management/top.nix deleted file mode 100644 index 25334098d..000000000 --- a/Droidnix/generated/system/applications/file_management/top.nix +++ /dev/null @@ -1,6 +0,0 @@ -{ config, pkgs, lib, user, inputs, flakeRoot,... }: -{ - imports = [ - ./thunar.nix - ]; -} diff --git a/Droidnix/generated/system/applications/gaming/top.nix b/Droidnix/generated/system/applications/gaming/top.nix deleted file mode 100644 index e2d6f8174..000000000 --- a/Droidnix/generated/system/applications/gaming/top.nix +++ /dev/null @@ -1,7 +0,0 @@ -{ config, pkgs, lib, user, inputs, flakeRoot,... }: -{ - imports = [ - # No subfolders to import - ]; - -} diff --git a/Droidnix/generated/system/applications/media_playback_editing/top.nix b/Droidnix/generated/system/applications/media_playback_editing/top.nix deleted file mode 100644 index e2d6f8174..000000000 --- a/Droidnix/generated/system/applications/media_playback_editing/top.nix +++ /dev/null @@ -1,7 +0,0 @@ -{ config, pkgs, lib, user, inputs, flakeRoot,... }: -{ - imports = [ - # No subfolders to import - ]; - -} diff --git a/Droidnix/generated/system/applications/office_productivity/top.nix b/Droidnix/generated/system/applications/office_productivity/top.nix deleted file mode 100644 index e2d6f8174..000000000 --- a/Droidnix/generated/system/applications/office_productivity/top.nix +++ /dev/null @@ -1,7 +0,0 @@ -{ config, pkgs, lib, user, inputs, flakeRoot,... }: -{ - imports = [ - # No subfolders to import - ]; - -} diff --git a/Droidnix/generated/system/applications/terminal_shell/top.nix b/Droidnix/generated/system/applications/terminal_shell/top.nix deleted file mode 100644 index 1c664a3ee..000000000 --- a/Droidnix/generated/system/applications/terminal_shell/top.nix +++ /dev/null @@ -1,10 +0,0 @@ -{ config, pkgs, lib, user, inputs, flakeRoot,... }: -{ - imports = [ - ./kitty.nix - ./starship.nix - ./zsh.nix - ./emacs.nix - ]; - -} diff --git a/Droidnix/generated/system/applications/top.nix b/Droidnix/generated/system/applications/top.nix deleted file mode 100644 index aafcdf9be..000000000 --- a/Droidnix/generated/system/applications/top.nix +++ /dev/null @@ -1,15 +0,0 @@ -{ config, pkgs, lib, user, inputs, flakeRoot,... }: -{ - imports = [ - ./packages.nix - ./flatpaks.nix - ./accessibility/top.nix - ./browsing/top.nix - ./file_management/top.nix - ./gaming/top.nix - ./media_playback_editing/top.nix - ./office_productivity/top.nix - ./terminal_shell/top.nix - ]; - nixpkgs.config.allowUnfree = true; -} diff --git a/Droidnix/generated/system/core/top.nix b/Droidnix/generated/system/core/top.nix deleted file mode 100644 index a9c1db5a8..000000000 --- a/Droidnix/generated/system/core/top.nix +++ /dev/null @@ -1,11 +0,0 @@ -{ config, pkgs, lib, user, inputs, flakeRoot,... }: -{ - imports = [ - ./wayland.nix - #./eww.nix - ./waybar.nix - ./login-tuigreeter.nix - #./login-lightdm.nix - ./fonts.nix - ]; -} diff --git a/Droidnix/generated/system/development/databases/top.nix b/Droidnix/generated/system/development/databases/top.nix deleted file mode 100644 index e2d6f8174..000000000 --- a/Droidnix/generated/system/development/databases/top.nix +++ /dev/null @@ -1,7 +0,0 @@ -{ config, pkgs, lib, user, inputs, flakeRoot,... }: -{ - imports = [ - # No subfolders to import - ]; - -} diff --git a/Droidnix/generated/system/development/devops_ci_cd/top.nix b/Droidnix/generated/system/development/devops_ci_cd/top.nix deleted file mode 100644 index e2d6f8174..000000000 --- a/Droidnix/generated/system/development/devops_ci_cd/top.nix +++ /dev/null @@ -1,7 +0,0 @@ -{ config, pkgs, lib, user, inputs, flakeRoot,... }: -{ - imports = [ - # No subfolders to import - ]; - -} diff --git a/Droidnix/generated/system/development/programming_languages/top.nix b/Droidnix/generated/system/development/programming_languages/top.nix deleted file mode 100644 index e2d6f8174..000000000 --- a/Droidnix/generated/system/development/programming_languages/top.nix +++ /dev/null @@ -1,7 +0,0 @@ -{ config, pkgs, lib, user, inputs, flakeRoot,... }: -{ - imports = [ - # No subfolders to import - ]; - -} diff --git a/Droidnix/generated/system/development/top.nix b/Droidnix/generated/system/development/top.nix deleted file mode 100644 index 3aa2a06d3..000000000 --- a/Droidnix/generated/system/development/top.nix +++ /dev/null @@ -1,11 +0,0 @@ -{ config, pkgs, lib, user, inputs, flakeRoot,... }: -{ - imports = [ - ./databases/top.nix - ./devops_ci_cd/top.nix - ./programming_languages/top.nix - ./virtualization/top.nix - ./web_development/top.nix - ]; - -} diff --git a/Droidnix/generated/system/development/virtualization/top.nix b/Droidnix/generated/system/development/virtualization/top.nix deleted file mode 100644 index e2d6f8174..000000000 --- a/Droidnix/generated/system/development/virtualization/top.nix +++ /dev/null @@ -1,7 +0,0 @@ -{ config, pkgs, lib, user, inputs, flakeRoot,... }: -{ - imports = [ - # No subfolders to import - ]; - -} diff --git a/Droidnix/generated/system/development/web_development/top.nix b/Droidnix/generated/system/development/web_development/top.nix deleted file mode 100644 index e2d6f8174..000000000 --- a/Droidnix/generated/system/development/web_development/top.nix +++ /dev/null @@ -1,7 +0,0 @@ -{ config, pkgs, lib, user, inputs, flakeRoot,... }: -{ - imports = [ - # No subfolders to import - ]; - -} diff --git a/Droidnix/generated/system/system_management/audio/top.nix b/Droidnix/generated/system/system_management/audio/top.nix deleted file mode 100644 index e2d6f8174..000000000 --- a/Droidnix/generated/system/system_management/audio/top.nix +++ /dev/null @@ -1,7 +0,0 @@ -{ config, pkgs, lib, user, inputs, flakeRoot,... }: -{ - imports = [ - # No subfolders to import - ]; - -} diff --git a/Droidnix/generated/system/system_management/backups/top.nix b/Droidnix/generated/system/system_management/backups/top.nix deleted file mode 100644 index e2d6f8174..000000000 --- a/Droidnix/generated/system/system_management/backups/top.nix +++ /dev/null @@ -1,7 +0,0 @@ -{ config, pkgs, lib, user, inputs, flakeRoot,... }: -{ - imports = [ - # No subfolders to import - ]; - -} diff --git a/Droidnix/generated/system/system_management/bluetooth/top.nix b/Droidnix/generated/system/system_management/bluetooth/top.nix deleted file mode 100644 index e2d6f8174..000000000 --- a/Droidnix/generated/system/system_management/bluetooth/top.nix +++ /dev/null @@ -1,7 +0,0 @@ -{ config, pkgs, lib, user, inputs, flakeRoot,... }: -{ - imports = [ - # No subfolders to import - ]; - -} diff --git a/Droidnix/generated/system/system_management/disk_management/top.nix b/Droidnix/generated/system/system_management/disk_management/top.nix deleted file mode 100644 index e2d6f8174..000000000 --- a/Droidnix/generated/system/system_management/disk_management/top.nix +++ /dev/null @@ -1,7 +0,0 @@ -{ config, pkgs, lib, user, inputs, flakeRoot,... }: -{ - imports = [ - # No subfolders to import - ]; - -} diff --git a/Droidnix/generated/system/system_management/hardware_sensors/top.nix b/Droidnix/generated/system/system_management/hardware_sensors/top.nix deleted file mode 100644 index e2d6f8174..000000000 --- a/Droidnix/generated/system/system_management/hardware_sensors/top.nix +++ /dev/null @@ -1,7 +0,0 @@ -{ config, pkgs, lib, user, inputs, flakeRoot,... }: -{ - imports = [ - # No subfolders to import - ]; - -} diff --git a/Droidnix/generated/system/system_management/logging_monitoring/top.nix b/Droidnix/generated/system/system_management/logging_monitoring/top.nix deleted file mode 100644 index e2d6f8174..000000000 --- a/Droidnix/generated/system/system_management/logging_monitoring/top.nix +++ /dev/null @@ -1,7 +0,0 @@ -{ config, pkgs, lib, user, inputs, flakeRoot,... }: -{ - imports = [ - # No subfolders to import - ]; - -} diff --git a/Droidnix/generated/system/system_management/login_manager/top.nix b/Droidnix/generated/system/system_management/login_manager/top.nix deleted file mode 100644 index e2d6f8174..000000000 --- a/Droidnix/generated/system/system_management/login_manager/top.nix +++ /dev/null @@ -1,7 +0,0 @@ -{ config, pkgs, lib, user, inputs, flakeRoot,... }: -{ - imports = [ - # No subfolders to import - ]; - -} diff --git a/Droidnix/generated/system/system_management/monitor_setup/top.nix b/Droidnix/generated/system/system_management/monitor_setup/top.nix deleted file mode 100644 index e2d6f8174..000000000 --- a/Droidnix/generated/system/system_management/monitor_setup/top.nix +++ /dev/null @@ -1,7 +0,0 @@ -{ config, pkgs, lib, user, inputs, flakeRoot,... }: -{ - imports = [ - # No subfolders to import - ]; - -} diff --git a/Droidnix/generated/system/system_management/networking/top.nix b/Droidnix/generated/system/system_management/networking/top.nix deleted file mode 100644 index e2d6f8174..000000000 --- a/Droidnix/generated/system/system_management/networking/top.nix +++ /dev/null @@ -1,7 +0,0 @@ -{ config, pkgs, lib, user, inputs, flakeRoot,... }: -{ - imports = [ - # No subfolders to import - ]; - -} diff --git a/Droidnix/generated/system/system_management/power_management/top.nix b/Droidnix/generated/system/system_management/power_management/top.nix deleted file mode 100644 index e2d6f8174..000000000 --- a/Droidnix/generated/system/system_management/power_management/top.nix +++ /dev/null @@ -1,7 +0,0 @@ -{ config, pkgs, lib, user, inputs, flakeRoot,... }: -{ - imports = [ - # No subfolders to import - ]; - -} diff --git a/Droidnix/generated/system/system_management/printers_scanners/top.nix b/Droidnix/generated/system/system_management/printers_scanners/top.nix deleted file mode 100644 index e2d6f8174..000000000 --- a/Droidnix/generated/system/system_management/printers_scanners/top.nix +++ /dev/null @@ -1,7 +0,0 @@ -{ config, pkgs, lib, user, inputs, flakeRoot,... }: -{ - imports = [ - # No subfolders to import - ]; - -} diff --git a/Droidnix/generated/system/system_management/security/top.nix b/Droidnix/generated/system/system_management/security/top.nix deleted file mode 100644 index e2d6f8174..000000000 --- a/Droidnix/generated/system/system_management/security/top.nix +++ /dev/null @@ -1,7 +0,0 @@ -{ config, pkgs, lib, user, inputs, flakeRoot,... }: -{ - imports = [ - # No subfolders to import - ]; - -} diff --git a/Droidnix/generated/system/system_management/system_updates/top.nix b/Droidnix/generated/system/system_management/system_updates/top.nix deleted file mode 100644 index e2d6f8174..000000000 --- a/Droidnix/generated/system/system_management/system_updates/top.nix +++ /dev/null @@ -1,7 +0,0 @@ -{ config, pkgs, lib, user, inputs, flakeRoot,... }: -{ - imports = [ - # No subfolders to import - ]; - -} diff --git a/Droidnix/generated/system/system_management/top.nix b/Droidnix/generated/system/system_management/top.nix deleted file mode 100644 index a72647de2..000000000 --- a/Droidnix/generated/system/system_management/top.nix +++ /dev/null @@ -1,19 +0,0 @@ -{ config, pkgs, lib, user, inputs, flakeRoot,... }: -{ - imports = [ - ./audio/top.nix - ./backups/top.nix - ./bluetooth/top.nix - ./disk_management/top.nix - ./hardware_sensors/top.nix - ./logging_monitoring/top.nix - ./login_manager/top.nix - ./monitor_setup/top.nix - ./networking/top.nix - ./power_management/top.nix - ./printers_scanners/top.nix - ./security/top.nix - ./system_updates/top.nix - ]; - -} diff --git a/Droidnix/generated/system/task_launcher/top.nix b/Droidnix/generated/system/task_launcher/top.nix deleted file mode 100644 index b77ad8729..000000000 --- a/Droidnix/generated/system/task_launcher/top.nix +++ /dev/null @@ -1,7 +0,0 @@ -{ config, pkgs, lib, user, inputs, flakeRoot,... }: -{ - imports = [ - ./wofi.nix - ]; - -} diff --git a/Droidnix/generated/system/top.nix b/Droidnix/generated/system/top.nix deleted file mode 100644 index bde0f1e29..000000000 --- a/Droidnix/generated/system/top.nix +++ /dev/null @@ -1,10 +0,0 @@ -{ config, pkgs, lib, user, inputs, flakeRoot,... }: -{ - imports = [ - ./applications/top.nix - ./core/top.nix - ./development/top.nix - ./system_management/top.nix - ]; - -} diff --git a/Droidnix/generated/top.nix b/Droidnix/generated/top.nix deleted file mode 100644 index e418ef7a2..000000000 --- a/Droidnix/generated/top.nix +++ /dev/null @@ -1,8 +0,0 @@ -{ config, pkgs, lib, ... }: -{ - imports = [ - ./system/top.nix - ./hyprland/top.nix - # ./mangowc/top.nix - ]; -}