{"id":22915137,"url":"https://github.com/gandromidas/archinstaller","last_synced_at":"2026-05-09T07:02:37.352Z","repository":{"id":331827332,"uuid":"1132038210","full_name":"GAndromidas/archinstaller","owner":"GAndromidas","description":"Arch Linux Post-Installation Automation","archived":false,"fork":false,"pushed_at":"2026-04-20T16:29:40.000Z","size":465,"stargazers_count":2,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2026-04-20T18:37:07.029Z","etag":null,"topics":["archlinux","bash","linux","shell-script","zsh"],"latest_commit_sha":null,"homepage":"https://ko-fi.com/gandromidas","language":"Shell","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/GAndromidas.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2026-01-11T07:31:24.000Z","updated_at":"2026-04-20T16:29:44.000Z","dependencies_parsed_at":null,"dependency_job_id":null,"html_url":"https://github.com/GAndromidas/archinstaller","commit_stats":null,"previous_names":["gandromidas/archinstaller"],"tags_count":9,"template":false,"template_full_name":null,"purl":"pkg:github/GAndromidas/archinstaller","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/GAndromidas%2Farchinstaller","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/GAndromidas%2Farchinstaller/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/GAndromidas%2Farchinstaller/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/GAndromidas%2Farchinstaller/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/GAndromidas","download_url":"https://codeload.github.com/GAndromidas/archinstaller/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/GAndromidas%2Farchinstaller/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":32810381,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-05-08T08:22:46.396Z","status":"online","status_checked_at":"2026-05-09T02:00:06.633Z","response_time":123,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["archlinux","bash","linux","shell-script","zsh"],"created_at":"2024-12-14T05:19:01.464Z","updated_at":"2026-05-09T07:02:37.346Z","avatar_url":"https://github.com/GAndromidas.png","language":"Shell","funding_links":[],"categories":[],"sub_categories":[],"readme":"\u003cdiv align=\"center\"\u003e\n\n# Archinstaller\n\n[![GitHub release](https://img.shields.io/github/release/GAndromidas/archinstaller.svg?style=for-the-badge\u0026logo=github)](https://github.com/GAndromidas/archinstaller/releases)\n[![Last Commit](https://img.shields.io/github/last-commit/GAndromidas/archinstaller.svg?style=for-the-badge\u0026logo=git)](https://github.com/GAndromidas/archinstaller/commits/main)\n[![License](https://img.shields.io/badge/License-MIT-blue.svg?style=for-the-badge\u0026logo=open-source-initiative)](LICENSE)\n[![Arch Linux](https://img.shields.io/badge/Platform-Arch%20Linux-1793E1?style=for-the-badge\u0026logo=arch-linux)](https://archlinux.org/)\n[![Stars](https://img.shields.io/github/stars/GAndromidas/archinstaller.svg?style=for-the-badge\u0026logo=star)](https://github.com/GAndromidas/archinstaller/stargazers)\n\n**Arch Linux Post-Installation Automation**\n\nTransform your minimal Arch Linux installation into a fully configured, optimized system with intelligent hardware detection and tailored optimizations.\n\n[Quick Start](#-quick-start) · [Features](#-key-features) · [Installation Modes](#-installation-modes) · [Configuration](#-customization)\n\n\u003c/div\u003e\n\n---\n\n## Overview\n\n**Archinstaller** is a sophisticated post-installation automation tool that intelligently configures Arch Linux based on your hardware. It applies targeted optimizations rather than one-size-fits-all settings, ensuring optimal performance for your specific configuration.\n\n### Core Philosophy\n\n| Philosophy | Description |\n|------------|-------------|\n| **Hardware-Aware** | Detects CPU, GPU, storage, and desktop environment for tailored optimizations |\n| **Security-First** | Comprehensive hardening enabled by default with firewall and fail2ban |\n| **Performance-Optimized** | Intelligent I/O scheduling and kernel tuning for optimal responsiveness |\n| **Reliable** | Resume functionality for interrupted installations with progress tracking |\n\n---\n\n## Key Features\n\n### System Intelligence \u0026 Automation\n\n#### Hardware Detection\n```yaml\nCPU Detection:\n  Intel: intel-ucode + microcode updates\n  AMD: amd-ucode + microcode updates\n  \nGPU Detection:\n  NVIDIA: Proprietary drivers + CUDA support\n  AMD: Open-source drivers + Vulkan\n  Intel: Integrated graphics + VA-API\n  \nStorage Optimization:\n  NVMe: BFQ scheduler + trim optimizations\n  SSD: Deadline scheduler + wear leveling\n  HDD: CFQ scheduler + readahead settings\n  \nLaptop Features:\n  Manufacturer-specific optimizations (15+ brands)\n  Gaming laptop detection + gaming features\n  Power management + thermal throttling\n  Battery optimization + suspend/resume\n  Function keys + hotkeys support\n```\n\n#### Bootloader Detection \u0026 Configuration\n| Bootloader | Features | Integration |\n|------------|----------|-------------|\n| **GRUB** | Timeout optimization, boot menu management | Automatic configuration |\n| **systemd-boot** | EFI support, kernel fallback | Automatic entry management |\n| **Limine** | Modern UEFI, fast boot support | Simple configuration |\n\n#### Advanced Performance Optimization (CachyOS-Inspired)\n\n- **Smart Memory Management**: Dynamic swappiness based on system RAM (1-3GB: 10, 4-7GB: 10, 8-15GB: 5, 16GB+: 1)\n- **Intelligent Storage Optimization**: Automatic I/O scheduler detection (NVMe: none, SSD: deadline, HDD: mq-deadline)\n- **Advanced Kernel Tuning**: Process scheduling, network stack optimization, filesystem-specific tuning\n- **Hardware-Aware Configuration**: NVMe detection, zRAM monitoring, virtualization awareness\n- **Transparent Hugepages**: Disabled for desktop systems to improve performance\n- **Persistent Settings**: All optimizations survive reboots via udev rules and systemd services\n\n#### Performance Optimization\n- **I/O Scheduling**: Automatic selection based on storage type\n- **Kernel Tuning**: `vm.swappiness=10`, `fs.inotify.max_user_watches=524288`\n- **Parallel Downloads**: Pacman parallel package fetching\n- **Memory Management**: ZRAM compression + swap optimization\n\n#### Desktop Environment Integration\n| Environment | Optimizations | Features |\n|-------------|---------------|----------|\n| **KDE Plasma 6+** | Qt6-based shortcuts, fullscreen automation | kglobalshortcutsrc + Konsole fullscreen |\n| **GNOME 46+** | Latest dark theme, modern tweaks | dconf settings + current extensions |\n| **Cosmic** | Latest alpha builds support | Experimental DE integration |\n\n### Security \u0026 Stability\n\n#### Security Hardening (Enabled by Default)\n```bash\n# Firewall Configuration\nUFW/Firewalld:\n  - Secure-by-default policies\n  - Deny incoming, allow outgoing\n  - SSH automatically allowed\n  - Service-aware port management\n\n# SSH Protection\nFail2ban:\n  - Strict SSH policies\n  - 15-minute ban on suspicious activity\n  - Automatic brute-force detection\n  - Customizable ban thresholds\n\n# User Security\nSudo:\n  - Password feedback enabled\n  - Proper user group membership\n  - Hardware access permissions\n```\n\n### Smart AMD P-State System (NEW)\n\nIntelligent CPU power management that automatically detects your system configuration:\n\n#### Detection Methods\n- **CPU Vendor Detection**: Intel vs AMD identification\n- **P-State Support Validation**: 3-method validation (sysfs, CPU capabilities, kernel version)\n- **Gaming Mode Detection**: 5-indicator system with 50% threshold\n- **Automatic Fallback**: Graceful degradation if configuration fails\n\n#### Configuration Logic\n| System Type | Detection | P-State Configuration | Performance Profile |\n|-------------|------------|---------------------|-------------------|\n| **Gaming Mode** | Zen kernel + gaming tools + services | Maximum performance (performance governor) |\n| **Standard System** | Regular desktop configuration | Balanced performance (power management) |\n| **Unsupported** | Zen 1 CPUs or older systems | ACPI CPUfreq fallback |\n\n### Gaming Mode (Optional)\n\nTransform your system into a gaming powerhouse with one click:\n\n| Component | Description |\n|-----------|-------------|\n| **Steam** | Native gaming platform with Proton |\n| **Heroic Games Launcher** | Epic Games + GOG support |\n| **Faugus Launcher** | Game management and launcher |\n| **MangoHud** | Performance overlay and monitoring |\n| **Goverlay** | MangoHud configuration GUI |\n| **GameMode** | Automatic performance tuning |\n| **Wine** | Windows compatibility layer |\n| **Zen Kernel** | Optimized for gaming performance |\n| **Note**: AMD P-State handled automatically by system_services.sh |\n\n### Smart Peripheral Detection\n\nAutomatically detects connected peripherals and installs appropriate management software:\n\n| Peripheral | Detection | Software |\n|------------|------------|----------|\n| **Logitech Devices** | USB vendor ID | Solaar (Unifying Receiver) |\n| **Keychron Keyboards** | Device name | VIA-bin (keyboard configuration) |\n| **Gaming Mice** | HID detection | libratbag + Piper |\n| **Razer Devices** | Vendor ID | OpenRazer + Polychromatic |\n| **Generic HID** | USB/HID tree | hidapi + udev rules |\n\n### Wake-on-LAN Configuration\n\nIntelligent Wake-on-LAN setup for desktop systems with multi-adapter support:\n\n| Feature | Detection | Configuration |\n|---------|------------|-------------|\n| **Laptop Detection** | Battery + DMI chassis | Auto-skip WoL on laptops |\n| **Multi-Adapter Support** | All ethernet interfaces | Smart selection menu |\n| **Internet Testing** | Ping + route checking | Prioritizes active connection |\n| **Persistent Services** | systemd integration | Survives reboots automatically |\n| **MAC Display** | Interface enumeration | Easy remote wake-up setup |\n\n---\n\n## Installation Modes\n\nChoose the perfect setup for your use case:\n\n| Mode | Use Case | Requirements |\n|------|-------------|-------------|\n| **Standard** | Full-featured desktop | General users, enthusiasts |\n| **Minimal** | Lightweight essentials | Low-spec hardware, minimal bloat |\n| **Server** | Headless configuration | Docker, SSH, server utilities |\n| **Custom** | Interactive selection | Power users, specific requirements |\n| **Gaming** | Gaming-optimized | Steam, Heroic Games Launcher, Faugus Launcher, performance tools |\n\n---\n\n## Quick Start\n\n### Prerequisites\n\n- Fresh Arch Linux installation (minimal base system)\n- Active internet connection\n- User account with sudo privileges\n- 2GB+ free disk space\n\n### Installation\n\n```bash\n# Clone and run\ngit clone https://github.com/GAndromidas/archinstaller.git\ncd archinstaller\n./install.sh\n```\n\n**One-Click Setup:** The installer handles everything automatically - just select your preferred mode and let it configure your system.\n\n### Command-Line Options\n\n```bash\n./install.sh [OPTIONS]\n\nOPTIONS:\n  -h, --help      Show help message\n  -v, --verbose   Enable detailed output\n  -q, --quiet     Minimal output mode\n  -d, --dry-run   Preview changes only\n```\n\n---\n\n## Customization\n\n### Package Management\n\nAll packages are organized in `configs/programs.yaml` with logical groupings:\n\n```yaml\n# Package Structure\npacman:          # Core packages (all modes)\nessential:       # Mode-specific packages\ndesktop_environments:  # DE-specific packages\naur:             # AUR packages\nflatpak:         # Flatpak applications\ncustom:          # Optional additions\n```\n\n**Easy Customization:**\n\n1. Open `configs/programs.yaml`\n2. Add/remove packages from relevant sections\n3. No script modification needed\n4. Run installer - custom packages installed automatically\n\n### Configuration Files\n\n| File | Purpose |\n|------|---------|\n| `.zshrc` | Zsh shell configuration |\n| `starship.toml` | Starship prompt theme |\n| `kglobalshortcutsrc` | KDE keyboard shortcuts |\n| `config.jsonc` | Fastfetch system info |\n| `gaming_mode.yaml` | Gaming package definitions |\n\n---\n\n## What Gets Installed\n\n### Common Across All Modes\n\n- System utilities and tools\n- Development essentials\n- Zsh shell with Oh-My-Zsh\n- Starship terminal prompt\n- System monitoring tools\n\n### Mode-Specific Packages\n| Mode | Desktop | Applications | Tools |\n|------|-------------|-------------|------|\n| **Standard** | Full DE (KDE/GNOME/Cosmic) | Multimedia, Office, IDEs | Performance monitoring |\n| **Minimal** | Lightweight DE | Essential apps only | Basic utilities |\n| **Server** | No DE | Docker, Portainer | Server utilities |\n| **Gaming** | Gaming-optimized DE | Steam, Heroic Games Launcher, Faugus Launcher, Wine | Performance tools |\n\n### Installation Steps (Updated)\n\nThe installer now includes 12 comprehensive steps for complete system setup:\n\n| Step | Description | Mode Coverage |\n|------|-------------|---------------|\n| **1. System Preparation** | Hardware detection, system validation | All modes |\n| **2. Shell Setup** | Zsh + Oh-My-Zsh + Starship | All modes |\n| **3. Plymouth Setup** | Boot screen configuration | Standard/Minimal/Gaming |\n| **4. Yay Installation** | AUR helper setup | All modes |\n| **5. Programs Installation** | Mode-specific applications | All modes |\n| **6. Smart Peripheral Detection** | Auto-configure peripherals | All modes |\n| **7. Gaming Mode** | Gaming optimizations | Gaming mode only |\n| **8. Bootloader Configuration** | GRUB/systemd-boot/Limine setup | All modes |\n| **9. Fail2ban Setup** | SSH security hardening | All modes |\n| **10. System Services** | Service optimization | All modes |\n| **11. Wake-on-LAN Configuration** | Multi-adapter WoL setup | Desktop systems |\n| **12. Maintenance** | Final cleanup and optimization | All modes |\n\n---\n\n## Security Features\n\n### Enabled by Default\n```bash\n\n| Feature | Status | Configuration |\n|---------|--------|---------------|\n| **Firewall** | Active | UFW/Firewalld with secure policies |\n| **SSH Protection** | Active | Fail2ban with strict policies |\n| **Wake-on-LAN** | Desktop Only | Multi-adapter with smart selection |\n| **User Groups** | Active | Proper permissions configured |\n| **Bootloader** | Active | Security-hardened configuration |\n\n---\n\n## Supported Platforms\n\n### Hardware Support\n\n| Component | Support | Notes |\n|-----------|---------|-------|\n| **CPU** | Intel, AMD | Microcode + optimizations |\n| **GPU** | NVIDIA, AMD, Intel | Driver auto-detection |\n| **Storage** | NVMe, SSD, HDD | I/O scheduler optimization |\n| **Form Factor** | Desktop, Laptop, VM | Power management + thermal |\n| **Laptop Brands** | 15+ Manufacturers | Brand-specific optimizations |\n\n### Bootloader Support\n\n- **GRUB** 2.x with timeout optimization\n- **systemd-boot** with LTS kernel fallback\n- **Limine** (modern UEFI bootloader)\n\n### Desktop Environments\n\n- **KDE Plasma** 6.x (Qt6-based) - bleeding edge only\n- **GNOME** 46+ (latest stable)\n- **Cosmic** (experimental, latest builds)\n\n---\n\n## Laptop Optimizations\n\n### Intelligent Laptop Detection \u0026 Optimization\n\nArchinstaller provides **manufacturer-specific optimizations** for 15+ laptop brands with automatic detection and tailored configuration.\n\n#### Supported Manufacturers\n\n| Brand | Gaming Detection | Special Features |\n|-------|------------------|-----------------|\n| **Lenovo** | Legion, ThinkPad Gaming | thinkpad_acpi, lenovo-legion-tool, thinkfan |\n| **HP** | Omen, Pavilion Gaming | hp-wmi, omen-monitors, elitebook support |\n| **Dell** | Alienware, XPS Gaming | dell-wmi, dell-xps-firmware, alienware tools |\n| **Acer** | Predator, Nitro Gaming | acer-wmi, acer-nitro-optimizer, swift support |\n| **ASUS** | ROG, TUF Gaming | asus-wmi, asusctl, supergfxctl, zenbook support |\n| **MSI** | GE, GT, GL Gaming | msi-wmi, msi-ec, msi-per-keyboard, creator support |\n| **Razer** | Blade Gaming | razer-specific optimizations |\n| **LG** | Gram Ultra-light | lg-specific power management |\n| **Samsung** | Galaxy Book | samsung-specific optimizations |\n| **Huawei** | MateBook | huawei-specific features |\n| **Xiaomi** | Mi/RedmiBook | xiaomi-specific optimizations |\n| **Framework** | Modular Laptops | framework-specific features |\n| **System76** | Linux-native | system76 firmware support |\n| **Microsoft** | Surface | surface pen/touch support |\n\n#### Automatic Features\n\n**Gaming Laptop Detection:**\n- Automatic identification of gaming variants\n- Gaming-specific thermal management\n- Performance profile optimization\n- RGB lighting support (where applicable)\n\n**Power Management:**\n- Intel: thermald + Intel P-State driver\n- AMD: AMD P-State configuration\n- Universal: power-profiles-daemon or tuned-ppd\n\n**Function Keys \u0026 Hotkeys:**\n- Manufacturer-specific WMI module loading\n- Brightness, volume, WiFi toggle support\n- Special function key mapping\n\n#### Usage\n\n**Interactive Mode:**\n```bash\n./install.sh\n# Script will detect your laptop and show available optimizations\n```\n\n**Automatic Mode:**\n```bash\nexport AUTO_LAPTOP_OPTS=true\n./install.sh\n# Automatically applies all detected optimizations\n```\n\n**Check Detection:**\n```bash\n# Test laptop detection before running\nbash -c 'source scripts/system_services.sh \u0026\u0026 detect_laptop_manufacturer \u0026\u0026 get_laptop_model'\n```\n\n#### What Gets Optimized\n\n1. **Power Profile Management**\n   - power-profiles-daemon (preferred) or tuned-ppd\n   - Automatic power mode switching\n   - Battery vs AC power optimization\n\n2. **CPU-Specific Optimizations**\n   - Intel: thermald for thermal management\n   - AMD: P-State driver configuration\n   - CPU frequency scaling\n\n3. **Manufacturer-Specific Tools**\n   - Brand-specific function key support\n   - Gaming laptop optimizations (when detected)\n   - ACPI event handling\n\n4. **System Integration**\n   - ACPI daemon for hardware events\n   - Battery monitoring and management\n   - Suspend/resume functionality\n\n---\n\n## Troubleshooting\n\n### Common Issues\n\n| Issue | Solution |\n|-------|----------|\n| **Installation Interrupted** | Resume from `~/.archinstaller.state` |\n| **No Internet Connection** | Check `ping archlinux.org` |\n| **Insufficient Disk Space** | Minimum 2GB free required |\n| **Package Installation Failures** | Check `~/.archinstaller.log` |\n\n### Log Files\n\n```bash\n~/.archinstaller.log     # Complete installation log\n~/.archinstaller.state   # Progress tracking\n```\n\n---\n\n## Contributing\n\n### How to Contribute\n\n1. Fork the repository\n2. Create a feature branch (`git checkout -b feature/AmazingFeature`)\n3. Commit your changes (`git commit -m 'Add AmazingFeature'`)\n4. Push to the branch (`git push origin feature/AmazingFeature`)\n5. Open a Pull Request\n\n### Contribution Types\n\n- **Report bugs**: Open an issue with details\n- **Suggest features**: Describe your use case\n- **Improve code**: Submit a pull request\n- **Update documentation**: Help others understand the project\n\n---\n\n## Project Status\n\n| Component | Status |\n|-----------|--------|\n| **Core Functionality** | Production Ready |\n| **Hardware Detection** | Stable |\n| **Smart AMD P-State** | ✅ Implemented |\n| **Advanced Optimizations** | ✅ CachyOS-Inspired |\n| **Gaming Mode** | Tested |\n| **Security Hardening** | Active |\n| **Documentation** | Complete |\n\n### Recent Major Improvements\n\n#### Advanced Performance \u0026 Smart CPU Management\n- **🚀 CachyOS-Inspired Optimizations**: Advanced memory management, intelligent storage optimization, hardware-aware configuration\n- **🧠 Smart AMD P-State System**: Automatic gaming vs system detection with 3-method validation and fallback mechanisms\n- **📊 Dynamic Resource Management**: RAM-based swappiness, storage-type I/O scheduling, filesystem-specific tuning\n- **🛡️ Robust Error Handling**: Automatic fallbacks and graceful degradation for unsupported systems\n- **⚡ Persistent Configuration**: All optimizations survive reboots via udev rules and systemd services\n\n---\n\n## License\n\nThis project is licensed under the **MIT License** - see the [LICENSE](LICENSE) file for details.\n\nYou are free to use, modify, and distribute this software for personal or commercial purposes.\n\n---\n\n## Acknowledgments\n\n- Inspired by Arch Linux philosophy: simplicity and user control\n- Built with community best practices and feedback\n- Thanks to all contributors and users\n\n---\n\n## Support \u0026 Contact\n\n| Platform | Link |\n|----------|------|\n| **Issues** | [GitHub Issues](https://github.com/GAndromidas/archinstaller/issues) |\n| **Discussions** | [GitHub Discussions](https://github.com/GAndromidas/archinstaller/discussions) |\n| **Repository** | [github.com/GAndromidas/archinstaller](https://github.com/GAndromidas/archinstaller) |\n\n---\n\n\u003cdiv align=\"center\"\u003e\n\n## Made with love for the Arch Linux community\n\nIf you find this useful, please consider starring the repository!\n\n[![Star](https://img.shields.io/github/stars/GAndromidas/archinstaller.svg?style=social\u0026logo=github)](https://github.com/GAndromidas/archinstaller/stargazers)\n\n\u003c/div\u003e","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fgandromidas%2Farchinstaller","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fgandromidas%2Farchinstaller","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fgandromidas%2Farchinstaller/lists"}