add readme
This commit is contained in:
parent
121fd6ae76
commit
e86e943ae3
1 changed files with 143 additions and 0 deletions
143
README.md
Normal file
143
README.md
Normal file
|
|
@ -0,0 +1,143 @@
|
|||
# NixOS Configuration
|
||||
|
||||
This repository contains the personal **NixOS** and **Home Manager** configuration for **Sean Kovacs** (`sckova`). It utilizes **Nix Flakes** to manage reproducible system states across disparate hardware architectures, specifically targeting high-performance x86_64 gaming desktops and Apple Silicon laptops.
|
||||
|
||||
## 🖥️ Hosts
|
||||
|
||||
The configuration defines three distinct system profiles via `flake.nix`:
|
||||
|
||||
### 👽 `alien` (x86_64-linux)
|
||||
|
||||
The primary high-performance desktop and gaming workstation.
|
||||
|
||||
* **Kernel:** Uses the **CachyOS** kernel (`linux-cachyos-lts`) via `nix-cachyos-kernel` overlay for scheduler and performance optimizations.
|
||||
* **Graphics:** Nvidia proprietary drivers (Stable) with Open kernel modules disabled.
|
||||
* **Gaming Stack:**
|
||||
* **Steam**: Enabled with Gamescope session and Proton-GE.
|
||||
* **Optimization**: `ananicy-cpp` enabled with specific rules for Gamescope (nice -20).
|
||||
* **Streaming**: Sunshine game streaming service enabled and auto-started.
|
||||
* **RGB**: OpenRGB and `ddcutil` for hardware lighting and display control.
|
||||
|
||||
* **Virtualization:** Podman (Docker compatible) and Hyper-V guest support enabled.
|
||||
* **Hardware:** Specific monitor configuration defined in Niri settings (Dual 4K @ 144Hz + Portrait 1440p).
|
||||
|
||||
### 🍑 `peach` (aarch64-linux)
|
||||
|
||||
A configuration tailored for Apple Silicon hardware using **Asahi Linux**.
|
||||
|
||||
* **Hardware**:
|
||||
* GPU-accelerated desktop via Apple Silicon drivers.
|
||||
* Touchpad configuration with natural scrolling.
|
||||
* Specific notch handling and boot logo customization with plymouth & m1n1.
|
||||
* Configures docker in a rootless setup.
|
||||
|
||||
* **Kernel**: Patched `linuxPackages_asahi` with Apple Mailbox and RTKit support.
|
||||
|
||||
### 💻 `vm-generic`
|
||||
|
||||
A generic template for virtual machines, supported on both `x86_64-linux` and `aarch64-linux`.
|
||||
|
||||
## 🎨 Desktop Environment
|
||||
|
||||
The system uses a highly customized Wayland environment centered around **Niri**.
|
||||
|
||||
### Window Manager: **Niri**
|
||||
|
||||
* **Type**: Scrollable-tiling Wayland compositor.
|
||||
* **Style**:
|
||||
* Tightly separated windows with 2px borders and 4px gaps.
|
||||
* Animations and window rounding (8px radius).
|
||||
|
||||
* **Input**: Focus follows mouse, adaptive acceleration, and natural scrolling enabled.
|
||||
* **Keybinds**: Super+Shift+? preserved for showing the custom keybinds.
|
||||
|
||||
### Shell & Widgets: **Noctalia**
|
||||
|
||||
* **Bar**: Custom top bar with workspaces, system monitor, media controls, and tray.
|
||||
* **Notifications**: Integrated notification daemon with "Do Not Disturb" capabilities.
|
||||
* **Control Center**: Quick access to network, bluetooth, and power profiles.
|
||||
* **Launcher**: Fuzzel app launcher with clipboard history support.
|
||||
|
||||
### Theming: **Base16/24**
|
||||
|
||||
A centralized theme configuration module propagates and builds colors across the system's applications and toolkits.
|
||||
|
||||
* **Scheme**: Can use any scheme declared in the [tinted-gallery](https://tinted-theming.github.io/tinted-gallery/).
|
||||
* **Accent**: Orange for peach, blue for alien, green for the VM.
|
||||
* **Cursor**: Catppuccin Mocha Peach (Size 24).
|
||||
* **Fonts**:
|
||||
* *Sans*: Noto Sans.
|
||||
* *Serif*: Noto Serif.
|
||||
* *Mono*: FiraMono Nerd Font.
|
||||
|
||||
## 📦 Software Stack
|
||||
|
||||
### Terminal & Editors
|
||||
|
||||
#### **Terminal**: **Kitty**
|
||||
* Fish shell integration
|
||||
* Scrollback buffering
|
||||
* Custom theme
|
||||
* Wayland-specific integrations
|
||||
#### **Shell**: **Fish**
|
||||
* Customized prompt
|
||||
* Modern alternatives to ls `eza`, cat `bat`, and gzip `pigz`.
|
||||
* `btop` is used as a system monitor.
|
||||
#### **Editor**: **Neovim** (via `nixvim`) configured with:
|
||||
* LSP support (`nixd`, `qmlls`).
|
||||
* `conform-nvim` for formatting (Prettier, Stylua, Black).
|
||||
* `cmp` for autocompletion.
|
||||
* `fzf-lua` for fuzzy finding.
|
||||
|
||||
### Applications
|
||||
|
||||
#### Browser: **Firefox** with extensive hardening
|
||||
* Telemetry, Pocket, and AI features disabled.
|
||||
* Custom userChrome theme.
|
||||
* Vertical tabs enabled.
|
||||
* Extensions managed via Nix (uBlock Origin, SponsorBlock, Bitwarden, etc.).
|
||||
* PWA support via `firefoxpwa`.
|
||||
* SearXNG metasearch engine set up and enabled as the default search engine and homepage.
|
||||
|
||||
#### Social
|
||||
* **Vesktop**: Discord client.
|
||||
* Dynamically generated base16 theme.
|
||||
* Numerous plugins (MessageLogger, FakeNitro, etc.) enabled.
|
||||
* **Fractal**: Matrix client.
|
||||
* **Tuba**: Mastodon client.
|
||||
|
||||
#### Media
|
||||
* **MPV** with `uosc` UI and `mpris` support.
|
||||
* **Spotify**: Custom `riff` package (Rust-based client) and `spotify-webapp`.
|
||||
* **Spicetify**: CLI Spotify client theming.
|
||||
* **Strawberry**: Music client.
|
||||
* **Audacity**, **Musescore**: Musical workstations.
|
||||
|
||||
### Services
|
||||
|
||||
* **Wallpaper**: Automated daily **Bing Wallpaper** downloader service.
|
||||
* **Storage**: **Synology NAS** mounting via Rclone systemd service.
|
||||
* **Network**: **Tailscale** mesh networking.
|
||||
|
||||
## 🛠️ Usage
|
||||
|
||||
### Rebuilding the System
|
||||
|
||||
To apply the configuration for a specific host:
|
||||
|
||||
```bash
|
||||
# Rebuild NixOS configuration and switch
|
||||
sudo nixos-rebuild switch --flake .#systemName
|
||||
|
||||
# Rebuild NixOS configuration for next boot
|
||||
sudo nixos-rebuild boot --flake .#systemName --install-bootloader
|
||||
```
|
||||
|
||||
### VM Testing
|
||||
|
||||
To build and run the generic VM:
|
||||
|
||||
```bash
|
||||
nixos-rebuild build-vm --flake .#vm-generic
|
||||
./result/bin/run-vm-generic-vm
|
||||
```
|
||||
Loading…
Add table
Add a link
Reference in a new issue