matt1432
f9d4bcc4eb
All checks were successful
Discord / discord commits (push) Has been skipped
Flake Inputs: • Updated input 'ags': 'github:Aylur/ags' (2024-12-09) rev: ce27d3036f7fbebc3476ccbb5a1c51f0603c2475 → 'github:Aylur/ags' (2024-12-13) rev: 27cd93147aba09142fa585fd16f13c56268b696c • Updated input 'astal': 'github:Aylur/astal' (2024-12-11) rev: 6fbeb920eae7f5201d828230ac2ac00d78369251 → 'github:Aylur/astal' (2024-12-13) rev: 4f47b69946dd7127ba66e6333af4945afaba15de • Updated input 'custom-sidebar-src': 'github:elchininet/custom-sidebar' (2024-12-11) rev: 7279c0c85ec2dc2669e7580c9a4e11596ef8505e → 'github:elchininet/custom-sidebar' (2024-12-12) rev: 1ea81c3b2f553847b8b01d1a7ec397e64e4340ca • Updated input 'discord-overlay': 'github:matt1432/discord-nightly-overlay' (2024-12-11) rev: 442631368d4fc16766ffa5fc230f1551d27fea2c → 'github:matt1432/discord-nightly-overlay' (2024-12-13) rev: f80d3bdb5db114e2a5ee5d49ba813756fc150c54 • Updated input 'home-manager': 'github:nix-community/home-manager' (2024-12-11) rev: 6e5b2d9e8014b5572e3367937a329e7053458d34 → 'github:nix-community/home-manager' (2024-12-13) rev: 66c5d8b62818ec4c1edb3e941f55ef78df8141a8 • Updated input 'hyprgrass': 'github:horriblename/hyprgrass' (2024-12-11) rev: 300ae7caba4a13f18cb4193044bba2773e2f8fa7 → 'github:horriblename/hyprgrass' (2024-12-13) rev: dc19ccb209147312a4f60d76193b995c2634e756 • Updated input 'hyprland': 'github:hyprwm/Hyprland' (2024-12-11) rev: df956a0f6fbcfd7397b2d7b86883c0936c7795ec → 'github:hyprwm/Hyprland' (2024-12-13) rev: 61a51bb4ef5ff38a8482933da1756bf31d4475be • Updated input 'jovian': 'github:Jovian-Experiments/Jovian-NixOS' (2024-12-10) rev: 77ffd839fd9d60d139dc4a2ad6b6d526f4ad5a17 → 'github:Jovian-Experiments/Jovian-NixOS' (2024-12-12) rev: 71a588300c2902ca668f505be9f2fc4b4abf4c7e • Updated input 'nix-gaming': 'github:fufexan/nix-gaming' (2024-12-10) rev: 89887483a47f9e7e849d43e5992f9da54b3e8e0e → 'github:fufexan/nix-gaming' (2024-12-12) rev: 43b9832ae7407054aa411d485e701b4a207ce6d3 • Updated input 'nixpkgs': 'github:NixOS/nixpkgs' (2024-12-09) rev: a73246e2eef4c6ed172979932bc80e1404ba2d56 → 'github:NixOS/nixpkgs' (2024-12-11) rev: 5d67ea6b4b63378b9c13be21e2ec9d1afc921713 • Updated input 'nixpkgs-wayland': 'github:nix-community/nixpkgs-wayland' (2024-12-11) rev: 948369631b8a53b56d847bb095d4fba7aea690ee → 'github:nix-community/nixpkgs-wayland' (2024-12-13) rev: 496de7758455678c1014925a12acc1e442c1912a • Updated input 'pcsd': 'github:matt1432/nixos-pcsd' (2024-12-04) rev: 36b19a9384336b8c589a59d0db61af7fc06f2112 → 'github:matt1432/nixos-pcsd' (2024-12-13) rev: 2632c3a670f73fada8e0830c3f6152524a17b323 • Updated input 'sops-nix': 'github:Mic92/sops-nix' (2024-12-09) rev: a80af8929781b5fe92ddb8ae52e9027fae780d2a → 'github:Mic92/sops-nix' (2024-12-12) rev: 2d73fc6ac4eba4b9a83d3cb8275096fbb7ab4004 • Updated input 'spotifyplus-src': 'github:thlucas1/homeassistantcomponent_spotifyplus' (2024-12-09) rev: 11d3822f3c06178e8c0d5a8d5d2eb122715060bf → 'github:thlucas1/homeassistantcomponent_spotifyplus' (2024-12-12) rev: dd319cc6ce10863d695692ecffd48441d08e00b9 • Updated input 'tuya-local-src': 'github:make-all/tuya-local' (2024-12-11) rev: 9dda00ef89311116f28f2e7f8da3490d05fca0b4 → 'github:make-all/tuya-local' (2024-12-13) rev: e6a7dd1cb485bbdda0bac82b89bac7f418f73704 Docker Images: • codeberg.org/forgejo/forgejo 9: sha256:5343937f18f2580300c5dbc0144df0994681fec2b8774e8a8ecee2d6c9f8c595 → sha256:3c34f11fe8b9983096eef3f8f25c2d2c21c4ae7504960cb203f0b075d1d8ed73 • rssbridge/rss-bridge latest: sha256:02ee316a6cd158706cd15480f44bc4db39ac0f5ab52b76d596083583e7416f7f → sha256:57b56306461cf71bcfc8c46632cc2105367a54a03eae6c403dd0a59de8fb6598 • nextcloud fpm: sha256:e452bb5fc952269c50196a9f914fb84d37f3bb8ef4ff96ad3b5080f990bed5c9 → sha256:aeb04735a4ef015560e88bb18a5dca7ef1e58f28b43665ed1d37bccee04b2699 Firefox Addons: darkreader: 4.9.96 -> 4.9.97 |
||
---|---|---|
.forgejo/workflows | ||
apps | ||
checks | ||
devices | ||
homeManagerModules | ||
inputs | ||
lib | ||
nixosModules | ||
overlays | ||
packages | ||
results | ||
scopedPackages | ||
.gitattributes | ||
.gitignore | ||
flake.lock | ||
flake.nix | ||
LICENSE.md | ||
outputs.nix | ||
README.md |
My NixOS configs
TODO: add directory structure info and enforce it
- every root folder in the repo represents a flake output except inputs
- every root folder only has a default.nix
and subfolders for each
of its attrs
- in a subfolder, there should always be a default.nix
- if there is non nix code, it will be in a config
folder
- redo docs
- every module should not do anything if imported
AGS
You might find it weird that most of my config is written in TypeScript. That's because all my desktops run AGS for UI. Click on this to see my configuration.
I'm also a victim of Stockholm syndrome at this point and make my scripts in TypeScript because it's the scripting language I am most comfortable with.
About
General
This repo is the complete configuration of machines I own, running NixOS or Nix. Its structure is based on a flake's outputs.
Flake Location
This git repo will always be located at $FLAKE
(config.environment.variables.FLAKE
)
and symlinked to /etc/nixos
to have everything where NixOS tools
expect things to be.
ie.
sudo rm -r /etc/nixos
echo "$FLAKE" # /home/matt/.nix
sudo ln -sf /home/matt/.nix /etc/nixos
Flake Outputs
Output | Description |
---|---|
nixosConfigurations |
devices' + ISO's configurations |
nixOnDroidConfigurations.default |
Nix-On-Droid's configuration |
packages |
Some custom packages not available in nixpkgs or modified from it |
scopedPackages |
Some custom package scopes not available in nixpkgs or modified from it |
apps |
Scripts ran from the flake defined here |
homeManagerModules |
Modules made for home-manager |
homeManagerModules |
Modules made for NixOS systems |
formatter |
I format nix code with alejandra |
devShells.default |
A dev shell to build an ISO from the live-image nixosConfiguration |
devShells.ags |
A dev shell to have a NodeJS env when I enter my AGS's config directory |
Flake Inputs
To allow use of the full nix language for my inputs, I use genflake.
Therefore, the flake I edit is located at ./outputs.nix
.
I also prefer using a more descriptive format for my inputs like so:
nixpkgs = {
type = "github";
owner = "NixOS";
repo = "nixpkgs";
# Branch name
ref = "nixos-unstable";
# Pin this input to a specific commit
rev = "842d9d80cfd4560648c785f8a4e6f3b096790e19";
};
to make it more clear what is what in the flake URI
Secrets
All my secrets are in a private git repo that makes use of
sops-nix.
I generate .sops.yaml
from .sops.nix
:
let
wim = "somekey";
binto = "somekey2";
in {
creation_rules = [
{
path_regex = "secrets/[^/]+\\.(yaml|json|env|ini)$";
key_groups = [
{
age = [wim binto];
}
];
}
];
}
which is then converted to .sops.yaml
using
remarshal
and this shell command:
nix eval --json --file ./.sops.nix | remarshal --if json --of yaml > .sops.yaml
TLDR: I hate YAML