Skip to content

Arcreuss/Nix-PromethOS-Rice

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

42 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

NixOS & Flake

⚠️ This repository is currently under development 🚧

I do not recommend cloning the repository at this time, as the initial structure has not yet been finalized.
Since the project is still in development and brand new, I am not accepting contributors or pull requests at this time.
For now, please use this template as a guide to help you create your own.

🚩 IMPORTANT: You should NOT deploy this flake directly on your machine ❗

The flake contains my hardware configuration file, which is not suitable for your hardware.
Please make the necessary changes to adapt it to your machine and user account before rebuilding the Nix configuration.

The challenge with NixOS

This is my first time using NixOS, and I can already tell that learning and building my own architecture is a difficult challenge. NixOS provides exactly the philosophy I was looking for: stability, reproducibility and full control over the system.
I love how NixOS lets you manage your system however you want.
Here, the goal is to create a solid and robust architecture as possible, within my beginner's capabilities.

Hyprland

As a fan of Arch ricing, I decided to customize my own NixOS window manager from scratch with Hyprland, which I had never used or setup before.
The Hyprland settings are distributed under the path ../nixos/home/modules/hyprland/ in order to easily define a new profile.
The keyboard shortcuts are based on Vim for the navigation.

Features

  • NixOS flake-based configuration
  • Modular host/profile architecture
  • Hyprland configuration split into reusable modules
  • Waybar + GTK theming
  • Dynamic color schemes using Wallust
  • Multi-host ready configuration

Structure

.
├── flake.nix
├── hosts/
│   └── promethos-desktop/
│       ├── configuration.nix
│       ├── hardware-configuration.nix
│       └── home.nix
├── modules/
├── home/
│   ├── users/
│   ├── profiles/
│   └── modules/
├── packages/
└── overlays/

Configuration, Profile, Settings

The main goal is to share a continuous integration of my configuration, easily usable after cloning by anyone.
Currently, my system uses Flake, a HomeManager for my user, Hosts and Profiles concepts.

Components

NixOS (Wayland)
Window Manager Hyprland
Terminal Emulator Kitty
Status Bar Waybar + GTK
Lockscreen Hyprlock
Launcher Rofi
Color scheme generator Wallust
Network management tool NetworkManager
System resource monitor Btop
File Manager Yazi
Shell zsh + Starship
Media Player mpv
Text Editor Neovim
Fonts Nerd fonts
Wallpaper swww + pickwall (internal pkg)
Youtube player yt-x
Filesystem & encryption btrfs subvolumes

Installation

❗ Please keep your hardware-configuration.nix and move it under your new host folder. ❗

git clone https://github.com/Arcreuss/Nix-PromethOS-Rice.git
cd Nix-PromethOS-Rice
sudo nixos-rebuild switch --flake .#YourHost

Don't forget to add your user in nixos/modules/users.nix, you can use my configuration as reference.
Then execute the command line below to set your password.

passwd YourUser

Create a new user file under the path nixos/home/users/ to use the HomeManager.

{ pkgs, ... }:

{
  home.username = "YourUserName";
  home.homeDirectory = "/home/YourUserDirectory";
  home.stateVersion = "YourVersion";

  home.sessionVariables = {
    # Declare here all environment variables for your user.

    # Examples
    EDITOR = "nvim";
    VISUAL = "nvim";
    TERMINAL = "kitty";
    BROWSER = "firefox";
  }; 
}

For your new personal host, you have to link it with your user thought the Home Manager.
Create a new home.nix inside nixos/hosts/YourHostFolder and add this configuration.

{ ... }:

{
  imports = [
    ../../home/users/YourUser.nix
    ../../home/profiles/YourProfile.nix
  ];
}

If you want to create a new profile, please always use this configuration as a minimal requirement.

{ ... }:

{
  imports = [
    ../modules/core.nix  # Add others modules after the core.nix
  ];
}

Theme & Visuals

The final result should be something visually refined and classic.
My inspiration is coming from this video.

Documentation & Chat GPT

In order to complete my challenge, I read the NixOS documentation and used Chat GPT as a mentor to break down the main goal into smaller goals with consistent learning and progression.

Resources and Inspiration

Other dotfiles, repository, youtubers that inspired me:

If this repository helps you build your own NixOS setup, feel free to use it as inspiration.

About

A modular NixOS configuration using flakes, Hyprland and Home Manager, designed to support multiple hosts and profiles.

Topics

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors