Merge remote-tracking branch 'arch-setup/master'

This commit is contained in:
RealStickman 2023-05-21 14:12:48 +02:00
commit 622f0873a3
16 changed files with 2300 additions and 0 deletions

21
arch-setup/LICENSE Normal file
View File

@ -0,0 +1,21 @@
MIT License
Copyright (c) 2021 RealStickman
Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal
in the Software without restriction, including without limitation the rights
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
copies of the Software, and to permit persons to whom the Software is
furnished to do so, subject to the following conditions:
The above copyright notice and this permission notice shall be included in all
copies or substantial portions of the Software.
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
SOFTWARE.

6
arch-setup/Notes.md Normal file
View File

@ -0,0 +1,6 @@
download wireguard config and unzip
copy/move wireguard mullvad config
Timeshift packages:
`timeshift`
`grub-btrfs`

3
arch-setup/README.md Normal file
View File

@ -0,0 +1,3 @@
# Arcolinux Setup
Installation and setup for arcolinux

View File

@ -0,0 +1,53 @@
#!/usr/bin/env python
import os,re, datetime
d = '/var/lib/pacman/local'
packages = os.listdir(d)
packages.sort()
packages.remove('ALPM_DB_VERSION')
pkgname_search = re.compile('^(.*?)-[0-9]')
old_packages = []
for pkg1 in packages:
if pkg1 in old_packages:
continue
#get package name
matches = pkgname_search.findall(pkg1)
print(pkg1)
if matches == []:
continue
pkgname = matches[0]
#look for other items with the same package name
for pkg2 in packages:
if pkg2 == pkg1:
continue
if pkg2 in old_packages:
continue
if pkgname == pkgname_search.findall(pkg2)[0]:
# We now have two duplicate packages, we want to delete the old one
old_package = pkg1
path1 = os.path.join(d,pkg1)
path2 = os.path.join(d,pkg2)
if os.stat(path1).st_mtime > os.stat(path2).st_mtime:
old_package = pkg2
old_packages.append(old_package)
#print ('duplicate found:\t')
#print (pkg1)
#print (pkg2)
#print ('old:', old_package)
oldpath = os.path.join(d,old_package)
target = os.path.join('/var/lib/pacman/OLD',old_package)
cmd = 'mv "%s" "%s"' % (oldpath, target)
#double-check that the oldpath still exists (it may have been removed in a previous pass)
if os.path.exists(oldpath):
print(cmd)
os.system(cmd)

763
arch-setup/install.sh Executable file
View File

