Nix noob trying to build his system
Find a file
2023-11-04 14:04:17 -05:00
patches Added nixpkgs patches documentation 2023-09-09 06:18:41 -05:00
profiles Extra lines to ensure flakes work 2023-10-29 16:32:06 -05:00
system Testing if auto-cpufreq is system freeze culprit 2023-11-03 10:16:49 -05:00
themes Switching back to gh as screenshot backend 2023-11-04 14:04:17 -05:00
user Ranger dnd optimization + qb filepicker 2023-11-04 14:00:41 -05:00
flake.lock Updated system 2023-11-03 11:27:35 -05:00
flake.nix Fixes flake not building when flake.nix editor is vim, nvim or nano 2023-11-03 19:41:28 -05:00
install.org Extra detail on adding unstable channel in install notes 2023-10-28 20:44:08 -05:00
LICENSE Add LICENSE 2023-04-22 20:48:09 +00:00
README.org Updated screenshot to reflect yt branding 2023-10-08 18:04:34 -05:00

NixOS Config

Main Repo Link (GitLab)

Mirror Repo Link (GitHub)

What is this repository?

These are my dotfiles (configuration files) for my NixOS setup(s).

Here is my main setup: https://gitlab.com/librephoenix/nixos-config-screenshots/-/raw/main/hyprland/uwunicorn.png

My 55+ Themes

Stylix (and base16.nix, of course) is amazing, allowing you to theme your entire system with base16-themes.

Using this I have 55+ themes (I add more sometimes) I can switch between on-the-fly. Visit the themes directory for more info and screenshots!

Install

I wrote some reinstall notes for myself here (install.org).

Modules

Separate Nix files can be imported as modules using an import block:

imports = [ import1.nix
            import2.nix
            ...
          ];

This conveniently allows configurations to be (*cough cough) modular (ba dum, tssss).

I have my modules separated into two groups:

More detailed information on these specific modules are in the system directory and user directory respectively.

Patches

In some cases, since I use nixpgs-unstable, I must patch nixpkgs. This can be done inside of a flake via:

    nixpkgs-patched = (import nixpkgs { inherit system; }).applyPatches {
      name = "nixpkgs-patched";
      src = nixpkgs;
      patches = [ ./example-patch.nix ];
    };

    # configure pkgs
    pkgs = import nixpkgs-patched { inherit system; };

    # configure lib
    lib = nixpkgs.lib;

Patches can either be local or remote, so you can even import unmerged pull requests by using fetchpatch and the raw patch url, i.e: https://github.com/NixOS/nixpkgs/pull/example.patch.

I currently curate patches local to this repo in the patches directory.

Profiles

I separate my configurations into profiles (essentially system templates), i.e:

  • Personal - What I would run on a personal laptop/desktop
  • Work - What I would run on a work laptop/desktop (if they let me bring my own OS :P)
  • Homelab - What I would run on a server or homelab
  • WSL - What I would run underneath Windows Subystem for Linux

My profile can be conveniently selected in my flake.nix by setting the profile variable.

More detailed information on these profiles is in the profiles directory.