From 6a70bc93e9f597fa0c2318b3bb20afd464637660 Mon Sep 17 00:00:00 2001 From: "info@data-pro.nu" Date: Sat, 7 Mar 2026 15:53:17 +0100 Subject: [PATCH] Rebuild files to add wayland as separate file in system/core --- Droidnix/README.html | 812 +++++++++++---------- Droidnix/README.org | 209 +++--- Droidnix/generated/hyprland/hyprland.nix | 23 + Droidnix/generated/hyprland/top.nix | 67 +- Droidnix/generated/system/core/top.nix | 8 + Droidnix/generated/system/core/wayland.nix | 35 + Droidnix/generated/system/top.nix | 1 + 7 files changed, 606 insertions(+), 549 deletions(-) create mode 100644 Droidnix/generated/hyprland/hyprland.nix create mode 100644 Droidnix/generated/system/core/top.nix create mode 100644 Droidnix/generated/system/core/wayland.nix diff --git a/Droidnix/README.html b/Droidnix/README.html index 81542cc3e..f112707d3 100644 --- a/Droidnix/README.html +++ b/Droidnix/README.html @@ -3,7 +3,7 @@ "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> - + Droidnix: A Dendritic NixOS + Home Manager Configuration NixOS Configuration Structure @@ -204,110 +204,113 @@

Table of Contents

-
-

Shortcuts

-
+
+

Shortcuts

+

Introduction The Assets Folder @@ -323,26 +326,26 @@

Introduction   intro

-
-

What is Droidnix

-
+
+

What is Droidnix

+

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

-
-

Installed components:

-
+
+

Installed components:

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

Goals, project Structure, import hierarchy

-
+
+

Goals, project Structure, import hierarchy

+

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

-
-

Root Level

-
+
+

Root Level

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

Generated Structure

-
+
+

Generated Structure

+

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

-
-

System (generated/system/)

-
+
+

System (generated/system/)

+

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

-
-

Applications (applications/)

-
+
+

Applications (applications/)

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

Development (development/)

-
+
+

Development (development/)

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

System Management (system_management/)

-
+
+

System Management (system_management/)

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

Hyprland (generated/hyprland/)

-
+
+

Hyprland (generated/hyprland/)

+

This directory contains configurations specific to Hyprland.

@@ -447,9 +450,9 @@ This directory contains configurations specific to Hyprland.
-
-

MangoWC (generated/mangowc/)

-
+
+

MangoWC (generated/mangowc/)

+

This directory contains configurations specific to MangoWC.

