Skip to content

Latest commit

 

History

History
executable file
·
344 lines (284 loc) · 10.3 KB

README.md

File metadata and controls

executable file
·
344 lines (284 loc) · 10.3 KB

Arch Linux and Awesome WM Install Notes

So this install covers a fresh Arch Install with windows 10 duel boot. This is installed using UEFI instead of BIOS. It should work the same just without an EFI boot partition and the /mnt/boot mount.

Make sure you install Windows Before Arch. That way you don't pull your hair out.

Also if dual booting with Windows 11 make sure that your EFI partition is large enough. How to Partition During Windows Install

Table of Contents

  1. Pre Install
    1. Network Configuration
    2. Partitioning Disks
    3. Formating Disk Partitioning
    4. Mount the File System
    5. OPTIONAL: Change mirror list
  2. Installing Arch
  3. Configure the System
    1. Change Hostname
    2. Set Keyboard Layout
    3. Generate fstab
    4. Setup Root Password
    5. Setup Timezone
    6. Setup Locale
    7. Install Grub (Bootloader)
    8. Enable dhcpcd
    9. Reboot Into Installed Media
    10. Making Windows Visable to Grub
  4. Post Install
    1. Installing Sudo
    2. Setup User
    3. Setup Graphics
    4. Instal Build Utilities
    5. Install Paru (Package Manager)
    6. Setup Audio with Pulseaudio
    7. Install Neofetch
    8. Installing xorg
    9. Setup Awesome (Window Manager)
    10. Installing Lightdm
  5. Startup GUI

Pre Installation

1. Network configuration

If using Ethernet you can skip this step.

Most laptops usually come with an atheros wifi chipset included. If that's the case, use wifi-menu

wifi-menu
ping 8.8.8.8

if not will need to use ethernet to setup wifi.

To setup wifi download the following

pacman -S iwd
sudo systemctl enable iwd.service
sudo systemctl start iwd.service

# Add to groups to use
# groupadd wheel netdev

# Run the following to find and connect to wifi.
# Refrence the arch wiki for commands
iwctl

# after connecting check connection without ethernet connection
ping 8.8.8.8

2. Partitioning Disks

Make Swap and Linux Filesystem

partition scheme should be the following

partitions
efi partition created by windows
linux swap should be 2x size of memory
linux filesystem remaining available space
cfdisk

3. Formating disk partitions

the sda numbers can be different

mkfs.btrfs /dev/sda1 #linux filesystem
mkswap /dev/sda3     #linux swap
swapon /dev/sda3

4. Mount the file System

mount /dev/sda1 /mnt      #linux filesystem
mkdir /mnt/{boot,home}
mount /dev/sda2 /mnt/boot #this should be the EFI partition

5. Change mirror list - can skip see below

Top 3 mirrors

Mirrors
mirrors.unixheads.org
mirror.neotuli.net
mirror.rit.edu

However this step is largely useless. Once connected to internet reflector will update mirror list automaticallly

To change enter command:

vim /etc/pacman.d/mirrorlist

Installation

Going to install archlinux base, linux and tools such as vim and vi.

pacstrap /mnt base base-devel linux linux-firmware vim vi

So after installing Arch, we need to configure the system and install our desktop enviroment.

Configure the system

1. Change hostname

hostnamectl set-hostname archbox

or

echo archbox >> /mnt/etc/hostname

2. SetKeyboard Layout

Keyboard is preset to US,so no change needed. However, if you want to know how to change to non-US keyboards check out Arch Wiki for Details.

3. Generate fstab

genfstab -U -p /mnt > /mnt/etc/fstab

4. Change to root and change root password

arch-chroot /mnt /bin/bash
passwd root

5. Setting timezone

This sets timezone assuming central time. Change according to your local timezone.

ln -s /usr/share/zoneinfo/America/Chicago /etc/localtime
hwclock --systohc

6. Setting locale

Uncomment en_US.UTF-8 UTF-8 and other needed localizations in /etc/locale.gen, and generate them.

vim /etc/locale.gen
locale-gen

touch /etc/locale.conf                       # Create config locale file
echo "LANG=en_US.UTF-8" >> /etc/locale.confi #Add our locale to config file

7. Installing Grub (Our Bootloader)

