Here lies the dotfiles
crafted with much care
A glance at what is present in this lair.
Name | What I am using (NixOS) | What I am using (Mac) |
---|---|---|
OS | NixOS | MacOS BigSur |
Terminal Emulator | Kitty | Kitty |
Shell | ZSH + ohmyzsh, | ZSH + ohmyzsh, |
Nu Shell | Nu Shell | |
Font | Hack Nerd Font Mono | Hack Nerd Font Mono |
Editor | Neovim | Neovim |
XMonad, | ||
Taffybar, | ||
picom, | ||
Desktop Environment | betterlockscreen | Whatever comes with Mac |
rofi, | ||
deadd, | ||
eww, | ||
etc | ||
Browser | Firefox | Firefox |
User environment manager | Home Manager | Home Manager |
Ok so I am one of those people who are all in on the "nix hype train". That is why this might look unfamiliar to someone who does not know what nix is.
Nix is a philosophy, a programming language, a package manager and an OS. All this culminates in a unique approach to package management and system configuration. The end result is reproducible, declarative and reliable systems.
Think of it like git but for your system, package management, etc. :mind_blown:
Now if you are still with me and want to know more about it. Here are a few helpful links that you can visit to know more about it.
- Watch first 6 minutes of this video to get a gist of nix package management and how it's different from standard package management and then building on that what is NixOS)
- If the previous video peeks your curiosity then I recommend looking at this to get a deeper understanding
- Finally, if you decide that this is something you want for yourself. Then this brilliant playlist might just be the perfect place to start.
Note: This distro of Linux is quite different from others, so please do spend some time with it.
Here is a walkthrough of what are the steps one need to take to get this config or parts of it setup on any system.
- nix with flake support is available
- Get contents of this repo onto your system to
~/.dotfiles
cd
into~/.dotfiles
- Execute:
nix run home-manager --no-write-lock-file -- switch --flake "./#nixos"
- Some way to install NixOS
- Ability to connect to the internet
- Boot drive with label
NIXBOOT
- Root drive where the OS will go
NIXROOT
- Swap partition
NIXSWAP
- Install NixOS
- Make sure you have a way to get this repo.
curl
,git
, etc. - Make sure you enable internet
- Make sure you have a way to get this repo.
- Get contents of this repo onto your system to
~/.dotfiles
cd
into~/.dotfiles
- Execute:
sudo nixos-rebuild switch --flake './#nixos'
- Execute:
nix run home-manager --no-write-lock-file -- switch --flake "./#nixos"
I make use of git-crypt on files in the
.secrets
folder. If you plan to use these dotfiles then you will either have
to replace those files with what you need or remove references to these files
from the codebase.
- The top level folder is a flake
- After that it's just a matter of following the code really. So just open that
flake.nix
file and start reading it from the top.