This commit is contained in:
Till Dieminger
2025-08-31 21:32:04 +02:00
commit cbc1c6dd61
3 changed files with 431 additions and 0 deletions

88
README.md Normal file
View File

@@ -0,0 +1,88 @@
# Arch Setup Scripts
These are heavily build upon [Lukes Auto-Rice Bootstrapping Scripts](https://github.com/LukeSmithxyz/LARBS).
I prefer to have them fully CLI and minimal.
For this to actually work, the dotfiles need to contain all the nessecary stuff to start dwm, and a few other things.
### Minimal Arch Install Guide
Super barebones install, just ot get stuff running fast, mostly summary of [the wiki](https://wiki.archlinux.org/title/Installation_guide). For encryption see [here](https://git.bocken.org/Alexander/mykb/src/branch/master/docs/luks2.md). For other fancy stuff see the Arch Wiki.
1. Boot from Arch ISO
2. Connect to the internet
- `iwctl`
- `device list`
- Assume device name is `wlan0`
- If device or adapter is off
- `device name set-property Powered on`
- `adapter adapter set-property Powered on`
- `station wlan0 scan`
- `station wlan0 get-networks`
- `station wlan0 connect YOUR_SSID`
2. Update the system clock
- `timedatectl`
3. Partition the disks (lets assume `/dev/nvme0n1`)
- `fdisk /dev/nvme0n1`
- Create a new GPT partition table: `g`
- Create new partitions:
- EFI System Partition (ESP): `n`, `+1G`
- SWAP Partition: `n`, `+16G` (or whatever you want)
- Root Partition: `n`, `+100G` (or whatever you want)
- Home Partition: `n`, (rest of the space)
- Write changes: `w`
- Verify partitions: `lsblk`
- Format the partitions:
- `mkfs.fat -F32 /dev/nvme0n1p1` (ESP)
- `mkswap /dev/nvme0n1p2` (SWAP)
- `mkfs.ext4 /dev/nvme0n1p3` (Root)
- `mkfs.ext4 /dev/nvme0n1p4` (Home)
4. Mount the file systems
- `mount /dev/nvme0n1p3 /mnt` (Mount root)
- `mount --mkdir /dev/nvme0n1p1 /mnt/boot` (Mount ESP)
- `mount --mkdir /dev/nvme0n1p4 /mnt/home` (Mount home)
- `swapon /dev/nvme0n1p2` (Enable SWAP)
- Verify mounts: `lsblk`
5. Install essential packages
- `pacstrap -K /mnt base linux linux-firmware base-devel vim networkmanager efibootmgr grub`
- You can add other packages you want here, like `git`, `curl`, etc.
6. Generate fstab (file system table)
- `genfstab -U /mnt >> /mnt/etc/fstab`
- Verify fstab: `cat /mnt/etc/fstab`
7. Chroot into the new System
- `arch-chroot /mnt`
8. Localization
- `ln -sf /usr/share/zoneinfo/Region/City /etc/localtime`
- `hwclock --systohc`
- Edit `/etc/locale.gen` and uncomment your locale, e.g., `en_US.UTF-8 UTF-8`
- `locale-gen`
- `echo "LANG=en_US.UTF-8" > /etc/locale.conf`
- Edit Hostname: `echo "myhostname" > /etc/hostname`
9. Initramfs
- `mkinitcpio -P`
10. Set root password
- `passwd`
11. Bootloader
- `grub-install --target=x86_64-efi --efi-directory=/boot --bootloader-id=GRUB`
- `grub-mkconfig -o /boot/grub/grub.cfg`
12. Enable essential services
- `systemctl enable NetworkManager`
13. Exit chroot and unmount
- `exit`
- `umount -R /mnt`
- `swapoff -a`

229
archSetupScript.sh Normal file
View File

@@ -0,0 +1,229 @@
#!/bin/sh
### LOGGING SETUP ###
LOGFILE="/tmp/larbs-install-$(date +%Y%m%d-%H%M%S).log"
exec > >(tee -a "$LOGFILE") 2>&1
echo "🔧 Logging installation to $LOGFILE"
### CONFIGURABLE OPTIONS ###
dotfilesrepo="https://git.dieminger.ch/TRAAL/dotfiles"
cwd=$(pwd)
progsfile="$cwd/progs.csv"
echo $progsfile
break
aurhelper="paru"
repobranch="master"
export TERM=ansi
### VALIDATE ARGUMENTS ###
if [ $# -ne 2 ]; then
echo "Usage: $0 <username> <password>"
exit 1
fi
name="$1"
pass1="$2"
### FUNCTIONS ###
installpkg() {
pacman --noconfirm --needed -S "$1"
}
error() {
printf "%s\n" "$1" >&2
exit 1
}
adduserandpass() {
echo "Adding user \"$name\"..."
useradd -m -g wheel -s /bin/zsh "$name" 2>/dev/null || {
echo "User already exists. Adding to wheel group and continuing..."
usermod -a -G wheel "$name"
mkdir -p /home/"$name"
chown "$name":wheel /home/"$name"
}
export repodir="/home/$name/.local/src"
mkdir -p "$repodir"
chown -R "$name":wheel "$(dirname "$repodir")"
echo "$name:$pass1" | chpasswd
}
refreshkeys() {
case "$(readlink -f /sbin/init)" in
*systemd*)
pacman --noconfirm -S archlinux-keyring
;;
*)
pacman --noconfirm --needed -S \
artix-keyring artix-archlinux-support
grep -q "^\[extra\]" /etc/pacman.conf || echo "[extra]
Include = /etc/pacman.d/mirrorlist-arch" >> /etc/pacman.conf
pacman -Sy --noconfirm
pacman-key --populate archlinux
;;
esac
}
manualinstall() {
pacman -Qq "$1" && return 0
sudo -u "$name" mkdir -p "$repodir/$1"
sudo -u "$name" git -C "$repodir" clone --depth 1 --single-branch --no-tags -q "https://aur.archlinux.org/$1.git" "$repodir/$1" || {
cd "$repodir/$1" || return 1
sudo -u "$name" git pull --force origin master
}
cd "$repodir/$1" || exit 1
sudo -u "$name" -D "$repodir/$1" makepkg --noconfirm -si || return 1
}
maininstall() {
installpkg "$1"
}
gitmakeinstall() {
progname="${1##*/}"
progname="${progname%.git}"
dir="$repodir/$progname"
sudo -u "$name" git -C "$repodir" clone --depth 1 --single-branch --no-tags -q "$1" "$dir" || {
cd "$dir" || return 1
sudo -u "$name" git pull --force origin master
}
cd "$dir" || exit 1
make
make install
cd /tmp || return 1
}
gitaurinstall(){
git clone "https://aur.archlinux.org/$1.git" "/tmp/$1"
cd "/tmp/$1" || return 1
chown -R "$name":wheel "/tmp/$1"
sudo -u "$name" makepkg --noconfirm -si
cd /tmp || return 1
rm -rf "/tmp/$1"
}
aurinstall() {
echo "$aurinstalled" | grep -q "^$1$" && return 1
sudo -u "$name" $aurhelper -S --noconfirm "$1"
}
pipinstall() {
[ -x "$(command -v "pip")" ] || installpkg python-pip
yes | pip install "$1"
}
installationloop() {
cp $progsfile /tmp/progs.csv
total=$(wc -l </tmp/progs.csv)
aurinstalled=$(pacman -Qqm)
while IFS=, read -r tag program comment; do
n=$((n + 1))
comment="$(echo "$comment" | sed -E 's/^"(.*)"$/\1/')"
case "$tag" in
"A") aurinstall "$program" "$comment" ;;
"G") gitmakeinstall "$program" "$comment" ;;
"P") pipinstall "$program" "$comment" ;;
*) maininstall "$program" "$comment" ;;
esac
done < /tmp/progs.csv
}
putgitrepo() {
[ -z "$3" ] && branch="master" || branch="$repobranch"
dir=$(mktemp -d)
[ ! -d "$2" ] && mkdir -p "$2"
chown "$name":wheel "$dir" "$2"
sudo -u "$name" git -C "$repodir" clone --depth 1 --single-branch --no-tags -q --recursive -b "$branch" --recurse-submodules "$1" "$dir"
sudo -u "$name" cp -rfT "$dir" "$2"
}
vimplugininstall() {
mkdir -p "/home/$name/.config/nvim/autoload"
curl -Ls "https://raw.githubusercontent.com/junegunn/vim-plug/master/plug.vim" > "/home/$name/.config/nvim/autoload/plug.vim"
chown -R "$name:wheel" "/home/$name/.config/nvim"
sudo -u "$name" nvim -c "PlugInstall|q|q"
}
### START INSTALLATION ###
pacman --noconfirm --needed -Sy libnewt || error "Must be run as root on an Arch-based system with internet access."
refreshkeys || error "Failed to refresh keys."
# Required base packages
for x in curl ca-certificates base-devel git ntp zsh; do
installpkg "$x"
done
ntpd -q -g
adduserandpass || error "Could not add user."
[ -f /etc/sudoers.pacnew ] && cp /etc/sudoers.pacnew /etc/sudoers
# Allow passwordless sudo for wheel
trap 'rm -f /etc/sudoers.d/larbs-temp' HUP INT QUIT TERM PWR EXIT
echo "%wheel ALL=(ALL) NOPASSWD: ALL" > /etc/sudoers.d/larbs-temp
# Pacman config
grep -q "ILoveCandy" /etc/pacman.conf || sed -i "/#VerbosePkgLists/a ILoveCandy" /etc/pacman.conf
sed -Ei "s/^#(ParallelDownloads).*/\1 = 5/;/^#Color$/s/#//" /etc/pacman.conf
sed -i "s/-j2/-j$(nproc)/;/^#MAKEFLAGS/s/^#//" /etc/makepkg.conf
# Install AUR helper
gitaurinstall "$aurhelper" || error "Failed to install AUR helper."
$aurhelper -Y --save --devel
# Main install
installationloop
# Dotfiles
putgitrepo "$dotfilesrepo" "/home/$name" "$repobranch"
rm -rf "/home/$name/.git/" "/home/$name/README.md" "/home/$name/LICENSE" "/home/$name/FUNDING.yml"
# Neovim plugins
[ ! -f "/home/$name/.config/nvim/autoload/plug.vim" ] && vimplugininstall
rmmod pcspkr
echo "blacklist pcspkr" > /etc/modprobe.d/nobeep.conf
chsh -s /bin/zsh "$name"
sudo -u "$name" mkdir -p "/home/$name/.cache/zsh/"
dbus-uuidgen > /var/lib/dbus/machine-id
echo "export \$(dbus-launch)" > /etc/profile.d/dbus.sh
# Enable touchpad tap
[ ! -f /etc/X11/xorg.conf.d/40-libinput.conf ] && cat > /etc/X11/xorg.conf.d/40-libinput.conf <<EOF
Section "InputClass"
Identifier "libinput touchpad catchall"
MatchIsTouchpad "on"
MatchDevicePath "/dev/input/event*"
Driver "libinput"
Option "Tapping" "on"
EndSection
EOF
# Enable essential services
systemctl enable --now bluetooth.service
systemctl enable --now cronie.service
systemctl enable --now chronyd.service
# Install vi-increment Zsh plugin
git clone https://github.com/zsh-vi-more/vi-increment /home/$name/.local/src/vi-increment
# sudoers configuration
echo "%wheel ALL=(ALL:ALL) ALL" > /etc/sudoers.d/00-larbs-wheel-can-sudo
echo "%wheel ALL=(ALL:ALL) NOPASSWD: /usr/bin/shutdown,/usr/bin/reboot,/usr/bin/systemctl suspend,/usr/bin/wifi-menu,/usr/bin/mount,/usr/bin/umount,/usr/bin/pacman -Syu,/usr/bin/pacman -Syyu,/usr/bin/pacman -Syyu --noconfirm,/usr/bin/loadkeys,/usr/bin/pacman -Syyuw --noconfirm,/usr/bin/pacman -S -u -y --config /etc/pacman.conf --,/usr/bin/pacman -S -y -u --config /etc/pacman.conf --" > /etc/sudoers.d/01-larbs-cmds-without-password
echo "Defaults editor=/usr/bin/nvim" > /etc/sudoers.d/02-larbs-visudo-editor
mkdir -p /etc/sysctl.d
echo "kernel.dmesg_restrict = 0" > /etc/sysctl.d/dmesg.conf
# Final message
echo "ASS installation completed successfully for user '$name'."
echo "Log in as '$name' and run 'startx' to start your graphical environment."
echo "Full log saved to: $LOGFILE"

