{"id":16641931,"url":"https://github.com/ptr1337/archinstall","last_synced_at":"2026-04-26T14:31:03.498Z","repository":{"id":119298759,"uuid":"420754065","full_name":"ptr1337/archinstall","owner":"ptr1337","description":null,"archived":false,"fork":false,"pushed_at":"2021-10-24T17:50:53.000Z","size":7819,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-03-12T05:29:48.815Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":"Shell","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/ptr1337.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"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}},"created_at":"2021-10-24T17:47:15.000Z","updated_at":"2021-10-24T17:51:41.000Z","dependencies_parsed_at":null,"dependency_job_id":"616132ac-9bc1-4721-b2a4-52fa6836d31b","html_url":"https://github.com/ptr1337/archinstall","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/ptr1337/archinstall","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ptr1337%2Farchinstall","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ptr1337%2Farchinstall/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ptr1337%2Farchinstall/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ptr1337%2Farchinstall/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/ptr1337","download_url":"https://codeload.github.com/ptr1337/archinstall/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ptr1337%2Farchinstall/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":28003847,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","status":"online","status_checked_at":"2025-12-24T02:00:07.193Z","response_time":83,"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":[],"created_at":"2024-10-12T07:48:18.061Z","updated_at":"2025-12-24T15:03:33.683Z","avatar_url":"https://github.com/ptr1337.png","language":"Shell","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Arch Linux install scripts\n\nNote: These scripts are not meant to be another full-fledged Arch installer. They are made to fit my devices: Dell XPS 7390 and custom desktop build (Ryzen 3700X and RX 5700XT). In any case, as long as you don't use a Nvidia GPU, they should work fine.\n\n## Install script\n\n- LVM on LUKS\n- LUKS2\n- systemd-boot (with Pacman hook for automatic updates)\n- systemd init hooks (instead of busybox)\n- SSD Periodic TRIM\n- Intel/AMD microcode\n- Standard Kernel + LTS kernel as fallback\n- Hibernate support\n- NMI watchdog disabled\n- Swappiness set to 20\n\n### Requirements\n\n- UEFI mode\n- NVMe SSD\n- TRIM compatible SSD\n- CPU: Intel (Skylake or newer) / AMD\n- GPU: AMDGPU - only if CPU vendor is AMD (this combination is hard-coded. For now, base script checks for CPU vendor and if it's AMD, then it'll also install required drivers for AMD GPU)\n\n### Partitions\n\n| Name                                                 | Type  | Mountpoint |\n| ---------------------------------------------------- | :---: | :--------: |\n| nvme0n1                                              | disk  |            |\n| ├─nvme0n1p1                                          | part  |   /boot    |\n| ├─nvme0n1p2                                          | part  |            |\n| \u0026nbsp;\u0026nbsp;\u0026nbsp;└─cryptlvm                         | crypt |            |\n| \u0026nbsp;\u0026nbsp;\u0026nbsp;\u0026nbsp;\u0026nbsp;\u0026nbsp;\u0026nbsp;├─vg0-swap |  lvm  |   [SWAP]   |\n| \u0026nbsp;\u0026nbsp;\u0026nbsp;\u0026nbsp;\u0026nbsp;\u0026nbsp;\u0026nbsp;└─vg0-root |  lvm  |     /      |\n\n## Post install script\n\n- Gnome / KDE / Sway / i3 (separate scripts)\n- PipeWire instead of PulseAudio\n- UFW (deny incoming, allow outgoing)\n- Automatic login\n- Fonts\n- paru (AUR helper)\n- Plymouth\n- Flatpak support\n- Syncthing\n- Browsers:\n  - Firefox (see below: MISC - Firefox required configs for VA-API support)\n  - Chrome: via Flatpak, with hardware acceleration enabled\n  - Chromium: via Flatpak, with hardware acceleration enabled\n\n## Installation guide\n\n1. Download and boot into the latest [Arch Linux iso](https://www.archlinux.org/download/)\n2. Connect to the internet. If using wifi, you can use `iwctl` to connect to a network:\n   - scan for networks: `station wlan0 scan`\n   - list available networks: `station wlan0 get-networks`\n   - connect to a network: `station wlan0 connect SSID`\n3. Give highest priority to the closest mirror to you on /etc/pacman.d/mirrorlist by moving it to the top\n4. Sync repos: `pacman -Sy` and install wget `pacman -S wget`\n5. `wget https://raw.githubusercontent.com/gjpin/arch-linux/master/1_install.sh`\n6. Change the variables at the top of the file (lines 3 through 9)\n   - continent_country must have the following format: Zone/SubZone . e.g. Europe/Berlin\n   - run `timedatectl list-timezones` to see full list of zones and subzones\n7. Run the script: `./1_install.sh`\n8. Reboot into Arch Linux\n9. Connect to wifi with `nmtui`\n10. `wget https://raw.githubusercontent.com/gjpin/arch-linux/master/2_gnome.sh` or `2_plasma.sh` or `2_sway.sh`\n11. Run the script: `./2_gnome.sh` or `./2_plasma.sh` or `./2_sway.sh`\n\n## Misc guides\n\n### Firefox required configs for VA-API support\n\n- Run `flatpak --user override --socket=wayland --env=MOZ_WEBRENDER=1 --env=MOZ_ENABLE_WAYLAND=1 --env=GTK_USE_PORTAL=1 org.mozilla.firefox`\n- At about:config set `gfx.webrender.enabled`, `media.ffmpeg.vaapi.enabled` `widget.wayland-dmabuf-vaapi.enabled` to true and `media.ffvpx.enabled` to false and then restart browser\n  - Read original blog post [here](https://mastransky.wordpress.com/2020/06/03/firefox-on-fedora-finally-gets-va-api-on-wayland/)\n  - Note: base script already sets the required environment variables. Only changing these 2 configs suffices\n\n### How to install Paru (AUR helper)\n\n```\ngit clone https://aur.archlinux.org/paru-bin.git\ncd paru-bin\nmakepkg -si --noconfirm\ncd ..\nrm -rf paru-bin\n```\n\n### How to enable secure boot\n\n1. `sudo pacman -S --noconfirm sbctl`\n2. Confirm secure boot is disabled and delete existing keys in the bios (should automatically go into setup mode)\n3. Confirm status (setup mode): `sudo sbctl status`\n4. Create new keys: `sudo sbctl create-keys`\n5. Enroll new keys: `sudo sbctl enroll-keys`\n6. Confirm status (setup mode should now be disabled): `sudo sbctl status`\n7. Confirm what needs to be signed: `sudo sbctl verify`\n8. Sign with new keys:\n\n- `sudo sbctl sign -s /boot/EFI/BOOT/BOOTX64.EFI`\n- `sudo sbctl sign -s /boot/EFI/systemd/systemd-bootx64.efi`\n- `sudo sbctl sign -s /boot/vmlinuz-linux`\n- `sudo sbctl sign -s /boot/vmlinuz-linux-lts`\n\n9. Reboot and enable secure boot in the bios\n10. Confirm status (secure boot enabled): `sudo sbctl status`\n\n### How to chroot\n\n```\nmkdir -p /mnt/boot\nmount /dev/nvme0n1p1 /mnt/boot\ncryptsetup luksOpen /dev/nvme0n1p2 cryptlvm\nmount /dev/vg0/root /mnt\narch-chroot /mnt\n```\n\n### How to install Firefox Gnome theme\n\n```\necho \"Installing Firefox Flatpak Gnome theme\"\ngit clone https://github.com/rafaelmardojai/firefox-gnome-theme/ \u0026\u0026 cd firefox-gnome-theme\n./scripts/install.sh -f ~/.var/app/org.mozilla.firefox/.mozilla/firefox\nrm -rf ~/firefox-gnome-theme\n```\n\n### How to install Lutris and Steam (Flatpak)\n\n```\n# Sources:\n# https://gitlab.com/freedesktop-sdk/freedesktop-sdk/-/wikis/Mesa-git\n# https://github.com/GloriousEggroll/proton-ge-custom#flatpak\n# https://github.com/flathub/net.lutris.Lutris\n\n# Add Flatpak repos\nflatpak remote-add --user --if-not-exists flathub https://flathub.org/repo/flathub.flatpakrepo\nflatpak remote-add --user --if-not-exists flathub-beta https://flathub.org/beta-repo/flathub-beta.flatpakrepo\nflatpak update --appstream\n\n# Install mesa-git\nflatpak install --user --assumeyes flathub-beta org.freedesktop.Platform.GL.mesa-git//20.08 org.freedesktop.Platform.GL32.mesa-git//20.08\n\n# Install Lutris\nflatpak install --user --assumeyes flathub-beta net.lutris.Lutris//beta\nflatpak install --user --assumeyes flathub org.gnome.Platform.Compat.i386 org.freedesktop.Platform.GL32.default org.freedesktop.Platform.GL.default\n\n# Give Lutris Flatpak access to external drive\nflatpak override --user --filesystem=/mnt/data/games/lutris net.lutris.Lutris\n\n# Install Steam\nflatpak install --user --assumeyes flathub com.valvesoftware.Steam\nflatpak install --user --assumeyes com.valvesoftware.Steam.CompatibilityTool.Proton\n\n# Give Steam Flatpak access to external drive\nflatpak override --user --filesystem=/mnt/data/games/steam com.valvesoftware.Steam\n\n# Make Steam and Lutris Flatpak use mesa-git\nsed -i \"s,Exec=,Exec=env FLATPAK_GL_DRIVERS=mesa-git ,\" ~/.local/share/flatpak/exports/share/applications/com.valvesoftware.Steam.desktop\nsed -i \"s,Exec=,Exec=env FLATPAK_GL_DRIVERS=mesa-git ,\" ~/.local/share/flatpak/exports/share/applications/net.lutris.Lutris.desktop\n\n# Download latest release from GloriousEggroll/proton-ge-custom and move it to Steam Flatpak\ncurl -Ls https://api.github.com/repos/GloriousEggroll/proton-ge-custom/releases/latest | grep -wo \"https.*tar.gz\" | wget -qi -\nmkdir -p ~/.var/app/com.valvesoftware.Steam/data/Steam/compatibilitytools.d/\ntar -xzf Proton-* -C ~/.var/app/com.valvesoftware.Steam/data/Steam/compatibilitytools.d/\n\n# To enable proton ge: https://github.com/GloriousEggroll/proton-ge-custom#enabling\n\n# Allow Steam Link through the Firewall\nsudo ufw allow from 192.168.1.0/24 to any port 27036:27037 proto tcp comment \"steam link\"\nsudo ufw allow from 192.168.1.0/24 to any port 27031:27036 proto udp comment \"steam link\"\n```\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fptr1337%2Farchinstall","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fptr1337%2Farchinstall","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fptr1337%2Farchinstall/lists"}