{"id":27314280,"url":"https://github.com/quinsaiz/archinstall","last_synced_at":"2026-05-01T16:35:38.133Z","repository":{"id":257382585,"uuid":"850633069","full_name":"quinsaiz/archinstall","owner":"quinsaiz","description":"A script to automate the Arch Linux installation process, including disk partitioning, system configuration, and package installation with customizable options.","archived":false,"fork":false,"pushed_at":"2026-04-23T21:25:55.000Z","size":88,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2026-04-23T23:28:08.749Z","etag":null,"topics":["archlinux","automation","easyeffects-presets","gnu","guide","installer","linux","shell","shell-script"],"latest_commit_sha":null,"homepage":"","language":"Shell","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"other","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/quinsaiz.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":"2024-09-01T10:48:45.000Z","updated_at":"2026-04-23T21:25:59.000Z","dependencies_parsed_at":null,"dependency_job_id":"7689b258-8256-4ecf-803a-3dc35cf1db07","html_url":"https://github.com/quinsaiz/archinstall","commit_stats":null,"previous_names":["quinsaiz/archinstall"],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/quinsaiz/archinstall","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/quinsaiz%2Farchinstall","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/quinsaiz%2Farchinstall/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/quinsaiz%2Farchinstall/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/quinsaiz%2Farchinstall/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/quinsaiz","download_url":"https://codeload.github.com/quinsaiz/archinstall/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/quinsaiz%2Farchinstall/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":32505109,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-04-30T13:12:12.517Z","status":"online","status_checked_at":"2026-05-01T02:00:05.856Z","response_time":64,"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","automation","easyeffects-presets","gnu","guide","installer","linux","shell","shell-script"],"created_at":"2025-04-12T07:40:28.059Z","updated_at":"2026-05-01T16:35:38.127Z","avatar_url":"https://github.com/quinsaiz.png","language":"Shell","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Arch Linux installation guide\n\n## Preparation for installation\n\n### Update the system clock\n\n```bash\ntimedatectl set-ntp true\n```\n\n### Connect to the internet (WiFi)\n\n```bash\nrfkill unblock wifi\n\niw dev wlan0 scan | grep SSID\n\niwctl --passphrase \"password\" station wlan0 connect \"SSID\"\n```\n\n### Create partitions\n\n```bash\nfdisk -l\n\ncfdisk /dev/nvme0n1\n```\n\n### Format the partitions\n\n#### Create EFI partition\n\n```bash\nmkfs.vfat -F32 /dev/nvme0n1p1\n```\n\n#### **ext4:**\n\n```bash\nmkfs.ext4 -L \"arch\" /dev/nvme0n1p2\n\nmkfs.ext4 -L \"home\" /dev/nvme0n1p3\n```\n\n#### **f2fs:**\n\n```bash\nmkfs.f2fs -f -l \"arch\" /dev/nvme0n1p2\n\nmkfs.f2fs -f -l \"home\" /dev/nvme0n1p3\n```\n\n### Mounting\n\n````bash\nmount /dev/nvme0n1p2 /mnt\n\nmkdir -p /mnt/{home,boot/efi}\n\nmount /dev/nvme0n1p3 /mnt/home\n\nmount /dev/nvme0n1p1 /mnt/boot/efi\n````\n\n## Installation\n\n### Installing the main packages\n\n```bash\npacstrap /mnt base base-devel linux-zen linux-zen-headers linux-firmware amd-ucode networkmanager nano\n```\n\n###\n\n- linux linux-headers\n- intel-ucode\n\n## Configure the system\n\n### Generate fstab\n\n```bash\ngenfstab -U /mnt \u003e\u003e /mnt/etc/fstab\n```\n\n### Arch Chroot\n\n```bash\narch-chroot /mnt\n```\n\n### Time\n\n```bash\nln -sf /usr/share/zoneinfo/Europe/Kyiv /etc/localtime\n\nhwclock --systohc\n```\n\n### Localization\n\n```bash\necho -e \\\n\"en_US.UTF-8 UTF-8\" \\\n| tee -a /etc/locale.gen\n\nlocale-gen\n\necho \\\n\"LANG=en_US.UTF-8\" \\\n\u003e /etc/locale.conf\n```\n\n#### If another language\n\n```bash\necho -e \\\n\"en_US.UTF-8 UTF-8\\nuk_UA.UTF-8 UTF-8\" \\\n| tee -a /etc/locale.gen\n\nlocale-gen\n\necho \\\n\"LANG=uk_UA.UTF-8\" \\\n\u003e /etc/locale.conf\n\necho -e \\\n\"KEYMAP=ua-utf\\nFONT=UniCyr_8x16\" \\\n\u003e /etc/vconsole.conf\n```\n\n### Hostname\n\n```bash\necho \\\n\"arch\" \\\n\u003e /etc/hostname\n```\n\n### Bootloader\n\n```bash\npacman -S grub efibootmgr\n\ngrub-install /dev/nvme0n1\n\ngrub-mkconfig -o /boot/grub/grub.cfg\n```\n\n#### If Windows is installed\n\n```bash\npacman -S os-prober\n\nsed -i \\\n'/^#GRUB_DISABLE_OS_PROBER=/ s/^#//' \\\n/etc/default/grub\n\ngrub-mkconfig -o /boot/grub/grub.cfg\n```\n\n### User management\n\n#### Set password for root\n\n```bash\npasswd\n```\n\n#### Add a new user\n\n```bash\nsed -i \\\n'/^# %wheel ALL=(ALL:ALL) ALL/ s/^# //' \\\n/etc/sudoers\n\nuseradd -m -G wheel -s /bin/bash username\n\npasswd username\n```\n\n### NetworkManager activation\n\n```bash\nsystemctl enable NetworkManager\n```\n\n### End of installation\n\n```bash\nexit\n\numount -R /mnt\n\nreboot\n```\n\n## Post-install\n\n### Connect to the Wi-Fi\n\n```bash\nnmtui\n```\n\n### Pacman\n\n```bash\nsudo sed -i \\\n'/^#\\[multilib\\]/,/^#\\Include = \\/etc\\/pacman.d\\/mirrorlist/ s/^#//' \\\n/etc/pacman.conf\n\nsudo sed -i \\\n's/^ParallelDownloads = 5/ParallelDownloads = 10/' \\\n/etc/pacman.conf\n\nsudo sed -i \\\n'/^#Color$/ s/^#//' \\\n/etc/pacman.conf\n\nsudo pacman -Syu\n```\n\n### NVIDIA GPU\n\n```bash\n# use nvidia-open for stock linux kernel, nvidia-open-dkms for custom kernels\nsudo pacman -S \\\nnvidia-open-dkms nvidia-utils lib32-nvidia-utils \\\nnvidia-settings --needed \n\nsudo pacman -S \\\nvulkan-icd-loader lib32-vulkan-icd-loader \\\nopencl-nvidia libva libva-utils \\\nvulkan-tools mesa-utils v4l-utils ffmpeg cuda \\\n--needed\n\nprintf '%s\\n' \\\n'options nvidia_drm modeset=1 fbdev=1' \\\n| sudo tee /etc/modprobe.d/nvidia-drm.conf \u003e /dev/null\n\nprintf '%s\\n' \\\n'blacklist i2c_nvidia_gpu' \\\n| sudo tee /etc/modprobe.d/nvidia-i2c.conf \u003e /dev/null\n\nprintf '%s\\n' \\\n'blacklist nouveau' 'options nouveau modeset=0' \\\n| sudo tee /etc/modprobe.d/nouveau.conf \u003e /dev/null\n\nsudo sed -i \\\n's/^MODULES=(\\(.*\\))/MODULES=(\\1 nvidia nvidia_modeset nvidia_uvm nvidia_drm)/' \\\n/etc/mkinitcpio.conf\n\nsudo mkinitcpio -P\n\n# for verification of installation\nsudo cat /proc/driver/nvidia/params\n```\n\n### AMD GPU\n\n```bash\nsudo pacman -S \\\nmesa lib32-mesa \\\nvulkan-radeon lib32-vulkan-radeon \\\n--needed\n\nsudo pacman -S \\\nvulkan-icd-loader lib32-vulkan-icd-loader \\\nlibva-mesa-driver lib32-libva-mesa-driver \\\nlibva libva-utils vulkan-tools mesa-utils \\\nv4l-utils ffmpeg --needed\n```\n\n### GNOME\n\n```bash\nsudo pacman -S gnome\n\nsudo systemctl enable gdm\n\nsudo reboot\n```\n\n### Installation of basic programs\n\n```bash\nsudo pacman -S \\\nfirefox firefox-i18n-uk fastfetch btop nvtop vlc \\\nqbittorrent obs-studio adw-gtk-theme dosfstools ntfs-3g \\\ngnome-browser-connector gnome-tweaks bash-completion --needed\n\nparu -S suru-plus-dark-git\n```\n\n### Installation paru and pamac\n\n```bash\nsudo pacman -S git --needed\n\ngit clone https://aur.archlinux.org/paru.git \u0026\u0026 \\\ncd paru \u0026\u0026 makepkg -si\n\nparu -S pamac-aur\n```\n\n### Sound and equalizer settings\n\n```bash\nsudo pacman -S \\\npipewire pipewire-pulse pipewire-alsa \\\nalsa-utils wireplumber easyeffects --needed\n\nsudo pacman -S lsp-plugins-lv2 calf\n\nsudo curl -L \\\n\"https://github.com/Rikorose/DeepFilterNet/releases/download/v0.5.6/libdeep_filter_ladspa-0.5.6-x86_64-unknown-linux-gnu.so\" \\\n-o /usr/lib/ladspa/libdeep_filter_ladspa.so\n```\n\n### Installation fonts\n\n```bash\nsudo pacman -S \\\nnoto-fonts noto-fonts-cjk noto-fonts-emoji \\\nttf-liberation ttf-roboto --needed\n```\n\n### Firewall settings\n\n```bash\nsudo pacman -S ufw gufw\n\nsudo systemctl enable --now ufw\n\nsudo ufw default deny incoming\n\nsudo ufw default allow outgoing\n\nsudo ufw allow from 192.168.0.0/24 to any port 8000 proto tcp \n\nsudo ufw enable\n```\n\n### Bluetooth\n\n```bash\nsudo pacman -S bluez bluez-utils --needed\n\nsudo systemctl enable --now bluetooth.service\n```\n\n### Power profiles\n\n```bash\nsudo pacman -S power-profiles-daemon\n\nsudo systemctl enable --now power-profiles-daemon\n\nparu -S ppd-cpu-boost\n```\n\n### Gaming utils\n\n```bash\nsudo pacman -S steam\n\nsudo pacman -S mangohud lib32-mangohud goverlay gamemode lib32-gamemode\n\nsudo usermod -aG gamemode $(whoami)\n\nparu -S vkbasalt lib32-vkbasalt\n```\n\n### Zsh\n```bash\nsudo pacman -S zsh zsh-completions zsh-autosuggestions zsh-syntax-highlighting ttf-jetbrains-mono-nerd\n\nchsh -s /bin/zsh\n\nsh -c \"$(curl -fsSL https://raw.github.com/robbyrussell/oh-my-zsh/master/tools/install.sh)\"\n\ngit clone --depth=1 https://github.com/romkatv/powerlevel10k.git $ZSH_CUSTOM/themes/powerlevel10k\n\nsed -i \\\n's#ZSH_THEME=\"robbyrussell\"#ZSH_THEME=\"powerlevel10k/powerlevel10k\"#' \\\n~/.zshrc\n\nprintf \\\n'\\n# Plugins\\nsource /usr/share/zsh/plugins/zsh-syntax-highlighting/zsh-syntax-highlighting.zsh\\nsource /usr/share/zsh/plugins/zsh-autosuggestions/zsh-autosuggestions.zsh\\n' \\\n\u003e\u003e ~/.zshrc\n\nprintf \\\n'include /usr/share/nano/*.nanorc\\n' \\\n\u003e\u003e ~/.nanorc\n```\n\n### Dnsmasq\n\n```bash\nsudo pacman -S dnsmasq\n\nprintf '%s\\n' \\\n'[main]' \\\n'dns=dnsmasq' \\\n| sudo tee /etc/NetworkManager/conf.d/dns.conf \u003e /dev/null\n\nnmcli general reload\n```\n\n### Cloudlfare WARP\n\n```bash\nparu -S cloudflare-warp-bin\n\nsudo systemctl enable --now warp-svc\n\nwarp-cli registration new\n\nsystemctl --user mask warp-taskbar\n```\n\n### Optimization mkinitcpio\n\n```bash\nsudo sed -i \\\n's/^#COMPRESSION=\"lz4\"/COMPRESSION=\"lz4\"/' \\\n/etc/mkinitcpio.conf\n\nsudo sed -i \\\n's/^#COMPRESSION_OPTIONS=()/COMPRESSION_OPTIONS=(-9)/' \\\n/etc/mkinitcpio.conf\n\nsudo mkinitcpio -P\n```\n\n### Optimization pacman mirrors\n\n```bash\nsudo pacman -S reflector\n\nsudo reflector \\\n--protocol https \\\n--country Germany,Ukraine,Poland \\\n--age 6 \\\n--sort rate \\\n--save /etc/pacman.d/mirrorlist\n\nsudo pacman -Syu\n```\n\n### Activation everyweek TRIM\n\n```bash\nsudo systemctl enable --now fstrim.timer\n```\n\n### SWAP\n\n#### zram-generator\n\n```bash\nsudo pacman -S zram-generator\n\nprintf '%s\\n' \\\n'[zram0]' \\\n'zram-size = ram / 2' \\\n'compression-algorithm = lz4' \\\n'swap-priority = 100' \\\n| sudo tee /etc/systemd/zram-generator.conf \u003e /dev/null\n```\n\n#### swapfile\n\n```bash\nsudo fallocate -l 8G /swapfile\n\nsudo chmod 600 /swapfile\n\nsudo mkswap /swapfile\n\nsudo swapon /swapfile\n\nprintf '%s\\n' \\\n'/swapfile none swap defaults 0 0' \\\n| sudo tee -a /etc/fstab \u003e /dev/null\n\nprintf '%s\\n' \\\n'vm.swappiness=10' \\\n'vm.vfs_cache_pressure=50' \\\n| sudo tee /etc/sysctl.d/99-sysctl.conf \u003e /dev/null\n```\n\n### Change volume step\n\n```bash\ngsettings set org.gnome.settings-daemon.plugins.media-keys volume-step 2\n```\n\n### Recommended extensions\n\n- [AppIndicator](https://extensions.gnome.org/extension/615/appindicator-support/)\n- [BlurMyShell](https://extensions.gnome.org/extension/3193/blur-my-shell/)\n- [Dash to Dock](https://extensions.gnome.org/extension/307/dash-to-dock/)\n- [Tiling Assistant](https://extensions.gnome.org/extension/3733/tiling-assistant/)\n- [System Monitor](https://extensions.gnome.org/extension/6807/system-monitor/)\n\n#\n\n### Fix suspend on amdgpu\n\n```bash\nsudo sed -i \\\n's/^GRUB_CMDLINE_LINUX_DEFAULT=\"\\(.*\\)\"/GRUB_CMDLINE_LINUX_DEFAULT=\"\\1 amdgpu.runpm=0\"/' \\\n/etc/default/grub\n\nsudo grub-mkconfig -o /boot/grub/grub.cfg\n```\n\n### For caching new icons\n\n```bash\nsudo gtk-update-icon-cache -f -t /usr/share/icons/*\n```\n\n### Remove standart GNOME apps\n\n```bash\nsudo pacman -Rns \\\ngnome-calendar gnome-characters gnome-clocks \\\ngnome-connections gnome-contacts gnome-music \\\ngnome-font-viewer gnome-maps gnome-software \\\ngnome-tour gnome-weather epiphany \\\nbaobab simple-scan papers snapshot\n```\n\n### Cleaning GNOME of unnecessary programs (Be careful)\n\n```bash\nsudo pacman -D --asdeps $(pacman -Qqg gnome)\n\nsudo pacman -D --asexplicit \\\ngnome-shell mutter gdm gnome-control-center \\\ngnome-console nautilus gnome-session \\\ngnome-settings-daemon gnome-backgrounds \\\ngvfs gvfs-mtp gnome-text-editor gnome-calculator \\\nevince gnome-disk-utility gnome-logs \\\ngnome-shell-extensions gnome-system-monitor \\\nloupe sushi xdg-desktop-portal-gnome \\\nxdg-user-dirs-gtk\n\nsudo pacman -Rsn $(pacman -Qqgdtt gnome)\n\n# removal unused dependencies\nsudo pacman -Rns $(pacman -Qdtq)\n```\n\n### Headphone front panel activation\n\n```bash\nalsamixer # Line -\u003e 100%\n\nsudo alsactl store\n\nmkdir -p ~/.config/autostart\n\ncat \u003c\u003c 'EOF' \u003e ~/.config/autostart/amixer.sh\n#!/bin/bash\nfor card in 0 1; do\n    amixer -c $card sset \"Headphone\" 100% unmute 2\u003e/dev/null || true\n    amixer -c $card sset \"Front\" 100% unmute 2\u003e/dev/null || true\ndone\nEOF\n\nchmod +x ~/.config/autostart/amixer.sh\n\ncat \u003c\u003c 'EOF' \u003e ~/.config/autostart/amixer.desktop\n[Desktop Entry]\nName=Amixer Headphone Fix\nComment=Enable headphone front panel on startup\nExec=/bin/bash -c \"~/.config/autostart/amixer.sh\"\nType=Application\nTerminal=true\nHidden=false\nStartupNotify=false\nX-GNOME-Autostart-enabled=true\nIcon=music\nEOF\n```\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fquinsaiz%2Farchinstall","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fquinsaiz%2Farchinstall","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fquinsaiz%2Farchinstall/lists"}