First Commit

This commit is contained in:
Simon Rieger 2022-10-04 19:01:31 +02:00
commit 5c3055f921
536 changed files with 10028 additions and 0 deletions

4
.gitignore vendored Executable file
View file

@ -0,0 +1,4 @@
builds/
tmp/
out/
configs/grub.d/10_linux.original

30
README.md Normal file
View file

@ -0,0 +1,30 @@
### Hinweis
Die Master-Branch gehört zur x86_64 Prozessor-Architektur (Die x86_64 ist auch die aktuellste Branch)
### Abhängigkeiten
pacman -S arch-install-scripts squashfs-tools dosfstools libisoburn
### ROM bauen
./make_mksquashfs-auto.sh makesystem mkinitcpio filesystem makeimage makebios makeiso
### ROM in einer VM-Testen
qemu-system-x86_64 --enable-kvm --cdrom out/arch-deadc0de_remix_os-20211212-x86_64.iso -boot d -m 8G
### Zum anzeigen der Größe der installierten Packeten
LC_ALL=C pacman -Qi | egrep '^(Name|Installed)' | cut -f2 -d':' | tr '\nK' ' \n' | sort -nrk 3 | less
### Set DPI in Nvidia xorg.conf in Device or Screen
xrandr --dpi 96
Set in Nvidia xorg.conf in Device or Screen
Option "DPI" "96 x 96"
starten sie auch beim ersten start arandr und speichern sie im .screenlayout Ordner die monitor.sh um die aktuelle Auflösung dauerhaft zu sichern und beim nächsten Start von i3 zu laden
### Ändern eines fonts mittels gsettings (dbus-launch ist optional)
gsettings list-keys org.gnome.desktop.interface
gsettings get org.gnome.desktop.interface font-name
gsettings set org.gnome.desktop.interface cursor-theme capitaine-cursors
gsettings set org.gnome.desktop.interface gtk-theme Arc-Darker
gsettings set org.gnome.desktop.interface icon-theme Arc
gsettings set org.gnome.desktop.wm.preferences theme "Arc-Darker"

741
arch-graphical-install-auto.sh Executable file
View file

