NixOS is the endgame to Distro Hopping
Find a file
matt1432 4a2ad39114
All checks were successful
Discord / discord commits (push) Has been skipped
chore: update sources
Flake Inputs:
    • Updated input 'astal':
        'github:Aylur/astal' (2025-01-02) rev: 207557dd2b069a33bb78ce3ab3c83cd8bec7a58d
      → 'github:Aylur/astal' (2025-01-03) rev: a3bb83a22b7d237c2c2fc6bd531f30d6265135cf

    • Updated input 'gpu-screen-recorder-src':
        'git+https://repo.dec05eba.com/gpu-screen-recorder' (2024-12-31) rev: fbaa73bfc7c61bbe9e3c9d6077a46d758ae12a9f
      → 'git+https://repo.dec05eba.com/gpu-screen-recorder' (2025-01-03) rev: 621f253f000863688d32f4f9a5a57db4690735c7

    • Updated input 'home-manager':
        'github:nix-community/home-manager' (2025-01-01) rev: 5f6aa268e419d053c3d5025da740e390b12ac936
      → 'github:nix-community/home-manager' (2025-01-03) rev: a9987622b7b93c82e147f198574e8e6ffbf5e327

    • Updated input 'hyprland':
        'github:hyprwm/Hyprland' (2025-01-01) rev: dde3e082c96cd6987420556bfc430cd5b8e0980c
      → 'github:hyprwm/Hyprland' (2025-01-03) rev: 60f069d54015fec66e63f1ff7e6ff26ddb349976

    • Updated input 'hyprland-plugins':
        'github:hyprwm/hyprland-plugins' (2024-12-27) rev: a41bcdccac7d3fe220b3a8519633f0a812da3439
      → 'github:hyprwm/hyprland-plugins' (2025-01-02) rev: 920af33577a889772e96a067130252df5674ca8a

    • Updated input 'hyprutils':
        'github:hyprwm/hyprutils' (2025-01-01) rev: c42ce87eb3fe9f3c5fd62f370afe5a7170ebda44
      → 'github:hyprwm/hyprutils' (2025-01-03) rev: fb9a816cb91c6b6c4fcdc348d56fd54ba524546d

    • Updated input 'jovian':
        'github:Jovian-Experiments/Jovian-NixOS' (2024-12-27) rev: a86d9cf841eff8b33a05d2bf25788abd8e018dbd
      → 'github:Jovian-Experiments/Jovian-NixOS' (2025-01-03) rev: 7e530766a5fd9b7577296fedd655f3255f7495d8

    • Updated input 'nh':
        'github:viperML/nh' (2024-12-11) rev: 6a69a145b0c7dbd5616bbded512b8bf8b5d2f8a4
      → 'github:viperML/nh' (2025-01-02) rev: b7a857066e726dafe9c5f00a8af6ab3f25036ee1

    • Updated input 'nix-gaming':
        'github:fufexan/nix-gaming' (2025-01-01) rev: a3a26749e81ba3691451adf793242acf2d758574
      → 'github:fufexan/nix-gaming' (2025-01-03) rev: afc74611082ecc4a961e4317fa2763c8812e217f

    • Updated input 'nixpkgs':
        'github:NixOS/nixpkgs' (2024-12-29) rev: 88195a94f390381c6afcdaa933c2f6ff93959cb4
      → 'github:NixOS/nixpkgs' (2025-01-02) rev: 6df24922a1400241dae323af55f30e4318a6ca65

    • Updated input 'nixpkgs-wayland':
        'github:nix-community/nixpkgs-wayland' (2024-12-22) rev: 8988b0603fed7e3d303718328cf4cd8dd137575e
      → 'github:nix-community/nixpkgs-wayland' (2025-01-03) rev: 42ccba23ce4661f9a1df9c4455533888ca123683

    • Updated input 'sops-nix':
        'github:Mic92/sops-nix' (2024-12-29) rev: bcb8b65aa596866eb7e5c3e1a6cccbf5d1560b27
      → 'github:Mic92/sops-nix' (2025-01-02) rev: 24d89184adf76d7ccc99e659dc5f3838efb5ee32

    • Updated input 'spotifyplus-src':
        'github:thlucas1/homeassistantcomponent_spotifyplus' (2025-01-01) rev: 0cf00348e5d4317fee0a37675670d5a2f26614f0
      → 'github:thlucas1/homeassistantcomponent_spotifyplus' (2025-01-03) rev: a55a6fbd3b9ea4664e90ae5c74a7936345008cf7

    • Updated input 'spotifywebapi-src':
        'github:thlucas1/SpotifyWebApiPython' (2025-01-01) rev: 33e38186dac5c28dc98ed14dbea08987ef66a031
      → 'github:thlucas1/SpotifyWebApiPython' (2025-01-03) rev: be9d8420897f06789a00077f227f5a87a22c2fd4

    • Updated input 'ts-for-gir-src':
        'github:gjsify/ts-for-gir' (2024-11-16) rev: a366faa3d1912cbce931d3f2d489efdf06306093
      → 'github:gjsify/ts-for-gir' (2025-01-02) rev: 8bb1e5670198b52be53d5585915a1a3f8cc324ed

    • Updated input 'tuya-local-src':
        'github:make-all/tuya-local' (2025-01-01) rev: 80eae9dd82fea2f4b1f02193b1cfa9eda2d89365
      → 'github:make-all/tuya-local' (2025-01-04) rev: 28f344ece2e4f1b8824000fea1a40276bb097cf5

