/dotfiles

My dotfiles + system configuration for NixOS and mac

Primary LanguageNixMIT LicenseMIT

dotfiles

Here lies the dotfiles crafted with much care

Configuration

A glance at what is present in this lair.

Name What I am using (NixOS) What I am using (Mac)
OS NixOS macOS
Terminal Emulator Kitty Kitty
Shell 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

Well these look different from normal dotfiles mate

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:

Color me interested! Where can I know more?

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.

Setup

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.

User config setup

Requirements

  • nix with flake support is available

Steps

  • 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"

Full Setup of NixOS (first time)

Requirements

  • 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

Steps

  • Install NixOS
    • Make sure you have a way to get this repo. curl, git, etc.
    • Make sure you enable internet
  • 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"

Caveat

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.

Code Structure

  • 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.

Here are a few screenshots to showcase this config in action

Tokyonight

System Info Widgets App-Launcher Ricing Locked

Click to see more screenshots from the past

Dracula

System Info Wall App-Launcher Ricing Locked

Onedark

System Info Wall App-Launcher Ricing Locked