@ -0,0 +1,741 @@
#!/usr/bin/env bash
#
set -ex
if [[ $EUID -ne 0 ]]; then
echo "This script must be run as root" 1>&2
sudo "$@"
exit 0
fi
echo "Als root Angemeldet"
RCLOCAL='/etc/rc.local'
RCLOCALSHUTDOWN='/etc/rc.local.shutdown'
SYSCTL='/etc/sysctl.conf'
SUDOERS="/etc/sudoers"
autostartdesktop=sway
repo=deadc0de-remix-os
repo1=shell-scripte-code
hostname=deadc0de-remix-os
user=user1
userpass=user1
arch=$(uname -m)
offline=false
# Lese die Umgebungsvariablen neu
source /etc/environment
# while-schleife
while (( "$#" ))
do
echo ${1}
export ${1}="y"
shift
done
if cat /etc/passwd | grep "x:1000" > /dev/null; then
tempuser=$(cat /etc/passwd | grep "x:1000" | awk '{print $1}')
user=${tempuser%%:*}
fi
function pacmanconf() {
cp -v /opt/${repo}/mirrorlist* /etc/pacman.d/
cp -v /opt/${repo}/pacman.conf /etc/pacman.conf
pacman-key --init
pacman-key --populate archlinux
pacman -Sy git glibc --needed --noconfirm
}
function gitclone() {
git config --global credential.helper store
git config --global core.editor "vim"
git config --global user.email "user1@spectreos.de"
git config --global user.name "user1"
git config --global push.default simple
git config --global pull.rebase true
git config --global --add safe.directory '*'
# Aktualisiere die Repositiories
# Überprüfe ob das GIT Repo überhaupt vorhanden ist, sonst verwende das Failback
if [ -f "/opt/${repo}/repo.sh" ]; then /opt/${repo}/repo.sh; else /usr/bin/repo; fi
# Lese die Umgebungsvariablen neu
source /etc/environment
if [ "${offline}" != "true" ]; then
if [ -d "/opt/${repo}" ]; then
echo "${repo} existiert bereits!!!"
cd /opt/${repo}
git checkout ${arch}
if ! git remote set-url origin ${WEBADDRESS_OS}; then
git remote add origin ${WEBADDRESS_OS}
fi
git pull
else
git clone -b ${arch} ${WEBADDRESS_OS} /opt/${repo}
fi
if [ -d "/opt/${repo1}" ]; then
echo "${repo1} existiert bereits!!!"
cd /opt/${repo1}
if ! git remote set-url origin ${WEBADDRESS_SCRIPTE}; then
git remote add origin ${WEBADDRESS_SCRIPTE}
fi
git pull
else
git clone ${WEBADDRESS_SCRIPTE} /opt/${repo1}
fi
fi
cd /
}
function standartinstallation() {
if ! pacman -Syu $(cat /opt/${repo}/packages.txt) --needed --noconfirm; then
echo "Konnte Aktualisierung nicht abschließen!!!"
echo "Versuche die Packete automatisch zu aktualisieren!!!"
sleep 5
fi
}
function addusers() {
# Erstelle Gruppen
groupid=2000
for wort in wheel audio input power storage video sys optical adm lp scanner sddm kvm fuse autologin network wireshark docker libvirt libvirtdbus; do
if ! cat /etc/group | grep ${wort}; then
while cat /etc/group | grep ${groupid}; do
groupid=$((${groupid} + 1))
done
groupadd ${wort} -g ${groupid}
fi
done
useruid=1000
while cat /etc/passwd | grep ${useruid}; do
useruid=$((${useruid} + 1))
done
useradd -m -g users -G wheel,audio,input,power,storage,video,sys,optical,adm,lp,scanner,sddm,kvm,fuse,autologin,network,wireshark,docker,libvirt,libvirtdbus -s /bin/bash --uid ${useruid} ${user}
echo "${user}:${userpass}" | chpasswd
mkdir -p /home/${user}/
userrechte
}
function add_plymouth() {
cd /opt/
if [ "${version%-*-*}" != "lite" ] && [ "${skip}" != "skip" ] && ! [ "${version#*-}" == "cli" ]; then
aurinstaller "https://aur.archlinux.org/plymouth.git"
aurinstaller "https://aur.archlinux.org/plymouth-theme-dark-arch.git"
plymouth-set-default-theme -R dark-arch
fi
if ! [ -d plymouth-bgrt ]; then
if git clone https://github.com/darac/plymouth-bgrt.git; then
cd plymouth-bgrt
if ./install.sh; then
plymouth-set-default-theme -R plymouth-bgrt
else
echo "Konnte das Bootlogo nicht finden!!!"
fi
echo "Git erfolgreich runtergeladen ;-D"
else
echo "Konnte Git nicht herunterladen!!!"
fi
else
cd plymouth-bgrt
update_git
fi
cd /
}
function userrechte() {
#user
chown -cR "$user":users /home/"$user"
chmod 750 -R /home/"$user"
#ssh
if ! [ -d /home/"$user"/.ssh ]; then
mkdir -p /home/"$user"/.ssh
fi
chmod 700 /home/"$user"/.ssh
if [ -f /home/"$user"/.ssh/config ]; then
chmod 400 /home/${user}/.ssh/config
fi
if [ -f /home/"$user"/.ssh/id_rsa ]; then
chmod 600 /home/"$user"/.ssh/id_rsa
fi
if ! [ -f /home/"$user"/.ssh/authorized_keys ]; then
touch /home/"$user"/.ssh/authorized_keys
fi
chmod 600 /home/"$user"/.ssh/authorized_keys
#gnupg
mkdir -p /home/"$user"/.gnupg
chmod -R 700 /home/"$user"/.gnupg
if [ -f /home/${user}/.gnupg/* ]; then
chmod -v 600 /home/${user}/.gnupg/*
fi
}
function links() {
#
mkdir -p /home/"$user"/Schreibtisch/
if [ -f "/usr/share/applications/arch-install.desktop" ]; then
if [ -f "/home/"$user"/Schreibtisch/arch-install.desktop" ]; then
echo "datei existiert bereits!"
else
ln -s /usr/share/applications/arch-install.desktop /home/"$user"/Schreibtisch/arch-install.desktop
fi
#chmod +x /home/"$user"/Schreibtisch/arch-install.desktop
fi
mkdir -p /home/"$user"/Desktop/
if [ -f "/usr/share/applications/arch-install.desktop" ]; then
if [ -f "/home/"$user"/Desktop/arch-install.desktop" ]; then
echo "datei existiert bereits!"
else
ln -s /usr/share/applications/arch-install.desktop /home/"$user"/Desktop/arch-install.desktop
fi
#chmod +x /home/"$user"/Desktop/arch-install.desktop
fi
}
function add_locale_settings() {
# set systemconfiguration
echo "LANG=de_DE.UTF-8" > /etc/locale.conf
echo "LC_COLLATE=C" >> /etc/locale.conf
echo "LANGUAGE=de_DE" >> /etc/locale.conf
echo "de_DE.UTF-8 UTF-8" > /etc/locale.gen
echo "de_DE ISO-8859-1" >> /etc/locale.gen
if ! grep 'en_US.UTF-8 UTF-8' /etc/locale.gen 1>/dev/null 2>&1; then
echo "en_US.UTF-8 UTF-8" >> /etc/locale.gen
fi
locale-gen
echo "KEYMAP=de" > /etc/vconsole.conf
echo "FONT=lat9w-16" >> /etc/vconsole.conf
if [ -f "/etc/conf.d/keymaps" ]; then
sed -i 's/keymap=.*$/keymap=\"de\"/' /etc/conf.d/keymaps
fi
sed -e 's|Option "XkbLayout".*$|Option "XkbLayout" "de"|' -i /etc/X11/xorg.conf.d/20-keyboard.conf
if [ "$keytable_short" != "de" ]; then
sed -e 's| xkb_layout.*$| xkb_layout de|' -i /home/${user}/.config/sway/config
fi
# https://stackoverflow.com/questions/5767062/how-to-check-if-a-symlink-exists
if [ -L /etc/localtime ]; then
rm /etc/localtime
fi
ln -s /usr/share/zoneinfo/Europe/Berlin /etc/localtime
}
function update_git() {
git reset --hard
if ! git pull; then
echo "Konnte die Git-Repository nicht aktualisieren!!!"
fi
}
# Lade wichtige Git-Repositorys herunter
gitclone
# Konfiguriere die Repositoryverwaltung Pacman
pacmanconf
if [ "$1" == "adduser" ]; then
user="$2"
userpass="$3"
if cat /etc/passwd | grep "x:1000" > /dev/null; then
echo "${user} existiert bereits!!!"
else
addusers
fi
exit 0
elif [ "$1" == "add_plymouth" ]; then
add_plymouth
exit 0
elif [ "$1" == "userrechte" ]; then
userrechte
exit 0
fi
if cat /etc/passwd | grep ${user} > /dev/null; then
echo "${user} existiert bereits!!!"
else
addusers
fi
if [ "$erstellen" == "exit" ]
then
exit 0
fi
# grundinstallation
echo "root:root" | chpasswd
# sudoers/wheel
echo "Lege $SUDOERS neu an!!!"
echo "root ALL=(ALL) NOPASSWD: ALL" > $SUDOERS
echo "%wheel ALL=(ALL) NOPASSWD: ALL" >> $SUDOERS
# systemaktualisierung
standartinstallation
# Your commands
# startup
cp /opt/${repo}/scripts/startup-script.sh /usr/bin/startup-script
chmod 755 /usr/bin/startup-script
cp /opt/${repo}/service/startup-script.service /etc/systemd/system/
chmod 644 /etc/systemd/system/startup-script.service
systemctl enable startup-script.service
echo "Packetliste2 Ende"
echo "Beginne mit dem Konfigurieren des Systems :D"
# import compress script
# compress-script
cp /opt/${repo}/scripts/compress.sh /usr/bin/compress
chmod 755 /usr/bin/compress
cp /opt/${repo}/scripts/compress-pigz.sh /usr/bin/compress-pigz
chmod 755 /usr/bin/compress-pigz
# set system startup files
echo "System startup files"
cp -v /opt/${repo}/service/* /etc/systemd/system/
systemctl enable acpid
systemctl enable ntpd
systemctl enable avahi-daemon
systemctl enable cups
systemctl enable sshd
systemctl disable systemd-random-seed.service
systemctl enable cronie
systemctl enable systemd-timesyncd.service
systemctl disable docker
systemctl disable x11vnc
#systemctl enable mpd
#systemctl enable syncthing@simono41.service
echo "Bitte OpenVPN config in die /etc/openvpn/client/client.conf kopieren!!!"
if [ -f /lib/systemd/system/openvpn-client@client.service ]; then
echo "link vorhanden!"
else
ln /lib/systemd/system/openvpn-client@.service /lib/systemd/system/openvpn-client@client.service
fi
#Bei ausdokumentierung wird eine/die VPN automatisch aus der /etc/openvpn/client/client.conf gestartet!!!
#systemctl enable openvpn-client@client.service
#systemctl enable wg-quick@peer1.service
systemctl enable fail2ban
systemctl enable NetworkManager.service
systemctl enable bluetooth.service
#systemctl enable httpd
#systemctl enable sddm
#add_plymouth
#mkdir -p /etc/systemd/system/getty\@tty1.service.d/
#echo "[Service]" > /etc/systemd/system/getty\@tty1.service.d/autologin.conf
#echo "ExecStart=" >> /etc/systemd/system/getty\@tty1.service.d/autologin.conf
#echo "ExecStart=-/usr/bin/agetty --autologin ${user} -s %I 115200,38400,9600 vt102" >> /etc/systemd/system/getty\@tty1.service.d/autologin.conf
# iso_name
echo "${hostname}" > /etc/hostname
echo "hostname=\"${hostname}\"" > /etc/conf.d/hostname
# uefi-boot
cp /opt/${repo1}/uefi-boot.sh /usr/bin/uefi-boot
chmod 755 /usr/bin/uefi-boot
# youtube
cp /opt/${repo1}/youtube.sh /usr/bin/youtube-downloader
chmod 755 /usr/bin/youtube-downloader
# write-partitions manager
cp /opt/${repo}/scripts/write_cowspace /usr/bin/write_cowspace
chmod 755 /usr/bin/write_cowspace
# installer-/usr/bin/
cp /opt/${repo}/arch-install.sh /usr/bin/arch-install
chmod 755 /usr/bin/arch-install
if ! grep 'TERMINAL' /etc/environment; then
echo "TERMINAL=alacritty" >> /etc/environment
fi
if ! grep 'EDITOR' /etc/environment; then
echo "EDITOR=vim" >> /etc/environment
fi
# /etc/arch-release
echo "OS=${repo}" > /etc/arch-release
# tablet-onboard
cp /opt/${repo}/scripts/tablet-onboard.sh /usr/bin/tablet-onboard
chmod +x /usr/bin/tablet-onboard
# bash.bashrc
sed "s|%OS_NAME%|${repo}|g;" /opt/${repo}/configs/bash.bashrc > /etc/bash.bashrc
cp /opt/${repo}/service/btrfs-swapon.service /etc/systemd/system/
# btrfs-swapfile
cp /opt/${repo}/scripts/btrfs-swapon /usr/bin/
chmod 755 /usr/bin/btrfs-swapon
cp /opt/${repo}/scripts/btrfs-swapoff /usr/bin/
chmod 755 /usr/bin/btrfs-swapoff
# ssh
cp /opt/${repo}/configs/sshd_config /etc/ssh/sshd_config
# snapshot.sh
cp /opt/${repo}/scripts/snapshot.sh /usr/bin/snapshot
chmod 755 /usr/bin/snapshot
# update-script
cp /opt/${repo}/scripts/update.sh /usr/bin/update-script
chmod 755 /usr/bin/update-script
# Verzeichnisse
mkdir -p /home/${user}/Dokumente
mkdir -p /home/${user}/Documents
mkdir -p /home/${user}/Bilder
mkdir -p /home/${user}/Pictures
mkdir -p /home/${user}/Musik
mkdir -p /home/${user}/Music
mkdir -p /home/${user}/Downloads
mkdir -p /home/${user}/Videos
mkdir -p /home/${user}/Desktop
mkdir -p /home/${user}/Public
mkdir -p /home/${user}/Templates
# addusers.sh
cp /opt/${repo}/scripts/addusers.sh /usr/bin/addusers
chmod 755 /usr/bin/addusers
# set default shell
chsh -s /bin/bash root
chsh -s /bin/bash ${user}
# aurinstaller
cp /opt/${repo}/scripts/aurinstall.sh /usr/bin/aurinstaller
chmod +x /usr/bin/aurinstaller
cp /opt/${repo}/scripts/aurupdater.sh /usr/bin/aurupdater
chmod +x /usr/bin/aurupdater
# setcap-ping
setcap cap_net_raw+ep /bin/ping
# gpg pinentry
mkdir -p /home/${user}/.gnupg/
cp /opt/${repo}/scripts/pinentry-wayland /usr/bin/
# installer
mkdir -p /usr/share/applications/
cp /opt/${repo}/desktop/arch-install.desktop /usr/share/applications/arch-install.desktop
# install-picture
mkdir -p /usr/share/pixmaps/
cp /opt/${repo}/desktop/install.png /usr/share/pixmaps/
# background
mkdir -p /usr/share/backgrounds/xfce/
cp /opt/${repo}/desktop-bilder/*.jpg /usr/share/backgrounds/xfce/
chmod 755 -R /usr/share/backgrounds/xfce/
# grub_background
mkdir -p /usr/share/grub/
cp /opt/${repo}/grub/grub_background.png /usr/share/grub/background.png
# bluetooth-network-polkit
mkdir -p /etc/polkit-1/rules.d/
cp /opt/${repo}/polkit/51-blueman.rules /etc/polkit-1/rules.d/51-blueman.rules
cp /opt/${repo}/polkit/50-org.freedesktop.NetworkManager.rules /etc/polkit-1/rules.d/50-org.freedesktop.NetworkManager.rules
# os-release
cp /opt/${repo}/os-release /etc/
# lsb-release
cp /opt/${repo}/lsb-release /etc/
# autodiskmount
mkdir -p /media/
mkdir -p /etc/udev/rules.d/
# touchpad
#cp /opt/${repo}/01-touchpad.rules /etc/udev/rules.d/01-touchpad.rules
cp /opt/${repo}/scripts/mouse-pnp-event-handler.sh /usr/bin/mouse-pnp-event-handler.sh
chmod +x /usr/bin/mouse-pnp-event-handler.sh
cp /opt/${repo}/scripts/touchpad_toggle.sh /usr/bin/touchpad_toggle
chmod +x /usr/bin/touchpad_toggle
# hardreset
cp /opt/${repo}/scripts/hardreset.sh /usr/bin/hardreset.sh
chmod +x /usr/bin/hardreset.sh
# slowtype
cp /opt/${repo}/scripts/slowtype /usr/bin/slowtype
chmod +x /usr/bin/slowtype
cp /opt/${repo}/configs/vimrc /etc/vimrc
if ! [ -d "/home/${user}/.vim/bundle/Vundle.vim" ]; then
git clone https://github.com/VundleVim/Vundle.vim.git /home/${user}/.vim/bundle/Vundle.vim
else
cd /home/${user}/.vim/bundle/Vundle.vim
update_git
fi
cd /
echo "run :PluginInstall"
cd /opt/
if ! [ -d "gtran" ]; then
git clone https://github.com/skanehira/gtran.git
cd gtran
else
cd gtran
update_git
fi
if ! GOBIN=/usr/bin/ go install;then echo "Bauen fehlgeschlagen!!!";fi
cd /
cp -v /opt/${repo}/scripts/import-gsettings /usr/bin/import-gsettings
# clipboard wrapper
cp -v /opt/${repo}/scripts/clipboard_wrapper/* /usr/bin/
# Convert commands (vim)
cp -v /opt/${repo}/scripts/csv2tsv /usr/bin/
cp -v /opt/${repo}/scripts/tsv2csv /usr/bin/
# cpu_gpu sensors
mkdir -p /etc/conf.d
cp /opt/${repo}/scripts/lm_sensors /etc/conf.d/lm_sensors
# wacom stylus-support
cp /opt/${repo}/configs/10-wacom.rules /etc/udev/rules.d/10-wacom.rules
cp /usr/share/X11/xorg.conf.d/70-wacom.conf /etc/X11/xorg.conf.d/
# zramctrl
cp /opt/${repo}/scripts/zramctrl /usr/bin/zramctrl
cp /opt/${repo}/service/zramswap.service /etc/systemd/system/zramswap.service
systemctl enable zramswap
# hooks
cp -v /opt/${repo}/configs/install/* /usr/lib/initcpio/install/
cp -v /opt/${repo}/configs/hooks/* /usr/lib/initcpio/hooks/
cp -v /opt/${repo}/configs/script-hooks/* /usr/lib/initcpio/
mkdir -p /etc/pacman.d/hooks
cp -v /opt/${repo}/configs/pacman-hooks/* /etc/pacman.d/hooks/
cp -v /opt/${repo}/make-packages-txt.sh /usr/bin/make-packages-txt.sh
chmod +x /usr/bin/make-packages-txt.sh
pacmanversion="pacman.conf"
sed 's|%VERSION%|'$pacmanversion'|' -i /etc/pacman.d/hooks/pacmanconf.hook
# nano
echo "include "/usr/share/nano/*.nanorc"" > /etc/nanorc
# htop
echo "fields=0 48 17 18 38 39 40 2 46 47 49 1
sort_key=46
sort_direction=-1
hide_threads=0
hide_kernel_threads=1
hide_userland_threads=0
shadow_other_users=0
highlight_base_name=1
highlight_megabytes=1
highlight_threads=1
tree_view=1
header_margin=1
detailed_cpu_time=1
color_scheme=0
delay=15
left_meters=AllCPUs Memory Swap
left_meter_modes=1 1 1
right_meters=Tasks LoadAverage Uptime
right_meter_modes=2 2 2 " > /home/${user}/.htoprc
if ! [ "${version%-*}" == "libre-openrc" ] && ! [ "${version%-*}" == "openrc" ]; then
# Install rc.local
echo "[Unit]
Description=/etc/rc.local compatibility
[Service]
Type=oneshot
ExecStart=/etc/rc.local
RemainAfterExit=yes
[Install]
WantedBy=multi-user.target" > /etc/systemd/system/rc-local.service
touch $RCLOCAL
chmod +x $RCLOCAL
systemctl enable rc-local.service
if ! grep '#!' $RCLOCAL; then
echo "#!/bin/bash" > $RCLOCAL
fi
if ! grep 'setcap cap_net_raw+ep /bin/ping' $RCLOCAL; then
echo "setcap cap_net_raw+ep /bin/ping" >> $RCLOCAL
fi
# Install rc.shutdown
echo "[Unit]
Description=/etc/rc.local.shutdown Compatibility
ConditionFileIsExecutable=/etc/rc.local.shutdown
DefaultDependencies=no
After=basic.target
Before=shutdown.target
[Service]
Type=oneshot
ExecStart=/etc/rc.local.shutdown
StandardInput=tty
RemainAfterExit=yes
[Install]
WantedBy=multi-user.target" > /etc/systemd/system/rc-local-shutdown.service
touch $RCLOCALSHUTDOWN
chmod +x $RCLOCALSHUTDOWN
systemctl enable rc-local-shutdown.service
if ! grep '#!' $RCLOCALSHUTDOWN; then
echo "#!/bin/bash" > $RCLOCALSHUTDOWN
fi
fi
# set desktop
echo "set desktop"
#
mkdir -p /etc/X11/xinit/
echo "Systemsprache und dienste werden erstellt!"
mkdir -p /etc/X11/xorg.conf.d/
cp -R /opt/${repo}/configs/xorg.conf.d/* /etc/X11/xorg.conf.d/
if ! [ -f "/etc/X11/xorg.conf.d/40-libinput.conf" ]; then
ln -s /usr/share/X11/xorg.conf.d/40-libinput.conf /etc/X11/xorg.conf.d/40-libinput.conf
fi
# SDDM Config
# use for configuration kcmshell5 sddm or systemsettings5
cp /opt/${repo}/configs/sddm.conf /etc/sddm.conf
cp -R /opt/${repo}/configs/sddm.conf.d /etc/
cp -R /opt/${repo}/sddm-themes/sugar-candy /usr/share/sddm/themes/
sed -i 's/User=.*$/User='$user'/' /etc/sddm.conf.d/kde_settings.conf
#sed -i 's/Current=.*$/Current=\/usr\/share\/sddm\/themes\/maldives/' /etc/sddm.conf
sed -i 's/MinimumVT=.*$/MinimumVT=7/' /etc/sddm.conf
if ! grep 'setxkbmap' /usr/share/sddm/scripts/Xsetup; then
echo "setxkbmap de" >> /usr/share/sddm/scripts/Xsetup
fi
if [ "${archisoinstall}" == "y" ]; then
links
fi
userrechte
# https://aur.archlinux.org/packages/ttf-font-nerd-dummy
# I was going to delete it because at the moment the only package that provides ttf-font-nerd is ttf-iosevka-nerd (see this search entry),
# if ttf-iosevka-nerd no longer provides ttf-font-nerd (which can be a possible fix to bug #74050),
# this AUR package will be the only package that provides ttf-font-nerd, in which case it is better deleted.
if pacman -Rdd ttf-iosevka-nerd --noconfirm; then
aurinstaller ttf-font-nerd-dummy
fi
#aurinstaller conky-lua-nv
#aurinstaller passdmenu
aurinstaller ntfysh-bin
#aurinstaller spotify
#aurinstaller https://github.com/MultiMC/multimc-pkgbuild
#aurinstaller polymc-bin
aurinstaller beautysh
#aurinstaller jetbrains-toolbox
aurinstaller wdisplays
# MS-Fonts
mkdir -p /etc/fonts/conf.avail/
cp /opt/${repo}/configs/20-no-embedded.conf /etc/fonts/conf.avail/
if ! [ -f "/etc/fonts/conf.d/20-no-embedded.conf" ]; then
ln -s /etc/fonts/conf.avail/20-no-embedded.conf /etc/fonts/conf.d/
fi
# Clear and regenerate your font cache
fc-cache -f -v
# Icons
gsettings set org.gnome.desktop.interface cursor-theme capitaine-cursors
gsettings set org.gnome.desktop.interface gtk-theme Arc-Darker
gsettings set org.gnome.desktop.interface icon-theme Arc
gsettings set org.gnome.desktop.wm.preferences theme "Arc-Darker"
gtk-update-icon-cache
# grub-updater
if [ -d /etc/grub.d ]; then
cp /opt/${repo}/configs/grub.d/10_linux /etc/grub.d/10_linux
fi
mkdir -p /boot/grub/
grub-mkconfig -o /boot/grub/grub.cfg
aurupdater
add_locale_settings
if pacman -Qdtq; then
echo "Verwaiste Packete werden entfernt :)"
pacman -Rsn $(pacman -Qdtq) --noconfirm
else
echo "Es müssen keine verwaisten Packete entfernt werden :)"
fi
if ! pacman -Syu --needed --noconfirm; then
echo "Konnte Aktualisierung nicht abschliessen!!!"
fi
mkinitcpio -P -c /etc/mkinitcpio.conf
echo "Erstelle Packetverzeichnis!!!"
if [ "${archisoinstall}" == "y" ]; then
pacman -Qq > /pkglist.txt
if [ $(ls /var/cache/pacman/pkg | wc -w) -gt 0 ]; then
rm -R /var/cache/pacman/pkg/*
fi
if [ -f /root/.bash_history ]; then
rm /root/.bash_history
fi
if [ -f /home/${user}/.bash_history ]; then
rm /home/${user}/.bash_history
fi
fi
echo "$(date "+%Y%m%d-%H%M%S")"
echo "Fertig!!!"
exit 0

1670
arch-install.sh Executable file

File diff suppressed because it is too large Load diff

248
configs/.Xmodmap Executable file
View file

@ -0,0 +1,248 @@
keycode 8 =
keycode 9 = Escape NoSymbol Escape
keycode 10 = 1 exclam 1 exclam onesuperior exclamdown onesuperior
keycode 11 = 2 quotedbl 2 quotedbl twosuperior oneeighth twosuperior
keycode 12 = 3 section 3 section threesuperior sterling threesuperior
keycode 13 = 4 dollar 4 dollar onequarter currency onequarter
keycode 14 = 5 percent 5 percent onehalf threeeighths onehalf
keycode 15 = 6 ampersand 6 ampersand notsign fiveeighths notsign
keycode 16 = 7 slash 7 slash braceleft seveneighths braceleft
keycode 17 = 8 parenleft 8 parenleft bracketleft trademark bracketleft
keycode 18 = 9 parenright 9 parenright bracketright plusminus bracketright
keycode 19 = 0 equal 0 equal braceright degree braceright
keycode 20 = ssharp question ssharp question backslash questiondown U1E9E
keycode 21 = acute grave acute grave cedilla cedilla cedilla
keycode 22 = BackSpace BackSpace BackSpace BackSpace
keycode 23 = Tab ISO_Left_Tab Tab ISO_Left_Tab
keycode 24 = q Q q Q at Greek_OMEGA at
keycode 25 = w W w W lstroke Lstroke lstroke
keycode 26 = e E e E EuroSign EuroSign EuroSign
keycode 27 = r R r R paragraph registered paragraph
keycode 28 = t T t T tslash Tslash tslash
keycode 29 = z Z z Z leftarrow yen leftarrow
keycode 30 = u U u U downarrow uparrow downarrow
keycode 31 = i I i I rightarrow idotless rightarrow
keycode 32 = o O o O oslash Oslash oslash
keycode 33 = p P p P thorn THORN thorn
keycode 34 = udiaeresis Udiaeresis udiaeresis Udiaeresis diaeresis diaeresis diaeresis
keycode 35 = plus asterisk plus asterisk asciitilde macron asciitilde
keycode 36 = Return NoSymbol Return
keycode 37 = Control_L NoSymbol Control_L
keycode 38 = a A a A ae AE ae
keycode 39 = s S s S U017F U1E9E U017F
keycode 40 = d D d D eth ETH eth
keycode 41 = f F f F dstroke ordfeminine dstroke
keycode 42 = g G g G eng ENG eng
keycode 43 = h H h H hstroke Hstroke hstroke
keycode 44 = j J j J dead_belowdot dead_abovedot dead_belowdot
keycode 45 = k K k K kra ampersand kra
keycode 46 = l L l L lstroke Lstroke lstroke
keycode 47 = odiaeresis Odiaeresis odiaeresis Odiaeresis doubleacute doubleacute doubleacute
keycode 48 = adiaeresis Adiaeresis adiaeresis Adiaeresis asciicircum asciicircum asciicircum
keycode 49 = less greater less greater bar dead_belowmacron bar
keycode 50 = Shift_L NoSymbol Shift_L
keycode 51 = numbersign apostrophe numbersign apostrophe rightsinglequotemark grave rightsinglequotemark
keycode 52 = y Y y Y guillemotright U203A guillemotright
keycode 53 = x X x X guillemotleft U2039 guillemotleft
keycode 54 = c C c C cent copyright cent
keycode 55 = v V v V doublelowquotemark singlelowquotemark doublelowquotemark
keycode 56 = b B b B leftdoublequotemark leftsinglequotemark leftdoublequotemark
keycode 57 = n N n N rightdoublequotemark rightsinglequotemark rightdoublequotemark
keycode 58 = m M m M mu masculine mu
keycode 59 = comma semicolon comma semicolon periodcentered multiply periodcentered
keycode 60 = period colon period colon U2026 division U2026
keycode 61 = minus underscore minus underscore endash emdash endash
keycode 62 = Shift_R NoSymbol Shift_R
keycode 63 = KP_Multiply KP_Multiply KP_Multiply KP_Multiply KP_Multiply KP_Multiply XF86ClearGrab
keycode 64 = Alt_L Meta_L Alt_L Meta_L
keycode 65 = space NoSymbol space
keycode 66 = Caps_Lock NoSymbol Caps_Lock
keycode 67 = F1 F1 F1 F1 F1 F1 XF86Switch_VT_1
keycode 68 = F2 F2 F2 F2 F2 F2 XF86Switch_VT_2
keycode 69 = F3 F3 F3 F3 F3 F3 XF86Switch_VT_3
keycode 70 = F4 F4 F4 F4 F4 F4 XF86Switch_VT_4
keycode 71 = F5 F5 F5 F5 F5 F5 XF86Switch_VT_5
keycode 72 = F6 F6 F6 F6 F6 F6 XF86Switch_VT_6
keycode 73 = F7 F7 F7 F7 F7 F7 XF86Switch_VT_7
keycode 74 = F8 F8 F8 F8 F8 F8 XF86Switch_VT_8
keycode 75 = F9 F9 F9 F9 F9 F9 XF86Switch_VT_9
keycode 76 = F10 F10 F10 F10 F10 F10 XF86Switch_VT_10
keycode 77 = Num_Lock NoSymbol Num_Lock
keycode 78 = Scroll_Lock NoSymbol Scroll_Lock
keycode 79 = KP_Home KP_7 KP_Home KP_7
keycode 80 = KP_Up KP_8 KP_Up KP_8
keycode 81 = KP_Prior KP_9 KP_Prior KP_9
keycode 82 = KP_Subtract KP_Subtract KP_Subtract KP_Subtract KP_Subtract KP_Subtract XF86Prev_VMode
keycode 83 = KP_Left KP_4 KP_Left KP_4
keycode 84 = KP_Begin KP_5 KP_Begin KP_5
keycode 85 = KP_Right KP_6 KP_Right KP_6
keycode 86 = KP_Add KP_Add KP_Add KP_Add KP_Add KP_Add XF86Next_VMode
keycode 87 = KP_End KP_1 KP_End KP_1
keycode 88 = KP_Down KP_2 KP_Down KP_2
keycode 89 = KP_Next KP_3 KP_Next KP_3
keycode 90 = KP_Insert KP_0 KP_Insert KP_0
keycode 91 = KP_Delete KP_Separator KP_Delete KP_Separator
keycode 92 = ISO_Level3_Shift NoSymbol ISO_Level3_Shift
keycode 93 =
keycode 94 = less greater less greater bar dead_belowmacron bar
keycode 95 = F11 F11 F11 F11 F11 F11 XF86Switch_VT_11
keycode 96 = F12 F12 F12 F12 F12 F12 XF86Switch_VT_12
keycode 97 =
keycode 98 = Katakana NoSymbol Katakana
keycode 99 = Hiragana NoSymbol Hiragana
keycode 100 = Henkan_Mode NoSymbol Henkan_Mode
keycode 101 = Hiragana_Katakana NoSymbol Hiragana_Katakana
keycode 102 = Muhenkan NoSymbol Muhenkan
keycode 103 =
keycode 104 = KP_Enter NoSymbol KP_Enter
keycode 105 = Control_R NoSymbol Control_R
keycode 106 = KP_Divide KP_Divide KP_Divide KP_Divide KP_Divide KP_Divide XF86Ungrab
keycode 107 = Print Sys_Req Print Sys_Req
keycode 108 = ISO_Level3_Shift NoSymbol ISO_Level3_Shift
keycode 109 = Linefeed NoSymbol Linefeed
keycode 110 = Home NoSymbol Home
keycode 111 = Up NoSymbol Up
keycode 112 = Prior NoSymbol Prior
keycode 113 = Left NoSymbol Left
keycode 114 = Right NoSymbol Right
keycode 115 = End NoSymbol End
keycode 116 = Down NoSymbol Down
keycode 117 = Next NoSymbol Next
keycode 118 = Insert NoSymbol Insert
keycode 119 = Delete NoSymbol Delete
keycode 120 =
keycode 121 = XF86AudioMute NoSymbol XF86AudioMute
keycode 122 = XF86AudioLowerVolume NoSymbol XF86AudioLowerVolume
keycode 123 = XF86AudioRaiseVolume NoSymbol XF86AudioRaiseVolume
keycode 124 = XF86PowerOff NoSymbol XF86PowerOff
keycode 125 = KP_Equal NoSymbol KP_Equal
keycode 126 = plusminus NoSymbol plusminus
keycode 127 = Pause Break Pause Break
keycode 128 = XF86LaunchA NoSymbol XF86LaunchA
keycode 129 = KP_Decimal KP_Decimal KP_Decimal KP_Decimal
keycode 130 = Hangul NoSymbol Hangul
keycode 131 = Hangul_Hanja NoSymbol Hangul_Hanja
keycode 132 =
keycode 133 = Super_L NoSymbol Super_L
keycode 134 = Super_R NoSymbol Super_R
keycode 135 = Menu NoSymbol Menu
keycode 136 = Cancel NoSymbol Cancel
keycode 137 = Redo NoSymbol Redo
keycode 138 = SunProps NoSymbol SunProps
keycode 139 = Undo NoSymbol Undo
keycode 140 = SunFront NoSymbol SunFront
keycode 141 = XF86Copy NoSymbol XF86Copy
keycode 142 = XF86Open NoSymbol XF86Open
keycode 143 = XF86Paste NoSymbol XF86Paste
keycode 144 = Find NoSymbol Find
keycode 145 = XF86Cut NoSymbol XF86Cut
keycode 146 = Help NoSymbol Help
keycode 147 = XF86MenuKB NoSymbol XF86MenuKB
keycode 148 = XF86Calculator NoSymbol XF86Calculator
keycode 149 =
keycode 150 = XF86Sleep NoSymbol XF86Sleep
keycode 151 = XF86WakeUp NoSymbol XF86WakeUp
keycode 152 = XF86Explorer NoSymbol XF86Explorer
keycode 153 = XF86Send NoSymbol XF86Send
keycode 154 =
keycode 155 = XF86Xfer NoSymbol XF86Xfer
keycode 156 = XF86Launch1 NoSymbol XF86Launch1
keycode 157 = XF86Launch2 NoSymbol XF86Launch2
keycode 158 = XF86WWW NoSymbol XF86WWW
keycode 159 = XF86DOS NoSymbol XF86DOS
keycode 160 = XF86ScreenSaver NoSymbol XF86ScreenSaver
keycode 161 = XF86RotateWindows NoSymbol XF86RotateWindows
keycode 162 = XF86TaskPane NoSymbol XF86TaskPane
keycode 163 = XF86Mail NoSymbol XF86Mail
keycode 164 = XF86Favorites NoSymbol XF86Favorites
keycode 165 = XF86MyComputer NoSymbol XF86MyComputer
keycode 166 = XF86Back NoSymbol XF86Back
keycode 167 = XF86Forward NoSymbol XF86Forward
keycode 168 =
keycode 169 = XF86Eject NoSymbol XF86Eject
keycode 170 = XF86Eject XF86Eject XF86Eject XF86Eject
keycode 171 = XF86AudioNext NoSymbol XF86AudioNext
keycode 172 = XF86AudioPlay XF86AudioPause XF86AudioPlay XF86AudioPause
keycode 173 = XF86AudioPrev NoSymbol XF86AudioPrev
keycode 174 = XF86AudioStop XF86Eject XF86AudioStop XF86Eject
keycode 175 = XF86AudioRecord NoSymbol XF86AudioRecord
keycode 176 = XF86AudioRewind NoSymbol XF86AudioRewind
keycode 177 = XF86Phone NoSymbol XF86Phone
keycode 178 =
keycode 179 = XF86Tools NoSymbol XF86Tools
keycode 180 = XF86HomePage NoSymbol XF86HomePage
keycode 181 = XF86Reload NoSymbol XF86Reload
keycode 182 = XF86Close NoSymbol XF86Close
keycode 183 =
keycode 184 =
keycode 185 = XF86ScrollUp NoSymbol XF86ScrollUp
keycode 186 = XF86ScrollDown NoSymbol XF86ScrollDown
keycode 187 = parenleft NoSymbol parenleft
keycode 188 = parenright NoSymbol parenright
keycode 189 = XF86New NoSymbol XF86New
keycode 190 = Redo NoSymbol Redo
keycode 191 = XF86Tools NoSymbol XF86Tools
keycode 192 = XF86Launch5 NoSymbol XF86Launch5
keycode 193 = XF86Launch6 NoSymbol XF86Launch6
keycode 194 = XF86Launch7 NoSymbol XF86Launch7
keycode 195 = XF86Launch8 NoSymbol XF86Launch8
keycode 196 = XF86Launch9 NoSymbol XF86Launch9
keycode 197 =
keycode 198 = XF86AudioMicMute NoSymbol XF86AudioMicMute
keycode 199 = XF86TouchpadToggle NoSymbol XF86TouchpadToggle
keycode 200 = XF86TouchpadOn NoSymbol XF86TouchpadOn
keycode 201 = XF86TouchpadOff NoSymbol XF86TouchpadOff
keycode 202 =
keycode 203 = Mode_switch NoSymbol Mode_switch
keycode 204 = NoSymbol Alt_L NoSymbol Alt_L
keycode 205 = NoSymbol Meta_L NoSymbol Meta_L
keycode 206 = NoSymbol Super_L NoSymbol Super_L
keycode 207 = NoSymbol Hyper_L NoSymbol Hyper_L
keycode 208 = XF86AudioPlay NoSymbol XF86AudioPlay
keycode 209 = XF86AudioPause NoSymbol XF86AudioPause
keycode 210 = XF86Launch3 NoSymbol XF86Launch3
keycode 211 = XF86Launch4 NoSymbol XF86Launch4
keycode 212 = XF86LaunchB NoSymbol XF86LaunchB
keycode 213 = XF86Suspend NoSymbol XF86Suspend
keycode 214 = XF86Close NoSymbol XF86Close
keycode 215 = XF86AudioPlay NoSymbol XF86AudioPlay
keycode 216 = XF86AudioForward NoSymbol XF86AudioForward
keycode 217 =
keycode 218 = Print NoSymbol Print
keycode 219 =
keycode 220 = XF86WebCam NoSymbol XF86WebCam
keycode 221 =
keycode 222 =
keycode 223 = XF86Mail NoSymbol XF86Mail
keycode 224 = XF86Messenger NoSymbol XF86Messenger
keycode 225 = XF86Search NoSymbol XF86Search
keycode 226 = XF86Go NoSymbol XF86Go
keycode 227 = XF86Finance NoSymbol XF86Finance
keycode 228 = XF86Game NoSymbol XF86Game
keycode 229 = XF86Shop NoSymbol XF86Shop
keycode 230 =
keycode 231 = Cancel NoSymbol Cancel
keycode 232 = XF86MonBrightnessDown NoSymbol XF86MonBrightnessDown
keycode 233 = XF86MonBrightnessUp NoSymbol XF86MonBrightnessUp
keycode 234 = XF86AudioMedia NoSymbol XF86AudioMedia
keycode 235 = XF86Display NoSymbol XF86Display
keycode 236 = XF86KbdLightOnOff NoSymbol XF86KbdLightOnOff
keycode 237 = XF86KbdBrightnessDown NoSymbol XF86KbdBrightnessDown
keycode 238 = XF86KbdBrightnessUp NoSymbol XF86KbdBrightnessUp
keycode 239 = XF86Send NoSymbol XF86Send
keycode 240 = XF86Reply NoSymbol XF86Reply
keycode 241 = XF86MailForward NoSymbol XF86MailForward
keycode 242 = XF86Save NoSymbol XF86Save
keycode 243 = XF86Documents NoSymbol XF86Documents
keycode 244 = XF86Battery NoSymbol XF86Battery
keycode 245 = XF86Bluetooth NoSymbol XF86Bluetooth
keycode 246 = XF86WLAN NoSymbol XF86WLAN
keycode 247 =
keycode 248 =
keycode 249 =
keycode 250 =
keycode 251 =
keycode 252 =
keycode 253 =
keycode 254 =
keycode 255 =

3
configs/.asoundrc Executable file
View file

@ -0,0 +1,3 @@
defaults.ctl.card 2
defaults.pcm.card 2
defaults.timer.card 2

6
configs/.bash_profile Executable file
View file

@ -0,0 +1,6 @@
#Startx Automatically
if [[ -z "$DISPLAY" ]] && [[ $(tty) = /dev/tty1 ]]; then
startx
logout
fi

View file

@ -0,0 +1,4 @@
if [ $(tty) = /dev/tty1 ]; then
echo "Starting installer!!!"
arch-install
fi

6
configs/.bash_profile-sway Executable file
View file

@ -0,0 +1,6 @@
# If running from tty1 start sway
if [ "$(tty)" = "/dev/tty1" ]; then
val=$(udevadm info -a -n /dev/dri/card1 | grep boot_vga | rev | cut -c 2)
cmd="WLR_DRM_DEVICES=/dev/dri/card$val sway"
if ! eval "$cmd"; then sway; fi
fi

BIN
configs/.config-extra.tar.pxz Executable file

Binary file not shown.

BIN
configs/.config.tar.pxz Executable file

Binary file not shown.

18
configs/.gtkrc-2.0 Executable file
View file

@ -0,0 +1,18 @@
# DO NOT EDIT! This file will be overwritten by LXAppearance.
# Any customization should be done in ~/.gtkrc-2.0.mine instead.
include "/home/simono41/.gtkrc-2.0.mine"
gtk-theme-name="Arc-Darker"
gtk-icon-theme-name="Arc"
gtk-font-name="Sans 13"
gtk-cursor-theme-name="capitaine-cursors"
gtk-cursor-theme-size=0
gtk-toolbar-style=GTK_TOOLBAR_BOTH
gtk-toolbar-icon-size=GTK_ICON_SIZE_LARGE_TOOLBAR
gtk-button-images=1
gtk-menu-images=1
gtk-enable-event-sounds=1
gtk-enable-input-feedback-sounds=1
gtk-xft-antialias=1
gtk-xft-hinting=1
gtk-xft-hintstyle="hintmedium"

3
configs/.gvimrc Executable file
View file

@ -0,0 +1,3 @@
" color scheme of the moment:
syntax on
colo desert

7
configs/.imwheelrc Executable file
View file

@ -0,0 +1,7 @@
".*"
None, Up, Button4, 3
None, Down, Button5, 3
Control_L, Up, Control_L|Button4
Control_L, Down, Control_L|Button5
Shift_L, Up, Shift_L|Button4
Shift_L, Down, Shift_L|Button5

292
configs/.xscreensaver Executable file
View file

@ -0,0 +1,292 @@
# XScreenSaver Preferences File
# Written by xscreensaver-demo 6.02 for simono41 on Sun Jan 16 14:49:10 2022.
# https://www.jwz.org/xscreensaver/
timeout: 0:10:00
cycle: 0:10:00
lock: False
lockTimeout: 0:00:00
passwdTimeout: 0:00:30
visualID: default
installColormap: True
verbose: False
splash: True
splashDuration: 0:00:05
demoCommand: xscreensaver-demo
nice: 10
fade: True
unfade: False
fadeSeconds: 0:00:03
ignoreUninstalledPrograms:False
font: *-medium-r-*-140-*-m-*
dpmsEnabled: False
dpmsQuickOff: False
dpmsStandby: 2:00:00
dpmsSuspend: 2:00:00
dpmsOff: 4:00:00
grabDesktopImages: True
grabVideoFrames: False
chooseRandomImages: False
imageDirectory:
mode: one
selected: 218
textMode: file
textLiteral: XScreenSaver
textFile:
textProgram: fortune
textURL: https://en.wikipedia.org/w/index.php?title=Special:NewPages&feed=rss
dialogTheme: default
programs: \
maze -root \n\
electricsheep --root 1 \n\
GL: superquadrics -root \n\
attraction -root \n\
blitspin -root \n\
greynetic -root \n\
helix -root \n\
hopalong -root \n\
imsmap -root \n\
- noseguy -root \n\
- pyro -root \n\
qix -root \n\
- rocks -root \n\
rorschach -root \n\
decayscreen -root \n\
flame -root \n\
halo -root \n\
slidescreen -root \n\
pedal -root \n\
bouboule -root \n\
- braid -root \n\
coral -root \n\
deco -root \n\
drift -root \n\
- fadeplot -root \n\
galaxy -root \n\
goop -root \n\
grav -root \n\
ifs -root \n\
GL: jigsaw -root \n\
julia -root \n\
- kaleidescope -root \n\
GL: moebius -root \n\
moire -root \n\
GL: morph3d -root \n\
mountain -root \n\
munch -root \n\
penrose -root \n\
GL: pipes -root \n\
rd-bomb -root \n\
GL: rubik -root \n\
- sierpinski -root \n\
slip -root \n\
GL: sproingies -root \n\
starfish -root \n\
strange -root \n\
swirl -root \n\
triangle -root \n\
xjack -root \n\
xlyap -root \n\
GL: atlantis -root \n\
bsod -root \n\
GL: bubble3d -root \n\
GL: cage -root \n\
- crystal -root \n\
cynosure -root \n\
discrete -root \n\
distort -root \n\
epicycle -root \n\
flow -root \n\
GL: glplanet -root \n\
interference -root \n\
kumppa -root \n\
GL: lament -root \n\
moire2 -root \n\
any: sonar -root -font-size 0 \n\
GL: stairs -root \n\
truchet -root \n\
- vidwhacker -root \n\
blaster -root \n\
bumps -root \n\
ccurve -root \n\
compass -root \n\
deluxe -root \n\
- demon -root \n\
- GL: extrusion -root \n\
- loop -root \n\
penetrate -root \n\
petri -root \n\
phosphor -root \n\
GL: pulsar -root \n\
ripples -root \n\
shadebobs -root \n\
GL: sierpinski3d -root \n\
spotlight -root \n\
squiral -root \n\
wander -root \n\
- webcollage -root \n\
xflame -root \n\
xmatrix -root \n\
GL: gflux -root \n\
- nerverot -root \n\
xrayswarm -root \n\
xspirograph -root \n\
GL: circuit -root \n\
GL: dangerball -root \n\
- GL: dnalogo -root \n\
GL: engine -root \n\
GL: flipscreen3d -root \n\
GL: gltext -root \n\
GL: menger -root \n\
GL: molecule -root \n\
rotzoomer -root \n\
speedmine -root \n\
GL: starwars -root \n\
GL: stonerview -root \n\
vermiculate -root \n\
whirlwindwarp -root \n\
zoom -root \n\
anemone -root \n\
apollonian -root \n\
GL: boxed -root \n\
GL: cubenetic -root \n\
GL: endgame -root \n\
euler2d -root \n\
fluidballs -root \n\
GL: flurry -root -preset binary \n\
- GL: glblur -root \n\
GL: glsnake -root \n\
halftone -root \n\
GL: juggler3d -root \n\
GL: lavalite -root \n\
- polyominoes -root \n\
GL: queens -root \n\
- GL: sballs -root \n\
GL: spheremonics -root \n\
- thornbird -root \n\
twang -root \n\
- GL: antspotlight -root \n\
apple2 -root \n\
GL: atunnel -root \n\
barcode -root \n\
GL: blinkbox -root \n\
GL: blocktube -root \n\
GL: bouncingcow -root \n\
cloudlife -root \n\
GL: cubestorm -root \n\
eruption -root \n\
GL: flipflop -root \n\
GL: flyingtoasters -root \n\
fontglide -root \n\
GL: gleidescope -root \n\
GL: glknots -root \n\
GL: glmatrix -root \n\
- GL: glslideshow -root \n\
GL: hypertorus -root \n\
- GL: jigglypuff -root \n\
metaballs -root \n\
GL: mirrorblob -root \n\
piecewise -root \n\
GL: polytopes -root \n\
pong -root \n\
popsquares -root \n\
GL: surfaces -root \n\
xanalogtv -root \n\
abstractile -root \n\
anemotaxis -root \n\
- GL: antinspect -root \n\
fireworkx -root \n\
fuzzyflakes -root \n\
interaggregate -root \n\
intermomentary -root \n\
memscroller -root \n\
GL: noof -root \n\
pacman -root \n\
GL: pinion -root \n\
GL: polyhedra -root \n\
- GL: providence -root \n\
substrate -root \n\
wormhole -root \n\
- GL: antmaze -root \n\
GL: boing -root \n\
boxfit -root \n\
GL: carousel -root \n\
celtic -root \n\
GL: crackberg -root \n\
GL: cube21 -root \n\
fiberlamp -root \n\
GL: fliptext -root \n\
GL: glhanoi -root \n\
GL: tangram -root \n\
GL: timetunnel -root \n\
GL: glschool -root \n\
GL: topblock -root \n\
GL: cubicgrid -root \n\
cwaves -root \n\
GL: gears -root \n\
GL: glcells -root \n\
GL: lockward -root \n\
m6502 -root \n\
GL: moebiusgears -root \n\
GL: voronoi -root \n\
GL: hypnowheel -root \n\
GL: klein -root \n\
- lcdscrub -root \n\
GL: photopile -root \n\
GL: skytentacles -root \n\
GL: rubikblocks -root \n\
GL: companioncube -root \n\
GL: hilbert -root \n\
GL: tronbit -root \n\
GL: geodesic -root \n\
hexadrop -root \n\
GL: kaleidocycle -root \n\
GL: quasicrystal -root \n\
GL: unknownpleasures -root \n\
binaryring -root \n\
GL: cityflow -root \n\
GL: geodesicgears -root \n\
GL: projectiveplane -root \n\
GL: romanboy -root \n\
tessellimage -root \n\
GL: winduprobot -root \n\
GL: splitflap -root \n\
GL: cubestack -root \n\
GL: cubetwist -root \n\
GL: discoball -root \n\
GL: dymaxionmap -root \n\
GL: energystream -root \n\
GL: hexstrut -root \n\
GL: hydrostat -root \n\
GL: raverhoop -root \n\
GL: splodesic -root \n\
GL: unicrud -root \n\
GL: vigilance -root \n\
GL: esper -root \n\
GL: crumbler -root \n\
filmleader -root \n\
glitchpeg -root \n\
GL: handsy -root \n\
GL: maze3d -root \n\
GL: peepers -root \n\
GL: razzledazzle -root \n\
vfeedback -root \n\
GL: deepstars -root \n\
GL: gravitywell -root \n\
scooter -root \n\
GL: beats -root \n\
GL: covid19 -root \n\
GL: etruscanvenus -root \n\
GL: gibson -root \n\
GL: headroom -root \n\
GL: sphereeversion -root \n\
binaryhorizon -root \n\
marbling -root \n\
pointerHysteresis: 10
authWarningSlack: 20

172
configs/10-wacom.rules Executable file
View file

@ -0,0 +1,172 @@
# udev rules for wacom tablets.
#
# These rules were compiled for the Arch Linux distribution,
# (strongly based on rules for Debian GNU/Linux)
# In our version, names built after information in driver to match
# information given by xinput --list. We use simpler mapping rules:
# 1. we convert the device string to lowercase and convert spaces to hyphen
# 2. we convert string "wacom" to "input/tablet"
# 3. we convert string "isdv4" to "tpc"
# 4. we mark bluetooth devices by adding "-bt" at end of non its basic version
# 5. in case when two ids give the same name (which is a bug we believe) we
# change the name by hand. There is one such case: both 0x42 and 0x47 are named
# "Wacom Intuos2 4x5". We rename second one to "Wacom Intuos2 4x5a" to avoid
# conflicts.
# We also fixes some missing ids, removed not supported ids and corrected
# mistakes in original rules file.
KERNEL!="event[0-9]*", GOTO="wacom_end"
# Port specific link for users of multiple tablets of the same type.
# The ID_PATH variable is set by the "path_id" script in an earlier rule file.
ATTRS{idVendor}=="056a", ENV{ID_PATH}=="?*", SYMLINK="input/by-path/$env{ID_PATH}-wacom"
# Multiple interface support for stylus and touch devices.
DRIVERS=="wacom", ATTRS{bInterfaceNumber}=="00", ENV{WACOM_TYPE}="stylus"
DRIVERS=="wacom", ATTRS{bInterfaceNumber}=="01", ENV{WACOM_TYPE}="touch"
# Type-named links for multiple tablets. If you want to use multiple
# tablets of the _same_ type, you will probably need to use the links
# from /dev/input/by-path to identify which is plugged into what usb
# port. For different tablet types though, just pick your links from
# the list below.
ATTRS{idVendor}=="056a", ATTRS{idProduct}=="0000", SYMLINK+="input/tablet-penpartner"
ATTRS{idVendor}=="056a", ATTRS{idProduct}=="0003", SYMLINK+="input/tablet-cintiq-partner"
ATTRS{idVendor}=="056a", ATTRS{idProduct}=="0010", SYMLINK+="input/tablet-graphire"
ATTRS{idVendor}=="056a", ATTRS{idProduct}=="0011", SYMLINK+="input/tablet-graphire2-4x5"
ATTRS{idVendor}=="056a", ATTRS{idProduct}=="0012", SYMLINK+="input/tablet-graphire2-5x7"
ATTRS{idVendor}=="056a", ATTRS{idProduct}=="0013", SYMLINK+="input/tablet-graphire3"
ATTRS{idVendor}=="056a", ATTRS{idProduct}=="0014", SYMLINK+="input/tablet-graphire3-6x8"
ATTRS{idVendor}=="056a", ATTRS{idProduct}=="0015", SYMLINK+="input/tablet-graphire4-4x5"
ATTRS{idVendor}=="056a", ATTRS{idProduct}=="0016", SYMLINK+="input/tablet-graphire4-6x8"
ATTRS{idVendor}=="056a", ATTRS{idProduct}=="0017", SYMLINK+="input/tablet-bamboofun-4x5"
ATTRS{idVendor}=="056a", ATTRS{idProduct}=="0018", SYMLINK+="input/tablet-bamboofun-6x8"
ATTRS{idVendor}=="056a", ATTRS{idProduct}=="0019", SYMLINK+="input/tablet-bamboo1-medium"
ATTRS{idVendor}=="056a", ATTRS{idProduct}=="0020", SYMLINK+="input/tablet-intuos-4x5"
ATTRS{idVendor}=="056a", ATTRS{idProduct}=="0021", SYMLINK+="input/tablet-intuos-6x8"
ATTRS{idVendor}=="056a", ATTRS{idProduct}=="0022", SYMLINK+="input/tablet-intuos-9x12"
ATTRS{idVendor}=="056a", ATTRS{idProduct}=="0023", SYMLINK+="input/tablet-intuos-12x12"
ATTRS{idVendor}=="056a", ATTRS{idProduct}=="0024", SYMLINK+="input/tablet-intuos-12x18"
ATTRS{idVendor}=="056a", ATTRS{idProduct}=="0026", SYMLINK+="input/tablet-intuos5-touch-s"
ATTRS{idVendor}=="056a", ATTRS{idProduct}=="0027", SYMLINK+="input/tablet-intuos5-touch-m"
ATTRS{idVendor}=="056a", ATTRS{idProduct}=="0028", SYMLINK+="input/tablet-intuos5-touch-l"
ATTRS{idVendor}=="056a", ATTRS{idProduct}=="0029", SYMLINK+="input/tablet-intuos5-s"
ATTRS{idVendor}=="056a", ATTRS{idProduct}=="002a", SYMLINK+="input/tablet-intuos5-m"
ATTRS{idVendor}=="056a", ATTRS{idProduct}=="0030", SYMLINK+="input/tablet-pl400"
ATTRS{idVendor}=="056a", ATTRS{idProduct}=="0031", SYMLINK+="input/tablet-pl500"
ATTRS{idVendor}=="056a", ATTRS{idProduct}=="0032", SYMLINK+="input/tablet-pl600"
ATTRS{idVendor}=="056a", ATTRS{idProduct}=="0033", SYMLINK+="input/tablet-pl600sx"
ATTRS{idVendor}=="056a", ATTRS{idProduct}=="0034", SYMLINK+="input/tablet-pl550"
ATTRS{idVendor}=="056a", ATTRS{idProduct}=="0035", SYMLINK+="input/tablet-pl800"
ATTRS{idVendor}=="056a", ATTRS{idProduct}=="0037", SYMLINK+="input/tablet-pl700"
ATTRS{idVendor}=="056a", ATTRS{idProduct}=="0038", SYMLINK+="input/tablet-pl510"
ATTRS{idVendor}=="056a", ATTRS{idProduct}=="0039", SYMLINK+="input/tablet-dtu710"
ATTRS{idVendor}=="056a", ATTRS{idProduct}=="003f", SYMLINK+="input/tablet-cintiq-21ux"
ATTRS{idVendor}=="056a", ATTRS{idProduct}=="0041", SYMLINK+="input/tablet-intuos2-4x5"
ATTRS{idVendor}=="056a", ATTRS{idProduct}=="0042", SYMLINK+="input/tablet-intuos2-6x8"
ATTRS{idVendor}=="056a", ATTRS{idProduct}=="0043", SYMLINK+="input/tablet-intuos2-9x12"
ATTRS{idVendor}=="056a", ATTRS{idProduct}=="0044", SYMLINK+="input/tablet-intuos2-12x12"
ATTRS{idVendor}=="056a", ATTRS{idProduct}=="0045", SYMLINK+="input/tablet-intuos2-12x18"
ATTRS{idVendor}=="056a", ATTRS{idProduct}=="0047", SYMLINK+="input/tablet-intuos2-6x8a"
ATTRS{idVendor}=="056a", ATTRS{idProduct}=="0057", ENV{WACOM_TYPE}!="touch", SYMLINK+="input/tablet-dtk2241"
ATTRS{idVendor}=="056a", ATTRS{idProduct}=="0059", ENV{WACOM_TYPE}!="touch", SYMLINK+="input/tablet-dth2242"
ATTRS{idVendor}=="056a", ATTRS{idProduct}=="005b", SYMLINK+="input/tablet-cintiq-22hdt"
ATTRS{idVendor}=="056a", ATTRS{idProduct}=="005d", ENV{WACOM_TYPE}=="touch", SYMLINK+="input/tablet-dth2242-touch"
ATTRS{idVendor}=="056a", ATTRS{idProduct}=="005e", SYMLINK+="input/tablet-cintiq-22hdt-touch"
ATTRS{idVendor}=="056a", ATTRS{idProduct}=="0060", SYMLINK+="input/tablet-volito"
ATTRS{idVendor}=="056a", ATTRS{idProduct}=="0061", SYMLINK+="input/tablet-penstation2"
ATTRS{idVendor}=="056a", ATTRS{idProduct}=="0062", SYMLINK+="input/tablet-volito2-4x5"
ATTRS{idVendor}=="056a", ATTRS{idProduct}=="0063", SYMLINK+="input/tablet-volito2-2x3"
ATTRS{idVendor}=="056a", ATTRS{idProduct}=="0064", SYMLINK+="input/tablet-penpartner2"
ATTRS{idVendor}=="056a", ATTRS{idProduct}=="0065", SYMLINK+="input/tablet-bamboo"
ATTRS{idVendor}=="056a", ATTRS{idProduct}=="0069", SYMLINK+="input/tablet-bamboo1"
ATTRS{idVendor}=="056a", ATTRS{idProduct}=="006a", SYMLINK+="input/tablet-bamboo1-4x6"
ATTRS{idVendor}=="056a", ATTRS{idProduct}=="006b", SYMLINK+="input/tablet-bamboo1-5x8"
ATTRS{idVendor}=="056a", ATTRS{idProduct}=="0081", SYMLINK+="input/tablet-graphire-6x8-bt"
ATTRS{idVendor}=="056a", ATTRS{idProduct}=="0084", SYMLINK="input/tablet-wireless-receiver-$env{WACOM_TYPE}"
ATTRS{idVendor}=="056a", ATTRS{idProduct}=="0090", SYMLINK+="input/tablet-tpc-90"
ATTRS{idVendor}=="056a", ATTRS{idProduct}=="0093", SYMLINK="input/tablet-tpc-93-$env{WACOM_TYPE}"
ATTRS{idVendor}=="056a", ATTRS{idProduct}=="0097", SYMLINK="input/tablet-tpc-97-$env{WACOM_TYPE}"
ATTRS{idVendor}=="056a", ATTRS{idProduct}=="009a", SYMLINK="input/tablet-tpc-9a-$env{WACOM_TYPE}"
ATTRS{idVendor}=="056a", ATTRS{idProduct}=="009f", SYMLINK="input/tablet-tpc-9f-$env{WACOM_TYPE}"
ATTRS{idVendor}=="056a", ATTRS{idProduct}=="00b0", SYMLINK+="input/tablet-intuos3-4x5"
ATTRS{idVendor}=="056a", ATTRS{idProduct}=="00b1", SYMLINK+="input/tablet-intuos3-6x8"
ATTRS{idVendor}=="056a", ATTRS{idProduct}=="00b2", SYMLINK+="input/tablet-intuos3-9x12"
ATTRS{idVendor}=="056a", ATTRS{idProduct}=="00b3", SYMLINK+="input/tablet-intuos3-12x12"
ATTRS{idVendor}=="056a", ATTRS{idProduct}=="00b4", SYMLINK+="input/tablet-intuos3-12x19"
ATTRS{idVendor}=="056a", ATTRS{idProduct}=="00b5", SYMLINK+="input/tablet-intuos3-6x11"
ATTRS{idVendor}=="056a", ATTRS{idProduct}=="00b7", SYMLINK+="input/tablet-intuos3-4x6"
ATTRS{idVendor}=="056a", ATTRS{idProduct}=="00b8", SYMLINK+="input/tablet-intuos4-4x6"
ATTRS{idVendor}=="056a", ATTRS{idProduct}=="00b9", SYMLINK+="input/tablet-intuos4-6x9"
ATTRS{idVendor}=="056a", ATTRS{idProduct}=="00ba", SYMLINK+="input/tablet-intuos4-8x13"
ATTRS{idVendor}=="056a", ATTRS{idProduct}=="00bb", SYMLINK+="input/tablet-intuos4-12x19"
ATTRS{idVendor}=="056a", ATTRS{idProduct}=="00bc", SYMLINK+="input/tablet-intuos4-wl"
ATTRS{idVendor}=="056a", ATTRS{idProduct}=="00bd", SYMLINK+="input/tablet-intuos4-wl-bt"
ATTRS{idVendor}=="056a", ATTRS{idProduct}=="00c0", SYMLINK+="input/tablet-dtf720"
ATTRS{idVendor}=="056a", ATTRS{idProduct}=="00c2", SYMLINK+="input/tablet-dtf720a"
ATTRS{idVendor}=="056a", ATTRS{idProduct}=="00c4", SYMLINK+="input/tablet-dtf521"
ATTRS{idVendor}=="056a", ATTRS{idProduct}=="00c5", SYMLINK+="input/tablet-cintiq-20wsx"
ATTRS{idVendor}=="056a", ATTRS{idProduct}=="00c6", SYMLINK+="input/tablet-cintiq-12wx"
ATTRS{idVendor}=="056a", ATTRS{idProduct}=="00c7", ENV{WACOM_TYPE}!="touch", SYMLINK+="input/tablet-dtu1931"
ATTRS{idVendor}=="056a", ATTRS{idProduct}=="00cc", SYMLINK+="input/tablet-cintiq-21ux2"
ATTRS{idVendor}=="056a", ATTRS{idProduct}=="00ce", ENV{WACOM_TYPE}!="touch", SYMLINK+="input/tablet-dtu2231"
ATTRS{idVendor}=="056a", ATTRS{idProduct}=="00d0", SYMLINK="input/tablet-bamboo-2fg-$env{WACOM_TYPE}"
ATTRS{idVendor}=="056a", ATTRS{idProduct}=="00d1", SYMLINK="input/tablet-bamboo-2fg-4x5-$env{WACOM_TYPE}"
ATTRS{idVendor}=="056a", ATTRS{idProduct}=="00d2", SYMLINK="input/tablet-bamboo-craft-$env{WACOM_TYPE}"
ATTRS{idVendor}=="056a", ATTRS{idProduct}=="00d3", SYMLINK="input/tablet-bamboo-2fg-6x8-$env{WACOM_TYPE}"
ATTRS{idVendor}=="056a", ATTRS{idProduct}=="00d4", SYMLINK+="input/tablet-bamboo-pen"
ATTRS{idVendor}=="056a", ATTRS{idProduct}=="00d5", SYMLINK+="input/tablet-bamboo-pen-6x8"
ATTRS{idVendor}=="056a", ATTRS{idProduct}=="00d6", SYMLINK="input/tablet-bamboopt-2fg-4x5-$env{WACOM_TYPE}"
ATTRS{idVendor}=="056a", ATTRS{idProduct}=="00d7", SYMLINK="input/tablet-bamboopt-2fg-small-$env{WACOM_TYPE}"
ATTRS{idVendor}=="056a", ATTRS{idProduct}=="00d8", SYMLINK="input/tablet-bamboo-comic-2fg-$env{WACOM_TYPE}"
ATTRS{idVendor}=="056a", ATTRS{idProduct}=="00da", SYMLINK="input/tablet-bamboo-2fg-4x5-se-$env{WACOM_TYPE}"
ATTRS{idVendor}=="056a", ATTRS{idProduct}=="00db", SYMLINK="input/tablet-bamboo-2fg-6x8-se-$env{WACOM_TYPE}"
ATTRS{idVendor}=="056a", ATTRS{idProduct}=="00dd", SYMLINK+="input/tablet-bamboo-connect"
ATTRS{idVendor}=="056a", ATTRS{idProduct}=="00de", SYMLINK="input/tablet-bamboo-16fg-4x5-$env{WACOM_TYPE}"
ATTRS{idVendor}=="056a", ATTRS{idProduct}=="00df", SYMLINK="input/tablet-bamboo-16fg-6x8-$env{WACOM_TYPE}"
ATTRS{idVendor}=="056a", ATTRS{idProduct}=="00e2", SYMLINK="input/tablet-tpc-e2-$env{WACOM_TYPE}"
ATTRS{idVendor}=="056a", ATTRS{idProduct}=="00e3", SYMLINK="input/tablet-tpc-e3-$env{WACOM_TYPE}"
ATTRS{idVendor}=="056a", ATTRS{idProduct}=="00e5", SYMLINK="input/tablet-tpc-e5-$env{WACOM_TYPE}"
ATTRS{idVendor}=="056a", ATTRS{idProduct}=="00e6", SYMLINK="input/tablet-tpc-e6-$env{WACOM_TYPE}"
ATTRS{idVendor}=="056a", ATTRS{idProduct}=="00ec", SYMLINK="input/tablet-tpc-ec-$env{WACOM_TYPE}"
ATTRS{idVendor}=="056a", ATTRS{idProduct}=="00ed", SYMLINK="input/tablet-tpc-ed-$env{WACOM_TYPE}"
ATTRS{idVendor}=="056a", ATTRS{idProduct}=="00ef", SYMLINK="input/tablet-tpc-ef-$env{WACOM_TYPE}"
ATTRS{idVendor}=="056a", ATTRS{idProduct}=="00f0", ENV{WACOM_TYPE}!="touch", SYMLINK+="input/tablet-dtu1631"
ATTRS{idVendor}=="056a", ATTRS{idProduct}=="00f4", SYMLINK+="input/tablet-cintiq-24hd"
ATTRS{idVendor}=="056a", ATTRS{idProduct}=="00f6", SYMLINK+="input/tablet-cintiq-24hdt-touch"
ATTRS{idVendor}=="056a", ATTRS{idProduct}=="00f8", SYMLINK+="input/tablet-cintiq-24hdt"
ATTRS{idVendor}=="056a", ATTRS{idProduct}=="00fa", SYMLINK+="input/tablet-cintiq-22hd"
ATTRS{idVendor}=="056a", ATTRS{idProduct}=="00fb", ENV{WACOM_TYPE}!="touch", SYMLINK+="input/tablet-dtu1031"
ATTRS{idVendor}=="056a", ATTRS{idProduct}=="0100", SYMLINK="input/tablet-tpc-100-$env{WACOM_TYPE}"
ATTRS{idVendor}=="056a", ATTRS{idProduct}=="0101", SYMLINK="input/tablet-tpc-101-$env{WACOM_TYPE}"
ATTRS{idVendor}=="056a", ATTRS{idProduct}=="010d", SYMLINK="input/tablet-tpc-10d-$env{WACOM_TYPE}"
ATTRS{idVendor}=="056a", ATTRS{idProduct}=="010e", SYMLINK="input/tablet-tpc-10e-$env{WACOM_TYPE}"
ATTRS{idVendor}=="056a", ATTRS{idProduct}=="010f", SYMLINK="input/tablet-tpc-10f-$env{WACOM_TYPE}"
ATTRS{idVendor}=="056a", ATTRS{idProduct}=="0300", SYMLINK+="input/tablet-bamboo-one-5"
ATTRS{idVendor}=="056a", ATTRS{idProduct}=="0301", SYMLINK+="input/tablet-bamboo-one-m"
ATTRS{idVendor}=="056a", ATTRS{idProduct}=="0302", SYMLINK+="input/tablet-intuos-pt-s"
ATTRS{idVendor}=="056a", ATTRS{idProduct}=="0303", SYMLINK+="input/tablet-intuos-pt-m"
ATTRS{idVendor}=="056a", ATTRS{idProduct}=="0304", SYMLINK+="input/tablet-cintiq-13hd"
ATTRS{idVendor}=="056a", ATTRS{idProduct}=="0307", SYMLINK+="input/tablet-hybrid"
ATTRS{idVendor}=="056a", ATTRS{idProduct}=="0309", SYMLINK+="input/tablet-hybrid-touch"
ATTRS{idVendor}=="056a", ATTRS{idProduct}=="030e", SYMLINK+="input/tablet-intuos-s"
ATTRS{idVendor}=="056a", ATTRS{idProduct}=="0314", SYMLINK+="input/tablet-intuos-pro-5"
ATTRS{idVendor}=="056a", ATTRS{idProduct}=="0315", SYMLINK+="input/tablet-intuos-pro-m"
ATTRS{idVendor}=="056a", ATTRS{idProduct}=="0317", SYMLINK+="input/tablet-intuos-pro-l"
ATTRS{idVendor}=="056a", ATTRS{idProduct}=="4001", SYMLINK="input/tablet-tpc-4001-$env{WACOM_TYPE}"
# Convenience links for the common case of a single tablet.
ATTRS{idVendor}=="056a", ENV{WACOM_TYPE}!="touch", SYMLINK+="input/wacom"
ATTRS{idVendor}=="056a", SYMLINK+="input/wacom-$env{WACOM_TYPE}"
LABEL="wacom_end"
# Match all wacom tablets with a serial ID starting with WACf or FUJ.
ACTION!="add|change", GOTO="second_wacom_end"
ATTRS{id}=="WACf*" ENV{NAME}="Serial Wacom Tablet", ENV{ID_INPUT}="1", ENV{ID_INPUT_TABLET}="1", SYMLINK+="input/wacom"
ATTRS{id}=="FUJ*" ENV{NAME}="Serial Wacom Tablet", ENV{ID_INPUT}="1", ENV{ID_INPUT_TABLET}="1", SYMLINK+="input/wacom"
LABEL="second_wacom_end"

9
configs/20-no-embedded.conf Executable file
View file

@ -0,0 +1,9 @@
<?xml version="1.0"?>
<!DOCTYPE fontconfig SYSTEM "fonts.dtd">
<fontconfig>
<match target="font">
<edit name="embeddedbitmap" mode="assign">
<bool>false</bool>
</edit>
</match>
</fontconfig>

52
configs/bash.bashrc Executable file
View file

@ -0,0 +1,52 @@
#
# /etc/bash.bashrc
#
# If not running interactively, don't do anything
[[ $- != *i* ]] && return
[[ $DISPLAY ]] && shopt -s checkwinsize
PS1='[\u@\h \W]\$ '
case ${TERM} in
xterm*|rxvt*|Eterm|aterm|kterm|gnome*)
PROMPT_COMMAND=${PROMPT_COMMAND:+$PROMPT_COMMAND; }'printf "\033]0;%s@%s:%s\007" "${USER}" "${HOSTNAME%%.*}" "${PWD/#$HOME/\~}"'
;;
screen*)
PROMPT_COMMAND=${PROMPT_COMMAND:+$PROMPT_COMMAND; }'printf "\033_%s@%s:%s\033\\" "${USER}" "${HOSTNAME%%.*}" "${PWD/#$HOME/\~}"'
;;
esac
[ -r /usr/share/bash-completion/bash_completion ] && . /usr/share/bash-completion/bash_completion
echo -e "\n";
echo -e "\033[1;33m Willkommen auf $(uname -n) \033[0m";
echo -e "\n";
echo -e "=============================================================================================="
echo -e "\033[1;33m Systemzeit: \033[0m" `date | awk '{print $4}'`
echo -e "\033[1;33m Online seit: \033[0m" `uptime | awk '{print $3}'` "Stunden"
echo -e "\033[1;33m Speichernutzung: \033[0m" `cat /proc/meminfo|grep 'MemF'| awk '{print $2}'` "kB von" `cat /proc/meminfo|grep 'MemT'| awk '{print $2}'` "kB frei"
if [ -f /sys/class/thermal/thermal_zone0/temp ]; then
echo -e "\033[1;33m CPU-Temp: \033[0m" `cat /sys/class/thermal/thermal_zone0/temp| awk '{print $1/1000}'` "°C"
fi
echo -e "\033[1;33m IPs: \033[0m" `ip addr | grep 'inet' | grep -v inet6 | grep -vE '127\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}' | grep -o -E '[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}' | head -1`
echo -e "\033[1;33m Macs: \033[0m" `ip link | grep ether`
echo -e "\033[1;33m Benutzer: \033[0m" `whoami`
echo -e "\033[1;33m Grafikkarte: \033[0m" `lspci | grep -e VGA -e 3D -m 1`
#echo -e "\033[1;33m OpenGL renderer: \033[0m" `glxinfo | grep "OpenGL renderer"`
#echo -e "\033[1;33m Öffentliche IP: \033[0m" `wget -qO- ipv6.icanhazip.com || echo "Gescheitert"`
echo -e "=============================================================================================="
echo -e "User Anschluß Seit von"
/usr/bin/who
echo -e "=============================================================================================="
alias reboot="sudo systemctl reboot"
alias poweroff="sudo systemctl poweroff"
alias halt="sudo systemctl halt"
alias hibernate="sudo systemctl hibernate"
alias hybrid="sudo systemctl hybrid-sleep"
alias suspend="sudo systemctl suspend"
eval "$(starship init bash)"

358
configs/grub.d/10_linux Executable file
View file

@ -0,0 +1,358 @@
#! /bin/sh
set -e
# grub-mkconfig helper script.
# Copyright (C) 2006,2007,2008,2009,2010 Free Software Foundation, Inc.
#
# GRUB is free software: you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
# the Free Software Foundation, either version 3 of the License, or
# (at your option) any later version.
#
# GRUB is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public License
# along with GRUB. If not, see <http://www.gnu.org/licenses/>.
prefix="/usr"
exec_prefix="/usr"
datarootdir="/usr/share"
. "$pkgdatadir/grub-mkconfig_lib"
export TEXTDOMAIN=grub
export TEXTDOMAINDIR="${datarootdir}/locale"
CLASS="--class gnu-linux --class gnu --class os"
if [ "x${GRUB_DISTRIBUTOR}" = "x" ] ; then
OS=Linux
else
OS="${GRUB_DISTRIBUTOR} Linux"
CLASS="--class $(echo ${GRUB_DISTRIBUTOR} | tr 'A-Z' 'a-z' | cut -d' ' -f1|LC_ALL=C sed 's,[^[:alnum:]_],_,g') ${CLASS}"
fi
# loop-AES arranges things so that /dev/loop/X can be our root device, but
# the initrds that Linux uses don't like that.
case ${GRUB_DEVICE} in
/dev/loop/*|/dev/loop[0-9])
GRUB_DEVICE=`losetup ${GRUB_DEVICE} | sed -e "s/^[^(]*(\([^)]\+\)).*/\1/"`
;;
esac
if [ "x${GRUB_CMDLINE_LINUX_RECOVERY}" = "x" ] ; then
GRUB_CMDLINE_LINUX_RECOVERY=single
fi
# Default to disabling partition uuid support to maintian compatibility with
# older kernels.
GRUB_DISABLE_LINUX_PARTUUID=${GRUB_DISABLE_LINUX_PARTUUID-true}
# btrfs may reside on multiple devices. We cannot pass them as value of root= parameter
# and mounting btrfs requires user space scanning, so force UUID in this case.
if ( [ "x${GRUB_DEVICE_UUID}" = "x" ] && [ "x${GRUB_DEVICE_PARTUUID}" = "x" ] ) \
|| ( [ "x${GRUB_DISABLE_LINUX_UUID}" = "xtrue" ] \
&& [ "x${GRUB_DISABLE_LINUX_PARTUUID}" = "xtrue" ] ) \
|| ( ! test -e "/dev/disk/by-uuid/${GRUB_DEVICE_UUID}" \
&& ! test -e "/dev/disk/by-partuuid/${GRUB_DEVICE_PARTUUID}" ) \
|| ( test -e "${GRUB_DEVICE}" && uses_abstraction "${GRUB_DEVICE}" lvm ); then
LINUX_ROOT_DEVICE=${GRUB_DEVICE}
elif [ "x${GRUB_DEVICE_UUID}" = "x" ] \
|| [ "x${GRUB_DISABLE_LINUX_UUID}" = "xtrue" ]; then
LINUX_ROOT_DEVICE=PARTUUID=${GRUB_DEVICE_PARTUUID}
else
LINUX_ROOT_DEVICE=UUID=${GRUB_DEVICE_UUID}
fi
case x"$GRUB_FS" in
xbtrfs)
rootsubvol="`make_system_path_relative_to_its_root /`"
rootsubvol="${rootsubvol#/}"
if [ "x${rootsubvol}" != x ]; then
GRUB_CMDLINE_LINUX="rootflags=subvol=${rootsubvol} ${GRUB_CMDLINE_LINUX}"
fi;;
xzfs)
rpool=`${grub_probe} --device ${GRUB_DEVICE} --target=fs_label 2>/dev/null || true`
bootfs="`make_system_path_relative_to_its_root / | sed -e "s,@$,,"`"
LINUX_ROOT_DEVICE="ZFS=${rpool}${bootfs%/}"
;;
esac
title_correction_code=
linux_entry ()
{
os="$1"
version="$2"
type="$3"
args="$4"
if [ -z "$boot_device_id" ]; then
boot_device_id="$(grub_get_device_id "${GRUB_DEVICE}")"
fi
if [ x$type != xsimple ] ; then
case $type in
booster)
title="$(gettext_printf "%s, with Linux %s (booster initramfs)" "${os}" "${version}")" ;;
fallback)
title="$(gettext_printf "%s, with Linux %s (fallback initramfs)" "${os}" "${version}")" ;;
snapshot)
title="$(gettext_printf "%s, with Linux %s (snapshot) ${SNAPSHOTNAME}" "${os}" "${version}")" ;;
recovery)
title="$(gettext_printf "%s, with Linux %s (recovery mode)" "${os}" "${version}")" ;;
*)
title="$(gettext_printf "%s, with Linux %s" "${os}" "${version}")" ;;
esac
if [ x"$title" = x"$GRUB_ACTUAL_DEFAULT" ] || [ x"Previous Linux versions>$title" = x"$GRUB_ACTUAL_DEFAULT" ]; then
replacement_title="$(echo "Advanced options for ${OS}" | sed 's,>,>>,g')>$(echo "$title" | sed 's,>,>>,g')"
quoted="$(echo "$GRUB_ACTUAL_DEFAULT" | grub_quote)"
title_correction_code="${title_correction_code}if [ \"x\$default\" = '$quoted' ]; then default='$(echo "$replacement_title" | grub_quote)'; fi;"
grub_warn "$(gettext_printf "Please don't use old title \`%s' for GRUB_DEFAULT, use \`%s' (for versions before 2.00) or \`%s' (for 2.00 or later)" "$GRUB_ACTUAL_DEFAULT" "$replacement_title" "gnulinux-advanced-$boot_device_id>gnulinux-$version-$type-$boot_device_id")"
fi
echo "menuentry '$(echo "$title" | grub_quote)' ${CLASS} \$menuentry_id_option 'gnulinux-$version-$type-$boot_device_id' {" | sed "s/^/$submenu_indentation/"
else
echo "menuentry '$(echo "$os" | grub_quote)' ${CLASS} \$menuentry_id_option 'gnulinux-simple-$boot_device_id' {" | sed "s/^/$submenu_indentation/"
fi
if [ x$type != xrecovery ] ; then
save_default_entry | grub_add_tab
fi
# Use ELILO's generic "efifb" when it's known to be available.
# FIXME: We need an interface to select vesafb in case efifb can't be used.
if [ "x$GRUB_GFXPAYLOAD_LINUX" = x ]; then
echo " load_video" | sed "s/^/$submenu_indentation/"
if grep -qx "CONFIG_FB_EFI=y" "${config}" 2> /dev/null \
&& grep -qx "CONFIG_VT_HW_CONSOLE_BINDING=y" "${config}" 2> /dev/null; then
echo " set gfxpayload=keep" | sed "s/^/$submenu_indentation/"
fi
else
if [ "x$GRUB_GFXPAYLOAD_LINUX" != xtext ]; then
echo " load_video" | sed "s/^/$submenu_indentation/"
fi
echo " set gfxpayload=$GRUB_GFXPAYLOAD_LINUX" | sed "s/^/$submenu_indentation/"
fi
echo " insmod gzio" | sed "s/^/$submenu_indentation/"
if [ x$dirname = x/ ]; then
if [ -z "${prepare_root_cache}" ]; then
prepare_root_cache="$(prepare_grub_to_access_device ${GRUB_DEVICE} | grub_add_tab)"
fi
printf '%s\n' "${prepare_root_cache}" | sed "s/^/$submenu_indentation/"
else
if [ -z "${prepare_boot_cache}" ]; then
prepare_boot_cache="$(prepare_grub_to_access_device ${GRUB_DEVICE_BOOT} | grub_add_tab)"
fi
printf '%s\n' "${prepare_boot_cache}" | sed "s/^/$submenu_indentation/"
fi
message="$(gettext_printf "Loading Linux %s ..." ${version})"
sed "s/^/$submenu_indentation/" << EOF
echo '$(echo "$message" | grub_quote)'
linux ${rel_dirname}/${basename} root=${linux_root_device_thisversion} rw ${args}
EOF
if test -n "${initrd}" ; then
# TRANSLATORS: ramdisk isn't identifier. Should be translated.
message="$(gettext_printf "Loading initial ramdisk ...")"
initrd_path=
for i in ${initrd}; do
initrd_path="${initrd_path} ${rel_dirname}/${i}"
done
sed "s/^/$submenu_indentation/" << EOF
echo '$(echo "$message" | grub_quote)'
initrd $(echo $initrd_path)
EOF
fi
sed "s/^/$submenu_indentation/" << EOF
}
EOF
}
machine=`uname -m`
case "x$machine" in
xi?86 | xx86_64)
list=
for i in /boot/vmlinuz-* /vmlinuz-* /boot/kernel-* ; do
if grub_file_is_not_garbage "$i" ; then list="$list $i" ; fi
done ;;
*)
list=
for i in /boot/vmlinuz-* /boot/vmlinux-* /vmlinuz-* /vmlinux-* /boot/kernel-* ; do
if grub_file_is_not_garbage "$i" ; then list="$list $i" ; fi
done ;;
esac
case "$machine" in
i?86) GENKERNEL_ARCH="x86" ;;
mips|mips64) GENKERNEL_ARCH="mips" ;;
mipsel|mips64el) GENKERNEL_ARCH="mipsel" ;;
arm*) GENKERNEL_ARCH="arm" ;;
*) GENKERNEL_ARCH="$machine" ;;
esac
prepare_boot_cache=
prepare_root_cache=
boot_device_id=
title_correction_code=
# Extra indentation to add to menu entries in a submenu. We're not in a submenu
# yet, so it's empty. In a submenu it will be equal to '\t' (one tab).
submenu_indentation=""
# Perform a reverse version sort on the entire list.
# Temporarily replace the '.old' suffix by ' 1' and append ' 2' for all
# other files to order the '.old' files after their non-old counterpart
# in reverse-sorted order.
reverse_sorted_list=$(echo $list | tr ' ' '\n' | sed -e 's/\.old$/ 1/; / 1$/! s/$/ 2/' | version_sort -r | sed -e 's/ 1$/.old/; s/ 2$//')
is_top_level=true
for linux in ${reverse_sorted_list}; do
gettext_printf "Found linux image: %s\n" "$linux" >&2
basename=`basename $linux`
dirname=`dirname $linux`
rel_dirname=`make_system_path_relative_to_its_root $dirname`
version=`echo $basename | sed -e "s,vmlinuz-,,g"`
alt_version=`echo $version | sed -e "s,\.old$,,g"`
linux_root_device_thisversion="${LINUX_ROOT_DEVICE}"
initrd_early=
for i in ${GRUB_EARLY_INITRD_LINUX_STOCK} \
${GRUB_EARLY_INITRD_LINUX_CUSTOM}; do
if test -e "${dirname}/${i}" ; then
initrd_early="${initrd_early} ${i}"
fi
done
initrd_real=
for i in "initrd.img-${version}" "initrd-${version}.img" \
"initrd-${alt_version}.img.old" "initrd-${version}.gz" \
"initrd-${alt_version}.gz.old" "initrd-${version}" \
"initramfs-${version}.img" "initramfs-${alt_version}.img.old" \
"initrd.img-${alt_version}" "initrd-${alt_version}.img" \
"initrd-${alt_version}" "initramfs-${alt_version}.img" \
"initramfs-genkernel-${version}" \
"initramfs-genkernel-${alt_version}" \
"initramfs-genkernel-${GENKERNEL_ARCH}-${version}" \
"initramfs-genkernel-${GENKERNEL_ARCH}-${alt_version}"; do
if test -e "${dirname}/${i}" ; then
initrd_real="${i}"
break
fi
done
initrd=
if test -n "${initrd_early}" || test -n "${initrd_real}"; then
initrd="${initrd_early} ${initrd_real}"
initrd_display=
for i in ${initrd}; do
initrd_display="${initrd_display} ${dirname}/${i}"
done
gettext_printf "Found initrd image: %s\n" "$(echo $initrd_display)" >&2
fi
config=
for i in "${dirname}/config-${version}" "${dirname}/config-${alt_version}" "/etc/kernels/kernel-config-${version}" ; do
if test -e "${i}" ; then
config="${i}"
break
fi
done
initramfs=
if test -n "${config}" ; then
initramfs=`grep CONFIG_INITRAMFS_SOURCE= "${config}" | cut -f2 -d= | tr -d \"`
fi
if test -z "${initramfs}" && test -z "${initrd_real}" ; then
# "UUID=" and "ZFS=" magic is parsed by initrd or initramfs. Since there's
# no initrd or builtin initramfs, it can't work here.
if [ "x${GRUB_DEVICE_PARTUUID}" = "x" ] \
|| [ "x${GRUB_DISABLE_LINUX_PARTUUID}" = "xtrue" ]; then
linux_root_device_thisversion=${GRUB_DEVICE}
else
linux_root_device_thisversion=PARTUUID=${GRUB_DEVICE_PARTUUID}
fi
fi
# The GRUB_DISABLE_SUBMENU option used to be different than others since it was
# mentioned in the documentation that has to be set to 'y' instead of 'true' to
# enable it. This caused a lot of confusion to users that set the option to 'y',
# 'yes' or 'true'. This was fixed but all of these values must be supported now.
if [ "x${GRUB_DISABLE_SUBMENU}" = xyes ] || [ "x${GRUB_DISABLE_SUBMENU}" = xy ]; then
GRUB_DISABLE_SUBMENU="true"
fi
if [ "x$is_top_level" = xtrue ] && [ "x${GRUB_DISABLE_SUBMENU}" != xtrue ]; then
linux_entry "${OS}" "${version}" simple \
"${GRUB_CMDLINE_LINUX} ${GRUB_CMDLINE_LINUX_DEFAULT}"
submenu_indentation="$grub_tab"
if [ -z "$boot_device_id" ]; then
boot_device_id="$(grub_get_device_id "${GRUB_DEVICE}")"
fi
# TRANSLATORS: %s is replaced with an OS name
echo "submenu '$(gettext_printf "Advanced options for %s" "${OS}" | grub_quote)' \$menuentry_id_option 'gnulinux-advanced-$boot_device_id' {"
is_top_level=false
fi
linux_entry "${OS}" "${version}" advanced \
"${GRUB_CMDLINE_LINUX} ${GRUB_CMDLINE_LINUX_DEFAULT}"
if test -e "${dirname}/initramfs-${version}-fallback.img" ; then
initrd="${initrd_early} initramfs-${version}-fallback.img"
if test -n "${initrd}" ; then
gettext_printf "Found fallback initrd image(s) in %s:%s\n" "${dirname}" "${initrd_extra} ${initrd}" >&2
fi
linux_entry "${OS}" "${version}" fallback \
"${GRUB_CMDLINE_LINUX} ${GRUB_CMDLINE_LINUX_DEFAULT}"
fi
if test -e "${dirname}/booster-${version}.img" ; then
initrd="${initrd_early} booster-${version}.img"
if test -n "${initrd}" ; then
gettext_printf "Found booster initrd image(s) in %s:%s\n" "${dirname}" "${initrd_extra} ${initrd}" >&2
fi
linux_entry "${OS}" "${version}" booster \
"${GRUB_CMDLINE_LINUX} ${GRUB_CMDLINE_LINUX_DEFAULT}"
fi
if [ "x${GRUB_DISABLE_RECOVERY}" != "xtrue" ]; then
linux_entry "${OS}" "${version}" recovery \
"${GRUB_CMDLINE_LINUX_RECOVERY} ${GRUB_CMDLINE_LINUX}"
fi
done
# If at least one kernel was found, then we need to
# add a closing '}' for the submenu command.
if [ x"$is_top_level" != xtrue ]; then
echo '}'
fi
if [ -f "/etc/grub-snapshot" ]; then
if [ "$(cat /etc/grub-snapshot | wc -l)" != 0 ]; then
# TRANSLATORS: %s is replaced with an OS name
echo "submenu '$(gettext_printf "Snapshot options for %s" "${OS}" | grub_quote)' \$menuentry_id_option 'gnulinux-snapshot-$boot_device_id' {"
is_top_level=false
snapshotanzahl="$(expr $(wc -l /etc/grub-snapshot | awk '{print $1}') + 1)"
while (( "$(expr $snapshotanzahl - 1)" )); do
snapshotanzahl=`expr ${snapshotanzahl} - 1`
SNAPSHOTNAME="$(cat /etc/grub-snapshot | sed ''$snapshotanzahl'!d')"
SNAPSHOT="rootflags=subvol=${SNAPSHOTNAME}"
linux_entry "${OS}" "${version}" snapshot \
"${SNAPSHOT} ${GRUB_CMDLINE_LINUX#* } ${GRUB_CMDLINE_LINUX_DEFAULT}"
done
echo '}'
fi
fi
echo "$title_correction_code"

