This repository contains my personal NixOS configuration for various systems, including a Framework laptop, desktop, and Raspberry Pi. It includes a wide range of customizations and configurations for various programs and services.
- Uses Hyprland as the window manager, configured with custom keybindings and animations
- Implements secure boot using Lanzaboote
- Utilizes Disko for declarative disk partitioning
- Manages secrets using sops-nix for encrypted configuration
- Configures Pipewire for audio handling
- Sets up a custom Neovim configuration using nixvim
- Implements a custom Firefox configuration with specific add-ons and themes
- Configures Steam with a scaling fix
- Uses home-manager for user-specific configurations
- Implements a custom GTK theme using a NixOS module
- Sets up OCI containers for services like WordPress
- Configures Nginx as a reverse proxy with automatic HTTPS using ACME
- Implements a custom resume builder using Yew and Rust
- Uses nix-minecraft for Minecraft server setup
- Configures multiple systems including a desktop, laptop, and Raspberry Pi
- Implements fingerprint authentication
- Sets up Yubikey support
- Uses podman for container management
- Configures Traefik as a reverse proxy with automatic HTTPS
- Implements a custom volume interpolation script for smooth volume changes
- Sets up Octoprint for 3D printer management with custom plugins
- Uses compose2nix to convert Docker Compose files to Nix configurations
- Implements a custom portfolio website using Yew and Rust
- Configures multiple programming languages and development environments
- Sops for secrets management
- Remote-Deploy/Install script for system deployment
- NuShell scripting integration
- Commit messages in boot menu (Work in Progress)
- Git hooks for automatic OS message updates
The configuration is organized into a series of Nix files, each responsible for a specific aspect of the system. The main configuration files are located in the systems
directory.
-
Clone this repository:
git clone https://github.com/knoc-off/nixos.git
-
Navigate to the repository directory:
cd nixos
-
Set up the git hooks:
git config core.hooksPath .githooks
-
Customize the configuration files as needed.
-
Build and switch to the new configuration:
sudo nixos-rebuild switch --flake .#<hostname>
Replace
<hostname>
with the appropriate hostname for your system.
This repository includes a git hook that automatically updates the OS message in the boot menu when you make a commit. The hook is located in the .githooks
directory and can be enabled by setting the git hooks path as shown in the usage instructions above.
Contributions are welcome! Feel free to open an issue or submit a pull request.
This configuration is licensed under the MIT License. See the LICENSE file for details.