Skip to content
/ dotfiles Public

Linux/MacOS .files & NixOS configuration built with Snowfall. My setup is tailored for IT security & DevOps tasks

Notifications You must be signed in to change notification settings

qrxnz/dotfiles

Repository files navigation

dotfiles

✒️ Description

Linux dotfiles and NixOS configuration built with Snowfall. My setup is tailored for IT security and DevOps tasks

My configuration is tailored for tasks in the areas of DevOps and IT security. The key details I emphasized are reproducibility and a personalized experience to achieve an efficient and enjoyable workflow.

🖼️ Gallery

🍏 MacOS

🐧 Linux (Desktop)

❄️ NixOs Machines

  • mentay 🍃 (Laptop x86_64)
    • WM: Hyprland
    • Shell: Nu
    • Terminal: Kitty
    • Additional: KVM, Docker, Waydroid, AMD GPU support, Development and Creative suites.

🧰 features

System management tool `sys`

Rebuild (in flake directory):

sudo sys rebuild # or `r` as a shorthand

Testing an ephemeral config:

sudo sys test # or `t` as a shorthand

Deploying to a server (in flake directory):

sudo sys deploy HOSTNAME # or `d` as a shorthand

⚒️ Installation

🐧🍏 non-nixos machines

git clone --recursive https://github.com/qrxnz/dotfiles  ~/.dotfiles &&\
cd ~/.dotfiles &&\
chmod +x ./setup.sh

🐧 Linux

Prerequisite: stow, zsh, curl

  • Hyprland dotfiles

Warning

Remember to install the necessary packages on your distribution.

./setup.sh --hyprland-default
  • Shell only dots

Warning

Remember to install the necessary packages on your distribution.

./setup.sh --shell-only

🍏 MacOS

Prerequisite: homebrew, stow, curl

./setup.sh --macos

❄️ NixOS Installation

Disk Partitioning

First, you need to partition your drive. The following commands will create a GPT partition table and set up partitions for your root, swap, and boot filesystems.

  • Become root: Gain root privileges to manage the disks.

    sudo su
  • Partition the drive: This example uses /dev/nvme0n1. Make sure to replace this with your actual drive. This creates three partitions:

    • A 512MB boot partition.
    • An 8GB swap partition.
    • The rest of the disk for the root (/) partition.
    parted /dev/nvme0n1 -- mklabel gpt
    parted /dev/nvme0n1 -- mkpart primary 512MB -8GB
    parted /dev/nvme0n1 -- mkpart primary linux-swap -8GB 100%
    parted /dev/nvme0n1 -- mkpart ESP fat32 1MB 512MB
    parted /dev/nvme0n1 -- set 3 esp on
  • Format and mount partitions: Next, format the partitions with the appropriate filesystems and mount them.

    mkfs.ext4 -L nixos /dev/nvme0n1p1
    mkswap -L swap /dev/nvme0n1p2
    mkfs.fat -F 32 -n boot /dev/nvme0n1p3
    mount /dev/disk/by-label/nixos /mnt
    mkdir -p /mnt/boot
    mount /dev/disk/by-label/boot /mnt/boot
    swapon /dev/nvme0n1p2

Final Installation Steps

Now you can clone the dotfiles and install NixOS.

  • Clone the repository: Clone this repository into the /mnt directory.

    git clone --recursive https://github.com/qrxnz/dotfiles .dotfiles &&\
    cd .dotfiles
  • Generate hardware configuration: Let NixOS generate a hardware configuration file for your system and then copy it into the systems directory of this flake. Replace hostname with the desired hostname for your new system (e.g., mentay).

    nixos-generate-config --root /mnt &&\
    cp /mnt/etc/nixos/hardware-configuration.nix .dotfiles/systems/x86_64-linux/hostname/
  • Install NixOS: Finally, install NixOS using the flake. Remember to replace hostname with the one you chose previously.

    nixos-install --flake .#hostname

👾 Others

🐱 Neovim

If you want to use my neovim configuration, I recommend installing it through nix profile

nix profile install github:qrxnz/nveem

🗒️ Credits

🎨 Inspiration

I was inspired by:

🐈 Theme

I use Catppuccin in every part of my config!

❤️ Special thanks

To redyf for the amazing wallpapers & IogaMaster for snowfall-starter

About

Linux/MacOS .files & NixOS configuration built with Snowfall. My setup is tailored for IT security & DevOps tasks

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published