After using Nix and NixOS for a few days, I can't believe I did
something like this in the past. Having a single reproducible flake is
significantly more pragmatic than imperatively configuring everything.
A wallpaper is required for Stylix to work, so I added one with base00
as the background color and the NixOS logo as the foreground image.
Credit for the logo goes to the original author who licensed it under
CC-BY: https://releases.nixos.org/nix-dev/2016-October/021876.html
Alacritty does not support MapleMono-NF as a font, whereas kitty does.
kitty also has other nice features such as built-in windows/tabs and
image support.
Note that loading a runtime file in ~/.cache/wal is no longer necessary
since configuration is done declaratively through Nix.
Although this has some downsides, such as the lack of "live reloading"
in some applications, this "feature" wasn't present across all
applications anyway.
Stylix is like a maintained version of pywal but configuration changes
are managed by Nix and Home Manager, thus guaranteeing a certain level
of reproducibility with its declarative nature.
colorizer bugged out presumably due to order being determined by the Nix
language. I did not like cursorline however I did think cursorword was
cool, so I'm keeping that part of it for now.
Although I could technically make a gnome module and make it really easy
to switch between gnome and hyprland, I'm not really interested in
maintaining that right now.
For example, there was a recent bug in nautilus where deleted files
would not show up as deleted. There was another bug where opening a
terminal would not focus the terminal window. I'd much rather use
hyprland in this case due to the faster release cycle and simpler code
base overall.
For anyone that wants to contribute, you are free to do so. Now that my
configuration is simpler, however, as well as with the experience I've
gained over the years, there should be less things that need changing.
This was cute, however I didn't actually use the changelog. Now that I
am using NixOS with Hyprland, the old changelog is irrelevant, and any
changes I make should be easily discoverable since things are simpler
now.
- code: No plans to use anything that isn't neovim.
- picom: Don't need anymore thanks to Hyprland.
- polybar: X11-only. yambar/waybar work as alternatives.
- tint2: X11-only. Functionality can be replicated with waybar.
- xinit: No need when using Wayland.
Similar to fish, there's some relief in knowing that I can declare my
starship settings in Nix and have them accessible from any user on the
machine, even root.
I originally wasn't going to mix logic from my dotfiles with NixOS,
however I was unable to simply use my abbreviations after adding
~/.config/fish/config.fish, so I decided to give it a try.
Using Nix to manage fish abbreviations feels nicer than using a
config.fish because I am now easily able to manipulate these
abbreviations with the limitless possibilities of the Nix language, and
with the guarantee that the output is reproducible.
Highlights:
- Added a test container with network configuration and Wayland support
- Added GNOME/Hyprland support with SDDM
- Added Git/Starship/GPG support
- Properly added Neovim support with .enable
- Various package changes
- Made caps lock function as escape on tap, left ctrl on hold
- Print screen functions as right super on hold
I used bspwm for over half a decade, and although it was great, I am now
interested in using Hyprland, which is basically bspwm for Wayland but
better.