mkessler-pkgs/PKGBUILD

195 lines
4.8 KiB
Bash

pkgbase=mkessler
pkgname=(mkessler-base mkessler-xmonad mkessler-x mkessler-audio mkessler-androidfs mkessler-software mkessler-print mkessler-locale mkessler-desktop mkessler-devel mkessler-signing-key)
pkgver=r59.589ac8c
pkgrel=1
pkgdesc="Base system configuration for mkessler systems"
arch=('any')
license=('MIT')
groups=(mkessler)
url="https://gitlab.com/kesslermaximilian/arch-pkgs"
###########
# Note that some of these packages have dependencies that are only available
# in the AUR. Such packages are marked with an 'AUR' comment.
# In order for this to work, you either need to use an AUR helper that is able
# to resolve such dependencies, or have these AUR packages pre-built and
# available in a custom repository, so that pacman is able to find them.
# Also, note that there is no guarantee made on any functionality of these
# packages and that dependencies might change at any time
##########
source=(https://mkessler-arch.maximilian-kessler.de/signing_key)
b2sums=(acf6c058469ec7a521b568060120686a26bdf6e170b1e8fa4ec321c0f16cc6f641eaa01f33fd6c7c9c1506f66e9059ad1475852ab12b4ddc517658f1addcb235)
pkgver() {
printf "r%s.%s" "$(git rev-list --count HEAD)" "$(git rev-parse --short HEAD)"
}
package_mkessler-signing-key() {
# Install this package after pacman to ensure that its keyring is initialized
depends=(archlinux-keyring)
install=mkessler-signing-key.install
install -d "$pkgdir"/opt
mkdir -p "$pkgdir"/opt/mkessler/signing-key
cp ${srcdir}/signing_key "$pkgdir"/opt/mkessler/signing-key/signing_key
}
package_mkessler-base() {
# Base packages
depends=(base linux linux-firmware man-db man-pages lvm2)
# boot manager
depends+=(grub efibootmgr)
# standard programs
# note that vim-plug is from the AUR,
# the package has to be present on a custom repo
depends+=(zsh gvim vim-plug openssh gzip tar rsync)
# AUR. easy file-renaming in git
depends+=(vimv-git)
# standard utilities
depends+=(ncdu wget tree sudo htop which sed make grep)
# network
depends+=(dhcpcd networkmanager)
# install signing key
depends+=(mkessler-signing-key)
install=mkessler-base.install
}
package_mkessler-xmonad() {
# haskell utilities
depends=(stack)
# libraries needed to build xmonad
depends+=(libxss libx11 pkgconf)
}
package_mkessler-x() {
depends=(xorg-server)
# xorg utilities
depends+=(xorg-xkill xorg-xev xorg-xrandr xorg-docs xorg-setxkbmap xorg-xinput)
# arandr for simpler screen controlling than xrandr
depends+=(arandr)
# greeter
depends+=(lightdm lightdm-gtk-greeter)
# window managers: i3 and stuff to build xmonad
depends+=(i3-gaps i3status i3blocks)
# AUR
depends+=(i3lock-fancy-git)
# better screenshot utility for i3lock-fancy-git
depends+=(maim)
depends+=(mkessler-xmonad)
# launching utilities, status bar
depends+=(dmenu rofi polybar)
# sets X11 keyboard layout
install=mkessler-x.install
# terminal emulators
depends+=(kitty alacritty)
# networkmanager and extensions for L2TP/IPsec VPN protocol
depends+=(networkmanager-l2tp strongswan)
}
package_mkessler-audio() {
depends=(pipewire pipewire-pulse pipewire-jack)
# firmware
depends+=(alsa-firmware sof-firmware)
# utilities
depends+=(pavucontrol alsa-utils qpwgraph)
}
package_mkessler-androidfs() {
# see https://linuxhint.com/connect-android-arch-linux/
depends=(mtpfs)
# AUR
depends+=(jmtpfs)
# integration into file browser (tested with nautilus)
depends+=(gvfs-mtp)
}
package_mkessler-software() {
depends=(thunderbird qutebrowser vlc)
# zathura and PDF plugin
depends+=(zathura zathura-pdf-mupdf zathura-djvu)
# vimtex needs this for correcty syncing with zathura
depends+=(xdotool)
# messengers
depends+=(signal-desktop element-desktop telegram-desktop)
# texlive installer
depends+=(texlive-installer)
# biber (for bibliographies) needs this, since it still uses deprecated and now-removed
# libcrypt.so.1
# See https://bbs.archlinux.org/viewtopic.php?id=274160 and https://github.com/plk/biber/issues/402
depends+=(libxcrypt-compat)
# keepass for password databases
depends+=(keepassxc)
# python
depends+=(python python-pip)
# music
depends+=(clementine) # AUR
# xournal for drawing etc
depends+=(xournalpp)
# AUR
depends+=(tor-browser caffeine)
}
package_mkessler-print() {
depends=(cups cups-pdf)
# AUR. simple scanning of documents
depends+=(simple-scan)
# activate cups socket
install=mkessler-print.install
}
package_mkessler-locale() {
depends=()
install=mkessler-locale.install
}
package_mkessler-desktop() {
depends=(mkessler-base mkessler-x mkessler-audio mkessler-software mkessler-print mkessler-locale mkessler-androidfs)
}
package_mkessler-devel() {
depends=(stack ghc gcc go)
# python
depends+=(python python-pip)
# fakeroot for running makepkg
depends+=(fakeroot archiso gawk texinfo pkgconf)
}