diff --git a/system-master/README.html b/system-master/README.html index 252c66206..72fa629c0 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 @@ -801,10 +801,7 @@ Sometimes pinned to a specific commit because unstable broke something and the f inputs.nixpkgs.follows = "nixpkgs"; }; catppuccin = { - url = "github:catppuccin/nix";zen-browser = { - url = "github:youwen5/zen-browser-flake"; - inputs.nixpkgs.follows = "nixpkgs"; - }; + url = "github:catppuccin/nix"; inputs.nixpkgs.follows = "nixpkgs"; }; zen-browser = { @@ -818,8 +815,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. @@ -827,7 +824,7 @@ We also add a devshell that makes editing this repository easier in emacs.

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

-
({ ... }: {
+
({ ... }: {
   nixpkgs.overlays = [ emacs-overlay.overlays.default ];
 })
 
@@ -898,7 +895,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
 
@@ -908,7 +905,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;
@@ -951,8 +948,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. @@ -973,14 +970,14 @@ fi

-
-

15. Machines

+
+

15. Machines

The individual machines subdirectory is configured as follows :-

-
+--machine
+
+--machine
 |  +--configuration.nix
 |  +--home.nix
 |  +--hardware-configuration.nix
@@ -1001,12 +998,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 :- @@ -1020,8 +1017,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. @@ -1055,8 +1052,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 :- @@ -1099,16 +1096,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, inputs, ... }:
@@ -1168,8 +1165,8 @@ in
 
-
-

17.3. installflatpaks.nix

+
+

17.3. installflatpaks.nix

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

17.4. Nix Settings

+
+

17.4. Nix Settings

These are global nix settings that configure the settings for the actual tool. @@ -1330,8 +1327,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. @@ -1369,16 +1366,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. @@ -1403,8 +1400,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, ... }:
@@ -1551,8 +1548,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. @@ -1571,8 +1568,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. @@ -1613,8 +1610,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. @@ -1648,8 +1645,8 @@ in

-
-

17.12. Networking

+
+

17.12. Networking

Not much to see here. I want networking to be enabled. I want firewall as well. @@ -1680,8 +1677,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. @@ -1752,8 +1749,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. @@ -1786,8 +1783,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, ... }:
@@ -1865,11 +1862,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
@@ -1897,7 +1894,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
@@ -1913,14 +1910,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
 ];
@@ -1928,14 +1925,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 = [
@@ -1950,8 +1947,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. @@ -1959,8 +1956,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. @@ -1996,8 +1993,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. @@ -2051,11 +2048,11 @@ in

-
-

18.3. Waybar

+
+

18.3. Waybar

-
+

waybar.png

@@ -2092,8 +2089,8 @@ in
-
-
-

18.5. Idle Screen

+
+

18.5. Idle Screen

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

-
-

18.6. Hyprshell

+
+

18.6. Hyprshell

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

-
-

18.7. Hyprland

+
+

18.7. Hyprland

This configures the desktop environment along with the peripherals. The comments should explain whats happening. @@ -2226,8 +2223,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. @@ -2328,8 +2325,8 @@ in

-
-

18.9. Theme

+
+

18.9. Theme

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

-
-

18.11. Hyperexpo

+
+

18.11. Hyperexpo

hyprexpo gets installed and configured @@ -2423,8 +2420,8 @@ hyprexpo gets installed and configured

-
-

18.12. Alacritty

+
+

18.12. Alacritty

Alacritty gets installed and configured @@ -2446,8 +2443,8 @@ in

-
-

18.13. Dev Tools

+
+

18.13. Dev Tools

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

-
-

18.14. Kitty

+
+

18.14. Kitty

Kitty gets installed and configured @@ -2531,8 +2528,8 @@ in

-
-

18.15. Shells

+
+

18.15. Shells

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

-
-

18.16. Zsh

+
+

18.16. Zsh

Zsh gets installed and configured @@ -2799,8 +2796,8 @@ in

-
-

18.17. Starship

+
+

18.17. Starship

The configuration mentioned in ./assets/conf/dev/terminal/starship.toml will be added to enabled shells @@ -2832,18 +2829,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;
 
@@ -2852,8 +2849,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. @@ -2932,8 +2929,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. @@ -3038,8 +3035,8 @@ These are listed here.

-
-

19.2. Initialization

+
+

19.2. Initialization

Now starts the main emacs configuration. @@ -3451,22 +3448,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. @@ -3484,8 +3481,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. @@ -3534,8 +3531,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. @@ -3562,18 +3559,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")
@@ -3590,7 +3587,7 @@ This script adds a DO NOT MODIFY header to all the generated nix fi
 

Author: henrov

-

Created: 2026-02-22 zo 22:22

+

Created: 2026-02-22 zo 22:24

Validate

diff --git a/system-master/README.org b/system-master/README.org index 41aee9c1d..b231c9a40 100755 --- a/system-master/README.org +++ b/system-master/README.org @@ -322,10 +322,7 @@ The inputs for my system's configuration are very simple inputs.nixpkgs.follows = "nixpkgs"; }; catppuccin = { - url = "github:catppuccin/nix";zen-browser = { - url = "github:youwen5/zen-browser-flake"; - inputs.nixpkgs.follows = "nixpkgs"; - }; + url = "github:catppuccin/nix"; inputs.nixpkgs.follows = "nixpkgs"; }; zen-browser = { diff --git a/system-master/flake.lock b/system-master/flake.lock index 44c9d7534..10e174568 100644 --- a/system-master/flake.lock +++ b/system-master/flake.lock @@ -98,7 +98,28 @@ "catppuccin": "catppuccin", "emacs-overlay": "emacs-overlay", "home-manager": "home-manager", - "nixpkgs": "nixpkgs" + "nixpkgs": "nixpkgs", + "zen-browser": "zen-browser" + } + }, + "zen-browser": { + "inputs": { + "nixpkgs": [ + "nixpkgs" + ] + }, + "locked": { + "lastModified": 1771735013, + "narHash": "sha256-QAh0iw/AgjcaNvBE5OIZstxVxagLVK0RAuH7EhIL/N8=", + "owner": "youwen5", + "repo": "zen-browser-flake", + "rev": "32b69f03007507fc012be9203efdd414f4bc0d66", + "type": "github" + }, + "original": { + "owner": "youwen5", + "repo": "zen-browser-flake", + "type": "github" } } }, diff --git a/system-master/flake.nix b/system-master/flake.nix index b14560a6f..008ae4878 100644 --- a/system-master/flake.nix +++ b/system-master/flake.nix @@ -11,10 +11,7 @@ inputs.nixpkgs.follows = "nixpkgs"; }; catppuccin = { - url = "github:catppuccin/nix";zen-browser = { - url = "github:youwen5/zen-browser-flake"; - inputs.nixpkgs.follows = "nixpkgs"; - }; + url = "github:catppuccin/nix"; inputs.nixpkgs.follows = "nixpkgs"; }; zen-browser = {