commit dce4867e0bf87432d301386bdc7285a35223fcb1
Author: Markus Hanetzok <markus@hanetzok.net>
Date: Mon, 6 Oct 2025 23:37:32 +0200
initial commit
Diffstat:
A | README | | | 8 | ++++++++ |
A | aur.list | | | 4 | ++++ |
A | post-install.sh | | | 128 | +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ |
A | progs.list | | | 88 | +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ |
4 files changed, 228 insertions(+), 0 deletions(-)
diff --git a/README b/README
@@ -0,0 +1,8 @@
+archsetup
+=========
+Very basic bootstrapping script for Arch Linux.
+
+
+Usage
+-----
+Adjust the variables in post-install.sh and run it with root privileges.
diff --git a/aur.list b/aur.list
@@ -0,0 +1,4 @@
+zsh-syntax-highlighting-git
+heroic-games-launcher
+xdg-ninja
+ttf-font-awesome-5
diff --git a/post-install.sh b/post-install.sh
@@ -0,0 +1,128 @@
+#!/bin/sh
+
+set -e
+
+# variables used in the script
+user="markus"
+hostname="totoro"
+tz="Europe/Berlin"
+locale="de_DE.UTF-8"
+suckless="git://git.hanetzok.net"
+
+### functions
+
+slinstall() {
+ sudo -u "$user" git clone "$suckless"/"$1" /home/"$user"/src/"$1"
+ cd /home/"$user"/src/"$1"
+ sudo -u "$user" make && make install
+}
+
+if [ "$EUID" -ne 0 ]
+ then echo "Please run as root"
+ exit
+fi
+
+# enable multilib repo and run system update
+echo "[multilib]" >> /etc/pacman.conf
+echo "Include = /etc/pacman.d/mirrorlist" >> /etc/pacman.conf
+pacman -Syu --noconfirm --needed zsh
+
+cp ./progs.list /tmp
+cp ./aur.list /tmp
+cd /tmp
+
+echo "Set root password..."
+passwd
+
+# user creation
+echo "Add user..."
+useradd -m -G wheel -s /usr/bin/zsh $user
+echo "%wheel ALL=(ALL:ALL) ALL" >> /etc/sudoers
+echo "Set user password..."
+passwd markus
+
+# timezone & locale
+echo "Set timezone and locale..."
+echo "$locale UTF-8" >> /etc/locale.gen
+locale-gen
+echo "LANG=$locale" >> /etc/locale.conf
+ln -sf /usr/share/zoneinfo/"$tz" /etc/localtime
+
+# set hostname
+echo "$hostname" > /etc/hostname
+
+# delete comments from progs.list
+sed '/^#/d' progs.list > ./progscleared.list
+
+# install packages
+echo "Installing packages from the official repos..."
+while IFS=$'\n' read -r prog; do
+ echo "Installing $prog..."
+ pacman --noconfirm --needed -S "$prog" > /dev/null
+done < ./progscleared.list
+
+rm ./progscleared.list
+
+# check if yay is already installed
+if ! hash yay
+then
+ echo "Download and install yay..."
+ git clone https://aur.archlinux.org/yay-bin /opt/yay-bin
+ chown "$user":"$user" -R /opt/yay-bin
+ cd /opt/yay-bin
+ sudo -u "$user" makepkg -si > /dev/null
+ cd /tmp
+fi
+
+# install GRUB (UEFI)
+echo "Install grub..."
+grub-install --target=x86_64-efi --efi-directory=/boot --bootloader-id=GRUB > /dev/null
+grub-mkconfig -o /boot/grub/grub.cfg > /dev/null
+
+# set GRUB theme
+git clone https://github.com/dracula/grub.git /tmp/grub
+mv /tmp/grub/dracula /boot/grub/themes
+echo "GRUB_THEME=/boot/grub/themes/dracula/theme.txt" >> /etc/default/grub
+grub-mkconfig -o /boot/grub/grub.cfg
+
+# set ZDOTDIR in zshenv to keep $HOME clean(er)
+echo 'export ZDOTDIR="$HOME/.config/zsh"' >> /etc/zsh/zshenv
+
+# disable hardware speaker bell
+rmmod pcspkr
+echo "blacklist pcspkr" > /etc/modprobe.d/nobeep.conf
+
+# dotfiles
+echo "Get dotfiles..."
+rm -f /home/$user/.bash*
+git clone git://git.hanetzok.net/dotfiles /tmp/dotfiles
+cp -r /tmp/dotfiles/.* /home/$user/
+chown $user:$user -R /home/$user
+
+# install stuff via git
+git clone "https://github.com/alexwlchan/dominant_colours.git" /tmp/dominant_colours
+chown "$user":"$user" /tmp/dominant_colours && cd /tmp/dominant_colours
+sudo -u "$user" rustup default stable
+sudo -u "$user" cargo install --path .
+
+# install suckless suite
+sudo -u "$user" mkdir /home/"$user"/src
+slinstall dwm
+slinstall st
+slinstall dmenu
+
+
+# misc
+echo "auth optional pam_gnome_keyring.so">> /etc/pam.d/login
+echo "session optional pam_gnome_keyring.so auto_start" >> /etc/pam.d/login
+
+systemctl enable NetworkManager
+systemctl enable cups
+
+# install from AUR
+clear
+echo "Installing packages from the AUR - User interaction needed!"
+while IFS='\n' read -r aur; do
+ echo "Installing $aur..."
+ sudo -u "$user" yay -S $prog > /dev/null
+done < ./aur.list
diff --git a/progs.list b/progs.list
@@ -0,0 +1,88 @@
+### ESSENTIALS ###
+arandr
+bc
+cronie
+dunst
+efibootmgr
+fzf
+git
+gnome-keyring
+grub
+htop
+keepassxc
+libgnome-keyring
+libnotify
+lynx
+maim
+man-db
+moreutils
+networkmanager
+neovim
+nsxiv
+ntp
+openssh
+ranger
+rustup
+ueberzug
+unclutter
+zsh
+### INTERNET ###
+firefox
+thunderbird
+### PRINTER SUPPORT ###
+cups
+hplip
+system-config-printer
+### GRAPHICS & VIDEO ###
+gimp
+imagemagick
+lib32-mesa
+lib32-vulkan-mesa-layers
+lib32-vulkan-radeon
+mesa
+mpv
+vulkan-radeon
+xf86-video-amdgpu
+### AUDIO & MUSIC ###
+mpc
+mpd
+pipewire-pulse
+pulsemixer
+ncmpcpp
+wireplumber
+### FS UTILS ###
+dosfstools
+exfat-utils
+ntfs-3g
+ntfsprogs
+nfs-utils
+### OFFICE STUFF ###
+libreoffice-fresh-de
+poppler
+zathura
+zathura-pdf-mupdf
+### MISC ###
+atool
+borg
+dos2unix
+fastfetch
+lutris
+mediainfo
+rsync
+### WINE ###
+wine
+wine-gecko
+wine-mono
+### XORG ###
+xcape
+xclip
+xcompmgr
+xorg-server
+xorg-xdpyinfo
+xorg-xev
+xorg-xinit
+#xorg-xsetroot
+hsetroot
+### FONTS ###
+ttf-liberation
+ttf-jetbrains-mono