My Nix files
- Nix 92.6%
- Lua 7.4%
| Filename | Latest commit message | Latest commit date |
|---|---|---|
|
|
||
| configs | ||
| fonts | ||
| home | ||
| hosts | ||
| notes | ||
| .envrc | ||
| .gitignore | ||
| .luarc.json | ||
| flake.lock | ||
| flake.nix | ||
| README.md | ||
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://rosa.radicle.network/zF4ocfML4MryiqMDDX77R5HSKspr.git -b main ~/.dotfiles
cd ~/.dotfiles
# Make sure to later run rad auth, cancel it, then start your node, and initialize the dotfiles repository to be able to push.
# ^That is mostly a note to self, unless you're planning to fork!
# 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 |