An open API service indexing awesome lists of open source software.

https://github.com/arcbjorn/arc-robust-arch-linux-installation-guide

Arch linux installation guide (Xorg): btrfs, pipewire, i3-gaps, lightdm, rofi, dunst, kitty, polybar
https://github.com/arcbjorn/arc-robust-arch-linux-installation-guide

archlinux btrfs dunst i3-gaps kitty lightdm pipewire polybar rofi

Last synced: about 1 year ago
JSON representation

Arch linux installation guide (Xorg): btrfs, pipewire, i3-gaps, lightdm, rofi, dunst, kitty, polybar

Awesome Lists containing this project

README

          

# Arch linux installation guide (robust)

This guide is a convenient combination of [Offical Arch Linux Installation Guide](https://wiki.archlinux.org/title/Installation_guide) and [Ermanno's amazing guide](https://gitlab.com/eflinux/arch-basic).

**Important:** This is an installation for a robust Archlinux system. For more intresting installation (Wayland, ZRAM, etc.), please refer to my [Arch linux installation guide](https://github.com/arcbjorn/arc-arch-linux-installation-guide) with the latest & greatest tools available (2021).

### Minimal archlinux installation

1-10 steps

- [BTRFS filesystem](https://btrfs.wiki.kernel.org/index.php/Main_Page)
- [Pipewire](https://pipewire.org/)

### For full Desktop GUI

11 step

Minimal Desktop GUI installation (Xorg):

- [i3-gaps](https://github.com/Airblader/i3) (Window manager)
- [lightdm](https://github.com/canonical/lightdm) (Login manager)
- [picom](https://github.com/yshui/picom) (Window compositor)
- [rofi](https://github.com/davatorium/rofi) (App Launcher)
- [dunst](https://github.com/dunst-project/dunst) (System notifications manager)
- [lxappearance](https://archlinux.org/packages/community/x86_64/lxappearance/) (Theme customization)
- [python-pywal](https://github.com/dylanaraps/pywal) (Theme color generator)
- [nitrogen](https://github.com/l3ib/nitrogen) (Wallpaper manager)
- [pcmanfm-qt](https://github.com/lxqt/pcmanfm-qt) (File manager)
- [pass](https://www.passwordstore.org/) (Password manager)
- [kitty](https://github.com/kovidgoyal/kitty) (Terminal emulator)
- [neofetch](https://github.com/dylanaraps/neofetch) (CLI to display system specs)

- [polybar](https://github.com/polybar/polybar) (Status bar)
- [betterlockscreen](https://github.com/pavanjadhaw/betterlockscreen) (Lockscreen)
- [timeshift](https://github.com/teejee2008/timeshift) (System backup & restore tool)
- [firefox-developer-edition](https://www.mozilla.org/en-US/firefox/developer/) (Mozilla Firefox browser)

### Installation

1. Boot from USB drive with Arch ISO

2. Prepare the disk (partitions) - using GPT device

```bash
# check the disks
lsblk

# partition the disk - create GPT Labels
gdisk /dev/***

# 1st Partition for EFI
# choose new GPT Label command:
o
# choose new command:
n
# choose default partition number
# choose default First Sector memory
# choose Last Sector memory:
+550M
# enter the EFI partition code:
ef00

# 2nd Partition for main SSD storage
# choose new command
n
# choose default partition number
# choose default First Sector memory
# choose Last Sector memory:
+2G
# enter the Linux swap partition code:
8200

# 3d Partition for main SSD storage
# choose new command
n
# choose default partition number
# choose default First Sector memory
# choose default Last Sector memory
# choose default partition type (Linux Filesystem)

# Choose "write" command to overwrite exiting partitions:
w
```

3. Format partitions (create filesystems)

```bash
# make fat32 filesystem for EFI
mkfs.fat -F32 /dev/***p1

# make linux swap filesystem Swap
mkswap /dev/***p2
swapon /dev/***p2

# make butterFS filesystem for main storage
# -f if needed
mkfs.btrfs /dev/***p3
```

3. ButterFS configuration

```bash
# mount main partition - root subvolume
mount /dev/***p3 /mnt

cd /mnt
# make btrFS subvolume for root subvolume
btrfs subvolume create @
# make btrFS subvolume for home subvolume
btrfs subvolume create @home
# make btrFS subvolume for var subvolume
btrfs subvolume create @var

cd
# unmount main partition - root subvolume
umount /mnt

# mount root subvolume
mount -o noatime,compress=zstd,space_cache,discard=async,subvol=@ /dev/***p3 /mnt

# directories var, home & var
mkdir -p /mnt/boot/efi
mkdir /mnt/{home,var}

# mount home & var subvolumes
mount -o noatime,compress=zstd,space_cache,discard=async,subvol=@home /dev/***p3 /mnt/home

mount -o noatime,compress=zstd,space_cache,discard=async,subvol=@var /dev/***p3 /mnt/var
```

4. Mount EFI partition

```bash
mount /dev/***1 /mnt/boot/efi
```

5. Install the base linux packages

```bash
# for amd processor: amd-ucode instead of intel-ucode
pacstrap /mnt base linux linux-firmware git vim intel-ucode btrfs-progs
```

6. Generate filesystem table

```bash
# -U : use UUIDs of block devices
genfstab -U /mnt >> /mnt/etc/fstab
```

7. Make new root directory with all mounts needed

```bash
# detach from main filesystem and process tree
arch-chroot /mnt

# check the fs & table
ls
cat /etc/fstab
```

8. Run base archlinux system intall script

```bash
# give exec permissions to script
git clone https://github.com/arcbjorn/arc-robust-arch-linux-installation-guide
cd arc-arch-linux-installation-guide
# don't forget to change username & password to yours :)
chmod +x base.sh

# run from root filesystem
cd /
./arc-robust-arch-linux-installation-guide/base.sh

# choose xdr-desktop-portal-gtk (to use with i3wm)
```

9. Check system init config

```bash
vim /etc/mkinitcpio.conf
# if butterFS used on 2 disks - put "btrfs" parameter in MODULES
# if amd or nvidia card is used - put "amdgpu" or "nvidia" parameters in MODULES accordingly

# if config was changed, recreate initramfs:
mkinitcpio -p linux
```

10. Finish base packages installation

```bash
exit
umount -a
reboot
```

11. Install Desktop GUI & tools

```bash
# copy the guide from root filesystem to home repository
cp -r /arc-robust-arch-linux-installation-guide .
cd /arc-robust-arch-linux-installation-guide

# give exec permissions to script
chmod +x i3wm.sh

# go back to home directory
cd ..
./arc-robust-arch-linux-installation-guide/sway.sh

reboot
```

### Enjoy your fresh system :)