Complete from-scratch Linux distribution targeting AMD Ryzen 9 9950X3D + NVIDIA RTX 5090 on ASUS ROG CROSSHAIR X870E HERO. Deliverables: - dpack: custom package manager in Rust (3,800 lines) - TOML package parser, dependency resolver, build sandbox - CRUX Pkgfile and Gentoo ebuild converters - Shared library conflict detection - 124 package definitions across 4 repos (core/extra/desktop/gaming) - 34 toolchain bootstrap scripts (LFS 13.0 adapted for Zen 5) - Linux 6.19.8 kernel config (hardware-specific, fully commented) - SysVinit init system with rc.d service scripts - Live ISO builder (UEFI-only, squashfs+xorriso) - Interactive installer (GPT partitioning, EFISTUB boot) - Integration test checklist (docs/TESTING.md) No systemd. No bootloader. No display manager. Kernel boots via EFISTUB → auto-login → dwl Wayland compositor. Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
49 lines
1.8 KiB
Bash
49 lines
1.8 KiB
Bash
# ============================================================================
|
|
# DarkForge Linux — User Shell Profile (~/.zprofile)
|
|
# ============================================================================
|
|
# Sourced on login to zsh. Auto-starts PipeWire and dwl on tty1.
|
|
# This file is installed to /home/danny/.zprofile during system installation.
|
|
# ============================================================================
|
|
|
|
# --- Environment variables for Wayland + NVIDIA ----------------------------
|
|
export XDG_SESSION_TYPE=wayland
|
|
export XDG_RUNTIME_DIR="/run/user/$(id -u)"
|
|
export XDG_CONFIG_HOME="${HOME}/.config"
|
|
export XDG_CACHE_HOME="${HOME}/.cache"
|
|
export XDG_DATA_HOME="${HOME}/.local/share"
|
|
export XDG_STATE_HOME="${HOME}/.local/state"
|
|
|
|
# NVIDIA Wayland-specific environment
|
|
export GBM_BACKEND=nvidia-drm
|
|
export __GLX_VENDOR_LIBRARY_NAME=nvidia
|
|
export WLR_NO_HARDWARE_CURSORS=1
|
|
# WLR_NO_HARDWARE_CURSORS may be needed for wlroots + nvidia
|
|
# Remove if hardware cursors work correctly
|
|
|
|
export MOZ_ENABLE_WAYLAND=1
|
|
# Firefox: use Wayland backend
|
|
|
|
export QT_QPA_PLATFORM=wayland
|
|
# Qt applications: use Wayland backend
|
|
|
|
export SDL_VIDEODRIVER=wayland
|
|
# SDL2 games: prefer Wayland (falls back to X11 via XWayland)
|
|
|
|
# --- Ensure XDG runtime directory exists ------------------------------------
|
|
if [ ! -d "${XDG_RUNTIME_DIR}" ]; then
|
|
mkdir -p "${XDG_RUNTIME_DIR}"
|
|
chmod 700 "${XDG_RUNTIME_DIR}"
|
|
fi
|
|
|
|
# --- Auto-start Wayland compositor on tty1 ----------------------------------
|
|
if [ -z "${WAYLAND_DISPLAY}" ] && [ "$(tty)" = "/dev/tty1" ]; then
|
|
# Start PipeWire audio stack (runs as user, not system service)
|
|
pipewire &
|
|
pipewire-pulse &
|
|
wireplumber &
|
|
|
|
# Start the dwl Wayland compositor
|
|
# dwl will set WAYLAND_DISPLAY and become the session leader
|
|
exec dwl -s "foot" 2>/dev/null
|
|
fi
|