diff --git a/README.html b/README.html new file mode 100644 index 000000000..9d10dec2e --- /dev/null +++ b/README.html @@ -0,0 +1,206 @@ + + + + + + + + + + + + + +
+
+
+

Author: henrov

+

Created: 2026-02-23 ma 19:59

+

Validate

+
+ + diff --git a/henrovnix/README.html b/henrovnix/README.html index 48af7c3c0..ac18b9bc0 100644 --- a/henrovnix/README.html +++ b/henrovnix/README.html @@ -3,7 +3,7 @@ "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> - + @@ -201,131 +201,131 @@

Table of Contents

-
-

1. Introduction

+
+

1. Introduction

Screenshot
@@ -387,8 +387,8 @@ Customization is designed to occur primarily through modular .conf files, allowi Before proceeding with installation, it is strongly recommended to read this documentation carefully. Understanding the structure and design philosophy will help ensure a smooth setup and provide the necessary context for extending the system effectively.

-
-

1.1. What do you get?

+
+

1.1. What do you get?

This repository delivers a reproducible foundation built on NixOS, Home-Manager, and Flakes. It assumes a clean NixOS installation as a starting point, preferably minimal or headless, onto which the configuration is applied. @@ -403,8 +403,8 @@ Core packages are installed as part of the base configuration. Additional softwa

-
-

1.2. Base packages

+
+

1.2. Base packages

The baseline package set is defined explicitly within the repository to ensure reproducibility: @@ -477,8 +477,8 @@ The baseline package set is defined explicitly within the repository to ensure r

-
-

1.3. Additional packages

+
+

1.3. Additional packages

Additional software can be installed by extending the dedicated configuration files that define system and Flatpak packages: @@ -494,7 +494,7 @@ Additional software can be installed by extending the dedicated configuration fi

-System packages are declared in packages.conf using their attribute names from Nixpkgs. The correct package names can be located through the official NixOS package search at:https://search.nixos.org/packages +System packages are declared in packages.conf using their attribute names from Nixpkgs. The correct package names can be located through the official NixOS package search at https://search.nixos.org/packages.

@@ -506,7 +506,7 @@ Available Flatpak identifiers can be discovered using:

-or by browsing: https://flathub.org/ +or by browsing: https://flathub.org/.

@@ -518,8 +518,8 @@ This separation maintains clarity between system-level packages and user-facing

-
-

1.4. What you do not get

+
+

1.4. What you do not get

This repository does not provide a fully polished, bug-free desktop system with every default preconfigured and validated across all hardware combinations. It is a structured foundation, not a turnkey end-user distribution. @@ -543,12 +543,12 @@ In short, this repository provides a coherent and extensible base, not a finishe

-
-

2. Setting up your system manually

+
+

2. Setting up your system manually

-
-

2.1. Pre-requisites to build this setup

+
+

2.1. Pre-requisites to build this setup

- a NIXOS system installed with a user with sudo rights.
@@ -558,8 +558,8 @@ In short, this repository provides a coherent and extensible base, not a finishe
 
-
-

2.2. First-time setup (manually)

+
+

2.2. Setup when Emacs not (yet) available

  1. Copy the folder henrovnix to your machine
  2. @@ -621,15 +621,15 @@ Create a hardware-configuration.nix and copy it into the folder ./machines Run the build command to set up the system for the first time

    -
    sudo nixos-rebuild switch --flake .#=your_hostname=
    +
    sudo nixos-rebuild switch --flake .#your_hostname
     
-
-

3. Testing and generating builds

+
+

3. Testing and generating builds

At this stage, you should have a functional and reproducible system that can be edited, rebuilt, and extended according to your needs. The foundational structure is now in place, and further customization can occur incrementally through the modular configuration files. @@ -692,46 +692,46 @@ Other important files:

-
-

4. flake.lock for pinning input versions.

+
+

4. flake.lock for pinning input versions.

-
-

