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:
52
src/install/modules/locale.sh
Executable file
52
src/install/modules/locale.sh
Executable 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}"
|
||||
}
|
||||
Reference in New Issue
Block a user