# My NixOS config ## File system structure this is outdated - `common`: stores all Nix files which are shared by all system configs - `de`: Desktop environments and their parameters - `hardware`: self-explenatory - `locales`: localization options - `packages`: services & packages with common configurations - `base.nix`: The minimum configuration that a machine needs - `full-install.nix`: if this machine has a DE or is going to be used by a human - `tasia-packages.nix`: Collection of additional packages - `common`: SSH keys, secrets, ... - `dotfiles`: all my dotfiles - `home`: user-specific settings. - `hosts`: Machine-specific configurations - `modules/nixos`: Custom NixOS modules - `overlays`: Custom NixOS overlays - `pkgs`: Custom NixOS packages - `stuff`: Random stuff that doesn't belong anywhere else ## Memo Update channels: `nix flake update` Build a configuration: `sudo nixos-rebuild switch --flake .#$(cat /etc/hostname)` Build enry and upload a generation: `nixos-rebuild switch --use-remote-sudo --flake .#enry --target-host tasia@enry -L` ### To do on a new machine - Install NixOS - Clone this repo `git clone https://gitea.com/tasiaiso/nixos-config.git && cd nixos-onfig` - `export HOSTNAME= && mkdir hosts/$HOSTNAME && cd hosts/$HOSTNAME && touch configuration.nix` - Fill out `configuration.nix` - add your key in `common/programs/ssh.nix` - `sudo nixos-generate-config --show-hardware-config > hosts/$HOSTNAME/hardare-configuration.nix` - `sudo nixos-rebuild switch --flake .#$HOSTNAME" - If `usbguard` is enabled, check allowed devices. #### git generate an ssh key: `ssh-keygen -t ed25519` add to ssh-agent: `ssh-add .ssh/id_ed25519` add to git: `git config --global user.signingkey ~/.ssh/id_ed25519` #### google-authenticator - `google-authenticator -td -r 5 -R 60 -w 2` ## Hosts ### theseus My main PC. Mostly unused because of power constraints ### phoenix My old laptop. ### stuff Another person's laptop. ### enry This is my Raspberry Pi 3B+ inside my electrical cabinet. ### cave New laptop. Main driver.