@ -0,0 +1,763 @@
#!/bin/bash
# TODO make this work
# NOTE ignore errors from missing "||". Try getting the line below to work
#set -euo pipefail
# get current directory
setupdir=$(pwd)
#change to home (does not show in terminal)
cd "$HOME"
# check if multilib repo is enabled
if ! pacman -Sl multilib &>/dev/null; then
echo "Please enable the multilib repository first"
exit 1
fi
# fix install problems
sudo pacman -Syu
sudo pacman -S --needed python-pip
#in_xfce=0
#in_i3gaps=0
cmd=(dialog --separate-output --checklist "Select Desktop environment/Window manager:" 22 76 16)
options=(0 "[DE] xfce4" off # any option can be set to default to "on"
100 "[WM] i3-gaps" off)
choices=$("${cmd[@]}" "${options[@]}" 2>&1 >/dev/tty)
clear
for choice in $choices; do
case $choice in
0)
#in_xfce=1
echo "xfce4" >>"$setupdir/selectedpkgs.txt"
;;
100)
#in_i3gaps=1
echo "i3-gaps" >>"$setupdir/selectedpkgs.txt"
;;
esac
done
#in_firefox=0
#in_chromium=0
#in_tor=0
cmd=(dialog --separate-output --checklist "Select browsers:" 22 76 16)
options=(0 "Firefox" on # any option can be set to default to "on"
10 "Chromium" off
20 "Torbrowser" off)
choices=$("${cmd[@]}" "${options[@]}" 2>&1 >/dev/tty)
clear
for choice in $choices; do
case $choice in
0)
#in_firefox=1
echo "firefox" >>"$setupdir/selectedpkgs.txt"
;;
10)
#in_chromium=1
echo "chromium" >>"$setupdir/selectedpkgs.txt"
;;
20)
#in_tor=1
echo "torbrowser-launcher" >>"$setupdir/selectedpkgs.txt"
;;
esac
done
#in_virtmanager=0
#in_vmware15=0
#in_steam=0
#in_lutris=0
#in_blender=0
#in_krita=0
#in_youtubedl=0
#in_discord=0
#in_handbrake=0
#in_gimp=0
#in_audacity=0
#in_mangohud=0
#in_liferea=0
#in_fractal=0
#in_bettergram=0
#in_waifu2x=0
#in_telegram=0
#in_element=0
cmd=(dialog --separate-output --checklist "Select other programs:" 22 76 16)
options=(0 "VirtManager" off # any option can be set to default to "on"
1 "VMWare Workstation" off
10 "Steam" off
11 "Lutris" off
12 "Citra" off
13 "Minigalaxy" off
20 "Krita" off
21 "Gimp" off
#30 "Youtube-dl" off
31 "YT-dlp" on
32 "Megatools" off
40 "Handbrake" off
41 "Audacity" off
42 "k3b" off
60 "Discord" on
61 "Element" on
62 "Telegram" on
70 "TestSSL" off
80 "Onedriver" off)
choices=$("${cmd[@]}" "${options[@]}" 2>&1 >/dev/tty)
clear
for choice in $choices; do
case $choice in
0)
#in_virtmanager=1
printf '%s\n' 'qemu' 'virt-manager' 'ebtables' 'dnsmasq' >>"$setupdir/selectedpkgs.txt"
;;
1)
#in_vmware15=1
echo "vmware-workstation" >>"$setupdir/aurselectedpkgs.txt"
;;
10)
#in_steam=1
printf '%s\n' 'steam' 'steam-native-runtime' >>"$setupdir/selectedpkgs.txt"
;;
11)
#in_lutris=1
echo "lutris" >>"$setupdir/selectedpkgs.txt"
;;
12)
echo "citra-qt-git" >>"$setupdir/aurselectedpkgs.txt"
;;
13)
echo "minigalaxy" >>"$setupdir/aurselectedpkgs.txt"
;;
20)
#in_krita=1
echo "krita" >>"$setupdir/selectedpkgs.txt"
;;
21)
#in_gimp=1
echo "gimp" >>"$setupdir/selectedpkgs.txt"
;;
30)
#in_youtubedl=1
echo "youtube-dl" >>"$setupdir/selectedpkgs.txt"
;;
31)
printf '%s\n' 'yt-dlp' 'yt-dlp-drop-in' >>"$setupdir/aurselectedpkgs.txt"
;;
32)
echo "megatools-bin" >>"$setupdir/aurselectedpkgs.txt"
;;
40)
#in_handbrake=1
echo "handbrake" >>"$setupdir/selectedpkgs.txt"
;;
41)
# TODO
#in_audacity=1
#echo "audacity" >> "$setupdir/selectedpkgs.txt"
echo "The situation with audacity is unknown right now. Check for FOSS no-telemetry forks"
;;
42)
printf '%s\n' 'k3b' 'cdparanoia' 'cdrdao' 'cdrtools' 'dvd+rw-tools' 'emovix' 'transcode' 'vcdimager' >>"$setupdir/selectedpkgs.txt"
;;
60)
#in_discord=1
#echo "discord" >> "$setupdir/selectedpkgs.txt"
echo "discord_arch_electron" >>"$setupdir/aurselectedpkgs.txt"
;;
61)
#in_element=1
echo "element-desktop" >>"$setupdir/selectedpkgs.txt"
;;
62)
#in_telegram=1
echo "telegram-desktop" >>"$setupdir/selectedpkgs.txt"
;;
70)
echo "testssl.sh" >>"$setupdir/selectedpkgs.txt"
;;
80)
echo "onedriver" >>"$setupdir/aurselectedpkgs.txt"
;;
esac
done
: '
in_acpufreq=0
cmd=(dialog --separate-output --checklist "Performance and Battery life" 22 76 16)
options=(0 "auto-cpufreq" off)
choices=$("${cmd[@]}" "${options[@]}" 2>&1 >/dev/tty)
clear
for choice in $choices
do
case $choice in
0)
in_acpufreq=1
echo "auto-cpufreq-git" >> "$setupdir/aurselectedpkgs.txt"
# TODO Handle rest of installation
;;
1)
#in_corectrl=1
echo "corectrl" >> "$setupdir/aurselectedpkgs.txt"
;;
esac
done
'
in_doomemacs=0
#in_vscodium=0
in_podman=0
cmd=(dialog --separate-output --checklist "Devtools" 22 76 16)
options=(0 "doom-emacs" off
1 "vscodium" off
10 "Podman" off)
choices=$("${cmd[@]}" "${options[@]}" 2>&1 >/dev/tty)
clear
for choice in $choices; do
case $choice in
0)
in_doomemacs=1
# TODO sort pacman and AUR packages
# pychecker not in AUR anymore
printf '%s\n' 'git' 'emacs' 'ripgrep' 'fd' 'pandoc' 'shellcheck' 'python-pipenv' 'python-isort' 'python-pytest' 'python-rednose' 'pychecker' 'texlive-core' 'pyright' 'python-grip' 'prettier' 'shfmt' >>"$setupdir/aurselectedpkgs.txt"
# TODO handle rest of installation
;;
1)
#in_vscodium=1
echo "vscodium-bin" >>"$setupdir/aurselectedpkgs.txt"
;;
10)
in_podman=1
;;
esac
done
#in_teams=0
#in_slack=0
cmd=(dialog --separate-output --checklist "School and work communication" 22 76 16)
options=(0 "Teams" off
1 "Slack" off
10 "OneNote" off)
choices=$("${cmd[@]}" "${options[@]}" 2>&1 >/dev/tty)
clear
for choice in $choices; do
case $choice in
0)
#in_teams=1
echo "teams" >>"$setupdir/aurselectedpkgs.txt"
;;
1)
#in_slack=1
#echo "slack-desktop" >> "$setupdir/aurselectedpkgs.txt"
echo "slack-electron" >>"$setupdir/aurselectedpkgs.txt"
;;
10)
echo "p3x-onenote" >>"$setupdir/aurselectedpkgs.txt"
;;
esac
done
#in_pkgstats=0
cmd=(dialog --separate-output --checklist "Report installed packages?" 22 76 16)
options=(0 "pkgstats" off)
choices=$("${cmd[@]}" "${options[@]}" 2>&1 >/dev/tty)
clear
for choice in $choices; do
case $choice in
0)
#in_pkgstats=1
echo "pkgstats" >>"$setupdir/selectedpkgs.txt"
;;
esac
done
# Packages installed on different systems
in_arco_pc=0
in_arco_hp=0
cmd=(dialog --separate-output --checklist "Install system specific packages?" 22 76 16)
options=(1 "Arco PC" off
2 "Arco HP" off)
choices=$("${cmd[@]}" "${options[@]}" 2>&1 >/dev/tty)
clear
for choice in $choices; do
case $choice in
1)
in_arco_pc=1
;;
2)
in_arco_hp=1
;;
esac
done
#uninstalling unused packages
echo Uninstalling unused packages
sudo pacman -Rns - <"$setupdir/packages/uninstall.txt"
echo Uninstalled unused packages
# find all repos
sudo pacman -Sy
#update stuff
echo Updating packages
sudo pacman -Syu
echo Updated packages
#pacman programs
echo Installing default pacman programs
sudo pacman -S --needed - <"$setupdir/packages/officialpkgs.txt"
echo Installed official programs
# pip
#echo Installing python programs
#pip install --user autotrash
#echo Installed python programs
# REVIEW Patched neofetch version to remove Color codes
#git clone https://github.com/RealStickman/neofetch
#cd neofetch
#sudo make install
#cd ..
#rm -rf neofetch
# install paru-bin with yay, or download paru from github
if [[ $(pacman -Q | grep yay) ]] && [[ ! $(pacman -Q | grep paru) ]]; then
echo "Installing paru"
yay -S paru-bin
elif [[ ! $(pacman -Q | grep yay) ]] && [[ ! $(pacman -Q | grep paru) ]]; then
echo "Installing paru from git"
git clone https://aur.archlinux.org/paru-bin.git
cd paru-bin
makepkg -si
cd ..
fi
# audio
echo Installing audio programs
paru -S --needed - <"$setupdir/packages/audiopkgs.txt"
echo Installed audio programs
#AUR
echo Installing default AUR programs
paru -S --needed - <"$setupdir/packages/aurpkgs.txt"
echo Installed AUR programs
# theming
echo Installing themes and icons
paru -S --needed - <"$setupdir/packages/theme-packages.txt"
echo Installed themes and icons
#install wine
echo Installing wine
sudo pacman -S --needed - <"$setupdir/packages/winepkgs.txt"
echo Installed wine
###################
#selected programs#
###################
echo Installing selected programs
# install selected packages
echo Installing from official repository
sudo pacman -S --needed - <"$setupdir/selectedpkgs.txt"
# install selected aur packages
echo Installing from AUR
paru -S --needed - <"$setupdir/aurselectedpkgs.txt"
: '
if [ $in_vmware15 -eq 1 ]; then
echo "Installing VMWare Workstation 15"
paru -S --needed vmware-workstation15
else
echo "Skipping VMWare Workstation 15"
fi
'
#DEs & WMs
: '
if [ $in_xfce -eq 1 ]; then
echo "Installing xfce"
sudo pacman -S --needed xfce4
else
echo "Skipping xfce"
fi
'
: '
if [ $in_i3gaps -eq 1 ]; then
echo "Installing i3-gaps"
sudo pacman -S --needed i3-gaps
else
echo "Skipping i3-gaps"
fi
'
: '
#browsers
if [ $in_firefox -eq 1 ]; then
echo "Installing Firefox"
sudo pacman -S --needed firefox
else
echo "Skipping Firefox"
fi
'
: '
if [ $in_chromium -eq 1 ]; then
echo "Installing Chromium"
sudo pacman -S --needed chromium
else
echo "Skipping Chromium"
fi
'
: '
if [ $in_netsurf -eq 1 ]; then
echo "Installing Netsurf"
sudo pacman -S --needed netsurf
else
echo "Skipping Netsurf"
fi
'
: '
if [ $in_icecat -eq 1 ]; then
echo "Installing Icecat"
paru -S --needed icecat-bin
else
echo "Skipping Icecat"
fi
'
: '
if [ $in_tor -eq 1 ]; then
echo "Installing Tor"
sudo pacman -S --needed torbrowser-launcher
else
echo "Skipping Tor"
fi
'
#other programs
: '
if [ $in_virtmanager -eq 1 ]; then
echo "Installing VirtManager"
sudo pacman -S --needed qemu virt-manager
else
echo "Skipping VirtManager"
fi
'
: '
if [ $in_steam -eq 1 ]; then
echo "Installing Steam"
sudo pacman -S --needed steam steam-native-runtime
else
echo "Skipping Steam"
fi
'
: '
if [ $in_lutris -eq 1 ]; then
echo "Installing Lutris"
sudo pacman -S --needed lutris
else
echo "Skipping Lutris"
fi
'
: '
if [ $in_blender -eq 1 ]; then
echo "Installing Blender"
sudo pacman -S --needed blender
else
echo "Skipping Blender"
fi
'
: '
if [ $in_krita -eq 1 ]; then
echo "Installing Krita"
sudo pacman -S --needed krita
else
echo "Skipping Krita"
fi
'
: '
if [ $in_youtubedl -eq 1 ]; then
echo "Installing Youtube-dl"
sudo pacman -S --needed youtube-dl
else
echo "Skipping Youtube-dl"
fi
'
: '
if [ $in_discord -eq 1 ]; then
echo "Installing Discord"
#sudo pacman -S --needed discord
paru -S discord_arch_electron
else
echo "Skipping Discord"
fi
'
: '
if [ $in_handbrake -eq 1 ]; then
echo "Installing Handbrake"
sudo pacman -S --needed handbrake
else
echo "Skipping Handbrake"
fi
'
: '
if [ $in_gimp -eq 1 ]; then
echo "Installing Gimp"
sudo pacman -S --needed gimp
else
echo "Skipping Gimp"
fi
'
: '
if [ $in_audacity -eq 1 ]; then
echo "Installing Audacity"
sudo pacman -S --needed audacity
else
echo "Skipping Audacity"
fi
'
: '
if [ $in_mangohud -eq 1 ]; then
echo "Installing MangoHud"
git clone --recurse-submodules https://github.com/flightlessmango/MangoHud.git
./MangoHud/build.sh install
else
echo "Skipping MangoHud"
fi
'
: '
if [ $in_liferea -eq 1 ]; then
echo "Installing Liferea"
paru -S --needed liferea
else
echo "Skipping Liferea"
fi
'
: '
if [ $in_fractal -eq 1 ]; then
echo "Installing Fractal"
sudo pacman -S --needed fractal
else
echo "Skipping Fractal"
fi
'
: '
if [ $in_bettergram -eq 1 ]; then
echo "Installing Bettergram"
paru -S --needed bettergram
else
echo "Skipping Bettergram"
fi
'
: '
if [ $in_waifu2x -eq 1 ]; then
echo "Installing Waifu2x"
paru -S --needed waifu2x-ncnn-vulkan
else
echo "Skipping Waifu2x"
fi
'
: '
if [ $in_telegram -eq 1 ]; then
echo "Installing Telegram"
sudo pacman -S --needed telegram-desktop
else
echo "Skipping Telegram"
fi
'
: '
if [ $in_element -eq 1 ]; then
echo "Installing Element"
sudo pacman -S --needed element-desktop
else
echo "Skipping Element"
fi
'
: '
#performance and battery life
if [ $in_acpufreq -eq 1 ]; then
echo "Installing auto-cpufreq"
paru -S --needed auto-cpufreq-git
sudo auto-cpufreq --install
sudo systemctl start auto-cpufreq
sudo systemctl enable auto-cpufreq
else
echo "Skipping auto-cpufreq"
fi
'
#devtools
if [ $in_doomemacs -eq 1 ]; then
echo "Installing doom-emacs"
paru -S --needed git emacs ripgrep fd pandoc shellcheck python-pipenv python-isort python-pytest python-rednose pychecker texlive-core powershell-bin python-black
pip install grip
npm i bash-language-server
git clone --depth 1 https://github.com/hlissner/doom-emacs ~/.emacs.d
~/.emacs.d/bin/doom install
export PATH="$PATH":$HOME/.emacs.d/bin
else
echo "Skipping doom-emacs"
fi
: '
if [ $in_vscodium -eq 1 ]; then
echo "Installing vscodium"
paru -S --needed vscodium-bin
else
echo "Skipping vscodium"
fi
'
if [ $in_podman -eq 1 ]; then
echo "Installing podman"
sudo pacman -S --needed podman podman-dnsname fuse-overlayfs buildah
sudo touch /etc/subuid /etc/subgid
sudo usermod --add-subuids 100000-165536 --add-subgids 100000-165536 "$USER"
sudo groupadd -f podman
sudo usermod -aG podman "$USER"
else
echo "Skipping podman"
fi
: '
#other social stuff
if [ $in_teams -eq 1 ]; then
echo "Installing teams"
paru -S --needed teams
else
echo "Skipping teams"
fi
'
: '
if [ $in_slack -eq 1 ]; then
echo "Installing slack"
#paru -S --needed slack-desktop
paru -s --needed slack-electron
else
echo "Skipping slack"
fi
'
: '
#stats
if [ $in_pkgstats -eq 1 ]; then
echo "Installing pkgstats"
sudo pacman -S --needed pkgstats
else
echo "Skipping pkgstats"
fi
'
# other system configs
# arco pc
if [ $in_arco_pc -eq 1 ]; then
echo "Installing arco pc packages"
paru -S --needed - <"$setupdir/packages/lupusregina-packages.txt"
fi
# arco hp
if [ $in_arco_hp -eq 1 ]; then
echo "Installing arch hp packages"
paru -S --needed - <"$setupdir/packages/arch-hp-packages.txt"
fi
# install nix
curl -sSf -L https://install.determinate.systems/nix | sh -s -- install
##############################
##### Configuration #####
##############################
#change shell
chsh -s /usr/bin/fish "$USER"
#enable vnstat
sudo systemctl enable vnstat
sudo systemctl start vnstat
# setup autotrash
autotrash -td 5 --install
systemctl --user start autotrash
systemctl --user enable autotrash.timer
# enable lockscreen for systemd
sudo systemctl enable betterlockscreen@$USER
# enable firewall
echo "Enabling Firewall"
#sudo ufw enable
#sudo systemctl enable ufw
#sudo systemctl start ufw
sudo systemctl enable --now firewalld
sudo firewall-cmd --zone=public --permanent --remove-service=ssh
# enable lightdm
sudo systemctl enable lightdm
# regenerate locale
# Fixes rofi not launching
sudo locale-gen
# update fonts cache
fc-cache -f
# download grub theme
git clone https://github.com/xenlism/Grub-themes.git
cd "Grub-themes/xenlism-grub-arch-1080p/"
sudo bash install.sh
# go back
cd ../../
#Changes to home folder automatically now, no need to be extra careful anymore.
git clone https://gitlab.com/RealStickman-arch/config
echo Finished downloading config
# Download git repos
bash ~/config/scripts/sc-git-pull
#cleanup
rm -rf ~/setup
echo Removed setup files
#downloading config
echo Setting config
bash ~/config/install.sh
if [[ $(pacman -Q pkgstats 2>/dev/null >/dev/null) ]]; then
pkgstats
fi
echo Finished everything
exit 0

