From d1056a9f60cad873e4454e6d886e67d7ae994425 Mon Sep 17 00:00:00 2001 From: "info@data-pro.nu" Date: Fri, 6 Mar 2026 23:01:13 +0100 Subject: [PATCH] first test-build --- Droidnix/README.html | 713 ++++++++++-------- Droidnix/flake.lock | 614 +++++++++++++++ .../generated/hyprland/keyboard_binds/top.nix | 14 +- Droidnix/generated/hyprland/top.nix | 68 +- Droidnix/generated/top.nix | 10 - 5 files changed, 1073 insertions(+), 346 deletions(-) create mode 100644 Droidnix/flake.lock diff --git a/Droidnix/README.html b/Droidnix/README.html index ca3ff6d3a..7611aeae0 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,109 @@

Table of Contents

-
-

Shortcuts

-
+
+

Shortcuts

+

Introduction The Assets Folder @@ -323,26 +322,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 +354,9 @@ The Droidnix repository is organized into two main parts:

-
-

Root Level

-
+
+

Root Level

+
  • flake.nix is the entry point and imports:
      @@ -369,23 +368,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 +394,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 +406,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 +427,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 +446,9 @@ This directory contains configurations specific to Hyprland.
-
-

MangoWC (generated/mangowc/)

-
+
+

MangoWC (generated/mangowc/)

+

This directory contains configurations specific to MangoWC.