223
configs/hooks/archiso Executable file
View file

@ -0,0 +1,223 @@
# args: source, newroot, mountpoint
_mnt_dmsnapshot() {
local img="${1}"
local newroot="${2}"
local mnt="${3}"
local img_fullname="${img##*/}";
local img_name="${img_fullname%%.*}"
local dm_snap_name="${dm_snap_prefix}_${img_name}"
local ro_dev ro_dev_size rw_dev
ro_dev=$(losetup --find --show --read-only "${img}")
echo ${ro_dev} >> /run/archiso/used_block_devices
ro_dev_size=$(blockdev --getsz ${ro_dev})
if [[ "${cow_persistent}" == "P" ]]; then
if [[ -f "/run/archiso/cowspace/${cow_directory}/${img_name}.cow" ]]; then
msg ":: Found '/run/archiso/cowspace/${cow_directory}/${img_name}.cow', using as persistent."
else
msg ":: Creating '/run/archiso/cowspace/${cow_directory}/${img_name}.cow' as persistent."
truncate -s "${cow_spacesize}" "/run/archiso/cowspace/${cow_directory}/${img_name}.cow"
fi
else
if [[ -f "/run/archiso/cowspace/${cow_directory}/${img_name}.cow" ]]; then
msg ":: Found '/run/archiso/cowspace/${cow_directory}/${img_name}.cow' but non-persistent requested, removing."
rm -f "/run/archiso/cowspace/${cow_directory}/${img_name}.cow"
fi
msg ":: Creating '/run/archiso/cowspace/${cow_directory}/${img_name}.cow' as non-persistent."
truncate -s "${cow_spacesize}" "/run/archiso/cowspace/${cow_directory}/${img_name}.cow"
fi
rw_dev=$(losetup --find --show "/run/archiso/cowspace/${cow_directory}/${img_name}.cow")
echo ${rw_dev} >> /run/archiso/used_block_devices
dmsetup create ${dm_snap_name} --table "0 ${ro_dev_size} snapshot ${ro_dev} ${rw_dev} ${cow_persistent} ${cow_chunksize}"
_mnt_dev "/dev/mapper/${dm_snap_name}" "${newroot}${mnt}" "-w" "defaults"
echo $(readlink -f /dev/mapper/${dm_snap_name}) >> /run/archiso/used_block_devices
}
# args: source, newroot, mountpoint
_mnt_overlayfs() {
local src="${1}"
local newroot="${2}"
local mnt="${3}"
mkdir -p /run/archiso/cowspace/${cow_directory}/upperdir /run/archiso/cowspace/${cow_directory}/workdir
mount -t overlay -o lowerdir=${src},upperdir=/run/archiso/cowspace/${cow_directory}/upperdir,workdir=/run/archiso/cowspace/${cow_directory}/workdir airootfs "${newroot}${mnt}"
}
# args: /path/to/image_file, mountpoint
_mnt_sfs() {
local img="${1}"
local mnt="${2}"
local img_fullname="${img##*/}"
local sfs_dev
if [[ "${copytoram}" == "y" ]]; then
msg -n ":: Copying squashfs image to RAM..."
if ! cp "${img}" "/run/archiso/copytoram/${img_fullname}" ; then
echo "ERROR: while copy '${img}' to '/run/archiso/copytoram/${img_fullname}'"
launch_interactive_shell
fi
img="/run/archiso/copytoram/${img_fullname}"
msg "done."
fi
sfs_dev=$(losetup --find --show --read-only "${img}")
echo ${sfs_dev} >> /run/archiso/used_block_devices
_mnt_dev "${sfs_dev}" "${mnt}" "-r" "defaults"
}
# args: device, mountpoint, flags, opts
_mnt_dev() {
local dev="${1}"
local mnt="${2}"
local flg="${3}"
local opts="${4}"
mkdir -p "${mnt}"
msg ":: Mounting '${dev}' to '${mnt}'"
while ! poll_device "${dev}" 30; do
echo "ERROR: '${dev}' device did not show up after 30 seconds..."
echo " Falling back to interactive prompt"
echo " You can try to fix the problem manually, log out when you are finished"
launch_interactive_shell
done
if mount -o "${opts}" "${flg}" "${dev}" "${mnt}"; then
msg ":: Device '${dev}' mounted successfully."
else
echo "ERROR; Failed to mount '${dev}'"
echo " Falling back to interactive prompt"
echo " You can try to fix the problem manually, log out when you are finished"
launch_interactive_shell
fi
}
_verify_checksum() {
local _status
cd "/run/archiso/bootmnt/${archisobasedir}/${arch}"
sha512sum -c airootfs.sha512 > /tmp/checksum.log 2>&1
_status=$?
cd "${OLDPWD}"
return ${_status}
}
_verify_signature() {
local _status
cd "/run/archiso/bootmnt/${archisobasedir}/${arch}"
gpg --homedir /gpg --status-fd 1 --verify airootfs.sfs.sig 2>/dev/null | grep -qE '^\[GNUPG:\] GOODSIG'
_status=$?
cd "${OLDPWD}"
return ${_status}
}
run_hook() {
[[ -z "${arch}" ]] && arch="$(uname -m)"
[[ -z "${copytoram_size}" ]] && copytoram_size="75%"
[[ -z "${archisobasedir}" ]] && archisobasedir="arch"
[[ -z "${dm_snap_prefix}" ]] && dm_snap_prefix="arch"
[[ -z "${archisodevice}" ]] && archisodevice="/dev/disk/by-label/${archisolabel}"
[[ -z "${cow_spacesize}" ]] && cow_spacesize="256M"
if [[ -n "${cow_label}" ]]; then
cow_device="/dev/disk/by-label/${cow_label}"
[[ -z "${cow_persistent}" ]] && cow_persistent="P"
elif [[ -n "${cow_device}" ]]; then
[[ -z "${cow_persistent}" ]] && cow_persistent="P"
else
cow_persistent="N"
fi
[[ -z "${cow_flags}" ]] && cow_flags="defaults"
[[ -z "${cow_directory}" ]] && cow_directory="persistent_${archisolabel}/${arch}"
[[ -z "${cow_chunksize}" ]] && cow_chunksize="8"
# set mount handler for archiso
mount_handler="archiso_mount_handler"
}
# This function is called normally from init script, but it can be called
# as chain from other mount handlers.
# args: /path/to/newroot
archiso_mount_handler() {
local newroot="${1}"
if ! mountpoint -q "/run/archiso/bootmnt"; then
_mnt_dev "${archisodevice}" "/run/archiso/bootmnt" "-r" "defaults"
if [[ "${copytoram}" != "y" ]]; then
echo $(readlink -f ${archisodevice}) >> /run/archiso/used_block_devices
fi
fi
if [[ "${checksum}" == "y" ]]; then
if [[ -f "/run/archiso/bootmnt/${archisobasedir}/${arch}/airootfs.sha512" ]]; then
msg -n ":: Self-test requested, please wait..."
if _verify_checksum; then
msg "done. Checksum is OK, continue booting."
else
echo "ERROR: one or more files are corrupted"
echo "see /tmp/checksum.log for details"
launch_interactive_shell
fi
else
echo "ERROR: checksum=y option specified but ${archisobasedir}/${arch}/airootfs.sha512 not found"
launch_interactive_shell
fi
fi
if [[ "${verify}" == "y" ]]; then
if [[ -f "/run/archiso/bootmnt/${archisobasedir}/${arch}/airootfs.sfs.sig" ]]; then
msg -n ":: Signature verification requested, please wait..."
if _verify_signature; then
msg "done. Signature is OK, continue booting."
else
echo "ERROR: one or more files are corrupted"
launch_interactive_shell
fi
else
echo "ERROR: verify=y option specified but ${archisobasedir}/${arch}/airootfs.sfs.sig not found"
launch_interactive_shell
fi
fi
mkdir -p /run/archiso/copytoram
if [[ "${copytoram}" == "y" ]]; then
msg ":: Mounting /run/archiso/copytoram (tmpfs) filesystem, size=${copytoram_size}"
mount -t tmpfs -o "size=${copytoram_size}",mode=0755 copytoram /run/archiso/copytoram
fi
mkdir -p /run/archiso/cowspace
if [[ -n "${cow_device}" ]]; then
_mnt_dev "${cow_device}" "/run/archiso/cowspace" "-r" "${cow_flags}"
echo $(readlink -f ${cow_device}) >> /run/archiso/used_block_devices
mount -o remount,rw "/run/archiso/cowspace"
else
msg ":: Mounting /run/archiso/cowspace (tmpfs) filesystem, size=${cow_spacesize}..."
mount -t tmpfs -o "size=${cow_spacesize}",mode=0755 cowspace /run/archiso/cowspace
fi
mkdir -p -m 0700 "/run/archiso/cowspace/${cow_directory}"
_mnt_sfs "/run/archiso/bootmnt/${archisobasedir}/${arch}/airootfs.sfs" "/run/archiso/sfs/airootfs"
if [[ -f "/run/archiso/sfs/airootfs/airootfs.img" ]]; then
_mnt_dmsnapshot "/run/archiso/sfs/airootfs/airootfs.img" "${newroot}" "/"
else
_mnt_overlayfs "/run/archiso/sfs/airootfs" "${newroot}" "/"
fi
if [[ "${copytoram}" == "y" ]]; then
umount -d /run/archiso/bootmnt
fi
if [[ "${shell}" == "y" ]]; then
echo "starting interactive_shell"
launch_interactive_shell
fi
}
# vim:ft=sh:ts=4:sw=4:et:

