Skip to content

To Automate Installation of Hyprland on NixOS using flakes. NOTE: Dot configs are not written in Nix.

Notifications You must be signed in to change notification settings

JaKooLit/NixOS-Hyprland

Repository files navigation

💌 ** KooL's ❄️ NixOS-Hyprland Install Script ** 💌

GitHub Repo stars GitHub last commit GitHub repo size



👇 KOOL's Hyprland-Dots related Links 👇

Sparkles KooL Hyprland-Dotfiles Showcase Sparkles

showoff-dots.mp4

Caution

This is not purely written in Nix-Language. You should check ZaneyOS. Link below

Important

By default, all packages set to install are from NixOS stable channel. Note Hyprland to be installed will be of OLD version

  • 25 Feb 2025 - I am really tired of baby sitting Unstable Channel. NixOS unstable d Most UNSTABLE Distro I have tried. If you are new to NixOS, stay on stable channel. However, if you wish to use unstable channel, you need to adjust flake.nix , hosts/host/packages-fonts.nix, hosts/host/config.nix before running the install.sh

  • Make sure to read Hyprland's WIKI

🪧🪧🪧 Click for important announcements 🪧🪧🪧
  • ** This Repo does not contain Hyprland Dots or configs! **
  • ** Configs are NOT written in NIX language **
  • Hyprland Dotfiles will be downloaded from KooL's Hyprland-Dots
  • The Hyprland-Dots used are constantly evolving / improving
  • You can check CHANGELOGS here Hyprland-Dots-Changelogs
  • GTK Themes and Icons will be pulled from LINK, including Bibata Cursor Modern Ice
  • The wallpapers offered to be downloaded towards the end are from this REPO

> [!IMPORTANT] > Take note of the requirements >
👋 👋 👋 Requirements
  • You must be running on NixOS 23.11+
  • 24.11+ recommended
  • Minimum space required is 64gb. 128gb is recommended as NixOS is a space-hungry distro
  • Must have installed NIXOS using **GPT partition ** & Boot UEFI
  • /boot must be at least 512MB.
  • Systemd-boot is configured as the default bootloader

[!TIP] if you use GRUB as bootloader you need to edit hosts/default/config.nix before install and flake.nix for additional grub themes

🖥️ Multi Host & User Configuration
  • You can now define separate settings for different host machines and users!
  • Easily specify extra packages for your users in the users.nix file.
  • Easy to understand file structure and simple, but encompassing, configuration.
📦 How To Install Packages?
  • You can search the Nix Packages
  • Options pages for what a package may be named or if it has options available that take care of configuration hurdles you may face.
  • By default, all the packages are in NixOS-Hyprland
  • You can safely move directories hosts modules flake.lock & flake.nix in different single directory.
  • If you have a set a different custom hostname, you can safely remove the default directory inside hosts.
  • Then edit hosts/<your-hostname>/configs.nix , hosts/<your-hostname>/packages-fonts.nix and/or hosts/<your-hostname>/user.nix depending on what you want.
  • The config.nix file is for system packages with options. ie pro grams.hyprland.enable=true,
  • The packages-fonts.nix file is for adding packages and changes made to user.nix are only available to the current user.
  • Once you are finished editing, run sudo nixos-rebuild switch --flake <path-where-you-move those directories above>/#"${hostName}"

** NOTE. omit < > and ensure you are in the directory where your flake.nix is. - For example: If you make the hostname nixos then your command should be sudo nixos-rebuild switch --flake .#nixos

  • If you decided NOT to move the directories stated above, then you can rebuild with
sudo nixos-rebuild switch --flake ~/NixOS-Hyprland/#<hostName>
🙋 Having Issues / Questions?
  • Please feel free to raise an issue on the repo, please label a feature request with the title beginning with [feature request], thank you!
  • If you have a question about KooL's Hyprland dots, see KooL's Dots WIKI. Contained within the wiki is an FAQ, along with other pages for tips, keybinds, and more!

⬇️ Installation

📽 Youtube video for using this script

📜 1. Using auto install Script: <
  • This is the easiest and recommended way of starting out.
  • This script is NOT meant to allow you to change every option that you can in the flake.
  • It won't help you install extra packages.
  • It is simply here so you can get my configuration installed with as little chance of breakages.
  • It is up to you to fiddle with to your heart's content!
  • Simply copy this and run it:
