~mzhang/flake

Personal configuration files
(packages/osu-lazer): update to 2023.207.0
(homes/molecule): enable rust and agda
(packages/unciv): add unciv

refs

master
browse  log 

clone

read-only
https://git.sr.ht/~mzhang/flake
read/write
git@git.sr.ht:~mzhang/flake

You can also use your local clone with git send-email.

#Nix Configuration

These are my Nix configuration files. They manage:

  • Reproducibly building software that I use.
  • Managing my home directory for machines that don't use NixOS.
  • Managing my NixOS machines.

Massively yoinked from Henrik Lissner's dotfiles, with modifications to some of the core scripts only made when necessary.

#How to install dotfiles based off this repo

Don't run my dotfiles directly, they're not generalized sufficiently yet. Make modifications to it and apply it to your own setup since I'm pretty sure the name michael has been hardcoded all over the place.

TODO: come up with a list of things that need to be changed.

In order to run any of the following commands, you will need Nix installed. If your Nix isn't Flake-enabled, the bootstrap script should download it for you.

  • To build a home directory, run ./home-manager build. This will try to find a file corresponding to the hostname of the current machine, build the home-manager package for it, and create a result directory containing an activation script.

  • To install a home directory, run ./home-manager switch. This performs the build step and then places files in your home directory.

  • To build a NixOS configuration, run ./nixos-rebuild build. This will try to find a configuration corresponding to the hostname of the current machine, build the NixOS configuration for it, and create a result directory containing an activation script.

  • To install a NixOS machine, run ./nixos-rebuild switch. This performs the build step and then reloads the system configuration to match.

#How to navigate this repo

  • bootstrap/ is used to pull an unstable version of nixos-rebuild, which is used by build.sh.
  • common/data/ contains data that may be used all over the repo.
  • common/home/default.nix is the entrypoint for my home manager modules. It is imported from every host listed in homes.
  • homeModules/ contains extra software-specific modules for use with home manager.
  • homes/ contains configs for each machine that I would like to manage the home directories of. It's imported by flake.nix by using lib/homes.nix.
  • lib/ contains useful Nix functions.
  • nixosModules/ contains extra software-specific modules for use with NixOS.
  • overlays/ not used yet, but will contain more overlays if I write them.
  • packages/ contains functions for creating Nix derivations for software that isn't yet packaged by Nixpkgs.

#License

Author: Michael Zhang

License: MIT