Skip to content

m3hransh/nixos-conf

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

83 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

My NixOS Configuration

License: MIT GitHub issues GitHub pull-requests

preview This repository hosts my personal NixOS configuration managed using flakes to ensure a reproducible system setup.

Table of Contents

Directory Structure

These are main files of configuration. flake.nix is the entry point where you specify the inputs and load two main modules namely configuration.nix and home.nix. home folder contains packages that aren't related to the system. home/programs modularizes some main packages that contain extra configs (e.g. nvim) beside their config files.

├── apply.sh
├── flake.lock
├── flake.nix
├── README.md
├── system
│   ├── configuration.nix # main system modules that import others and set up general conf
│   ├── hardware-configuration.nix # this might change depending on your machine spec
│   └── modules
│       ├── fonts # specify the font packages
│       ├── locale # time and locale settings
│       ├── networking # all network related services
│       ├── programs # system level packages and programs 
│       ├── services # general system level services
│       └── wm
│           └── hyprland # services and packages related to hyprland
└─ home
    ├── home.nix # home manager module where imports other programs
    ├── programs
    │   ├── default.nix
    │   ├── dunst
    │   ├── hypr
    │   ├── imageview
    │   ├── kooha
    │   ├── mpv
    │   ├── music
    │   ├── nvim
    │   ├── obs-studio
    │   ├── ranger
    │   ├── resource_monitor
    │   ├── search
    │   ├── vscode
    │   ├── waybar
    │   ├── wofi
    │   ├── youtube-tui
    │   ├── yt-dlp
    │   └── zathura
    └── scripts

Prerequisites

  • NixOS
  • Flakes feature enabled
nix.settings.experimental-features = ["nix-command" "flakes"];

Usage

  1. Ensure your machine specifications are correctly reflected in hardware-configuration.nix.
  2. Open flake.nix and update the user and hostName variables to match your preferences.
  3. To apply the configuration to your system, run the following command:
sudo nixos-rebuild switch --flake '.#yourhostname'

Inspirations

Contributing

Feel free to open issues or PRs if you have suggestions or improvements!

License

This project is licensed under the MIT License - see the LICENSE.md file for details