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
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
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
the sda numbers can be different
mkfs.btrfs /dev/sda1 #linux filesystem
mkswap /dev/sda3 #linux swap
swapon /dev/sda3
mount /dev/sda1 /mnt #linux filesystem
mkdir /mnt/{boot,home}
mount /dev/sda2 /mnt/boot #this should be the EFI partition
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
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.
hostnamectl set-hostname archbox
or
echo archbox >> /mnt/etc/hostname
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.
genfstab -U -p /mnt > /mnt/etc/fstab
arch-chroot /mnt /bin/bash
passwd root
This sets timezone assuming central time. Change according to your local timezone.
ln -s /usr/share/zoneinfo/America/Chicago /etc/localtime
hwclock --systohc
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
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
This is to make sure your ethernet works when you boot into ur arch.
systemctl enable dhcpcd
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.
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
pacman -Syu
pacman -S sudo
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.
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
sudo pacman -S git wget curl
pacman -S fakeroot jshon make pkg-config autoconf automake patch
git clone https://aur.archlinux.org/paru.git
cd paru
makepkg -si
cd ..
rm -rf paru
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
paru -S neofetch
paru -S xorg xterm xorg-twm xorg-xclock
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
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
paru -S bluez bluez-utils blueman
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.
- Installing neovim and configuring neovim.
- TODO: Will update dotfile install script in the future to add neovim config.