This repository contains my personal NixOS system and user (Home Manager) configuration files, designed for multiple ThinkPad models (including X1 Carbon and X230). It leverages Nix Flakes and Home Manager for reproducible, declarative system setup.
-
System Configuration:
- Full system settings in
configuration.nix(and device-specific variants) - GNOME desktop with custom keybindings
- Networking via NetworkManager
- Pipewire audio, CUPS printing, and locale for Europe/Warsaw
- Common packages:
vim,kitty,git,gnome-boxes,tmux,wget,fastfetch,discord - Automatic garbage collection and unfree package support
- Full system settings in
-
Hardware Configuration:
- Managed by
hardware-configuration.nix(and device-specific variants) - LUKS disk encryption and hardware-specific settings
- Managed by
-
Home Manager:
- User environment in
home.nix - Custom GNOME wallpaper and keybindings
- Vim, Kitty, Tmux, Git, and Bash configuration
- Session variables, dotfiles, and Home Manager self-management
- User environment in
-
Nix Flakes Support:
flake.nixandflake.lockfor reproducibility- Defines both system and user environments
.
├── configuration.nix # Main NixOS system configuration (X1 Carbon)
├── configuration-x230.nix # X230-specific configuration (if present)
├── hardware-configuration.nix # Auto-generated hardware config (X1 Carbon)
├── hardware-x230.nix # X230-specific hardware config (if present)
├── home.nix # Home Manager user config
├── flake.nix # Nix Flake definition
├── flake.lock # Flake lock file (pin versions)
├── README.md # This file
├── 80s.jpg, Cyfraka.jpg # Wallpaper and images
Note: File names above may vary. Update as needed to reflect actual repo structure.
- NixOS installed (preferably latest stable)
- Nix with experimental features: flakes
-
Clone the repository:
git clone https://github.com/Cyfraka/NixOS.git cd NixOS -
Switch to your configuration (with flakes):
- For X1 Carbon:
sudo nixos-rebuild switch --flake .#ThinkPad-X1-Carbon - For X230 (if applicable):
sudo nixos-rebuild switch --flake .#ThinkPad-X230
- For X1 Carbon:
-
For Home Manager:
nix run home-manager/master -- switch --flake .#cyfraka
- Edit
configuration.nixor device-specific config for system-wide changes. - Edit
home.nixfor user-specific (Home Manager) configuration. - Update images, dotfiles, or add packages as needed (e.g.,
tailscale).
This repo is licensed under the MIT License.