View File

@ -0,0 +1,10 @@
alsa-card-profiles
alsa-utils
lib32-libpulse
libcanberra-pulse
libpulse
pavucontrol
pulseaudio
pulseaudio-alsa
pulseaudio-bluetooth
pulseeffects-legacy

View File

@ -0,0 +1,8 @@
alsa-utils
easyeffects
pavucontrol
pipewire
pipewire-alsa
pipewire-jack
pipewire-media-session
pipewire-pulse

View File

@ -0,0 +1,31 @@
autotrash
betterlockscreen
bitwarden
btrfsmaintenance
davfs2
downgrade
ffmpeg-normalize-git
font-manager-git
jellyamp
jellyfin-media-player
joplin-appimage
lib32-mangohud
lightdm-settings
lightdm-slick-greeter
mangohud
mpv-mpris
nemo-audio-tab
nohang-git
pdfsam
polybar
protonmail-bridge-bin
rig
rustscan
sublime-music
tealdeer
thunar-nextcloud-plugin
tmpmail-git
ttf-iosevka
ttf-ms-fonts
ttf-vista-fonts
wps-office

View File

@ -0,0 +1,852 @@
aarch64-linux-musl
abootimg
accountsservice
acpilight
actual-appimage
adobe-source-han-sans-cn-fonts
adobe-source-han-sans-jp-fonts
adobe-source-han-sans-kr-fonts
adobe-source-sans-fonts
aegisub
age
alacritty
alarm-clock-applet
alsa-firmware
alsa-lib
alsa-plugins
alsa-utils
amdgpu-clocks-git
amd-ucode
an-anime-game-launcher-bin
android-studio
android-tools
ansible
anttweakbar
apache
apachedirectorystudio
arandr
arc-gtk-theme
arch-install-scripts
archiso
archlinux-artwork
archlinux-logout-git
arcolinux-arc-kde
arcolinux-bin-git
arcolinux-common-git
arcolinux-config-all-desktops-git
arcolinux-conky-collection-git
arcolinux-cron-git
arcolinux-dconf-all-desktops-git
arcolinux-docs-git
arcolinux-faces-git
arcolinux-fonts-git
arcolinux-geany-git
arcolinux-grub-theme-vimix-git
arcolinux-hblock-git
arcolinux-i3wm-git
arcolinux-keyring
arcolinux-kvantum-git
arcolinux-local-applications-git
arcolinux-local-xfce4-git
arcolinux-logo-git
arcolinux-mirrorlist-git
arcolinux-neofetch-git
arcolinux-nitrogen-git
arcolinux-obmenu-generator-git
arcolinux-openbox-git
arcolinux-openbox-themes-git
arcolinux-pipemenus-git
arcolinux-plank-git
arcolinux-plank-themes-git
arcolinux-polybar-git
arcolinux-qt5-git
arcolinux-rofi-git
arcolinux-rofi-themes-git
arcolinux-root-git
arcolinux-system-config-git
arcolinux-termite-themes-git
arcolinux-tint2-git
arcolinux-tint2-themes-git
arcolinux-variety-git
arcolinux-wallpapers-git
arcolinux-welcome-app-git
arcolinux-xfce-git
arcolinux-xfce-panel-profiles-git
arcolinux-zsh-git
asciinema
audacity
aurvote-git
autoconf
automake
autotiling
autotrash
avahi
avisynthplus
awesome-terminal-fonts
bandwhich
baobab
base
base-devel
bash-completion
bash-pipes
betterlockscreen
bibata-cursor-theme
bind
binutils
bison
bitwarden
blender
blueman
bluez
bluez-libs
bluez-utils
boost-libs
breeze
breeze-icons
broadcom-wl
btrfsmaintenance
btrfs-progs
buildah
calibre
candy-icons-git
capitaine-cursors
catfish
cdrdao
cdrtools
celluloid
chromium
citra-git
citra-qt-git
cli11
clonezilla
cmake
comictagger
compsize
conky-lua-archers
corectrl
corefreq-client
cpu-g-git
cpu-x-git
cronie
crystal
cups
cups-filters
cups-pdf
cups-pk-helper
czkawka-gui
darkhttpd
datagrip
davfs2
dconf-editor
ddrescue
debtap
debugedit
deemix-gui-git
devtools
dex
dhclient
dhcpcd
dialog
diffutils
discord
dmenu
dmidecode
dmraid
dnsmasq
dosfstools
dotnet-sdk
downgrade
drawio-desktop-bin
dunst
dvd+rw-tools
easyeffects
edac-utils
edk2-ovmf
edk2-shell
efisc2019-bin
efisc2020-bin
efisc2021-bin
efisc2022-bin
efitools
electron-cash-bin
electrum
element-desktop
emacs
emovix
esptool
etcher-bin
ethtool
exfatprogs
exo
expac
f2fs-tools
f3
fakeroot
fancontrol-gui
fd
feh
ffmpeg-normalize-git
ffmpegthumbnailer
file
file-roller
findutils
fio
firefox
firewalld
fish
flake8
flameshot
flex
foliate
font-manager-git
fractal
freerdp
freetype2
fsarchiver
fuse-overlayfs
galculator
gamemode
gamescope
garcon
gaupol
gawk
gcc
gettext
ghostscript
gimp
git
git-lfs
gksu
glances
glib
glib2
glm
gmrun
gnome-disk-utility
gnome-firmware
gnome-icon-theme
gnome-keyring
gnome-screenshot
gnome-shell-extension-gsconnect
gnuclad
gnu-free-fonts
gnu-netcat
go
gobject-introspection
go-tools
goverlay-bin
gparted
gpick
gping
gpm
gptfdisk
graphviz
groff
grsync
grub
grub-customizer
gsfonts
gsimplecal
gst-libav
gst-plugin-pipewire
gst-plugins-bad
gst-plugins-base
gst-plugins-good
gst-plugins-ugly
gstreamer
gtk2
gtk2-perl
gtk3
gtk-engine-murrine
gtop
gulp
gutenprint
guvcview
gvfs
gvfs-afc
gvfs-gphoto2
gvfs-mtp
gvfs-nfs
gvfs-smb
gzip
hakuneko-desktop
handbrake
hardcode-fixer-git
hashcat
haskell-th-compat
haveged
hddtemp
hdparm
heimdall
hplip
htop
hunspell
hunspell-de
hunspell-en_gb
hunspell-en_us
hunspell-fr
hwinfo
hyperfine
hyphen
hyphen-de
hyphen-en
i2c-tools
i3blocks
i3status
i3-wm
icecat-bin
imagemagick
inetutils
inkscape
intellij-idea-ultimate-edition-jre
intltool
inxi
iperf3
iptables-nft
irssi
it87-dkms-git
itch-bin
iw
jdk17-openjdk
jellyamp-appimage
jellyfin-media-player
jfsutils
joplin-appimage
jq
jre11-openjdk
jre8-openjdk
jre-openjdk
js-beautify
jsoncpp
k3b
kcm-wacomtablet
kconfig
kcoreaddons
kdeconnect
kdenlive
keepass
ki18n
kid3
kitty
kopia-ui-bin
krita
kservice
kvantum
kvantum-theme-sweet-git
kwidgetsaddons
languagetool
laptop-detect
lib32-gst-plugins-base-libs
lib32-gtk3
lib32-libva-mesa-driver
lib32-libxslt
lib32-mangohud
lib32-mesa
lib32-mesa-vdpau
lib32-ocl-icd
lib32-opencl-mesa
lib32-openssl-1.0-hardened
lib32-opus
lib32-v4l-utils
lib32-vkd3d
lib32-vulkan-icd-loader
lib32-vulkan-radeon
libaacs
libatomic_ops
libcups
libdvdcss
libgsf
libmtp
libopenraw
libpwquality
libqrtr-glib
libreoffice-fresh-de
libtool
libva-mesa-driver
libva-utils
libva-vdpau-driver
libvdpau-va-gl
libvncserver
liferea
lightdm
lightdm-gtk-greeter
lightdm-gtk-greeter-settings
lightdm-settings
lightdm-slick-greeter
lightdm-webkit2-greeter
lightdm-webkit2-theme-glorious
lineageos-devel
linux-atm
linux-firmware
linux-lts
linux-lts-headers
linux-zen
linux-zen-headers
lm_sensors
logrotate
lolcat
lsb-release
lshw
lsscsi
luit
lutris
lvm2
lxappearance
lxappearance-obconf
lxrandr
m4
mailspring
make
makemkv
man-db
mangohud
man-pages
mariadb
mc
mdadm
mediaelch
mediainfo-gui
megatools-bin
meld
memtest86+
menulibre
mesa
mesa-vdpau
meson
minetest
minigalaxy
mintstick-git
mkinitcpio
mkinitcpio-nfs-utils
mkinitcpio-openswap
mkvtoolnix-gui
mlocate
mobile-broadband-provider-info
modemmanager
monero-gui
mprime
mpv-mpris
mtools
mtpfs
mugshot
mythes-de
mythes-en
nano
nbd
ndisc6
nebula
nemo
nemo-audio-tab
nemo-fileroller
nemo-preview
nemo-share
neofetch
neovim
nerd-fonts-complete
netctl
netstandard-targeting-pack
networkmanager
network-manager-applet
networkmanager-dispatcher-ntpd
networkmanager-openconnect
networkmanager-openvpn
networkmanager-pptp
networkmanager-vpnc
nextcloud-client
nfs-utils
nilfs-utils
nitrogen
nodejs
nohang-git
nomacs
notification-daemon
noto-fonts
noto-fonts-emoji
nsjail
nss-mdns
ntfs-3g
ntp
ntttcp-for-linux-git
numix-circle-arc-icons-git
numix-circle-icon-theme-git
numix-gtk-theme-git
numix-icon-theme-git
numlockx
nutty
nvme-cli
obconf
obmenu3
obmenu-generator
obs-studio
ocl-icd
ofxstatement
oh-my-zsh-git
okular
onedriver
oneko
onlyoffice-bin
openbox
openbox-themes-pambudi-git
openconnect
openmw
openresolv
openssh
openttd
openttd-jgrpp
openvpn
os-prober
p3x-onenote
p7zip
packettracer
pacman
pandoc-cli
partclone
parted
partimage
paru-bin
pass
patch
pavucontrol
pcmanfm-gtk3
pdfsam
peek
perl-anyevent-i3
perl-json-xs
perl-linux-desktopfiles
perl-rename
php
php-gd
picom
piper
pipewire
pipewire-jack
pipewire-pulse
pkgconf
pkgstats
plank
playerctl
podman
podman-dnsname
polkit
polkit-gnome
polybar
poppler-glib
poppler-qt5
postgresql
powerline-fonts
powershell-bin
powertop
ppp
pptpclient
prettier
prismlauncher-bin
protonmail-bridge-bin
protonmail-import-export-app-bin
protontricks
psensor
pulseaudio-alsa
putty
pv
pxz-git
pyright
python-aiohttp
python-aiohttp-cors
python-aiorpcx-git
python-async-timeout
python-black
python-boto
python-grip
python-hatch
python-hatchling
python-hyperlink
python-multidict
python-pathvalidate
python-pip
python-pycryptodome
python-pylint
python-pyparted
python-pytest
python-pywal
python-rednose
python-scipy
python-weasyprint
python-yarl
qalculate-gtk
qdirstat
qemu-desktop
qt5ct
qt5-webkit
qt5-xmlpatterns
qt6ct
qterminal
qxmledit
rasdaemon
rebuild-detector
refind
reflector
reiserfsprogs
remmina
restic
rig
ripgrep
ristretto
rofi
rofi-emoji
rp-pppoe
rsync
ruby-sass
rust
rustscan
rxvt-unicode
s3cmd
sane-airscan
sardi-icons
screenkey-git
scrot
scxvid
sdparm
seahorse
sed
sfml
sg3_utils
shards
shellcheck
shfmt
shotwell
signal-desktop
simple-scan
simplescreenrecorder
smartmontools
socat
solaar
sox
spdlog
speedtest-cli
spice-protocol
splix
spotiflyer-bin
squashfs-tools
sshpass
ssh-tools
steam
steam-native-runtime
stress
stressapptest
stylelint
subtitlecomposer
subtitleeditor
sudo
surfn-icons-git
sweet-folders-icons-git
sweet-gtk-theme-dark
syslinux
sysstat
system-config-printer
tachidesk-jui-bin
tauon-music-box
tcpdump
tealdeer
teams
telegram-desktop
tensorflow
terminus-font
termite
testdisk
testssl.sh
texinfo
the_platinum_searcher-bin
thunar
thunar-archive-plugin
thunar-media-tags-plugin
thunar-nextcloud-plugin
thunar-volman
thunderbird
timeshift
tint2
tk
tmux
torbrowser-launcher
transcode
transmission-gtk
transmission-remote-gtk
tree
trizen
ttf-bitstream-vera
ttf-dejavu
ttf-droid
ttf-fira-code
ttf-fira-sans
ttf-font-awesome
ttf-hack
ttf-inconsolata
ttf-iosevka
ttf-liberation
ttf-ms-fonts
ttf-roboto
ttf-tahoma
ttf-ubuntu-font-family
ttf-vista-fonts
tumbler
twine
udftools
udiskie
udisks2
ufw
unace
unrar
unzip
upower
urxvt-perls
urxvt-resize-font-git
usb_modeswitch
usbutils
variety
vcdimager
vdpauinfo
ventoy-bin
vi
vim
virtio-win
virt-manager
vivictpp
vkbasalt
vkd3d
vlc
vmware-workstation
vnstat
volumeicon
vpnc
vscodium-bin
vulkan-headers
vulkan-radeon
w3m
waifu2x-ncnn-vulkan
webkit2gtk
wget
which
whipper
wine
wireguard-tools
wireless-regdb
wireless_tools
wireshark-qt
wmctrl
woeusb
wol
wpa_supplicant
wpewebkit
wps-office
wttr
wvdial
xapp
xcape
xdg-desktop-portal-gtk
xdg-user-dirs
xdo
xdotool
xf86-input-elographics
xf86-input-evdev
xf86-input-libinput
xf86-input-vmmouse
xf86-input-void
xf86-video-amdgpu
xf86-video-ati
xf86-video-fbdev
xf86-video-intel
xf86-video-nouveau
xf86-video-openchrome
xf86-video-vesa
xfburn
xfce4-appfinder
xfce4-battery-plugin
xfce4-clipman-plugin
xfce4-cpufreq-plugin
xfce4-cpugraph-plugin
xfce4-datetime-plugin
xfce4-dict
xfce4-diskperf-plugin
xfce4-eyes-plugin
xfce4-fsguard-plugin
xfce4-genmon-plugin
xfce4-mailwatch-plugin
xfce4-mount-plugin
xfce4-mpc-plugin
xfce4-netload-plugin
xfce4-notes-plugin
xfce4-notifyd
xfce4-panel
xfce4-panel-profiles
xfce4-power-manager
xfce4-pulseaudio-plugin
xfce4-screensaver
xfce4-screenshooter
xfce4-sensors-plugin
xfce4-session
xfce4-settings
xfce4-smartbookmark-plugin
xfce4-systemload-plugin
xfce4-taskmanager
xfce4-terminal
xfce4-time-out-plugin
xfce4-timer-plugin
xfce4-verve-plugin
xfce4-wavelan-plugin
xfce4-weather-plugin
xfce4-whiskermenu-plugin
xfce4-xkb-plugin
xfconf
xfdesktop
xfsprogs
xfwm4
xfwm4-themes
xl2tpd
xonsh
xorg-bdftopcf
xorg-font-util
xorg-iceauth
xorg-mkfontscale
xorg-server
xorg-sessreg
xorg-setxkbmap
xorg-smproxy
xorg-x11perf
xorg-xauth
xorg-xcmsdb
xorg-xcursorgen
xorg-xdpyinfo
xorg-xdriinfo
xorg-xev
xorg-xgamma
xorg-xhost
xorg-xinit
xorg-xinput
xorg-xkbcomp
xorg-xkbevd
xorg-xkbutils
xorg-xkill
xorg-xlsatoms
xorg-xlsclients
xorg-xmodmap
xorg-xpr
xorg-xprop
xorg-xrandr
xorg-xrdb
xorg-xrefresh
xorg-xset
xorg-xsetroot
xorg-xvinfo
xorg-xwd
xorg-xwininfo
xorg-xwud
xournalpp
xsensors
xst-git
xwinwrap-git
yad
yarn
yay
yt-dlp
zenity
zsh
zsh-completions
zsh-syntax-highlighting

