diff --git a/system-master/README.html b/system-master/README.html index df29148a4..3687db08c 100644 --- a/system-master/README.html +++ b/system-master/README.html @@ -3,7 +3,7 @@ "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> - + @@ -200,119 +200,119 @@

Table of Contents

-
-

1. Introduction

+
+

1. Introduction

Screenshot
@@ -375,8 +375,8 @@ Before proceeding with installation, it is strongly recommended to read this doc

-
-

2. Pre-requisites to edit this setup

+
+

2. Pre-requisites to edit this setup

  • a NIXOS system installed (can be bare-bones)
  • @@ -405,8 +405,8 @@ nmcli device status
-
-

3. machine1 — template machine

+
+

3. machine1 — template machine

To generate the Nix files: @@ -463,46 +463,46 @@ Other files in this repo include:

-
-

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

This repository contains system modules, user modules, and configuration fragments. The following directories are treated as separate layers: @@ -513,8 +513,8 @@ To keep navigation consistent, the same internal substructure is used in all thr

-
-

10.2. Shared domain folders

+
+

10.2. Shared domain folders

  • core/ – base settings and common infrastructure
  • @@ -526,8 +526,8 @@ To keep navigation consistent, the same internal substructure is used in all thr
-
-

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 @@ -643,8 +643,8 @@ The tree below shows the full repository layout, with the standardized internal

-
-

10.4. Notes

+
+

10.4. Notes

  • Only the internal layout of configuration/, home/, and assets/conf/ is standardized; all other paths remain as currently organized.
  • @@ -675,8 +675,8 @@ This prevents unwanted and surprise updates when rebuilding without changing the
-
-

11. TLDR App List

+
+

11. TLDR App List

@@ -755,8 +755,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. @@ -773,8 +773,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 @@ -811,8 +811,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. @@ -820,7 +820,7 @@ We also add a devshell that makes editing this repository easier in emacs.

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

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

-
./machines/${machine}/configuration.nix
+
./machines/${machine}/configuration.nix
 
@@ -901,7 +901,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;
@@ -944,8 +944,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. @@ -966,14 +966,14 @@ fi

-
-

15. Machines

+
+

15. Machines

The individual machines subdirectory is configured as follows :-

-
+--machine
+
+--machine
 |  +--configuration.nix
 |  +--home.nix
 |  +--hardware-configuration.nix
@@ -994,12 +994,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 :- @@ -1013,8 +1013,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. @@ -1048,8 +1048,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 :- @@ -1092,16 +1092,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. installpackages.nix

+
+

17.2. installpackages.nix

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

17.3. installflatpaks.nix

+
+

17.3. installflatpaks.nix

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

17.4. Nix Settings

+
+

17.4. Nix Settings

These are global nix settings that configure the settings for the actual tool. @@ -1318,8 +1318,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. @@ -1357,16 +1357,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. @@ -1391,8 +1391,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, ... }:
@@ -1539,8 +1539,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. @@ -1559,8 +1559,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. @@ -1601,8 +1601,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. @@ -1636,8 +1636,8 @@ in

-
-

17.12. Networking

+
+

17.12. Networking

Not much to see here. I want networking to be enabled. I want firewall as well. @@ -1668,8 +1668,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. @@ -1739,12 +1739,14 @@ The configuration is done in the home manager section. # Optional; GNOME-specific (keep only if you really use gnome-keyring integration) security.pam.services.gdm.enableGnomeKeyring = true; } + +

-
-

17.14. Services

+
+

17.14. Services

These are some of the services that I enable at the system level. Explanation in the comments. @@ -1777,8 +1779,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, ... }:
@@ -1856,11 +1858,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
@@ -1888,7 +1890,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
@@ -1904,14 +1906,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
 ];
@@ -1919,14 +1921,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 = "henrov";
   extraGroups = [
@@ -1941,8 +1943,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. @@ -1950,8 +1952,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. @@ -1987,8 +1989,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. @@ -2042,11 +2044,11 @@ in

-
-

18.3. Waybar

+
+

18.3. Waybar

-
+

waybar.png

@@ -2083,8 +2085,8 @@ in
-
-
-

18.5. Idle Screen

+
+

18.5. Idle Screen

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

-
-

18.6. Hyprshell

+
+

18.6. Hyprshell

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

-
-

18.7. Hyprland

+
+

18.7. Hyprland

This configures the desktop environment along with the peripherals. The comments should explain whats happening. @@ -2217,8 +2219,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. @@ -2319,8 +2321,8 @@ in

-
-

18.9. Theme

+
+

18.9. Theme

I use the Catppuccin almost everywhere. The nix module integrates almost automatically everywhere (except gtk). @@ -2353,8 +2355,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 @@ -2373,8 +2375,8 @@ This is where you can set defaults

-
-

18.11. Hyperexpo

+
+

18.11. Hyperexpo

hyprexpo gets installed and configured @@ -2414,8 +2416,8 @@ hyprexpo gets installed and configured

-
-

18.12. Alacritty

+
+

18.12. Alacritty

Alacritty gets installed and configured @@ -2437,8 +2439,8 @@ in

-
-

18.13. Dev Tools

+
+

18.13. Dev Tools

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

-
-

18.14. Kitty

+
+

18.14. Kitty

Kitty gets installed and configured @@ -2522,8 +2524,8 @@ in

-
-

18.15. Shells

+
+

18.15. Shells

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

-
-

18.16. Zsh

+
+

18.16. Zsh

Zsh gets installed and configured @@ -2790,8 +2792,8 @@ in

-
-

18.17. Starship

+
+

18.17. Starship

The configuration mentioned in ./assets/conf/dev/terminal/starship.toml will be added to enabled shells @@ -2823,18 +2825,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;
 
@@ -2843,8 +2845,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. @@ -2923,8 +2925,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. @@ -3029,8 +3031,8 @@ These are listed here.

-
-

19.2. Initialization

+
+

19.2. Initialization

Now starts the main emacs configuration. @@ -3442,22 +3444,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. @@ -3475,8 +3477,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. @@ -3525,8 +3527,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. @@ -3553,18 +3555,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")
@@ -3581,7 +3583,7 @@ This script adds a DO NOT MODIFY header to all the generated nix fi
 

Author: henrov

-

Created: 2026-02-22 zo 21:36

+

Created: 2026-02-22 zo 21:43

Validate

diff --git a/system-master/README.org b/system-master/README.org index 846e6daa7..8cfd5de09 100755 --- a/system-master/README.org +++ b/system-master/README.org @@ -1130,6 +1130,8 @@ The configuration is done in the home manager section. # Optional; GNOME-specific (keep only if you really use gnome-keyring integration) security.pam.services.gdm.enableGnomeKeyring = true; } + + #+end_src ** Services diff --git a/system-master/home/desktop/.hyprland.nix.kate-swp b/system-master/home/desktop/.hyprland.nix.kate-swp deleted file mode 100644 index 1a0d7ed15..000000000 Binary files a/system-master/home/desktop/.hyprland.nix.kate-swp and /dev/null differ