https://github.com/soratenshi/nixos-config
A collection of my (hopefully) growing NixOS Config
https://github.com/soratenshi/nixos-config
ags eww flakes helix hyprland macos nix nix-darwin nixos tokyo-night-storm
Last synced: about 1 year ago
JSON representation
A collection of my (hopefully) growing NixOS Config
- Host: GitHub
- URL: https://github.com/soratenshi/nixos-config
- Owner: SoraTenshi
- License: mit
- Created: 2021-11-23T20:56:25.000Z (over 4 years ago)
- Default Branch: main
- Last Pushed: 2025-06-15T00:06:11.000Z (about 1 year ago)
- Last Synced: 2025-06-17T07:56:24.665Z (about 1 year ago)
- Topics: ags, eww, flakes, helix, hyprland, macos, nix, nix-darwin, nixos, tokyo-night-storm
- Language: Nix
- Homepage:
- Size: 15.2 MB
- Stars: 22
- Watchers: 1
- Forks: 2
- Open Issues: 1
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# My NixOS Configuration
A collection of my (hopefully) growing NixOS Config
Shoutout to:
- [@CRTified](https://github.com/crtified) for introducing me to it :)
- [Wil T](https://www.youtube.com/channel/UCLsaznoh7qsE8sc3XQurubw) as he posts a lot of helpfule videos about Nix(OS) and also is essentially
the reason i could write this tutorial.
## Installation from Live-CD
Since my brain is very wonky, i rather want to type this down so that in the case,
when i actually want to swap permanently to Linux (from Windows) i am able to reproduce my full system.
### Step 1: Partition drives.
I would do it the following way:
Set-up the main (boot) partition as GPT (EFI) which has 2 partitions as follows:
`/dev/sda1` as boot drive which is +~ 200M in size and formatted as `FAT32`
`/dev/sda2` as 'rest' drive, formatted as `ext4`
Hint: using `lsblk` shows your connected drives.
To do this, i preferr using `fdisk`.
### Step 2: Formatting
Simple enough, there is an easy formular to do that:
```sh
sudo mkfs.fat -F 32 /dev/sda1
sudo fatlabel /dev/sda1 NIXBOOT
sudo mkfs.ext4 /dev/sda2 -L NIXMAIN
```
The names are as simply described within /nixos-config/nixos/hardware-configuration.nix
### Step 3: Mounting
Straight forward process.
```sh
sudo mount /dev/disk/by-label/NIXMAIN /mnt
sudo mkdir /mnt/boot
sudo mount /dev/disk/by-label/NIXBOOT /mnt/boot
```
### Step 4: Swapfile
Also very easy to understand, a swapfile is essentially 'extended memory' where the CPU can use the size of the
swapfile as extra Memory once its space runs out.
```sh
sudo dd if=/dev/zero of=/mnt/.swapfile bs=1024 count=2097152
sudo chmod 600 /mnt/.swapfile
sudo mkswap /mnt/.swapfile
```
Now this is a bit more interesting.
To have a better overview of what the `dd` command does: `if` can be unfolded to 'infile' so what i want to use to write the file with.
`/dev/zero` is just zeros as the name implies.
`of` is the target 'outfile'
`bs=1024` is the 'blocksize'
`count=2097152` is a magic number, esentially blocksize and count will be multiplied together, to get the final size of the swapfile.
Multiplying those numbers together will get you around `2GiB`.
### Step 5: Actual configuration
This process is also straight forward:
```sh
sudo nixos-generate-config --root /mnt
```
From here, this repository takes over.
**However**: Do **NOT** overwrite the `hardware-configuration.nix` but rather use the one in this repository as some kind of template.
Once everything is done, the fun part begins:
```sh
sudo nixos-install
```
And that's essentially it.
After some time you will most likely be prompted to type in a new `superuser` password, just type in the actual password and that's it for the standard configuration.
### Step 6: Home-Manager
Just add the Home-Manager to your `nix-channel` and let it do the magic.
```sh
sudo nix-channel --add https://github.com/nix-community/home-manager/archive/release-[your-nixos-version].tar.gz home-manager
sudo nix-channel --update
```
For more information regarding the Home-Manager, [use this Link](https://nix-community.github.io/home-manager/index.html)
### Step 7: Flakes
With the recent changes i adopted my configuration to make use of Nix flakes.
Keep in mind that flakes can only be used with the `nix flake` feature enabled.
e.g.:
```nix
{
nix = {
package = pkgs.nixUnstable;
extraOptions = ''
experimental-features = nix-command flakes
'';
};
}
```
For now the usage of the flakes is (to install a flake profile):
```sh
sudo nixos-rebuild switch --flake '.#[profile]'
```
This is however most likely not the final version of it, as hardware information configuration are completely absent for now.