View File

@ -0,0 +1,136 @@
acpilight
age
arandr
bandwhich
base-devel
brotli
btrfs-progs
catfish
cmake
cronie
dconf-editor
dhclient
dnsutils
dosfstools
dunst
e2fsprogs
exfatprogs
f2fs-tools
fakeroot
feh
ffmpeg
firewalld
fish
flameshot
foliate
freetype2
fwupd
fwupd-efi
git
git-lfs
gnome-firmware
gnome-keyring
gsettings-desktop-schemas
gtk-engine-murrine
gvfs
gvfs-mtp
htop
hunspell
hunspell
hunspell-de
hunspell-en_gb
hunspell-en_us
hyphen
hyphen-de
hyphen-en
jre-openjdk
kcm-wacomtablet
kitty
libaacs
libbluray
libcdio
libdvdcss
libdvdnav
libdvdread
libnotify
libreoffice-fresh
libreoffice-fresh-de
libsecret
lightdm
lightdm-gtk-greeter
lightdm-gtk-greeter-settings
linux-zen
linux-zen-headers
man-db
mythes-de
mythes-en
nemo
nemo-fileroller
nemo-preview
nemo-share
neovim
nextcloud-client
nomacs
notification-daemon
noto-fonts
noto-fonts-cjk
noto-fonts-emoji
ntfs-3g
obs-studio
okular
openresolv
os-prober
os-prober
p7zip
pacman-contrib
picom
piper
playerctl
polkit-gnome
python-dbus
python-gobject
python-pip
qt5-imageformats
rebuild-detector
reflector
restic
rofi
rofi-emoji
rsync
seahorse
smartmontools
stress
system-config-printer
thunar
thunar-archive-plugin
thunderbird
tmux
traceroute
transmission-remote-gtk
ttf-fira-code
ttf-fira-sans
udiskie
unace
unrar
unzip
util-linux
vnstat
webkit2gtk
wget
whois
wireguard-tools
xdg-user-dirs
xdotool
xf86-input-elographics
xf86-input-evdev
xf86-input-libinput
xf86-input-wacom
xf86-video-amdgpu
xf86-video-ati
xf86-video-fbdev
xf86-video-intel
xf86-video-nouveau
xfce4-power-manager
xfsprogs
xorg-xrdb
xsel

