My personal Nix flake
assets/img | ||
config | ||
home-manager | ||
hosts | ||
nixos | ||
packages | ||
scripts | ||
.envrc | ||
.gitignore | ||
.sops-secrets.yaml | ||
.sops.yaml | ||
flake.lock | ||
flake.nix | ||
LICENSE | ||
README.md |
flake
Hi there! This repository contains my NixOS flake. This is mainly meant as a utility for my own use, but if you'd like to base your configs on mine for some reason, feel free!
Notes
- This configuration offers
xonsh
as the default shell. You can change this inshell.nix
. This also includes astarship
prompt. - Currently,
shell.nix
contains a bandaid fix to make thestarship
prompt load properly. This will become unnecessary whengithub:NixOS/nixpkgs#359614
is merged. - The Tailscale configuration requires you to create a file at
/run/secrets/tailscale
with your Tailscale registration key. This is only required on first-time setup, and the file will automatically be removed after the next system restart. - This repository manages secrets using
sops-nix
.
Notable Applications
This list contains a bunch of applications and tools that I use a lot. Some of these will have configs declared in this repository, while others may not.
- xonsh (Module | Config): A Python-based shell that I use as my default shell. It's incredibly powerful, as all of its configuration is done in a superset of Python that shares the xonsh name. The main caveat is that it's slower than other shells, due to being written in Python. However, the power and flexibility it offers more than make up for this in my opinion.
- uv: So, I develop most of my projects with Python. I used to use a lot of tools like Poetry, pipx, and virtualenv. I had also heard of others like PDM and pyenv. uv does what those tools do, but better. It's effortless to use, and is so incredibly fast. Like, it's actually insane just how fast this tool is, compared to Poetry.
- ruff: Again, as a primarily Python developer, I used to use pylint a lot. Unfortunately I do still have to, but only because ruff doesn't yet have feature comparability to pylint. However, it is blazingly fast, just like its brother uv. A codebase that takes plint about ~55 seconds to lint, takes ruff less than a second. It is kind of insane how fast this linter is, sometimes I don't know if it's working or not in my IDE just because it updates so fast.
- neovim (Module): A Vim-based text editor that I'm actually using to write this list!
- Visual Studio Code (Module): While neovim can be used as a full-fledged development environment, I personally prefer the ease of use of VSCode when I'm working on larger projects.
- btop (Config): Ever used
htop
? This is that, but better! Also supports GPUs as of a recent update. - Vesktop: As everyone knows, the official Discord Linux client is... subpar, at best, and has features that just don't work on modern compositors like Wayland, such as screen sharing. Vesktop fixes a lot of those issues, and also comes with the awesome client modification Vencord built-in.
- Sober: Ever since Byfron's Hyperion was added to the ROBLOX client, playing ROBLOX on Linux has been impossible without using an Android emulator. Well, Sober aims to fix this. It does still use the official ROBLOX Android apk, but it is a full port to Linux, as opposed to an emulator. I can personally confirm the performance claims they advertise on their website, it does massively increase performance over the Windows version of ROBLOX.
- Lucem: Lucem aims to bridge the gap between Vinegar, the previous way to run ROBLOX on Linux, and Sober. It does this by offering various improvements like the ability to override the default ROBLOX font, and has a graphical interface to edit various settings and fflags. It is quite reminiscent of Bloxstrap, which is the definitive ROBLOX bootstrapper for Windows.