STarting creating documentation, chapters 1-3 are do

This commit is contained in:
2026-02-23 19:52:10 +01:00
parent caefb3c0f4
commit 99b2f7ae89
21 changed files with 1000 additions and 546 deletions
+558 -323
View File
File diff suppressed because it is too large Load Diff
+323 -176
View File
@@ -1,6 +1,5 @@
gf#+OPTIONS: toc:nil broken-links:t
#+PROPERTY: header-args :noweb yes :results silent :mkdirp yes
#+HTML: <div align="center">
#+HTML: <div>
#+HTML: <img src="./.github/images/nixos.svg" width="100px" alt="NixOS" />
@@ -30,7 +29,10 @@ gf#+OPTIONS: toc:nil broken-links:t
* Introduction
#+HTML: <div align="center"><img src="./.github/images/need to create screenshot.png" width="100%" alt="Screenshot" /></div>
This repository contains a literate NixOS configuration built using Emacs Org mode. The primary source of truth is this document itself, which embeds configuration blocks that are tangled into individual files. These generated files are evaluated as a NixOS flake, resulting in an immutable, reproducible system configuration.
#+HTML_HEAD: <style>code{font-size:1.2em;}</style>
This repository contains a literate NixOS configuration built using Emacs Org mode. The primary source of truth is *this document itself*, which embeds configuration blocks that are tangled into individual files. These generated files are evaluated as a NixOS flake, resulting in an immutable, reproducible system configuration.
This work is based on the foundational efforts of Sandeep Nambiar (https://github.com/gamedolphin).
All credit for the original structure, methodology, and guidance belongs to him. His work provided the architectural basis and practical direction upon which this repository is built. This project would not have been possible without his prior contributions, and much of the instructional approach preserved here originates from his documentation.
@@ -41,36 +43,194 @@ 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.
** What do you get?
* Pre-requisites to edit this setup
- a NIXOS system installed (can be bare-bones)
- an internet connection
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.
To set up a connection from cli:
#+begin_src bash :tangle no block
# Check if NetworkManager service is running
systemctl status NetworkManager
# If not running, start it temporarily
sudo systemctl start NetworkManager
# Enable Wi-Fi radio (in case it is disabled)
nmcli radio wifi on
# List available Wi-Fi networks
nmcli device wifi list
# Connect to a Wi-Fi network (replace SSID and PASSWORD)
nmcli device wifi connect "SSID_NAME" password "YOUR_PASSWORD"
# Verify that the connection is active
nmcli connection show --active
# Optional: show device status
nmcli device status
The system provides a predefined baseline configuration that installs and enables the essential components required for a functional and extensible environment. Rather than prescribing a complete desktop experience, it establishes the structural framework upon which such an environment can be composed.
Core packages are installed as part of the base configuration. Additional software can be incorporated in a controlled and modular manner by extending configuration files.
** Base packages
The baseline package set is defined explicitly within the repository to ensure reproducibility:
#+begin_src bash :tangle no
- alsa-utils
- avy
- bibata-cursors
- brightnessctl
- cape
- catppuccin-gtk
- catppuccin-theme
- consult
- coreutils
- corfu
- crux
- dash
- diminish
- doom-modeline
- eat
- eldoc
- eldoc-box
- elephant
- emacs-pgtk
- envrc
- exec-path-from-shell
- expreg
- flatpak
- gnugrep
- gnused
- gptel
- hcl-mode
- hypridle
- hyprlandPlugins
- hyprlock
- hyprshell
- librsvg
- linuxPackages_latest
- magit
- magnetic-catppuccin-gtk
- marginalia
- nerd-icons
- nerd-icons-corfu
- nix-mode
- nixpkgs-fmt
- nushell
- orderless
- papirus-icon-theme
- pulsar
- puni
- rg
- rust-mode
- rustic
- shell-pop
- sideline
- sideline-eglot
- sideline-flymake
- tuigreet
- vertico
- vundo
- walker
- which-key
- wpaperd
- xdg-desktop-portal-gtk
- yasnippet
- yasnippet-snippets
- zsh
#+end_src
* machine1 — template machine
** Additional packages
Additional software can be installed by extending the dedicated configuration files that define system and Flatpak packages:
#+begin_src bash :tangle no
├── assets
│   ├── conf
│   │   ├── apps
│   │   │   ├── flatpaks.conf
│   │   │   └── 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
Available Flatpak identifiers can be discovered using:
#+begin_src bash :tangle no
flatpak search <application-name>
#+end_src
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.
This separation maintains clarity between system-level packages and user-facing Flatpak applications while preserving reproducibility and modular structure.
** 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.
You should not expect graphical configuration tools, wizard-driven setup screens, or extensive GUI-based system management. Configuration is performed declaratively through Nix modules and supporting configuration files. Familiarity with reading logs, adjusting modules, and rebuilding the system is assumed.
Certain subsystems may require manual tuning depending on hardware, desktop environment, or portal backend selection. For example, XDG desktop portals can exhibit inconsistent behavior across compositors and applications, particularly in Wayland-based environments. File chooser dialogs, screen sharing, or drag-and-drop functionality may require additional configuration or troubleshooting.
This project favors clarity, reproducibility, and modular structure over convenience abstractions. As a result, some integration details are intentionally left explicit rather than hidden behind automated defaults.
In short, this repository provides a coherent and extensible base, not a finished consumer product. It is a work in progress.
* Setting up your system manually
** Pre-requisites to build this setup
#+begin_src bash :tangle no block
- a NIXOS system installed with a user with sudo rights.
- an internet connection
- the folder henrovnix as you find it here
#+end_src
** First-time setup (manually)
1. Copy the folder *henrovnix* to your machine
2. First setup an internet connection
#+begin_src bash :tangle no block
# Check if NetworkManager service is running
systemctl status NetworkManager
# If not running, start it temporarily
sudo systemctl start NetworkManager
# Enable Wi-Fi radio (in case it is disabled)
nmcli radio wifi on
# List available Wi-Fi networks
nmcli device wifi list
# Connect to a Wi-Fi network (replace SSID and PASSWORD)
nmcli device wifi connect "SSID_NAME" password "YOUR_PASSWORD"
# Verify that the connection is active
nmcli connection show --active
# Optional: show device status
nmcli device status
#+end_src
3. Replace *<defaultUser>* in all files with =your_user=
#+begin_src bash :tangle no block
find ~/Repos/nixos/henrovnix \
-type d -name ".*" -prune -o \
-type f -print0 \
| xargs -0 sed -i 's/=<defaultUser>=/your_user/g'
#+end_src
4. Replace *machine1* in all files with =your_hostname=
#+begin_src bash :tangle no block
find ~/Repos/nixos/henrovnix \
-type d -name ".*" -prune -o \
-type f -print0 \
| xargs -0 sed -i 's/machine1/your_hostname/g'
#+end_src
5. Rename the folder ./machines/machine1 to your hostname
#+begin_src bash :tangle no block
mv ./machines/machine1 ./machines/your_hostname
#+end_src
6. Create a hardware-configuration.nix and copy it into the folder =./machines/your_hostname= overwriting any existing file
#+begin_src bash :tangle no block
nixos-generate-config
#+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=
#+end_src
* 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.
From this point onward, development becomes iterative: modify configuration, rebuild the system, verify behavior, and refine. Because the system is declarative, every change remains explicit, reviewable, and reversible.
The following sections provide practical guidance for editing and rebuilding, along with an explanation of the repository structure. They describe how the various files relate to one another, how the modular layers are composed, and how the configuration evolved into its current form. Understanding this structure will make future modifications more predictable and easier to maintain.
Below are several useful commands for testing configurations, generating builds, and managing system generations. These commands support safe experimentation by allowing you to evaluate changes before switching to them permanently, and to roll back if necessary.
To generate the Nix files:
#+begin_src bash :tangle no
emacs README.org --batch -f org-babel-tangle
#+end_src
To generate this documentation:
#+begin_src bash :tangle no
emacs --batch -l org -l ox-html README.org -f org-html-export-to-html --kill
#+end_src
Test the build while being able to reboot to previous version
#+begin_src bash :tangle no
sudo nixos-rebuild test --flake .#machine1
@@ -81,24 +241,12 @@ sudo nixos-rebuild switch --flake .#machine1
#+end_src
Build and run in a virtual machine (qemu must be installed)
#+begin_src bash :tangle no
sudo nixos-rebuild build-vm --flake ~/nixos-henrov#machine1
sudo nixos-rebuild build-vm --flake .#machine1
# running the vm:
./result/bin/run-nixos-vm
#+end_src
un this VM with result/
#+begin_src bash :tangle no
emacs README.org --batch -f org-babel-tangle
#+end_src
Once the Nix files are generated, deploy using:
#+begin_src bash :tangle no
nixos-rebuild switch --flake .#<machine>
#+end_src
Other files in this repo include:
Other important files:
* ~flake.lock~ for pinning input versions.
* ~assets/*~ for non-Nix-managed artifacts such as images and wallpapers.
@@ -119,143 +267,142 @@ Generated outputs should not be edited directly. A CI workflow can tangle and co
* [[[https://nixos.org/][NixOS](https://nixos.org/][NixOS)]] evaluates Nix expressions into a complete system configuration that can be applied by rebuild operations.
** Repository layout and folder conventions
#+HTML: <p>
#+HTML: This repository contains system modules, user modules, and configuration fragments. The following directories are treated as separate layers:
#+HTML: <code>./configuration</code> (NixOS modules), <code>./home</code> (Home Manager modules), and <code>./assets/conf</code> (configuration fragments referenced or deployed by the modules).
#+HTML: </p>
#+HTML: <p>
#+HTML: To keep navigation consistent, the same internal substructure is used in all three locations. Each layer keeps its role; only the internal grouping is standardized.
#+HTML: </p>
<p>
This repository contains system modules, user modules, and configuration fragments. The following directories are treated as separate layers:
<code>./configuration</code> (NixOS modules), <code>./home</code> (Home Manager modules), and <code>./assets/conf</code> (configuration fragments referenced or deployed by the modules).
</p>
<p>
To keep navigation consistent, the same internal substructure is used in all three locations. Each layer keeps its role; only the internal grouping is standardized.
</p>
** Shared domain folders
#+HTML: <ul>
#+HTML: <li><code>core/</code> base settings and common infrastructure</li>
#+HTML: <li><code>desktop/</code> graphical session, compositor, UI components, and integration</li>
#+HTML: <li><code>apps/</code> application enablement and application-level configuration</li>
#+HTML: <li><code>services/</code> background services and daemons</li>
#+HTML: <li><code>security/</code> secrets handling and security-related configuration</li>
#+HTML: <li><code>dev/</code> developer tooling and editor configuration</li>
#+HTML: </ul>
<ul>
<li><code>core/</code> base settings and common infrastructure</li>
<li><code>desktop/</code> graphical session, compositor, UI components, and integration</li>
<li><code>apps/</code> application enablement and application-level configuration</li>
<li><code>services/</code> background services and daemons</li>
<li><code>security/</code> secrets handling and security-related configuration</li>
<li><code>dev/</code> developer tooling and editor configuration</li>
</ul>
** Full tree (including unchanged parts)
#+HTML: <p>
#+HTML: The tree below shows the full repository layout, with the standardized internal structure applied only inside
#+HTML: <code>configuration/</code>, <code>home/</code>, and <code>assets/conf/</code>.
#+HTML: </p>
#+HTML: <pre><code>.
#+HTML: ├── assets
#+HTML: │   ├── background.png
#+HTML: │   ├── conf
#+HTML: │   │   ├── apps
#+HTML: │   │   │   ├── flatpaks.conf
#+HTML: │   │   │   ── packages.conf
#+HTML: │   │   ── core
#+HTML: │   │   │   ── lightdm.conf
#+HTML: │   │   ├── desktop
#+HTML: │   │   │   ── hypr
#+HTML: │   │   │   │   ├── bindings.conf
#+HTML: │   │   │   │  ── hyprland.conf
#+HTML: │   │   │   ├── wallpaper
#+HTML: │   │   │   │   ── wallpaper.conf
#+HTML: │   │   │   ── waybar
#+HTML: │   │   │   ├── config.jsonc
#+HTML: │   │   │   └── style.css
#+HTML: │   │   ├── dev
#+HTML: │   │   │   ├── hyprshell
#+HTML: │   │   │   │   ├── config.ron.bak
#+HTML: │   │   │   │   ── styles.css.bak
#+HTML: │   │   │   ── terminal
#+HTML: │   │   │   ── alacritty.toml
#+HTML: │   │   │   ├── aliases.conf
#+HTML: │   │   │   ├── enabled_shells.conf
#+HTML: │   │   │   ── kitty.conf
#+HTML: │   │   │   ├── starship.toml
#+HTML: │   │   │   └── zsh.conf
#+HTML: │   │   ├── security
#+HTML: │   │   │   └── ssh
#+HTML: │   │   │   ── ssh-client.conf
#+HTML: │   │   └── services
#+HTML: │   ├── lock.png
#+HTML: │   ├── scripts
#+HTML: │   ── wallpapers
#+HTML: │   ├── gif
#+HTML: │   ── pictures
#+HTML: │   │   ── background.png
#+HTML: │   │   ├── background1.png
#+HTML: │   │   ── background2.png
#+HTML: │   │   ├── background3.png
#+HTML: │   │   ── background4.png
#+HTML: │   │   └── background5.png
#+HTML: │   └── videos
#+HTML: │   ├── dark_water_large.mp4
#+HTML: │   └── white_blobs_small.mp4
#+HTML: ├── configuration
#+HTML: │   ├── apps
#+HTML: │   │   ├── install_flatpaks.nix
#+HTML: │   │   └── install_packages.nix
#+HTML: │   ├── core
#+HTML: │   │   ├── boot.nix
#+HTML: │   │   ├── files.nix
#+HTML: │   │   ├── locale.nix
#+HTML: │   │   ├── networking.nix
#+HTML: │   │   ── nix-settings.nix
#+HTML: │   ├── default.nix
#+HTML: │   ── desktop
#+HTML: │   │   ├── audio.nix
#+HTML: │   │   ├── hyprland.nix
#+HTML: │   │   ── login-tuigreeter.nix
#+HTML: │   ── dev
#+HTML: │   │   └── terminal.nix
#+HTML: │   ── security
#+HTML: │   └── services
#+HTML: │   └── services.nix
#+HTML: ├── flake.lock
#+HTML: ├── flake.nix
#+HTML: ├── hardware
#+HTML: │   └── hardware.nix
#+HTML: ├── home
#+HTML: │   ├── apps
#+HTML: │   │   ├── defaults-apps.nix
#+HTML: │   │   └── theme.nix
#+HTML: │   ├── default.nix
#+HTML: │   ├── desktop
#+HTML: │   │   ├── hyprexpo.nix
#+HTML: │   │   ├── hyprland.nix
#+HTML: │   │   ├── hyprlock.nix
#+HTML: │   │   ├── hypridle.nix
#+HTML: │   │   ├── hyprshell.nix
#+HTML: │   │   ├── walker.nix
#+HTML: │   │   ├── wallpaper.nix
#+HTML: │   │   └── waybar.nix
#+HTML: │   ── dev
#+HTML: │   ├── alacritty.nix
#+HTML: │   ├── dev.nix
#+HTML: │   ├── emacs
#+HTML: │   │   ├── default.nix
#+HTML: │   │   ├── early-init.el
#+HTML: │   │   └── init.el
#+HTML: │   ├── kitty.nix
#+HTML: │   ├── shells.nix
#+HTML: │   ── starship.nix
#+HTML: │   └── zsh.nix
#+HTML: ├── LICENSE
#+HTML: ├── machines
#+HTML: │   ── traveldroid
#+HTML: │   ├── configuration.nix
#+HTML: │   ├── hardware-configuration.nix
#+HTML: │   └── home.nix
#+HTML: ├── README.org
#+HTML: ├── secrets
#+HTML: │   └── secrets.yaml
#+HTML: └── user.nix
#+HTML: </code></pre>
The tree below shows the full repository layout, with the standardized internal structure applied only inside
#+begin_src bash :tangle no
├── assets
│   ├── conf
│   │   ├── apps
│   │   │   ── flatpaks.conf
│   │   │   ── packages.conf
│   │   ── core
│   │   │   ├── lightdm.conf
│   │   │   ── lightdm-gtk-greeter.conf
│   │   ├── desktop
│   │   │   ── hypr
│   │   │   │   ├── bindings.conf
│   │   │   │   ── hypridle.conf
│   │   │   │   ── hyprland.conf
│   │   │   │   ├── hyprlock.conf
│   │   │   │   ├── hyprshell
│   │   │   │   └── scripts
│   │   │   ├── wallpaper
│   │   │   │   ├── gif
│   │   │   │   ── pictures
│   │   │   │   ── videos
│   │   │   │   ── wallpaper.conf
│   │   │   └── waybar
│   │   │   ├── config.jsonc
│   │   │   ── style.css
│   │   ├── dev
│   │   │   └── terminal
│   │   │   ├── alacritty.toml
│   │   │   ├── aliases.conf
│   │   │   ── enabled_shells.conf
│   │   │   ├── kitty.conf
│   │   │   ├── starship.toml
│   │   │   └── zsh.conf
│   │   ── security
│   │   │   └── ssh
│   │   │   ── ssh-client.conf
│   │   ── services
│   ├── cursors
│   │   ── Bibata_Cursor-main
│   ├── icons
│   │   ── papirus-icon-theme-master
│   ├── lock.png
│   ├── scripts
│   └── themes
│   └── Catppuccin-Mocha-Standard-Blue-Dark
├── configuration
│   ├── apps
│   │   ├── install_flatpaks.nix
│   │   └── install_packages.nix
│   ├── core
│   │   ├── boot.nix
│   │   ├── files.nix
│   │   ├── locale.nix
│   │   ├── login-lightdm.nix
│   │   ── login-tuigreeter.nix
│   │   ├── networking.nix
│   │   ── nix-settings.nix
│   ├── default.nix
│   ├── desktop
│   │   ── audio.nix
│   │   ── hyprland.nix
│   ├── dev
│   │   ── terminal.nix
│   └── services
│   └── services.nix
├── flake.lock
├── flake.nix
├── hardware
│   └── hardware.nix
├── home
│   ├── apps
│   │   ├── defaults-apps.nix
│   │   └── theme.nix
│   ├── default.nix
│   ├── desktop
│   │   ├── hyprexpo.nix
│   │   ├── hypridle.nix
│   │   ├── hyprland.nix
│   │   ├── hyprlock.nix
│   │   ├── hyprshell.nix
│   │   ├── walker.nix
│   │   ├── wallpaper.nix
│   │   └── waybar.nix
│   ── dev
│   ├── alacritty.nix
│   ├── dev.nix
│   ├── emacs
│   │   ├── default.nix
│   │   ├── early-init.el
│   │   └── init.el
│   ├── kitty.nix
│   ├── shells.nix
│   ── starship.nix
│   └── zsh.nix
├── LICENSE
├── machines
│   ── machine1
│   │   ├── configuration.nix
│   │   ├── hardware-configuration.nix
│   │   └── home.nix
│   └── traveldroid
│   ├── configuration.nix
│   ├── hardware-configuration.nix
│   └── home.nix
├── README.html
├── README.org
└── user.nix
#+end_src
** Notes
#+HTML: <ul>
#+HTML: <li>Only the internal layout of <code>configuration/</code>, <code>home/</code>, and <code>assets/conf/</code> is standardized; all other paths remain as currently organized.</li>
#+HTML: <li>The <code>services/</code> and <code>security/</code> folders are included for completeness even if initially empty in some layers.</li>
#+HTML: </ul>
<ul>
<li>Only the internal layout of <code>configuration/</code>, <code>home/</code>, and <code>assets/conf/</code> is standardized; all other paths remain as currently organized.</li>
<li>The <code>services/</code> and <code>security/</code> folders are included for completeness even if initially empty in some layers.</li>
</ul>
~YourNixCode(Input) -> System Configuration~
@@ -294,7 +441,7 @@ The values are imported at the beginning and are available to almost all the fun
#+begin_src nix :tangle user.nix
{
system = "x86_64-linux";
username = "henrov";
username = "<defaultUser>";
stateVersion = "25.11";
locale = "nl_NL.UTF-8";
}
@@ -351,7 +498,7 @@ We also add a devshell that makes editing this repository easier in emacs.
user = import ./user.nix;
lib = nixpkgs.lib;
machines = [
"traveldroid"
"machine1"
];
pkgs = import nixpkgs {
inherit (user) system;
@@ -401,7 +548,7 @@ Lets look at the individual modules
})
#+end_src
2. Then the machine specific configuration, in this case, just "traveldroid".
2. Then the machine specific configuration, in this case, just "machine1".
#+name: flake-config-module
#+begin_src nix
./machines/${machine}/configuration.nix
@@ -557,7 +704,7 @@ This section describes the main system configuration for the computers that I ha
** 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
** install_packages.nix
** =install_packages.nix=
#+begin_src nix :tangle configuration/apps/install_packages.nix :noweb tangle :mkdirp yes
{ config, lib, pkgs, flakeRoot, inputs, ... }:
@@ -614,7 +761,7 @@ in
}
#+end_src
** install_flatpaks.nix
** =install_flatpaks.nix=
#+begin_src nix :tangle configuration/apps/install_flatpaks.nix :noweb tangle :mkdirp yes
{ config, pkgs, lib, flakeRoot, ... }:
@@ -1302,7 +1449,7 @@ This creates the user profile that I login with. Initially created during instal
#+begin_src nix
users.users.${user.username} = {
isNormalUser = true;
description = "henrov";
description = "<defaultUser>";
extraGroups = [
"networkmanager" # allow editing network connections
"wheel" # can do sudo
@@ -2196,7 +2343,7 @@ These are listed here.
(tool-bar-lines . 0) ; No tool bar
(undecorated . t) ; Remove extraneous X decorations
(vertical-scroll-bars . nil)) ; No vertical scroll-bars
user-full-name "Henrov henrov" ; ME!
user-full-name "Henrov <defaultUser>" ; ME!
;; memory configuration
;; Higher garbage collection threshold, prevents frequent gc locks, reset later
gc-cons-threshold most-positive-fixnum
@@ -2684,7 +2831,7 @@ The configuration for the laptop does not change much. Most changes are because
*** System Level
Nothing specific for the laptop.
#+begin_src nix :tangle machines/traveldroid/configuration.nix :noweb tangle :mkdirp yes
#+begin_src nix :tangle machines/machine1/configuration.nix :noweb tangle :mkdirp yes
{ user, ... } : {
imports =
[
@@ -2697,7 +2844,7 @@ Nothing specific for the laptop.
*** Hardware
This is the most different. Mostly taken from hardware-configuration.nix setup at first install.
#+begin_src nix :tangle machines/traveldroid/hardware-configuration.nix :noweb tangle :mkdirp yes
#+begin_src nix :tangle machines/machine1/hardware-configuration.nix :noweb tangle :mkdirp yes
{
hostname,
pkgs,
@@ -2740,7 +2887,7 @@ This is the most different. Mostly taken from hardware-configuration.nix setup a
*** Home
This is mostly about configuring the monitor. And laptop specific utilities.
#+begin_src nix :tangle machines/traveldroid/home.nix :noweb tangle :mkdirp yes
#+begin_src nix :tangle machines/machine1/home.nix :noweb tangle :mkdirp yes
{ pkgs, ... }:
{
imports = [
+4 -4
View File
@@ -1,19 +1,19 @@
##############################################
# These files are just for reference.
# If you want to change anything, edit the source files in:
# ~/henrovnix/assets/conf
# ~/<defaultUser>nix/assets/conf
#
# After that, run:
# cd ~/henrovnix && emacs README.org --batch -f org-babel-tangle && git add . && git commit -m "Adjusted conf files" && sudo nixos-rebuild switch --flake .#<yourhost>
# cd ~/<defaultUser>nix && emacs README.org --batch -f org-babel-tangle && git add . && git commit -m "Adjusted conf files" && sudo nixos-rebuild switch --flake .#<yourhost>
#
# If everything still works, you can use the same command but:
# - keep "switch"
# - and add a reboot:
#
# cd ~/henrovnix && sudo nixos-rebuild switch --flake .#<yourhost> && systemctl reboot
# cd ~/<defaultUser>nix && sudo nixos-rebuild switch --flake .#<yourhost> && systemctl reboot
#
# NOTE:
# Make sure the lines starting with: cd ~/henrovnix
# Make sure the lines starting with: cd ~/<defaultUser>nix
# are written as ONE single line.
##############################################
#app.zen_browser.zen
+4 -4
View File
@@ -1,18 +1,18 @@
##############################################
# These files are just for reference.
# If you want to change anything, edit the source files in:
# ~/henrovnix/assets/conf
# ~/<defaultUser>nix/assets/conf
#
# After that, run:
# cd ~/henrovnix && emacs README.org --batch -f org-babel-tangle && git add . && git commit -m "Adjusted conf files" && sudo nixos-rebuild switch --flake .#<yourhost>
# cd ~/<defaultUser>nix && emacs README.org --batch -f org-babel-tangle && git add . && git commit -m "Adjusted conf files" && sudo nixos-rebuild switch --flake .#<yourhost>
#
# If everything still works, you can use the same command but:
# - keep "switch"
# - and add a reboot:
#
# cd ~/henrovnix && sudo nixos-rebuild switch --flake .#<yourhost> && systemctl reboot
# cd ~/<defaultUser>nix && sudo nixos-rebuild switch --flake .#<yourhost> && systemctl reboot
#
# Make sure the lines starting with: cd ~/henrovnix
# Make sure the lines starting with: cd ~/<defaultUser>nix
# are written as ONE single line.
#
#IMPORTANT:
+4 -4
View File
@@ -1,19 +1,19 @@
##############################################
# These files are just for reference.
# If you want to change anything, edit the source files in:
# ~/henrovnix/assets/conf
# ~/<defaultUser>nix/assets/conf
#
# After that, run:
# cd ~/henrovnix && emacs README.org --batch -f org-babel-tangle && git add . && git commit -m "Adjusted conf files" && sudo nixos-rebuild switch --flake .#<yourhost>
# cd ~/<defaultUser>nix && emacs README.org --batch -f org-babel-tangle && git add . && git commit -m "Adjusted conf files" && sudo nixos-rebuild switch --flake .#<yourhost>
#
# If everything still works, you can use the same command but:
# - keep "switch"
# - and add a reboot:
#
# cd ~/henrovnix && sudo nixos-rebuild switch --flake .#<yourhost> && systemctl reboot
# cd ~/<defaultUser>nix && sudo nixos-rebuild switch --flake .#<yourhost> && systemctl reboot
#
# NOTE:
# Make sure the lines starting with: cd ~/henrovnix
# Make sure the lines starting with: cd ~/<defaultUser>nix
# are written as ONE single line.
##############################################
# Minimal Hyprland config for greetd
@@ -1,19 +1,19 @@
##############################################
# These files are just for reference.
# If you want to change anything, edit the source files in:
# ~/henrovnix/assets/conf
# ~/<defaultUser>nix/assets/conf
#
# Temporarily(!) testing can by editing this file, edit the file and reloading hyprshell
# After that, run:
# cd ~/henrovnix && emacs README.org --batch -f org-babel-tangle && git add . && git commit -m "Adjusted conf files" && sudo nixos-rebuild switch --flake .#<yourhost>
# cd ~/<defaultUser>nix && emacs README.org --batch -f org-babel-tangle && git add . && git commit -m "Adjusted conf files" && sudo nixos-rebuild switch --flake .#<yourhost>
#
# If everything still works, you can use the same command but:
# - keep "switch"
# - and add a reboot:
#
# cd ~/henrovnix && sudo nixos-rebuild switch --flake .#<yourhost> && systemctl reboot
# cd ~/<defaultUser>nix && sudo nixos-rebuild switch --flake .#<yourhost> && systemctl reboot
#
# Make sure the lines starting with: cd ~/henrovnix
# Make sure the lines starting with: cd ~/<defaultUser>nix
# are written as ONE single line.
###############################################
@@ -1,20 +1,20 @@
##############################################
# These files are just for reference.
# If you want to change anything definitive, edit the source files in:
# ~/henrovnix/assets/conf
# ~/<defaultUser>nix/assets/conf
# Temporarily(!) testing can by editing this file, edit the file and reloading hyprshell
#
# After that, run:
# cd ~/henrovnix && emacs README.org --batch -f org-babel-tangle && git add . && git commit -m "Adjusted conf files" && sudo nixos-rebuild switch --flake .#<yourhost>
# cd ~/<defaultUser>nix && emacs README.org --batch -f org-babel-tangle && git add . && git commit -m "Adjusted conf files" && sudo nixos-rebuild switch --flake .#<yourhost>
#
# If everything still works, you can use the same command but:
# - keep "switch"
# - and add a reboot:
#
# cd ~/henrovnix && sudo nixos-rebuild switch --flake .#<yourhost> && systemctl reboot
# cd ~/<defaultUser>nix && sudo nixos-rebuild switch --flake .#<yourhost> && systemctl reboot
#
# NOTE:
# Make sure the lines starting with: cd ~/henrovnix
# Make sure the lines starting with: cd ~/<defaultUser>nix
# are written as ONE single line.
###############################################
@@ -2,7 +2,7 @@
# Wallpaper config (wpaperd, TOML)
#
# Source-of-truth in repo:
# ~/henrovnix/assets/conf/desktop/wallpaper/wallpaper.conf
# ~/<defaultUser>nix/assets/conf/desktop/wallpaper/wallpaper.conf
#
# Runtime override (user edits this):
# ~/conf/desktop/wallpaper/wallpaper.conf
@@ -1,19 +1,19 @@
##############################################
# These files are just for reference.
# If you want to change anything, edit the source files in:
# ~/henrovnix/assets/conf
# ~/<defaultUser>nix/assets/conf
#
# After that, run:
# cd ~/henrovnix && emacs README.org --batch -f org-babel-tangle && git add . && git commit -m "Adjusted conf files" && sudo nixos-rebuild switch --flake .#<yourhost>
# cd ~/<defaultUser>nix && emacs README.org --batch -f org-babel-tangle && git add . && git commit -m "Adjusted conf files" && sudo nixos-rebuild switch --flake .#<yourhost>
#
# If everything still works, you can use the same command but:
# - keep "switch"
# - and add a reboot:
#
# cd ~/henrovnix && sudo nixos-rebuild switch --flake .#<yourhost> && systemctl reboot
# cd ~/<defaultUser>nix && sudo nixos-rebuild switch --flake .#<yourhost> && systemctl reboot
#
# NOTE:
# Make sure the lines starting with: cd ~/henrovnix
# Make sure the lines starting with: cd ~/<defaultUser>nix
# are written as ONE single line.
##############################################
@@ -21,11 +21,11 @@ alias gcp='git add . && git commit && git push'
alias cd='z'
alias nps='xdg-open https://search.nixos.org'
alias hvnx='cd ~/Repos/nixos/henrovnix'
alias hvnx='cd ~/Repos/nixos/<defaultUser>nix'
alias emt='hvnx && emacs README.org --batch -f org-babel-tangle && emacs -Q --batch README.org -f org-html-export-to-html'
alias nxs='hvnx && sudo nixos-rebuild switch --flake .#traveldroid'
alias nxt='hvnx && sudo nixos-rebuild test --flake .#traveldroid'
alias nxv='hvnx && sudo nixos-rebuild build-vm --flake .#traveldroid && "$(ls -1 ./result/bin/run-*-vm | head -n 1)"'
alias nxs='hvnx && sudo nixos-rebuild switch --flake .#machine1'
alias nxt='hvnx && sudo nixos-rebuild test --flake .#machine1'
alias nxv='hvnx && sudo nixos-rebuild build-vm --flake .#machine1 && "$(ls -1 ./result/bin/run-*-vm | head -n 1)"'
alias rb='systemctl reboot'
alias po='systemctl poweroff'
@@ -35,7 +35,7 @@ alias fps='flatpak search'
alias fpi='flatpak install'
alias fpr='flatpak run'
alias nxc='ssh henrov@nextcloud.data-pro.nu'
alias nxc='ssh <defaultUser>@nextcloud.data-pro.nu'
alias vs='code'
@@ -1,19 +1,19 @@
##############################################
# These files are just for reference.
# If you want to change anything, edit the source files in:
# ~/henrovnix/assets/conf
# ~/<defaultUser>nix/assets/conf
#
# After that, run:
# cd ~/henrovnix && emacs README.org --batch -f org-babel-tangle && git add . && git commit -m "Adjusted conf files" && sudo nixos-rebuild switch --flake .#<yourhost>
# cd ~/<defaultUser>nix && emacs README.org --batch -f org-babel-tangle && git add . && git commit -m "Adjusted conf files" && sudo nixos-rebuild switch --flake .#<yourhost>
#
# If everything still works, you can use the same command but:
# - keep "switch"
# - and add a reboot:
#
# cd ~/henrovnix && sudo nixos-rebuild switch --flake .#<yourhost> && systemctl reboot
# cd ~/<defaultUser>nix && sudo nixos-rebuild switch --flake .#<yourhost> && systemctl reboot
#
# NOTE:
# Make sure the lines starting with: cd ~/henrovnix
# Make sure the lines starting with: cd ~/<defaultUser>nix
# are written as ONE single line.
###############################################
#~/nixos/files/conf/terminal/kitty.conf
+4 -4
View File
@@ -1,19 +1,19 @@
##############################################
# These files are just for reference.
# If you want to change anything, edit the source files in:
# ~/henrovnix/assets/conf
# ~/<defaultUser>nix/assets/conf
#
# After that, run:
# cd ~/henrovnix && emacs README.org --batch -f org-babel-tangle && git add . && git commit -m "Adjusted conf files" && sudo nixos-rebuild switch --flake .#<yourhost>
# cd ~/<defaultUser>nix && emacs README.org --batch -f org-babel-tangle && git add . && git commit -m "Adjusted conf files" && sudo nixos-rebuild switch --flake .#<yourhost>
#
# If everything still works, you can use the same command but:
# - keep "switch"
# - and add a reboot:
#
# cd ~/henrovnix && sudo nixos-rebuild switch --flake .#<yourhost> && systemctl reboot
# cd ~/<defaultUser>nix && sudo nixos-rebuild switch --flake .#<yourhost> && systemctl reboot
#
# NOTE:
# Make sure the lines starting with: cd ~/henrovnix
# Make sure the lines starting with: cd ~/<defaultUser>nix
# are written as ONE single line.
###############################################
#~/nixos/files/conf/terminal/zsh.conf
@@ -1,19 +1,19 @@
##############################################
# These files are just for reference.
# If you want to change anything, edit the source files in:
# ~/henrovnix/assets/conf
# ~/<defaultUser>nix/assets/conf
#
# After that, run:
# cd ~/henrovnix && emacs README.org --batch -f org-babel-tangle && git add . && git commit -m "Adjusted conf files" && sudo nixos-rebuild switch --flake .#<yourhost>
# cd ~/<defaultUser>nix && emacs README.org --batch -f org-babel-tangle && git add . && git commit -m "Adjusted conf files" && sudo nixos-rebuild switch --flake .#<yourhost>
#
# If everything still works, you can use the same command but:
# - keep "switch"
# - and add a reboot:
#
# cd ~/henrovnix && sudo nixos-rebuild switch --flake .#<yourhost> && systemctl reboot
# cd ~/<defaultUser>nix && sudo nixos-rebuild switch --flake .#<yourhost> && systemctl reboot
#
# NOTE:
# Make sure the lines starting with: cd ~/henrovnix
# Make sure the lines starting with: cd ~/<defaultUser>nix
# are written as ONE single line.
##############################################
Host *
+1 -1
View File
@@ -43,7 +43,7 @@
users.users.${user.username} = {
isNormalUser = true;
description = "henrov";
description = "<defaultUser>";
extraGroups = [
"networkmanager" # allow editing network connections
"wheel" # can do sudo
+1 -1
View File
@@ -30,7 +30,7 @@
user = import ./user.nix;
lib = nixpkgs.lib;
machines = [
"traveldroid"
"machine1"
];
pkgs = import nixpkgs {
inherit (user) system;
+1 -1
View File
@@ -17,7 +17,7 @@
(tool-bar-lines . 0) ; No tool bar
(undecorated . t) ; Remove extraneous X decorations
(vertical-scroll-bars . nil)) ; No vertical scroll-bars
user-full-name "Henrov henrov" ; ME!
user-full-name "Henrov <defaultUser>" ; ME!
;; memory configuration
;; Higher garbage collection threshold, prevents frequent gc locks, reset later
gc-cons-threshold most-positive-fixnum
+7
View File
@@ -0,0 +1,7 @@
{ user, ... } : {
imports =
[
./hardware-configuration.nix
../../configuration
];
}
+38
View File
@@ -0,0 +1,38 @@
{
hostname,
pkgs,
lib,
modulesPath,
user,
config,
...
}:
{
imports = [
(modulesPath + "/installer/scan/not-detected.nix")
../../hardware/hardware.nix
];
boot.initrd.availableKernelModules = [ "xhci_pci" "nvme" "usb_storage" "sd_mod" "rtsx_usb_sdmmc" ];
boot.initrd.kernelModules = [ ];
boot.kernelModules = [ "kvm-intel" ];
boot.extraModulePackages = [ ];
fileSystems."/" =
{ device = "/dev/disk/by-uuid/69433a14-fbaf-401b-af85-cd1bbf02b4e2";
fsType = "ext4";
};
fileSystems."/boot" =
{ device = "/dev/disk/by-uuid/811D-0676";
fsType = "vfat";
options = [ "fmask=0077" "dmask=0077" ];
};
swapDevices =
[ { device = "/dev/disk/by-uuid/b6c557c2-7682-460b-a5e7-8f6f2f429a3a"; }
];
nixpkgs.hostPlatform = lib.mkDefault "x86_64-linux";
hardware.cpu.intel.updateMicrocode = lib.mkDefault config.hardware.enableRedistributableFirmware;
}
+15
View File
@@ -0,0 +1,15 @@
{ pkgs, ... }:
{
imports = [
../../home
];
home.packages = with pkgs; [
brightnessctl
];
wayland.windowManager.hyprland = {
extraConfig = ''
# Default portable monitor rule
monitor=DP-1,3840x1080@144,1920x0,1
'';
};
}
+12
View File
@@ -1,3 +1,15 @@
find ~/Repos/nixos/henrovnix \
-type d -name ".*" -prune -o \
-type f -print0 \
| xargs -0 sed -i 's/<defaultUser>/youruser/g'
find ~/Repos/nixos/henrovnix \
-type d -name ".*" -prune -o \
-type f -print0 \
| xargs -0 sed -i 's/machine1/yourhostname/g'
nixos-generate-config
# Check if NetworkManager service is running
systemctl status NetworkManager
# If not running, start it temporarily
+1 -1
View File
@@ -1,6 +1,6 @@
{
system = "x86_64-linux";
username = "henrov";
username = "<defaultUser>";
stateVersion = "25.11";
locale = "nl_NL.UTF-8";
}