View File

@ -0,0 +1,3 @@
#!/usr/bin/env bash
pacman -Qeq > $HOME/GitProjects/setup/packages/$(hostname)-packages.txt

View File

@ -0,0 +1,12 @@
#!/usr/bin/env bash
set -euo pipefail
cd "$HOME/GitProjects/setup/packages/"
readarray -d '' packagefiles < <(find "$HOME/GitProjects/setup/packages/" -name "*\.txt" -print0)
for file in "${packagefiles[@]}"; do
echo "Sorting $file"
cat "$file" | sort > "${file}.tmp" && mv "${file}.tmp" "$file"
done

View File

@ -0,0 +1,13 @@
breeze
breeze-icons
candy-icons-git
capitaine-cursors
kvantum-qt5
kvantum-theme-sweet-git
lxappearance
qt5ct
qt6ct
sardi-icons
surfn-icons-git
sweet-folders-icons-git
sweet-gtk-theme-dark

View File

@ -0,0 +1,50 @@
adwaita-icon-theme
arcolinux-i3wm-git
arcolinux-lightdm-gtk-greeter
arcolinux-lightdm-gtk-greeter-settings
arcolinux-tweak-tool-git
arcolinux-welcome-app-git
atom
baka-mplayer
celluloid
chromium
clonezilla
cmus
code
element-desktop
engrampa
evince
evolution
evolution-data-server
galculator
geany
gnome-boxes
guvcview
kdenlive
keepass
libreoffice-extension-languagetool
matrix-mirage
nnn
numix-circle-arc-icons-git
numix-circle-icon-theme-git
numix-gtk-theme-git
numix-icon-theme-git
oh-my-zsh-git
pamac-aur
pcloud-drive
pcmanfm-gtk3
psensor
pulseaudio-equalizer-ladspa
qbittorrent
ranger
sublime-text-dev
tauon-music-box
termite
thefuck
tmux
transmission-gtk
transmission-qt
vivaldi
vlc
xfcd4-screensaver
xfce4-notifyd

