Initial commit: DarkForge Linux — Phases 0-12

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>
This commit is contained in:
2026-03-19 11:30:40 +01:00
commit 029642ae5b
206 changed files with 14696 additions and 0 deletions

52
src/install/modules/locale.sh Executable file
View File

@@ -0,0 +1,52 @@
#!/bin/bash
# ============================================================================
# DarkForge Linux Installer — Locale Module
# ============================================================================
# Configures locale, timezone, and keyboard layout.
# ============================================================================
configure_locale() {
# --- Timezone ---
info "Available timezones: /usr/share/zoneinfo/"
echo " Common: America/New_York, America/Chicago, America/Denver,"
echo " America/Los_Angeles, Europe/London, Europe/Berlin"
echo ""
ask "Timezone [America/New_York]: "
read -r tz
tz="${tz:-America/New_York}"
if [ -f "${MOUNT_POINT}/usr/share/zoneinfo/${tz}" ]; then
ln -sf "/usr/share/zoneinfo/${tz}" "${MOUNT_POINT}/etc/localtime"
ok "Timezone set to ${tz}"
else
warn "Timezone '${tz}' not found — using UTC"
ln -sf /usr/share/zoneinfo/UTC "${MOUNT_POINT}/etc/localtime"
tz="UTC"
fi
# --- Locale ---
echo ""
ask "Locale [en_US.UTF-8]: "
read -r locale
locale="${locale:-en_US.UTF-8}"
# Generate locale
echo "${locale} UTF-8" > "${MOUNT_POINT}/etc/locale.gen"
chroot "${MOUNT_POINT}" locale-gen 2>/dev/null || true
echo "LANG=${locale}" > "${MOUNT_POINT}/etc/locale.conf"
ok "Locale set to ${locale}"
# --- Keyboard ---
echo ""
ask "Keyboard layout [us]: "
read -r keymap
keymap="${keymap:-us}"
echo "KEYMAP=${keymap}" > "${MOUNT_POINT}/etc/vconsole.conf"
ok "Keyboard layout set to ${keymap}"
# Store for rc.conf generation
export INSTALL_TIMEZONE="${tz}"
export INSTALL_LOCALE="${locale}"
export INSTALL_KEYMAP="${keymap}"
}