{"id":21639358,"url":"https://github.com/sudorook/archlinux","last_synced_at":"2025-04-11T16:52:24.463Z","repository":{"id":54469146,"uuid":"105379698","full_name":"sudorook/archlinux","owner":"sudorook","description":"Installation and post-installation scripts for Arch Linux.","archived":false,"fork":false,"pushed_at":"2024-12-16T01:57:32.000Z","size":1070,"stargazers_count":52,"open_issues_count":0,"forks_count":4,"subscribers_count":3,"default_branch":"master","last_synced_at":"2025-03-25T12:53:39.241Z","etag":null,"topics":["arch-linux","arch-linux-installer","archlinux","archlinux-installer","dotfiles"],"latest_commit_sha":null,"homepage":"","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/sudorook.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSES/GPL-3.0-or-later.txt","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":"2017-09-30T15:31:49.000Z","updated_at":"2025-03-19T14:04:29.000Z","dependencies_parsed_at":"2023-02-17T12:01:15.512Z","dependency_job_id":"a80aba15-09e1-44fd-90a0-545aafcb0713","html_url":"https://github.com/sudorook/archlinux","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/sudorook%2Farchlinux","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/sudorook%2Farchlinux/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/sudorook%2Farchlinux/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/sudorook%2Farchlinux/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/sudorook","download_url":"https://codeload.github.com/sudorook/archlinux/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":248443275,"owners_count":21104376,"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","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":["arch-linux","arch-linux-installer","archlinux","archlinux-installer","dotfiles"],"created_at":"2024-11-25T04:13:34.980Z","updated_at":"2025-04-11T16:52:24.433Z","avatar_url":"https://github.com/sudorook.png","language":"Shell","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Arch Linux Installation\n\nThis is a set of scripts installing Arch Linux and running post-installation\ntasks, e.g. installing a desktop environment, packages, and config files. They\nare intended for Cinnamon, GNOME, and KDE.\n\nRequirements:\n\n1. `curl`\n2. `findutils`\n3. `fzf`\n4. `git`\n5. `grep`\n6. `sed`\n\n## Install\n\nThe `install` script will install Arch Linux on a user-prompted block device.\nSupports installations on hardware using UEFI or legacy BIOS and will set a GPT\npartition table and ext4 filesystem. Other features, such as bootloader or\nencryption, are set when prompted.\n\nThe OS can be configured for LVM-on-LUKS full-disk encryption or not. Using GRUB\nwill also encrypt the `/boot` directory and write a decryption key into the\ninitial ramdisk so that the password prompt only appears once. For alternate\nbootloaders, the `boot` directory will remain unencrypted.\n\nThere is also the optional provision for creating a separate, unencrypted\npartition of arbitrary size. Useful for creating shared filesystems readable on\nWindows / MacOS for USB drive installations.\n\nThe rough partition scheme is:\n\n```\n1. BIOS compatibility partition, empty if GRUB not used (1 MiB)\n2. EFI partition (512 MiB)\n3. Share partition (optional)\n4. Arch Linux system (Plain / LVM / LUKS-encrypted partitions or volumes)\n   - swap\n   - root\n   - home (optional)\n```\n\n**Note:** The script uses `sgdisk` for partitioning, which uses binary (base 2)\nunits for specifying partition sizes. For example, 500M corresponds to 500\nmebibytes, not 500 megabytes.\n\nTo run, (need to be root):\n\n```sh\nsudo ./install\n```\n\n### Options\n\nInstallation options will be queries as the script runs.\n\n#### Partitioning\n\n```\n1) Back\n2) LVM on LUKS\n3) LVM\n4) Plain\n```\n\n2. Installs on LUKS-encrypted partition. Partitions (e.g. root and home) are\n   kept as logical volumes on the LUKS partition.\n3. Installs on unencrypted LVM partition.\n4. Installs everything on primary partitions.\n\n#### Boot system\n\n```\n1) Back\n2) GRUB\n3) systemd-boot\n4) EFISTUB\n```\n\n2. Installs GRUB, BIOS version if no EFI firmware is detected. Otherwise, the\n   EFI version is installed.\n3. systemd-boot (previously gummiboot) installs kernels in `/boot` and copies\n   them over to `/efi`. SystemD path hooks are also installed to update kernel\n   images and microcode in `/efi` after updates.\n4. Not supported yet...\n\n#### Etc.\n\nThe script will also prompt for:\n\n1. Host name\n2. User name\n3. User password\n4. (Optional) LUKS password\n5. Locale (e.g. `en_US.UTF-8`)\n6. Time zone (e.g. `America/Toronto`)\n\nThe script will then mount the partitions, set up chroot, download and install\nall the `base` and `base-devel` packages via `pacstrap`, set up the specified\nuser account, lock the root account, and unmount everything.\n\n## Post-install\n\nOnce the base system is installed, use the `./postinstall` script (as the user\naccount, not root), to install the remaining packages, themes, etc.\n\nSimply run:\n\n```sh\n./postinstall\n```\n\nThe script will check if the dependencies are installed and if the network\nconnection is active. The rest should be self explanatory.\n\n### Options\n\n```\n1) Quit                 4) Miscellaneous        7) Applications\n2) Autopilot            5) Desktop environment  8) Themes\n3) Base                 6) Network tools        9) Personalization\n```\n\n#### 2) Autopilot\n\nAutomatically install (without prompting) packages and configs.\n\n#### 3) Base\n\n```\n1) Back                   5) Firmware              9) Pacman styling\n2) All                    6) Updates              10) Pacman parallel\n3) Base packages          7) Enable multilib      11) Disable system beep\n4) Mirrorlist             8) Sudo insults\n```\n\n3. Installs [base.list](packages/base.list).\n\n4. Use `reflector` to select the fastest https mirrors.\n\n5. Install firmware and CPU microcode.\n\n6. Updates system packages.\n\n7. Enable multilib in `/etc/pacman.conf`.\n\n8. Enable sudo insults for incorrect login attempts via `/etc/sudoers`. Pipes to\n   `visudo` via `tee`, so it's safe.\n\n9. Enable Color and ILoveCandy in `/etc/pacman.conf`.\n\n10. Enable `ParallelDownloads` in `/etc/pacman.conf`.\n\n11. Blacklist `pcskpr` and `snd_pcsp` kernel modules.\n\n#### 4) Miscellaneous\n\n```\n1) Back                     5) Linux RT kernel         9) Laptop tools\n2) All                      6) Linux RT LTS kernel    10) Plymouth\n3) Linux hardened kernel    7) Linux zen kernel       10) zsh\n4) Linux LTS kernel         8) Linux utilities\n```\n\n3. Install the `linux-hardened` kernel (with headers).\n\n4. Install the `linux-lts` kernel (plus headers).\n\n5. Install the `linux-rt` kernel (plus headers).\n\n6. Install the `linux-rt-lts` kernel (plus headers).\n\n7. Install the `linux-zen` kernel (plus headers).\n\n8. Install general command line utilities in [utils.list](packages/utils.list).\n\n9. Install `tlp` for power management and `xorg-xbacklight` for screen\n   brightness.\n\n10. Install Plymouth splash screen.\n\n11. Install `zsh`, fish-like plugins, nerd fonts, and powerlevel10k theme.\n\n#### 5) Desktop environment\n\n```\n1) Back\n2) All\n3) GNOME\n4) Cinnamon\n5) KDE\n```\n\n3. Install GNOME desktop environment (with GDM for login).\n\n4. Install Cinnamon desktop environment and Gammastep (with LightDM for login).\n\n5. Install KDE desktop environment (with SDDM for login).\n\n#### 6) Network tools\n\n```\n1) Back                    4) Local discovery         7) Tunnel pacman over tor\n2) All                     5) Firewall\n3) Networking              6) Install tor\n```\n\n3. Install Network Manager and OpenSSH. Sets NetworkManager to use random MAC\n   addresses for network interfaces.\n\n4. Install Avahi and Samba and enable tools for local network hosting and\n   discovery.\n\n5. Install UFW for network firewall and set up basic rules.\n\n6. Install `tor` and `torsocks` (no Tor Browser).\n\n7. **EXPERIMENTAL** Tunnel all package updates through Tor.\n\n#### 7) Applications\n\n```\n 1) Back                            16) KVM (host)\n 2) All                             17) KVM (guest)\n 3) 3D acceleration                 18) Messaging\n 4) Android tools                   19) MinGW\n 5) General applications            20) Music\n 6) General applications (AUR)      21) Printing\n 7) General KDE applications        22) PipeWire\n 8) General KDE applications (AUR)  23) TeX Live\n 9) Codecs                          24) Tor browser\n10) Containers                      25) Vim\n11) Development                     26) Neovim\n12) Development (AUR)               27) LazyVim (Neovim)\n13) Extra applications              28) VirtualBox (host)\n14) Extra KDE applications          29) VirtualBox (guest)\n15) Emulators                       30) Wine\n```\n\n3. Install 3D video acceleration packages in\n   [3d-accel.list](packages/3d-accel.list).\n\n4. Install packages in [android.list](packages/android.list) for accessing\n   storage on Android devices.\n\n5. Install general GTK applications from [apps.list](packages/apps.list).\n\n6. Install general GTK AUR applications from\n   [apps-aur.list](packages/apps-aur.list).\n\n7. Install general KDE (Qt) applications from\n   [apps-kde.list](packages/apps-kde.list).\n\n8. Install general KDE (Qt) AUR applications from\n   [apps-kde-aur.list](packages/apps-kde-aur.list).\n\n9. Install GStreamer plugins for handing various media codecs.\n\n10. Install container packages (conatinerd, LXC, Nomad, Podman).\n\n11. Install packages for programming and software development.\n\n12. Install AUR packages for programming and software development.\n\n13. Install extra GTK applications from [extra.list](packages/extra.list).\n\n14. Install extra KDE (Qt) applications from\n    [extra-kde.list](packages/extra-kde.list).\n\n15. Install game system emulators.\n\n16. Install Virt-Manager and tools for using KVM virtualization.\n\n17. Install packages for Linux guests to enable host-to-guest sharing and\n    adjustable display resolution.\n\n18. Install IRC, email, and other messaging clients.\n\n19. Install MinGW for Windows/Linux cross-platform compilation.\n\n20. Install applications for playing music (`mpd`, `ncmcpp`, `strawberry`),\n    computing replaygain (`ffmpeg`), tagging metadata (`beets`), and using\n    Pandora (`pianobar`).\n\n21. Install CUPS, drivers, and applications for handling printers.\n\n22. Install PipeWire for A/V handling (replaces PulseAudio, ALSA, etc.).\n\n23. Install TeX libraries and Font Awesome icons.\n\n24. Download and install the Tor browser. Edits the application launcher icon to\n    look for \"browser-tor\".\n\n25. Install `vim` and `vim-plugins` and then set the user vimrc.\n\n26. Install `neovim` and `neovim-plugins` and then set the user init.vim.\n\n27. Install LazyVim for Neovim and its dependencies.\n\n28. Install VirtualBox and kernel modules (dkms) for running it (host).\n\n29. Install kernel modules (dkms) and tools for VirtualBox guests.\n\n30. Install Wine not-emulator, along with the Mono and browser and some audio\n    libraries.\n\n#### 8) Themes\n\n```\n1) Back                           8) Materia (KDE)\n2) All                            9) Fonts\n3) Arc (GTK)                     10) Papirus (icons)\n4) Arc (KDE)                     11) Colorific themes\n5) Adapta (GTK)                  12) Nightfox themes\n6) Plata (GTK)                   13) Timed backgrounds\n7) Materia (GTK)                 14) Dynamic wallpapers (Plasma)\n```\n\n3. Download, compile, and install a\n   [fork](https://github.com/sudorook/arc-theme) of the\n   [Arc GTK theme](https://github.com/horst3180/arc-theme).\n\n4. Download, compile, and install a [fork](https://github.com/sudorook/arc-kde)\n   of the\n   [Arc Kvantum theme](https://github.com/PapirusDevelopmentTeam/arc-kde).\n\n5. Download, compile, and install a\n   [fork](https://github.com/sudorook/adapta-gtk-theme) of the\n   [Adapta GTK theme](https://github.com/adapta-project/adapta-gtk-theme).\n\n6. Download, compile, and install a\n   [fork](https://gitlab.com/sudorook/plata-theme) of the\n   [Plata GTK theme](https://gitlab.com/tista500/plata-theme).\n\n7. Download, compile, and install a\n   [fork](https://github.com/sudorook/materia-theme) of the\n   [Materia GTK theme](https://github.com/nana-4/materia-theme).\n\n8. Download, compile, and install a\n   [fork](https://github.com/sudorook/materia-kde) of the\n   [Materia Kvantum theme](https://github.com/PapirusDevelopmentTeam/materia-kde).\n\n9. Install Noto, Cantarell, Ubuntu, Dejavu, and Roboto fonts.\n\n10. Install tweaked version of Papirus icon theme.\n\n11. Install [colorific themes](https://github.com/sudorook/colorific.vim) for\n    alacritty, gitk, kitty, Neovim, tmux, and Vim.\n\n12. Install [Nightfox themes](https://github.com/sudorook/nightfox.nvim) for\n    alacritty, kitty, Neovim, and tmux.\n\n13. Install [timed backgrounds](https://github.com/sudorook/timed-backgrounds)\n    where transitions from day to night match sunrise/sunset times.\n\n14. Install\n    [timed backgrounds](https://github.com/sudorook/plasma5-timed-backgrounds)\n    for Plasma where transitions from day to night match sunrise/sunset times.\n\n#### 9) Personalization\n\n```\n 1) Back                            12) Hide Avahi programs\n 2) All                             13) Import KDE settings\n 3) Select system fonts             14) Import application dconf\n 4) Select icon theme               15) Import GNOME terminal profiles\n 5) Select GTK theme                16) Enable autologin\n 6) Select Plasma theme             17) Invert brightness (i915)\n 7) Select Plymouth theme           18) Enable IOMMU (Intel)\n 8) Set dark GTK                    19) Disable PulseAudio suspend\n 9) Select login shell              20) Disable 802.11n\n10) Import Cinnamon dconf           21) Add scripts\n11) Import GNOME dconf              22) Select default kernel\n```\n\n3. Select the system font. (Noto or Roboto)\n\n4. Select the system icon theme.\n\n5. Select the system desktop theme (GTK).\n\n6. Select the system desktop theme (Plasma).\n\n7. Select the Plymouth splash screen theme.\n\n8. Set GTK applications to prefer the dark theme.\n\n9. Select default login shell (Bash or Zsh).\n\n10. Import pre-defined dconf settings for Cinnamon.\n\n11. Import pre-defined dconf settings for GNOME.\n\n12. Hide the Avahi desktop applications in the application list.\n\n13. Configure default desktop and application settings for Plasma.\n\n14. Import pre-defined dconf settings for applications.\n\n15. Import GNOME-terminal profiles (Light/Dark) via dconf.\n\n16. Enable autologin for the current user.\n\n17. Invert brightness via kernel command line options in the GRUB prompt.\n\n18. Enable Intel IOMMU for the i915 graphics driver. Helps fix blank displays\n    for Haswell CPUs running kernels \u003e=5.7.\n\n19. Disable PulseAudio suspend (suspend can sometimes cause weird buzzing).\n\n20. Disable 802.11n networking in iwlwifi. May help speed up poor 802.11ac\n    connections.\n\n21. Download and install\n    [general utility scripts](https://github.com/sudorook/misc-scripts).\n\n22. Select the default boot kernel from the currently installed ones.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fsudorook%2Farchlinux","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fsudorook%2Farchlinux","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fsudorook%2Farchlinux/lists"}