{"id":24387094,"url":"https://github.com/heimdev/archie","last_synced_at":"2025-03-12T19:27:18.006Z","repository":{"id":240688056,"uuid":"476852909","full_name":"heimdev/archie","owner":"heimdev","description":"Arch Linux Installation Guide","archived":false,"fork":false,"pushed_at":"2023-01-09T14:47:41.000Z","size":4830,"stargazers_count":3,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-01-19T12:16:38.961Z","etag":null,"topics":["archlinux","dwm","ext4","grub"],"latest_commit_sha":null,"homepage":"","language":null,"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/heimdev.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":"2022-04-01T19:59:24.000Z","updated_at":"2024-09-05T20:44:40.000Z","dependencies_parsed_at":"2024-05-20T16:41:20.304Z","dependency_job_id":null,"html_url":"https://github.com/heimdev/archie","commit_stats":null,"previous_names":["cryp7ic/archie","heimdev/archie"],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/heimdev%2Farchie","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/heimdev%2Farchie/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/heimdev%2Farchie/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/heimdev%2Farchie/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/heimdev","download_url":"https://codeload.github.com/heimdev/archie/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":243279980,"owners_count":20265932,"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":["archlinux","dwm","ext4","grub"],"created_at":"2025-01-19T12:16:37.587Z","updated_at":"2025-03-12T19:27:17.998Z","avatar_url":"https://github.com/heimdev.png","language":null,"funding_links":[],"categories":[],"sub_categories":[],"readme":"# Arch Linux Installation Guide\n\nA guide for installing Arch Linux made by Cryp7ic.\n\n\u003e **Note:** GRUB bootloader, ext4 file system, DWM.\n\n## Table of contents\n\n- [Network Configuration](#network-configuration)\n- [Disk Configuration](#disk-configuration)\n- [Mounting](#mounting)\n- [Installation](#installation)\n- [Create File System Table](#create-file-system-table)\n- [Set Zoneinfo](#set-zoneinfo)\n- [GRUB](#grub)\n- [Unmount \u0026 Reboot](#unmount-\u0026-reboot)\n- [DWM](#dwm)\n- [Post Install](#post-install)\n\n## Network Configuration\n\nCheck whether you have Internet connection.\n\n```shell\n$ ping 8.8.8.8\n```\n\n**Wi-Fi connections**\n\nGet into interactive mode\n\n```shell\n[iwd]# iwctl\n```\n\nIf you do not know your wireless device name, list the wireless devices:\n\n```shell\n[iwd]# device list\n```\n\nList all available networks:\n\n```shell\n[iwd]# station \u003cdevice\u003e get-networks\n```\n\nConnect to a network:\n\n```shell\n[iwd]# station \u003cdevice\u003e connect \u003c\"SSID\"\u003e\n```\n\nIf it is asking for a pass phrase, you can supply it as a command line argument:\n\n```shell\n$ iwctl --passphrase \u003cpassphrase\u003e station \u003cdevice\u003e connect \u003c\"SSID\"\u003e\n```\n\n## Disk Configuration\n\n#### Disk Partitioning\n\n**List disks**\n\n```shell\n$ lsblk\n```\n\nChoose the right disk..\n\nIn my case, it is /dev/sda\n\n```shell\n# gdisk /dev/sda\n```\n\n**EFI Partition**\n\nCommand (? for help): `n` - for 'New'\n\nPartition number (1-128, default 1): `Enter`\n\nFirst sector (...): `Enter`\n\nLast sector (...): `+300M` - Stands for 300MB\n\nHex code or GUID (L to show codes, Enter = 8300): `ef00`\n\n**Swap Partition**\n\nCommand (? for help): `n` - for 'New'\n\nPartition number (2-128, default 2): `Enter`\n\nFirst sector (...): `Enter`\n\nLast sector (...): `+1024M` - Stands for 1GB\n\nHex code or GUID (L to show codes, Enter = 8300): `8200`\n\n**Root Partition**\n\nCommand (? for help): `n` - for 'New'\n\nPartition number (3-128, default 3): `Enter`\n\nFirst sector (...): `Enter`\n\nLast sector (...): `Enter`\n\nHex code or GUID (L to show codes, Enter = 8300): `Enter`\n\n**Write**\n\n`w`\n\n#### Disk Formatting\n\n**Check partitions:**\n\n```shell\n$ lsblk\n```\n\n**EFI Partition**\n\n```shell\n# mkfs.fat -F 32 /dev/sda1\n```\n\n**Swap Partition**\n\n```shell\n# mkswap /dev/sda2\n```\n\n**Root Partition**\n\n```shell\n# mkfs.ext4 /dev/sda3\n```\n\n## Mounting\n\n```shell\n# mkdir -p /mnt/boot/efi\n```\n\n```shell\n# mount /dev/sda1 /mnt/boot/efi\n```\n\n```shell\n# swapon /dev/sda2\n```\n\n```shell\n# mount /dev/sda3 /mnt\n```\n\nCheck:\n\n```shell\n$ lsblk\n```\n\n## Installation\n\n```shell\n# pacman -Sy archlinux-keyring\n```\n\n\u003e intel-ucode for intel CPUs, amd-ucode for AMD CPUs\n\n`pacstrap /mnt base linux linux-firmware git networkmanager dhcpcd neovim man-db intel-ucode sudo iwd sof-firmware grub efibootmgr`\n\n## Create File System Table\n\n`genfstab -U /mnt \u003e\u003e /mnt/etc/fstab`\n\n`arch-chroot /mnt`\n\n## Set Zoneinfo\n\n**Find yours:**\n\n```shell\n# ls /usr/share/zoneinfo\n```\n\n```shell\n# ln -sf /usr/share/zoneinfo/Europe/Tallinn /etc/localtime\n```\n\n```sh\n# hwclock --systohc\n```\n\n\n\n```shell\n# vim /etc/locale.gen\n```\n\nUncomment \"en_US.UTF-8 UTF-8\"\n\n\n\n```shell\n# locale-gen\n```\n\n\n\n```shell\n# echo \"LANG=en_UK.UTF-8\" \u003e\u003e /etc/locale.conf\n```\n\n**Keyboard:**\n\n```shell\n# echo \"KEYMAP=en_US\" \u003e\u003e /etc/vconsole.conf\n```\n\n**Hostname file:**\n\n```shell\n# echo \"arch\" \u003e\u003e /etc/hostname\n```\n\n**Optional:**\n\n```shell\n# mkinitcpio -P\n```\n\n**Hosts file:**\n\n```shell\n# echo \"127.0.0.1 localhost\" \u003e\u003e /etc/hosts\n# echo \"::1       localhost\" \u003e\u003e /etc/hosts\n# echo \"127.0.1.1 arch.localdomain arch\" \u003e\u003e /etc/hosts\n```\n\n**Add a root password:**\n\n```shell\n# passwd\n\n\u003cEnter root password\u003e\n```\n\n**Add a user:**\n\n```shell\n# useradd -m -G wheel \u003cusername\u003e\n```\n\n```shell\n# echo \"\u003cusername\u003e ALL=(ALL) ALL\" \u003e\u003e /etc/sudoers.d/\u003cusername\u003e\n```\n\n## GRUB\n\nInstall GRUB:\n\n```shell\n# grub-install\n```\n\n```shell\n# grub-mkconfig -o /boot/grub/grub.cfg\n```\n\n**Check if you can switch users**\n\n```shell\n# su \u003cusername\u003e\n```\n\n## Unmount \u0026 Reboot\n\n```shell\n# exit\n# exit\n# umount -R /mnt\n# reboot\n```\n\n```shell\n# systemctl enable NetworkManager\n# systemctl start NetworkManager\n# nmtui\n```\n\n## DWM\n\n**Update \u0026 download xorg**\n\n```shell\n$ sudo pacman -Syu\n```\n\n```shell\n$ sudo pacman -S xorg xorg-xinit\n```\n\n**Downloading some packages**\n\n```shell\nsudo pacman -S alacritty picom feh firefox dolphin\n```\n\n**Download \u0026 configure DWM**\n\n```shell\n$ cd ~/.config\n[cryp7ic@arch .config]$ git clone https://github.com/cryp7ic/dwm.git\n$ cd dwm\n$ sudo make clean install\n```\n\nSet the alacritty path in **config.def.h**\n\n**dmenu**\n\n```shell\n[cryp7ic@dwm]$ cd ..\n[cryp7ic@.sources]$ git clone https://git.suckless.org/dmenu\n$ cd dmenu\n$ nvim config.def.h\n(Change the font size to 16)\n$ sudo make clean install\n```\n\n**startx**\n\n```shell\n$ nvim .xinitrc\n---\npicom \u0026\ndwm\n```\n\n**Alacritty**\n\nDownload the official alacritty.yml file\n\n```shell\n$ mkdir ~/.config/alacritty\n```\n\nNow move the official .yml file into *~/.config/alacritty*\n\n```shell\n$ mv alacritty.yml ~/.config/alacritty/\n```\n\nConfigure alacritty:\n\n```shell\n$ cd ~/.config/alacritty\n```\n\n```shell\n$ nvim alacritty.yml\nUncomment: \n\nwindow\n\npadding\nx: 15\ny: 15\n\nopacity: 0.5\n\n\nfont\nnormal:\nfamily: Fira Code\nstyle: regular\nsize: 10.0\n```\n\n**fish shell**\n\n```shell\n$ sudo pacman -S fish\n```\n\n```shell\n$ which fish\n/usr/bin/fish\n```\n\n```shell\n$ nvim ~/.config/alacritty/alacritty.yml\nUncomment:\nfish:\nprogram: /usr/bin/fish\nargs:\n- --login\n```\n\n**Wallpapers**\n\n```shell\n$ feh --bg-fill /path/to/file.png\n```\n\nThe file *.fehbg* sets the recently used wallpaper if run.\n\nIf you want to set the wallpaper on start every single time:\n\n```shell\n$ nvim .xinitrc\npicom \u0026\n~/.fehbg \u0026\ndwm\n```\n\n**neofetch**\n\n```shell\n$ nvim .config/fish/config.fish\n\nAdd those lines:\nfunction fish_greeting\n\tneofetch\nend\n```\n\n**sxhkd**\n\nsxhkd is used for hot key management\n\n```shell\n$ sudo pacman -S sxhkd\n$ nvim .config/sxhkdrc\nConfigure it. (i have some functions in github (cryp7ic/dotfiles))\n$ nvim .xinitrc\n\nit should look like this:\nsxhkd -c ~/.config/sxhkdrc \u0026\npicom \u0026\n~/.fehbg \u0026\ndwm\n```\n\n**Date \u0026 time**\n\n```shell\n$ mkdir .scripts\n$ cd .scripts\n$ nvim time.sh\n---\n#!/bin/sh\n\nwhile true; do\n\txsetroot -name \"$(date)\"\n\tsleep 1\ndone\n```\n\n```shell\n$ chmod +x time.sh\n```\n\n```shell\n$ cd ..\n$ nvim .xinitrc\n---\nsxhkd -c ~/.config/sxhkdrc \u0026\n~/.scripts/time.sh \u0026\npicom \u0026\n~/.fehbg \u0026\ndwm\n```\n\n**Audio**\n\n```shell\n$ sudo pacman -S pavucontrol\n```\n\n**Running startx:**\n\n```shell\n$ startx\n```\n\n## Post Install\n\n- Enable paccache.timer to clear the package cache weekl\n- if using an SSD, enable fstrim.timer to discard unused blocks periodically\n- Setup a firewall such as ufw or firewalld\n- Install and configure reflector to frequently update the mirrorlist automatically\n- Enable Parallel Downloads in /etc/pacman.conf\n- Install intel-ucode or amd-ucode microcode depending on your CPU\n- For laptops, setup CPU frequency scaling and optimise battery life with tlp, autocpu-freq, powertop or power-profiles-daemon etc\n- Install a backup kernel like LTS or Zen kernel\n- For NVIDIA users, create a pacman hook to ensure initramfs gets updated on every nvidia or kernel upgrade\n- Install noto-fonts for basic font coverage\n\n```shell\npacman -S papirus-icon-theme arc-gtk-theme network-manager-applet dialog mtools dosfstools  base-devel linux-headers avahi xdg-user-dirs xdg-utils gvfs gvfs-smb  nfs-utils inetutils dnsutils bluez bluez-utils cups hplip alsa-utils  pipewire pipewire-alsa pipewire-pulse pipewire-jack bash-completion rsync acpi acpi_call tlp virt-manager qemu  qemu-arch-extra edk2-ovmf bridge-utils dnsmasq vde2 openbsd-netcat  iptables-nft ipset firewalld nss-mdns acpid  os-prober virtualbox wireshark-qt flameshot discord haruna \n```\n\n**Graphics card drivers**\n\nAMD:\n\n```shell\n$ pacman -S --noconfirm xf86-video-amdgpu\n```\n\nNVIDIA:\n\n```shell\n$ pacman -S --noconfirm nvidia nvidia-utils nvidia-settings nvidia-prime\n```\n\n**Enabling services**\n\n```shell\nsystemctl enable NetworkManager\nsystemctl enable bluetooth\nsystemctl enable cups.service\nsystemctl enable sshd\nsystemctl enable avahi-daemon\nsystemctl enable tlp\nsystemctl enable reflector.timer\nsystemctl enable fstrim.timer\nsystemctl enable libvirtd\nsystemctl enable firewalld\nsystemctl enable NetworkManager\nsystemctl enable bluetooth\nsystemctl enable cups.service\nsystemctl enable sshd\nsystemctl enable avahi-daemon\nsystemctl enable tlp \nsystemctl enable reflector.timer\nsystemctl enable fstrim.timer\nsystemctl enable libvirtd\nsystemctl enable firewalld\nsystemctl enable acpid\n```\n\nArch Linux (arch.conf)\n\n\u003e **Note:** To enable EFI for a virtual machine using the graphical interface, open the settings of the virtual machine, choose *System* item from the panel on the left and *Motherboard* tab from the right panel, and check the checkbox *Enable EFI (special OSes only)*.\n\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fheimdev%2Farchie","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fheimdev%2Farchie","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fheimdev%2Farchie/lists"}