Skip to content

techniixdotcom/niixArch

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

6 Commits
 
 
 
 
 
 

Repository files navigation

NiiX Arch

A single script that optimises a base Arch Linux install. Auto-detects hardware (CPU, GPU, RAM, bootloader, desktop environment) and applies the right drivers, kernel, apps, performance tweaks, and security hardening — no manual configuration needed.

Dual-boot safe. Works with AMD, NVIDIA, and Intel GPUs.

bash niixarch.sh

What it does

Hardware Detection

Automatically detects and configures for your specific hardware:

  • CPU: AMD or Intel (installs correct microcode, pstate driver)
  • GPU: AMD, NVIDIA, or Intel (installs correct drivers, Vulkan, VA-API)
  • RAM: Tunes swappiness and ZRAM based on installed memory
  • Storage: Optimises I/O schedulers for NVMe and SATA SSDs
  • Bootloader: Limine, GRUB, or systemd-boot (adds CachyOS kernel entry, preserves Windows entries)
  • Desktop: GNOME, KDE, Hyprland, or Sway (applies DE-specific tweaks)
  • Dual-boot: Detects Windows partitions and sets a 5-second boot menu timeout

Apps Installed

App Source Purpose
Steam pacman Game launcher
Heroic Games Launcher AUR Epic / GOG games
Wine Staging pacman Windows compatibility
ProtonUp-Qt AUR Proton version manager
GE-Proton GitHub Custom Proton builds
Helium Browser AUR Chromium-based browser
Stremio Flatpak Media streaming
Tor Browser AUR Anonymous browsing
Signal pacman Encrypted messaging
Session AUR Decentralised messaging
Whatsie Flatpak WhatsApp client
Lock Flatpak PGP encryption/decryption
Electrum pacman Bitcoin wallet
Monero GUI AUR Monero wallet
CoreCtrl pacman AMD GPU management
fastfetch pacman System info

Performance

  • CachyOS kernel with BORE scheduler and x86-64-v3 optimisations
  • LAVD scheduler (scx_lavd) for real-time thread prioritisation
  • GameMode + MangoHud with custom gamemode.ini
  • ananicy-cpp with game-specific process priority rules
  • DXVK for DirectX-to-Vulkan translation
  • ntsync module for lower-overhead Wine/Proton sync
  • ZRAM with zstd compression (sized to RAM)
  • NVMe + SSD I/O schedulers set to none
  • /tmp on tmpfs (4GB RAM-backed)
  • TCP BBR congestion control
  • Transparent hugepages set to madvise
  • IRQ balancing enabled
  • Pacman parallel downloads (5 concurrent)
  • Mitigations prompt — choose between max performance or security at runtime

Security

  • ufw firewall — deny incoming, allow outgoing (Steam remote play excepted)
  • MAC randomisation — random MAC on every WiFi/Ethernet connection
  • DNS-over-TLS — Cloudflare primary, Quad9 fallback
  • Auto-update timerpacman -Syu every 12 hours
  • Timeshift — creates a snapshot before making changes (rollback safety net)

GNOME Settings (when GNOME detected)

  • Dark mode, alert sounds off
  • Power button does nothing, auto screen blank off, auto suspend off
  • Fixed 1 workspace, lock screen notifications off
  • Ctrl+Alt+T opens terminal
  • AppIndicator extension for tray icons
  • Bluetooth A2DP forced (fixes underwater audio)
  • Apps pinned to dash in order

Branding

  • /etc/os-release and /etc/issue branded as NiiX Arch
  • Hostname set to niixarch
  • Custom fastfetch config
  • Pacman hooks to preserve branding across updates
  • Bootloader entries renamed to NiiX Arch

Requirements

  • A base Arch Linux install (or CachyOS, EndeavourOS, etc.)
  • An active internet connection
  • A non-root user with sudo access

Do not run as root — the script uses sudo when needed.


Usage

# Standard run — interactive prompts for mitigations choice
bash niixarch.sh

# First-boot mode — skips reboot prompt, cleans up autostart
bash niixarch.sh --firstboot

The script is idempotent — safe to run multiple times. It skips packages that are already installed and only modifies configs that need changing.


Interactive Prompts

The script asks two questions during execution:

  1. Continue? — Press Enter to proceed or Ctrl+C to cancel
  2. CPU mitigations — Choose between:
    • OFF: ~5-10% more performance (disables Spectre/Meltdown patches)
    • ON: Keep protections enabled (recommended if handling crypto/banking)

Verification

After installation, the script runs a comprehensive verification that checks every package, service, environment variable, kernel parameter, and configuration it touched. Any issues show as yellow [!] warnings with instructions to fix.


Logs

Every run creates a timestamped log at:

~/niixarch-install-YYYYMMDD-HHMMSS.log

Bootloader Support

Bootloader Supported Dual-boot
Limine Windows entries preserved, 5s timeout
GRUB os-prober enabled, Windows auto-detected
systemd-boot Windows entries untouched, 5s timeout

GPU Support

GPU Drivers Extras
AMD Mesa, RADV, VA-API, xf86-video-amdgpu CoreCtrl, RADV env vars
NVIDIA nvidia-dkms or nvidia-open-dkms Early KMS, Wayland vars (GBM_BACKEND, etc.), DRM modeset
Intel Mesa, vulkan-intel, intel-media-driver iHD VA-API driver

NVIDIA driver type is auto-selected: open-dkms for Turing+ (RTX 20xx/30xx/40xx, GTX 16xx), proprietary for older cards.


AUR Reliability

All AUR installs use a retry wrapper that attempts up to 3 times with a 5-second delay between attempts, handling transient network failures and build flakes.


File Locations

File Purpose
/etc/sysctl.d/99-niixarch.conf Kernel parameter tweaks
/etc/systemd/zram-generator.conf ZRAM configuration
/etc/udev/rules.d/60-nvme-scheduler.conf NVMe I/O scheduler
/etc/udev/rules.d/60-ssd-scheduler.conf SSD I/O scheduler
/etc/NetworkManager/conf.d/30-mac-randomize.conf MAC randomisation
/etc/systemd/resolved.conf.d/dns-over-tls.conf DNS-over-TLS
/etc/pacman.d/hooks/niixarch-*.hook Branding persistence
~/.config/gamemode.ini GameMode configuration
~/.config/fastfetch/config.jsonc fastfetch NiiX Arch theme
~/niixarch-install-*.log Install logs

About

NiiX Arch script to optimise a base arch install

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors

Languages