add readme
This commit is contained in:
parent
121fd6ae76
commit
c474e3b04d
1 changed files with 134 additions and 0 deletions
134
README.md
Normal file
134
README.md
Normal file
|
|
@ -0,0 +1,134 @@
|
||||||
|
# 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** with Fish shell integration, scrollback buffering, and Catppuccin theming.
|
||||||
|
* **Shell**: **Fish** with custom prompts, and modern alternatives to ls `eza`, cat `bat`, and gzip `pigz`.
|
||||||
|
* **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.
|
||||||
|
* **Monitor**: **Btop** with custom Catppuccin theme.
|
||||||
|
|
||||||
|
### 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.
|
||||||
|
|
||||||
|
* **Media**:
|
||||||
|
* **MPV** with `uosc` UI and `mpris` support.
|
||||||
|
* **Spotify**: Custom `riff` package (Rust-based client) and `spotify-webapp`.
|
||||||
|
* **Spicetify**: CLI Spotify client theming.
|
||||||
|
|
||||||
|
### 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