this is a fork of charlotte's dotfiles.
Warning
don't use these dotfiles if you don't know what you're doing. they can brick your machine. charlotte is not responsible if you use them to brick your machine.
the content of these dotfiles started as a fork of ZaneyOS. however, much of the content has been completely overhauled, including:
- a wholly different stylix theme, using catppuccin,
- a totally different waybar,
- a highly customized nvf configuration,
- development environments powered by 658060/dev-templates,
and more. also, some code (especially that of the waybar) is directly taken/converted into nix from JaKooLit's dotfiles, which is a modified version of JaKooLit's catppuccin-mocha themed waybar. attributions are in comments in every file where code was copied, so one may search this repo for "JaKooLit" to find that code.
DOCUMENTATION.md documents the structure of this flake for human readers.
CONTEXT.md and the architecture decision records under docs/adr/ are
machine-readable documentation.
this repo should be cloned into ~/.dotfiles.
- ensure NixOS is installed.
- ensure that the optional settings
nix-commandandflakeare enabled:
nix.settings.experimental-features = [ "nix-command" "flakes" ];- ensure there is a folder
hosts/YOUR_HOSTNAME, whereYOUR_HOSTNAMEis the machine's actual hostname. the folderhosts/kamakirican serve as a template.flake.nixauto-discovers every folder underhosts/and builds one configuration per hostname, soflake.nixitself is never edited. the folder needs:hardware.nix, which is exactly the same as the filehardware-configuration.nixobtained when the commandnixos-generate-configis run.variables.nix, in which:- the
profilevariable corresponds to the device's hardware. it should be set to one of the names of the folders in~/.dotfiles/profiles. for example, a laptop with an nvidia gpu should haveprofileset tonvidia-laptop. - the
uservariable is set to your username.
- the
default.nix, which can be left exactly as the template has it.
- ensure the host folder is tracked by git. the flake reads tracked files only,
so a brand new host folder will be invisible to it until it is added with
git add hosts/YOUR_HOSTNAME. - run the following commands:
nix shell nixpkgs#nh
nh os switch ~/.dotfiles --hostname $(hostname)if this flake has already been built and is currently running on the machine, run
frto rebuild after making changes. to update system packages, run
fuinstead.
to build an iso image out of this flake, run
nix build .#nixosConfigurations.iso.config.system.build.isoImagethe output will be stored in ./result/iso/. to burn this to drive /dev/sdX,
run
sudo dd if=~/.dotfiles/result/iso/ISO_NAME.iso bs=16M of=/dev/sdX status=progress oflag=syncreplacing ISO_NAME.iso with the actual name of the file located there. be
warned, running the above command on the wrong drive will ruin a drive. use at
your own risk.