❄️ BlackDonOS - Powered by NixOS ❄️
View Latest on GitLabA customized NixOS configuration based on ZaneyOS by Tyler Kelley, tailored for multiple host setups with NVIDIA GPU support.
Overview
Black Don OS is a personalized NixOS configuration that supports multiple host computers with different hardware profiles. It features a modern minimal desktop environment with Hyprland, extensive customization options, and easy multi-host management.
The configuration is built with modularity in mind - each host can have different features enabled or disabled (like NFS, printing, gaming controller support, Flutter development environment, etc.), custom keybinds and window rules, and personalized theming. It includes the Vicinae launcher by default for a smooth application launching experience.
Features
- 🖥️ Multi-Host Support - Easy configuration management for multiple computers
- 🎮 NVIDIA GPU Optimized - Full support for NVIDIA graphics with proper drivers
- 📊 Modular Bar System - Choose between Waybar, Dank Material Shell (DMS), or Noctalia Shell for your desktop bar
- 🌊 Hyprland Desktop - Modern Wayland compositor with beautiful animations
- 🪟 Niri Desktop - Scrollable-tiling Wayland compositor as an alternative to Hyprland
- 🎨 Stylix Integration - System-wide theming and styling
- 📦 Flake-based Configuration - Reproducible and declarative system management
- 🔧 Easy Host Setup - Automated script for adding new computers
- ⚡ dcli Tool - Custom CLI utility for multi-host system management
- 🎛️ Modular Features - Toggle features per host (NFS, printing, gaming controllers, etc.)
- ⌨️ Per-Host Customization - Host-specific keybinds and window rules for Hyprland
Installation
For New Users
If you want to install Black Don OS on a fresh NixOS system:
- Boot from NixOS ISO and ensure you have network access
-
Install git and pciutils (for
hardware detection):
nix-shell -p git pciutils -
Run the installation script:
sh <(curl -sL https://gitlab.com/theblackdon/black-don-os/-/raw/bdos-beta-0.4/install-black-don-os.sh)
The installer will:
- Detect your hardware (GPU, etc.)
- Guide you through hostname and user configuration
- Clone the repository and set up your configuration
- Build and install Black Don OS
- Create a personalized setup for your computer
After Installation: You may need to
customize monitor settings and GPU IDs in your
hosts/YOUR-HOST/variables.nix file:
-
Monitor Configuration: Update
extraMonitorSettingswith your actual monitor setup -
NVIDIA Prime: Update
intelIDandnvidiaIDwith your actual GPU PCI IDs (find withlspci | grep VGA) -
Wallpapers: Choose your preferred
wallpaper from the
wallpapers/directory
For Existing Black Don OS Users
If you already have Black Don OS and want to add a new computer:
./setup-new-host.sh
This will guide you through:
- Choosing a hostname
- Selecting GPU profile (nvidia, nvidia-laptop, amd, intel, vm)
- Configuring user settings
- Creating installation guide for the new computer
Host Configuration
Each host has its own directory under
hosts/ containing:
default.nix- Main host imports-
hardware.nix- Hardware-specific configuration (generated by nixos-generate-config) -
variables.nix- Host-specific settings (monitors, GPU IDs, preferences) -
host-packages.nix- Host-specific package list
dcli - Don CLI Utility
Black Don OS includes dcli, a custom
command-line utility for managing your multi-host setup:
Common Commands
dcli help # Show all commands
dcli list-hosts # List available hosts
dcli rebuild # Rebuild current host
dcli update # Update and rebuild current host
dcli build HOST # Build specific host (no activation)
dcli deploy HOST # Deploy to specific host
dcli cleanup # Clean old generations
dcli switch-host # Interactive host switcher
Credits
- ZaneyOS: Original configuration by Tyler Kelley
- NixOS: The foundation of this configuration
- Hyprland: Wayland compositor
- Stylix: System theming
- Home Manager: User environment management
License
Based on ZaneyOS, following the same license terms. See LICENSE file for details.
Get Started
For the latest documentation, installation guides, and updates, visit the GitLab repository.
Visit GitLab Repository