5. assets/* for non-Nix-managed artifacts such as images and wallpapers.

+
+

5. assets/* for non-Nix-managed artifacts such as images and wallpapers.

Generated outputs should not be edited directly. A CI workflow can tangle and commit generated outputs when they differ.

-
-

5.1. Emacs + Org + Tangle

+
+

5.1. Emacs + Org + Tangle

-
-

6. [Emacs](https://www.gnu.org/software/emacs/][Emacs) is used as the editor and execution environment for this literate configuration.

+
+

6. [Emacs](https://www.gnu.org/software/emacs/][Emacs) is used as the editor and execution environment for this literate configuration.

-
-

7. [Org](https://orgmode.org/][Org) mode provides the document structure and the source block execution model used here.

+
+

7. [Org](https://orgmode.org/][Org) mode provides the document structure and the source block execution model used here.

-
-

8. Tangling exports source blocks from this Org document into the corresponding configuration files.

+
+

8. Tangling exports source blocks from this Org document into the corresponding configuration files.

  • References of the form <<code-id>> are noweb placeholders that are expanded from other blocks during tangling.
-
-

8.1. Nix & NixOS

+
+

8.1. Nix & NixOS

-
-

9. [Nix](https://nix.dev/][Nix) is used to define packages, environments, and configuration as pure expressions.

+
+

9. [Nix](https://nix.dev/][Nix) is used to define packages, environments, and configuration as pure expressions.

-
-

10. [NixOS](https://nixos.org/][NixOS) evaluates Nix expressions into a complete system configuration that can be applied by rebuild operations.

+
+

10. [NixOS](https://nixos.org/][NixOS) evaluates Nix expressions into a complete system configuration that can be applied by rebuild operations.

-
-

10.1. Repository layout and folder conventions

+
+

10.1. Repository layout and folder conventions

<p> @@ -744,8 +744,8 @@ Generated outputs should not be edited directly. A CI workflow can tangle and co

-
-

10.2. Shared domain folders

+
+

10.2. Shared domain folders

<ul> @@ -759,8 +759,8 @@ Generated outputs should not be edited directly. A CI workflow can tangle and co

-
-

10.3. Full tree (including unchanged parts)

+
+

10.3. Full tree (including unchanged parts)

The tree below shows the full repository layout, with the standardized internal structure applied only inside @@ -876,8 +876,8 @@ The tree below shows the full repository layout, with the standardized internal

-
-

10.4. Notes

+
+

10.4. Notes

<ul> @@ -910,8 +910,8 @@ This prevents unwanted and surprise updates when rebuilding without changing the

-
-

11. TLDR App List

+
+

11. TLDR App List

@@ -990,8 +990,8 @@ This prevents unwanted and surprise updates when rebuilding without changing the
-
-

12. Configuration Variables

+
+

12. Configuration Variables

I have a bunch of constant strings that I would rather put in a file. Thats what user.nix is. @@ -1008,8 +1008,8 @@ The values are imported at the beginning and are available to almost all the fun

-
-

13. Flake Inputs

+
+

13. Flake Inputs

The inputs for my system's configuration are very simple @@ -1050,8 +1050,8 @@ Sometimes pinned to a specific commit because unstable broke something and the f

-
-

14. Flake Output

+
+

14. Flake Output

Now that the inputs are ready, the outputs define what the system will actually look like. I also define the machines that this configuration specifies early on. Finally, I iterate over the machines list and pull files from /.machines/${name} subdirectory. This allows me to have configuration that has machine specific configuration limited to those files while also keeping a modular reusable base. @@ -1059,7 +1059,7 @@ We also add a devshell that makes editing this repository easier in emacs.

-
outputs = inputs@{
+
outputs = inputs@{
   nixpkgs,
   home-manager,
   emacs-overlay,
@@ -1120,7 +1120,7 @@ Overlays are a special nix way to override existing packages within a repository
 

-
({ ... }: {
+
({ ... }: {
   nixpkgs.overlays = [ emacs-overlay.overlays.default ];
 })
 
@@ -1130,7 +1130,7 @@ Overlays are a special nix way to override existing packages within a repository Then the machine specific configuration, in this case, just "machine1".

-
./machines/${machine}/configuration.nix
+
./machines/${machine}/configuration.nix
 
@@ -1140,7 +1140,7 @@ This can be initialized and managed on its own but I'd rather use the nixo

-
home-manager.nixosModules.home-manager
+
home-manager.nixosModules.home-manager
 {
   home-manager.useGlobalPkgs = true;
   home-manager.useUserPackages = true;
@@ -1183,8 +1183,8 @@ Finally I pull in the machine specific home configuration. Along with the overri
 
-
-

14.1. Envrc + Direnv

+
+

14.1. Envrc + Direnv

Editing this file will be much nicer if we have the dev environment configured. @@ -1205,14 +1205,14 @@ fi

-
-

15. Machines

+
+

15. Machines

The individual machines subdirectory is configured as follows :-

-
+--machine
+
+--machine
 |  +--configuration.nix
 |  +--home.nix
 |  +--hardware-configuration.nix
@@ -1233,12 +1233,12 @@ This imported object (or function result) is just trivially merged into a common
 We can take a look at that the common hardware options I have for all my machines.
 

-
-

15.0.1. Other Utils

+
+

15.0.1. Other Utils

    -
  1. Updates
    +
  2. Updates

    To update the computer, I just need to update the flake.lock file to have references to the latest repository. This is done with :- @@ -1252,8 +1252,8 @@ To update the computer, I just need to update the flake.lock file t

-
-

16. Hardware

+
+

16. Hardware

I'll let the code comments explain the file here. @@ -1287,8 +1287,8 @@ I'll let the code comments explain the file here.

-
-

17. Configuration

+
+

17. Configuration

This section describes the main system configuration for the computers that I have. Nix will look for a default.nix file if you give it a path to a folder to import. And default.nix looks as follows :- @@ -1331,16 +1331,16 @@ This section describes the main system configuration for the computers that I ha

-
-

17.1. Apps section

+
+

17.1. Apps section

This section describes a way of installing packages, either through nixpkgs orr flatpak. What apps to instal is decided in the files ./assets/conf/apps/packages.conf and flatpaks.conf

-
-

17.2. install_packages.nix

+
+

17.2. install_packages.nix

{ config, lib, pkgs, flakeRoot, inputs, ... }:
@@ -1400,8 +1400,8 @@ in
 
-
-

17.3. install_flatpaks.nix

+
+

17.3. install_flatpaks.nix

{ config, pkgs, lib, flakeRoot, ... }:
@@ -1512,8 +1512,8 @@ in
 
-
-

17.4. Nix Settings

+
+

17.4. Nix Settings

These are global nix settings that configure the settings for the actual tool. @@ -1562,8 +1562,8 @@ These are global nix settings that configure the settings for the actual tool.

-
-

17.5. Boot

+
+

17.5. Boot

This file has most of the settings the control how the computer boots up. @@ -1601,16 +1601,16 @@ This file has most of the settings the control how the computer boots up.

-
-

17.6. Login

+
+

17.6. Login

Here we control what the login screen would look like. In configuration/default.nix you can choose whether to use tuigreet (very minimalistic) or LightDM (nicer, themeable)

-
-

17.7. Tuigreet

+
+

17.7. Tuigreet

Doesn't match the rest of the aesthetic of the system (with hyprland), but I like its simplicity. @@ -1635,8 +1635,8 @@ Doesn't match the rest of the aesthetic of the system (with hyprland), but I lik

-
-

17.8. LightDM

+
+

17.8. LightDM

{ config, pkgs, lib, ... }:
@@ -1783,8 +1783,8 @@ in
 
-
-

17.9. Terminal (default system)

+
+

17.9. Terminal (default system)

This is the initial system level configuration for the terminal that I use on this machine. Its just zsh. @@ -1803,8 +1803,8 @@ This is the initial system level configuration for the terminal that I use on th

-
-

17.10. Files

+
+

17.10. Files

I use Thunar as the file explorer. Also setup a few plugins for Thunar in this config. @@ -1845,8 +1845,8 @@ Along with that, a few other utilities like zip and enabling services to automou

-
-

17.11. Locale

+
+

17.11. Locale

I live in Netherlands and would like all my locale and timezone settings to match. Except my default locale. @@ -1880,8 +1880,8 @@ in

-
-

17.12. Networking

+
+

17.12. Networking

Not much to see here. I want networking to be enabled. I want firewall as well. @@ -1912,8 +1912,8 @@ Not much to see here. I want networking to be enabled. I want firewall as well.

-
-

17.13. Hyprland

+
+

17.13. Hyprland

This is a big one because the DE needs so much configuration. This section mostly installs Hyprland. @@ -1984,8 +1984,8 @@ The configuration is done in the home manager section.

-
-

17.14. Services

+
+

17.14. Services

These are some of the services that I enable at the system level. Explanation in the comments. @@ -2018,8 +2018,8 @@ These are some of the services that I enable at the system level. Explanation in

-
-

17.15. Audio

+
+

17.15. Audio

{ config, pkgs, lib, ... }:
@@ -2097,11 +2097,11 @@ These are some of the services that I enable at the system level. Explanation in
 
-
-

17.16. Miscellaneous Packages and Programs

+
+

17.16. Miscellaneous Packages and Programs

-
environment.systemPackages = with pkgs; [
+
environment.systemPackages = with pkgs; [
   wget       # fetch utility
   curl       # more fetch utility
   binutils   # executable utilities, like ld
@@ -2129,7 +2129,7 @@ programs.gdk-pixbuf.modulePackages = [ pkgs.librsvg ];
 
-
programs = {
+
programs = {
   nix-ld.enable = true;   # helps with linking troubles with dynamic libraries
   appimage.enable = true; # allow appimage installations
   dconf.enable = true;    # to save user settings
@@ -2145,14 +2145,14 @@ programs.gdk-pixbuf.modulePackages = [ pkgs.librsvg ];
 
-
-

17.17. Fonts

+
+

17.17. Fonts

Nothing much to see here. I love Aporetic, and I use it everywhere.

-
fonts.packages = with pkgs; [
+
fonts.packages = with pkgs; [
   aporetic
   nerd-fonts.iosevka
 ];
@@ -2160,14 +2160,14 @@ Nothing much to see here. I love 
-

17.18. User Config

+
+

17.18. User Config

This creates the user profile that I login with. Initially created during install.

-
users.users.${user.username} = {
+
users.users.${user.username} = {
   isNormalUser = true;
   description = "<defaultUser>";
   extraGroups = [
@@ -2182,8 +2182,8 @@ This creates the user profile that I login with. Initially created during instal
 
-
-

18. Home

+
+

18. Home

I use home-manager to manage my user level dotfiles and configurations. @@ -2191,8 +2191,8 @@ Most of the "theme" of the system is decided here. I also use it to install programs that are okay with being installed at the user level instead of the system.

-
-

18.1. default.nix

+
+

18.1. default.nix

This module will import all necessities. @@ -2228,8 +2228,8 @@ This module will import all necessities.

-
-

18.2. Wallpaper

+
+

18.2. Wallpaper

wallpaper.nix installs wpaperd and deploys your wallpaper files from the repo (./assets/conf/desktop/wallpaper/pictures/) into ~/conf/desktop/wallpaper/pictures. It also deploys the default wallpaper configuration from assets/conf/desktop/wallpaper/wallpaper.conf into ~/conf/desktop/wallpaper/wallpaper.conf, which is the file you can edit as a user override. @@ -2283,11 +2283,11 @@ in

-
-

18.3. Waybar

+
+

18.3. Waybar

-
+

waybar.png

@@ -2324,8 +2324,8 @@ in
-
-
-

18.5. Idle Screen

+
+

18.5. Idle Screen

<henro: needs instruction> @@ -2366,8 +2366,8 @@ in

-
-

18.6. Hyprshell

+
+

18.6. Hyprshell

For nice task-starting and -switching @@ -2407,8 +2407,8 @@ in

-
-

18.7. Hyprland

+
+

18.7. Hyprland

This configures the desktop environment along with the peripherals. The comments should explain whats happening. @@ -2458,8 +2458,8 @@ in

-
-

18.8. Walker

+
+

18.8. Walker

This is how I launch applications. It is bound to Win+Space in the ./asstes/conf/desktop/hypr/bindings.conf. @@ -2560,8 +2560,8 @@ in

-
-

18.9. Theme

+
+

18.9. Theme

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

-
-

18.10. Default-apps

+
+

18.10. Default-apps

This is where you can set defaults @@ -2614,8 +2614,8 @@ This is where you can set defaults

-
-

18.11. Hyperexpo

+
+

18.11. Hyperexpo

hyprexpo gets installed and configured @@ -2655,8 +2655,8 @@ hyprexpo gets installed and configured

-
-

18.12. Alacritty

+
+

18.12. Alacritty

Alacritty gets installed and configured @@ -2678,8 +2678,8 @@ in

-
-

18.13. Dev Tools

+
+

18.13. Dev Tools

All the miscellaneous dev tools on this computer. @@ -2738,8 +2738,8 @@ All the miscellaneous dev tools on this computer.

-
-

18.14. Kitty

+
+

18.14. Kitty

Kitty gets installed and configured @@ -2763,8 +2763,8 @@ in

-
-

18.15. Shells

+
+

18.15. Shells

The aliases mentioned in ./assets/conf/dev/terminal/shells.conf will be added to enabled shells @@ -2987,8 +2987,8 @@ EOF

-
-

18.16. Zsh

+
+

18.16. Zsh

Zsh gets installed and configured @@ -3031,8 +3031,8 @@ in

-
-

18.17. Starship

+
+

18.17. Starship

The configuration mentioned in ./assets/conf/dev/terminal/starship.toml will be added to enabled shells @@ -3064,18 +3064,18 @@ in

-
-

18.18. Other Settings

+
+

18.18. Other Settings

Some repeated info from the configuration.

-
-

18.18.1. Home User

+
+

18.18.1. Home User

-
home.username = "${user.username}";
+
home.username = "${user.username}";
 home.homeDirectory = pkgs.lib.mkDefault "/home/${user.username}";
 home.stateVersion = user.stateVersion;
 
@@ -3084,8 +3084,8 @@ home.stateVersion = user.stateVersion;
-
-

19. Emacs

+
+

19. Emacs

I practically live inside emacs. The configuration for it is a mix between init.el and the nix configuration. @@ -3164,8 +3164,8 @@ Comments describe the emacs package and what it does.

-
-

19.1. Early Initialization

+
+

19.1. Early Initialization

There are some emacs settings that can be configured before the gui shows up. @@ -3270,8 +3270,8 @@ These are listed here.

-
-

19.2. Initialization

+
+

19.2. Initialization

Now starts the main emacs configuration. @@ -3683,22 +3683,22 @@ ting a file within such a

-
-

20. Machines

+
+

20. Machines

Only a few more things left. Specifically the machine level extra settings.

-
-

20.1. Traveldroid

+
+

20.1. Traveldroid

The configuration for the laptop does not change much. Most changes are because the hardware is different.

-
-

20.1.1. System Level

+
+

20.1.1. System Level

Nothing specific for the laptop. @@ -3716,8 +3716,8 @@ Nothing specific for the laptop.

-
-

20.1.2. Hardware

+
+

20.1.2. Hardware

This is the most different. Mostly taken from hardware-configuration.nix setup at first install. @@ -3766,8 +3766,8 @@ hardware.cpu.intel.updateMicrocode = lib.mkDefault config.hardware.enableRedistr

-
-

20.1.3. Home

+
+

20.1.3. Home

This is mostly about configuring the monitor. And laptop specific utilities. @@ -3794,18 +3794,18 @@ This is mostly about configuring the monitor. And laptop specific utilities.

-
-

21. README Utils

+
+

21. README Utils

-
-

21.0.1. Headers

+
+

21.0.1. Headers

This script adds a DO NOT MODIFY header to all the generated nix files.

-
(progn
+
(progn
   (defun add-tangle-headers ()
     (message "running in %s" (buffer-file-name))
     (when (string= (file-name-extension (buffer-file-name)) "nix")
@@ -3822,7 +3822,7 @@ This script adds a DO NOT MODIFY header to all the generated nix fi
 

Author: henrov

-

Created: 2026-02-23 ma 19:51

+

Created: 2026-02-23 ma 20:01

Validate

diff --git a/henrovnix/README.org b/henrovnix/README.org index 7f28a1fb7..32dd1c094 100755 --- a/henrovnix/README.org +++ b/henrovnix/README.org @@ -130,14 +130,14 @@ Additional software can be installed by extending the dedicated configuration fi │   │   │   └── packages.conf #+end_src -System packages are declared in =packages.conf= using their attribute names from Nixpkgs. The correct package names can be located through the official NixOS package search at:https://search.nixos.org/packages +System packages are declared in =packages.conf= using their attribute names from Nixpkgs. The correct package names can be located through the official NixOS package search at https://search.nixos.org/packages. Available Flatpak identifiers can be discovered using: #+begin_src bash :tangle no flatpak search #+end_src -or by browsing: https://flathub.org/ +or by browsing: https://flathub.org/. The behavior and integration of Flatpak installation within the system are defined in =install_flatpaks.nix=, which reads the corresponding configuration files and ensures declarative installation. @@ -164,7 +164,7 @@ In short, this repository provides a coherent and extensible base, not a finishe - the folder henrovnix as you find it here #+end_src -** First-time setup (manually) +** Setup when Emacs not (yet) available 1. Copy the folder *henrovnix* to your machine 2. First setup an internet connection @@ -208,7 +208,7 @@ In short, this repository provides a coherent and extensible base, not a finishe #+end_src 7. Run the build command to set up the system for the first time #+begin_src bash :tangle no block - sudo nixos-rebuild switch --flake .#=your_hostname= + sudo nixos-rebuild switch --flake .#your_hostname #+end_src * Testing and generating builds