@@ -483,7 +482,7 @@ This directory contains configurations specific to MangoWC.
  • Scalability: Easy to add new machines or configurations.
  • -
    +
     .
     ├── assets
     │   ├── common
    @@ -665,9 +664,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 +688,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 +701,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 +715,9 @@ Hyprland-specific assets, including configs, themes, and scripts.
    -
    -

    .assets/mangowc/

    -
    +
    +

    .assets/mangowc/

    +

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

    @@ -730,9 +729,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 +749,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.

    @@ -817,13 +816,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

    @@ -839,9 +838,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.

    @@ -857,9 +856,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.

    @@ -880,13 +879,13 @@ This code defines the machine to build. Just search and replace traveldroid to p
    -
    -

    Now we reach the top of the hierarchiy 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.

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

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

    @@ -920,19 +919,90 @@ This is top file of this level which contains the bare necessities for this subj
    { config, pkgs, lib, user, inputs, ... }:
     {
       imports = [
    -    ./hyprland/top.nix
    -    ./mangowc/top.nix
    -    ./system/top.nix
    +    ./animations_effects/top.nix
    +    ./decorations/top.nix
    +    ./keyboard_binds/top.nix
    +    ./notifications/top.nix
    +    ./statusbar_tray/top.nix
    +    ./task_launcher/top.nix
    +    ./task_window_workspace_switcher/top.nix
    +    ./window_rules/top.nix
       ];
    -  # .. put any code here
    +
    +  # 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
    +      };
    +    };
    +  }
    +
     }
     
    -
    -

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

    @@ -955,34 +1025,9 @@ This is top file of this level which contains the bare necessities for this subj
    -
    -

    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 -

    -
    -
    { config, pkgs, lib, user, inputs, ... }:
    -{
    -  imports = [
    -    ./animations_effects/top.nix
    -    ./decorations/top.nix
    -    ./keyboard_binds/top.nix
    -    ./notifications/top.nix
    -    ./statusbar_tray/top.nix
    -    ./task_launcher/top.nix
    -    ./task_window_workspace_switcher/top.nix
    -    ./window_rules/top.nix
    -  ];
    -  # .. put any code here
    -}
    -
    -
    -
    -
    -
    -

    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

    @@ -1000,9 +1045,9 @@ 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

    @@ -1023,9 +1068,9 @@ This is top file of this level which contains the bare necessities for this subj
    -
    -

    generated/system/development/top.nix

    -
    +
    +

    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

    @@ -1045,9 +1090,9 @@ 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

    @@ -1075,9 +1120,9 @@ 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

    @@ -1093,9 +1138,9 @@ 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

    @@ -1111,9 +1156,33 @@ 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 +

    +
    +
    { config, pkgs, lib, user, inputs, ... }:
    +let
    +  # Read the contents of the bindings.conf file
    +  bindingsContent = builtins.readFile ./assets/hyprland/conf/bindings.conf;
    +  # Create a configuration file from the bindings content
    +  configFile = pkgs.writeText "hyprland.conf" bindingsContent;
    +in
    +{
    +  wayland.windowManager.hyprland = {
    +    enable = true;  # Enable Hyprland as the window manager
    +    config = configFile;  # Use the generated configuration file
    +  };
    +}
    +
    +
    +
    +
    +
    +

    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

    @@ -1129,9 +1198,9 @@ This is top file of this level which contains the bare necessities for this subj
    -
    -

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

    @@ -1147,9 +1216,9 @@ This is top file of this level which contains the bare necessities for this subj
    -
    -

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

    @@ -1165,9 +1234,9 @@ This is top file of this level which contains the bare necessities for this subj
    -
    -

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

    @@ -1183,9 +1252,9 @@ 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/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

    @@ -1201,9 +1270,9 @@ This is top file of this level which contains the bare necessities for this subj
    -
    -

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

    @@ -1219,9 +1288,9 @@ This is top file of this level which contains the bare necessities for this subj
    -
    -

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

    @@ -1237,9 +1306,9 @@ This is top file of this level which contains the bare necessities for this subj
    -
    -

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

    @@ -1255,9 +1324,9 @@ This is top file of this level which contains the bare necessities for this subj
    -
    -

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

    @@ -1273,9 +1342,9 @@ This is top file of this level which contains the bare necessities for this subj
    -
    -

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

    @@ -1291,9 +1360,9 @@ This is top file of this level which contains the bare necessities for this subj
    -
    -

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

    @@ -1309,9 +1378,9 @@ This is top file of this level which contains the bare necessities for this subj
    -
    -

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

    @@ -1327,9 +1396,9 @@ 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/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

    @@ -1345,9 +1414,9 @@ This is top file of this level which contains the bare necessities for this subj
    -
    -

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

    @@ -1363,9 +1432,9 @@ This is top file of this level which contains the bare necessities for this subj
    -
    -

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

    @@ -1381,9 +1450,9 @@ 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/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

    @@ -1399,9 +1468,9 @@ This is top file of this level which contains the bare necessities for this subj
    -
    -

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

    @@ -1417,9 +1486,9 @@ 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/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

    @@ -1435,9 +1504,9 @@ 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/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

    @@ -1453,9 +1522,9 @@ This is top file of this level which contains the bare necessities for this subj
    -
    -

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

    @@ -1471,9 +1540,9 @@ This is top file of this level which contains the bare necessities for this subj
    -
    -

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

    @@ -1489,9 +1558,9 @@ 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/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

    @@ -1507,9 +1576,9 @@ 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/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

    @@ -1525,9 +1594,9 @@ This is top file of this level which contains the bare necessities for this subj
    -
    -

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

    @@ -1543,9 +1612,9 @@ This is top file of this level which contains the bare necessities for this subj
    -
    -

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

    @@ -1561,9 +1630,9 @@ 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/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

    @@ -1579,9 +1648,9 @@ 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/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

    @@ -1597,9 +1666,9 @@ 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/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

    @@ -1615,9 +1684,9 @@ 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/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

    @@ -1633,9 +1702,9 @@ 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/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

    @@ -1651,9 +1720,9 @@ 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/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

    @@ -1669,9 +1738,9 @@ 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/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

    @@ -1687,9 +1756,9 @@ 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/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

    @@ -1705,9 +1774,9 @@ 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/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

    @@ -1723,9 +1792,9 @@ 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/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

    @@ -1741,9 +1810,9 @@ 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/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

    @@ -1759,27 +1828,9 @@ This is top file of this level which contains the bare necessities for this subj
    -
    -

    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 -

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

    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

    @@ -1799,7 +1850,7 @@ This is top file of this level which contains the bare necessities for this subj

    Author: Henro Veijer

    -

    Created: 2026-03-06 vr 22:37

    +

    Created: 2026-03-06 vr 22:57

    Validate

    diff --git a/Droidnix/flake.lock b/Droidnix/flake.lock new file mode 100644 index 000000000..ea5d7ddc7 --- /dev/null +++ b/Droidnix/flake.lock @@ -0,0 +1,614 @@ +{ + "nodes": { + "aquamarine": { + "inputs": { + "hyprutils": [ + "hyprland", + "hyprutils" + ], + "hyprwayland-scanner": [ + "hyprland", + "hyprwayland-scanner" + ], + "nixpkgs": [ + "hyprland", + "nixpkgs" + ], + "systems": [ + "hyprland", + "systems" + ] + }, + "locked": { + "lastModified": 1772292445, + "narHash": "sha256-4F1Q7U313TKUDDovCC96m/Za4wZcJ3yqtu4eSrj8lk8=", + "owner": "hyprwm", + "repo": "aquamarine", + "rev": "1dbbba659c1cef0b0202ce92cadfe13bae550e8f", + "type": "github" + }, + "original": { + "owner": "hyprwm", + "repo": "aquamarine", + "type": "github" + } + }, + "catppuccin": { + "inputs": { + "nixpkgs": [ + "nixpkgs" + ] + }, + "locked": { + "lastModified": 1772757591, + "narHash": "sha256-+DyPJcUBXOVu1YiM0mYkEtqYIB9RR0k22NoCaJJ7K2g=", + "owner": "catppuccin", + "repo": "nix", + "rev": "4910a6461a3c4d7ffa56feb4aa4945f3e953f8ec", + "type": "github" + }, + "original": { + "owner": "catppuccin", + "repo": "nix", + "type": "github" + } + }, + "emacs-overlay": { + "inputs": { + "nixpkgs": [ + "nixpkgs" + ], + "nixpkgs-stable": "nixpkgs-stable" + }, + "locked": { + "lastModified": 1772818138, + "narHash": "sha256-Q/zaIhzvvjCN6/oPcOsyljP0LO0RUvB90BSuDNVYNF8=", + "owner": "nix-community", + "repo": "emacs-overlay", + "rev": "594ce4b67cd089110785a9c23731f61767d233d3", + "type": "github" + }, + "original": { + "owner": "nix-community", + "repo": "emacs-overlay", + "type": "github" + } + }, + "flake-compat": { + "flake": false, + "locked": { + "lastModified": 1767039857, + "narHash": "sha256-vNpUSpF5Nuw8xvDLj2KCwwksIbjua2LZCqhV1LNRDns=", + "owner": "NixOS", + "repo": "flake-compat", + "rev": "5edf11c44bc78a0d334f6334cdaf7d60d732daab", + "type": "github" + }, + "original": { + "owner": "NixOS", + "repo": "flake-compat", + "type": "github" + } + }, + "gitignore": { + "inputs": { + "nixpkgs": [ + "hyprland", + "pre-commit-hooks", + "nixpkgs" + ] + }, + "locked": { + "lastModified": 1709087332, + "narHash": "sha256-HG2cCnktfHsKV0s4XW83gU3F57gaTljL9KNSuG6bnQs=", + "owner": "hercules-ci", + "repo": "gitignore.nix", + "rev": "637db329424fd7e46cf4185293b9cc8c88c95394", + "type": "github" + }, + "original": { + "owner": "hercules-ci", + "repo": "gitignore.nix", + "type": "github" + } + }, + "home-manager": { + "inputs": { + "nixpkgs": [ + "nixpkgs" + ] + }, + "locked": { + "lastModified": 1772807318, + "narHash": "sha256-Qjw6ILt8cb2HQQpCmWNLMZZ63wEo1KjTQt+1BcQBr7k=", + "owner": "nix-community", + "repo": "home-manager", + "rev": "daa2c221320809f5514edde74d0ad0193ad54ed8", + "type": "github" + }, + "original": { + "owner": "nix-community", + "repo": "home-manager", + "type": "github" + } + }, + "hyprcursor": { + "inputs": { + "hyprlang": [ + "hyprland", + "hyprlang" + ], + "nixpkgs": [ + "hyprland", + "nixpkgs" + ], + "systems": [ + "hyprland", + "systems" + ] + }, + "locked": { + "lastModified": 1753964049, + "narHash": "sha256-lIqabfBY7z/OANxHoPeIrDJrFyYy9jAM4GQLzZ2feCM=", + "owner": "hyprwm", + "repo": "hyprcursor", + "rev": "44e91d467bdad8dcf8bbd2ac7cf49972540980a5", + "type": "github" + }, + "original": { + "owner": "hyprwm", + "repo": "hyprcursor", + "type": "github" + } + }, + "hyprgraphics": { + "inputs": { + "hyprutils": [ + "hyprland", + "hyprutils" + ], + "nixpkgs": [ + "hyprland", + "nixpkgs" + ], + "systems": [ + "hyprland", + "systems" + ] + }, + "locked": { + "lastModified": 1770511807, + "narHash": "sha256-suKmSbSk34uPOJDTg/GbPrKEJutzK08vj0VoTvAFBCA=", + "owner": "hyprwm", + "repo": "hyprgraphics", + "rev": "7c75487edd43a71b61adb01cae8326d277aab683", + "type": "github" + }, + "original": { + "owner": "hyprwm", + "repo": "hyprgraphics", + "type": "github" + } + }, + "hyprland": { + "inputs": { + "aquamarine": "aquamarine", + "hyprcursor": "hyprcursor", + "hyprgraphics": "hyprgraphics", + "hyprland-guiutils": "hyprland-guiutils", + "hyprland-protocols": "hyprland-protocols", + "hyprlang": "hyprlang", + "hyprutils": "hyprutils", + "hyprwayland-scanner": "hyprwayland-scanner", + "hyprwire": "hyprwire", + "nixpkgs": "nixpkgs", + "pre-commit-hooks": "pre-commit-hooks", + "systems": "systems", + "xdph": "xdph" + }, + "locked": { + "lastModified": 1772833450, + "narHash": "sha256-XuuvhTD/72mH8MBncTeOyN0JzLCtwav7lkwBQlIofd4=", + "owner": "hyprwm", + "repo": "Hyprland", + "rev": "4152ac76d0813d9d0f67d2f04653a13fa6e17433", + "type": "github" + }, + "original": { + "owner": "hyprwm", + "repo": "Hyprland", + "type": "github" + } + }, + "hyprland-guiutils": { + "inputs": { + "aquamarine": [ + "hyprland", + "aquamarine" + ], + "hyprgraphics": [ + "hyprland", + "hyprgraphics" + ], + "hyprlang": [ + "hyprland", + "hyprlang" + ], + "hyprtoolkit": "hyprtoolkit", + "hyprutils": [ + "hyprland", + "hyprutils" + ], + "hyprwayland-scanner": [ + "hyprland", + "hyprwayland-scanner" + ], + "nixpkgs": [ + "hyprland", + "nixpkgs" + ], + "systems": [ + "hyprland", + "systems" + ] + }, + "locked": { + "lastModified": 1767023960, + "narHash": "sha256-R2HgtVS1G3KSIKAQ77aOZ+Q0HituOmPgXW9nBNkpp3Q=", + "owner": "hyprwm", + "repo": "hyprland-guiutils", + "rev": "c2e906261142f5dd1ee0bfc44abba23e2754c660", + "type": "github" + }, + "original": { + "owner": "hyprwm", + "repo": "hyprland-guiutils", + "type": "github" + } + }, + "hyprland-protocols": { + "inputs": { + "nixpkgs": [ + "hyprland", + "nixpkgs" + ], + "systems": [ + "hyprland", + "systems" + ] + }, + "locked": { + "lastModified": 1765214753, + "narHash": "sha256-P9zdGXOzToJJgu5sVjv7oeOGPIIwrd9hAUAP3PsmBBs=", + "owner": "hyprwm", + "repo": "hyprland-protocols", + "rev": "3f3860b869014c00e8b9e0528c7b4ddc335c21ab", + "type": "github" + }, + "original": { + "owner": "hyprwm", + "repo": "hyprland-protocols", + "type": "github" + } + }, + "hyprlang": { + "inputs": { + "hyprutils": [ + "hyprland", + "hyprutils" + ], + "nixpkgs": [ + "hyprland", + "nixpkgs" + ], + "systems": [ + "hyprland", + "systems" + ] + }, + "locked": { + "lastModified": 1771866172, + "narHash": "sha256-fYFoXhQLrm1rD8vSFKQBOEX4OGCuJdLt1amKfHd5GAw=", + "owner": "hyprwm", + "repo": "hyprlang", + "rev": "0b219224910e7642eb0ed49f0db5ec3d008e3e41", + "type": "github" + }, + "original": { + "owner": "hyprwm", + "repo": "hyprlang", + "type": "github" + } + }, + "hyprtoolkit": { + "inputs": { + "aquamarine": [ + "hyprland", + "hyprland-guiutils", + "aquamarine" + ], + "hyprgraphics": [ + "hyprland", + "hyprland-guiutils", + "hyprgraphics" + ], + "hyprlang": [ + "hyprland", + "hyprland-guiutils", + "hyprlang" + ], + "hyprutils": [ + "hyprland", + "hyprland-guiutils", + "hyprutils" + ], + "hyprwayland-scanner": [ + "hyprland", + "hyprland-guiutils", + "hyprwayland-scanner" + ], + "nixpkgs": [ + "hyprland", + "hyprland-guiutils", + "nixpkgs" + ], + "systems": [ + "hyprland", + "hyprland-guiutils", + "systems" + ] + }, + "locked": { + "lastModified": 1764592794, + "narHash": "sha256-7CcO+wbTJ1L1NBQHierHzheQGPWwkIQug/w+fhTAVuU=", + "owner": "hyprwm", + "repo": "hyprtoolkit", + "rev": "5cfe0743f0e608e1462972303778d8a0859ee63e", + "type": "github" + }, + "original": { + "owner": "hyprwm", + "repo": "hyprtoolkit", + "type": "github" + } + }, + "hyprutils": { + "inputs": { + "nixpkgs": [ + "hyprland", + "nixpkgs" + ], + "systems": [ + "hyprland", + "systems" + ] + }, + "locked": { + "lastModified": 1771271487, + "narHash": "sha256-41gEiUS0Pyw3L/ge1l8MXn61cK14VAhgWB/JV8s/oNI=", + "owner": "hyprwm", + "repo": "hyprutils", + "rev": "340a792e3b3d482c4ae5f66d27a9096bdee6d76d", + "type": "github" + }, + "original": { + "owner": "hyprwm", + "repo": "hyprutils", + "type": "github" + } + }, + "hyprwayland-scanner": { + "inputs": { + "nixpkgs": [ + "hyprland", + "nixpkgs" + ], + "systems": [ + "hyprland", + "systems" + ] + }, + "locked": { + "lastModified": 1770501770, + "narHash": "sha256-NWRM6+YxTRv+bT9yvlhhJ2iLae1B1pNH3mAL5wi2rlQ=", + "owner": "hyprwm", + "repo": "hyprwayland-scanner", + "rev": "0bd8b6cde9ec27d48aad9e5b4deefb3746909d40", + "type": "github" + }, + "original": { + "owner": "hyprwm", + "repo": "hyprwayland-scanner", + "type": "github" + } + }, + "hyprwire": { + "inputs": { + "hyprutils": [ + "hyprland", + "hyprutils" + ], + "nixpkgs": [ + "hyprland", + "nixpkgs" + ], + "systems": [ + "hyprland", + "systems" + ] + }, + "locked": { + "lastModified": 1771606233, + "narHash": "sha256-F3PLUqQ/TwgR70U+UeOqJnihJZ2EuunzojYC4g5xHr0=", + "owner": "hyprwm", + "repo": "hyprwire", + "rev": "06c7f1f8c4194786c8400653c4efc49dc14c0f3a", + "type": "github" + }, + "original": { + "owner": "hyprwm", + "repo": "hyprwire", + "type": "github" + } + }, + "nixpkgs": { + "locked": { + "lastModified": 1772198003, + "narHash": "sha256-I45esRSssFtJ8p/gLHUZ1OUaaTaVLluNkABkk6arQwE=", + "owner": "NixOS", + "repo": "nixpkgs", + "rev": "dd9b079222d43e1943b6ebd802f04fd959dc8e61", + "type": "github" + }, + "original": { + "owner": "NixOS", + "ref": "nixos-unstable", + "repo": "nixpkgs", + "type": "github" + } + }, + "nixpkgs-stable": { + "locked": { + "lastModified": 1767313136, + "narHash": "sha256-16KkgfdYqjaeRGBaYsNrhPRRENs0qzkQVUooNHtoy2w=", + "owner": "NixOS", + "repo": "nixpkgs", + "rev": "ac62194c3917d5f474c1a844b6fd6da2db95077d", + "type": "github" + }, + "original": { + "owner": "NixOS", + "ref": "nixos-25.05", + "repo": "nixpkgs", + "type": "github" + } + }, + "nixpkgs_2": { + "locked": { + "lastModified": 1772624091, + "narHash": "sha256-QKyJ0QGWBn6r0invrMAK8dmJoBYWoOWy7lN+UHzW1jc=", + "owner": "NixOS", + "repo": "nixpkgs", + "rev": "80bdc1e5ce51f56b19791b52b2901187931f5353", + "type": "github" + }, + "original": { + "owner": "NixOS", + "ref": "nixos-unstable", + "repo": "nixpkgs", + "type": "github" + } + }, + "pre-commit-hooks": { + "inputs": { + "flake-compat": "flake-compat", + "gitignore": "gitignore", + "nixpkgs": [ + "hyprland", + "nixpkgs" + ] + }, + "locked": { + "lastModified": 1772024342, + "narHash": "sha256-+eXlIc4/7dE6EcPs9a2DaSY3fTA9AE526hGqkNID3Wg=", + "owner": "cachix", + "repo": "git-hooks.nix", + "rev": "6e34e97ed9788b17796ee43ccdbaf871a5c2b476", + "type": "github" + }, + "original": { + "owner": "cachix", + "repo": "git-hooks.nix", + "type": "github" + } + }, + "root": { + "inputs": { + "catppuccin": "catppuccin", + "emacs-overlay": "emacs-overlay", + "home-manager": "home-manager", + "hyprland": "hyprland", + "nixpkgs": "nixpkgs_2", + "zen-browser": "zen-browser" + } + }, + "systems": { + "locked": { + "lastModified": 1689347949, + "narHash": "sha256-12tWmuL2zgBgZkdoB6qXZsgJEH9LR3oUgpaQq2RbI80=", + "owner": "nix-systems", + "repo": "default-linux", + "rev": "31732fcf5e8fea42e59c2488ad31a0e651500f68", + "type": "github" + }, + "original": { + "owner": "nix-systems", + "repo": "default-linux", + "type": "github" + } + }, + "xdph": { + "inputs": { + "hyprland-protocols": [ + "hyprland", + "hyprland-protocols" + ], + "hyprlang": [ + "hyprland", + "hyprlang" + ], + "hyprutils": [ + "hyprland", + "hyprutils" + ], + "hyprwayland-scanner": [ + "hyprland", + "hyprwayland-scanner" + ], + "nixpkgs": [ + "hyprland", + "nixpkgs" + ], + "systems": [ + "hyprland", + "systems" + ] + }, + "locked": { + "lastModified": 1761431178, + "narHash": "sha256-xzjC1CV3+wpUQKNF+GnadnkeGUCJX+vgaWIZsnz9tzI=", + "owner": "hyprwm", + "repo": "xdg-desktop-portal-hyprland", + "rev": "4b8801228ff958d028f588f0c2b911dbf32297f9", + "type": "github" + }, + "original": { + "owner": "hyprwm", + "repo": "xdg-desktop-portal-hyprland", + "type": "github" + } + }, + "zen-browser": { + "inputs": { + "nixpkgs": [ + "nixpkgs" + ] + }, + "locked": { + "lastModified": 1772685307, + "narHash": "sha256-5xthZHeqwBeXNhnRIlxnCuaZLky0SZ6vQsxtd+eqhTU=", + "owner": "youwen5", + "repo": "zen-browser-flake", + "rev": "dc92d88524ee83308795bc90f6a9f1d965265aaa", + "type": "github" + }, + "original": { + "owner": "youwen5", + "repo": "zen-browser-flake", + "type": "github" + } + } + }, + "root": "root", + "version": 7 +} diff --git a/Droidnix/generated/hyprland/keyboard_binds/top.nix b/Droidnix/generated/hyprland/keyboard_binds/top.nix index 903b1cd61..de5058c6c 100644 --- a/Droidnix/generated/hyprland/keyboard_binds/top.nix +++ b/Droidnix/generated/hyprland/keyboard_binds/top.nix @@ -1,7 +1,13 @@ { config, pkgs, lib, user, inputs, ... }: +let + # Read the contents of the bindings.conf file + bindingsContent = builtins.readFile ./assets/hyprland/conf/bindings.conf; + # Create a configuration file from the bindings content + configFile = pkgs.writeText "hyprland.conf" bindingsContent; +in { - imports = [ - # No subfolders to import - ]; - # .. put any code here + wayland.windowManager.hyprland = { + enable = true; # Enable Hyprland as the window manager + config = configFile; # Use the generated configuration file + }; } diff --git a/Droidnix/generated/hyprland/top.nix b/Droidnix/generated/hyprland/top.nix index 51affd0d0..f850bc95f 100644 --- a/Droidnix/generated/hyprland/top.nix +++ b/Droidnix/generated/hyprland/top.nix @@ -10,5 +10,71 @@ ./task_window_workspace_switcher/top.nix ./window_rules/top.nix ]; - # .. put any code here + + # 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/top.nix b/Droidnix/generated/top.nix index c4d0cb844..43a8d7e54 100644 --- a/Droidnix/generated/top.nix +++ b/Droidnix/generated/top.nix @@ -13,13 +13,3 @@ ) ]; } - -{ config, pkgs, lib, user, inputs, ... }: -{ - imports = [ - ./hyprland/top.nix - ./mangowc/top.nix - ./system/top.nix - ]; - # .. put any code here -}