Skip to content

Commit

Permalink
Merge pull request #5 from TheMaxMur/develop
Browse files Browse the repository at this point in the history
Merge develop into master
  • Loading branch information
TheMaxMur authored Jan 21, 2025
2 parents b2b6b7c + 5fe6f53 commit 428b1e6
Show file tree
Hide file tree
Showing 240 changed files with 5,493 additions and 3,669 deletions.
10 changes: 1 addition & 9 deletions .github/workflows/checks.yml
Original file line number Diff line number Diff line change
@@ -1,29 +1,21 @@
name: "Check configuration"

on:
push:
pull_request:

jobs:
check:
runs-on: ubuntu-latest

steps:
- name: Checkout repository
uses: actions/checkout@v4

- name: Install Nix
uses: cachix/install-nix-action@v24
with:
extra_nix_config: |
experimental-features = nix-command flakes
experimental-features = nix-command flakes
- name: Run statix check
run: nix run 'nixpkgs/nixos-unstable#statix' -- check .

- name: Run deadnix check
run: nix run 'nixpkgs/nixos-unstable#deadnix' -- .

- name: Run flake check
uses: DeterminateSystems/flake-checker-action@v5

81 changes: 42 additions & 39 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -15,46 +15,46 @@
- [Features](#-features)
- [File structure](#-file-structure)
- [Desktop preview](#%EF%B8%8F-desktop-preview)
- [Hyprland](#-hyprland)
- [Sway](#-sway)
- [Hyprland](#-hyprland)
- [Sway](#-sway)
- [Software](#-software)
- [Network topology](#-network-topology)
- [Hosts description](#%EF%B8%8F-hosts-description)
- [Keyboard](#%EF%B8%8F-keyboard)
- [Special thanks](#%EF%B8%8F-special-thanks)
- [Star history](#-star-history)

## ✨ Features
## ✨ Features

- ❄️ Flakes -- for precise dependency management of the entire system.
- 🏡 Home Manager -- to configure all used software for the user.
- 💽 Disko -- for declarative disk management: luks + lvm + btrfs.
- ⚠️ Impermanence -- to remove junk files and directories that are not specified in the config.
- 💈 Stylix -- to customize the theme for the entire system and the software you use.
- 🍎 NixDarwin -- to declaratively customize MacOS.
- 🔐 Lanzaboot -- to securely boot the system.
- ❄️ Flakes - for precise dependency management of the entire system.
- 🏡 Home Manager - to configure all used software for the user.
- 💽 Disko - for declarative disk management: luks + lvm + btrfs.
- ⚠️ Impermanence - to remove junk files and directories that are not specified in the config.
- 💈 Stylix - to customize the theme for the entire system and the software you use.
- 🍎 NixDarwin - to declaratively customize MacOS.
- 🔐 Lanzaboot - to securely boot the system.
- 📁 Config file structure and modules with options.

## 📁 File structure

- [❄️ flake.nix](flake.nix) configuration entry point
- [🏡 home](home/default.nix) entry point for creating a home manager user
- [🧩 modules](home/modules/) home manager modules
- [♻️ overlays](home/overlays) home manager overlays
- [👤 users](home/users) users configurations for home manager
- [🧩 modules](home/users/maxmur/modules/) home manager user modules
- [🧩 modules](home/modules/) home manager modules
- [♻️ overlays](home/overlays) home manager overlays
- [👤 users](home/users) users configurations for home manager
- [🧩 modules](home/users/maxmur/modules/) home manager user modules
- [📃 lib](lib/default.nix) helper functions for creating configurations
- [🧩 modules](modules/default.nix) common modules for nixos/nixDarwin/home-manager
- [♻️ overlays](overlays/) common overlays
- [❄️parts](parts/) flake parts modules
- [💀pkgs](pkgs/) self-sealed packages
- [🖥️ system](system/default.nix) entry point for creating a machine
- [🏎️ machine](system/machine) machines configurations
- [🚀 hostname](system/machine/pcbox/) starting the configuration of a specific machine
- [🧩 modules](system/machine/pcbox/modules) machine modules
- [💾 hardware](system/machine/pcbox/modules/hardware) machine hardware modules
- [🧩 modules](system/modules) common modules for machines
- [♻️ overlays](system/overlays) common overlays for machines
- [🏎️ machine](system/machine) machines configurations
- [🚀 hostname](system/machine/pcbox/) starting the configuration of a specific machine
- [🧩 modules](system/machine/pcbox/modules) machine modules
- [💾 hardware](system/machine/pcbox/modules/hardware) machine hardware modules
- [🧩 nixos](system/nixos) nixos modules/overlays/etc
- [🧩 darwin](system/darwin) nixos modules/overlays/etc
- [📄 templates](templates/default.nix) templates for creating configuration parts

## 🖼️ Desktop preview
Expand All @@ -81,16 +81,16 @@ The images below may not represent the final system. Some parts may differ.

## 📘 Software

- OS - [**`NixOS`**](https://nixos.org/)
- WM - [**`Hyprland`**](https://hyprland.org/) or [**`Sway`**](https://github.com/swaywm/sway)
- Theme - [**`Nord`**](https://github.com/nordtheme/nord)
- Wallpapers - [**`Grey wave`**](assets/grey_gradient.png)
- Editor - [**`Neovim`**](https://neovim.io/)
- Bar - [**`Waybar`**](https://github.com/Alexays/Waybar)
- Terminal - [**`Foot`**](https://codeberg.org/dnkl/foot)
- Shell - [**`Fish`**](https://fishshell.com/)
- Promt - [**`Starship`**](https://starship.rs/)
- Filemanager - [**`Yazi`**](https://github.com/sxyazi/yazi)
- OS - [**`NixOS`**](https://nixos.org/)
- WM - [**`Hyprland`**](https://hyprland.org/) or [**`Sway`**](https://github.com/swaywm/sway)
- Theme - [**`Nord`**](https://github.com/nordtheme/nord)
- Wallpapers - [**`Grey wave`**](assets/grey_gradient.png)
- Editor - [**`Neovim`**](https://neovim.io/)
- Bar - [**`Waybar`**](https://github.com/Alexays/Waybar)
- Terminal - [**`Foot`**](https://codeberg.org/dnkl/foot)
- Shell - [**`Fish`**](https://fishshell.com/)
- Promt - [**`Starship`**](https://starship.rs/)
- Filemanager - [**`Yazi`**](https://github.com/sxyazi/yazi)

## 👀 Network topology

Expand All @@ -102,23 +102,25 @@ These diagrams show the network topology of my home network.

## 🖥️ Hosts description

| Hostname | Board | CPU | RAM | GPU | OS | State |
| --- | --- | --- | --- | --- | --- | --- |
| pcbox | X299 AORUS Ultra Gaming Pro-CF | i7-7800X | 64GB | Sapphire AMD Radeon RX 7600 XT PULSE | NixOS | OK |
| nbox | Asus ZenBook 2024 Oled | Ultra7 155h | 32GB | Integrated Intel Arc (?) | NixOS | OK |
| rasp | Raspberry Pi 4 | Broadcom BCM2711 | 4GB | Broadcom VideoCore VI | NixOS | OK |
| macbox | Mac Mini M1 | Apple Silicon M1 | 8GB | Apple M1 8-Core GPU | MacOS | ? |
| Hostname | Board | CPU | RAM | GPU | OS | State |
| -------- | ------------------------------ | ---------------- | ----- | ------------------------------------ | ----- | ----- |
| pcbox | ASRock B650 Pro RS | Ryzen 5 7500f | 32GB | Sapphire AMD Radeon RX 7600 XT PULSE | NixOS | OK |
| nbox | Asus ZenBook 2024 Oled | Ultra7 155h | 32GB | Integrated Intel Arc (?) | NixOS | OK |
| hlbox | X299 AORUS Ultra Gaming Pro-CF | i7-7800X | 128GB | GTX 1050ti | NixOS | OK |
| p8box | P8 Mini Laptop | Intel N100 | 12GB | Intel UHD Graphics | NixOS | OK |
| rasp | Raspberry Pi 4 | Broadcom BCM2711 | 4GB | Broadcom VideoCore VI | NixOS | OK |
| macbox | Mac Mini M1 | Apple Silicon M1 | 8GB | Apple M1 8-Core GPU | MacOS | OK |

## ⌨️ Keyboard

I use corne split with a modified [miryoku](https://github.com/manna-harbour/miryoku) layout. This is one of the most affordable and easy options for an ergonomic keyboard.
I use corne split with a modified [miryoku](https://github.com/manna-harbour/miryoku) layout. This is one of the most affordable and easy options for an ergonomic keyboard.

- WS Heavy Tactile switches
- Blank white PBT Cherry keycaps
- KBDFANS switch pads
- Tape mod
- O-rings
- Jincomso wrist rest
- Jincomso wrist rest

<details><summary>Layer 0 Main</summary>

Expand Down Expand Up @@ -174,6 +176,8 @@ I use corne split with a modified [miryoku](https://github.com/manna-harbour/mir

[voronind-com](https://github.com/voronind-com)

[Corgiek](https://github.com/Corgiek)

## ⭐ Star History

<a href="https://star-history.com/#TheMaxMur/NixOS-Configuration&Date">
Expand All @@ -183,4 +187,3 @@ I use corne split with a modified [miryoku](https://github.com/manna-harbour/mir
<img alt="Star History Chart" src="https://api.star-history.com/svg?repos=TheMaxMur/NixOS-Configuration&type=Date" />
</picture>
</a>

7 changes: 7 additions & 0 deletions docs/default.nix
Original file line number Diff line number Diff line change
@@ -0,0 +1,7 @@
{
perSystem =
{ self', pkgs, ... }:
{
packages.mydocs = pkgs.callPackage ./docs.nix { self = self'; };
};
}
45 changes: 45 additions & 0 deletions docs/docs.nix
Original file line number Diff line number Diff line change
@@ -0,0 +1,45 @@
/*
{ pkgs
, ...
}:
let
inherit (pkgs) stdenv mkdocs python310Packages;
options-doc = pkgs.callPackage ./options-doc.nix {};
in stdenv.mkDerivation {
src = ./.;
name = "docs";
buildInput = [ options-doc ];
nativeBuildInputs = [
mkdocs
python310Packages.mkdocs-material
python310Packages.pygments
];
buildPhase = ''
ln -s ${options-doc} "./docs/nixos-options.md"
mkdocs build
'';
installPhase = ''
mv site $out
'';
}
*/

{
writeShellScriptBin,
pkgs,
self,
...
}:

let
options-doc = pkgs.callPackage ./options-doc.nix { inherit self; };
in
writeShellScriptBin "gen-options-doc" ''
echo "Generating NixOS module options documentation"
cat ${options-doc} > OPTIONS.md
''
29 changes: 29 additions & 0 deletions docs/options-doc.nix
Original file line number Diff line number Diff line change
@@ -0,0 +1,29 @@
{
lib,
self,
pkgs,
runCommand,
nixosOptionsDoc,
}:

let
eval = lib.evalModules {
specialArgs = { inherit self pkgs; };

modules = [
(lib.nixosSystem {
inherit (pkgs) system;
modules = [
../modules/default.nix
];
})
];
};

optionsDoc = nixosOptionsDoc {
inherit (eval) options;
};
in
runCommand "options-doc.md" { } ''
cat ${optionsDoc.optionsCommonMark} >> $out
''
Loading

0 comments on commit 428b1e6

Please sign in to comment.