nix-shell -p git vim curl pciutils
sh <(curl -L https://github.com/JaKooLit/NixOS-Hyprland/raw/main/auto-install.sh)

[!NOTE] pciutils is necessary to detect if you have an Nvidia card. </div?

🦽 2. Manual:
  • Run this command to ensure git, curl, vim & pciutils are installed: Note: or nano if you prefer nano for editing
nix-shell -p git vim curl pciutils
  • Clone this repo & CD into it:
git clone --depth 1 https://github.com/JaKooLit/NixOS-Hyprland.git ~/NixOS-Hyprland
cd ~/NixOS-Hyprland
  • You should stay in this directory for the rest of the install
  • Create the host directory for your machine(s)
cp -r hosts/default hosts/<your-desired-hostname>
  • Edit as required the config.nix , packages-fonts.nix and/or users.nix in hosts/<your-desired-hostname>/
  • then generate your hardware.nix with:
sudo nixos-generate-config --show-hardware-config > hosts/<your-desired-hostname>/hardware.nix
  • Run this to enable flakes and install the flake replacing hostname with whatever you put as the hostname:
NIX_CONFIG="experimental-features = nix-command flakes" 
sudo nixos-rebuild switch --flake .#hostname

Once done, you can install the GTK Themes and Hyprland-Dots. Links are above

👉🏻 3. Alternative
  • auto install by running ./install.sh after cloning and CD into NixOS-Hyprland

[!NOTE] install.sh is a stripped version of auto-install.sh as it will not re-download repo

  • Run this command to ensure git, curl, vim & pciutils are installed: Note: or nano if you prefer nano for editing
nix-shell -p git curl pciutils
  • Clone this repo into your home directory & CD into it:
git clone --depth 1 https://github.com/JaKooLit/NixOS-Hyprland.git ~/NixOS-Hyprland
cd ~/NixOS-Hyprland

Important

need to download in your home directory as some part of the installer are going back again to ~/NixOS-Hyprland

  • You should stay in this directory for the rest of the install
  • edit hosts/default/config.nix to your liking. Once you are satisfied, ran ./install.sh Now when you want to rebuild the configuration, you have access to an alias called flake-rebuild that will rebuild the flake!

Hope you enjoy! 🎉

💔 known issues 💔 - GTK themes, icons, and the cursor, are not applied automatically. gsettings does not seem to work. - You can set GTK themes, icons, and the cursor, using nwg-look

🪤 My NixOS configs

🎞️ AGS Overview DEMO

  • in case you wonder, here is a short demo of AGS overview Youtube LINK

⌨ Keybinds

Tip

KooL's Dots v2.3.7 has a searchable keybind function via rofi. (SUPER SHIFT K) or right click the HINTS waybar button

⌚ Setting timezone
  • By default, your timezone is configured automatically using the internet.
  • To set your timezone manually, edit host/<your-hostname>/config.nix

🫥 Improving performance for Older Nvidia Cards using driver 470

🔙 Reverting back to your default configs
  • If you use flakes, you can just simply locate your default or previous configs. CD into it and execute sudo nixos-rebuild switch --flake .#<your-previous-flake-hostname>
  • If you didn't have flakes enabled previously, simply running sudo nixos-rebuild switch will revert you to your default configs contained in /etc/nixos/
  • ⚠️ just remember to clean up your nix/store to remove unnessary garbage from your system sudo nix-collect-garbage -d
  • OR, simply just revert into a previous generation of your system by choosing which generation to boot via your bootloader.

📒 Final Notes

  • join my discord channel Discord
  • Feel free to copy, re-distribute, and use this script however you want. Would appreciate if you give me some loves by crediting my work :)
✍️ Contributing
  • As stated above, these script does not contain actual config files. These are only the installer of packages
  • If you want to contribute and/or test the Hyprland-Dotfiles (development branch), Hyprland-Dots-Development
  • Want to contribute on KooL-Hyprland-Dots Click HERE for a guide how to contribute
  • Want to contribute on This Installer? Click HERE for a guide how to contribute

👍👍👍 Thanks and Credits!

  • Hyprland Of course to Hyprland and @vaxerski for this awesome Dynamic Tiling Manager.
  • ZaneyOS - template including auto installation script and idea. ZaneyOS is a NixOS-Hyprland with home-manager. Written in pure nix language
💖 Support
  • a Star on my Github repos would be nice 🌟

  • Subscribe to my Youtube Channel YouTube

  • you can also give support through coffee's or btc 😊

ko-fi

or

"Buy Me A Coffee"

Or you can donate cryto on my btc wallet :)

1N3MeV2dsX6gQB42HXU6MF2hAix1mqjo8i

Bitcoin

📹 Youtube videos (Click to view and watch the playlist) 📹 [![Youtube Playlist Thumbnail](https://raw.githubusercontent.com/JaKooLit/screenshots/main/Youtube.png)](https://youtube.com/playlist?list=PLDtGd5Fw5_GjXCznR0BzCJJDIQSZJRbxx&si=iaNjLulFdsZ6AV-t)

🥰🥰 💖💖 👍👍👍 Stargazers over time