@@ -483,7 +486,7 @@ This directory contains configurations specific to MangoWC.
  • Scalability: Easy to add new machines or configurations.
  • -
    +
     .
     ├── assets
     │   ├── common
    @@ -665,9 +668,9 @@ This directory contains configurations specific to MangoWC.
     
    -
    -

    First Setup

    -
    +
    +

    First Setup

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

    -
    -

    .assets/common/

    -
    +
    +

    .assets/common/

    +

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

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

    .assets/hyprland/

    -
    +
    +

    .assets/hyprland/

    +

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

    @@ -716,9 +719,9 @@ Hyprland-specific assets, including configs, themes, and scripts.
    -
    -

    .assets/mangowc/

    -
    +
    +

    .assets/mangowc/

    +

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

    @@ -730,9 +733,9 @@ Mangowc-specific assets, including configs, themes, and scripts.
    -
    -

    .assets/machines/

    -
    +
    +

    .assets/machines/

    +

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

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

    -
    -

    flake.nix

    -
    +
    +

    flake.nix

    +

    The Nix flake definition for Droidnix.

    @@ -835,13 +838,13 @@ The Nix flake definition for Droidnix.
    -
    -

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

    -
    +
    +

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

    +
    -
    -

    assets/flake/users/henrov.nix

    -
    +
    +

    assets/flake/users/henrov.nix

    +

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

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

    assets/flake/terminal_shell/devshell.nix

    -
    +
    +

    assets/flake/terminal_shell/devshell.nix

    +

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

    @@ -875,9 +878,9 @@ mkShell {
    -
    -

    assets/flake/machines/traveldroid/top.nix

    -
    +
    +

    assets/flake/machines/traveldroid/top.nix

    +

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

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

    assets/flake/machines/traveldroid/boot.nix

    -
    +
    +

    assets/flake/machines/traveldroid/boot.nix

    +

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

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

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

    -
    +
    +

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

    +
    -
    -

    generated/top.nix

    -
    +
    +

    generated/top.nix

    +

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

    @@ -979,16 +982,17 @@ The ./generated/top.nix file acts as an anchor or entry point for the entire cha
    -
    -

    generated/hyprland/top.nix

    -
    +
    +

    generated/hyprland/top.nix

    +

    -This is top file of this level which contains the bare necessities for this subject + an import statement for all the subfolder in this folder +This is top file of this level which contains just an import statement for all relevant files and/or the subfolder in this folder

    { config, pkgs, lib, user, inputs, ... }:
     {
       imports = [
    +    ./hyprland.nix
         ./animations_effects/top.nix
         ./decorations/top.nix
         ./keyboard_binds/top.nix
    @@ -998,70 +1002,38 @@ This is top file of this level which contains the bare necessities for this subj
         ./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, inputs, ... }:
    +{
       # Nix settings to use Hyprland's cache for packages
    -  # This allows Nix to download pre-built packages from the Hyprland cache,
    -  # which can speed up the installation process and ensure compatibility.
       nix.settings = {
         substituters = [ "https://hyprland.cachix.org" ];
         trusted-public-keys = [ "hyprland.cachix.org-1:a7pgxzMz7+chwVL3/pzj6jIBMioiJM7ypFP8PwtkuGc=" ];
       };
     
    -  # Enable essential services for a Wayland session
    -  services.dbus.enable = true;  # D-Bus is required for inter-process communication
    -  services.pipewire = {
    -    enable = true;
    -    alsa.enable = true;  # Basic audio support using ALSA
    -    pulse.enable = true;  # PulseAudio support for better audio management
    -    wireplumber.enable = true;  # Audio device management and routing
    -  };
    -
    -  # XDG Desktop Portal settings for better application integration
    -  # The XDG Desktop Portal provides a way for applications to interact with the desktop environment.
    -  xdg.portal = {
    -    enable = true;
    -    config.common.default = [ "hyprland" "gtk" ];  # Use Hyprland and GTK as default portal implementations
    -  };
    -
    -  # Environment variables for a Wayland session with Hyprland
    -  # These variables help applications understand the desktop environment and session type.
    -  environment.sessionVariables = {
    -    XDG_SESSION_TYPE = "wayland";  # Use Wayland instead of X11 for the session
    -    XDG_CURRENT_DESKTOP = "Hyprland";  # Define the current desktop environment as Hyprland
    -    XCURSOR_SIZE = "24";  # Set the size of the mouse cursor to 24 pixels
    -  };
    -
       # Install Hyprland and enable it as the window manager
    -  # Here, we're only installing the Hyprland package itself for a minimal setup.
       environment.systemPackages = with pkgs; [ hyprland ];
    -
    -  # Configure Hyprland as the window manager
    -  # This section enables Hyprland as the window manager and sets basic configurations.
       programs.hyprland = {
    -    enable = true;  # Start Hyprland as the window manager
    -    xwayland.enable = true;  # Enable XWayland to run X11 applications within the Wayland session
    +    enable = true;
    +    xwayland.enable = true;
       };
     
    -  # Home-manager configuration for user-specific settings
    -  # Home-manager is used to manage user-specific configurations and packages.
    -  home-manager = {
    -    # Enable Hyprland as the Wayland window manager for the user session
    +  # Hyprland-specific Home Manager configurations
    +  home-manager.users.${user.username} = {
         wayland.windowManager.hyprland = {
    -      enable = true;  # Enable Hyprland as the window manager for the user
    -      settings = {
    -        # Minimal configuration, customize later as needed
    -        # This is where you would add custom keybinds, workspace settings, etc.
    -      };
    -    };
    -
    -    # XDG portal settings for user sessions
    -    # These settings ensure that applications can interact properly with the Hyprland session.
    -    xdg.portal = {
           enable = true;
    -      extraPortals = with pkgs; [ xdg-desktop-portal-hyprland ];  # Hyprland-specific portal implementation
    -      config.hyprland = {
    -        "org.freedesktop.impl.portal.Screencast" = [ "hyprland" ];  # Enable screencasting support
    -      };
    +      settings = { };
         };
       };
     }
    @@ -1069,11 +1041,11 @@ This is top file of this level which contains the bare necessities for this subj
     
    -
    -

    generated/mangowc/top.nix

    -
    +
    +

    generated/mangowc/top.nix

    +

    -This is top file of this level which contains the bare necessities for this subject + an import statement for all the subfolder in this folder +This is top file of this level which contains just an import statement for all relevant files and/or the subfolder in this folder

    { config, pkgs, lib, user, inputs, ... }:
    @@ -1094,17 +1066,18 @@ This is top file of this level which contains the bare necessities for this subj
     
    -
    -

    generated/system/top.nix

    -
    +
    +

    generated/system/top.nix

    +

    -This is top file of this level which contains the bare necessities for this subject + an import statement for all the subfolder in this folder +This is top file of this level which contains just an import statement for all relevant files and/or the subfolder in this folder

    { config, pkgs, lib, user, inputs, ... }:
     {
       imports = [
         ./applications/top.nix
    +    ./core/top.nix
         ./development/top.nix
         ./system_management/top.nix
       ];
    @@ -1114,11 +1087,11 @@ This is top file of this level which contains the bare necessities for this subj
     
    -
    -

    generated/system/applications/top.nix

    -
    +
    +

    generated/system/applications/top.nix

    +

    -This is top file of this level which contains the bare necessities for this subject + an import statement for all the subfolder in this folder +This is top file of this level which contains just an import statement for all relevant files and/or the subfolder in this folder

    { config, pkgs, lib, user, inputs, ... }:
    @@ -1137,11 +1110,76 @@ This is top file of this level which contains the bare necessities for this subj
     
    -
    -

    generated/system/development/top.nix

    -
    +
    +

    generated/system/core/top.nix

    +

    -This is top file of this level which contains the bare necessities for this subject + an import statement for all the subfolder in this folder +This is top file of this level which contains just an import statement for all relevant files and/or the subfolder in this folder +

    +
    +
    { config, pkgs, lib, user, inputs, ... }:
    +{
    +  imports = [
    +    ./top.nix
    +    ./wayland.nix
    +  ];
    +  # .. put any code here
    +}
    +
    +
    +
    +
    +
    +

    generated/system/core/wayland.nix

    +
    +

    +This is top file of this level which contains just an import statement for all relevant files and/or the subfolder in this folder +

    +
    +
    { config, pkgs, lib, user, ... }:
    +{
    +  # Enable essential services for a Wayland session
    +  services.dbus.enable = true;
    +  services.pipewire = {
    +    enable = true;
    +    alsa.enable = true;
    +    pulse.enable = true;
    +    wireplumber.enable = true;
    +  };
    +
    +  # XDG Desktop Portal settings for better application integration
    +  xdg.portal = {
    +    enable = true;
    +    config.common.default = [ "hyprland" "gtk" ];
    +  };
    +
    +  # Environment variables for a Wayland session
    +  environment.sessionVariables = {
    +    XDG_SESSION_TYPE = "wayland";
    +    XDG_CURRENT_DESKTOP = "Hyprland";
    +    XCURSOR_SIZE = "24";
    +  };
    +
    +  # Home Manager Wayland configurations
    +  home-manager.users.${user.username} = {
    +    xdg.portal = {
    +      enable = true;
    +      extraPortals = with pkgs; [ xdg-desktop-portal-hyprland ];
    +      config.hyprland = {
    +        "org.freedesktop.impl.portal.Screencast" = [ "hyprland" ];
    +      };
    +    };
    +  };
    +}
    +
    +
    +
    +
    +
    +

    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, ... }:
    @@ -1159,11 +1197,11 @@ This is top file of this level which contains the bare necessities for this subj
     
    -
    -

    generated/system/system_management/top.nix

    -
    +
    +

    generated/system/system_management/top.nix

    +

    -This is top file of this level which contains the bare necessities for this subject + an import statement for all the subfolder in this folder +This is top file of this level which contains just an import statement for all relevant files and/or the subfolder in this folder

    { config, pkgs, lib, user, inputs, ... }:
    @@ -1189,11 +1227,11 @@ This is top file of this level which contains the bare necessities for this subj
     
    -
    -

    generated/hyprland/animations_effects/top.nix

    -
    +
    +

    generated/hyprland/animations_effects/top.nix

    +

    -This is top file of this level which contains the bare necessities for this subject + an import statement for all the subfolder in this folder +This is top file of this level which contains just an import statement for all relevant files and/or the subfolder in this folder

    { config, pkgs, lib, user, inputs, ... }:
    @@ -1207,11 +1245,11 @@ This is top file of this level which contains the bare necessities for this subj
     
    -
    -

    generated/hyprland/decorations/top.nix

    -
    +
    +

    generated/hyprland/decorations/top.nix

    +

    -This is top file of this level which contains the bare necessities for this subject + an import statement for all the subfolder in this folder +This is top file of this level which contains just an import statement for all relevant files and/or the subfolder in this folder

    { config, pkgs, lib, user, inputs, ... }:
    @@ -1225,11 +1263,11 @@ This is top file of this level which contains the bare necessities for this subj
     
    -
    -

    generated/hyprland/keyboard_binds/top.nix

    -
    +
    +

    generated/hyprland/keyboard_binds/top.nix

    +

    -This is top file of this level which contains the bare necessities for this subject + an import statement for all the subfolder in this folder +This is top file of this level which contains just an import statement for all relevant files and/or the subfolder in this folder

    { config, pkgs, lib, user, inputs, ... }:
    @@ -1249,11 +1287,11 @@ in
     
    -
    -

    generated/hyprland/notifications/top.nix

    -
    +
    +

    generated/hyprland/notifications/top.nix

    +

    -This is top file of this level which contains the bare necessities for this subject + an import statement for all the subfolder in this folder +This is top file of this level which contains just an import statement for all relevant files and/or the subfolder in this folder

    { config, pkgs, lib, user, inputs, ... }:
    @@ -1267,11 +1305,11 @@ This is top file of this level which contains the bare necessities for this subj
     
    -
    -

    generated/hyprland/statusbar_tray/top.nix

    -
    +
    +

    generated/hyprland/statusbar_tray/top.nix

    +

    -This is top file of this level which contains the bare necessities for this subject + an import statement for all the subfolder in this folder +This is top file of this level which contains just an import statement for all relevant files and/or the subfolder in this folder

    { config, pkgs, lib, user, inputs, ... }:
    @@ -1285,11 +1323,11 @@ This is top file of this level which contains the bare necessities for this subj
     
    -
    -

    generated/hyprland/task_launcher/top.nix

    -
    +
    +

    generated/hyprland/task_launcher/top.nix

    +

    -This is top file of this level which contains the bare necessities for this subject + an import statement for all the subfolder in this folder +This is top file of this level which contains just an import statement for all relevant files and/or the subfolder in this folder

    { config, pkgs, lib, user, inputs, ... }:
    @@ -1303,11 +1341,11 @@ This is top file of this level which contains the bare necessities for this subj
     
    -
    -

    generated/hyprland/task_window_workspace_switcher/top.nix

    -
    +
    +

    generated/hyprland/task_window_workspace_switcher/top.nix

    +

    -This is top file of this level which contains the bare necessities for this subject + an import statement for all the subfolder in this folder +This is top file of this level which contains just an import statement for all relevant files and/or the subfolder in this folder

    { config, pkgs, lib, user, inputs, ... }:
    @@ -1321,11 +1359,11 @@ This is top file of this level which contains the bare necessities for this subj
     
    -
    -

    generated/hyprland/window_rules/top.nix

    -
    +
    +

    generated/hyprland/window_rules/top.nix

    +

    -This is top file of this level which contains the bare necessities for this subject + an import statement for all the subfolder in this folder +This is top file of this level which contains just an import statement for all relevant files and/or the subfolder in this folder

    { config, pkgs, lib, user, inputs, ... }:
    @@ -1339,11 +1377,11 @@ This is top file of this level which contains the bare necessities for this subj
     
    -
    -

    generated/mangowc/animations_effects/top.nix

    -
    +
    +

    generated/mangowc/animations_effects/top.nix

    +

    -This is top file of this level which contains the bare necessities for this subject + an import statement for all the subfolder in this folder +This is top file of this level which contains just an import statement for all relevant files and/or the subfolder in this folder

    { config, pkgs, lib, user, inputs, ... }:
    @@ -1357,11 +1395,11 @@ This is top file of this level which contains the bare necessities for this subj
     
    -
    -

    generated/mangowc/decorations/top.nix

    -
    +
    +

    generated/mangowc/decorations/top.nix

    +

    -This is top file of this level which contains the bare necessities for this subject + an import statement for all the subfolder in this folder +This is top file of this level which contains just an import statement for all relevant files and/or the subfolder in this folder

    { config, pkgs, lib, user, inputs, ... }:
    @@ -1375,11 +1413,11 @@ This is top file of this level which contains the bare necessities for this subj
     
    -
    -

    generated/mangowc/keyboard_binds/top.nix

    -
    +
    +

    generated/mangowc/keyboard_binds/top.nix

    +

    -This is top file of this level which contains the bare necessities for this subject + an import statement for all the subfolder in this folder +This is top file of this level which contains just an import statement for all relevant files and/or the subfolder in this folder

    { config, pkgs, lib, user, inputs, ... }:
    @@ -1393,11 +1431,11 @@ This is top file of this level which contains the bare necessities for this subj
     
    -
    -

    generated/mangowc/notifications/top.nix

    -
    +
    +

    generated/mangowc/notifications/top.nix

    +

    -This is top file of this level which contains the bare necessities for this subject + an import statement for all the subfolder in this folder +This is top file of this level which contains just an import statement for all relevant files and/or the subfolder in this folder

    { config, pkgs, lib, user, inputs, ... }:
    @@ -1411,11 +1449,11 @@ This is top file of this level which contains the bare necessities for this subj
     
    -
    -

    generated/mangowc/statusbar_tray/top.nix

    -
    +
    +

    generated/mangowc/statusbar_tray/top.nix

    +

    -This is top file of this level which contains the bare necessities for this subject + an import statement for all the subfolder in this folder +This is top file of this level which contains just an import statement for all relevant files and/or the subfolder in this folder

    { config, pkgs, lib, user, inputs, ... }:
    @@ -1429,11 +1467,11 @@ This is top file of this level which contains the bare necessities for this subj
     
    -
    -

    generated/mangowc/task_launcher/top.nix

    -
    +
    +

    generated/mangowc/task_launcher/top.nix

    +

    -This is top file of this level which contains the bare necessities for this subject + an import statement for all the subfolder in this folder +This is top file of this level which contains just an import statement for all relevant files and/or the subfolder in this folder

    { config, pkgs, lib, user, inputs, ... }:
    @@ -1447,11 +1485,11 @@ This is top file of this level which contains the bare necessities for this subj
     
    -
    -

    generated/mangowc/task_window_workspace_switcher/top.nix

    -
    +
    +

    generated/mangowc/task_window_workspace_switcher/top.nix

    +

    -This is top file of this level which contains the bare necessities for this subject + an import statement for all the subfolder in this folder +This is top file of this level which contains just an import statement for all relevant files and/or the subfolder in this folder

    { config, pkgs, lib, user, inputs, ... }:
    @@ -1465,11 +1503,11 @@ This is top file of this level which contains the bare necessities for this subj
     
    -
    -

    generated/mangowc/window_rules/top.nix

    -
    +
    +

    generated/mangowc/window_rules/top.nix

    +

    -This is top file of this level which contains the bare necessities for this subject + an import statement for all the subfolder in this folder +This is top file of this level which contains just an import statement for all relevant files and/or the subfolder in this folder

    { config, pkgs, lib, user, inputs, ... }:
    @@ -1483,11 +1521,11 @@ This is top file of this level which contains the bare necessities for this subj
     
    -
    -

    generated/system/applications/accessibility/top.nix

    -
    +
    +

    generated/system/applications/accessibility/top.nix

    +

    -This is top file of this level which contains the bare necessities for this subject + an import statement for all the subfolder in this folder +This is top file of this level which contains just an import statement for all relevant files and/or the subfolder in this folder

    { config, pkgs, lib, user, inputs, ... }:
    @@ -1501,11 +1539,11 @@ This is top file of this level which contains the bare necessities for this subj
     
    -
    -

    generated/system/applications/file_management/top.nix

    -
    +
    +

    generated/system/applications/file_management/top.nix

    +

    -This is top file of this level which contains the bare necessities for this subject + an import statement for all the subfolder in this folder +This is top file of this level which contains just an import statement for all relevant files and/or the subfolder in this folder

    { config, pkgs, lib, user, inputs, ... }:
    @@ -1519,11 +1557,11 @@ This is top file of this level which contains the bare necessities for this subj
     
    -
    -

    generated/system/applications/gaming/top.nix

    -
    +
    +

    generated/system/applications/gaming/top.nix

    +

    -This is top file of this level which contains the bare necessities for this subject + an import statement for all the subfolder in this folder +This is top file of this level which contains just an import statement for all relevant files and/or the subfolder in this folder

    { config, pkgs, lib, user, inputs, ... }:
    @@ -1537,11 +1575,11 @@ This is top file of this level which contains the bare necessities for this subj
     
    -
    -

    generated/system/applications/media_playback_editing/top.nix

    -
    +
    +

    generated/system/applications/media_playback_editing/top.nix

    +

    -This is top file of this level which contains the bare necessities for this subject + an import statement for all the subfolder in this folder +This is top file of this level which contains just an import statement for all relevant files and/or the subfolder in this folder

    { config, pkgs, lib, user, inputs, ... }:
    @@ -1555,11 +1593,11 @@ This is top file of this level which contains the bare necessities for this subj
     
    -
    -

    generated/system/applications/office_productivity/top.nix

    -
    +
    +

    generated/system/applications/office_productivity/top.nix

    +

    -This is top file of this level which contains the bare necessities for this subject + an import statement for all the subfolder in this folder +This is top file of this level which contains just an import statement for all relevant files and/or the subfolder in this folder

    { config, pkgs, lib, user, inputs, ... }:
    @@ -1573,11 +1611,11 @@ This is top file of this level which contains the bare necessities for this subj
     
    -
    -

    generated/system/applications/terminal_shell/top.nix

    -
    +
    +

    generated/system/applications/terminal_shell/top.nix

    +

    -This is top file of this level which contains the bare necessities for this subject + an import statement for all the subfolder in this folder +This is top file of this level which contains just an import statement for all relevant files and/or the subfolder in this folder

    { config, pkgs, lib, user, inputs, ... }:
    @@ -1591,11 +1629,11 @@ This is top file of this level which contains the bare necessities for this subj
     
    -
    -

    generated/system/development/databases/top.nix

    -
    +
    +

    generated/system/development/databases/top.nix

    +

    -This is top file of this level which contains the bare necessities for this subject + an import statement for all the subfolder in this folder +This is top file of this level which contains just an import statement for all relevant files and/or the subfolder in this folder

    { config, pkgs, lib, user, inputs, ... }:
    @@ -1609,11 +1647,11 @@ This is top file of this level which contains the bare necessities for this subj
     
    -
    -

    generated/system/development/devops_ci_cd/top.nix

    -
    +
    +

    generated/system/development/devops_ci_cd/top.nix

    +

    -This is top file of this level which contains the bare necessities for this subject + an import statement for all the subfolder in this folder +This is top file of this level which contains just an import statement for all relevant files and/or the subfolder in this folder

    { config, pkgs, lib, user, inputs, ... }:
    @@ -1627,11 +1665,11 @@ This is top file of this level which contains the bare necessities for this subj
     
    -
    -

    generated/system/development/programming_languages/top.nix

    -
    +
    +

    generated/system/development/programming_languages/top.nix

    +

    -This is top file of this level which contains the bare necessities for this subject + an import statement for all the subfolder in this folder +This is top file of this level which contains just an import statement for all relevant files and/or the subfolder in this folder

    { config, pkgs, lib, user, inputs, ... }:
    @@ -1645,11 +1683,11 @@ This is top file of this level which contains the bare necessities for this subj
     
    -
    -

    generated/system/development/virtualization/top.nix

    -
    +
    +

    generated/system/development/virtualization/top.nix

    +

    -This is top file of this level which contains the bare necessities for this subject + an import statement for all the subfolder in this folder +This is top file of this level which contains just an import statement for all relevant files and/or the subfolder in this folder

    { config, pkgs, lib, user, inputs, ... }:
    @@ -1663,11 +1701,11 @@ This is top file of this level which contains the bare necessities for this subj
     
    -
    -

    generated/system/development/web_development/top.nix

    -
    +
    +

    generated/system/development/web_development/top.nix

    +

    -This is top file of this level which contains the bare necessities for this subject + an import statement for all the subfolder in this folder +This is top file of this level which contains just an import statement for all relevant files and/or the subfolder in this folder

    { config, pkgs, lib, user, inputs, ... }:
    @@ -1681,11 +1719,11 @@ This is top file of this level which contains the bare necessities for this subj
     
    -
    -

    generated/system/system_management/audio/top.nix

    -
    +
    +

    generated/system/system_management/audio/top.nix

    +

    -This is top file of this level which contains the bare necessities for this subject + an import statement for all the subfolder in this folder +This is top file of this level which contains just an import statement for all relevant files and/or the subfolder in this folder

    { config, pkgs, lib, user, inputs, ... }:
    @@ -1699,11 +1737,11 @@ This is top file of this level which contains the bare necessities for this subj
     
    -
    -

    generated/system/system_management/backups/top.nix

    -
    +
    +

    generated/system/system_management/backups/top.nix

    +

    -This is top file of this level which contains the bare necessities for this subject + an import statement for all the subfolder in this folder +This is top file of this level which contains just an import statement for all relevant files and/or the subfolder in this folder

    { config, pkgs, lib, user, inputs, ... }:
    @@ -1717,11 +1755,11 @@ This is top file of this level which contains the bare necessities for this subj
     
    -
    -

    generated/system/system_management/bluetooth/top.nix

    -
    +
    +

    generated/system/system_management/bluetooth/top.nix

    +

    -This is top file of this level which contains the bare necessities for this subject + an import statement for all the subfolder in this folder +This is top file of this level which contains just an import statement for all relevant files and/or the subfolder in this folder

    { config, pkgs, lib, user, inputs, ... }:
    @@ -1735,11 +1773,11 @@ This is top file of this level which contains the bare necessities for this subj
     
    -
    -

    generated/system/system_management/disk_management/top.nix

    -
    +
    +

    generated/system/system_management/disk_management/top.nix

    +

    -This is top file of this level which contains the bare necessities for this subject + an import statement for all the subfolder in this folder +This is top file of this level which contains just an import statement for all relevant files and/or the subfolder in this folder

    { config, pkgs, lib, user, inputs, ... }:
    @@ -1753,11 +1791,11 @@ This is top file of this level which contains the bare necessities for this subj
     
    -
    -

    generated/system/system_management/hardware_sensors/top.nix

    -
    +
    +

    generated/system/system_management/hardware_sensors/top.nix

    +

    -This is top file of this level which contains the bare necessities for this subject + an import statement for all the subfolder in this folder +This is top file of this level which contains just an import statement for all relevant files and/or the subfolder in this folder

    { config, pkgs, lib, user, inputs, ... }:
    @@ -1771,11 +1809,11 @@ This is top file of this level which contains the bare necessities for this subj
     
    -
    -

    generated/system/system_management/logging_monitoring/top.nix

    -
    +
    +

    generated/system/system_management/logging_monitoring/top.nix

    +

    -This is top file of this level which contains the bare necessities for this subject + an import statement for all the subfolder in this folder +This is top file of this level which contains just an import statement for all relevant files and/or the subfolder in this folder

    { config, pkgs, lib, user, inputs, ... }:
    @@ -1789,11 +1827,11 @@ This is top file of this level which contains the bare necessities for this subj
     
    -
    -

    generated/system/system_management/login_manager/top.nix

    -
    +
    +

    generated/system/system_management/login_manager/top.nix

    +

    -This is top file of this level which contains the bare necessities for this subject + an import statement for all the subfolder in this folder +This is top file of this level which contains just an import statement for all relevant files and/or the subfolder in this folder

    { config, pkgs, lib, user, inputs, ... }:
    @@ -1807,11 +1845,11 @@ This is top file of this level which contains the bare necessities for this subj
     
    -
    -

    generated/system/system_management/monitor_setup/top.nix

    -
    +
    +

    generated/system/system_management/monitor_setup/top.nix

    +

    -This is top file of this level which contains the bare necessities for this subject + an import statement for all the subfolder in this folder +This is top file of this level which contains just an import statement for all relevant files and/or the subfolder in this folder

    { config, pkgs, lib, user, inputs, ... }:
    @@ -1825,11 +1863,11 @@ This is top file of this level which contains the bare necessities for this subj
     
    -
    -

    generated/system/system_management/networking/top.nix

    -
    +
    +

    generated/system/system_management/networking/top.nix

    +

    -This is top file of this level which contains the bare necessities for this subject + an import statement for all the subfolder in this folder +This is top file of this level which contains just an import statement for all relevant files and/or the subfolder in this folder

    { config, pkgs, lib, user, inputs, ... }:
    @@ -1843,11 +1881,11 @@ This is top file of this level which contains the bare necessities for this subj
     
    -
    -

    generated/system/system_management/power_management/top.nix

    -
    +
    +

    generated/system/system_management/power_management/top.nix

    +

    -This is top file of this level which contains the bare necessities for this subject + an import statement for all the subfolder in this folder +This is top file of this level which contains just an import statement for all relevant files and/or the subfolder in this folder

    { config, pkgs, lib, user, inputs, ... }:
    @@ -1861,11 +1899,11 @@ This is top file of this level which contains the bare necessities for this subj
     
    -
    -

    generated/system/system_management/printers_scanners/top.nix

    -
    +
    +

    generated/system/system_management/printers_scanners/top.nix

    +

    -This is top file of this level which contains the bare necessities for this subject + an import statement for all the subfolder in this folder +This is top file of this level which contains just an import statement for all relevant files and/or the subfolder in this folder

    { config, pkgs, lib, user, inputs, ... }:
    @@ -1879,11 +1917,11 @@ This is top file of this level which contains the bare necessities for this subj
     
    -
    -

    generated/system/system_management/security/top.nix

    -
    +
    +

    generated/system/system_management/security/top.nix

    +

    -This is top file of this level which contains the bare necessities for this subject + an import statement for all the subfolder in this folder +This is top file of this level which contains just an import statement for all relevant files and/or the subfolder in this folder

    { config, pkgs, lib, user, inputs, ... }:
    @@ -1897,11 +1935,11 @@ This is top file of this level which contains the bare necessities for this subj
     
    -
    -

    generated/system/system_management/system_updates/top.nix

    -
    +
    +

    generated/system/system_management/system_updates/top.nix

    +

    -This is top file of this level which contains the bare necessities for this subject + an import statement for all the subfolder in this folder +This is top file of this level which contains just an import statement for all relevant files and/or the subfolder in this folder

    { config, pkgs, lib, user, inputs, ... }:
    @@ -1919,7 +1957,7 @@ This is top file of this level which contains the bare necessities for this subj
     

    Author: Henro Veijer

    -

    Created: 2026-03-07 za 15:29

    +

    Created: 2026-03-07 za 15:52

    Validate

    diff --git a/Droidnix/README.org b/Droidnix/README.org index 0a1ee0307..71ed8cbdd 100644 --- a/Droidnix/README.org +++ b/Droidnix/README.org @@ -525,11 +525,12 @@ The ./generated/top.nix file acts as an anchor or entry point for the entire cha #+END_SRC ** =generated/hyprland/top.nix= -This is top file of this level which contains the bare necessities for this subject + an import statement for all the subfolder in this folder +This is top file of this level which contains just an import statement for all relevant files and/or the subfolder in this folder #+BEGIN_SRC nix :tangle generated/hyprland/top.nix :noweb tangle :mkdirp yes :eval never-html { config, pkgs, lib, user, inputs, ... }: { imports = [ + ./hyprland.nix ./animations_effects/top.nix ./decorations/top.nix ./keyboard_binds/top.nix @@ -539,77 +540,39 @@ This is top file of this level which contains the bare necessities for this subj ./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 +{ config, pkgs, lib, user, inputs, ... }: +{ # Nix settings to use Hyprland's cache for packages - # This allows Nix to download pre-built packages from the Hyprland cache, - # which can speed up the installation process and ensure compatibility. nix.settings = { substituters = [ "https://hyprland.cachix.org" ]; trusted-public-keys = [ "hyprland.cachix.org-1:a7pgxzMz7+chwVL3/pzj6jIBMioiJM7ypFP8PwtkuGc=" ]; }; - # Enable essential services for a Wayland session - services.dbus.enable = true; # D-Bus is required for inter-process communication - services.pipewire = { - enable = true; - alsa.enable = true; # Basic audio support using ALSA - pulse.enable = true; # PulseAudio support for better audio management - wireplumber.enable = true; # Audio device management and routing - }; - - # XDG Desktop Portal settings for better application integration - # The XDG Desktop Portal provides a way for applications to interact with the desktop environment. - xdg.portal = { - enable = true; - config.common.default = [ "hyprland" "gtk" ]; # Use Hyprland and GTK as default portal implementations - }; - - # Environment variables for a Wayland session with Hyprland - # These variables help applications understand the desktop environment and session type. - environment.sessionVariables = { - XDG_SESSION_TYPE = "wayland"; # Use Wayland instead of X11 for the session - XDG_CURRENT_DESKTOP = "Hyprland"; # Define the current desktop environment as Hyprland - XCURSOR_SIZE = "24"; # Set the size of the mouse cursor to 24 pixels - }; - # Install Hyprland and enable it as the window manager - # Here, we're only installing the Hyprland package itself for a minimal setup. environment.systemPackages = with pkgs; [ hyprland ]; - - # Configure Hyprland as the window manager - # This section enables Hyprland as the window manager and sets basic configurations. programs.hyprland = { - enable = true; # Start Hyprland as the window manager - xwayland.enable = true; # Enable XWayland to run X11 applications within the Wayland session + enable = true; + xwayland.enable = true; }; - # Home-manager configuration for user-specific settings - # Home-manager is used to manage user-specific configurations and packages. - home-manager = { - # Enable Hyprland as the Wayland window manager for the user session + # Hyprland-specific Home Manager configurations + home-manager.users.${user.username} = { wayland.windowManager.hyprland = { - enable = true; # Enable Hyprland as the window manager for the user - settings = { - # Minimal configuration, customize later as needed - # This is where you would add custom keybinds, workspace settings, etc. - }; - }; - - # XDG portal settings for user sessions - # These settings ensure that applications can interact properly with the Hyprland session. - xdg.portal = { enable = true; - extraPortals = with pkgs; [ xdg-desktop-portal-hyprland ]; # Hyprland-specific portal implementation - config.hyprland = { - "org.freedesktop.impl.portal.Screencast" = [ "hyprland" ]; # Enable screencasting support - }; + settings = { }; }; }; } #+END_SRC ** =generated/mangowc/top.nix= -This is top file of this level which contains the bare necessities for this subject + an import statement for all the subfolder in this folder +This is top file of this level which contains just an import statement for all relevant files and/or the subfolder in this folder #+BEGIN_SRC nix :tangle generated/mangowc/top.nix :noweb tangle :mkdirp yes :eval never-html { config, pkgs, lib, user, inputs, ... }: { @@ -628,12 +591,13 @@ This is top file of this level which contains the bare necessities for this subj #+END_SRC ** =generated/system/top.nix= -This is top file of this level which contains the bare necessities for this subject + an import statement for all the subfolder in this folder +This is top file of this level which contains just an import statement for all relevant files and/or the subfolder in this folder #+BEGIN_SRC nix :tangle generated/system/top.nix :noweb tangle :mkdirp yes :eval never-html { config, pkgs, lib, user, inputs, ... }: { imports = [ ./applications/top.nix + ./core/top.nix ./development/top.nix ./system_management/top.nix ]; @@ -642,7 +606,7 @@ This is top file of this level which contains the bare necessities for this subj #+END_SRC ** =generated/system/applications/top.nix= -This is top file of this level which contains the bare necessities for this subject + an import statement for all the subfolder in this folder +This is top file of this level which contains just an import statement for all relevant files and/or the subfolder in this folder #+BEGIN_SRC nix :tangle generated/system/applications/top.nix :noweb tangle :mkdirp yes :eval never-html { config, pkgs, lib, user, inputs, ... }: { @@ -658,8 +622,61 @@ This is top file of this level which contains the bare necessities for this subj } #+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, ... }: +{ + imports = [ + ./top.nix + ./wayland.nix + ]; + # .. put any code here +} +#+END_SRC + +** =generated/system/core/wayland.nix= +This is top file of this level which contains just an import statement for all relevant files and/or the subfolder in this folder +#+BEGIN_SRC nix :tangle generated/system/core/wayland.nix :noweb tangle :mkdirp yes :eval never-html +{ config, pkgs, lib, user, ... }: +{ + # Enable essential services for a Wayland session + services.dbus.enable = true; + services.pipewire = { + enable = true; + alsa.enable = true; + pulse.enable = true; + wireplumber.enable = true; + }; + + # XDG Desktop Portal settings for better application integration + xdg.portal = { + enable = true; + config.common.default = [ "hyprland" "gtk" ]; + }; + + # Environment variables for a Wayland session + environment.sessionVariables = { + XDG_SESSION_TYPE = "wayland"; + XDG_CURRENT_DESKTOP = "Hyprland"; + XCURSOR_SIZE = "24"; + }; + + # Home Manager Wayland configurations + home-manager.users.${user.username} = { + xdg.portal = { + enable = true; + extraPortals = with pkgs; [ xdg-desktop-portal-hyprland ]; + config.hyprland = { + "org.freedesktop.impl.portal.Screencast" = [ "hyprland" ]; + }; + }; + }; +} +#+END_SRC + ** =generated/system/development/top.nix= -This is top file of this level which contains the bare necessities for this subject + an import statement for all the subfolder in this folder +This is top file of this level which contains just an import statement for all relevant files and/or the subfolder in this folder #+BEGIN_SRC nix :tangle generated/system/development/top.nix :noweb tangle :mkdirp yes :eval never-html { config, pkgs, lib, user, inputs, ... }: { @@ -675,7 +692,7 @@ This is top file of this level which contains the bare necessities for this subj #+END_SRC ** =generated/system/system_management/top.nix= -This is top file of this level which contains the bare necessities for this subject + an import statement for all the subfolder in this folder +This is top file of this level which contains just an import statement for all relevant files and/or the subfolder in this folder #+BEGIN_SRC nix :tangle generated/system/system_management/top.nix :noweb tangle :mkdirp yes :eval never-html { config, pkgs, lib, user, inputs, ... }: { @@ -699,7 +716,7 @@ This is top file of this level which contains the bare necessities for this subj #+END_SRC ** =generated/hyprland/animations_effects/top.nix= -This is top file of this level which contains the bare necessities for this subject + an import statement for all the subfolder in this folder +This is top file of this level which contains just an import statement for all relevant files and/or the subfolder in this folder #+BEGIN_SRC nix :tangle generated/hyprland/animations_effects/top.nix :noweb tangle :mkdirp yes :eval never-html { config, pkgs, lib, user, inputs, ... }: { @@ -711,7 +728,7 @@ This is top file of this level which contains the bare necessities for this subj #+END_SRC ** =generated/hyprland/decorations/top.nix= -This is top file of this level which contains the bare necessities for this subject + an import statement for all the subfolder in this folder +This is top file of this level which contains just an import statement for all relevant files and/or the subfolder in this folder #+BEGIN_SRC nix :tangle generated/hyprland/decorations/top.nix :noweb tangle :mkdirp yes :eval never-html { config, pkgs, lib, user, inputs, ... }: { @@ -723,7 +740,7 @@ This is top file of this level which contains the bare necessities for this subj #+END_SRC ** =generated/hyprland/keyboard_binds/top.nix= -This is top file of this level which contains the bare necessities for this subject + an import statement for all the subfolder in this folder +This is top file of this level which contains just an import statement for all relevant files and/or the subfolder in this folder #+BEGIN_SRC nix :tangle generated/hyprland/keyboard_binds/top.nix :noweb tangle :mkdirp yes :eval never-html { config, pkgs, lib, user, inputs, ... }: let @@ -741,7 +758,7 @@ in #+END_SRC ** =generated/hyprland/notifications/top.nix= -This is top file of this level which contains the bare necessities for this subject + an import statement for all the subfolder in this folder +This is top file of this level which contains just an import statement for all relevant files and/or the subfolder in this folder #+BEGIN_SRC nix :tangle generated/hyprland/notifications/top.nix :noweb tangle :mkdirp yes :eval never-html { config, pkgs, lib, user, inputs, ... }: { @@ -753,7 +770,7 @@ This is top file of this level which contains the bare necessities for this subj #+END_SRC ** =generated/hyprland/statusbar_tray/top.nix= -This is top file of this level which contains the bare necessities for this subject + an import statement for all the subfolder in this folder +This is top file of this level which contains just an import statement for all relevant files and/or the subfolder in this folder #+BEGIN_SRC nix :tangle generated/hyprland/statusbar_tray/top.nix :noweb tangle :mkdirp yes :eval never-html { config, pkgs, lib, user, inputs, ... }: { @@ -765,7 +782,7 @@ This is top file of this level which contains the bare necessities for this subj #+END_SRC ** =generated/hyprland/task_launcher/top.nix= -This is top file of this level which contains the bare necessities for this subject + an import statement for all the subfolder in this folder +This is top file of this level which contains just an import statement for all relevant files and/or the subfolder in this folder #+BEGIN_SRC nix :tangle generated/hyprland/task_launcher/top.nix :noweb tangle :mkdirp yes :eval never-html { config, pkgs, lib, user, inputs, ... }: { @@ -777,7 +794,7 @@ This is top file of this level which contains the bare necessities for this subj #+END_SRC ** =generated/hyprland/task_window_workspace_switcher/top.nix= -This is top file of this level which contains the bare necessities for this subject + an import statement for all the subfolder in this folder +This is top file of this level which contains just an import statement for all relevant files and/or the subfolder in this folder #+BEGIN_SRC nix :tangle generated/hyprland/task_window_workspace_switcher/top.nix :noweb tangle :mkdirp yes :eval never-html { config, pkgs, lib, user, inputs, ... }: { @@ -789,7 +806,7 @@ This is top file of this level which contains the bare necessities for this subj #+END_SRC ** =generated/hyprland/window_rules/top.nix= -This is top file of this level which contains the bare necessities for this subject + an import statement for all the subfolder in this folder +This is top file of this level which contains just an import statement for all relevant files and/or the subfolder in this folder #+BEGIN_SRC nix :tangle generated/hyprland/window_rules/top.nix :noweb tangle :mkdirp yes :eval never-html { config, pkgs, lib, user, inputs, ... }: { @@ -801,7 +818,7 @@ This is top file of this level which contains the bare necessities for this subj #+END_SRC ** =generated/mangowc/animations_effects/top.nix= -This is top file of this level which contains the bare necessities for this subject + an import statement for all the subfolder in this folder +This is top file of this level which contains just an import statement for all relevant files and/or the subfolder in this folder #+BEGIN_SRC nix :tangle generated/mangowc/animations_effects/top.nix :noweb tangle :mkdirp yes :eval never-html { config, pkgs, lib, user, inputs, ... }: { @@ -813,7 +830,7 @@ This is top file of this level which contains the bare necessities for this subj #+END_SRC ** =generated/mangowc/decorations/top.nix= -This is top file of this level which contains the bare necessities for this subject + an import statement for all the subfolder in this folder +This is top file of this level which contains just an import statement for all relevant files and/or the subfolder in this folder #+BEGIN_SRC nix :tangle generated/mangowc/decorations/top.nix :noweb tangle :mkdirp yes :eval never-html { config, pkgs, lib, user, inputs, ... }: { @@ -825,7 +842,7 @@ This is top file of this level which contains the bare necessities for this subj #+END_SRC ** =generated/mangowc/keyboard_binds/top.nix= -This is top file of this level which contains the bare necessities for this subject + an import statement for all the subfolder in this folder +This is top file of this level which contains just an import statement for all relevant files and/or the subfolder in this folder #+BEGIN_SRC nix :tangle generated/mangowc/keyboard_binds/top.nix :noweb tangle :mkdirp yes :eval never-html { config, pkgs, lib, user, inputs, ... }: { @@ -837,7 +854,7 @@ This is top file of this level which contains the bare necessities for this subj #+END_SRC ** =generated/mangowc/notifications/top.nix= -This is top file of this level which contains the bare necessities for this subject + an import statement for all the subfolder in this folder +This is top file of this level which contains just an import statement for all relevant files and/or the subfolder in this folder #+BEGIN_SRC nix :tangle generated/mangowc/notifications/top.nix :noweb tangle :mkdirp yes :eval never-html { config, pkgs, lib, user, inputs, ... }: { @@ -849,7 +866,7 @@ This is top file of this level which contains the bare necessities for this subj #+END_SRC ** =generated/mangowc/statusbar_tray/top.nix= -This is top file of this level which contains the bare necessities for this subject + an import statement for all the subfolder in this folder +This is top file of this level which contains just an import statement for all relevant files and/or the subfolder in this folder #+BEGIN_SRC nix :tangle generated/mangowc/statusbar_tray/top.nix :noweb tangle :mkdirp yes :eval never-html { config, pkgs, lib, user, inputs, ... }: { @@ -861,7 +878,7 @@ This is top file of this level which contains the bare necessities for this subj #+END_SRC ** =generated/mangowc/task_launcher/top.nix= -This is top file of this level which contains the bare necessities for this subject + an import statement for all the subfolder in this folder +This is top file of this level which contains just an import statement for all relevant files and/or the subfolder in this folder #+BEGIN_SRC nix :tangle generated/mangowc/task_launcher/top.nix :noweb tangle :mkdirp yes :eval never-html { config, pkgs, lib, user, inputs, ... }: { @@ -873,7 +890,7 @@ This is top file of this level which contains the bare necessities for this subj #+END_SRC ** =generated/mangowc/task_window_workspace_switcher/top.nix= -This is top file of this level which contains the bare necessities for this subject + an import statement for all the subfolder in this folder +This is top file of this level which contains just an import statement for all relevant files and/or the subfolder in this folder #+BEGIN_SRC nix :tangle generated/mangowc/task_window_workspace_switcher/top.nix :noweb tangle :mkdirp yes :eval never-html { config, pkgs, lib, user, inputs, ... }: { @@ -885,7 +902,7 @@ This is top file of this level which contains the bare necessities for this subj #+END_SRC ** =generated/mangowc/window_rules/top.nix= -This is top file of this level which contains the bare necessities for this subject + an import statement for all the subfolder in this folder +This is top file of this level which contains just an import statement for all relevant files and/or the subfolder in this folder #+BEGIN_SRC nix :tangle generated/mangowc/window_rules/top.nix :noweb tangle :mkdirp yes :eval never-html { config, pkgs, lib, user, inputs, ... }: { @@ -897,7 +914,7 @@ This is top file of this level which contains the bare necessities for this subj #+END_SRC ** =generated/system/applications/accessibility/top.nix= -This is top file of this level which contains the bare necessities for this subject + an import statement for all the subfolder in this folder +This is top file of this level which contains just an import statement for all relevant files and/or the subfolder in this folder #+BEGIN_SRC nix :tangle generated/system/applications/accessibility/top.nix :noweb tangle :mkdirp yes :eval never-html { config, pkgs, lib, user, inputs, ... }: { @@ -909,7 +926,7 @@ This is top file of this level which contains the bare necessities for this subj #+END_SRC ** =generated/system/applications/file_management/top.nix= -This is top file of this level which contains the bare necessities for this subject + an import statement for all the subfolder in this folder +This is top file of this level which contains just an import statement for all relevant files and/or the subfolder in this folder #+BEGIN_SRC nix :tangle generated/system/applications/file_management/top.nix :noweb tangle :mkdirp yes :eval never-html { config, pkgs, lib, user, inputs, ... }: { @@ -921,7 +938,7 @@ This is top file of this level which contains the bare necessities for this subj #+END_SRC ** =generated/system/applications/gaming/top.nix= -This is top file of this level which contains the bare necessities for this subject + an import statement for all the subfolder in this folder +This is top file of this level which contains just an import statement for all relevant files and/or the subfolder in this folder #+BEGIN_SRC nix :tangle generated/system/applications/gaming/top.nix :noweb tangle :mkdirp yes :eval never-html { config, pkgs, lib, user, inputs, ... }: { @@ -933,7 +950,7 @@ This is top file of this level which contains the bare necessities for this subj #+END_SRC ** =generated/system/applications/media_playback_editing/top.nix= -This is top file of this level which contains the bare necessities for this subject + an import statement for all the subfolder in this folder +This is top file of this level which contains just an import statement for all relevant files and/or the subfolder in this folder #+BEGIN_SRC nix :tangle generated/system/applications/media_playback_editing/top.nix :noweb tangle :mkdirp yes :eval never-html { config, pkgs, lib, user, inputs, ... }: { @@ -945,7 +962,7 @@ This is top file of this level which contains the bare necessities for this subj #+END_SRC ** =generated/system/applications/office_productivity/top.nix= -This is top file of this level which contains the bare necessities for this subject + an import statement for all the subfolder in this folder +This is top file of this level which contains just an import statement for all relevant files and/or the subfolder in this folder #+BEGIN_SRC nix :tangle generated/system/applications/office_productivity/top.nix :noweb tangle :mkdirp yes :eval never-html { config, pkgs, lib, user, inputs, ... }: { @@ -957,7 +974,7 @@ This is top file of this level which contains the bare necessities for this subj #+END_SRC ** =generated/system/applications/terminal_shell/top.nix= -This is top file of this level which contains the bare necessities for this subject + an import statement for all the subfolder in this folder +This is top file of this level which contains just an import statement for all relevant files and/or the subfolder in this folder #+BEGIN_SRC nix :tangle generated/system/applications/terminal_shell/top.nix :noweb tangle :mkdirp yes :eval never-html { config, pkgs, lib, user, inputs, ... }: { @@ -969,7 +986,7 @@ This is top file of this level which contains the bare necessities for this subj #+END_SRC ** =generated/system/development/databases/top.nix= -This is top file of this level which contains the bare necessities for this subject + an import statement for all the subfolder in this folder +This is top file of this level which contains just an import statement for all relevant files and/or the subfolder in this folder #+BEGIN_SRC nix :tangle generated/system/development/databases/top.nix :noweb tangle :mkdirp yes :eval never-html { config, pkgs, lib, user, inputs, ... }: { @@ -981,7 +998,7 @@ This is top file of this level which contains the bare necessities for this subj #+END_SRC ** =generated/system/development/devops_ci_cd/top.nix= -This is top file of this level which contains the bare necessities for this subject + an import statement for all the subfolder in this folder +This is top file of this level which contains just an import statement for all relevant files and/or the subfolder in this folder #+BEGIN_SRC nix :tangle generated/system/development/devops_ci_cd/top.nix :noweb tangle :mkdirp yes :eval never-html { config, pkgs, lib, user, inputs, ... }: { @@ -993,7 +1010,7 @@ This is top file of this level which contains the bare necessities for this subj #+END_SRC ** =generated/system/development/programming_languages/top.nix= -This is top file of this level which contains the bare necessities for this subject + an import statement for all the subfolder in this folder +This is top file of this level which contains just an import statement for all relevant files and/or the subfolder in this folder #+BEGIN_SRC nix :tangle generated/system/development/programming_languages/top.nix :noweb tangle :mkdirp yes :eval never-html { config, pkgs, lib, user, inputs, ... }: { @@ -1005,7 +1022,7 @@ This is top file of this level which contains the bare necessities for this subj #+END_SRC ** =generated/system/development/virtualization/top.nix= -This is top file of this level which contains the bare necessities for this subject + an import statement for all the subfolder in this folder +This is top file of this level which contains just an import statement for all relevant files and/or the subfolder in this folder #+BEGIN_SRC nix :tangle generated/system/development/virtualization/top.nix :noweb tangle :mkdirp yes :eval never-html { config, pkgs, lib, user, inputs, ... }: { @@ -1017,7 +1034,7 @@ This is top file of this level which contains the bare necessities for this subj #+END_SRC ** =generated/system/development/web_development/top.nix= -This is top file of this level which contains the bare necessities for this subject + an import statement for all the subfolder in this folder +This is top file of this level which contains just an import statement for all relevant files and/or the subfolder in this folder #+BEGIN_SRC nix :tangle generated/system/development/web_development/top.nix :noweb tangle :mkdirp yes :eval never-html { config, pkgs, lib, user, inputs, ... }: { @@ -1029,7 +1046,7 @@ This is top file of this level which contains the bare necessities for this subj #+END_SRC ** =generated/system/system_management/audio/top.nix= -This is top file of this level which contains the bare necessities for this subject + an import statement for all the subfolder in this folder +This is top file of this level which contains just an import statement for all relevant files and/or the subfolder in this folder #+BEGIN_SRC nix :tangle generated/system/system_management/audio/top.nix :noweb tangle :mkdirp yes :eval never-html { config, pkgs, lib, user, inputs, ... }: { @@ -1041,7 +1058,7 @@ This is top file of this level which contains the bare necessities for this subj #+END_SRC ** =generated/system/system_management/backups/top.nix= -This is top file of this level which contains the bare necessities for this subject + an import statement for all the subfolder in this folder +This is top file of this level which contains just an import statement for all relevant files and/or the subfolder in this folder #+BEGIN_SRC nix :tangle generated/system/system_management/backups/top.nix :noweb tangle :mkdirp yes :eval never-html { config, pkgs, lib, user, inputs, ... }: { @@ -1053,7 +1070,7 @@ This is top file of this level which contains the bare necessities for this subj #+END_SRC ** =generated/system/system_management/bluetooth/top.nix= -This is top file of this level which contains the bare necessities for this subject + an import statement for all the subfolder in this folder +This is top file of this level which contains just an import statement for all relevant files and/or the subfolder in this folder #+BEGIN_SRC nix :tangle generated/system/system_management/bluetooth/top.nix :noweb tangle :mkdirp yes :eval never-html { config, pkgs, lib, user, inputs, ... }: { @@ -1065,7 +1082,7 @@ This is top file of this level which contains the bare necessities for this subj #+END_SRC ** =generated/system/system_management/disk_management/top.nix= -This is top file of this level which contains the bare necessities for this subject + an import statement for all the subfolder in this folder +This is top file of this level which contains just an import statement for all relevant files and/or the subfolder in this folder #+BEGIN_SRC nix :tangle generated/system/system_management/disk_management/top.nix :noweb tangle :mkdirp yes :eval never-html { config, pkgs, lib, user, inputs, ... }: { @@ -1077,7 +1094,7 @@ This is top file of this level which contains the bare necessities for this subj #+END_SRC ** =generated/system/system_management/hardware_sensors/top.nix= -This is top file of this level which contains the bare necessities for this subject + an import statement for all the subfolder in this folder +This is top file of this level which contains just an import statement for all relevant files and/or the subfolder in this folder #+BEGIN_SRC nix :tangle generated/system/system_management/hardware_sensors/top.nix :noweb tangle :mkdirp yes :eval never-html { config, pkgs, lib, user, inputs, ... }: { @@ -1089,7 +1106,7 @@ This is top file of this level which contains the bare necessities for this subj #+END_SRC ** =generated/system/system_management/logging_monitoring/top.nix= -This is top file of this level which contains the bare necessities for this subject + an import statement for all the subfolder in this folder +This is top file of this level which contains just an import statement for all relevant files and/or the subfolder in this folder #+BEGIN_SRC nix :tangle generated/system/system_management/logging_monitoring/top.nix :noweb tangle :mkdirp yes :eval never-html { config, pkgs, lib, user, inputs, ... }: { @@ -1101,7 +1118,7 @@ This is top file of this level which contains the bare necessities for this subj #+END_SRC ** =generated/system/system_management/login_manager/top.nix= -This is top file of this level which contains the bare necessities for this subject + an import statement for all the subfolder in this folder +This is top file of this level which contains just an import statement for all relevant files and/or the subfolder in this folder #+BEGIN_SRC nix :tangle generated/system/system_management/login_manager/top.nix :noweb tangle :mkdirp yes :eval never-html { config, pkgs, lib, user, inputs, ... }: { @@ -1113,7 +1130,7 @@ This is top file of this level which contains the bare necessities for this subj #+END_SRC ** =generated/system/system_management/monitor_setup/top.nix= -This is top file of this level which contains the bare necessities for this subject + an import statement for all the subfolder in this folder +This is top file of this level which contains just an import statement for all relevant files and/or the subfolder in this folder #+BEGIN_SRC nix :tangle generated/system/system_management/monitor_setup/top.nix :noweb tangle :mkdirp yes :eval never-html { config, pkgs, lib, user, inputs, ... }: { @@ -1125,7 +1142,7 @@ This is top file of this level which contains the bare necessities for this subj #+END_SRC ** =generated/system/system_management/networking/top.nix= -This is top file of this level which contains the bare necessities for this subject + an import statement for all the subfolder in this folder +This is top file of this level which contains just an import statement for all relevant files and/or the subfolder in this folder #+BEGIN_SRC nix :tangle generated/system/system_management/networking/top.nix :noweb tangle :mkdirp yes :eval never-html { config, pkgs, lib, user, inputs, ... }: { @@ -1137,7 +1154,7 @@ This is top file of this level which contains the bare necessities for this subj #+END_SRC ** =generated/system/system_management/power_management/top.nix= -This is top file of this level which contains the bare necessities for this subject + an import statement for all the subfolder in this folder +This is top file of this level which contains just an import statement for all relevant files and/or the subfolder in this folder #+BEGIN_SRC nix :tangle generated/system/system_management/power_management/top.nix :noweb tangle :mkdirp yes :eval never-html { config, pkgs, lib, user, inputs, ... }: { @@ -1149,7 +1166,7 @@ This is top file of this level which contains the bare necessities for this subj #+END_SRC ** =generated/system/system_management/printers_scanners/top.nix= -This is top file of this level which contains the bare necessities for this subject + an import statement for all the subfolder in this folder +This is top file of this level which contains just an import statement for all relevant files and/or the subfolder in this folder #+BEGIN_SRC nix :tangle generated/system/system_management/printers_scanners/top.nix :noweb tangle :mkdirp yes :eval never-html { config, pkgs, lib, user, inputs, ... }: { @@ -1161,7 +1178,7 @@ This is top file of this level which contains the bare necessities for this subj #+END_SRC ** =generated/system/system_management/security/top.nix= -This is top file of this level which contains the bare necessities for this subject + an import statement for all the subfolder in this folder +This is top file of this level which contains just an import statement for all relevant files and/or the subfolder in this folder #+BEGIN_SRC nix :tangle generated/system/system_management/security/top.nix :noweb tangle :mkdirp yes :eval never-html { config, pkgs, lib, user, inputs, ... }: { @@ -1173,7 +1190,7 @@ This is top file of this level which contains the bare necessities for this subj #+END_SRC ** =generated/system/system_management/system_updates/top.nix= -This is top file of this level which contains the bare necessities for this subject + an import statement for all the subfolder in this folder +This is top file of this level which contains just an import statement for all relevant files and/or the subfolder in this folder #+BEGIN_SRC nix :tangle generated/system/system_management/system_updates/top.nix :noweb tangle :mkdirp yes :eval never-html { config, pkgs, lib, user, inputs, ... }: { diff --git a/Droidnix/generated/hyprland/hyprland.nix b/Droidnix/generated/hyprland/hyprland.nix new file mode 100644 index 000000000..c6aaed229 --- /dev/null +++ b/Droidnix/generated/hyprland/hyprland.nix @@ -0,0 +1,23 @@ +{ config, pkgs, lib, user, inputs, ... }: +{ + # Nix settings to use Hyprland's cache for packages + nix.settings = { + substituters = [ "https://hyprland.cachix.org" ]; + trusted-public-keys = [ "hyprland.cachix.org-1:a7pgxzMz7+chwVL3/pzj6jIBMioiJM7ypFP8PwtkuGc=" ]; + }; + + # Install Hyprland and enable it as the window manager + environment.systemPackages = with pkgs; [ hyprland ]; + programs.hyprland = { + enable = true; + xwayland.enable = true; + }; + + # Hyprland-specific Home Manager configurations + home-manager.users.${user.username} = { + wayland.windowManager.hyprland = { + enable = true; + settings = { }; + }; + }; +} diff --git a/Droidnix/generated/hyprland/top.nix b/Droidnix/generated/hyprland/top.nix index 19b5d2db8..18e90c014 100644 --- a/Droidnix/generated/hyprland/top.nix +++ b/Droidnix/generated/hyprland/top.nix @@ -1,6 +1,7 @@ { config, pkgs, lib, user, inputs, ... }: { imports = [ + ./hyprland.nix ./animations_effects/top.nix ./decorations/top.nix ./keyboard_binds/top.nix @@ -10,70 +11,4 @@ ./task_window_workspace_switcher/top.nix ./window_rules/top.nix ]; - - # Nix settings to use Hyprland's cache for packages - # This allows Nix to download pre-built packages from the Hyprland cache, - # which can speed up the installation process and ensure compatibility. - nix.settings = { - substituters = [ "https://hyprland.cachix.org" ]; - trusted-public-keys = [ "hyprland.cachix.org-1:a7pgxzMz7+chwVL3/pzj6jIBMioiJM7ypFP8PwtkuGc=" ]; - }; - - # Enable essential services for a Wayland session - services.dbus.enable = true; # D-Bus is required for inter-process communication - services.pipewire = { - enable = true; - alsa.enable = true; # Basic audio support using ALSA - pulse.enable = true; # PulseAudio support for better audio management - wireplumber.enable = true; # Audio device management and routing - }; - - # XDG Desktop Portal settings for better application integration - # The XDG Desktop Portal provides a way for applications to interact with the desktop environment. - xdg.portal = { - enable = true; - config.common.default = [ "hyprland" "gtk" ]; # Use Hyprland and GTK as default portal implementations - }; - - # Environment variables for a Wayland session with Hyprland - # These variables help applications understand the desktop environment and session type. - environment.sessionVariables = { - XDG_SESSION_TYPE = "wayland"; # Use Wayland instead of X11 for the session - XDG_CURRENT_DESKTOP = "Hyprland"; # Define the current desktop environment as Hyprland - XCURSOR_SIZE = "24"; # Set the size of the mouse cursor to 24 pixels - }; - - # Install Hyprland and enable it as the window manager - # Here, we're only installing the Hyprland package itself for a minimal setup. - environment.systemPackages = with pkgs; [ hyprland ]; - - # Configure Hyprland as the window manager - # This section enables Hyprland as the window manager and sets basic configurations. - programs.hyprland = { - enable = true; # Start Hyprland as the window manager - xwayland.enable = true; # Enable XWayland to run X11 applications within the Wayland session - }; - - # Home-manager configuration for user-specific settings - # Home-manager is used to manage user-specific configurations and packages. - home-manager = { - # Enable Hyprland as the Wayland window manager for the user session - wayland.windowManager.hyprland = { - enable = true; # Enable Hyprland as the window manager for the user - settings = { - # Minimal configuration, customize later as needed - # This is where you would add custom keybinds, workspace settings, etc. - }; - }; - - # XDG portal settings for user sessions - # These settings ensure that applications can interact properly with the Hyprland session. - xdg.portal = { - enable = true; - extraPortals = with pkgs; [ xdg-desktop-portal-hyprland ]; # Hyprland-specific portal implementation - config.hyprland = { - "org.freedesktop.impl.portal.Screencast" = [ "hyprland" ]; # Enable screencasting support - }; - }; - }; } diff --git a/Droidnix/generated/system/core/top.nix b/Droidnix/generated/system/core/top.nix new file mode 100644 index 000000000..315c8551e --- /dev/null +++ b/Droidnix/generated/system/core/top.nix @@ -0,0 +1,8 @@ +{ config, pkgs, lib, user, inputs, ... }: +{ + imports = [ + ./top.nix + ./wayland.nix + ]; + # .. put any code here +} diff --git a/Droidnix/generated/system/core/wayland.nix b/Droidnix/generated/system/core/wayland.nix new file mode 100644 index 000000000..f81f3aa13 --- /dev/null +++ b/Droidnix/generated/system/core/wayland.nix @@ -0,0 +1,35 @@ +{ config, pkgs, lib, user, ... }: +{ + # Enable essential services for a Wayland session + services.dbus.enable = true; + services.pipewire = { + enable = true; + alsa.enable = true; + pulse.enable = true; + wireplumber.enable = true; + }; + + # XDG Desktop Portal settings for better application integration + xdg.portal = { + enable = true; + config.common.default = [ "hyprland" "gtk" ]; + }; + + # Environment variables for a Wayland session + environment.sessionVariables = { + XDG_SESSION_TYPE = "wayland"; + XDG_CURRENT_DESKTOP = "Hyprland"; + XCURSOR_SIZE = "24"; + }; + + # Home Manager Wayland configurations + home-manager.users.${user.username} = { + xdg.portal = { + enable = true; + extraPortals = with pkgs; [ xdg-desktop-portal-hyprland ]; + config.hyprland = { + "org.freedesktop.impl.portal.Screencast" = [ "hyprland" ]; + }; + }; + }; +} diff --git a/Droidnix/generated/system/top.nix b/Droidnix/generated/system/top.nix index 25170bc64..f2c662a51 100644 --- a/Droidnix/generated/system/top.nix +++ b/Droidnix/generated/system/top.nix @@ -2,6 +2,7 @@ { imports = [ ./applications/top.nix + ./core/top.nix ./development/top.nix ./system_management/top.nix ];