
Want the dynamic beauty of JaKooLit's setup with the unbreakable stability of a declarative OS? Here is the complete guide to installing and configuring JaKooLit Hyprland dotfiles on NixOS for a tiling, reproducible Wayland experience.
Hi all, and welcome back to MusaBase!. I have been tinkering with NixOS for over a month, but I was having difficulty learning the curve because of the whole declarative ecosystem. But then I thought I should try and install JaKooLit Hyprland dotfiles. The reason I chose to do this is one: even though it's officially supported, the documentation is missing some pieces, and second, the best way to learn something is to do what others say is difficult. And in today's guide, I will show you exactly how you can install and run JaKooLit Hyprland dotfiles on your NixOS system.
In this guide, we will cover how to:
- Prepare the NixOS system for JaKooLit Hyprland.
- Clone the JaKooLit dotfiles repository.
- Create our own host config.
- Edit flake.nix to match Host.
- Generate Nix's hardware config.
- Stage with git.
- Enable flakes and build.
- Install icons and GTK themes on NixOS for JaKooLit aesthetics.
- And finally, install the JaKooLit Hyprland dotfiles on NixOS and log into it.
By following this guide to the end, you will have fully functional JaKooLit Hyprland dotfiles on your NixOS system.
⚡ TL;DR: Install JaKooLit Hyprland Dotfiles on NixOS
A quick reference for installing and configuring JaKooLit Hyprland dotfiles on a base NixOS system, including host config, flake.nix setup, building, GTK themes, and the interactive installer.
-
Enter nix-shell and install temporary dependencies:
(Stay inside this shell until Step 5 completes.)nix-shell -p git curl pciutils -
Clone the JaKooLit NixOS-Hyprland repo and enter it:
If you get "Could not resolve host" errors, add custom nameservers in /etc/nixos/configuration.nix and rebuild.git clone --depth 1 https://github.com/LinuxBeginnings/NixOS-Hyprland.git ~/NixOS-Hyprland cd ~/NixOS-Hyprland -
Create your host config:
(Optional) Edit config.nix, packages-fonts.nix, or users.nix as needed.cp -r hosts/default hosts/musabase # replace musabase with your hostname -
Edit flake.nix to match your host and username:
Replacenano flake.nix"jak-hl"and"dwilliams"with your actual hostname and username (e.g.,"musabase"). -
Generate hardware config:
(Replace musabase with your hostname.)sudo nixos-generate-config --show-hardware-config > hosts/musabase/hardware.nix -
Stage, enable flakes, and build:
This downloads ~23GB of files (quickshell + dependencies) and takes 30-40+ minutes.git add -A NIX_CONFIG="experimental-features = nix-command flakes" sudo nixos-rebuild switch --flake .#musabase # replace musabase with your hostname -
Install GTK themes and icons:
git clone --depth 1 https://github.com/LinuxBeginnings/GTK-themes-icons.git cd GTK-themes-icons chmod +x auto-extract.sh bash auto-extract.sh cd .. rm -rf GTK-themes-icons -
Install JaKooLit Hyprland dotfiles:
If you get "git: no such command", add git permanently in /etc/nixos/configuration.nix and rebuild.git clone --depth 1 https://github.com/LinuxBeginnings/Hyprland-Dots ~/Hyprland-Dots cd ~/Hyprland-Dots chmod +x copy.sh bash copy.sh -
Follow the interactive installer prompts:
- Select 1 – Install - Fresh copy
- Confirm keyboard layout, default editor, monitor scaling, clock format, etc.
- Choose whether to download additional wallpapers (~1GB).
-
Reboot and log in:
Enter your password at the JaKooLit login screen and enjoy your new Hyprland desktop!reboot
💡 The build process (Step 6) is the longest part – it downloads ~23GB and compiles packages on the spot. Plan for 25‑40+ minutes depending on your hardware. Keep your NixOS root partition at 60GB+ to avoid running out of space. After installation, you can still boot into your original desktop environment from the GRUB menu.
Prerequisites
To install JaKooLit Hyprland dotfiles, we only need a base NixOS system installed. I'm installing it on my NixOS with Budgie as its desktop environment. If you don't have NixOS installed, I would recommend you first follow my guide:
Install NixOS with Budgie or any desktop environment you want, then come back to this guide and continue. Make sure to give your root partition more than 60 GB of space, because some of the dependencies that are needed to run JaKooLit Hyprland dotfiles on NixOS consume a large amount of storage space.
System Requirement for JaKooLit Hyprland on NixOS:
- Processor: Any x86-64 compatible
- RAM: Minimum 8GB (but more RAM is better)
- Storage: Minimum 55GB (it's only for NixOS system files and JaKooLit files); you will need more storage space for additional packages and files
- GPU: Any 2015+ GPU
- OS: Minimal/base NixOS
- Stable internet connection
Step 1: Prepare NixOS for JaKooLit Hyprland Dotfiles
In this step, we will temporarily install required dependencies like git, curl, pciutils in the nix-shell and download the JaKooLit Hyprland NixOS base repo to set everything up.
1.1: Install Required Dependencies
- Open terminal and run:
nix-shell -p git curl pciutils
1.2: Clone Nix's System Layered JaKooLit Hyprland Dotfiles Repo
Fix "Could not resolve host" Error
If you hit any errors like Could not resolve hostname (X) Could not resolve host or 1 dependency failed while downloading packages or repos from GitHub, this usually happens because of the default nameserver provided by your ISP, which blocks your access to certain packages or GitHub altogether. This issue could only be related to my region; it could be different for you. Anyway, I fixed it by doing the following steps:
- Open terminal and run:
sudo nano /etc/nixos/configuration.nix - In configuration.nix, add these lines:
networking.nameservers = [ "1.1.1.1" "8.8.8.8." ]; networking.networkmanager.dns = "none"; - After adding the nameservers, press CTRL + O to save the file, then press ENTER to apply the changes, then press CTRL + X to exit the file.
- Next, to actually apply the changes to the NixOS system, run:
sudo nixos-rebuild switch
Step 2: Create Host Config
In this step, we will create our own host config file that flake.nix will use to build packages and dependencies in the next steps.
(Optional) Edit Additional Files
JaKooLit Hyprland dotfiles for NixOS gives us control over three customizable files to edit options according to what we prefer:
- config.nix: This file contains system-wide settings and Hyprland itself, and other settings such as:
- Bootloader choice (systemd-boot or GRUB)
- Timezone
- Networking
- And other system-wide settings
- packages-fonts.nix: This file is only for managing extra packages or font list.
- users.nix: This file contains the NixOS user account definition, users.users.<name> = { isNormalUser = true; extraGroups = [ "wheel" "networkmanager" ... ]; ... };. This file determines which user or group has sudo privileges.
For my system, I'm leaving these files as they are and continuing.
Step 3: Edit flake.nix to Match Host
In this step, we will edit the flake.nix file to change the host and username values to our own.
- In the terminal, run:
nano flake.nix - In the flake.nix file, find these lines:
host = "jak-hl"; username = "dwilliams"; - Replace the "jak-hl" and "dwilliams" with your actual host and username, like for me, these are:
host = "musabase"; username = "musabase"; - After editing, press CTRL + O to save the changes, then press ENTER to apply the changes, then press CTRL + X to exit the file.
Step 4: Generate Hardware Config
In this step, we will generate NixOS hardware config and save it inside hosts/musabase.
Step 5: Stage with Git, Enable Flakes, Build and Install Themes, Icons
In this step, all the core components such as quickshell and GTK themes and icons of installing JaKooLit Hyprland dotfiles on NixOS will take place. Make sure to follow each step closely.
5.1: Stage with Git and Enable Flakes and Build
- In the terminal, run the following commands consecutively:
git add -A NIX_CONFIG="experimental-features = nix-command flakes" sudo nixos-rebuild switch --flake .#musabase #replace musabase with your hostname
- After running the nixos-rebuild command, the system will start downloading dependencies, tools, and packages that are defined in the JaKooLit Hyprland NixOS-Hyprland files.
- It will also install quickshell, which is the core component for JaKooLit Hyprland, though it will download 23GB+ of files solely for quickshell, which roughly took more than 30 minutes on my PC.
- It will also build and compile the dependencies that need compiling on the spot; the whole process can take 25 to 40+ minutes.
- After the installation and extravaganza are done, the terminal will close automatically, so don't panic.
5.2: Install GTK Themes and Icons
- Open terminal, run the following commands consecutively:
git clone --depth 1 https://github.com/LinuxBeginnings/GTK-themes-icons.git cd GTK-themes-icons chmod +x auto-extract.sh bash auto-extract.sh cd .. rm -rf GTK-themes-icons
Step 6: Install JaKooLit Hyprland Dotfiles on NixOS
In this step, we will install the actual JaKooLit Hyprland dotfiles on the NixOS system and reboot to log back into JaKooLit Hyprland.
- Open terminal and run these commands consecutively:
git clone --depth 1 https://github.com/LinuxBeginnings/Hyprland-Dots ~/Hyprland-Dots cd ~/Hyprland-Dots
- Next, make the copy.sh script executable, which is the actual install script for JaKooLit Hyprland dotfiles on NixOS, and run it using Bash:
chmod +x copy.sh bash copy.sh
- After running the bash command, the JaKooLit Hyprland installer CLI interface will load with the options shown in the image below. Type the index number for the option that says Install - Fresh copy (currently option number 1) and press ENTER.
- After running the workflow and checking hardware and system information, the JaKooLit Hyprland installer will prompt for your keyboard layout, which it will pick from your NixOS system's default. If it's correct, type y and press ENTER. If not, enter your layout name and press ENTER.
- Next, the JaKooLit installer for NixOS will prompt you to make neovim the default editor. It's your preference; type y or n and press ENTER. I'm choosing to make neovim my default editor.
- Next, the JaKooLit installer for NixOS will prompt you to choose an Optional GUI editor for Quick Settings. Here, type the editor name you want (e.g., neovide, geany, codium) and press ENTER. I'm leaving this option empty and skipping to the next one.
- Next, the JaKooLit installer for NixOS will prompt you to select your monitor resolution for scaling, with these options:
- Less then 1440p (lower DPI; smaller displays)
- Greater then or equal to 1440p (default; 1440p/2k/4k)
- Next, the JaKooLit installer for NixOS will prompt: Do you want to change to a 12H (AM/PM) clock format? (y/n):. Type y or n according to your preference and press ENTER. I'm choosing the 12H format for my PC.
- Next, if kitty was installed during the building and installing packages section, the JaKooLit Hyprland installer for NixOS will prompt: Do you want to replace kitty config?. Type y and press ENTER to continue.
- Next, the JaKooLit Hyprland installer for NixOS will prompt: Use Fahrenheit (F) or Celsius (C)? [C]:. Type the format preference you want for your JaKooLit Hyprland NixOS system and press ENTER. I'm choosing C.
- Last but not least, the JaKooLit Hyprland dotfiles installer for NixOS will prompt: Would you like to download additional wallpaper? [WARN] This is 1GB in size (y/n):. If you want to download the additional wallpapers, type y and press ENTER. I'm downloading the additional wallpapers for my system.
- After downloading the wallpapers, the JaKooLit installer will symlink and apply the settings and configs for the dotfiles. The process will complete with the message: [ OK ] GREAT! KooL's Hyprland-Dots is now Loaded & Ready !!!
- Next, reboot the PC with:
reboot
Step 7: Log into JaKooLit Hyprland Dotfiles on NixOS
After the system reboots, we can see that the boot loader and loading splash screen are themed as an indicator that JaKooLit Hyprland dotfiles configs are applied correctly. In a few seconds, the JaKooLit login screen will appear:
- Enter your password to login.
And we are in!
Frequently Asked Questions
What are the system requirements for JaKooLit Hyprland on NixOS?
You need a base NixOS installation with at least 8GB RAM, 55GB storage (60GB+ recommended), an x86-64 processor, and a 2015+ GPU. A stable internet connection is also required since the installation downloads over 23GB of dependencies.
Why do I need to run commands inside nix-shell?
The nix-shell environment temporarily installs packages like git, curl, and pciutils without permanently modifying your system. This keeps your base NixOS clean while allowing you to clone repositories and run the necessary build commands. However, the terminal session will close after the build completes, removing those temporary packages, which is why we later install git permanently.
Why do I get "Could not resolve host" errors during installation?
This usually happens because your ISP's default nameserver blocks access to GitHub or certain package repositories. The fix is to add custom nameservers like 1.1.1.1 and 8.8.8.8 in your /etc/nixos/configuration.nix file and set networking.networkmanager.dns = "none", then rebuild with sudo nixos-rebuild switch.
Why does the build process download 23GB+ of files and take so long?
The JaKooLit Hyprland dotfiles for NixOS install quickshell, which is a core component that bundles many dependencies including Qt libraries. The build also compiles packages on the spot, which can take 25 to 40+ minutes depending on your hardware. This is normal—the process ensures everything is optimized for your specific system.
What should I do if I get "git: no such command" when cloning the dotfiles?
This happens because git was installed temporarily inside nix-shell, and when that terminal session closed, git was removed. To fix it, permanently add git to your environment.systemPackages in /etc/nixos/configuration.nix, then run sudo nixos-rebuild switch to install it system-wide.
How do I set the correct hostname and username in flake.nix?
Edit the flake.nix file and replace the placeholder values "jak-hl" and "dwilliams" with your actual system hostname and username. For example, if your hostname is musabase and username is also musabase, set both to that. This ensures the build correctly finds your hosts/musabase/ folder.
Can I use JaKooLit Hyprland on NixOS with a different desktop environment?
Yes. The guide assumes you have a base NixOS installation with any desktop environment (like Budgie, GNOME, KDE, etc.). The JaKooLit Hyprland dotfiles will replace the desktop environment with Hyprland as a tiling Wayland compositor. Your existing DE will still be available in the boot menu if you want to switch back.
What is the purpose of generating the hardware config?
The nixos-generate-config --show-hardware-config command detects your system's hardware (CPU, GPU, storage, etc.) and generates a Nix configuration file (hardware.nix) that tells NixOS how to properly interact with your hardware. This file is essential for a successful build.
How can I verify that JaKooLit Hyprland is installed correctly?
After rebooting, you'll see a themed boot loader and splash screen. The JaKooLit login screen will appear. Enter your password, and you should see the Hyprland desktop with the JaKooLit configuration applied. The successful installation message "[ OK ] GREAT! KooL's Hyprland-Dots is now Loaded & Ready !!!" also confirms it.
Can I use this guide on other Linux distributions?
This guide is specifically written for NixOS due to its declarative configuration and flakes system. While JaKooLit Hyprland dotfiles can be installed on other distributions, the steps (especially using nix-shell, flake.nix, and nixos-rebuild) are NixOS-specific and won't work on Arch, Ubuntu, or other distros without significant modification.
🚀 JaKooLit Hyprland on NixOS: Fully Set Up!
You now have JaKooLit's retro‑inspired Hyprland environment running on a declarative NixOS base, blending the nostalgia of early computing with the rock‑solid reproducibility of Nix flakes. Between the themed bootloader, the curated GTK aesthetics, and the tiling Wayland workflow, your NixOS desktop is genuinely complete.
If this completed your NixOS Hyprland journey, stick around, MusaBase has plenty more Linux, BSD, and virtualization guides where this came from.
101 out, I'll see you in the next one! 🚀