Docker Images:
    • rssbridge/rss-bridge latest:
       sha256:4115e5d74af0ff37e5b993ae736a070737c478978701853ddb1431b71839ab49
     → sha256:c72b284fe82f6c2bf676d55a3e5354e53108095a8d698ac1c9211b5b854c79d4

    • docker.io/fallenbagel/jellyseerr latest:
       sha256:fe72f4b341fa5c3275826a39aebfff23cbd552c956b0ab2d51dfba6a49b528f8
     → sha256:a324fa4d81cce73116801bee3c50b632f3457c0ca0ad31aa692c640e22f50dea

    • ghcr.io/linuxserver/sonarr latest:
       sha256:ca4ad72f07e532d1d414435eb43193d1dc407255e46c21c2694653ca8af4fd81
     → sha256:6221d75e172247220c320bb340ce0ff96a09339216de52b8d861424bfc501cef

Node modules:
    @types/node: 22.10.3 -> 22.10.5
2025-01-04 03:23:45 -05:00
.forgejo/workflows feat(servers): test github action 2024-01-11 17:22:35 -05:00
apps chore: update sources 2025-01-04 03:23:45 -05:00
configurations chore: update sources 2025-01-04 03:23:45 -05:00
devShells feat(nvim): expose devShells through my flake 2024-12-22 00:27:24 -05:00
homeManagerModules fix(nvim): load web LSPs properly 2024-12-22 14:49:21 -05:00
inputs feat(caddy): move to new package 2024-12-29 01:28:33 -05:00
lib feat(ags): fix type checking with tsc 2025-01-04 01:22:08 -05:00
modules chore: update sources 2025-01-04 03:23:45 -05:00
nixFastChecks refactor: rename some flake attr directories 2024-12-16 15:51:41 -05:00
overlays chore: update sources 2025-01-04 03:23:45 -05:00
packages chore: update sources 2025-01-02 02:02:09 -05:00
results fix(cache): keep gc roots of nix-fast-build alive 2024-12-11 08:30:13 -05:00
scopedPackages chore: update sources 2025-01-04 03:23:45 -05:00
.gitattributes feat(git): remove generated files from git diff 2024-11-15 14:03:43 -05:00
.gitignore fix(cache): keep gc roots of nix-fast-build alive 2024-12-11 08:30:13 -05:00
flake.lock chore: update sources 2025-01-04 03:23:45 -05:00
flake.nix chore: update sources 2025-01-04 03:23:45 -05:00
LICENSE.md chore: add license 2024-01-18 11:01:09 -05:00
outputs.nix chore: update sources 2025-01-04 03:23:45 -05:00
README.md refactor: rename some flake attr directories 2024-12-16 15:51:41 -05:00

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