View File

@ -0,0 +1,291 @@
acpi_call-dkms
acpilight
age
alsa-plugins
alsa-utils
arandr
autoconf
auto-cpufreq
automake
bandwhich
base
betterlockscreen
bind
binutils
bison
bitwarden
blueman
breeze
breeze-icons
btrfsmaintenance
btrfs-progs
bucklespring
ca-certificates
ca-certificates-mozilla
candy-icons-git
capitaine-cursors
catfish
clang
cmake
compsize
cronie
cups
dconf-editor
dhclient
dialog
discord
dosfstools
downgrade
drawio-desktop-bin
dunst
easyeffects
easystroke
efibootmgr
element-desktop
emacs
evolution
evtest
exfatprogs
f2fs-tools
fakeroot
fd
feh
ffmpeg
ffmpeg-normalize-git
file
filius
findutils
fingerprint-gui
firefox
firewalld
fish
flameshot
flex
foliate
font-manager-git
fprintd
freerdp
galculator
gawk
gcc
gettext
git
gnome-firmware
gnome-keyring
gparted
grep
groff
grub
grub-btrfs
gtk-engine-murrine
gvfs
gvfs-mtp
gzip
hplip
htop
hunspell
hunspell-de
hunspell-en_gb
hyphen
hyphen-de
hyphen-en
i3-gaps
inetutils
intel-ucode
intel-undervolt
jellyamp-appimage
jellyfin-media-player
joplin-appimage
jre-openjdk
kdenlive
kitty
krita
kvantum
kvantum-theme-sweet-git
languagetool
lib32-alsa-lib
lib32-alsa-plugins
lib32-giflib
lib32-gnutls
lib32-gst-plugins-base-libs
lib32-gtk3
lib32-libgcrypt
lib32-libgpg-error
lib32-libjpeg-turbo
lib32-libldap
lib32-libpng
lib32-libpulse
lib32-libva
lib32-libxcomposite
lib32-libxinerama
lib32-libxslt
lib32-mpg123
lib32-ncurses
lib32-ocl-icd
lib32-openal
lib32-sqlite
lib32-v4l-utils
lib32-vulkan-icd-loader
libaacs
libbluray
libcdio
libdvdcss
libdvdnav
libdvdread
libfprint
libreoffice-extension-languagetool
libreoffice-fresh-de
libtool
lightdm
lightdm-gtk-greeter
lightdm-gtk-greeter-settings
lightdm-settings
linux
linux-firmware
linux-headers
linux-zen
linux-zen-headers
lshw
lutris
lxappearance
m4
make
man-db
mediainfo-gui
megatools-bin
mono
mpv-mpris
mtools
multimc-bin
mysql-workbench
nebula
nemo
nemo-audio-tab
nemo-fileroller
nemo-preview
nemo-share
neovim
networkmanager
network-manager-applet
nextcloud-client
nohang-git
nomacs
notification-daemon
noto-fonts
noto-fonts-emoji
ntfs-3g
obs-studio
ocl-icd
okular
openresolv
openssh
os-prober
p3x-onenote
p7zip
packettracer
pacman
pacman-contrib
pandoc
paru
patch
pavucontrol
pdfsam
picom
piper
pipewire-alsa
pipewire-jack
pipewire-media-session
pipewire-pulse
pkgconf
pkgstats
playerctl
podman
polkit-gnome
polybar
powershell-bin
protonmail-bridge-bin
python-isort
python-pip
python-pipenv
python-rednose
qt5ct
reflector
remmina
restic
rig
ripgrep
rofi
rsync
rustscan
sardi-icons
screenkey
seahorse
sed
shellcheck
siglo
signal-desktop
smartmontools
snapper
snapper-gui-git
ssh-tools
steam
steam-native-runtime
stress
sudo
surfn-icons-git
sweet-folders-icons-git
sweet-gtk-theme-dark
system-config-printer
tauon-music-box
tealdeer
teams
telegram-desktop
testssl.sh
texinfo
texlab
texlive-core
thunar
thunderbird
tlpui-git
tmpmail-git
tmux
torbrowser-launcher
tp_smapi
traceroute
transmission-remote-gtk
ttf-fira-code
ttf-fira-sans
ttf-iosevka
ttf-ms-fonts
ttf-vista-fonts
unace
unrar
unzip
ventoy-bin
vim
vmware-workstation
vnstat
webkit2gtk
wget
which
wine
wireguard-tools
wkhtmltopdf
wpa_supplicant
wps-office
x2goclient
x2goserver
xdg-user-dirs
xdg-utils
xf86-input-elographics
xf86-input-evdev
xf86-input-libinput
xf86-video-amdgpu
xf86-video-ati
xf86-video-fbdev
xf86-video-intel
xf86-video-nouveau
xfce4-power-manager
xorg-xev
xorg-xrdb
yt-dlp

View File

@ -0,0 +1,48 @@
alsa-lib
alsa-plugins
giflib
gnutls
gst-plugins-base-libs
gtk3
lib32-alsa-lib
lib32-alsa-plugins
lib32-giflib
lib32-gnutls
lib32-gst-plugins-base-libs
lib32-gtk3
lib32-libgcrypt
lib32-libgpg-error
lib32-libjpeg-turbo
lib32-libldap
lib32-libpng
lib32-libpulse
lib32-libva
lib32-libxcomposite
lib32-libxinerama
lib32-libxslt
lib32-mpg123
lib32-ncurses
lib32-openal
lib32-opencl-icd-loader
lib32-sqlite
lib32-v4l-utils
lib32-vulkan-icd-loader
libgcrypt
libgpg-error
libjpeg-turbo
libldap
libpng
libpulse
libva
libxcomposite
libxinerama
libxslt
mpg123
ncurses
openal
opencl-icd-loader
os-prober
sqlite
v4l-utils
vulkan-icd-loader
wine