dotfiles/README.md

59 lines
1.7 KiB
Markdown

# dotfiles
This repository contains dotfiles for two separate systems. Based on the hostname the appropriate configuration is applied. (When no hostname matches, nix is not buildable and yolk uses a minimal shared configurations).
**Hostnames**
- nixMain (Hyprland, desktop optimised)
- nixLap (KDE, 2-in-1 Notebook optimised)
Deployment:
*assuming a valid hostname is used*
1. Clone the Repository
2. Build the system: `bash use_nix.sh --first-run --rebuild`
3. Setup user config: `yolk sync -v`
### Notes:
Used as kde config finder, in `~./config` and `~./local/share`:
- `find . -type f -regex '.*\(k\|rc\|pulse\|session\|gtk\|autostart\|xbel\).*'`
### Disc encryption steps
```bash
# Cryptoroot, fs and mount
cryptsetup luksFormat /dev/nvme0n1p2
cryptsetup luksOpen /dev/nvme0n1p2 cryptroot
mkfs.btrfs -L root /dev/mapper/cryptroot
mount /dev/disk/by-label/root /mnt/
# Mount boot
# change type of boot to uefi via fdisk
mkdir /mnt/boot
mount /dev/nvme0n1p1 /mnt/boot/
# Cryptoswap and makeswap
cryptsetup luksFormat /dev/nvme0n1p3 --label cryptoswap
cryptsetup luksOpen /dev/disk/by-label/cryptoswap swap
sudo mkswap /dev/mapper/swap -L swap
# get hw-config
nixos-generate-config --root /mnt/
cp /mnt/etc/nixos/hardware-configuration.nix /
vim /hardware-configuration.nix
# Append:
# swapDevices = [{
# device = "/dev/disk/by-label/swap";
# encrypted = {
# enable = true;
# label = "swap";
# blkDev = "/dev/disk/by-label/cryptoswap";
# };
# }];
# Deploy config
rm -r /mnt/etc/nixos/
cp -r dotfiles-master/dotfiles/root-conf/nixos/ /mnt/etc
cp /hardware-configuration.nix /mnt/etc/nixos/DESTINATION
nixos-install --root /mnt --flake /mnt/etc/nixos#DESTINATION
```