adds a new specialArg to hosts: usernameList, which is a list of users
determined through user/user.nix in the host/hostname dir.
This touches syncthing, tuigreet, jibril, shells, and system
removes the user.name field, and converts user.timezone to
system.timezone. This is to move user content off of the host.
This old system is replaced with dynamic user creation based on the
usernameList variable
Because this removes the users.users.defaultUser shells now use the
(more appropriate) users.defaultUserShell
This converts from the old manually defined users in flake.nix to a
dynamically defined users based on the directory structure. This is the
same as ba5fd48 but for users instead of hosts.
This adds some code to flake.nix to read the directory of hosts/ and
find all hosts based on their host.nix file, and set the hostname based
on the directory.
I don't know enough about hostnames to know what are valid characters,
but in the future this could allow a hostname such as "servers/madoka"
which may be an issue. For now the structure is simple enough of
"hosts/name" resulting in hostname "name"
Another commit is planned which will do the same thing for users
Previously the home-manager and nixos sections of my config had been
separated into different branches on the same repository. This commit
merges the home-manager modules into the directory, and convert the
"systems" that used to be on each branch into hosts and users.
The goal of this change is to make it easier to see the hosts and users
paradigm, as well as limit the number of locations the git repository is
installed. Additionally, having different branches tracking different
changes was silly for a git repository.
Refactored systems to be dependant on host. So that jibril and onizuka
can have separate profiles. Doing this split up the systems/ folder, and
also forced a flake update to test. This was done midway through the
hypr rework, and would have been difficult to decouple, so I just did a
big commit instead <3
Refactored the entire hypr system to use settings and nix rather than
its native config. This is working and tested on Jibril, but is missing
the scripts used for switching workspaces on Onizuka.
Add anime-launcher because it needs to be installed at the system level
to interact with /etc/hosts configuration.
Remove commented code as it wasn't being used to overlay packages, and
can be easily researched later