vodots banner

vodots

7 devlogs
11h 56m 31s

My NixOS + Home Manager configuration redesigned and rewritten from scratch using the Dendritic Nix pattern.

Repository

Loading README...

Voxi0

the configuration is more or less complete and is usable now. however there’s always room to improve of course, i just haven’t found any way to improve just yet but i am scouring other configurations, documentation and whatnot to find something interesting.

also, since i finally switched over to nvdots it’s time i showcase it or whatever yes? not entirely sure what exactly to show off since there’s a bunch of things.

i’ll just showcase the desktop, fastfetch, my nvdots (my neovim config) dashboard and yazi tui file manager.

desc

  • lotsa cleaning and fixing and polishing and whatnot
  • added my neovim configuration, nvdots, as a home-manager module. btw nvdots is also another project i have on flavortown.
  • added a config folder to hold config files that i don’t wanna let home-manager handle or whatever for reasons i’ll talk about in the yapping section.

yapping

some configurations like the window manager’s or compositor’s configuration is something people will change often to test something different to see how it looks.

i do that sometimes too because it’s always good to experiment. but having to rebuild the entire system or home manager or whatever every single time just one tiny change is made to the configuration is incredibly frustrating.

of course another thing you could do is just take the contents of a config file, put it into a new file, remove the symlink file and rename the config file to whatever the symlink was and then make changes to it and test different values before putting it into your nix configuration and rebuilding it. but obviously that’s just super tedious.

again, i’m still not sure how i’ll handle these dotfiles just yet. if not home manager then it’d have to be either manual copy-pasting or something else. probably copy-pasting for simplicity and it should serve it’s purpose just fine tbh. but i dunno, i’ll think about it more sooner or later.

Attachment
Attachment
Attachment
Attachment
0
Voxi0

feat: added docs (well just made sure to set up the foundation, there isn’t really any content in the docs just yet), added a bunch of useful cli utilities and apps that i find myself using fairly often and added configuration for a wayland compositor called niri

i haven’t been able to work on my project too much because i had some exams and other things and my dad took away all my devices except my laptop since he believes i wasn’t studying hard enough or whatever so im really glad to be able to make a comeback.

with all of this done and especially the niri configuration complete, i’m nearly ready to go ahead and switch over to vodots on my system and start ricing it and making it look cooler and more polished. we finally have something graphical!

before i switch over to vodots to start testing everything though i want to focus on cleaning up and reorganizing a bunch of things and that’s exactly what i’ve been doing for a while. as soon as im done ill make the switch and in the next devlog ill showcase what it looks like. there’s still a lot to do, like ricing the system and figuring out how i want my dotfiles managed and all.

i’d like to avoid using home manager to manage all my dotfiles, especially for things that i’ll configure often like niri because if i do use home manager, i’ll have to edit vodots for every little change i want to make in my niri configuration which is very annoying honestly and since i wanna make this more friendly for other people wanting to use my configs, it wouldn’t be very nice i guess.

below is just a snippet of the configuration i wrote for niri.

Attachment
0
Voxi0

feat: added apps e.g. firefox, discord (vencord with a bunch of plugins), spotify (spicetify for customizing it with plugins and all), obs-studio and i also made sure to use nix-flatpak with home manager instead of nixos since it’s best to use home manager whenever possible because home manager dotfiles can actually be used on other distros and operating systems with nix and home manager set up and all. also fixed some minor bugs and updated the flake as well of course.

all apps are preconfigured but can be further customized imperatively by the user which is convenient imo.

Attachment
0
Voxi0

feat: changed design structure or whatever. still dunno what image to attach other than code.

i changed how users create and configure their nixos/home-manager hosts. in each folder under hosts, there must be a default.nix file that sets up nixosConfigurations and/or homeConfigurations with the help of the self.lib.mkNixosHost and self.lib.mkHomeConfig
functions.

i made some other changes too like not creating any nixosConfigurations and homeConfigurations by default while making sure that homeModules is exporting every single one of our custom home-manager modules.

and ofc i made other general minor fixes and changes that aren’t really worth talking about, not that i even remember those changes anyways.

Attachment
0
Voxi0

feat: added a makefile that allows users to easily install nixos along with vodots on their
system. it only supports nixos as of now and won’t work on
other distros even with nix installed on them which means the user would have to manually set it up themselves. and again, there’s nothing specifically visual or whatever that this makefile is adding so i dunno what image/video to attach other than the makefile code.

the makefile also allows a user to just generate a hardware
configuration or format their drive instead of installing nixos with
vodots right away though i dunno why anyone would be interested in that
really.

Attachment
0
Voxi0

init: did the basics and got what’s pretty much a skeleton set up. i really don’t know what image/video to attach to this devlog since right now all the code i have doesn’t actually produce anything visual or whatever just yet since no desktop environments or anything graphical has been configured just yet. i’ll start uploading images/videos of what everything looks like when i finally have configured some actually graphical stuff.

i have a basic nix flake set up using flake-parts and the dendritic nix design pattern to keep everything nice, clean and modular.

i also wrote some super basic default configuration. all checks run by nix flake check are now passing which makes me confident that everything is set up correctly.

i spent a long while trying to figure out how to configure pkgs in the perSystem block provided by flake-parts and then use it to replace the pkgs instance that nixos uses by default and also pass this pkgs to home-manager.

i also spent a while dealing with some other issues which were caused mainly because i was too dumb to understand the difference between self: and {self, ...}: in modules. in short those problems were mainly with accessing stuff in self.

Attachment
Attachment
0
Voxi0

I’m working on my first project! This is so exciting. I can’t wait to share more updates as I build.

Attachment
0