35
configs/hooks/archiso_loop_mnt Executable file
View file

@ -0,0 +1,35 @@
# vim: set ft=sh:
run_hook () {
[[ -n "${img_label}" ]] && img_dev="/dev/disk/by-label/${img_label}"
[[ -z "${img_flags}" ]] && img_flags="defaults"
if [[ -n "${img_dev}" && -n "${img_loop}" ]]; then
mount_handler="archiso_loop_mount_handler"
fi
}
archiso_loop_mount_handler () {
newroot="${1}"
local _dev_loop
msg ":: Setup a loop device from ${img_loop} located at device ${img_dev}"
_mnt_dev "${img_dev}" "/run/archiso/img_dev" "-r" "${img_flags}"
if [[ "${copytoram}" != "y" ]]; then
echo $(readlink -f ${img_dev}) >> /run/archiso/used_block_devices
fi
if _dev_loop=$(losetup --find --show --read-only "/run/archiso/img_dev/${img_loop}"); then
archisodevice="${_dev_loop}"
else
echo "ERROR: Setting loopback device for file '/run/archiso/img_dev/${img_loop}'"
launch_interactive_shell
fi
archiso_mount_handler ${newroot}
if [[ "${copytoram}" == "y" ]]; then
losetup -d ${_dev_loop} 2>/dev/null
umount /run/archiso/img_dev
fi
}

