diff --git a/Droidnix/README.html b/Droidnix/README.html index 55d6f4b59..32aca9916 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,113 +204,112 @@

Table of Contents

-
-

Shortcuts

-
+
+

Shortcuts

+

Introduction The Assets Folder @@ -326,26 +325,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: @@ -358,9 +357,9 @@ The Droidnix repository is organized into two main parts:

-
-

Root Level

-
+
+

Root Level

+
  • flake.nix is the entry point and imports:
      @@ -371,16 +370,16 @@ 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.

-
-

First Setup

-
+
+

First Setup

+
  1. Clone this repository.
  2. Run the setup script: ./setup_droid.
  3. @@ -410,9 +409,9 @@ The .assets/ folder contains all static files, such as configs, scr This section contains the Org blocks for tangling Nix code into the generated folders.

-
-

flake.nix

-
+
+

flake.nix

+

The Nix flake definition for Droidnix.

@@ -467,11 +466,8 @@ The Nix flake definition for Droidnix. }) flatpak.nixosModules."nix-flatpak" ./generated/hosts/traveldroid/host.nix - - - + ./generated/users/henrov.nix ]; - specialArgs = { inherit flakeRoot; inherit home-manager import-tree stylix hyprland zen-browser; @@ -484,9 +480,9 @@ The Nix flake definition for Droidnix.
-
-

generated/hosts/traveldroid/host.nix

-
+
+

generated/hosts/traveldroid/host.nix

+
{ lib, config, pkgs, flakeRoot, import-tree, home-manager, ... }:
 
@@ -494,12 +490,8 @@ let
   hostname = "traveldroid";
 
   modulesPath = "${flakeRoot}/generated/modules/${hostname}";
-  usersPath   = "${flakeRoot}/generated/users";
-
   hostModules = import-tree modulesPath;
-  globalUsers = import-tree usersPath;
-
-  allModules = hostModules.imports ++ globalUsers.imports;
+  allModules = hostModules.imports ;
 
 in
 {
@@ -542,9 +534,9 @@ in
 
-
-

generated/hosts/traveldroid/hardware-configuration.nix

-
+
+

generated/hosts/traveldroid/hardware-configuration.nix

+
  1. Boot into NixOS Live ISO or your installed system.
  2. Open a terminal.
  3. @@ -602,9 +594,9 @@ in
-
-

generated/hosts/traveldroid/boot.nix

-
+
+

generated/hosts/traveldroid/boot.nix

+
{ config, pkgs, lib, flakeRoot, ... }:
 
@@ -656,17 +648,17 @@ in
 
-
-

Following are the imported modules

+
+

Following are the imported modules

-
-

generated/traveldroid/modules/apps

-
+
+

generated/traveldroid/modules/apps

+
-
-

generated/modules/traveldroid/apps/2_b_installed.nix

-
+
+

generated/modules/traveldroid/apps/2_b_installed.nix

+

This installs a list of apps

@@ -774,9 +766,9 @@ in {
-
-

generated/assets/2_b_installed.conf

-
+
+

generated/assets/2_b_installed.conf

+

This is a list of additional apps to install

@@ -828,9 +820,9 @@ com.todoist.Todoist
-
-

generated/modules/traveldroid/apps/kitty.nix

-
+
+

generated/modules/traveldroid/apps/kitty.nix

+

This file sets up Kitty terminal

@@ -888,9 +880,9 @@ in
-
-

generated/modules/traveldroid/apps/starship.nix

-
+
+

generated/modules/traveldroid/apps/starship.nix

+

This file sets up starship prompt

@@ -929,9 +921,9 @@ in
-
-

.config/starship.toml

-
+
+

.config/starship.toml

+

These are config files for .config

@@ -1220,9 +1212,9 @@ crust = "#181926"
-
-

generated/modules/traveldroid/apps/thunar.nix

-
+
+

generated/modules/traveldroid/apps/thunar.nix

+

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

@@ -1262,9 +1254,9 @@ in
-
-

generated/modules/traveldroid/apps/wofi.nix

-
+
+

generated/modules/traveldroid/apps/wofi.nix

+

This is the install for Wofi, the launcher

@@ -1297,9 +1289,9 @@ in
-
-

.config/wofi/config

-
+
+

.config/wofi/config

+

These are config files for .config/wofi

@@ -1346,9 +1338,9 @@ prompt = >
-
-

.config/wofi/style.css

-
+
+

.config/wofi/style.css

+

These are config files for .config/wofi

@@ -1437,9 +1429,9 @@ These are config files for .config/wofi
-
-

generated/modules/traveldroid/apps/zenbrowser.nix

-
+
+

generated/modules/traveldroid/apps/zenbrowser.nix

+

This installs zen browser

@@ -1459,9 +1451,9 @@ in
-
-

generated/modules/traveldroid/apps/zsh.nix

-
+
+

generated/modules/traveldroid/apps/zsh.nix

+

This sets up the zsh in the terminal

@@ -1524,9 +1516,9 @@ in
-
-

=generated/.config/zsh/.zshrc

-
+
+

=generated/.config/zsh/.zshrc

+

This sets up the zsh in the terminal

@@ -1547,9 +1539,9 @@ fi
-
-

generated/modules/traveldroid/apps/emacs/emacs.nix

-
+
+

generated/modules/traveldroid/apps/emacs/emacs.nix

+

This installs emacs

@@ -1645,9 +1637,9 @@ in
-
-

generated/.config/emacs/early-init.el

-
+
+

generated/.config/emacs/early-init.el

+

This contaions emacs

@@ -1748,9 +1740,9 @@ package-archive-priorities '(("gnu" . 99)
-
-

generated/.config/emacs/init.el

-
+
+

generated/.config/emacs/init.el

+

This contaions emacs

@@ -2161,13 +2153,13 @@ the top of the file."
-
-

generated/modules/traveldroid/desktop

-
+
+

generated/modules/traveldroid/desktop

+
-
-

generated/modules/traveldroid/desktop/fonts.nix

-
+
+

generated/modules/traveldroid/desktop/fonts.nix

+

This file installs and configures fonts

@@ -2185,9 +2177,9 @@ This file installs and configures fonts
-
-

generated/modules/traveldroid/desktop/gtk.nix

-
+
+

generated/modules/traveldroid/desktop/gtk.nix

+

Setting up GTK

@@ -2213,9 +2205,9 @@ in
-
-

generated/modules/traveldroid/desktop/hyprland.nix

-
+
+

generated/modules/traveldroid/desktop/hyprland.nix

+

Setting up Hyprland

@@ -2262,9 +2254,9 @@ in
-
-

.config/hypr/animations.conf

-
+
+

.config/hypr/animations.conf

+

These are config files for .config/hypr

@@ -2285,9 +2277,9 @@ animations {
-
-

.config/hypr/behaviour.conf

-
+
+

.config/hypr/behaviour.conf

+

These are config files for .config/hypr

@@ -2329,9 +2321,9 @@ misc {
-
-

.config/hypr/bindings.conf

-
+
+

.config/hypr/bindings.conf

+

These are config files for .config/hypr

@@ -2494,9 +2486,9 @@ bind = $mainMod, W, exec, zen
-
-

.config/hypr/exec-once.conf

-
+
+

.config/hypr/exec-once.conf

+

These are config files for .config/hypr

@@ -2512,9 +2504,9 @@ exec-once = sh ~/Wallpapers/scripts/wallpaper.sh &
-
-

.config/hypr/hypridle.conf

-
+
+

.config/hypr/hypridle.conf

+

These are config files for .config/hypr

@@ -2539,9 +2531,9 @@ listener {
-
-

.config/hypr/hyprland.conf

-
+
+

.config/hypr/hyprland.conf

+

These are config files for .config/hypr

@@ -2588,9 +2580,9 @@ misc {
-
-

.config/hypr/hyprlock.conf

-
+
+

.config/hypr/hyprlock.conf

+

These are config files for .config/hypr

@@ -2631,9 +2623,9 @@ label {
-
-

.config/hypr/layer-rules.conf

-
+
+

.config/hypr/layer-rules.conf

+

These are config files for .config/hypr

@@ -2648,9 +2640,9 @@ layerrule = blur on, ignore_alpha 1, match:namespace swaync-notification-window
-
-

.config/hypr/layout.conf

-
+
+

.config/hypr/layout.conf

+

These are config files for .config/hypr

@@ -2660,9 +2652,9 @@ These are config files for .config/hypr
-
-

.config/hypr/monitor-rules.conf

-
+
+

.config/hypr/monitor-rules.conf

+

These are config files for .config/hypr

@@ -2673,9 +2665,9 @@ monitor=DP-1,3840x1080@144,1920x0,1
-
-

.config/hypr/scripts/layout-selector.sh

-
+
+

.config/hypr/scripts/layout-selector.sh

+

These are config files for .config/hypr/scripts

@@ -2718,9 +2710,9 @@ hyprctl dispatch oSD "Layout: $LAYOUT_NAME" 2000
-
-

.config/hypr/theming.css

-
+
+

.config/hypr/theming.css

+

These are config files for .config/hypr

@@ -2769,9 +2761,9 @@ decoration {
-
-

.config/hypr/window-rules.conf

-
+
+

.config/hypr/window-rules.conf

+

These are config files for .config/hypr

@@ -2800,9 +2792,9 @@ windowrulev2 = floatclass:Wofi,opacity:0.9,blur:15
-
-

.config/hypr/workspace-rules.conf

-
+
+

.config/hypr/workspace-rules.conf

+

These are config files for .config/hypr

@@ -2828,9 +2820,9 @@ workspace = 10
-
-

generated/modules/traveldroid/desktop/wallpaper.nix

-
+
+

generated/modules/traveldroid/desktop/wallpaper.nix

+

Setting up wallpaper engine + wallpaper gui

@@ -2924,9 +2916,9 @@ in
-
-

generated/modules/traveldroid/desktop/stylix.nix

-
+
+

generated/modules/traveldroid/desktop/stylix.nix

+
{ lib, config, pkgs, flakeRoot, stylix, ... }:
 
@@ -3013,9 +3005,9 @@ in
 
-
-

.config/stylix/stylix.conf

-
+
+

.config/stylix/stylix.conf

+

These are config files for .config/stylix

@@ -3052,9 +3044,9 @@ icons = {
-
-

.config/stylix/palette.json

-
+
+

.config/stylix/palette.json

+

These are config files for .config/stylix

@@ -3084,9 +3076,9 @@ These are config files for .config/stylix
-
-

.config/stylix/palette.html

-
+
+

.config/stylix/palette.html

+

These are config files for .config/stylix

@@ -3164,9 +3156,9 @@ These are config files for .config/stylix
-
-

generated/modules/traveldroid/desktop/waybar.nix

-
+
+

generated/modules/traveldroid/desktop/waybar.nix

+

This file installs and configures waybar

@@ -3223,9 +3215,9 @@ in
-
-

.config/waybar/config

-
+
+

.config/waybar/config

+

These are config files for waybar

@@ -3359,9 +3351,9 @@ These are config files for waybar
-
-

.config/waybar/style.css

-
+
+

.config/waybar/style.css

+

These are config files for waybar

@@ -3595,9 +3587,9 @@ window#waybar {
-
-

.config/waybar/scripts/bluetooth-status.sh

-
+
+

.config/waybar/scripts/bluetooth-status.sh

+

These are config files for waybar

@@ -3624,9 +3616,9 @@ echo "$bt_connected"
-
-

.config/waypaper/config.ini

-
+
+

.config/waypaper/config.ini

+

These are config files for waypaper

@@ -3663,9 +3655,9 @@ keybindings = ~/.config/waypaper/keybindings.ini
-
-

generated/modules/traveldroid/desktop/wayland.nix

-
+
+

generated/modules/traveldroid/desktop/wayland.nix

+
{ lib, config, pkgs, ... }:
 
@@ -3695,9 +3687,9 @@ keybindings = ~/.config/waypaper/keybindings.ini
 
-
-

generated/modules/traveldroid/desktop/xdg.nix

-
+
+

generated/modules/traveldroid/desktop/xdg.nix

+

This sets the XDG implementation

@@ -3751,13 +3743,13 @@ in
-
-

generated/modules/traveldroid/system

-
+
+

generated/modules/traveldroid/system

+
-
-

generated/modules/traveldroid/system/bluetooth.nix

-
+
+

generated/modules/traveldroid/system/bluetooth.nix

+
{ lib, config, pkgs, home-manager, ... }:
 
@@ -3797,9 +3789,9 @@ in
 
-
-

generated/modules/traveldroid/system/dbus.nix

-
+
+

generated/modules/traveldroid/system/dbus.nix

+

This sets the dbus implementation

@@ -3826,9 +3818,9 @@ This sets the dbus implementation
-
-

generated/modules/traveldroid/system/login-tuigreet.nix

-
+
+

generated/modules/traveldroid/system/login-tuigreet.nix

+

This sets up tuigreeter which is not fancy but imo fits the aesthetic I am aiming for

@@ -3882,9 +3874,9 @@ in
-
-

generated/modules/traveldroid/system/networking.nix

-
+
+

generated/modules/traveldroid/system/networking.nix

+

This sets the networking.

@@ -3948,9 +3940,9 @@ This sets the networking.
-
-

generated/modules/traveldroid/system/nix.nix

-
+
+

generated/modules/traveldroid/system/nix.nix

+
{ lib, config, ... }:
 
@@ -3967,66 +3959,13 @@ This sets the networking.
 
-
-

generated/users

-
+
+

generated/users

+
-
-

generated/parked/users/copy_config_2_config.nix

-
-

-This copies stuff to the user home-folder -

-
-
{ config, pkgs, lib, flakeRoot, ... }:
-
-let
-  username  = config.users.users.defaultUser or "henrov";
-  configDir   = "/home/${username}/.config";
-  assetPath = "${flakeRoot}/.config";
-in
-{
-  environment.systemPackages = [ pkgs.rsync ];
-
-  systemd.services.copyAssets = {
-    description = "Copy assets to ${username}'s .config directory";
-    wantedBy = [ "multi-user.target" ];
-
-    # oneshot service runs once at boot
-    serviceConfig.Type = "oneshot";
-
-    # Always use /bin/sh -c for multi-line commands
-    serviceConfig.ExecStart = ''
-      /bin/sh -c '
-        echo "Copying assets from ${assetPath} to ${configDir} ..."
-
-        if [ ! -d "${assetPath}" ]; then
-          echo "ERROR: ${assetPath} does not exist"
-          exit 1
-        fi
-
-        mkdir -p "${configDir}"
-        chown -R u+rwx ${username}:${username} "${configDir}"
-
-        ${pkgs.rsync}/bin/rsync -a --no-owner --no-group "${assetPath}/" "${configDir}/"
-
-        # Fix .config permissions
-        mkdir -p "${configDir}"
-        chown -R ${username}:${username} "${configDir}"
-        chmod -R u+rwx "${configDir}"
-
-        echo "Done copying config files."
-      '
-    '';
-  };
-}
-
-
-
-
-
-

generated/users/henrov.nix

-
+
+

generated/users/henrov.nix

+

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

@@ -4084,9 +4023,9 @@ in

These are all the prepared config files

-
-

.config/waybar/style.css

-
+
+

.config/waybar/style.css

+

These are config files for .config/waybar

@@ -4320,9 +4259,9 @@ window#waybar {
-
-

.config/waypaper/config.ini

-
+
+

.config/waypaper/config.ini

+

These are config files for .config/waypaper

@@ -4359,9 +4298,9 @@ keybindings = ~/.config/waypaper/keybindings.ini
-
-

.config/zed/settings.json

-
+
+

.config/zed/settings.json

+

These are config files for .config/zed

@@ -4401,7 +4340,7 @@ These are config files for .config/zed

Author: Henro Veijer

-

Created: 2026-03-31 Tue 18:08

+

Created: 2026-03-31 Tue 18:18

Validate

diff --git a/Droidnix/README.org b/Droidnix/README.org index ef1c0400e..15f86b803 100644 --- a/Droidnix/README.org +++ b/Droidnix/README.org @@ -118,11 +118,8 @@ The Nix flake definition for Droidnix. }) flatpak.nixosModules."nix-flatpak" ./generated/hosts/traveldroid/host.nix - - - + ./generated/users/henrov.nix ]; - specialArgs = { inherit flakeRoot; inherit home-manager import-tree stylix hyprland zen-browser; @@ -141,12 +138,8 @@ let hostname = "traveldroid"; modulesPath = "${flakeRoot}/generated/modules/${hostname}"; - usersPath = "${flakeRoot}/generated/users"; - hostModules = import-tree modulesPath; - globalUsers = import-tree usersPath; - - allModules = hostModules.imports ++ globalUsers.imports; + allModules = hostModules.imports ; in { @@ -3311,53 +3304,6 @@ This sets the networking. * generated/users -** =generated/parked/users/copy_config_2_config.nix= -This copies stuff to the user home-folder -#+BEGIN_SRC nix :tangle generated/parked/users/copy_config_2_config.nix :noweb yes :mkdirp yes :eval never -{ config, pkgs, lib, flakeRoot, ... }: - -let - username = config.users.users.defaultUser or "henrov"; - configDir = "/home/${username}/.config"; - assetPath = "${flakeRoot}/.config"; -in -{ - environment.systemPackages = [ pkgs.rsync ]; - - systemd.services.copyAssets = { - description = "Copy assets to ${username}'s .config directory"; - wantedBy = [ "multi-user.target" ]; - - # oneshot service runs once at boot - serviceConfig.Type = "oneshot"; - - # Always use /bin/sh -c for multi-line commands - serviceConfig.ExecStart = '' - /bin/sh -c ' - echo "Copying assets from ${assetPath} to ${configDir} ..." - - if [ ! -d "${assetPath}" ]; then - echo "ERROR: ${assetPath} does not exist" - exit 1 - fi - - mkdir -p "${configDir}" - chown -R u+rwx ${username}:${username} "${configDir}" - - ${pkgs.rsync}/bin/rsync -a --no-owner --no-group "${assetPath}/" "${configDir}/" - - # Fix .config permissions - mkdir -p "${configDir}" - chown -R ${username}:${username} "${configDir}" - chmod -R u+rwx "${configDir}" - - echo "Done copying config files." - ' - ''; - }; -} -#+END_SRC - ** =generated/users/henrov.nix= This is the default user, just search and replace henrov another name if you want to change #+BEGIN_SRC nix :tangle generated/users/henrov.nix :noweb yes :mkdirp yes :eval never diff --git a/Droidnix/flake.nix b/Droidnix/flake.nix index 831181741..799599b24 100644 --- a/Droidnix/flake.nix +++ b/Droidnix/flake.nix @@ -48,11 +48,8 @@ }) flatpak.nixosModules."nix-flatpak" ./generated/hosts/traveldroid/host.nix - - - + ./generated/users/henrov.nix ]; - specialArgs = { inherit flakeRoot; inherit home-manager import-tree stylix hyprland zen-browser; diff --git a/Droidnix/generated/hosts/traveldroid/host.nix b/Droidnix/generated/hosts/traveldroid/host.nix index b83bbabc6..ad60e160b 100644 --- a/Droidnix/generated/hosts/traveldroid/host.nix +++ b/Droidnix/generated/hosts/traveldroid/host.nix @@ -4,12 +4,8 @@ let hostname = "traveldroid"; modulesPath = "${flakeRoot}/generated/modules/${hostname}"; - usersPath = "${flakeRoot}/generated/users"; - hostModules = import-tree modulesPath; - globalUsers = import-tree usersPath; - - allModules = hostModules.imports ++ globalUsers.imports; + allModules = hostModules.imports ; in {