Skip to content

Spebby/NixOS

Repository files navigation

My NixOS Config

wakatime

screenshot

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.

Philosophy

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.

FHS

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.

Oddities

While this config should work mostly out of the box, there are a few applications which will require some tinkering.

COSMIC DE

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.

Cider

This is a paid app, and you'll need to download an AppImage you've bought from them for it to install.

Unity

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

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.

Keychain

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!

Acknowledgements

Winter Forest Snow Live wallpaper

Wavy Grass Live wallpaper

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published