Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/rshohruh/nix-config
https://github.com/rshohruh/nix-config
dotfles linux nixos nixos-configuration nixos-flake
Last synced: 30 days ago
JSON representation
- Host: GitHub
- URL: https://github.com/rshohruh/nix-config
- Owner: rshohruh
- License: mit
- Created: 2024-10-15T02:30:22.000Z (3 months ago)
- Default Branch: main
- Last Pushed: 2024-10-15T15:59:50.000Z (3 months ago)
- Last Synced: 2024-10-19T13:21:51.936Z (3 months ago)
- Topics: dotfles, linux, nixos, nixos-configuration, nixos-flake
- Language: Nix
- Homepage:
- Size: 31.3 KB
- Stars: 1
- Watchers: 1
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# 💻 My NixOS Configuration Setup
Welcome to my NixOS configuration repository! This setup is based on the fantastic Misterio77/nix-starter-configs template, designed to help users get started with NixOS configuration in a simple and structured way.
## 📚 OverviewThis repository contains my personal configurations for NixOS, organized and managed using the Nix package manager. It's structured in a modular way, making it easy to customize, manage, and extend my system.
## 🌟 Features- **Declarative System Configuration**: Manage every aspect of the system, from packages to services, all from a single configuration file.
- **Modular Setup**: Organized and split into multiple modules for better maintainability.
- **Multi-User Support**: Configurations for both system-wide settings and individual user profiles.
- **Flakes**: Powered by Nix Flakes for reproducible builds and easier management of dependencies.## 📁 Repository Structure
The following structure represents my NixOS configuration files, organized into relevant directories for modularity and maintainability:
```
├── home-manager # Home-manager configurations for user environments
├── modules # Custom NixOS modules
├── nixos # System-wide NixOS configurations
├── overlays # Overlays for customizing package sets
├── pkgs # Custom packages and Nix expressions
├── flake.lock # Lock file for Nix Flakes (ensures reproducibility)
├── flake.nix # Nix Flakes configuration
└── shell.nix # Development shell setup
```### Key Files and Directories
- **`home-manager/`**: Configures home environments and packages for each user.
- **`modules/`**: Custom NixOS modules for specific configurations or services.
- **`nixos/`**: Main NixOS configuration directory (e.g., system-wide settings, hardware configurations).
- **`overlays/`**: Nix overlays for extending and customizing package sets.
- **`pkgs/`**: Custom Nix packages and expressions tailored for specific needs.
- **`flake.lock`**: Lock file generated by Nix Flakes to ensure reproducible builds.
- **`flake.nix`**: Defines the inputs, outputs, and system configurations using Nix Flakes.
- **`shell.nix`**: Configuration for setting up the development environment shell.## 🚀 Getting Started
To use this setup, follow these steps:
1. **Clone the Repository**:
```bash
git clone https://github.com/rshohruh/nixos-config.git
cd nixos-config
```2. **Install NixOS: Follow the official NixOS installation guide**.
3. **Set Up the System:**
Link or copy the configuration files to your NixOS installation.
Run the following to apply the configuration:```bash
sudo nixos-rebuild switch --flake .
```
4. Manage Home Configurations:Ensure you have home-manager installed.
Apply home-manager configurations:```bash
home-manager switch --flake .
```## ⚙️ Customization
This setup is designed to be modular and easy to extend. Here are a few customization options:
- **System Packages**: Add or remove system-wide packages by editing the `nixos/configuration.nix` file or creating additional modules in `nixos/modules`.
- **User Packages**: Customize user environments by editing the `home/` directory with user-specific packages and configurations.
- **Services**: Enable or disable system services (e.g., SSH, Docker, etc.) in the `nixos/modules` directory.## 🛠️ Dependencies
- **NixOS**: The Linux distribution with a declarative configuration.
- **Nix**: The package manager used by NixOS.
- **Nix Flakes**: Optional but highly recommended for better dependency management.
- **Home-Manager**: For managing user profiles, including packages, dotfiles, and configurations.## 📝 Acknowledgements
This configuration is based on the [nix-starter-configs](https://github.com/Misterio77/nix-starter-configs) template by [Misterio77](https://github.com/Misterio77). Special thanks for creating such an easy-to-use and modular starter configuration!
## 🖥️ Screenshots
Feel free to add screenshots of your desktop environment, terminal setup, or any other customizations here.
## 📜 License
This repository is licensed under the MIT License. See the [LICENSE](./LICENSE) file for more information.
---
Feel free to fork or use this setup as a starting point for your own NixOS configurations. Contributions and suggestions are always welcome!