View file

@ -0,0 +1,68 @@
# vim: set ft=sh:
run_hook () {
# Do *not* declare 'bootif_dev' local! We need it in run_latehook().
local i net_mac bootif_mac
# These variables will be parsed from /tmp/net-*.conf generated by ipconfig
local DEVICE
local IPV4ADDR IPV4BROADCAST IPV4NETMASK IPV4GATEWAY IPV4DNS0 IPV4DNS1
local HOSTNAME DNSDOMAIN NISDOMAIN ROOTSERVER ROOTPATH
local filename
# /tmp/net-*.conf
if [[ -n "${ip}" ]]; then
if [[ -n "${BOOTIF}" ]]; then
bootif_mac=${BOOTIF#01-}
bootif_mac=${bootif_mac//-/:}
for i in /sys/class/net/*/address; do
read net_mac < ${i}
if [[ "${bootif_mac}" == "${net_mac}" ]]; then
bootif_dev=${i#/sys/class/net/}
bootif_dev=${bootif_dev%/address}
break
fi
done
ip="${ip}::${bootif_dev}"
fi
# setup network and save some values
if ! ipconfig "ip=${ip}"; then
echo "ERROR; Failed to configure network"
echo " Falling back to interactive prompt"
echo " You can try to fix the problem manually, log out when you are finished"
launch_interactive_shell
fi
. /tmp/net-*.conf
pxeserver=${ROOTSERVER}
# setup DNS resolver
if [[ "${IPV4DNS0}" != "0.0.0.0" ]]; then
echo "# added by archiso_pxe_common hook" > /etc/resolv.conf
echo "nameserver ${IPV4DNS0}" >> /etc/resolv.conf
fi
if [[ "${IPV4DNS1}" != "0.0.0.0" ]]; then
echo "nameserver ${IPV4DNS1}" >> /etc/resolv.conf
fi
if [[ -n "${DNSDOMAIN}" ]]; then
echo "search ${DNSDOMAIN}" >> /etc/resolv.conf
echo "domain ${DNSDOMAIN}" >> /etc/resolv.conf
fi
fi
}
run_latehook () {
if [[ -n "${ip}" ]]; then
[[ -z "${copy_resolvconf}" ]] && copy_resolvconf="y"
if [[ "${copytoram}" == "y" ]]; then
if [[ -n "${bootif_dev}" ]]; then
ip addr flush dev "${bootif_dev}"
ip link set "${bootif_dev}" down
fi
elif [[ "${copy_resolvconf}" != "n" && -f /etc/resolv.conf ]]; then
cp /etc/resolv.conf /new_root/etc/resolv.conf
fi
fi
}

54
configs/hooks/archiso_pxe_http Executable file
View file

@ -0,0 +1,54 @@
# vim: set ft=sh:
run_hook() {
if [[ -n "${ip}" && -n "${archiso_http_srv}" ]]; then
# booting with http is always copy-to-ram, so set here to make sure
# addresses are flushed and interface is set down
copytoram="y"
archiso_http_srv=$(eval echo ${archiso_http_srv})
[[ -z "${archiso_http_spc}" ]] && archiso_http_spc="75%"
mount_handler="archiso_pxe_http_mount_handler"
fi
}
# Fetch a file with CURL
#
# $1 URL
# $2 Destination directory inside httpspace/${archisobasedir}
_curl_get() {
local _url="${1}"
local _dst="${2}"
msg ":: Downloading '${_url}'"
if ! curl -L -f -o "/run/archiso/httpspace/${archisobasedir}${_dst}/${_url##*/}" --create-dirs "${_url}"; then
echo "ERROR: Downloading '${_url}'"
echo " Falling back to interactive prompt"
echo " You can try to fix the problem manually, log out when you are finished"
launch_interactive_shell
fi
}
archiso_pxe_http_mount_handler () {
newroot="${1}"
msg ":: Mounting /run/archiso/httpspace (tmpfs) filesystem, size='${archiso_http_spc}'"
mkdir -p "/run/archiso/httpspace"
mount -t tmpfs -o size="${archiso_http_spc}",mode=0755 httpspace "/run/archiso/httpspace"
_curl_get "${archiso_http_srv}${archisobasedir}/${arch}/airootfs.sfs" "/${arch}"
if [[ "${checksum}" == "y" ]]; then
_curl_get "${archiso_http_srv}${archisobasedir}/${arch}/airootfs.sha512" "/${arch}"
fi
if [[ "${verify}" == "y" ]]; then
_curl_get "${archiso_http_srv}${archisobasedir}/${arch}/airootfs.sfs.sig" "/${arch}"
fi
mkdir -p "/run/archiso/bootmnt"
mount -o bind /run/archiso/httpspace /run/archiso/bootmnt
archiso_mount_handler ${newroot}
}

47
configs/hooks/archiso_pxe_nbd Executable file
View file

@ -0,0 +1,47 @@
# vim: set ft=sh:
run_earlyhook() {
if [[ -n "${ip}" && -n "${archiso_nbd_srv}" ]]; then
# Module autoloading like with loop devices does not work, doing manually...
modprobe nbd 2> /dev/null
fi
}
run_hook() {
if [[ -n "${ip}" && -n "${archiso_nbd_srv}" ]]; then
archiso_nbd_srv=$(eval echo ${archiso_nbd_srv})
[[ -z "${archiso_nbd_name}" ]] && archiso_nbd_name="archiso"
mount_handler="archiso_pxe_nbd_mount_handler"
fi
}
archiso_pxe_nbd_mount_handler () {
newroot="${1}"
msg ":: Waiting for boot device..."
while ! poll_device /dev/nbd0 30; do
echo "ERROR: boot device didn't show up after 30 seconds..."
echo " Falling back to interactive prompt"
echo " You can try to fix the problem manually, log out when you are finished"
launch_interactive_shell
done
msg ":: Setup NBD from ${archiso_nbd_srv} at /dev/nbd0"
if [[ "${copytoram}" != "n" ]]; then
nbd-client ${archiso_nbd_srv} -N ${archiso_nbd_name} /dev/nbd0
copytoram="y"
else
nbd-client ${archiso_nbd_srv} -N ${archiso_nbd_name} -systemd-mark -persist /dev/nbd0
fi
archisodevice=/dev/nbd0
archiso_mount_handler ${newroot}
if [[ "${copytoram}" == "y" ]]; then
msg ":: Disconnect NBD from ${archiso_nbd_srv} at /dev/nbd0"
nbd-client -d /dev/nbd0
fi
}

30
configs/hooks/archiso_pxe_nfs Executable file
View file

@ -0,0 +1,30 @@
# vim: set ft=sh:
run_hook() {
if [[ -n "${ip}" && -n "${archiso_nfs_srv}" ]]; then
archiso_nfs_srv=$(eval echo ${archiso_nfs_srv})
[[ -n "${archiso_nfs_opt}" ]] && archiso_nfs_opt="-o ${archiso_nfs_opt}"
mount_handler="archiso_nfs_mount_handler"
fi
}
archiso_nfs_mount_handler() {
newroot="${1}"
mkdir -p "/run/archiso/bootmnt"
msg ":: Mounting '${archiso_nfs_srv}'"
# Do not put "${archiso_nfs_opt}" nfsmount fails!
if ! nfsmount ${archiso_nfs_opt} "${archiso_nfs_srv}" "/run/archiso/bootmnt"; then
echo "ERROR: Mounting '${archiso_nfs_srv}'"
echo " Falling back to interactive prompt"
echo " You can try to fix the problem manually, log out when you are finished"
launch_interactive_shell
fi
if [[ "${copytoram}" != "n" ]]; then
copytoram="y"
fi
archiso_mount_handler ${newroot}
}

6
configs/hooks/archiso_shutdown Executable file
View file

@ -0,0 +1,6 @@
run_cleanuphook() {
rm -rf /usr/lib/modules
cp -ax / /run/initramfs
}
# vim: set ft=sh ts=4 sw=4 et:

29
configs/hooks/cow_device Executable file
View file

@ -0,0 +1,29 @@
run_hook ()
{
# Format and run immediately cow_device
if [[ "${format}" == "y" ]]; then
sfdisk -l
[[ -z "${formatdevice}" ]] && formatdevice=/dev/sda
[[ -z "${formatpartition}" ]] && formatpartition=3
fdisk ${formatdevice} <<EOT
p
n
p
w
EOT
mkfs.btrfs -f -L cow_device ${formatdevice}${formatpartition}
reboot -f
fi
}
# vim: set ft=sh ts=4 sw=4 et:

22
configs/hooks/usbsecret Executable file
View file

@ -0,0 +1,22 @@
run_hook ()
{
# Do not need this thanks to tr: file=$(dos2unix inputs.txt)
# Use -r so a line with backslashes will be showed like you want
while true
do
# Not empty? Check with test -n
if blkid -s PARTUUID -o value | grep %USB_UUID% > /dev/null; then
echo ":: USB-Stick gefunden fahre mit starten des Systems weiter!"
break
else
echo ":: USB-Stick konnte nicht zur entsperrung gefunden werden!"
echo "..."
sleep 5
fi
done
echo ":: done."
}
# vim: set ft=sh ts=4 sw=4 et:

30
configs/install/archiso Executable file
View file

@ -0,0 +1,30 @@
#!/bin/bash
build() {
add_module "cdrom"
add_module "loop"
add_module "dm-snapshot"
# add_module "overlay"
add_runscript
add_binary /usr/lib/udev/cdrom_id
add_binary blockdev
add_binary dmsetup
add_binary losetup
add_binary mountpoint
add_binary truncate
add_binary gpg
add_binary grep
add_file /usr/lib/udev/rules.d/60-cdrom_id.rules
add_file /usr/lib/udev/rules.d/10-dm.rules
add_file /usr/lib/udev/rules.d/95-dm-notify.rules
add_file /usr/lib/initcpio/udev/11-dm-initramfs.rules /usr/lib/udev/rules.d/11-dm-initramfs.rules
if [[ $ARCHISO_GNUPG_FD ]]; then
mkdir -p "$BUILDROOT$dest"/gpg
gpg --homedir "$BUILDROOT$dest"/gpg --import <&$ARCHISO_GNUPG_FD
fi
}
# vim: set ft=sh ts=4 sw=4 et:

26
configs/install/archiso_kms Executable file
View file

@ -0,0 +1,26 @@
#!/bin/bash
build() {
add_module "radeon"
add_module "nouveau"
add_module "i915"
add_module "via-agp"
add_module "sis-agp"
add_module "intel-agp"
if [[ $(uname -m) == i686 ]]; then
add_module "amd64-agp"
add_module "ati-agp"
add_module "sworks-agp"
add_module "ali-agp"
add_module "amd-k7-agp"
add_module "nvidia-agp"
add_module "efficeon-agp"
fi
}
help() {
cat << HELPEOF
Adds all common KMS drivers to the initramfs image.
HELPEOF
}

View file

@ -0,0 +1,13 @@
#!/bin/bash
build() {
add_runscript
}
help() {
cat<<HELPEOF
This hook loads the necessary modules for boot via loop device.
HELPEOF
}
# vim: set ft=sh ts=4 sw=4 et:

View file

@ -0,0 +1,26 @@
#!/bin/bash
build() {
add_checked_modules -f "(irda|phy|wimax|wireless|ppp_|plip|pppoe)" "/drivers/net/"
add_runscript
add_binary /usr/lib/initcpio/ipconfig /bin/ipconfig
# Add hosts support files+dns
add_symlink /usr/lib/libnss_files.so.2 $(readlink /usr/lib/libnss_files.so.2)
add_binary $(readlink -f /usr/lib/libnss_files.so.2)
add_symlink /usr/lib/libnss_dns.so.2 $(readlink /usr/lib/libnss_dns.so.2)
add_binary $(readlink -f /usr/lib/libnss_dns.so.2)
add_dir /etc
echo "hosts: files dns" > $BUILDROOT/etc/nsswitch.conf
}
help() {
cat<<HELPEOF
This hook loads the necessary modules for boot via PXE.
HELPEOF
}
# vim: set ft=sh ts=4 sw=4 et:

View file

@ -0,0 +1,15 @@
#!/bin/bash
build() {
add_runscript
add_binary curl
}
help() {
cat<<HELPEOF
This hook loads the necessary modules for boot via PXE and HTTP.
HELPEOF
}
# vim: set ft=sh ts=4 sw=4 et:

17
configs/install/archiso_pxe_nbd Executable file
View file

@ -0,0 +1,17 @@
#!/bin/bash
build() {
add_module "nbd"
add_runscript
add_binary nbd-client
}
help() {
cat<<HELPEOF
This hook loads the necessary modules for boot via PXE and NBD.
HELPEOF
}
# vim: set ft=sh ts=4 sw=4 et:

17
configs/install/archiso_pxe_nfs Executable file
View file

@ -0,0 +1,17 @@
#!/bin/bash
build() {
add_module "nfs"
add_runscript
add_binary /usr/lib/initcpio/nfsmount /bin/nfsmount
}
help() {
cat <<HELPEOF
This hook loads the necessary modules for boot via PXE and NFS.
HELPEOF
}
# vim: set ft=sh ts=4 sw=4 et:

View file

@ -0,0 +1,20 @@
#!/bin/bash
build() {
add_binary cp
add_runscript
add_file /usr/lib/initcpio/archiso_shutdown /shutdown
}
help() {
cat <<HELPEOF
This hook will create a shutdown initramfs in /run/initramfs
that we can pivot to on shutdown in order to unmount / and
and others mount points, dm-snapshot devices and loopback devices.
Mostly usefull for dm-snapshot persistent.
HELPEOF
}
# vim: set ft=sh ts=4 sw=4 et:

114
configs/install/cow_device Executable file
View file

@ -0,0 +1,114 @@
#!/bin/bash
build()
{
add_all_modules /
# syslinux
add_binary extlinux
#add_file /usr/lib/syslinux/bios/gptmbr.bin
#add_file /etc/udev/rules.d/69-save-hdd-live.rules
#add_file "/usr/lib/udev/rules.d/10-dm.rules"
#add_file "/usr/lib/udev/rules.d/13-dm-disk.rules"
#add_file "/usr/lib/udev/rules.d/95-dm-notify.rules"
#add_file "/usr/lib/initcpio/udev/11-dm-initramfs.rules" "/usr/lib/udev/rules.d/11-dm-initramfs.rules"
# util-linux
add_binary findmnt
add_binary blockdev
add_binary fdisk
add_binary sfdisk
add_binary sgdisk
add_binary hexdump
add_binary losetup
add_binary mkswap
add_binary umount
add_binary wipefs
# e2fsprogs
add_binary badblocks
add_binary chattr
add_binary fsck.ext4
add_binary lsattr
add_binary mkfs.ext4
add_binary mkfs.btrfs
add_binary tune2fs
# xfsprogs
add_binary mkfs.xfs
add_binary xfs_repair
# cryptsetup
add_binary cryptsetup
# device-mapper
add_binary dmsetup
# gptfdisk
add_binary gdisk
# rsync
add_binary rsync
# coreutils
add_binary cat
add_binary cp
add_binary dd
add_binary mv
add_binary rm
add_binary sync
add_binary md5sum
add_binary sha1sum
add_binary date
# bash
add_binary bash
# findutils
add_binary find
add_binary xargs
# procps-ng
add_binary free
add_binary ps
add_binary slabtop
add_binary top
add_binary vmstat
# smartmontools
add_binary smartctl
#add_file /usr/share/smartmontools/drivedb.h
# hdparm
add_binary hdparm
# ncurses
#add_file /usr/share/terminfo/l/linux
# nano
add_binary nano
# iproute2
add_binary ip
# iw
add_binary iw
# grep
add_binary grep
# blkid
add_binary blkid
# runscript
add_runscript
}
help ()
{
cat <<HELPEOF
Rescue hook!
HELPEOF
}
# vim: set ft=sh ts=4 sw=4 et:

19
configs/install/usbsecret Executable file
View file

@ -0,0 +1,19 @@
#!/bin/bash
build() {
add_binary grep
add_binary blkid
add_runscript
}
help() {
cat <<HELPEOF
This hook initializes a USB-secret methode the system start of the Stick
The System start not the Stick.
HELPEOF
}
# vim: set ft=sh ts=4 sw=4 et:

View file

@ -0,0 +1,13 @@
[Trigger]
Operation = Remove
Operation = Upgrade
Type = Package
Target = linux
Target = linux-hardened
Target = linux-mainline
[Action]
Depends = coreutils
Depends = bash
When = PostTransaction
Exec = /usr/bin/bash -c '[[ -d /usr/lib/modules/$(uname -r) ]] || ln -s /tmp/$(uname -r) /usr/lib/modules/$(uname -r)'

View file

@ -0,0 +1,13 @@
[Trigger]
Operation = Upgrade
Operation = Remove
Type = Package
Target = linux
Target = linux-hardened
Target = linux-mainline
[Action]
Depends = coreutils
Depends = bash
When = PreTransaction
Exec = /usr/bin/bash -c 'find /usr/lib/modules -maxdepth 1 -type l -delete; cp -a /usr/lib/modules/$(uname -r) /tmp 2>/dev/null || :'

View file

@ -0,0 +1,9 @@
[Trigger]
Operation = Upgrade
Type = Package
Target = sddm
[Action]
Description = Updating sddm display-manager config after updating
When = PostTransaction
Exec = /bin/bash -c "cp /tmp/sddm.conf /etc/sddm.conf && cp /tmp/sddm.conf /usr/lib/sddm/sddm.conf.d/default.conf && cp /opt/deadc0de-os-code/display-manager.service /etc/systemd/system/display-manager.service"

View file

@ -0,0 +1,9 @@
[Trigger]
Operation = Upgrade
Type = Package
Target = sddm
[Action]
Description = Save sddm display-manager config befor updating
When = PreTransaction
Exec = /bin/bash -c "cp /usr/lib/sddm/sddm.conf.d/default.conf /tmp/sddm.conf"

16
configs/pacman-hooks/grub.hook Executable file
View file

@ -0,0 +1,16 @@
[Trigger]
Operation=Install
Operation=Upgrade
Operation=Remove
Type=Package
Target=grub
Target=linux
# Change the linux part above and in the Exec line if a different kernel is used
[Action]
Description=Update Grub Scriptes (snapshots)
Depends=mkinitcpio
When=PostTransaction
NeedsTargets
Exec=/bin/sh -c 'cp /opt/deadc0de-remix-os/configs/grub.d/10_linux /etc/grub.d/10_linux; grub-mkconfig -o /boot/grub/grub.cfg; /usr/bin/mkinitcpio -P'

View file

@ -0,0 +1,16 @@
[Trigger]
Operation=Install
Operation=Upgrade
Operation=Remove
Type=Package
Target=nvidia
Target=linux
# Change the linux part above and in the Exec line if a different kernel is used
[Action]
Description=Update Nvidia module in initcpio
Depends=mkinitcpio
When=PostTransaction
NeedsTargets
Exec=/bin/sh -c 'while read -r trg; do case $trg in linux) exit 0; esac; done; /usr/bin/mkinitcpio -P'

View file

@ -0,0 +1,10 @@
[Trigger]
Operation = Upgrade
Type = Package
Target = pacman
Target = pacman-mirrorlist
[Action]
Description = Updating pacman-mirrorlist and the pacman config after updating
When = PostTransaction
Exec = /bin/bash -c "cp /opt/deadc0de-remix-os/%VERSION% /etc/pacman.conf"

View file

@ -0,0 +1,14 @@
[Trigger]
Operation=Install
Operation=Upgrade
Operation=Remove
Type=Package
Target=plymouth
# Change the linux part above and in the Exec line if a different kernel is used
[Action]
Description=Update Plymouth hook script
Depends=mkinitcpio
When=PostTransaction
NeedsTargets
Exec=/bin/sh -c 'cp /opt/deadc0de-os-code/hooks-disabled/plymouth /usr/lib/initcpio/hooks/; /usr/bin/mkinitcpio -P'

View file

@ -0,0 +1,37 @@
#!/bin/ash
# /oldroot depends on things inside /oldroot/run/archiso...
mkdir /oldrun
mount -n --move /oldroot/run /oldrun
# Unmount all mounts now.
umount $(mount | awk '$3 ~/^\/oldroot/ {print $3}' | sort -r)
# Remove all dm-snapshot devices.
dmsetup remove_all
# Remove all loopback devices.
for _lup in $(grep ^/dev/loop /oldrun/archiso/used_block_devices | tac); do
if ! losetup -d ${_lup} 2> /dev/null; then
umount -d ${_lup}
fi
done
# Unmount the space used to store *.cow.
umount /oldrun/archiso/cowspace
# Unmount boot device if needed (no copytoram=y used)
if [[ ! -d /oldrun/archiso/copytoram ]]; then
if [[ -d /oldrun/archiso/img_dev ]]; then
umount /oldrun/archiso/img_dev
else
umount /oldrun/archiso/bootmnt
fi
fi
# reboot / poweroff / halt, depending on the argument passed by init
# if something invalid is passed, we halt
case "$1" in
reboot|poweroff|halt) "$1" -f ;;
*) halt -f;;
esac

