I mainly keep this readme for myself, but if you're trying to adopt my dotfiles and stuck somewhere, contact me! You should be able to find my details on https://strawmelonjuice.com/me/links.
1. Clone the repo#
Cloning the nix branch using jj from my Tangled knot:
# Preparing ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# Temporary pre-install these required packages
nix shell nixpkgs#git nixpkgs#jujutsu --extra-experimental-features nix-command --extra-experimental-features flakes
# Cloning ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# Clone the dotfiles
jj git clone https://tangled.org/did:plc:f7kla3ryltgfgbecm44sg2mm -b main ~/.dotfiles
cd ~/.dotfiles
# Set origin correctly for dotfiles, assuming you by the time you push again have the keys.
jj git remote set-url origin git@knot.ollie.earth:did:plc:f7kla3ryltgfgbecm44sg2mm
# If you're not me you may want to fork for this above step!
# Optional cloning ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# Clone wallpapers.
jj git clone https://forge.strawmelonjuice.com/strawmelonjuice/aesthetic-wallpapers-mirror.git ~/.local/share/wallpapers/aesthetic-wallpapers
# Or https://github.com/D3Ext/aesthetic-wallpapers.git
2. Initialize a new Host (optional, if this is a brand new device)#
mkdir -p hosts/$(hostname) # Create the folder
cp /etc/nixos/*.nix ./hosts/$(hostname)/ # Copy installer configs
nano ./flake.nix # Include the new defineSystem/defineHome-entry in the nixosConfigurations block.
nano ./hosts/$(hostname)/configuration.nix # You may want to tweak this, or maybe import `../all-hosts.nix`!
echo "{}" > ./home/host-specific/$(hostname).nix # For home-manager per-machine config
Otherwise make sure the hostname matches the one before and continue to 3!
If it is a new device, but not running NixOS, you'll have to only create the defineHome and home-manager-per-machine config.
3. Deploy#
For NixOS#
jj # Capture new files so the flake can see them
sudo nixos-rebuild switch --flake .#$(hostname) # Apply based on current hostname
# If you included all-hosts.nix, you now won't have sudo anymore, so make sure doas works!
doas git config --global --add safe.directory /home/mar/.dotfiles # Safelist dotfiles for root, so doas can be used to rebuild!
For Home Manager Standalone (Non-NixOS or User-only)#
jj # Capture new files
nix run home-manager -- switch --flake .#$(hostname)
Structure#
| Directory | For |
|---|---|
hosts/* |
Device-specific hardware and system settings (e.g., Fennekin's convertible tweaks). |
home/* |
Shared user environment and config |
configs/* |
Configuration files symlinked into their programs for when configuration is too advanced for home/ |
fonts/* |
Fonts, imported by home/modules/fonts.nix |
Hosts currently known#
| Name | Kind | About | Special |
|---|---|---|---|
| Fennekin | Convertible laptop (fire) | My take-with-me and drawing laptop, has a nice stylus tew | Touchscreen, convertible, wifi adaptor is busted, so there's an external one. |
| Ponyta | Laptop (fire) | My most beefiest laptop eva! And I use it mainly as my school laptop, which is why recently after it got damaged physically I decided to switch it back to Windows so I'd use it less. Now Nixfiles are on WSL and I think used just as much. Lol! | Has a good graphics card. Bigger screen. |
| Samurott | Desktop PC (water) | - | Ultrawide screen, dual boots windows for games. |
| Cubchoo | Server (ice) | Also known as marpi5-1 or strawmelonservices! |
Lives in a hamster cage |
| frigometri (german version of Cryogonal, symbolising server location) | Server (ice) | Cool server from friend I can use |