+
generated/.config/zsh/.zshrc
+
This sets up the zsh in the terminal
@@ -7546,7 +7546,7 @@ cd() {
Author: Henro Veijer
-
Created: 2026-05-04 ma 20:46
+
Created: 2026-05-05 di 11:13
Validate
diff --git a/Droidnix/README.org b/Droidnix/README.org
index 32b2c7e9d..c487eed53 100644
--- a/Droidnix/README.org
+++ b/Droidnix/README.org
@@ -221,7 +221,7 @@ The Nix flake definition for Droidnix.
mutableConfigPath = "${flakeRoot}/generated/.config";
in {
nixosConfigurations = {
- traveldroid = nixpkgs.lib.nixosSystem {
+ mymachine = nixpkgs.lib.nixosSystem {
inherit system;
modules = [
({ ... }: {
@@ -266,9 +266,9 @@ The Nix flake definition for Droidnix.
}
#+END_SRC
-** =generated/modules/traveldroid/system/colors.nix=
+** =generated/modules/system/colors.nix=
Setting the colors for Droidnix.
-#+BEGIN_SRC nix :tangle generated/modules/traveldroid/system/colors.nix :noweb yes :mkdirp yes :eval never
+#+BEGIN_SRC nix :tangle generated/modules/system/colors.nix :noweb yes :mkdirp yes :eval never
{ lib, config, pkgs, flakeRoot, ... }:
let
colors = {
@@ -449,7 +449,7 @@ in
let
hostname = "traveldroid";
- modulesPath = "${flakeRoot}/generated/modules/${hostname}";
+ modulesPath = "${flakeRoot}/generated/modules";
hostModules = import-tree modulesPath;
allModules = hostModules.imports;
in
@@ -500,11 +500,11 @@ in
}
#+END_SRC
-* generated/traveldroid/modules/apps
+* generated/modules/apps
-** =generated/modules/traveldroid/apps/2_b_installed.nix=
+** =generated/modules/apps/2_b_installed.nix=
This installs a list of apps
-#+BEGIN_SRC nix :tangle generated/modules/traveldroid/apps/2_b_installed.nix :noweb yes :mkdirp yes :eval never
+#+BEGIN_SRC nix :tangle generated/modules/apps/2_b_installed.nix :noweb yes :mkdirp yes :eval never
{ lib, config, pkgs, flakeRoot, ... }:
let
@@ -606,9 +606,9 @@ in {
}
#+END_SRC
-** =generated/modules/traveldroid/apps/emacs/emacs.nix=
+** =generated/modules/apps/emacs/emacs.nix=
This installs emacs
-#+BEGIN_SRC nix :tangle generated/modules/traveldroid/apps/emacs/emacs.nix :noweb yes :mkdirp yes :eval never
+#+BEGIN_SRC nix :tangle generated/modules/apps/emacs/emacs.nix :noweb yes :mkdirp yes :eval never
{ config, pkgs, lib, flakeRoot, ... }:
let
@@ -697,9 +697,9 @@ in
}
#+END_SRC
-** =generated/modules/traveldroid/apps/kdeconnect.nix=
+** =generated/modules/apps/kdeconnect.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/modules/traveldroid/apps/kdeconnect.nix :noweb yes :mkdirp yes :eval never
+#+BEGIN_SRC nix :tangle generated/modules/apps/kdeconnect.nix :noweb yes :mkdirp yes :eval never
{ config, pkgs, ... }:
let
username = config.defaultUser or "henrov";
@@ -721,9 +721,9 @@ in
}
#+END_SRC
-** =generated/modules/traveldroid/apps/kitty.nix=
+** =generated/modules/apps/kitty.nix=
This file sets up Kitty terminal
-#+BEGIN_SRC nix :tangle generated/modules/traveldroid/apps/kitty.nix :noweb yes :mkdirp yes :eval never
+#+BEGIN_SRC nix :tangle generated/modules/apps/kitty.nix :noweb yes :mkdirp yes :eval never
{ lib, pkgs, config, flakeRoot, ... }:
let
@@ -769,9 +769,9 @@ in
}
#+END_SRC
-** =generated/modules/traveldroid/apps/stackstorage.nix=
+** =generated/modules/apps/stackstorage.nix=
Installs the TransIP Stackstorage Appimage
-#+BEGIN_SRC nix :tangle generated/modules/traveldroid/apps/stackstorage.nix :noweb yes :mkdirp yes :eval never
+#+BEGIN_SRC nix :tangle generated/modules/apps/stackstorage.nix :noweb yes :mkdirp yes :eval never
{ config, lib, pkgs, ... }:
with lib;
let
@@ -789,9 +789,9 @@ in {
}
#+END_SRC
-** =generated/modules/traveldroid/apps/starship.nix=
+** =generated/modules/apps/starship.nix=
This file sets up starship prompt
-#+BEGIN_SRC nix :tangle generated/modules/traveldroid/apps/starship.nix :noweb yes :mkdirp yes :eval never
+#+BEGIN_SRC nix :tangle generated/modules/apps/starship.nix :noweb yes :mkdirp yes :eval never
{ lib, config, pkgs, flakeRoot, ... }:
let
@@ -826,9 +826,9 @@ in
-** =generated/modules/traveldroid/apps/thunar.nix=
+** =generated/modules/apps/thunar.nix=
This is top file of this level which contains just an import statement for all relevant files and/or the subfolder in this folder
-#+BEGIN_SRC nix :tangle generated/modules/traveldroid/apps/thunar.nix :noweb yes :mkdirp yes :eval never
+#+BEGIN_SRC nix :tangle generated/modules/apps/thunar.nix :noweb yes :mkdirp yes :eval never
{ pkgs, config, lib, ... }:
let
@@ -869,9 +869,9 @@ in
#+END_SRC
-** =generated/modules/traveldroid/apps/wofi.nix=
+** =generated/modules/apps/wofi.nix=
This is the install for Wofi, the launcher
-#+BEGIN_SRC nix :tangle generated/modules/traveldroid/apps/wofi.nix :noweb yes :mkdirp yes :eval never
+#+BEGIN_SRC nix :tangle generated/modules/apps/wofi.nix :noweb yes :mkdirp yes :eval never
{ lib, config, pkgs, flakeRoot, ... }:
let
@@ -902,9 +902,9 @@ in
-** =generated/modules/traveldroid/apps/zenbrowser.nix=
+** =generated/modules/apps/zenbrowser.nix=
This installs zen browser
-#+BEGIN_SRC nix :tangle generated/modules/traveldroid/apps/zenbrowser.nix :noweb yes :mkdirp yes :eval never
+#+BEGIN_SRC nix :tangle generated/modules/apps/zenbrowser.nix :noweb yes :mkdirp yes :eval never
{ config, pkgs, lib, zen-browser, ... }:
let
@@ -918,9 +918,9 @@ in
}
#+END_SRC
-** =generated/modules/traveldroid/apps/zeditor.nix=
+** =generated/modules/apps/zeditor.nix=
This sets Zed Editor
-#+BEGIN_SRC nix :tangle generated/modules/traveldroid/apps/zeditor.nix :noweb yes :mkdirp yes :eval never
+#+BEGIN_SRC nix :tangle generated/modules/apps/zeditor.nix :noweb yes :mkdirp yes :eval never
{ lib, config, pkgs, flakeRoot, ... }:
let
username = config.defaultUser or "henrov";
@@ -987,9 +987,9 @@ in
}
#+END_SRC
-** =generated/modules/traveldroid/apps/zsh.nix=
+** =generated/modules/apps/zsh.nix=
This sets up the zsh in the terminal
-#+BEGIN_SRC nix :tangle generated/modules/traveldroid/apps/zsh.nix :noweb yes :mkdirp yes :eval never
+#+BEGIN_SRC nix :tangle generated/modules/apps/zsh.nix :noweb yes :mkdirp yes :eval never
{ lib, config, pkgs, flakeRoot, ... }:
let
@@ -1096,11 +1096,11 @@ in
}
#+END_SRC
-* generated/modules/traveldroid/desktop
+* generated/modules/desktop
-** =generated/modules/traveldroid/desktop/fonts.nix=
+** =generated/modules/desktop/fonts.nix=
This file installs and configures fonts
-#+BEGIN_SRC nix :tangle generated/modules/traveldroid/desktop/fonts.nix :noweb yes :mkdirp yes :eval never
+#+BEGIN_SRC nix :tangle generated/modules/desktop/fonts.nix :noweb yes :mkdirp yes :eval never
{ lib, pkgs, config, ... }:
{
@@ -1112,9 +1112,9 @@ This file installs and configures fonts
}
#+END_SRC
-** =generated/modules/traveldroid/desktop/gtk.nix=
+** =generated/modules/desktop/gtk.nix=
Setting up GTK
-#+BEGIN_SRC nix :tangle generated/modules/traveldroid/desktop/gtk.nix :noweb yes :mkdirp yes :eval never
+#+BEGIN_SRC nix :tangle generated/modules/desktop/gtk.nix :noweb yes :mkdirp yes :eval never
{ pkgs, config, lib, ... }:
let
@@ -1134,9 +1134,9 @@ in
}
#+END_SRC
-** =generated/modules/traveldroid/desktop/hyprland.nix=
+** =generated/modules/desktop/hyprland.nix=
Setting up Hyprland
-#+BEGIN_SRC nix :tangle generated/modules/traveldroid/desktop/hyprland.nix :noweb yes :mkdirp yes :eval never
+#+BEGIN_SRC nix :tangle generated/modules/desktop/hyprland.nix :noweb yes :mkdirp yes :eval never
{ lib, config, pkgs, flakeRoot, home-manager, inputs, ... }:
let
username = config.defaultUser or "henrov";
@@ -1175,8 +1175,8 @@ in
}
#+END_SRC
-** =generated/modules/traveldroid/desktop/stylix.nix=
-#+BEGIN_SRC nix :tangle generated/modules/traveldroid/desktop/stylix.nix :noweb yes :mkdirp yes :eval never
+** =generated/modules/desktop/stylix.nix=
+#+BEGIN_SRC nix :tangle generated/modules/desktop/stylix.nix :noweb yes :mkdirp yes :eval never
{ lib, config, pkgs, flakeRoot, stylix, ... }:
let
@@ -1216,7 +1216,7 @@ in
stylix = {
enable = true;
- base16Scheme = "${flakeRoot}/assets/traveldroid/theming/stylix/catppuccin-mocha.yaml";
+ base16Scheme = "${flakeRoot}/assets/mymachine/theming/stylix/catppuccin-mocha.yaml";
polarity = "dark";
targets = {
@@ -1260,15 +1260,15 @@ in
}
#+END_SRC
-** =generated/modules/traveldroid/desktop/wallpaper.nix=
+** =generated/modules/desktop/wallpaper.nix=
Setting up wallpaper engine + wallpaper gui
-#+BEGIN_SRC nix :tangle generated/modules/traveldroid/desktop/wallpaper.nix :noweb yes :mkdirp yes :eval never
+#+BEGIN_SRC nix :tangle generated/modules/desktop/wallpaper.nix :noweb yes :mkdirp yes :eval never
{ lib, config, pkgs, flakeRoot, ... }:
let
username = config.defaultUser or "henrov";
homeDir = "/home/${username}";
- wallpaperSrc = "${flakeRoot}/assets/traveldroid/Wallpapers";
+ wallpaperSrc = "${flakeRoot}/assets/mymachine/Wallpapers";
wallpaperDst = "${homeDir}/Wallpapers";
sysName = "awww";
assetPath = "${flakeRoot}/generated/.config/${sysName}";
@@ -1462,9 +1462,9 @@ case "$WS" in
esac
#+END_SRC
-** =generated/modules/traveldroid/desktop/waybar.nix=
+** =generated/modules/desktop/waybar.nix=
This file installs and configures waybar
-#+BEGIN_SRC nix :tangle generated/modules/traveldroid/desktop/waybar.nix :noweb yes :mkdirp yes :eval never
+#+BEGIN_SRC nix :tangle generated/modules/desktop/waybar.nix :noweb yes :mkdirp yes :eval never
{ lib, config, pkgs, flakeRoot, ... }:
let
username = config.defaultUser or "henrov";
@@ -1506,8 +1506,8 @@ in
-** =generated/modules/traveldroid/desktop/wayland.nix=
-#+BEGIN_SRC nix :tangle generated/modules/traveldroid/desktop/wayland.nix :noweb yes :mkdirp yes :eval never
+** =generated/modules/desktop/wayland.nix=
+#+BEGIN_SRC nix :tangle generated/modules/desktop/wayland.nix :noweb yes :mkdirp yes :eval never
{ lib, config, pkgs, ... }:
{
@@ -1534,9 +1534,9 @@ in
}
#+END_SRC
-** =generated/modules/traveldroid/desktop/xdg.nix=
+** =generated/modules/desktop/xdg.nix=
This sets the XDG implementation
-#+BEGIN_SRC nix :tangle generated/modules/traveldroid/desktop/xdg.nix :noweb yes :mkdirp yes :eval never
+#+BEGIN_SRC nix :tangle generated/modules/desktop/xdg.nix :noweb yes :mkdirp yes :eval never
# --- This file has been auto-generated. For permanent changes alter the appropriate block in the README.org. ---
{ lib, config, pkgs, flakeRoot, ... }:
@@ -1663,10 +1663,10 @@ in
}
#+END_SRC
-* generated/modules/traveldroid/system
+* generated/modules/system
-** =generated/modules/traveldroid/system/audio.nix=
-#+BEGIN_SRC nix :tangle generated/modules/traveldroid/system/audio.nix :noweb yes :mkdirp yes :eval never
+** =generated/modules/system/audio.nix=
+#+BEGIN_SRC nix :tangle generated/modules/system/audio.nix :noweb yes :mkdirp yes :eval never
{ lib, config, pkgs, ... }:
{
############################
@@ -1696,9 +1696,9 @@ in
}
#+END_SRC
-** =generated/modules/traveldroid/system/avahi.nix=
+** =generated/modules/system/avahi.nix=
Avahi helps discovering services
-#+BEGIN_SRC nix :tangle generated/modules/traveldroid/system/avahi.nix :noweb yes :mkdirp yes :eval never
+#+BEGIN_SRC nix :tangle generated/modules/system/avahi.nix :noweb yes :mkdirp yes :eval never
{ ... }:
{
services.avahi = {
@@ -1712,9 +1712,9 @@ Avahi helps discovering services
}
#+END_SRC
-** =generated/modules/traveldroid/system/bluetooth.nix=
+** =generated/modules/system/bluetooth.nix=
Installing Bluetooth services and supporting aps
-#+BEGIN_SRC nix :tangle generated/modules/traveldroid/system/bluetooth.nix :noweb yes :mkdirp yes :eval never
+#+BEGIN_SRC nix :tangle generated/modules/system/bluetooth.nix :noweb yes :mkdirp yes :eval never
{ lib, config, pkgs, home-manager, ... }:
let
@@ -1735,9 +1735,9 @@ in
}
#+END_SRC
-** =generated/modules/traveldroid/system/copy_scripts.nix=
+** =generated/modules/system/copy_scripts.nix=
This copies any scripts from /generated/.config/shared//scripts to ~/.config/shared/scripts and makes any .sh files executable.
-#+BEGIN_SRC nix :tangle generated/modules/traveldroid/system/copy_scripts.nix :noweb yes :mkdirp yes :eval never
+#+BEGIN_SRC nix :tangle generated/modules/system/copy_scripts.nix :noweb yes :mkdirp yes :eval never
{ lib, config, pkgs, flakeRoot, ... }:
let
username = config.defaultUser or "henrov";
@@ -1772,9 +1772,9 @@ in
}
#+END_SRC
-** =generated/modules/traveldroid/system/dbus.nix=
+** =generated/modules/system/dbus.nix=
This sets the dbus implementation
-#+BEGIN_SRC nix :tangle generated/modules/traveldroid/system/dbus.nix :noweb yes :mkdirp yes :eval never
+#+BEGIN_SRC nix :tangle generated/modules/system/dbus.nix :noweb yes :mkdirp yes :eval never
{ config, pkgs, ... }:
{
@@ -1795,9 +1795,9 @@ This sets the dbus implementation
}
#+END_SRC
-** =generated/modules/traveldroid/system/firewall.nix=
+** =generated/modules/system/firewall.nix=
This sets the firewall.
-#+BEGIN_SRC nix :tangle generated/modules/traveldroid/system/firewall.nix :noweb yes :mkdirp yes :eval never
+#+BEGIN_SRC nix :tangle generated/modules/system/firewall.nix :noweb yes :mkdirp yes :eval never
{ pkgs, ... }:
{
@@ -1872,9 +1872,9 @@ This sets the firewall.
}
#+END_SRC
-** =generated/modules/traveldroid/system/hypridle.nix=
+** =generated/modules/system/hypridle.nix=
This installs hypridle
-#+BEGIN_SRC nix :tangle generated/modules/traveldroid/system/hypridle.nix :noweb yes :mkdirp yes :eval never
+#+BEGIN_SRC nix :tangle generated/modules/system/hypridle.nix :noweb yes :mkdirp yes :eval never
{ lib, config, pkgs, flakeRoot, ... }:
let
@@ -1924,9 +1924,9 @@ in
}
#+END_SRC
-** =generated/modules/traveldroid/system/hyprlock.nix=
+** =generated/modules/system/hyprlock.nix=
This installs hyprlock
-#+BEGIN_SRC nix :tangle generated/modules/traveldroid/system/hyprlock.nix :noweb yes :mkdirp yes :eval never
+#+BEGIN_SRC nix :tangle generated/modules/system/hyprlock.nix :noweb yes :mkdirp yes :eval never
{ lib, config, pkgs, flakeRoot, ... }:
let
@@ -1977,9 +1977,9 @@ in
}
#+END_SRC
-** =generated/modules/traveldroid/system/gnome-keyring.nix=
+** =generated/modules/system/gnome-keyring.nix=
This sets the dbus implementation
-#+BEGIN_SRC nix :tangle generated/modules/traveldroid/system/gnome-keyring.nix :noweb yes :mkdirp yes :eval never
+#+BEGIN_SRC nix :tangle generated/modules/system/gnome-keyring.nix :noweb yes :mkdirp yes :eval never
{ config, pkgs, ... }:
{
@@ -2021,9 +2021,9 @@ This sets the dbus implementation
}
#+END_SRC
-** =generated/modules/traveldroid/system/login-tuigreet.nix=
+** =generated/modules/system/login-tuigreet.nix=
This sets up tuigreeter which is not fancy but imho fits the aesthetic I am aiming for
-#+BEGIN_SRC nix :tangle generated/modules/traveldroid/system/login-tuigreet.nix :noweb yes :mkdirp yes :eval never
+#+BEGIN_SRC nix :tangle generated/modules/system/login-tuigreet.nix :noweb yes :mkdirp yes :eval never
{ config, pkgs, lib, ... }:
let
tuigreetBin = "${pkgs.tuigreet}/bin/tuigreet";
@@ -2065,9 +2065,9 @@ in
}
#+END_SRC
-** =generated/modules/traveldroid/system/networking.nix=
+** =generated/modules/system/networking.nix=
This sets the networking.
-#+BEGIN_SRC nix :tangle generated/modules/traveldroid/system/networking.nix :noweb yes :mkdirp yes :eval never
+#+BEGIN_SRC nix :tangle generated/modules/system/networking.nix :noweb yes :mkdirp yes :eval never
{ lib, config, pkgs, ... }:
{
@@ -2110,8 +2110,8 @@ This sets the networking.
}
#+END_SRC
-** =generated/modules/traveldroid/system/numlock-check.nix=
-#+BEGIN_SRC nix :tangle generated/modules/traveldroid/system/numlock-check.nix :noweb yes :mkdirp yes :eval never
+** =generated/modules/system/numlock-check.nix=
+#+BEGIN_SRC nix :tangle generated/modules/system/numlock-check.nix :noweb yes :mkdirp yes :eval never
{ lib, config, pkgs, flakeRoot, ... }:
let
username = config.defaultUser or "henrov";
@@ -2151,8 +2151,8 @@ in
}
#+END_SRC
-** =generated/modules/traveldroid/system/nix.nix=
-#+BEGIN_SRC nix :tangle generated/modules/traveldroid/system/nix.nix :noweb yes :mkdirp yes :eval never
+** =generated/modules/system/nix.nix=
+#+BEGIN_SRC nix :tangle generated/modules/system/nix.nix :noweb yes :mkdirp yes :eval never
{ lib, config, ... }:
{
nix.settings = {
@@ -2172,9 +2172,9 @@ in
}
#+END_SRC
-** =generated/modules/traveldroid/system/printing.nix=
+** =generated/modules/system/printing.nix=
This sets the dbus implementation
-#+BEGIN_SRC nix :tangle generated/modules/traveldroid/system/printing.nix :noweb yes :mkdirp yes :eval never
+#+BEGIN_SRC nix :tangle generated/modules/system/printing.nix :noweb yes :mkdirp yes :eval never
{ lib, config, pkgs, ... }:
{
@@ -2192,9 +2192,9 @@ This sets the dbus implementation
}
#+END_SRC
-** =generated/modules/traveldroid/system/quickshell.nix=
+** =generated/modules/system/quickshell.nix=
This sets the quickshell implementation
-#+BEGIN_SRC nix :tangle generated/modules/traveldroid/system/quickshell.nix :noweb yes :mkdirp yes :eval never
+#+BEGIN_SRC nix :tangle generated/modules/system/quickshell.nix :noweb yes :mkdirp yes :eval never
{ pkgs, lib, config, flakeRoot, quickshell, ... }:
let
username = config.defaultUser or "henrov";
@@ -2234,9 +2234,9 @@ in
}
#+END_SRC
-** =generated/modules/traveldroid/system/swaync.nix=
+** =generated/modules/system/swaync.nix=
This sets the dbus implementation
-#+BEGIN_SRC nix :tangle generated/modules/traveldroid/system/swaync.nix :noweb yes :mkdirp yes :eval never
+#+BEGIN_SRC nix :tangle generated/modules/system/swaync.nix :noweb yes :mkdirp yes :eval never
{ lib, config, pkgs, flakeRoot, ... }:
let
username = config.defaultUser or "henrov";
@@ -4646,7 +4646,7 @@ ShellRoot {
cmd: [
"sh",
"-c",
- `echo "${sudoPassword}" | sudo -S nixos-rebuild switch --flake .#traveldroid`
+ `echo "${sudoPassword}" | sudo -S nixos-rebuild switch --flake .#mymachine`
],
cwd: "/home/henrov/Repos/nixos/Droidnix"
},
diff --git a/Droidnix/flake.nix b/Droidnix/flake.nix
index 75bfbe71f..9850823ad 100644
--- a/Droidnix/flake.nix
+++ b/Droidnix/flake.nix
@@ -38,7 +38,7 @@
mutableConfigPath = "${flakeRoot}/generated/.config";
in {
nixosConfigurations = {
- traveldroid = nixpkgs.lib.nixosSystem {
+ mymachine = nixpkgs.lib.nixosSystem {
inherit system;
modules = [
({ ... }: {
diff --git a/Droidnix/generated/.config/quickshell/updater/shell.qml b/Droidnix/generated/.config/quickshell/updater/shell.qml
index 73d85c5a0..374d510f9 100644
--- a/Droidnix/generated/.config/quickshell/updater/shell.qml
+++ b/Droidnix/generated/.config/quickshell/updater/shell.qml
@@ -39,7 +39,7 @@ ShellRoot {
cmd: [
"sh",
"-c",
- `echo "${sudoPassword}" | sudo -S nixos-rebuild switch --flake .#traveldroid`
+ `echo "${sudoPassword}" | sudo -S nixos-rebuild switch --flake .#mymachine`
],
cwd: "/home/henrov/Repos/nixos/Droidnix"
},
diff --git a/Droidnix/generated/hosts/traveldroid/host.nix b/Droidnix/generated/hosts/traveldroid/host.nix
index 5f4e422b3..ec731bdde 100644
--- a/Droidnix/generated/hosts/traveldroid/host.nix
+++ b/Droidnix/generated/hosts/traveldroid/host.nix
@@ -3,7 +3,7 @@
let
hostname = "traveldroid";
- modulesPath = "${flakeRoot}/generated/modules/${hostname}";
+ modulesPath = "${flakeRoot}/generated/modules";
hostModules = import-tree modulesPath;
allModules = hostModules.imports;
in
diff --git a/Droidnix/generated/modules/apps/2_b_installed.nix b/Droidnix/generated/modules/apps/2_b_installed.nix
new file mode 100644
index 000000000..442a6f26a
--- /dev/null
+++ b/Droidnix/generated/modules/apps/2_b_installed.nix
@@ -0,0 +1,100 @@
+# --- This file has been auto-generated. For permanent changes alter the appropriate block in the README.org. ---
+{ lib, config, pkgs, flakeRoot, ... }:
+
+let
+ #################################
+ # FILE
+ #################################
+ confPath = "${flakeRoot}/generated/assets/2_b_installed.conf";
+ raw = builtins.readFile confPath;
+ lines = lib.splitString "\n" raw;
+
+ #################################
+ # CLEAN LINE
+ #################################
+ cleanLine = line:
+ let
+ noCR = lib.replaceStrings [ "\r" ] [ "" ] line;
+ noInlineComment = lib.head (lib.splitString "#" noCR);
+ in
+ lib.strings.trim noInlineComment;
+
+ #################################
+ # PARSE SECTION
+ #################################
+ parseSection = section:
+ let
+ result =
+ builtins.foldl'
+ (acc: line:
+ let
+ l = lib.strings.trim line;
+ in
+ if l == section then
+ acc // { active = true; }
+ else if lib.hasPrefix "#" l then
+ acc // { active = false; }
+ else if acc.active then
+ acc // { entries = acc.entries ++ [ l ]; }
+ else
+ acc
+ )
+ { active = false; entries = []; }
+ lines;
+ in
+ builtins.filter (l: l != "") (map cleanLine result.entries);
+
+ #################################
+ # NIX PACKAGES
+ #################################
+ packageEntries = parseSection "#packages";
+
+ resolvePkg = name:
+ let
+ parts = lib.splitString "." name;
+ found = lib.attrByPath parts null pkgs;
+ in
+ if found == null then
+ throw ''
+ packages.nix: package not found
+ Token: ${name}
+ File : ${confPath}
+ ''
+ else
+ found;
+
+ packages = map resolvePkg packageEntries;
+
+ #################################
+ # FLATPAKS
+ #################################
+ flatpakEntries = parseSection "#flatpaks";
+
+in {
+ #################################
+ # Allow unfree
+ #################################
+ nixpkgs.config.allowUnfree = true;
+
+ #################################
+ # System packages (Nix)
+ #################################
+ environment.systemPackages = packages;
+
+ #################################
+ # Flatpak setup
+ #################################
+ services.flatpak.enable = true;
+
+ services.flatpak.remotes = [
+ {
+ name = "flathub";
+ location = "https://flathub.org/repo/flathub.flatpakrepo";
+ }
+ ];
+
+ #################################
+ # Flatpak apps
+ #################################
+ services.flatpak.packages = flatpakEntries;
+}
diff --git a/Droidnix/generated/modules/apps/emacs/emacs.nix b/Droidnix/generated/modules/apps/emacs/emacs.nix
new file mode 100644
index 000000000..359d581b7
--- /dev/null
+++ b/Droidnix/generated/modules/apps/emacs/emacs.nix
@@ -0,0 +1,87 @@
+# --- This file has been auto-generated. For permanent changes alter the appropriate block in the README.org. ---
+{ config, pkgs, lib, flakeRoot, ... }:
+
+let
+ username = config.defaultUser or "henrov";
+
+ assetPath = "${flakeRoot}/generated/.config/emacs";
+
+ # Emacs package with Tree-sitter support
+ emacsPkg = pkgs.emacs-pgtk.override { withTreeSitter = true; };
+
+ # Extra packages for Emacs via Home Manager
+ emacsExtraPackages = epkgs: [
+ epkgs.manualPackages.treesit-grammars.with-all-grammars
+ epkgs.nerd-icons
+ epkgs.doom-modeline
+ epkgs.diminish
+ epkgs.eldoc
+ epkgs.pulsar
+ epkgs.which-key
+ epkgs.expreg
+ epkgs.vundo
+ epkgs.puni
+ epkgs.avy
+ epkgs.consult
+ epkgs.vertico
+ epkgs.marginalia
+ epkgs.crux
+ epkgs.magit
+ epkgs.nerd-icons-corfu
+ epkgs.corfu
+ epkgs.cape
+ epkgs.orderless
+ epkgs.yasnippet
+ epkgs.yasnippet-snippets
+ epkgs.rg
+ epkgs.exec-path-from-shell
+ epkgs.eat
+ epkgs.rust-mode
+ epkgs.rustic
+ epkgs.nix-mode
+ epkgs.hcl-mode
+ epkgs.shell-pop
+ epkgs.envrc
+ epkgs.nixpkgs-fmt
+ epkgs.f
+ epkgs.gptel
+ epkgs.catppuccin-theme
+ epkgs.eldoc-box
+ epkgs.sideline
+ epkgs.sideline-flymake
+ epkgs.sideline-eglot
+ ];
+in
+{
+ # System-wide installation
+ environment.systemPackages = [
+ emacsPkg
+ ];
+
+ # Home Manager user-specific configuration for your default user
+ home-manager.users = {
+ ${username} = {
+ home.sessionVariables = {
+ EDITOR = "emacs";
+ XDG_SCREENSHOTS_DIR = "~/screenshots";
+ };
+
+ programs.emacs = {
+ enable = true;
+ package = emacsPkg;
+ extraPackages = emacsExtraPackages;
+ };
+
+ home.file = {
+ ".emacs.d/early-init.el" = {
+ source = "${assetPath}/early-init.el";
+ force = true; # <-- allow overwrite
+ };
+ ".emacs.d/init.el" = {
+ source = "${assetPath}/init.el";
+ force = true; # <-- allow overwrite
+ };
+ };
+ };
+ };
+}
diff --git a/Droidnix/generated/modules/apps/kdeconnect.nix b/Droidnix/generated/modules/apps/kdeconnect.nix
new file mode 100644
index 000000000..c4004e9e4
--- /dev/null
+++ b/Droidnix/generated/modules/apps/kdeconnect.nix
@@ -0,0 +1,20 @@
+# --- This file has been auto-generated. For permanent changes alter the appropriate block in the README.org. ---
+{ config, pkgs, ... }:
+let
+ username = config.defaultUser or "henrov";
+in
+{
+ environment.systemPackages = with pkgs; [
+ kdePackages.kdeconnect-kde
+ ];
+
+ systemd.user.services.kdeconnect = {
+ enable = true;
+ description = "KDE Connect daemon";
+ wantedBy = ["default.target"];
+ serviceConfig = {
+ ExecStart = "${pkgs.kdePackages.kdeconnect-kde}/bin/kdeconnectd";
+ Restart = "on-failure";
+ };
+ };
+}
diff --git a/Droidnix/generated/modules/apps/kitty.nix b/Droidnix/generated/modules/apps/kitty.nix
new file mode 100644
index 000000000..cff7c665a
--- /dev/null
+++ b/Droidnix/generated/modules/apps/kitty.nix
@@ -0,0 +1,44 @@
+# --- This file has been auto-generated. For permanent changes alter the appropriate block in the README.org. ---
+{ lib, pkgs, config, flakeRoot, ... }:
+
+let
+ username = config.defaultUser or "henrov";
+ extraConfigFile = "${flakeRoot}/generated/.config/kitty/extra.conf";
+ extraConfig =
+ if builtins.pathExists extraConfigFile
+ then builtins.readFile extraConfigFile
+ else "";
+in
+{
+ #################################
+ # System-wide install
+ #################################
+ environment.systemPackages = [
+ pkgs.kitty
+ ];
+ #################################
+ # Home Manager
+ #################################
+ home-manager.users = {
+ "${username}" = {
+ programs.kitty = {
+ enable = true;
+ settings = {
+ confirm_os_window_close = lib.mkForce 0;
+ dynamic_background_opacity = lib.mkForce true;
+ enable_audio_bell = lib.mkForce false;
+ mouse_hide_wait = lib.mkForce "-1.0";
+ window_padding_width = lib.mkForce 10;
+ background_opacity = lib.mkForce "0.5";
+ background_blur = lib.mkForce 5;
+ notify_on_command_complete = lib.mkForce "never";
+ };
+ extraConfig = ''
+ ${extraConfig}
+ # Theme
+ include themes/Catppuccin-Mocha.conf
+ '';
+ };
+ };
+ };
+}
diff --git a/Droidnix/generated/modules/apps/stackstorage.nix b/Droidnix/generated/modules/apps/stackstorage.nix
new file mode 100644
index 000000000..0c6f12e13
--- /dev/null
+++ b/Droidnix/generated/modules/apps/stackstorage.nix
@@ -0,0 +1,16 @@
+# --- This file has been auto-generated. For permanent changes alter the appropriate block in the README.org. ---
+{ config, lib, pkgs, ... }:
+with lib;
+let
+ transip-stack = pkgs.appimageTools.wrapType2 {
+ pname = "transip-stack";
+ version = "latest";
+ src = pkgs.fetchurl {
+ url = "https://filehosting-client.transip.nl/packages/stack-linux-latest-x86_64.AppImage";
+ sha256 = "1cmwc3mfpi7n3ga25p19pmsjmvkiy8hk4s4mxdsxkprw2vvrhwd7";
+ };
+ extraPkgs = pkgsFinal: with pkgsFinal; [ fuse ];
+ };
+in {
+ environment.systemPackages = [ transip-stack ];
+}
diff --git a/Droidnix/generated/modules/apps/starship.nix b/Droidnix/generated/modules/apps/starship.nix
new file mode 100644
index 000000000..62624c989
--- /dev/null
+++ b/Droidnix/generated/modules/apps/starship.nix
@@ -0,0 +1,31 @@
+# --- This file has been auto-generated. For permanent changes alter the appropriate block in the README.org. ---
+{ lib, config, pkgs, flakeRoot, ... }:
+
+let
+ # Default username fallback
+ username = config.defaultUser or "henrov";
+
+ # Path to the starship config in assets
+ starshipConfSrc = "${flakeRoot}/generated/.config/starship.toml";
+in
+{
+ #################################
+ # Install Starship system-wide
+ #################################
+ environment.systemPackages = [ pkgs.starship ];
+
+ #################################
+ # Home Manager user configuration
+ #################################
+ home-manager.users = {
+ ${username} = {
+
+ home.file = {
+ ".config/starship.toml" = {
+ text = builtins.readFile "${starshipConfSrc}";
+ force = true;
+ };
+ };
+ };
+ };
+}
diff --git a/Droidnix/generated/modules/apps/thunar.nix b/Droidnix/generated/modules/apps/thunar.nix
new file mode 100644
index 000000000..fa2061880
--- /dev/null
+++ b/Droidnix/generated/modules/apps/thunar.nix
@@ -0,0 +1,38 @@
+# --- This file has been auto-generated. For permanent changes alter the appropriate block in the README.org. ---
+{ pkgs, config, lib, ... }:
+
+let
+ # Resolve the default username from host config
+ username = config.defaultUser or "henrov";
+in
+{
+ ############################
+ # System-level packages
+ ############################
+ environment.systemPackages = with pkgs; [
+ thunar # main file manager
+ thunar-archive-plugin # zip, tar, rar, 7z support
+ thunar-volman # auto-mount removable drives
+ gvfs # support for external drives and network shares
+ xarchiver # optional GUI archive manager
+ tumbler # Showing thumbnails
+ libmtp
+ mtpfs
+ jmtpfs
+ ];
+
+ ############################
+ # Home Manager user-level configuration
+ ############################
+ # Direct assignment to the user avoids recursiveUpdate issues
+ home-manager.users."${username}" = {
+ home.stateVersion = "26.05"; # required
+
+ home.sessionVariables = {
+ FILE_MANAGER = "thunar";
+ USERNAME = username;
+ };
+ };
+ # Enable gvfs as a service
+ services.gvfs.enable = true;
+}
diff --git a/Droidnix/generated/modules/apps/wofi.nix b/Droidnix/generated/modules/apps/wofi.nix
new file mode 100644
index 000000000..d01a21ad0
--- /dev/null
+++ b/Droidnix/generated/modules/apps/wofi.nix
@@ -0,0 +1,27 @@
+# --- This file has been auto-generated. For permanent changes alter the appropriate block in the README.org. ---
+{ lib, config, pkgs, flakeRoot, ... }:
+
+let
+ username = config.defaultUser or "henrov";
+ sysName = "wofi";
+ assetPath = "${flakeRoot}/generated/.config/${sysName}";
+in
+{
+ environment.systemPackages = [ pkgs.wofi ];
+
+ home-manager.users = {
+ ${username} = {
+ home.activation.MakeWofiMutable = {
+ after = [ "writeBoundary" ];
+ before = [];
+ data = ''
+ rm -rf $HOME/.config/${sysName}
+ mkdir -p $HOME/.config/${sysName}
+ cp -r ${assetPath}/* $HOME/.config/${sysName}/
+ chmod -R u+w $HOME/.config/${sysName}/
+ find $HOME/.config/${sysName}/ -name "*.sh" -exec chmod +x {} \;
+ '';
+ };
+ };
+ };
+}
diff --git a/Droidnix/generated/modules/apps/zeditor.nix b/Droidnix/generated/modules/apps/zeditor.nix
new file mode 100644
index 000000000..f9666380d
--- /dev/null
+++ b/Droidnix/generated/modules/apps/zeditor.nix
@@ -0,0 +1,65 @@
+# --- This file has been auto-generated. For permanent changes alter the appropriate block in the README.org. ---
+{ lib, config, pkgs, flakeRoot, ... }:
+let
+ username = config.defaultUser or "henrov";
+ sysName = "zed";
+ assetPath = "${flakeRoot}/generated/.config/${sysName}";
+in
+{
+ environment.systemPackages = [ pkgs.zed-editor
+ pkgs.nil
+ pkgs.basedpyright
+ pkgs.ruff
+ pkgs.black
+ pkgs.rustc
+ pkgs.cargo
+ pkgs.rust-analyzer
+ pkgs.rustfmt
+ pkgs.gopls
+ pkgs.go
+ pkgs.vscode-langservers-extracted
+ pkgs.yaml-language-server
+ pkgs.prettier
+ pkgs.sqls
+ pkgs.sqlite
+ pkgs.postgresql
+ pkgs.pandoc
+ ];
+
+ environment.sessionVariables = {
+ EDITOR = "zeditor";
+ VISUAL = "zeditor";
+ };
+
+ xdg.mime.defaultApplications = {
+ "text/plain" = "dev.zed.Zed.desktop";
+ "text/x-lua" = "dev.zed.Zed.desktop";
+ "text/x-sql" = "dev.zed.Zed.desktop";
+ "text/x-org" = "dev.zed.Zed.desktop";
+ "text/x-script.python" = "dev.zed.Zed.desktop";
+ "text/x-shellscript" = "dev.zed.Zed.desktop";
+ "text/x-csrc" = "dev.zed.Zed.desktop";
+ "text/x-chdr" = "dev.zed.Zed.desktop";
+ "text/x-rust" = "dev.zed.Zed.desktop";
+ "text/x-toml" = "dev.zed.Zed.desktop";
+ "text/x-yaml" = "dev.zed.Zed.desktop";
+ "text/x-json" = "dev.zed.Zed.desktop";
+ "application/json" = "dev.zed.Zed.desktop";
+ "text/markdown" = "dev.zed.Zed.desktop";
+ "text/x-nix" = "dev.zed.Zed.desktop";
+ };
+
+ home-manager.users.${username} = {
+ home.activation.MakeZedMutable = {
+ after = [ "writeBoundary" ];
+ before = [];
+ data = ''
+ rm -rf $HOME/.config/${sysName}
+ mkdir -p $HOME/.config/${sysName}
+ cp -r ${assetPath}/* $HOME/.config/${sysName}/
+ chmod -R u+w $HOME/.config/${sysName}/
+ find $HOME/.config/${sysName}/ -name "*.sh" -exec chmod +x {} \;
+ '';
+ };
+ };
+}
diff --git a/Droidnix/generated/modules/apps/zenbrowser.nix b/Droidnix/generated/modules/apps/zenbrowser.nix
new file mode 100644
index 000000000..c49cab1f4
--- /dev/null
+++ b/Droidnix/generated/modules/apps/zenbrowser.nix
@@ -0,0 +1,12 @@
+# --- This file has been auto-generated. For permanent changes alter the appropriate block in the README.org. ---
+{ config, pkgs, lib, zen-browser, ... }:
+
+let
+ # Grab the Zen Browser package for this host system
+ zenBrowser = zen-browser.packages.${pkgs.stdenv.hostPlatform.system}.default;
+in
+{
+ environment.systemPackages = [
+ zenBrowser
+ ];
+}
diff --git a/Droidnix/generated/modules/apps/zsh.nix b/Droidnix/generated/modules/apps/zsh.nix
new file mode 100644
index 000000000..d4ca4c2bb
--- /dev/null
+++ b/Droidnix/generated/modules/apps/zsh.nix
@@ -0,0 +1,105 @@
+# --- This file has been auto-generated. For permanent changes alter the appropriate block in the README.org. ---
+{ lib, config, pkgs, flakeRoot, ... }:
+
+let
+ #################################
+ # User config
+ #################################
+ username = config.defaultUser or "henrov";
+ generatedZsh = "${flakeRoot}/generated/.config/zsh/.zshrc";
+
+ #################################
+ # Alias parsing
+ #################################
+ aliasFile = "${flakeRoot}/generated/assets/aliases.conf";
+ content = builtins.readFile aliasFile;
+
+ lines =
+ lib.filter (l: l != "")
+ (map (l:
+ let
+ noComment = builtins.head (lib.splitString "#" l);
+ in lib.trim noComment
+ ) (lib.splitString "\n" content));
+
+ parseLine = line:
+ let
+ parts = lib.splitString "=" line;
+ in
+ if lib.length parts < 2 then null else {
+ name = lib.trim (lib.head parts);
+ value = lib.trim (lib.concatStringsSep "=" (lib.tail parts));
+ };
+
+ parsed =
+ lib.filter (x: x != null)
+ (map parseLine lines);
+
+ functions =
+ lib.concatStringsSep "\n"
+ (map (x: ''
+ ${x.name}() {
+ ${x.value} "$@"
+ }
+ '') parsed);
+
+in
+{
+ #################################
+ # Packages
+ #################################
+ environment.systemPackages = with pkgs; [
+ zsh
+ oh-my-zsh
+ starship
+ zsh-syntax-highlighting
+ ];
+
+ #################################
+ # Zsh config location
+ #################################
+ environment.etc."zshenv".text = ''
+ export ZDOTDIR=$HOME/.config/zsh
+ '';
+
+ #################################
+ # Generated alias functions (system-wide)
+ #################################
+ environment.etc."profile.d/99-alias-functions.sh".text = ''
+ # system-wide functions generated from aliases.conf
+ ${functions}
+ '';
+
+ #################################
+ # Global zshrc
+ #################################
+ environment.etc."zshrc".text = ''
+ export ZSH=${pkgs.oh-my-zsh}/share/oh-my-zsh
+ ZSH_THEME=""
+ plugins=(git sudo extract colored-man-pages command-not-found history docker kubectl)
+
+ source $ZSH/oh-my-zsh.sh
+
+ # Init starship FIRST (prompt)
+ eval "$(starship init zsh)"
+
+ # Load alias functions
+ if [ -f /etc/profile.d/99-alias-functions.sh ]; then
+ source /etc/profile.d/99-alias-functions.sh
+ fi
+
+ # Load optional generated user config
+ [ -f "${generatedZsh}" ] && source "${generatedZsh}"
+
+ # Syntax highlighting MUST be last
+ source ${pkgs.zsh-syntax-highlighting}/share/zsh-syntax-highlighting/zsh-syntax-highlighting.zsh
+ '';
+
+ #################################
+ # Home Manager integration
+ #################################
+ home-manager.users.${username} = {
+ programs.zsh.enable = true;
+ home.file.".config/zsh/.zshrc".source = generatedZsh;
+ };
+}
diff --git a/Droidnix/generated/modules/desktop/fonts.nix b/Droidnix/generated/modules/desktop/fonts.nix
new file mode 100644
index 000000000..47b5f64fc
--- /dev/null
+++ b/Droidnix/generated/modules/desktop/fonts.nix
@@ -0,0 +1,10 @@
+# --- This file has been auto-generated. For permanent changes alter the appropriate block in the README.org. ---
+{ lib, pkgs, config, ... }:
+
+{
+ fonts.packages = with pkgs; [
+ nerd-fonts.iosevka
+ nerd-fonts.fira-code
+ nerd-fonts.jetbrains-mono
+ ];
+}
diff --git a/Droidnix/generated/modules/desktop/gtk.nix b/Droidnix/generated/modules/desktop/gtk.nix
new file mode 100644
index 000000000..fae5ee63e
--- /dev/null
+++ b/Droidnix/generated/modules/desktop/gtk.nix
@@ -0,0 +1,18 @@
+# --- This file has been auto-generated. For permanent changes alter the appropriate block in the README.org. ---
+{ pkgs, config, lib, ... }:
+
+let
+ username = config.defaultUser or "henrov";
+in
+{
+ environment.systemPackages = with pkgs; [
+ gtk3
+ gtk4
+ ];
+
+ home-manager.users."${username}" = {
+ gtk = {
+ enable = true;
+ };
+ };
+}
diff --git a/Droidnix/generated/modules/desktop/hyprland.nix b/Droidnix/generated/modules/desktop/hyprland.nix
new file mode 100644
index 000000000..c9bde5535
--- /dev/null
+++ b/Droidnix/generated/modules/desktop/hyprland.nix
@@ -0,0 +1,37 @@
+# --- This file has been auto-generated. For permanent changes alter the appropriate block in the README.org. ---
+{ lib, config, pkgs, flakeRoot, home-manager, inputs, ... }:
+let
+ username = config.defaultUser or "henrov";
+ sysName = "hypr";
+ assetPath = "${flakeRoot}/generated/.config/${sysName}";
+ hyprlandPkg =
+ pkgs.hyprland or
+ pkgs.hyprland-git or
+ inputs.hyprland.packages.${pkgs.system}.default;
+in
+{
+ # Install Hyprland systemwide
+ programs.hyprland.enable = true;
+ programs.hyprland.withUWSM = true;
+ programs.hyprland.package = hyprlandPkg;
+
+ environment.systemPackages = [ hyprlandPkg ];
+
+ # Home Manager user configuration
+ home-manager.users = {
+ ${username} = {
+
+ home.activation.MakeHyprMutable = {
+ after = [ "writeBoundary" ];
+ before = [];
+ data = ''
+ rm -rf $HOME/.config/${sysName}
+ mkdir -p $HOME/.config/${sysName}
+ cp -r ${assetPath}/* $HOME/.config/${sysName}/
+ chmod -R u+w $HOME/.config/${sysName}/
+ find $HOME/.config/${sysName}/ -name "*.sh" -exec chmod +x {} \;
+ '';
+ };
+ };
+ };
+}
diff --git a/Droidnix/generated/modules/desktop/stylix.nix b/Droidnix/generated/modules/desktop/stylix.nix
new file mode 100644
index 000000000..5a25e1257
--- /dev/null
+++ b/Droidnix/generated/modules/desktop/stylix.nix
@@ -0,0 +1,82 @@
+# --- This file has been auto-generated. For permanent changes alter the appropriate block in the README.org. ---
+{ lib, config, pkgs, flakeRoot, stylix, ... }:
+
+let
+ username = config.defaultUser or "henrov";
+ moduleName = "stylix";
+
+ assetPath = "${flakeRoot}/generated/.config/${moduleName}";
+
+ stylixConfFile = "${assetPath}/stylix.conf";
+ stylixConf =
+ if builtins.pathExists stylixConfFile
+ then builtins.readFile stylixConfFile
+ else "";
+
+ cursorName = "phinger-cursors-light";
+ cursorSize = 24;
+in
+{
+ #################################
+ # Enable Stylix module
+ #################################
+ imports = [
+ stylix.nixosModules.stylix
+ ];
+
+ #################################
+ # System packages
+ #################################
+ environment.systemPackages = [
+ pkgs.feh
+ pkgs.st
+ ];
+
+ #################################
+ # Stylix system config
+ #################################
+ stylix = {
+ enable = true;
+
+ base16Scheme = "${flakeRoot}/assets/mymachine/theming/stylix/catppuccin-mocha.yaml";
+ polarity = "dark";
+
+ targets = {
+ gtk.enable = true;
+ qt.enable = true;
+ };
+
+ cursor = {
+ name = cursorName;
+ package = pkgs.phinger-cursors;
+ size = cursorSize;
+ };
+ };
+
+ #################################
+ # Home Manager
+ #################################
+ home-manager.users = {
+ "${username}" = {
+
+ #################################
+ # ONLY custom file (safe)
+ #################################
+ home.file.".config/stylix/stylix.conf" = {
+ text = stylixConf;
+ force = true;
+ };
+
+ #################################
+ # Environment variables
+ #################################
+ home.sessionVariables = {
+ STYLIX_CONF = "$HOME/.config/stylix/stylix.conf";
+ XCURSOR_THEME = cursorName;
+ XCURSOR_SIZE = toString cursorSize;
+ HYPRCURSOR_THEME = cursorName;
+ HYPRCURSOR_SIZE = toString cursorSize;
+ };
+ };
+ };
+}
diff --git a/Droidnix/generated/modules/desktop/wallpaper.nix b/Droidnix/generated/modules/desktop/wallpaper.nix
new file mode 100644
index 000000000..a48e856e5
--- /dev/null
+++ b/Droidnix/generated/modules/desktop/wallpaper.nix
@@ -0,0 +1,84 @@
+# --- This file has been auto-generated. For permanent changes alter the appropriate block in the README.org. ---
+{ lib, config, pkgs, flakeRoot, ... }:
+
+let
+ username = config.defaultUser or "henrov";
+ homeDir = "/home/${username}";
+ wallpaperSrc = "${flakeRoot}/assets/mymachine/Wallpapers";
+ wallpaperDst = "${homeDir}/Wallpapers";
+ sysName = "awww";
+ assetPath = "${flakeRoot}/generated/.config/${sysName}";
+ randoScript = "${homeDir}/.config/${sysName}/scripts/randomizeWallpapers.sh";
+in
+{
+ # Make bash available
+ environment.systemPackages = [
+ pkgs.bash
+ pkgs.rsync
+ pkgs.jq
+ pkgs.awww
+ pkgs.waypaper pkgs.socat ];
+
+ # Create the copy script using Home Manager, following Waybar style
+ # This can not be done using a prepared script
+ home-manager.users = {
+ ${username} = {
+ home.activation.MakeWallpaperMutable = {
+ after = [ "writeBoundary" ];
+ before = [];
+ data = ''
+ rm -rf $HOME/.config/${sysName}
+ mkdir -p $HOME/.config/${sysName}
+ cp -r ${assetPath}/* $HOME/.config/${sysName}/
+ chmod -R u+w $HOME/.config/${sysName}/
+ find $HOME/.config/${sysName}/ -name "*.sh" -exec chmod +x {} \;
+ '';
+ };
+ home.file = {
+ "copy-wallpapers.sh" = {
+ text = ''
+ #!/run/current-system/sw/bin/bash
+ set -euo pipefail
+ echo "Running as $(whoami)"
+ echo "Copying wallpapers from ${wallpaperSrc} to ${wallpaperDst} ..."
+ if [ ! -d "${wallpaperSrc}" ]; then
+ echo "ERROR: ${wallpaperSrc} does not exist"
+ exit 1
+ fi
+ mkdir -p "${wallpaperDst}"
+ # Simple copy, overwrite everything
+ cp -r "${wallpaperSrc}/." "${wallpaperDst}/"
+ # Fix permissions
+ chmod -R u+rwx "${wallpaperDst}"
+ echo "Done copying wallpapers."
+ '';
+ executable = true;
+ force = true;
+ };
+ };
+ };
+};
+ # User service to run the script that copies the Wallpaperstuff
+ systemd.user.services.copyWallpapers = {
+ description = "Copy wallpapers from repo to ~/Wallpapers";
+ serviceConfig = {
+ Type = "oneshot";
+ ExecStart = "${homeDir}/copy-wallpapers.sh";
+ Restart = "no";
+ WorkingDirectory = homeDir;
+ };
+ wantedBy = [ "default.target" ];
+ };
+
+ # User service to randomize wallpapers
+ systemd.user.services.randomizeWallpapers = {
+ description = "Randomize wallpapers in ~/Wallpapers/pictures";
+ serviceConfig = {
+ Type = "oneshot";
+ ExecStart = "${randoScript}";
+ Restart = "no";
+ WorkingDirectory = homeDir;
+ };
+ wantedBy = [ "default.target" ];
+ };
+}
diff --git a/Droidnix/generated/modules/desktop/waybar.nix b/Droidnix/generated/modules/desktop/waybar.nix
new file mode 100644
index 000000000..d92c70b47
--- /dev/null
+++ b/Droidnix/generated/modules/desktop/waybar.nix
@@ -0,0 +1,38 @@
+# --- This file has been auto-generated. For permanent changes alter the appropriate block in the README.org. ---
+{ lib, config, pkgs, flakeRoot, ... }:
+let
+ username = config.defaultUser or "henrov";
+ sysName = "waybar";
+ assetPath = "${flakeRoot}/generated/.config/${sysName}";
+in
+{
+ environment.systemPackages = [ pkgs.waybar ];
+
+ home-manager.users.${username} = {
+ home.activation.MakeWaybarMutable = {
+ after = [ "writeBoundary" ];
+ before = [];
+ data = ''
+ rm -rf $HOME/.config/${sysName}
+ mkdir -p $HOME/.config/${sysName}
+ cp -r ${assetPath}/* $HOME/.config/${sysName}/
+ chmod -R u+w $HOME/.config/${sysName}/
+ find $HOME/.config/${sysName}/ -name "*.sh" -exec chmod +x {} \;
+ '';
+ };
+ };
+
+ systemd.user.services.waybar = {
+ description = "Waybar for Hyprland";
+ after = [ "graphical-session.target" ];
+ wantedBy = [ "default.target" ];
+ serviceConfig = {
+ ExecStart = "${pkgs.waybar}/bin/waybar";
+ Restart = "always";
+ Environment = ''
+ WAYLAND_DISPLAY=${config.environment.sessionVariables.WAYLAND_DISPLAY or "wayland-0"}
+ XDG_CURRENT_DESKTOP=Hyprland
+ '';
+ };
+ };
+}
diff --git a/Droidnix/generated/modules/desktop/wayland.nix b/Droidnix/generated/modules/desktop/wayland.nix
new file mode 100644
index 000000000..8f64ab119
--- /dev/null
+++ b/Droidnix/generated/modules/desktop/wayland.nix
@@ -0,0 +1,25 @@
+# --- This file has been auto-generated. For permanent changes alter the appropriate block in the README.org. ---
+{ lib, config, pkgs, ... }:
+
+{
+ #################################
+ # Core Wayland packages
+ #################################
+ environment.systemPackages = with pkgs; [
+ wayland
+ wl-clipboard # optional but commonly used for copy/paste
+ ];
+
+ #################################
+ # enable graphics stack
+ #################################
+ hardware.graphics.enable = true;
+
+ #################################
+ # Optional session variables for Wayland
+ #################################
+ environment.sessionVariables = {
+ # Forces some apps to use Wayland
+ NIXOS_OZONE_WL = "1";
+ };
+}
diff --git a/Droidnix/generated/modules/desktop/xdg.nix b/Droidnix/generated/modules/desktop/xdg.nix
new file mode 100644
index 000000000..8eb76357e
--- /dev/null
+++ b/Droidnix/generated/modules/desktop/xdg.nix
@@ -0,0 +1,125 @@
+# --- This file has been auto-generated. For permanent changes alter the appropriate block in the README.org. ---
+# --- This file has been auto-generated. For permanent changes alter the appropriate block in the README.org. ---
+{ lib, config, pkgs, flakeRoot, ... }:
+
+let
+ username = config.defaultUser or "henrov";
+ homeDir = "/home/${username}";
+
+ basePortal = pkgs.xdg-desktop-portal-gtk;
+ hyprlandPortal = pkgs.xdg-desktop-portal-hyprland;
+
+in
+{
+ #################################
+ # XDG Desktop Portals (system)
+ #################################
+ xdg.portal = {
+ enable = true;
+ xdgOpenUsePortal = true;
+
+ extraPortals = [
+ basePortal
+ hyprlandPortal
+ ];
+
+ config = {
+ common = {
+ default = [ "hyprland" "gtk" ];
+ };
+
+ hyprland = {
+ default = [ "hyprland" "gtk" ];
+
+ "org.freedesktop.impl.portal.FileChooser" = [ "gtk" ];
+ "org.freedesktop.impl.portal.Settings" = [ "gtk" ];
+ "org.freedesktop.impl.portal.Screencast" = [ "hyprland" ];
+ "org.freedesktop.impl.portal.Screenshot" = [ "hyprland" ];
+ };
+ };
+ };
+
+ #################################
+ # System packages
+ #################################
+ environment.systemPackages = with pkgs; [
+ basePortal
+ hyprlandPortal
+ xdg-utils
+ ];
+
+ #################################
+ # Home Manager user config
+ #################################
+ home-manager.users.${username} = {
+
+ #################################
+ # XDG user directories
+ #################################
+ xdg.userDirs = {
+ enable = true;
+ createDirectories = true;
+
+ desktop = null;
+ download = "${homeDir}/Downloads";
+ documents = "${homeDir}/Documents";
+ pictures = "${homeDir}/Pictures";
+ music = "${homeDir}/Music";
+ publicShare = "${homeDir}/PublicShare";
+ templates = "${homeDir}/Templates";
+ videos = "${homeDir}/Videos";
+
+ extraConfig = {
+ XDG_PROJECTS_DIR = "${homeDir}/Projects";
+ XDG_WORK_DIR = "${homeDir}/Work";
+ };
+ };
+
+ #################################
+ # MIME applications (FULL TRANSLATION)
+ #################################
+ xdg.mimeApps = {
+ enable = true;
+
+ #################################
+ # Default Applications
+ #################################
+ defaultApplications = {
+ # Web links
+ "x-scheme-handler/http" = "zen.desktop";
+ "x-scheme-handler/https" = "zen.desktop";
+ "x-scheme-handler/chrome" = "zen.desktop";
+
+ # Web / HTML
+ "text/html" = "zen.desktop";
+
+ "application/xhtml+xml" = "zen.desktop";
+ "application/x-extension-html" = "zen.desktop";
+ "application/x-extension-htm" = "zen.desktop";
+ "application/x-extension-shtml" = "zen.desktop";
+ "application/x-extension-xhtml" = "zen.desktop";
+ "application/x-extension-xht" = "zen.desktop";
+
+ # Text files → Zed
+ "text/plain" = "dev.zed.Zed.desktop";
+
+ # Shell scripts (you had dual intent here)
+ "application/x-shellscript" = "kitty-open.desktop";
+ };
+
+ #################################
+ # Added Associations (fallback / "Open With")
+ #################################
+ associations.added = {
+ "text/plain" = [
+ "dev.zed.Zed.desktop"
+ ];
+
+ "application/x-shellscript" = [
+ "dev.zed.Zed.desktop"
+ "kitty-open.desktop"
+ ];
+ };
+ };
+ };
+}
diff --git a/Droidnix/generated/modules/system/audio.nix b/Droidnix/generated/modules/system/audio.nix
new file mode 100644
index 000000000..9bee776fc
--- /dev/null
+++ b/Droidnix/generated/modules/system/audio.nix
@@ -0,0 +1,28 @@
+# --- This file has been auto-generated. For permanent changes alter the appropriate block in the README.org. ---
+{ lib, config, pkgs, ... }:
+{
+ ############################
+ # Audio system
+ ############################
+
+ # Disable PulseAudio (PipeWire replaces it)
+ hardware.pulseaudio.enable = false;
+ security.rtkit.enable = true;
+
+ services.pipewire = {
+ enable = true;
+ alsa.enable = true;
+ alsa.support32Bit = true;
+ pulse.enable = true; # PulseAudio compatibility layer
+ jack.enable = true;
+ };
+
+ environment.systemPackages = with pkgs; [
+ pavucontrol # GUI mixer
+ pamixer # CLI mixer
+ playerctl # Player controls
+ alsa-utils # aplay, amixer etc.
+ pwvucontrol # PipeWire volume control (optional but useful)
+ alsa-tools # troubleshooting
+ ];
+}
diff --git a/Droidnix/generated/modules/system/avahi.nix b/Droidnix/generated/modules/system/avahi.nix
new file mode 100644
index 000000000..09afeee66
--- /dev/null
+++ b/Droidnix/generated/modules/system/avahi.nix
@@ -0,0 +1,12 @@
+# --- This file has been auto-generated. For permanent changes alter the appropriate block in the README.org. ---
+{ ... }:
+{
+ services.avahi = {
+ enable = true;
+ nssmdns4 = true;
+ publish = {
+ enable = true;
+ addresses = true;
+ };
+ };
+}
diff --git a/Droidnix/generated/modules/system/bluetooth.nix b/Droidnix/generated/modules/system/bluetooth.nix
new file mode 100644
index 000000000..1ca58b81e
--- /dev/null
+++ b/Droidnix/generated/modules/system/bluetooth.nix
@@ -0,0 +1,19 @@
+# --- This file has been auto-generated. For permanent changes alter the appropriate block in the README.org. ---
+{ lib, config, pkgs, home-manager, ... }:
+
+let
+ username = config.defaultUser or "henrov";
+in
+{
+
+
+ ############################
+ # Bluetooth daemon
+ ############################
+ hardware.bluetooth = {
+ enable = true;
+ powerOnBoot = true;
+ package = pkgs.bluez;
+ };
+ environment.systemPackages = with pkgs; [ blueman ];
+}
diff --git a/Droidnix/generated/modules/system/colors.nix b/Droidnix/generated/modules/system/colors.nix
new file mode 100644
index 000000000..3a03779d5
--- /dev/null
+++ b/Droidnix/generated/modules/system/colors.nix
@@ -0,0 +1,69 @@
+# --- This file has been auto-generated. For permanent changes alter the appropriate block in the README.org. ---
+{ lib, config, pkgs, flakeRoot, ... }:
+let
+ colors = {
+ border = "#96cdd2";
+ crust = "#11111b";
+ mantle = "#181825";
+ base = "#1e1e2e";
+ surface0 = "#313244";
+ surface1 = "#45475a";
+ surface2 = "#585b70";
+ overlay0 = "#6c7086";
+ overlay1 = "#7f849c";
+ overlay2 = "#9399b2";
+ subtext0 = "#a6adc8";
+ subtext1 = "#bac2de";
+ text = "#cdd6f4";
+ rosewater = "#f5e0dc";
+ flamingo = "#f2cdcd";
+ pink = "#f5c2e7";
+ mauve = "#cba6f7";
+ red = "#f38ba8";
+ maroon = "#eba0ac";
+ peach = "#fab387";
+ yellow = "#f9e2af";
+ green = "#a6e3a1";
+ teal = "#94e2d5";
+ sapphire = "#74c7ec";
+ blue = "#89b4fa";
+ lavender = "#b4befe";
+ };
+
+ username = config.defaultUser or "henrov";
+
+ qmlContent = ''
+ pragma Singleton
+ // Catppuccin Mocha Palette - auto-generated, do not edit manually
+ import QtQuick
+ QtObject {
+ readonly property color baseAlpha: Qt.rgba(30/255, 30/255, 46/255, 0.9)
+ '' + lib.concatStringsSep "\n" (
+ lib.mapAttrsToList (name: value:
+ " readonly property color ${name}: \"${value}\""
+ ) colors
+ ) + "\n}";
+
+in
+{
+ home-manager.users.${username} = {
+ home.file = {
+ ".config/shared/css/colors.css" = {
+ source = "${flakeRoot}/generated/.config/shared/css/colors.css";
+ force = true;
+ };
+ ".config/quickshell/Colors.qml" = {
+ text = qmlContent;
+ force = true;
+ };
+ ".config/quickshell/powermenu/Colors.qml" = {
+ text = qmlContent;
+ force = true;
+ };
+ ".config/quickshell/powermenu/qmldir" = {
+ text = "singleton Colors 1.0 Colors.qml";
+ force = true;
+ };
+ };
+ };
+}
diff --git a/Droidnix/generated/modules/system/copy_scripts.nix b/Droidnix/generated/modules/system/copy_scripts.nix
new file mode 100644
index 000000000..5748f2f1c
--- /dev/null
+++ b/Droidnix/generated/modules/system/copy_scripts.nix
@@ -0,0 +1,33 @@
+# --- This file has been auto-generated. For permanent changes alter the appropriate block in the README.org. ---
+{ lib, config, pkgs, flakeRoot, ... }:
+let
+ username = config.defaultUser or "henrov";
+ configPath = flakeRoot + "/generated/.config/shared/scripts";
+ allFiles = lib.filesystem.listFilesRecursive configPath;
+
+ toRelative = file:
+ let
+ base = toString flakeRoot + "/generated/";
+ relative = lib.removePrefix base (toString file);
+ in
+ builtins.unsafeDiscardStringContext relative;
+
+ isShellScript = file:
+ lib.hasSuffix ".sh" (toString file);
+
+ toFileEntry = file: {
+ name = toRelative file;
+ value = {
+ source = file;
+ executable = isShellScript file;
+ force = true;
+ };
+ };
+in
+{
+ home-manager.users = {
+ ${username} = {
+ home.file = builtins.listToAttrs (map toFileEntry allFiles);
+ };
+ };
+}
diff --git a/Droidnix/generated/modules/system/dbus.nix b/Droidnix/generated/modules/system/dbus.nix
new file mode 100644
index 000000000..98db4ded2
--- /dev/null
+++ b/Droidnix/generated/modules/system/dbus.nix
@@ -0,0 +1,19 @@
+# --- This file has been auto-generated. For permanent changes alter the appropriate block in the README.org. ---
+{ config, pkgs, ... }:
+
+{
+ # Enable classic D-Bus service
+ services.dbus.enable = true;
+
+ # Use default dbus package (classic D-Bus)
+ services.dbus.dbusPackage = pkgs.dbus;
+
+ # Include some essential system packages so shell and tools exist
+ environment.systemPackages = with pkgs; [
+ bashInteractive
+ coreutils
+ ];
+
+ # Do not attempt to wrap dbus-daemon-launch-helper manually
+ # No extra security.wrappers needed
+}
diff --git a/Droidnix/generated/modules/system/firewall.nix b/Droidnix/generated/modules/system/firewall.nix
new file mode 100644
index 000000000..9d9bd87e3
--- /dev/null
+++ b/Droidnix/generated/modules/system/firewall.nix
@@ -0,0 +1,73 @@
+# --- This file has been auto-generated. For permanent changes alter the appropriate block in the README.org. ---
+{ pkgs, ... }:
+
+{
+ # Use nftables as the firewall backend
+ networking.nftables.enable = true;
+
+ networking.firewall = {
+ enable = true;
+
+ filterForward = false; # don't filter forwarded traffic
+ # outbound is allowed by default UNLESS you've set:
+
+ # LAN-only ports — Wi-Fi interface
+ interfaces."wlan0" = {
+ allowedTCPPorts = [
+ 22 # SSH
+ 80 # allow HTTP globally for outbound
+ 443 # allow HTTPS globally for outbound
+ 631 # CUPS / IPP network printing
+ 9100 # AppSocket/JetDirect printing
+ 6566 # SANE network scanner
+ 57621 # Spotify Connect
+ 57622 # Spotify local file sync
+ ];
+ allowedTCPPortRanges = [
+ { from = 1714; to = 1764; } # KDE Connect
+ ];
+ allowedUDPPorts = [
+ 5353 # mDNS / Avahi (printer + device discovery)
+ 631 # CUPS / IPP
+ 67 # DHCP
+ 123 # NTP time sync
+ 1900 # UPnP device discovery
+ 57621 # Spotify Connect
+ ];
+ allowedUDPPortRanges = [
+ { from = 1714; to = 1764; } # KDE Connect
+ ];
+ };
+
+ # LAN-only ports — ethernet (ready for when you plug in)
+ interfaces."enp0s31f6" = {
+ allowedTCPPorts = [
+ 631 # CUPS / IPP network printing
+ 9100 # AppSocket/JetDirect printing
+ 6566 # SANE network scanner
+ 57621 # Spotify Connect
+ 57622 # Spotify local file sync
+ ];
+ allowedTCPPortRanges = [
+ { from = 1714; to = 1764; } # KDE Connect
+ ];
+ allowedUDPPorts = [
+ 5353 # mDNS / Avahi (printer + device discovery)
+ 631 # CUPS / IPP
+ 67 # DHCP
+ 123 # NTP time sync
+ 1900 # UPnP device discovery
+ 57621 # Spotify Connect
+ ];
+ allowedUDPPortRanges = [
+ { from = 1714; to = 1764; } # KDE Connect
+ ];
+ };
+ };
+
+ # CLI tool for temporary rule changes without rebuilding
+ # Usage: sudo nixos-firewall-tool open tcp 8080
+ environment.systemPackages = with pkgs; [
+ nixos-firewall-tool
+ ];
+}
diff --git a/Droidnix/generated/modules/system/gnome-keyring.nix b/Droidnix/generated/modules/system/gnome-keyring.nix
new file mode 100644
index 000000000..30a2d016c
--- /dev/null
+++ b/Droidnix/generated/modules/system/gnome-keyring.nix
@@ -0,0 +1,40 @@
+# --- This file has been auto-generated. For permanent changes alter the appropriate block in the README.org. ---
+{ config, pkgs, ... }:
+
+{
+ ##################################################
+ # Core services
+ ##################################################
+
+ # Enable GNOME Keyring
+ services.gnome.gnome-keyring.enable = true;
+
+ ##################################################
+ # PAM (auto unlock keyring on login)
+ ##################################################
+
+ security.pam.services = {
+ login.enableGnomeKeyring = true;
+ greetd.enableGnomeKeyring = true;
+ sddm.enableGnomeKeyring = true;
+ gdm.enableGnomeKeyring = true;
+ };
+
+ ##################################################
+ # Environment packages
+ ##################################################
+
+ environment.systemPackages = with pkgs; [
+ polkit_gnome
+ seahorse
+ libsecret
+ ];
+
+ ##################################################
+ # Security / Polkit
+ ##################################################
+
+ security.polkit.enable = true;
+
+
+}
diff --git a/Droidnix/generated/modules/system/hypridle.nix b/Droidnix/generated/modules/system/hypridle.nix
new file mode 100644
index 000000000..29f949d67
--- /dev/null
+++ b/Droidnix/generated/modules/system/hypridle.nix
@@ -0,0 +1,48 @@
+# --- This file has been auto-generated. For permanent changes alter the appropriate block in the README.org. ---
+{ lib, config, pkgs, flakeRoot, ... }:
+
+let
+ username = config.defaultUser or "henrov";
+ basePath = "${flakeRoot}/generated/.config";
+ assetPath = "${flakeRoot}/generated/.config/hypr";
+in
+{
+ #################################
+ # Install hypridle system-wide
+ #################################
+ environment.systemPackages = [ pkgs.hypridle ];
+
+ #################################
+ # Deploy config
+ #################################
+ home-manager.users = {
+ ${username} = {
+ home.file = {
+ ".config/hypr/hypridle.conf" = {
+ text = builtins.readFile "${assetPath}/hypridle.conf";
+ force = true;
+ };
+ };
+ };
+ };
+
+ #################################
+ # Systemd user service
+ #################################
+ systemd.user.services.hypridle = {
+ description = "Hypridle (Hyprland idle daemon)";
+ after = [ "hyprland-session.target" ];
+ bindsTo = [ "hyprland-session.target" ];
+ serviceConfig = {
+ ExecStart = "${pkgs.hypridle}/bin/hypridle";
+ Restart = "on-failure";
+ RestartSec = "5s";
+ Environment = [
+ "HOME=/home/${username}"
+ "WAYLAND_DISPLAY=wayland-1"
+ "XDG_RUNTIME_DIR=/run/user/1000"
+ ];
+ };
+ wantedBy = [ "hyprland-session.target" ];
+ };
+}
diff --git a/Droidnix/generated/modules/system/hyprlock.nix b/Droidnix/generated/modules/system/hyprlock.nix
new file mode 100644
index 000000000..ec215e4a2
--- /dev/null
+++ b/Droidnix/generated/modules/system/hyprlock.nix
@@ -0,0 +1,49 @@
+# --- This file has been auto-generated. For permanent changes alter the appropriate block in the README.org. ---
+{ lib, config, pkgs, flakeRoot, ... }:
+
+let
+ username = config.defaultUser or "henrov";
+ basePath = "${flakeRoot}/generated/.config";
+ assetPath = "${flakeRoot}/generated/.config/hypr";
+in
+{
+ #################################
+ # Install hyprlock system-wide
+ #################################
+ environment.systemPackages = [
+ pkgs.hyprlock
+ ];
+
+ #################################
+ # Deploy configuration file
+ #################################
+ home-manager.users = {
+ ${username} = {
+ home.file = {
+ ".config/hypr/hyprlock.conf" = {
+ text = builtins.readFile "${assetPath}/hyprlock.conf";
+ force = true;
+ };
+ };
+ };
+ };
+
+ #################################
+ # Optional: helper systemd user service (manual start use)
+ #################################
+ systemd.user.services.hyprlock = {
+ description = "Hyprlock (manual lock session)";
+ after = [ "graphical-session.target" ];
+
+ serviceConfig = {
+ ExecStart = "${pkgs.hyprlock}/bin/hyprlock";
+ Restart = "no";
+ Environment = ''
+ WAYLAND_DISPLAY=${config.environment.sessionVariables.WAYLAND_DISPLAY or "wayland-0"}
+ XDG_CURRENT_DESKTOP=Hyprland
+ '';
+ };
+
+ wantedBy = [ ];
+ };
+}
diff --git a/Droidnix/generated/modules/system/login-tuigreet.nix b/Droidnix/generated/modules/system/login-tuigreet.nix
new file mode 100644
index 000000000..a6b50d808
--- /dev/null
+++ b/Droidnix/generated/modules/system/login-tuigreet.nix
@@ -0,0 +1,40 @@
+# --- This file has been auto-generated. For permanent changes alter the appropriate block in the README.org. ---
+{ config, pkgs, lib, ... }:
+let
+ tuigreetBin = "${pkgs.tuigreet}/bin/tuigreet";
+ sessionsDir = "${pkgs.uwsm}/share/wayland-sessions";
+in
+{
+ #################################
+ # Greetd (tuigreet)
+ #################################
+ services.greetd = {
+ enable = true;
+ settings = {
+ default_session = {
+ command = ''
+ ${tuigreetBin} \
+ --time \
+ --remember \
+ --remember-session \
+ --sessions ${sessionsDir} \
+ --cmd "uwsm start -e -D Hyprland hyprland.desktop"
+ '';
+ user = "greeter";
+ };
+ };
+ };
+ #################################
+ # Fix TTY / boot noise issues
+ #################################
+ systemd.services.greetd.serviceConfig = {
+ Type = "idle";
+ StandardInput = "tty";
+ StandardOutput = "tty";
+ StandardError = "journal";
+ TTYPath = "/dev/tty1";
+ TTYReset = true;
+ TTYVHangup = true;
+ TTYVTDisallocate = true;
+ };
+}
diff --git a/Droidnix/generated/modules/system/networking.nix b/Droidnix/generated/modules/system/networking.nix
new file mode 100644
index 000000000..39deab331
--- /dev/null
+++ b/Droidnix/generated/modules/system/networking.nix
@@ -0,0 +1,41 @@
+# --- This file has been auto-generated. For permanent changes alter the appropriate block in the README.org. ---
+{ lib, config, pkgs, ... }:
+
+{
+ #################################
+ # Networking core
+ #################################
+ networking = {
+ # Let DHCP be default unless overridden elsewhere
+ useDHCP = lib.mkDefault true;
+
+ #################################
+ # NetworkManager (primary stack)
+ #################################
+ networkmanager = {
+ enable = true;
+ # Use iwd backend for WiFi
+ wifi.backend = "iwd";
+ };
+
+ #################################
+ # iwd (WiFi daemon)
+ #################################
+ wireless.iwd = {
+ enable = true;
+ # Allow user control via NM / CLI
+ settings.General.EnableNetworkConfiguration = true;
+ };
+ };
+
+ #################################
+ # System packages
+ #################################
+ environment.systemPackages = [
+ pkgs.networkmanager
+ pkgs.linux-firmware
+ pkgs.networkmanagerapplet
+ pkgs.networkmanager_dmenu
+ # pkgs.iwgtk
+ ];
+}
diff --git a/Droidnix/generated/modules/system/nix.nix b/Droidnix/generated/modules/system/nix.nix
new file mode 100644
index 000000000..b33a5585b
--- /dev/null
+++ b/Droidnix/generated/modules/system/nix.nix
@@ -0,0 +1,18 @@
+# --- This file has been auto-generated. For permanent changes alter the appropriate block in the README.org. ---
+{ lib, config, ... }:
+{
+ nix.settings = {
+ experimental-features = [ "nix-command" "flakes" ];
+ download-buffer-size = 536870912; # 512 MB
+ cores = 8;
+ max-jobs = "auto";
+ };
+
+ nix.gc = {
+ automatic = true;
+ dates = "weekly";
+ options = "--delete-older-than 30d";
+ };
+
+ boot.loader.systemd-boot.configurationLimit = 3;
+}
diff --git a/Droidnix/generated/modules/system/numlock-check.nix b/Droidnix/generated/modules/system/numlock-check.nix
new file mode 100644
index 000000000..eac6b2535
--- /dev/null
+++ b/Droidnix/generated/modules/system/numlock-check.nix
@@ -0,0 +1,38 @@
+# --- This file has been auto-generated. For permanent changes alter the appropriate block in the README.org. ---
+{ lib, config, pkgs, flakeRoot, ... }:
+let
+ username = config.defaultUser or "henrov";
+ scriptSrc = "${flakeRoot}/generated/.config/shared/scripts/numlock-check.sh";
+in
+{
+ environment.systemPackages = [ pkgs.numlockx pkgs.libinput ];
+
+ home-manager.users.${username} = {
+ home.activation.installNumlockScript = {
+ after = [ "writeBoundary" ];
+ before = [];
+ data = ''
+ mkdir -p $HOME/.config/shared/scripts
+ cp --remove-destination --dereference ${scriptSrc} $HOME/.config/shared/scripts/numlock-check.sh
+ chmod u+x $HOME/.config/shared/scripts/numlock-check.sh
+ '';
+ };
+ };
+
+ systemd.user.services.numlock-check = {
+ description = "Check and set numlock based on keyboard count";
+ serviceConfig = {
+ Type = "oneshot";
+ ExecStart = "%h/.config/shared/scripts/numlock-check.sh";
+ };
+ };
+
+ systemd.user.timers.numlock-check = {
+ description = "Run numlock check periodically";
+ wantedBy = [ "timers.target" ];
+ timerConfig = {
+ OnBootSec = "5s";
+ OnUnitActiveSec = "10s";
+ };
+ };
+}
diff --git a/Droidnix/generated/modules/system/printing.nix b/Droidnix/generated/modules/system/printing.nix
new file mode 100644
index 000000000..2c198447a
--- /dev/null
+++ b/Droidnix/generated/modules/system/printing.nix
@@ -0,0 +1,16 @@
+# --- This file has been auto-generated. For permanent changes alter the appropriate block in the README.org. ---
+{ lib, config, pkgs, ... }:
+
+{
+ ############################
+ # Printing system
+ ############################
+ services.printing.enable = true; # enable CUPS printing service
+
+ ############################
+ # System packages for GUI management
+ ############################
+ environment.systemPackages = with pkgs; [
+ system-config-printer # GUI to manage printers
+ ];
+}
diff --git a/Droidnix/generated/modules/system/quickshell.nix b/Droidnix/generated/modules/system/quickshell.nix
new file mode 100644
index 000000000..193d4244c
--- /dev/null
+++ b/Droidnix/generated/modules/system/quickshell.nix
@@ -0,0 +1,38 @@
+# --- This file has been auto-generated. For permanent changes alter the appropriate block in the README.org. ---
+{ pkgs, lib, config, flakeRoot, quickshell, ... }:
+let
+ username = config.defaultUser or "henrov";
+ sysName = "quickshell";
+ assetPath = "${flakeRoot}/generated/.config/${sysName}";
+ quickshellPkg = quickshell.packages.${pkgs.stdenv.hostPlatform.system}.default;
+in
+{
+ environment.systemPackages = with pkgs; [
+ quickshellPkg
+ qt6.qtdeclarative
+ qt6.qttools
+ qt6.qtsvg
+ qt6.qtimageformats
+ qt6.qtmultimedia
+ qt6.qt5compat
+ ];
+
+ qt = {
+ enable = true;
+ platformTheme = "qt5ct";
+ };
+
+ home-manager.users.${username} = {
+ home.activation.quickshellMutableFiles = {
+ after = [ "writeBoundary" ];
+ before = [];
+ data = ''
+ rm -rf $HOME/.config/${sysName}
+ mkdir -p $HOME/.config/${sysName}
+ cp -r ${assetPath}/* $HOME/.config/${sysName}/
+ chmod -R u+w $HOME/.config/${sysName}/
+ find $HOME/.config/${sysName}/ -name "*.sh" -exec chmod +x {} \;
+ '';
+ };
+ };
+}
diff --git a/Droidnix/generated/modules/system/swaync.nix b/Droidnix/generated/modules/system/swaync.nix
new file mode 100644
index 000000000..64f9ba18d
--- /dev/null
+++ b/Droidnix/generated/modules/system/swaync.nix
@@ -0,0 +1,40 @@
+# --- This file has been auto-generated. For permanent changes alter the appropriate block in the README.org. ---
+{ lib, config, pkgs, flakeRoot, ... }:
+let
+ username = config.defaultUser or "henrov";
+ assetPath = "${flakeRoot}/generated/.config/swaync";
+in
+{
+ environment.systemPackages = [ pkgs.swaynotificationcenter pkgs.libnotify ];
+
+ home-manager.users.${username} = {
+ # Do NOT enable services.swaync — it would claim the config files
+ # and conflict with our home.file entries below.
+
+ home.file = {
+ ".config/swaync/config.json" = {
+ text = builtins.readFile "${assetPath}/config.json";
+ force = true;
+ };
+ ".config/swaync/style.css" = {
+ text = builtins.replaceStrings ["henrov"] [username] (builtins.readFile "${assetPath}/style.css");
+ force = true;
+ };
+ };
+ };
+
+ # Autostart swaync as a systemd user service instead
+ systemd.user.services.swaync = {
+ description = "SwayNotificationCenter";
+ after = [ "graphical-session.target" ];
+ serviceConfig = {
+ ExecStart = "${pkgs.swaynotificationcenter}/bin/swaync";
+ Restart = "always";
+ Environment = [
+ "WAYLAND_DISPLAY=${config.environment.sessionVariables.WAYLAND_DISPLAY or "wayland-1"}"
+ "XDG_CURRENT_DESKTOP=Hyprland"
+ ];
+ };
+ wantedBy = [ "default.target" ];
+ };
+}