118
configs/sshd_config Executable file
View file

@ -0,0 +1,118 @@
# $OpenBSD: sshd_config,v 1.101 2017/03/14 07:19:07 djm Exp $
# This is the sshd server system-wide configuration file. See
# sshd_config(5) for more information.
# This sshd was compiled with PATH=/usr/bin:/bin:/usr/sbin:/sbin
# The strategy used for options in the default sshd_config shipped with
# OpenSSH is to specify options with their default value where
# possible, but leave them commented. Uncommented options override the
# default value.
Port 1022
#AddressFamily any
#ListenAddress 0.0.0.0
#ListenAddress ::
#HostKey /etc/ssh/ssh_host_rsa_key
#HostKey /etc/ssh/ssh_host_dsa_key
#HostKey /etc/ssh/ssh_host_ecdsa_key
#HostKey /etc/ssh/ssh_host_ed25519_key
# Ciphers and keying
#RekeyLimit default none
# Logging
#SyslogFacility AUTH
#LogLevel INFO
# Authentication:
#LoginGraceTime 2m
PermitRootLogin no
#StrictModes yes
#MaxAuthTries 6
#MaxSessions 10
#PubkeyAuthentication yes
# The default is to check both .ssh/authorized_keys and .ssh/authorized_keys2
# but this is overridden so installations will only check .ssh/authorized_keys
AuthorizedKeysFile .ssh/authorized_keys
#AuthorizedPrincipalsFile none
#AuthorizedKeysCommand none
#AuthorizedKeysCommandUser nobody
# For this to work you will also need host keys in /etc/ssh/ssh_known_hosts
#HostbasedAuthentication no
# Change to yes if you don't trust ~/.ssh/known_hosts for
# HostbasedAuthentication
IgnoreUserKnownHosts yes
# Don't read the user's ~/.rhosts and ~/.shosts files
#IgnoreRhosts yes
# To disable tunneled clear text passwords, change to no here!
PasswordAuthentication no
#PermitEmptyPasswords no
# Change to no to disable s/key passwords
ChallengeResponseAuthentication no
# Kerberos options
#KerberosAuthentication no
#KerberosOrLocalPasswd yes
#KerberosTicketCleanup yes
#KerberosGetAFSToken no
# GSSAPI options
#GSSAPIAuthentication no
#GSSAPICleanupCredentials yes
# Set this to 'yes' to enable PAM authentication, account processing,
# and session processing. If this is enabled, PAM authentication will
# be allowed through the ChallengeResponseAuthentication and
# PasswordAuthentication. Depending on your PAM configuration,
# PAM authentication via ChallengeResponseAuthentication may bypass
# the setting of "PermitRootLogin without-password".
# If you just want the PAM account and session checks to run without
# PAM authentication, then enable this but set PasswordAuthentication
# and ChallengeResponseAuthentication to 'no'.
UsePAM yes
#AllowAgentForwarding yes
AllowTcpForwarding yes
#GatewayPorts no
X11Forwarding yes
#X11DisplayOffset 10
#X11UseLocalhost yes
#PermitTTY yes
PrintMotd no # pam does that
#PrintLastLog yes
TCPKeepAlive yes
#UseLogin no
#PermitUserEnvironment no
#Compression delayed
ClientAliveInterval 120
ClientAliveCountMax 15
#UseDNS no
#PidFile /run/sshd.pid
#MaxStartups 10:30:100
PermitTunnel yes
#ChrootDirectory none
#VersionAddendum none
# no default banner path
#Banner none
# override default of no subsystems
Subsystem sftp /usr/lib/ssh/sftp-server
# Example of overriding settings on a per-user basis
#Match User anoncvs
# X11Forwarding no
# AllowTcpForwarding no
# PermitTTY no
# ForceCommand cvs server

211
configs/vimrc Executable file
View file

