This is my NixOS config. The backbone (nix/home-manager) is based heavily on Ampersand's "Reborn" config. I've taken that config, and blended it with my old dots from my Gentoo days. This setup is made for a Lonovo Legion 5 Pro 16ARH7H, but with some tinkering it should work on most systems. Plenty of credit due to my good fiends, wyatt and molecule31 for helping me through the learning process. This repository will be somewhat active as long as I'm using this system--I go back and forwards between this and a old Thinkpad running Gentoo, which I have no intention of moving over to Nix.
The Hyprland RICE is based off of Ampersands' RICE.
I've designed this config to be somewhat portable, in that it will exist on a
few systems, with the same users. But not all systems will need a display
manager, and thus won't need the same packages. As I want each user to exist
(mostly) the same across any system with this configuration, the specific user
configurations can be found in /users/user.nix. Those users will also want
their own packages, which can be found in /users/home-manager/user.nix. At
time of writing, hosts don't have that much control over what packages they
use--I intend to make this better in the future, and each host will be able to
specify what packages they want from the wider list. I mentioned earlier that
some systems won't have displays, as such graphical applications are mostly
useless. Considering users will likely want graphical applications in their
home-manager configurations. Unless I decide to over-complicate things,
non-graphical hosts will not share their users with graphical systems, it's too
complicated otherwise.
I need to figure out what I'd like to do with /nixos, originally I intended it
as "global" packages for all systems, though now I'm not so sure.
Sometimes, you just need to break out of nix for a stubborn binary that relies
on FHS. Thankfully, NixOS & Flakes Book provides a handy
environment
to simulate the FHS if needed, and that environment is included in this
configuration. Simply run fhs in the terminal, and you can run just about any
Linux binary, no problem.
While this config should work mostly out of the box, there are a few applications which will require some tinkering.
I use COSMIC DE as my daily driver on rosso and GNOME as my daily driver on
tink. Both configs are somewhat actively maintained, but there are some bugs I
should note with COSMIC specifically. Currently, screenshots & screensharing are
broken due to an issue with xdg-desktop-portal. I am unsure why exactly this
feature, which works fine on every other GUI environment I use regularly refuses
to work on COSMIC no matter what I do, but I have accepted that for the time
being it will be broken.
This is a paid app, and you'll need to download an AppImage you've bought from them for it to install.
This program is a fucking headache. My config has a lot of weirdness for Unity
specifically due to Unity's shit Linux support. I use an older version of Unity
because I use it to mod for Unturned. That version only supports OpenSSL 1.1, so
that's the version I've manually overwritten the package to use. When I
inevitably update to a version that supports a modern OpenSSL standard, I'll
bump the package. Regardless, there are some bugs you are likely to run into if
you try to use Unity. I had a strange issue with Firefox being unable to open
"unityhub" links in UnityHub, making it impossible for me to sign in. I'll be
honest I prayed and then it started working. The second issue was Unity's
bee_background. Check latest news, they may have fixed it in the future, but
their setup would cause Unity to hang indefinitely. The steps described in
this guide
fixed the problem for me, but you must do this manually, for every editor
version you install.
Additionally, Unity's many dropdowns and popups are not Hyprland friendly. As Unity currently does not support a single-window mode like Godot does, there are a lot of manual window rules set within Hyprland to make Unity a more usable experience. I haven't manually set these up myself, someone else did. I worked with the maintainer to make a flake for it, and instructions are on that repository.
PlasticSCM previously did not have a NixOS package. This has recently changed! Unfortunately, it is often broken due to hash mismatches. I try to keep it up to date via overlays, but occasionally I may fall behind. Previously, I relied on Verco and DistroBox for this purpose. These are still included, if you want to use them. My DistroBox setup is not managed by nix, so you must set it up yourself if you wish to use it.
I use Keychain to manage my SSH & GPG keys. It is automatically launched by zsh
via .zshrc. The command written in zsh's config expects that a SSH Config File
can be found in ~/.ssh/, so you should define one!
Winter Forest Snow Live wallpaper
Wavy Grass Live wallpaper