Make sure that your efi partition is mounted to /mnt/boot. if not run the command mount /dev/sda# /mnt/boot where # is your efi boot partition number.

arch-chroot /mnt
pacman -S grub efibootmgr #Installing grub and efibootmgr

mkdir /boot/EFI/
grub-install --target=x86_64-efi --efi-directory=/boot --bootloader-id=GRUB

grub-mkconfig -o /boot/grub/grub.cfg

8. Enable dhcpcd

This is to make sure your ethernet works when you boot into ur arch.

systemctl enable dhcpcd

9. Reboot into installed media

umount -R unmounts the installed media recursivly. So both /mnt/home /mnt/boot and /mnt would be unmounted.

exit
umount -R /mnt
swapoff /dev/sda3
reboot

On reboot windows isn't present but don't worry it will after some configuration.

10. Making Windows visable to grub

In order to make windows visable in grub bootloader you need a package called OS-Prober. Install and set GRUB_DISABLE_OS_PROBER to false:

pacman -S os-prober
vim /etc/default/grub #UNCOMMENT GRUB_DISABLE_OS_PROBER=false

Now we have to update grub.cfg and reboot to check if windows appear.

grub-mkconfig -o /boot/grub/grub.cfg
reboot

Post Installation ==> Installing Awesome WM and Light Display Manager

1. Updating Pacman and installing sudo

pacman -Syu
pacman -S sudo

2. Setup user

This user will be using zsh as the main shell. Insert the name of your user instead of <NameOfUserHere>.

groupadd sudo
pacman -S zsh
useradd -m -g sudo -s /bin/zsh <NameOfUserHere>
passwd <NameOfUserHere>
visudo # give user sudo privlages

when doing visudo make sure to uncomment the %sudo line. Log out and login to new user; in my case abas.

3. Xorg utilities and video drivers

xf86-video-vesa has the nvideo drivers for GTX graphic cards. IE GTX3080. Make sure that urs matches.

sudo pacman -S xorg xorg-server xorg-server xorg-xinit xorg-apps mesa
sudo pacman -S xf86-video-nouveau nvidia

4. Build utilities

sudo pacman -S git wget curl 
pacman -S fakeroot jshon make pkg-config autoconf automake patch

5. Installing Paru and all of it's dependencies

git clone https://aur.archlinux.org/paru.git
cd paru
makepkg -si
cd ..
rm -rf paru 

6. Pipewire and Alsa sound utilities

Helvum is our frontend for managing our audio input/output. Add Pulseaudio plugin to Pipewire. Many applications require Pulseaudio.

paru -S alsa-lib alsa-utils alsa-oss alsa-plugins
paru -S pipewire pipewire-audio pipewire-alsa pipewire-pulse
paru -S qpwgraph pavucontrol

7. Installing neofetch

paru -S neofetch

8. Installing xorg

paru -S xorg xterm xorg-twm xorg-xclock

9. Installing and setting up awesome

The ttf installes are fonts for awesome. when changing ~/.xinitrc make it match the .xinitrc file on github.

paru -S awesome
paru -S ttf-droid ttf-dejavu ttf-liberation

This is where you install your dotfiles and configuration for themes and enviroment. Feel free to install your own dotfiles below.

If you want a place to start you can use my dotfiles.

mkdir ~/.config
mkdir ~/.config/awesome
mkdir ~/.config/termite
paru -S zsh-syntax-highlighting ttf-meslo-nerd-font-powerlevel10k zsh-theme-powerlevel10k
/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/abasnfarah/dotfiles/main/Install)"
paru -S rxvt-unicode pcmanfm

10. Installing slim as our login manager

paru -S slim
git clone https://github.com/adi1090x/slim_themes
cp -r slim_themes/themes/* /usr/share/slim/themes/
rd slim_themes
sudo systemctl enable slim.service

11. Installing bluetooth server and frontend

paru -S bluez bluez-utils blueman

Start up your GUI to see the magic

startx

To manage bluetooth run the following from awesome GUI terminal

bluetooth-manager

To manage speakers or audio

pavucontrol

# OR 

qpwgraph

The next steps from here will be to customize your setup.

Future updates:

  1. Installing neovim and configuring neovim.
  2. TODO: Will update dotfile install script in the future to add neovim config.

Time to Build