@ -0,0 +1,211 @@
" All system-wide defaults are set in $VIMRUNTIME/debian.vim and sourced by
" the call to :runtime you can find below. If you wish to change any of those
" settings, you should do it in this file (/etc/vim/vimrc), since debian.vim
" will be overwritten everytime an upgrade of the vim packages is performed.
" It is recommended to make changes after sourcing debian.vim since it alters
" the value of the 'compatible' option.
" This line should not be removed as it ensures that various options are
" properly set to work with the Vim-related packages available in Debian.
"runtime! debian.vim
runtime! archlinux.vim
" Vim will load $VIMRUNTIME/defaults.vim if the user does not have a vimrc.
" This happens after /etc/vim/vimrc(.local) are loaded, so it will override
" any settings in these files.
" If you don't want that to happen, uncomment the below line to prevent
" defaults.vim from being loaded.
" let g:skip_defaults_vim = 1
" Uncomment the next line to make Vim more Vi-compatible
" NOTE: debian.vim sets 'nocompatible'. Setting 'compatible' changes numerous
" options, so any other options should be set AFTER setting 'compatible'.
set compatible
" Vim5 and later versions support syntax highlighting. Uncommenting the next
" line enables syntax highlighting by default.
syntax on
" If using a dark background within the editing area and syntax highlighting
" turn on this option as well
set background=dark
"colo desert
"colo delek
" Uncomment the following to have Vim jump to the last position when
" reopening a file
au BufReadPost * if line("'\"") > 1 && line("'\"") <= line("$") | exe "normal! g'\"" | endif
" Uncomment the following to have Vim load indentation rules and plugins
" according to the detected filetype.
filetype plugin indent on
" autocmd BufReadPost *.odt :%!odt2txt %
" autocmd BufReadPost *.odt,*.ods,*.odd,*.doc,*.docx,*.ppt,*.pptx,*.csv :%!unoconv -f txt --stdout %
"autocmd BufReadPre *.doc,*.docx,*.rtf,*.odp,*.odt,*.ods silent set ro
autocmd BufReadPost *.doc,*.docx,*.rtf,*.odp,*.odt,*.ods silent %!pandoc "%" -tplain -o /dev/stdout
autocmd BufWritePost *.doc %:!pandoc -f markdown -t doc -o "%"
autocmd BufWritePost *.docx %:!pandoc -f markdown -t docx -o "%"
autocmd BufWritePost *.rtf %:!pandoc -f markdown -t rtf -o "%"
autocmd BufWritePost *.odp %:!pandoc -f markdown -t odp -o "%"
autocmd BufWritePost *.odt %:!pandoc -f markdown -t odt -o "%"
autocmd BufWritePost *.ods %:!pandoc -f markdown -t ods -o "%"
"autocmd BufReadPre *.xls silent set ro
autocmd BufReadPost *.xls silent set number
autocmd BufReadPost *.xls silent setlocal noexpandtab
autocmd BufReadPost *.xls silent setlocal shiftwidth=20
autocmd BufReadPost *.xls silent setlocal softtabstop=20
autocmd BufReadPost *.xls silent setlocal tabstop=20
autocmd BufReadPost *.xls silent %!xls2csv "%" | csv2tsv
autocmd BufWritePost *.xls silent %!tsv2csv -e > "%".csv
"autocmd BufReadPre *.csv silent set ro
autocmd BufReadPost *.csv silent set number
autocmd BufReadPost *.csv silent setlocal noexpandtab
autocmd BufReadPost *.csv silent setlocal shiftwidth=20
autocmd BufReadPost *.csv silent setlocal softtabstop=20
autocmd BufReadPost *.csv silent setlocal tabstop=20
autocmd BufReadPost *.csv silent %!csv2tsv -e < "%"
autocmd BufWritePost *.csv silent %!tsv2csv -e > "%"
"autocmd BufReadPre *.xls silent set ro
"autocmd BufReadPost *.xls silent setlocal nowrap
"autocmd BufReadPost *.xls silent %!xls2csv -c\| -b$'\n'$'\n' -q0 "%"
"autocmd BufReadPost *.xls silent %Tableize/|
"autocmd BufReadPost *.xls silent 1g/^/ TableModeRealign
"autocmd BufReadPost *.xls silent %g/\(^\n\)\@<=|/ TableModeRealign
" autocmd BufReadPost *.ods silent %!ods2txt "%"
autocmd BufReadPre *.pdf silent set ro
autocmd BufReadPost *.pdf silent %!pdftotext -nopgbrk -layout -q -eol unix "%" - | fmt -w78
autocmd BufReadPre *.jpg,*.jpeg silent set ro
autocmd BufReadPost *.jpg,*.jpeg silent %!jp2a --width=78 "%"
autocmd BufReadPre *.png,*.gif,*.bmp silent set ro
autocmd BufReadPost *.png,*.gif,*.bmp silent %!convert "%" jpg:- | jp2a --width=78 -
let g:zipPlugin_ext = '*.zip,*.jar,*.xpi,*.ja,*.war,*.ear,*.celzip,*.oxt,*.kmz,*.wsz,*.xap,*.docm,*.dotx,*.dotm,*.potx,*.potm,*.ppsx,*.ppsm,*.pptx,*.pptm,*.ppam,*.sldx,*.thmx,*.xlam,*.xlsx,*.xlsm,*.xlsb,*.xltx,*.xltm,*.xlam,*.crtx,*.vdw,*.glox,*.gcsx,*.gqsx'
" The following are commented out as they cause vim to behave a lot
" differently from regular Vi. They are highly recommended though.
"set showcmd " Show (partial) command in status line.
"set showmatch " Show matching brackets.
"set ignorecase " Do case insensitive matching
"set smartcase " Do smart case matching
"set incsearch " Incremental search
set autowrite " Automatically save before commands like :next and :make
"set hidden " Hide buffers when they are abandoned
set mouse=a " Enable mouse usage (all modes)
set autoindent " Enable automatic einrueckungen
" show the editing mode on the last line
set showmode
" tell vim to keep a backup file
set backup
" tell vim where to put its backup files
set backupdir=/tmp
" tell vim where to put swap files
set dir=/tmp
" use the system clipboard
set clipboard=unnamedplus
" wayland support
nnoremap <C-@> :call system("wl-copy", @")<CR>
xnoremap <silent> <C-Q> :w !wl-copy<CR><CR>
" Allow saving of files as sudo when I forgot to start vim using sudo.
cmap w!! w !sudo tee > /dev/null %
cmap runpy!! w !clear; python %
nmap <special> <F8> :TagbarToggle<CR>
let g:airline#extensions#tabline#enabled = 1
let g:airline#extensions#tabline#left_sep = ' '
let g:airline#extensions#tabline#left_alt_sep = '|'
let g:airline#extensions#tabline#formatter = 'default'
let g:airline_statusline_ontop=1
let g:translate_source = "en"
let g:translate_target = "de"
let g:translate_winsize = 10
xmap <special> <Space>tr <Plug>(VTranslate)
xmap <special> <Space>tt <Plug>(VTranslateBang)
nnoremap <silent> ,<space> :nohlsearch<CR>
set nocompatible " be iMproved, required
filetype off " required
" set the runtime path to include Vundle and initialize
set rtp+=~/.vim/bundle/Vundle.vim
call vundle#begin()
" alternatively, pass a path where Vundle should install plugins
"call vundle#begin('~/some/path/here')
" let Vundle manage Vundle, required
Plugin 'VundleVim/Vundle.vim'
" The following are examples of different formats supported.
" Keep Plugin commands between vundle#begin/end.
" plugin on GitHub repo
Plugin 'tpope/vim-fugitive'
" plugin from http://vim-scripts.org/vim/scripts.html
" Plugin 'L9'
" Git plugin not hosted on GitHub
"Plugin 'git://git.wincent.com/command-t.git'
" git repos on your local machine (i.e. when working on your own plugin)
"Plugin 'file:///home/gmarik/path/to/plugin'
" The sparkup vim script is in a subdirectory of this repo called vim.
" Pass the path to set the runtimepath properly.
"Plugin 'rstacruz/sparkup', {'rtp': 'vim/'}
" Install L9 and avoid a Naming conflict if you've already installed a
" different version somewhere else.
" Plugin 'ascenator/L9', {'name': 'newL9'}
Plugin 'vim-airline/vim-airline'
Plugin 'vim-airline/vim-airline-themes'
Plugin 'skanehira/translate.vim'
Plugin 'scrooloose/syntastic'
Plugin 'majutsushi/tagbar'
Plugin 'kien/ctrlp.vim'
Plugin 'dhruvasagar/vim-table-mode'
" All of your Plugins must be added before the following line
call vundle#end() " required
filetype plugin indent on " required
" To ignore plugin indent changes, instead use:
"filetype plugin on
"
" Brief help
" :PluginList - lists configured plugins
" :PluginInstall - installs plugins; append `!` to update or just :PluginUpdate
" :PluginSearch foo - searches for foo; append `!` to refresh local cache
" :PluginClean - confirms removal of unused plugins; append `!` to auto-approve removal
"
" see :h vundle for more details or wiki for FAQ
" Put your non-Plugin stuff after this line
" Source a global configuration file if available
if filereadable("/etc/vim/vimrc.local")
source /etc/vim/vimrc.local
endif

View file

@ -0,0 +1,10 @@
# Written by systemd-localed(8), read by systemd-localed and Xorg. It's
# probably wise not to edit this file manually. Use localectl(1) to
# instruct systemd-localed to update it.
Section "InputClass"
Identifier "system-keyboard"
MatchIsKeyboard "on"
Option "XkbLayout" "de"
Option "XkbModel" "pc105"
Option "XkbVariant" "nodeadkeys"
EndSection

View file

@ -0,0 +1,8 @@
Section "InputClass"
Identifier "touchpad"
Driver "libinput"
MatchIsTouchpad "on"
Option "Tapping" "on"
Option "TappingButtonMap" "lrm"
Option "DisableWhileTyping" "off"
EndSection

11
desktop/arch-install.desktop Executable file
View file

@ -0,0 +1,11 @@
[Desktop Entry]
Type=Application
Icon=/usr/share/pixmaps/install.png
Name[de]=Betriebssystem installieren
Name[en]=Install the operating system
Exec=xfce4-terminal -e "/usr/bin/arch-install"
Terminal=false
Categories=ConsoleOnly;System;
StartupNotify=false
Comment=
Path=

BIN
desktop/install.png Executable file

Binary file not shown.

After

Width:  |  Height:  |  Size: 58 KiB

16
grub-config/cfg/defaults.cfg Executable file
View file

@ -0,0 +1,16 @@
if [ -z "${def_bootlang}" ]; then
def_bootlang="de_DE"
def_keyboard="de"
def_timezone="Europe/Berlin"
def_netinstall="no"
def_autostartdesktop="sway"
def_copytoram="n"
fi
if [ -z "${bootlang}" ]; then
bootlang="lang=${def_bootlang}"
keyboard="keytable=${def_keyboard}"
timezone="tz=${def_timezone}"
installermode="netinstall=${def_netinstall}"
desktop="autostartdesktop=${def_autostartdesktop}"
disktoram="copytoram=${def_copytoram}"
fi

656
grub-config/cfg/grub.cfg Executable file
View file

@ -0,0 +1,656 @@
insmod font
insmod keylayouts
insmod part_msdos
insmod part_gpt
export loaded
export koptsok
export disable_gfxterm
export bootarch
export firmware
export firmware_found
export from
export fromiso
export bootlang
export keyboard
export timezone
export hwclock
export installermode
export desktop
export disktoram
export def_bootlang
export def_keyboard
export def_timezone
export def_netinstall
export def_autostartdesktop
export def_copytoram
export menu_color_normal
export menu_color_highlight
export pager
function menu_help {
check_help
grub_help
}
function check_help {
if [ -z "${koptsok}" ]; then
echo $"WARNING: nothing set"
echo $" System will use defaults"
echo " American English utc clock us "$"keyboard"
echo ""
fi
}
function kopts_help {
echo $"Example boot command line arguments:"
echo $" Setup"
echo " lang=<language>_<variant> keytable=<layout> tz=<region>/<city>"
echo " hostname=<name> username=<name>"
echo $" Kernel"
echo " blacklist=<module>"
echo $" Video"
echo " <module>.modeset=0"
echo " radeon.modeset=0 nouveau.modeset=0 i915.modeset=0"
echo " video=VGA-1:1920x1080e DVI-0:800x600"
echo ""
}
function grub_help {
echo $"To use the menu:"
echo $" press up or down to move between items"
echo $" press enter or right to select the item"
echo $" press e to edit the current item"
echo $" press c to go to the grub command line"
echo ""
echo $"Simply edit the first line of most menus to control them"
echo $"Select or edit the blank line to enter command line arguments"
echo ""
}
function menu_reload {
configfile /boot/grub/grub.cfg
}
function menu_continue {
echo -n $"Press Enter to continue"
read mcont
}
function prompt {
echo -n "> "
}
function is_efi {
if [ "${grub_platform}" = "efi" ]; then
return 0
fi
return 1
}
function efi_detect {
if is_efi ; then
submenu --class=find.efi --hotkey=f "Detect EFI bootloaders" {
efi_found=false
for efi in (*,gpt*)/efi/*/*.efi (*,gpt*)/efi/*/*/*.efi (*,gpt*)/*.efi (*,gpt*)/*/*.efi ; do
regexp --set=1:efi_device '^\((.*)\)/' "${efi}"
if [ -e "${efi}" ]; then
efi_found=true
menuentry --class=efi "${efi}" "${efi_device}" {
root="${2}"
chainloader "${1}"
}
fi
done
if [ "${efi_found}" != true ]; then
menuentry --hotkey=q --class=find.none "No EFI files detected." {menu_reload}
else
menuentry --hotkey=q --class=cancel "Cancel" {menu_reload}
fi
}
fi
}
function memtest_detect {
if ! is_efi; then
if [ -f /boot/memtest ]; then
menuentry --class=memtest --hotkey=m "memtest" {linux16 /boot/$1}
fi
fi
}
function lang_setup {
source /boot/grub/locales/${1}
menu_reload
}
function lang_menu {
menuentry --class=lang.${ll} "lang=${ll}" "${ll}" {lang_setup "${2}"}
}
function installer_menu {
for opt in yes no; do
menuentry "${opt}" "${opt}" {
def_netinstall="${2}"
installermode="netinstall=${def_netinstall}"
menu_reload
}
done
}
function show_installermode {
submenu --class=netinstall --hotkey=m "netinstall=${def_netinstall}" {# set netinstall option above with the editor
if [ -n "$1" ]; then
if [ "$1" = "netinstall=${def_netinstall}" ]; then
default=0
menuentry --class=cancel --hotkey=q "Cancel (${def_netinstall})" {menu_reload}
installer_menu
else
regexp -s newinstallermode '^netinstall=(.*)' "$1"
if [ -z "${newinstallermode}" ]; then
def_netinstall="$1"
else
def_netinstall="${newinstallermode}"
fi
newinstallermode="netinstall=${def_netinstall}"
menu_reload
fi
fi
}
}
function show_timezones {
submenu --class=tz --hotkey=t "tz=${def_timezone}" {# set the timezone above with the editor
if [ -n "$1" ];then
if [ "$1" = "tz=${def_timezone}" ]; then
default=0
menuentry --class=cancel --hotkey=q "Cancel (${def_timezone})" {menu_reload}
for tt in Africa America Asia Atlantic Australia Etc Europe Pacific; do
submenu --class=tz.${tt} "${tt}" {
menuentry --class=cancel --hotkey=q "Cancel (${def_timezone})" {menu_reload}
source "/boot/grub/tz/${1}"
}
done
else
regexp -s newtz '^tz=(.*)' "$1"
if [ -z "$newtz" ]; then
def_timezone="$1"
else
def_timezone="$newtz"
fi
timezone="tz=$def_timezone"
menu_reload
fi
fi
}
}
function show_keymaps {
submenu --class=kbd --hotkey=k "keytable=${def_keyboard}" {# set the timezone above with the editor
if [ -n "$1" ]; then
if [ "$1" = "keytable=${def_keyboard}" ]; then
default=0
menuentry --class=cancel --hotkey=q "Cancel (${def_keyboard})" {menu_reload}
source /boot/grub/locales/keyboards
else
regexp -s newkey '^keytable=(.*)' "$1"
if [ -z "$newkey" ]; then
def_keyboard="$1"
else
def_keyboard="$newkey"
fi
keyboard="keytable=$def_keyboard"
menu_reload
fi
fi
}
}
function enviroments_menu {
for opt in gnome gnomexorg gnomeclassic cinnamon i3 i3withshmlog kde plasma lxde lxqt mate xfce4 openbox openboxkdesession sway weston cli; do
menuentry "desktop=${opt}" "${opt}" {
def_autostartdesktop="${2}"
desktop="autostartdesktop=${def_autostartdesktop}"
menu_reload
}
done
}
function show_enviroments {
submenu --class=desktop --hotkey=d "desktop=${def_autostartdesktop}" {
if [ -n "$1" ]; then
if [ "$1" = "desktop=${def_autostartdesktop}" ]; then
default=0
menuentry --class=cancel --hotkey=q "Cancel (${def_autostartdesktop})" {menu_reload}
enviroments_menu
else
regexp -s newenviromentsmode '^autostartdesktop=(.*)' "$1"
if [ -z "${newenviromentsmode}" ]; then
def_autostartdesktop="$1"
else
def_autostartdesktop="${newenviromentsmode}"
fi
newenviromentsmode="desktop=${def_autostartdesktop}"
menu_reload
fi
fi
}
}
function copytoram_menu {
for opt in y n; do
menuentry "copytoram=${opt}" "${opt}" {
def_copytoram="${2}"
disktoram="copytoram=${def_copytoram}"
menu_reload
}
done
}
function show_copytoram {
submenu --class=disktoram --hotkey=c "disktoram=${def_copytoram}" {
if [ -n "$1" ]; then
if [ "$1" = "disktoram=${def_copytoram}" ]; then
default=0
menuentry --class=cancel --hotkey=q "Cancel (${def_copytoram})" {menu_reload}
copytoram_menu
else
regexp -s newcopytorammode '^copytoram=(.*)' "$1"
if [ -z "${newcopytorammode}" ]; then
def_copytoram="$1"
else
def_copytoram="${newcopytorammode}"
fi
newcopytorammode="copytoram=${def_copytoram}"
menu_reload
fi
fi
}
}
function show_languages {
submenu --hotkey=l --class=lang "lang=${def_bootlang}" {# set the timezone above with the editor
if [ -n "$1" ]; then
if [ "$1" = "lang=${def_bootlang}" ]; then
default=0
menuentry --class=lang.${def_bootlang} "lang=${def_bootlang}" {menu_reload}
menuentry --class=lang.cs "Čeština" {lang_setup "cs_CZ"}
menuentry --class=lang.da "Dansk" {lang_setup "da_DK"}
submenu --class=lang.de "Deutsch" {
for ll in de_DE de_AT de_BE de_CH de_LI de_LU; do
lang_menu ${ll}
done
}
submenu --class=lang.el "Ελληνικά" {
for ll in el_GR el_CY; do
lang_menu ${ll}
done
}
submenu --class=lang.en "English" {
for ll in en_US en_AG en_AU en_BW en_CA en_DK en_GB en_HK en_IE en_IN en_NG en_NZ en_PH en_SG en_ZA en_ZW; do
lang_menu ${ll}
done
}
submenu --class=lang.es "Español" {
for ll in es_ES es_AR es_BO es_CL es_CO es_CR es_DO es_EC es_GT es_HN es_MX es_NI es_PA es_PE es_PR es_PY es_SV es_US es_UY es_VE; do
lang_menu ${ll}
done
}
submenu --class=lang.fr "Français" {
for ll in fr_FR fr_BE fr_CA fr_CH fr_LU fr_NC; do
lang_menu ${ll}
done
}
submenu --class=lang.it "Italiano" {
for ll in it_IT it_CH; do
lang_menu ${ll}
done
}
menuentry --class=lang.ja "日本語" {lang_setup "ja_JP"}
submenu --class=lang.nl "Nederlands" {
for ll in nl_NL nl_AW nl_BE; do
lang_menu ${ll}
done
}
menuentry --class=lang.pl "Polski" {lang_setup "pl_PL"}
submenu --class=lang.pt "Português" {
for ll in pt_BR pt_PT; do
lang_menu ${ll}
done
}
menuentry --class=lang.ro "Română" {lang_setup "ro_RO"}
submenu --class=lang.ru "Русский" {
for ll in ru_RU ru_UA;do
lang_menu ${ll}
done
}
submenu --class=lang.zh "中文" {
for ll in zh_CN zh_TW; do
lang_menu ${ll}
done
}
else
regexp -s newlang '^lang=(.*)' "$1"
if [ -z "$newlang" ]; then
def_bootlang="$1"
else
def_bootlang="$newlang"
fi
bootlang="lang=$def_bootlang"
if [ -f /boot/grub/locales/${def_bootlang} ]; then
source /boot/grub/locales/${def_bootlang}
fi
menu_reload
fi
fi
}
}
function boot_menu {
if [ "${hwclock}" = "utc=yes" ]; then
class="utc"
title="utc"
clockset=""
elif [ "${timezone}${bootlang}" = "" ]; then
class="unset"
title="utc"
clockset=""
else
title="${def_timezone}"
class="tz.${def_timezone}"
clockset="utc=yes"
fi
min2d="$MINUTE"
if regexp '(^.$)' "$min2d"; then
min2d="0${min2d}"
fi
hour2d="$HOUR"
if regexp '(^.$)' "$hour2d"; then
hour2d="0${hour2d}"
fi
menuentry --class=tz.$class --hotkey=u "$hour2d:$min2d $title" "$clockset" {
hwclock="$2"
menu_reload
}
show_timezones
show_keymaps
show_enviroments
show_copytoram
show_languages
show_installermode
default=5
}
function boot_defaults {
source /boot/grub/defaults.cfg
}
function grub_reboot {
menuentry " " {true}
menuentry --class=reboot "Reboot!" {reboot}
}
function grub_bios_installed {
if ! is_efi; then
menuentry "" {true}
menuentry --class=artix "Installed BIOS-System on $installed" {exit}
fi
}
function grub_efi_installed {
if is_efi; then
menu "" {true}
menu --class=artix "Installed EFI-System on $installed" {exit}
fi
}
function check {
cliname="$1"
varname="$2"
if [ "${optname}" != "${cliname}" ]; then
return 1
fi
if [ -z "$varname" ]; then
varname="${cliname}"
fi
if [ -z "${optval}" ]; then
eval ${varname}="${cliname}"
else
eval ${varname}="${cliname}=${optval}"
if [ "${optname}" = "lang" ]; then
lang_setup ${optval}
elif [ "${optname}" = "keytable" ]; then
def_keyboard="${optval}"
elif [ "${optname}" = "tz" ]; then
def_timezone="${optval}"
elif [ "${optname}" = "netinstall" ]; then
def_netinstall="${optval}"
elif [ "${optname}" = "autostartdesktop" ]; then
def_autostartdesktop="${optval}"
elif [ "${optname}" = "copytoram" ]; then
def_copytoram="${optval}"
fi
fi
return 0
}
function checkinput {
newinput="$1"
newoutput=""
for newcli in ${newinput} ; do
optname=""
optval=""
optdone=""
regexp -s optname '^(.+)=.*$' "${newcli}"
if [ -z "${optname}" ]; then
optname="${newcli}"
else
regexp -s optval '^.+=(.*)$' "${newcli}"
fi
for tocheck in "lang bootlang" "keytable keyboard" "tz timezone" "utc hwclock" "installermode netinstall" "desktop autostartdesktop" "disktoram copytoram"; do
if check $tocheck ; then
optdone="Y"
break
fi
done
if [ -z "${optdone}" ]; then
if [ -z "${newoutput}" ]; then
newoutput="${newcli}"
else
newoutput="${newoutput} ${newcli}"
fi
fi
done
}
function new2cli {
newinput="$1"
if [ -n "$newinput" ]; then
checkinput "$newinput"
if [ -n "${newoutput}" ]; then
newinput="${newoutput}"
if [ -n "$clinput" ]; then
clinput="$clinput $newinput"
else
clinput="$newinput"
fi
export clinput
fi
fi
}
function getargs {
args=""
for a in $@; do
if [ -n "${a}" ]; then
args="${args} ${a}"
fi
done
}
function bootcheck {
getargs
}
pager=1
insmod regexp
insmod datehook
if ! is_efi; then
insmod part_gpt
fi
if is_efi; then
insmod efi_gop
insmod efi_uga
fi
if [ -z "${loaded}" ]; then
iscd=""
auto=""
regexp -s iscd '^(cd)' "${root}"
if [ "${iscd}" != "cd" -a -e (cd) ]; then
probe -s cdp -u cd
probe -s hdp -u $root
if [ -n "$cdp" -a "$cdp" = "$hdp" ]; then
iscd="cd"
fi
fi
if [ "${root}" != "hd96" -a "${iscd}" != "cd" ]; then
auto="${auto}"
fi
source /boot/grub/variable.cfg
loaded=true
if keystatus --shift; then
disable_gfxterm=true
fi
if [ "${disable_gfxterm}" != "true" ]; then
if loadfont /boot/grub/unicode.pf2 ; then
if [ -z "$gfxmode" ] ; then
gfxmode=1920x1080,1280x1024,1024x768,800x600
gfxpayload=keep
fi
if keystatus --ctrl; then
gfxok=""
pager=0
while [ -z "$gfxok" ]; do
echo "gfxmode=$gfxmode"
echo "Input new mode or Enter to confirm"
prompt
read gfxmodein
if [ -n "$gfxmodein" ]; then
gfxmode="$gfxmodein"
echo ""
else
gfxok="true"
fi
done
fi
insmod all_video
insmod gfxterm
if terminal_output --append gfxterm; then
terminal_output --remove console
else
disable_gfxterm=true
fi
else
disable_gfxterm=true
fi
fi
if [ "${disable_gfxterm}" != "true" -a -f "${grub_theme}" ]; then
insmod gfxmenu
themedir=""
regexp -s themedir '^(.*)/.*$' "${grub_theme}"
for themefont in $themedir/*.pf2 $themedir/f/*.pf2; do
if [ -f "${themefont}" ]; then
loadfont "${themefont}"
fi
done
for imagetype in jpg jpeg png tga; do
for themeimage in ${themedir}/*.${imagetype}; do
if [ -f "${themeimage}" ]; then
if [ "${imagetype}" = "jpg" ]; then
insmod jpeg
else
insmod $imagetype
fi
fi
done
done
theme=${grub_theme}
export theme
fi
menu_color_normal=cyan/blue
menu_color_highlight=white/blue
if [ -n "${iso_path}" ]; then
auto="img_dev=/dev/disk/by-uuid/${rootuuid} img_loop=${iso_path}"
fi
export auto
fi
boot_defaults
for kopt in "${clinput}" "${bootlang}" "${keyboard}" "${timezone}" "${hwclock}" "${installermode}" "${desktop}" "${disktoram}" "${auto}"; do
if [ -n "${kopt}" ]; then
kopts="${kopts} ${kopt}"
fi
done
if [ -n "${bootlang}${keyboard}${timezone}${installermode}${desktop}${disktoram}" ]; then
koptsok="true"
fi
boot_menu
source /boot/grub/kernels.cfg
if [ -n "$clinput" ]; then
menuentry --class=edit "$clinput" {
if [ -n "$1" ]; then
clinput="$@"
else
unset clinput
fi
menu_reload
}
fi
menuentry --class=type --hotkey=tab "" {# set arguments above with the editor
getargs $@
pager=0
if [ -z "$args" ]; then
check_help
kopts_help
echo $"Input command line options, press Enter to continue"
prompt
read newinput
else
newinput="$args"
fi
new2cli "$newinput"
pager=1
menu_reload
}
menuentry --hotkey=h --class=help "help" {
pager=0
menu_help
menu_continue
pager=1
}
efi_detect
memtest_detect
search --no-floppy --file /etc/issue --set installed
grub_bios_installed
grub_efi_installed
grub_reboot

50
grub-config/cfg/kernels.cfg Executable file
View file

@ -0,0 +1,50 @@
if cpuid -l; then
havekernel="Y"
title=""
for kopt in x86_64 $kopts archisobasedir=arch archisolabel=@iso_label@ @parameters@; do
if [ -n "$title" ] ; then
title="$title $kopt";
else
title="$kopt";
fi;
done
menuentry "From CD/DVD/ISO/Stick/HDD: arch.x86_64" --class=arch.x86_64 "$title cow_spacesize=2048M" {# set arguments above with the editor
linux /boot/vmlinuz-$2
initrd /boot/initramfs-x86_64.img
}
else
havekernel="Y"
title=""
for kopt in i686 $kopts archisobasedir=arch archisolabel=@iso_label@ @parameters@; do
if [ -n "$title" ] ; then
title="$title $kopt";
else
title="$kopt";
fi;
done
menuentry "From CD/DVD/ISO/Stick/HDD: arch.i686" --class=arch.i686 "$title cow_spacesize=2048M" {# set arguments above with the editor
linux /boot/vmlinuz-$2
initrd /boot/initramfs-i686.img
}
fi
if [ "${havekernel}" != "Y" ]; then
menuentry --class=find.none "NO SUITABLE KERNELS AVAILABLE" {echo $@ echo "There are no kernels suitable for this machine available."
echo ""
if ! cpuid -l; then
echo "This machine is NOT 64bit capable."
for kk in /boot/vmlinu*x86_64; do
if [ "$kk" != "/boot/vmlinu*x86_64" ]; then
have32="true"
fi
done
if [ "${have32}" != "true" ]; then
echo "There are no 32bit kernels available"
echo "It appears you are trying to boot a 64bit release on a 32bit machine"
echo "This cannot work!"
fi
fi
echo "Press Escape to return to the main menu"
sleep --interruptible 9999
menu_reload
}
fi

1
grub-config/cfg/loopback.cfg Executable file
View file

@ -0,0 +1 @@
source /boot/grub/grub.cfg

2
grub-config/cfg/variable.cfg Executable file
View file

@ -0,0 +1,2 @@
grub_theme=/boot/grub/themes/poly-light/theme.txt
timeout=-1

48
grub-config/cli/kernels.cfg Executable file
View file

@ -0,0 +1,48 @@
if cpuid -l; then
havekernel="Y"
title=""
for kopt in x86_64 $kopts archisobasedir=arch archisolabel=@iso_label@ @parameters@; do
if [ -n "$title" ] ; then
title="$title $kopt";
else
title="$kopt";
fi;
done
menuentry "From CD/DVD/ISO/Stick/HDD: arch.x86_64 CLI (default)" --class=arch.x86_64 "$title cow_spacesize=1024M autostartdesktop=cli" {# set arguments above with the editor
linux /boot/vmlinuz-$2
initrd /boot/initramfs-x86_64.img
}
menuentry "From CD/DVD/ISO/Stick/HDD: arch.x86_64 CPU SUCKS" --class=arch.x86_64 "$title cow_spacesize=1024M pci=noacpi rcu_nocbs=0-7 processor.max_cstate=1 i8042.noloop i8042.nomux i8042.nopnp i8042.reset" {# set arguments above with the editor
linux /boot/vmlinuz-$2
initrd /boot/initramfs-x86_64.img
}
menuentry "From CD/DVD/ISO/Stick/HDD COPYTORAM: arch.x86_64 " --class=arch.x86_64 "$title copytoram=y cow_spacesize=1024M" {# set arguments above with the editor
linux /boot/vmlinuz-$2
initrd /boot/initramfs-x86_64.img
}
menuentry "From CD/DVD/ISO/Stick/HDD COWDEVICE: arch.x86_64 " --class=arch.x86_64 "$title cow_label=cow_device" {# set arguments above with the editor
linux /boot/vmlinuz-$2
initrd /boot/initramfs-x86_64.img
}
fi
if [ "${havekernel}" != "Y" ]; then
menuentry --class=find.none "NO SUITABLE KERNELS AVAILABLE" {echo $@ echo "There are no kernels suitable for this machine available."
echo ""
if ! cpuid -l; then
echo "This machine is NOT 64bit capable."
for kk in /boot/vmlinu*x86_64; do
if [ "$kk" != "/boot/vmlinu*x86_64" ]; then
have32="true"
fi
done
if [ "${have32}" != "true" ]; then
echo "There are no 32bit kernels available"
echo "It appears you are trying to boot a 64bit release on a 32bit machine"
echo "This cannot work!"
fi
fi
echo "Press Escape to return to the main menu"
sleep --interruptible 9999
menu_reload
}
fi

9
grub-config/locales/C_ Executable file
View file

@ -0,0 +1,9 @@
lang=C
bootlang="lang=C_"
def_bootlang="C_"
if [ -z "${keyboard}" ]; then
def_keyboard="us"
fi
if [ -z "${timezone}" ]; then
def_timezone="Etc/UTC"
fi

9
grub-config/locales/be_BY Executable file
View file

@ -0,0 +1,9 @@
lang=be
bootlang="lang=be_BY"
def_bootlang="be_BY"
if [ -z "${keyboard}" ]; then
def_keyboard="by"
fi
if [ -z "${timezone}" ]; then
def_timezone="Europe/Minsk"
fi

9
grub-config/locales/bg_BG Executable file
View file

@ -0,0 +1,9 @@
lang=bg
bootlang="lang=bg_BG"
def_bootlang="bg_BG"
if [ -z "${keyboard}" ]; then
def_keyboard="bg"
fi
if [ -z "${timezone}" ]; then
def_timezone="Europe/Sofia"
fi

9
grub-config/locales/bs_BA Executable file
View file

@ -0,0 +1,9 @@
lang=bs
bootlang="lang=bs_BA"
def_bootlang="bs_BA"
if [ -z "${keyboard}" ]; then
def_keyboard="ba"
fi
if [ -z "${timezone}" ]; then
def_timezone="Europe/Sarajevo"
fi

9
grub-config/locales/cs_CZ Executable file
View file

@ -0,0 +1,9 @@
lang=cs
bootlang="lang=cs_CZ"
def_bootlang="cs_CZ"
if [ -z "${keyboard}" ]; then
def_keyboard="cz"
fi
if [ -z "${timezone}" ]; then
def_timezone="Europe/Prague"
fi

9
grub-config/locales/da_DK Executable file
View file

@ -0,0 +1,9 @@
lang=da
bootlang="lang=da_DK"
def_bootlang="da_DK"
if [ -z "${keyboard}" ]; then
def_keyboard="dk"
fi
if [ -z "${timezone}" ]; then
def_timezone="Europe/Copenhagen"
fi

9
grub-config/locales/de_AT Executable file
View file

@ -0,0 +1,9 @@
lang=de
bootlang="lang=de_AT"
def_bootlang="de_AT"
if [ -z "${keyboard}" ]; then
def_keyboard="de"
fi
if [ -z "${timezone}" ]; then
def_timezone="Europe/Vienna"
fi

9
grub-config/locales/de_BE Executable file
View file

@ -0,0 +1,9 @@
lang=de
bootlang="lang=de_BE"
def_bootlang="de_BE"
if [ -z "${keyboard}" ]; then
def_keyboard="be"
fi
if [ -z "${timezone}" ]; then
def_timezone="Europe/Brussels"
fi

9
grub-config/locales/de_CH Executable file
View file

@ -0,0 +1,9 @@
lang=de
bootlang="lang=de_CH"
def_bootlang="de_CH"
if [ -z "${keyboard}" ]; then
def_keyboard="ch"
fi
if [ -z "${timezone}" ]; then
def_timezone="Europe/Zurich"
fi

9
grub-config/locales/de_DE Executable file
View file

@ -0,0 +1,9 @@
lang=de
bootlang="lang=de_DE"
def_bootlang="de_DE"
if [ -z "${keyboard}" ]; then
def_keyboard="de"
fi
if [ -z "${timezone}" ]; then
def_timezone="Europe/Berlin"
fi

9
grub-config/locales/de_LI Executable file
View file

@ -0,0 +1,9 @@
lang=de
bootlang="lang=de_LI"
def_bootlang="de_LI"
if [ -z "${keyboard}" ]; then
def_keyboard="de"
fi
if [ -z "${timezone}" ]; then
def_timezone="Europe/Vaduz"
fi

9
grub-config/locales/de_LU Executable file
View file

@ -0,0 +1,9 @@
lang=de
bootlang="lang=de_LU"
def_bootlang="de_LU"
if [ -z "${keyboard}" ]; then
def_keyboard="de"
fi
if [ -z "${timezone}" ]; then
def_timezone="Europe/Luxembourg"
fi

9
grub-config/locales/el_CY Executable file
View file

@ -0,0 +1,9 @@
lang=el
bootlang="lang=el_CY"
def_bootlang="el_CY"
if [ -z "${keyboard}" ]; then
def_keyboard="gr"
fi
if [ -z "${timezone}" ]; then
def_timezone="Europe/Athens"
fi

9
grub-config/locales/el_GR Executable file
View file

@ -0,0 +1,9 @@
lang=el
bootlang="lang=el_GR"
def_bootlang="el_GR"
if [ -z "${keyboard}" ]; then
def_keyboard="gr"
fi
if [ -z "${timezone}" ]; then
def_timezone="Europe/Athens"
fi

9
grub-config/locales/en_AG Executable file
View file

@ -0,0 +1,9 @@
lang=en
bootlang="lang=en_AG"
def_bootlang="en_AG"
if [ -z "${keyboard}" ]; then
def_keyboard="us"
fi
if [ -z "${timezone}" ]; then
def_timezone="America/Antigua"
fi

9
grub-config/locales/en_AU Executable file
View file

@ -0,0 +1,9 @@
lang=en
bootlang="lang=en_AU"
def_bootlang="en_AU"
if [ -z "${keyboard}" ]; then
def_keyboard="us"
fi
if [ -z "${timezone}" ]; then
def_timezone="Australia/Sydney"
fi

9
grub-config/locales/en_BW Executable file
View file

@ -0,0 +1,9 @@
lang=en
bootlang="lang=en_BW"
def_bootlang="en_BW"
if [ -z "${keyboard}" ]; then
def_keyboard="us"
fi
if [ -z "${timezone}" ]; then
def_timezone="Africa/Gaborone"
fi

9
grub-config/locales/en_CA Executable file
View file

@ -0,0 +1,9 @@
lang=en
bootlang="lang=en_CA"
def_bootlang="en_CA"
if [ -z "${keyboard}" ]; then
def_keyboard="us"
fi
if [ -z "${timezone}" ]; then
def_timezone="America/Toronto"
fi

9
grub-config/locales/en_DK Executable file
View file

@ -0,0 +1,9 @@
lang=en
bootlang="lang=en_DK"
def_bootlang="en_DK"
if [ -z "${keyboard}" ]; then
def_keyboard="dk"
fi
if [ -z "${timezone}" ]; then
def_timezone="Europe/Copenhagen"
fi

9
grub-config/locales/en_GB Executable file
View file

@ -0,0 +1,9 @@
lang=en
bootlang="lang=en_GB"
def_bootlang="en_GB"
if [ -z "${keyboard}" ]; then
def_keyboard="gb"
fi
if [ -z "${timezone}" ]; then
def_timezone="Europe/London"
fi

9
grub-config/locales/en_HK Executable file
View file

@ -0,0 +1,9 @@
lang=en
bootlang="lang=en_HK"
def_bootlang="en_HK"
if [ -z "${keyboard}" ]; then
def_keyboard="us"
fi
if [ -z "${timezone}" ]; then
def_timezone="Asia/Hong_Kong"
fi

9
grub-config/locales/en_IE Executable file
View file

@ -0,0 +1,9 @@
lang=en
bootlang="lang=en_IE"
def_bootlang="en_IE"
if [ -z "${keyboard}" ]; then
def_keyboard="ie"
fi
if [ -z "${timezone}" ]; then
def_timezone="Europe/Dublin"
fi

9
grub-config/locales/en_IN Executable file
View file

@ -0,0 +1,9 @@
lang=en
bootlang="lang=en_IN"
def_bootlang="en_IN"
if [ -z "${keyboard}" ]; then
def_keyboard="us"
fi
if [ -z "${timezone}" ]; then
def_timezone="Asia/Kolkata"
fi

9
grub-config/locales/en_NG Executable file
View file

@ -0,0 +1,9 @@
lang=en
bootlang="lang=en_NG"
def_bootlang="en_NG"
if [ -z "${keyboard}" ]; then
def_keyboard="us"
fi
if [ -z "${timezone}" ]; then
def_timezone="Africa/Lagos"
fi

9
grub-config/locales/en_NZ Executable file
View file

@ -0,0 +1,9 @@
lang=en
bootlang="lang=en_NZ"
def_bootlang="en_NZ"
if [ -z "${keyboard}" ]; then
def_keyboard="us"
fi
if [ -z "${timezone}" ]; then
def_timezone="Pacific/Auckland"
fi

9
grub-config/locales/en_PH Executable file
View file

@ -0,0 +1,9 @@
lang=en
bootlang="lang=en_PH"
def_bootlang="en_PH"
if [ -z "${keyboard}" ]; then
def_keyboard="us"
fi
if [ -z "${timezone}" ]; then
def_timezone="Asia/Manila"
fi

9
grub-config/locales/en_SG Executable file
View file

@ -0,0 +1,9 @@
lang=en
bootlang="lang=en_SG"
def_bootlang="en_SG"
if [ -z "${keyboard}" ]; then
def_keyboard="us"
fi
if [ -z "${timezone}" ]; then
def_timezone="Asia/Singapore"
fi

9
grub-config/locales/en_US Executable file
View file

@ -0,0 +1,9 @@
lang=en
bootlang="lang=en_US"
def_bootlang="en_US"
if [ -z "${keyboard}" ]; then
def_keyboard="us"
fi
if [ -z "${timezone}" ]; then
def_timezone="America/New_York"
fi

9
grub-config/locales/en_ZA Executable file
View file

@ -0,0 +1,9 @@
lang=en
bootlang="lang=en_ZA"
def_bootlang="en_ZA"
if [ -z "${keyboard}" ]; then
def_keyboard="us"
fi
if [ -z "${timezone}" ]; then
def_timezone="Africa/Johannesburg"
fi

9
grub-config/locales/en_ZW Executable file
View file

@ -0,0 +1,9 @@
lang=en
bootlang="lang=en_ZW"
def_bootlang="en_ZW"
if [ -z "${keyboard}" ]; then
def_keyboard="us"
fi
if [ -z "${timezone}" ]; then
def_timezone="Africa/Harare"
fi

9
grub-config/locales/es_AR Executable file
View file

@ -0,0 +1,9 @@
lang=es
bootlang="lang=es_AR"
def_bootlang="es_AR"
if [ -z "${keyboard}" ]; then
def_keyboard="latam"
fi
if [ -z "${timezone}" ]; then
def_timezone="America/Argentina/Buenos_Aires"
fi

9
grub-config/locales/es_BO Executable file
View file

@ -0,0 +1,9 @@
lang=es
bootlang="lang=es_BO"
def_bootlang="es_BO"
if [ -z "${keyboard}" ]; then
def_keyboard="latam"
fi
if [ -z "${timezone}" ]; then
def_timezone="America/La_Paz"
fi

9
grub-config/locales/es_CL Executable file
View file

@ -0,0 +1,9 @@
lang=es
bootlang="lang=es_CL"
def_bootlang="es_CL"
if [ -z "${keyboard}" ]; then
def_keyboard="latam"
fi
if [ -z "${timezone}" ]; then
def_timezone="America/Santiago"
fi

9
grub-config/locales/es_CO Executable file
View file

@ -0,0 +1,9 @@
lang=es
bootlang="lang=es_CO"
def_bootlang="es_CO"
if [ -z "${keyboard}" ]; then
def_keyboard="latam"
fi
if [ -z "${timezone}" ]; then
def_timezone="America/Bogota"
fi

9
grub-config/locales/es_CR Executable file
View file

@ -0,0 +1,9 @@
lang=es
bootlang="lang=es_CR"
def_bootlang="es_CR"
if [ -z "${keyboard}" ]; then
def_keyboard="latam"
fi
if [ -z "${timezone}" ]; then
def_timezone="America/Costa_Rica"
fi

9
grub-config/locales/es_DO Executable file
View file

@ -0,0 +1,9 @@
lang=es
bootlang="lang=es_DO"
def_bootlang="es_DO"
if [ -z "${keyboard}" ]; then
def_keyboard="latam"
fi
if [ -z "${timezone}" ]; then
def_timezone="America/Santo_Domingo"
fi

9
grub-config/locales/es_EC Executable file
View file

@ -0,0 +1,9 @@
lang=es
bootlang="lang=es_EC"
def_bootlang="es_EC"
if [ -z "${keyboard}" ]; then
def_keyboard="latam"
fi
if [ -z "${timezone}" ]; then
def_timezone="America/Guayaquil"
fi

9
grub-config/locales/es_ES Executable file
View file

@ -0,0 +1,9 @@
lang=es
bootlang="lang=es_ES"
def_bootlang="es_ES"
if [ -z "${keyboard}" ]; then
def_keyboard="es"
fi
if [ -z "${timezone}" ]; then
def_timezone="Europe/Madrid"
fi

9
grub-config/locales/es_GT Executable file
View file

@ -0,0 +1,9 @@
lang=es
bootlang="lang=es_GT"
def_bootlang="es_GT"
if [ -z "${keyboard}" ]; then
def_keyboard="latam"
fi
if [ -z "${timezone}" ]; then
def_timezone="America/Guatemala"
fi

9
grub-config/locales/es_HN Executable file
View file

@ -0,0 +1,9 @@
lang=es
bootlang="lang=es_HN"
def_bootlang="es_HN"
if [ -z "${keyboard}" ]; then
def_keyboard="latam"
fi
if [ -z "${timezone}" ]; then
def_timezone="America/Tegucigalpa"
fi

9
grub-config/locales/es_MX Executable file
View file

@ -0,0 +1,9 @@
lang=es
bootlang="lang=es_MX"
def_bootlang="es_MX"
if [ -z "${keyboard}" ]; then
def_keyboard="latam"
fi
if [ -z "${timezone}" ]; then
def_timezone="America/Mexico_City"
fi

Some files were not shown because too many files have changed in this diff Show more