114
progs.csv Normal file
View File

@@ -0,0 +1,114 @@
#TAG,NAME IN REPO (or git url),PURPOSE (should be a verb phrase to sound right while installing)
,openssh,"is needed for ssh and scp."
,networkmanager,"manages network connections."
,base-devel,"is needed to compile AUR packages."
,xorg-server,"is the graphical server. This first one may take a while as it pulls many other dependencies first on clean installs."
,xorg-xwininfo,"allows querying information about windows."
,xorg-xinit,"starts the graphical server."
,polkit,"manages user policies."
,libertinus-font,"provides the sans and serif fonts for LARBS."
,ttf-font-awesome,"provides extended glyph support."
,ttf-dejavu,"properly displays emojis."
,ranger,"is an extensive terminal file manager that everyone likes."
A,ueberzugpp,"enables previews in the ranger file manager."
,bc,"is a mathematics language used for the dropdown calculator."
,xorg-xprop,"is a tool for detecting window properties."
,arandr,"allows the user to customize monitor arrangements."
,dosfstools,"allows your computer to access dos-like filesystems."
,libnotify,"allows desktop notifications."
,dunst,"is a suckless notification system."
,calcurse,"terminal-based organizer for interactive and command line use"
,exfat-utils,"allows management of FAT drives."
,xwallpaper,"sets the wallpaper."
,ffmpeg,"can record and splice video and audio on the command line."
,ffmpegthumbnailer,"creates thumbnail previews of video files."
,gnome-keyring,"serves as the system keyring."
A,gtk-theme-arc-gruvbox-git,"gives the dark GTK theme used in LARBS."
,python-qdarkstyle,"provides a dark Qt theme."
,neovim,"a tidier vim with some useful features"
,mpd,"is a lightweight music daemon."
,mpc,"is a terminal interface for mpd."
,mpv,"is the patrician's choice video player."
,man-db,"lets you read man pages of programs."
,ncmpcpp,"a ncurses interface for music with multiple formats and a powerful tag editor."
,newsboat,"is a terminal RSS client."
,noto-fonts,"is an expansive font package."
,noto-fonts-emoji,"is an emoji font."
,ntfs-3g,"allows accessing NTFS partitions."
,wireplumber,"is the audio system."
,pipewire-pulse,"gives pipewire compatibility with PulseAudio programs."
,pulsemixer,"is an audio controller."
A,sc-im,"is an Excel-like terminal spreadsheet manager."
,maim,"can take quick screenshots at your request."
,unclutter,"hides an inactive mouse."
,unzip,"unzips zips."
,lynx,"is a terminal browser also used in LARBS for generating in-terminal previews of websites, emails and HTML files."
,xcape,"gives the special escape/super mappings of LARBS."
,xclip,"allows for copying and pasting from the command line."
,xdotool,"provides window action utilities on the command line."
,yt-dlp,"can download any YouTube video (or playlist or channel) when given the link."
,zathura,"is a pdf viewer with vim-like bindings."
,zathura-pdf-mupdf,"allows mupdf pdf compatibility in zathura."
,poppler,"manipulates .pdfs and gives .pdf previews and other .pdf functions."
,mediainfo,"shows audio and video information and is used in the file browser."
,atool,"manages and gives information about archives."
,fzf,"is a fuzzy finder tool used for easy selection and location of files."
,bat,"can highlight code output and display files and is used to generate previews in the file browser."
,xorg-xbacklight,"enables changing screen brightness levels."
A,zsh-fast-syntax-highlighting-git,"provides syntax highlighting in the shell."
A,task-spooler,"queues commands or files for download."
A,simple-mtpfs,"enables the mounting of cell phones."
A,htop-vim,"is a graphical and colorful system monitor."
G,https://git.dieminger.ch/TRAAL/dwmblocks,"serves as the modular status bar."
G,https://git.dieminger.ch/TRAAL/dmenu,"runs commands and provides a UI for selection."
G,https://git.dieminger.ch/TRAAL/st,"is my custom build of suckless's terminal emulator."
G,https://git.dieminger.ch/TRAAL/dwm,"is the window manager."
G,https://git.dieminger.ch/TRAAL/slock,"is the screen locker."
A,mutt-wizard-git,"is a light-weight terminal-based email system."
,korganizer,"is a calendar and todo list manager that syncs with caldav."
,socat,"is a utility which establishes two byte streams and transfers data between them."
,moreutils,"is a collection of useful unix tools."
,texlive,"LaTex compiler and all it's libraries (big install)"
A,qrcp,"quick and easy file transfers in local networks via per-use self-hosted server"
,ttf-inconsolata,"The best monospace font."
A,pass,"Password manager that uses gpg and git"
,pass-otp,"One time password support for pass"
,qutebrowser,"vim-like browser with large customizability"
,python-adblock,"Brave-like adblocking in qutebrowser"
,firefox, "the browser that just works"
,gomuks,"Terminal based Matrix/Element client"
,rsync,"the smarter `cp`"
A,tremc,"Terminal transmission client for torrents"
,picom,"Window Compositor which allows for gaussian blur effects"
A,pass-git-helper,"Store your git specific logins in pass and automatically retrieve them when needed"
,python-numpy,"Efficient Matrix and array handling in Python"
,python-matplotlib,"Good Python plotting library copying matlabs implementation"
,python-scipy,"Always needed for scientific python"
,shellcheck,"A linter for shellscripts"
,bluez,"you will want bluetooth, right?"
,bluez-utils,"Interact with your bluetooth on the commandline"
A,cronie,"A simple cronjob manager"
,chrony,"Keep time accurately, even with only periodic internet"
A,bthandler,"A dmenu-wrapper for the most-important actions with bluetooth"
A,keynav,"Quick mouse-less navigation"
,zsh-autosuggestions,"Get command suggestions in ZSH"
A,zsh-fast-syntax-highlighting,"Syntax highlighting in ZSH"
,dash,"Probably the fastest strictly POSIX compliant shell"
A,bashbinsh,"Make dash your default /bin/sh, even with updates"
A,ttf-symbola,"Beatuiful monochrome emoji font"
,pacman-contrib,"pactree & co"
,ttf-font-awesome,"lots of useful icons in font-format"
,python-brotli,"do it faster"
,python-cchardet,"do it faster as well"
,zathura-jvu,"DJVU Support for Zathura"
A,xvkbd,"A virtual keyboard used to print primary clipboard by emulating keypresses"
,gimp,"A libre Photoshop equivalent"
,perl-image-exiftool,"Image metadata reading/writing from the command line"
,asp,"Read PKGBUILDs from default repos"
,system-config-printer,"An easy GUI for printer editting"
A,cncndrvcups-lb-bin,"Driver for our printer"
,python-http2,"dependency for calcurse caldav sync"
,texlive-lang,"Latex spelling support for most languages"
,wmctrl,"Control your windows from the commandline"
A,mpv-sponsorblock-minimal-git,"Skip sponsored segments in youtube videos when viewing them in mpv"
A,libxft-bgra-git,"Colored font"
1 #TAG NAME IN REPO (or git url) PURPOSE (should be a verb phrase to sound right while installing)
2 openssh is needed for ssh and scp.
3 networkmanager manages network connections.
4 base-devel is needed to compile AUR packages.
5 xorg-server is the graphical server. This first one may take a while as it pulls many other dependencies first on clean installs.
6 xorg-xwininfo allows querying information about windows.
7 xorg-xinit starts the graphical server.
8 polkit manages user policies.
9 libertinus-font provides the sans and serif fonts for LARBS.
10 ttf-font-awesome provides extended glyph support.
11 ttf-dejavu properly displays emojis.
12 ranger is an extensive terminal file manager that everyone likes.
13 A ueberzugpp enables previews in the ranger file manager.
14 bc is a mathematics language used for the dropdown calculator.
15 xorg-xprop is a tool for detecting window properties.
16 arandr allows the user to customize monitor arrangements.
17 dosfstools allows your computer to access dos-like filesystems.
18 libnotify allows desktop notifications.
19 dunst is a suckless notification system.
20 calcurse terminal-based organizer for interactive and command line use
21 exfat-utils allows management of FAT drives.
22 xwallpaper sets the wallpaper.
23 ffmpeg can record and splice video and audio on the command line.
24 ffmpegthumbnailer creates thumbnail previews of video files.
25 gnome-keyring serves as the system keyring.
26 A gtk-theme-arc-gruvbox-git gives the dark GTK theme used in LARBS.
27 python-qdarkstyle provides a dark Qt theme.
28 neovim a tidier vim with some useful features
29 mpd is a lightweight music daemon.
30 mpc is a terminal interface for mpd.
31 mpv is the patrician's choice video player.
32 man-db lets you read man pages of programs.
33 ncmpcpp a ncurses interface for music with multiple formats and a powerful tag editor.
34 newsboat is a terminal RSS client.
35 noto-fonts is an expansive font package.
36 noto-fonts-emoji is an emoji font.
37 ntfs-3g allows accessing NTFS partitions.
38 wireplumber is the audio system.
39 pipewire-pulse gives pipewire compatibility with PulseAudio programs.
40 pulsemixer is an audio controller.
41 A sc-im is an Excel-like terminal spreadsheet manager.
42 maim can take quick screenshots at your request.
43 unclutter hides an inactive mouse.
44 unzip unzips zips.
45 lynx is a terminal browser also used in LARBS for generating in-terminal previews of websites, emails and HTML files.
46 xcape gives the special escape/super mappings of LARBS.
47 xclip allows for copying and pasting from the command line.
48 xdotool provides window action utilities on the command line.
49 yt-dlp can download any YouTube video (or playlist or channel) when given the link.
50 zathura is a pdf viewer with vim-like bindings.
51 zathura-pdf-mupdf allows mupdf pdf compatibility in zathura.
52 poppler manipulates .pdfs and gives .pdf previews and other .pdf functions.
53 mediainfo shows audio and video information and is used in the file browser.
54 atool manages and gives information about archives.
55 fzf is a fuzzy finder tool used for easy selection and location of files.
56 bat can highlight code output and display files and is used to generate previews in the file browser.
57 xorg-xbacklight enables changing screen brightness levels.
58 A zsh-fast-syntax-highlighting-git provides syntax highlighting in the shell.
59 A task-spooler queues commands or files for download.
60 A simple-mtpfs enables the mounting of cell phones.
61 A htop-vim is a graphical and colorful system monitor.
62 G https://git.dieminger.ch/TRAAL/dwmblocks serves as the modular status bar.
63 G https://git.dieminger.ch/TRAAL/dmenu runs commands and provides a UI for selection.
64 G https://git.dieminger.ch/TRAAL/st is my custom build of suckless's terminal emulator.
65 G https://git.dieminger.ch/TRAAL/dwm is the window manager.
66 G https://git.dieminger.ch/TRAAL/slock is the screen locker.
67 A mutt-wizard-git is a light-weight terminal-based email system.
68 korganizer is a calendar and todo list manager that syncs with caldav.
69 socat is a utility which establishes two byte streams and transfers data between them.
70 moreutils is a collection of useful unix tools.
71 texlive LaTex compiler and all it's libraries (big install)
72 A qrcp quick and easy file transfers in local networks via per-use self-hosted server
73 ttf-inconsolata The best monospace font.
74 A pass Password manager that uses gpg and git
75 pass-otp One time password support for pass
76 qutebrowser vim-like browser with large customizability
77 python-adblock Brave-like adblocking in qutebrowser
78 firefox the browser that just works
79 gomuks Terminal based Matrix/Element client
80 rsync the smarter `cp`
81 A tremc Terminal transmission client for torrents
82 picom Window Compositor which allows for gaussian blur effects
83 A pass-git-helper Store your git specific logins in pass and automatically retrieve them when needed
84 python-numpy Efficient Matrix and array handling in Python
85 python-matplotlib Good Python plotting library copying matlabs implementation
86 python-scipy Always needed for scientific python
87 shellcheck A linter for shellscripts
88 bluez you will want bluetooth, right?
89 bluez-utils Interact with your bluetooth on the commandline
90 A cronie A simple cronjob manager
91 chrony Keep time accurately, even with only periodic internet
92 A bthandler A dmenu-wrapper for the most-important actions with bluetooth
93 A keynav Quick mouse-less navigation
94 zsh-autosuggestions Get command suggestions in ZSH
95 A zsh-fast-syntax-highlighting Syntax highlighting in ZSH
96 dash Probably the fastest strictly POSIX compliant shell
97 A bashbinsh Make dash your default /bin/sh, even with updates
98 A ttf-symbola Beatuiful monochrome emoji font
99 pacman-contrib pactree & co
100 ttf-font-awesome lots of useful icons in font-format
101 python-brotli do it faster
102 python-cchardet do it faster as well
103 zathura-jvu DJVU Support for Zathura
104 A xvkbd A virtual keyboard used to print primary clipboard by emulating keypresses
105 gimp A libre Photoshop equivalent
106 perl-image-exiftool Image metadata reading/writing from the command line
107 asp Read PKGBUILDs from default repos
108 system-config-printer An easy GUI for printer editting
109 A cncndrvcups-lb-bin Driver for our printer
110 python-http2 dependency for calcurse caldav sync
111 texlive-lang Latex spelling support for most languages
112 wmctrl Control your windows from the commandline
113 A mpv-sponsorblock-minimal-git Skip sponsored segments in youtube videos when viewing them in mpv
114 A libxft-bgra-git Colored font