commit 5c3055f9214ecb556d6806879345e38d840dfef8 Author: Simon Rieger Date: Tue Oct 4 19:01:31 2022 +0200 First Commit diff --git a/.gitignore b/.gitignore new file mode 100755 index 0000000..ee9e539 --- /dev/null +++ b/.gitignore @@ -0,0 +1,4 @@ +builds/ +tmp/ +out/ +configs/grub.d/10_linux.original diff --git a/README.md b/README.md new file mode 100644 index 0000000..d6fb1c4 --- /dev/null +++ b/README.md @@ -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" diff --git a/arch-graphical-install-auto.sh b/arch-graphical-install-auto.sh new file mode 100755 index 0000000..8de2c96 --- /dev/null +++ b/arch-graphical-install-auto.sh @@ -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 diff --git a/arch-install.sh b/arch-install.sh new file mode 100755 index 0000000..5d819cf --- /dev/null +++ b/arch-install.sh @@ -0,0 +1,1670 @@ +#!/usr/bin/env bash +# +set -ex + +clear + +git config --global credential.helper store +arch=$(uname -m) +repo=spectreos +repo1=shell-scripte-code +cache=/var/cache/pacman/pkg/ +repo_url="https://git.spectreos.de/simono41/SpectreOS/raw/x86_64/repo.sh" + +if cat /etc/passwd | grep "x:1000" > /dev/null; then + tempuser=$(cat /etc/passwd | grep "x:1000" | awk '{print $1}') + user=${tempuser%%:*} +else + user=$(whoami) +fi + +#fastinstall arch-install fastinstall ${name} ${Partition} ${boot} ${device} ${dateisystem} ${raid} ${swap} ${swapspeicher} ${swapverschluesselung} ${offline} ${autodisk} ${autodiskdevice} ${autostartdesktop} ${autologin} ${verschluesselung} ${usbkey} ${usbkeydevice} ${extraparameter} ${skipcheck} ${nvidia} ${nopassword} + +echo "$(date "+%Y%m%d-%H%M%S")" + +if [[ $EUID -ne 0 ]]; then + echo "This script must be run as root" 1>&2 + # while-schleife + while (( "$#" )) + do + echo ${1} + startparameter="${startparameter}${1} " + shift + done + sudo "${0}" "${startparameter}" 2>&1 | tee /home/${user}/install.log + exit 0 +fi +echo "Logged in as root" + +function minimalinstallation() { + cp -v /opt/${repo}/mirrorlist* /etc/pacman.d/ + pacstrap -c -d -G -C /opt/${repo}/pacman.conf -M ${mountpoint} $(cat /opt/${repo}/packages.txt) + + # hooks + cp -v /opt/${repo}/configs/install/* ${mountpoint}/usr/lib/initcpio/install/ + cp -v /opt/${repo}/configs/hooks/* ${mountpoint}/usr/lib/initcpio/hooks/ + cp -v /opt/${repo}/configs/script-hooks/* ${mountpoint}/usr/lib/initcpio/ + + mkdir -p ${mountpoint}/etc/pacman.d/hooks + cp -v /opt/${repo}/configs/pacman-hooks/* ${mountpoint}/etc/pacman.d/hooks/ + cp -v /opt/${repo}/pacman.conf ${mountpoint}/etc/pacman.conf + cp -v /opt/${repo}/mirrorlist* ${mountpoint}/etc/pacman.d/ + chmod 644 -R ${mountpoint}etc/pacman.d/mirrorlist* + + arch-chroot ${mountpoint} /usr/bin/arch-graphical-install-auto +} + +function gitclone() { + + # Lade das Failback herunter falls nicht vorhanden + if ! [ -f "/usr/bin/repo" ]; then curl -o /usr/bin/repo "${repo_url}"; fi + + # 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 ! [ -f "/usr/bin/git" ]; then pacmanconf; fi + + # SSH 1/2 + git config --global credential.helper store + git config --global core.editor "nano" + 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 + 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_OS}; then + git remote add origin ${WEBADDRESS_OS} + fi + git pull + else + git clone ${WEBADDRESS_SCRIPTE} /opt/${repo1} + fi + cd / +} + +function secureumount() { + echo "unmounte alle lvms!!!" + if vgchange -an; then echo "Alle Physikalischen Volumen wurde erfolgreich entbunden :-D"; fi + + if [ "${dateisystem}" == "btrfs" ]; then + if cat /proc/mounts | grep ${mountpoint} > /dev/null; then + umount ${mountpoint}/boot + btrfs filesystem df ${mountpoint} + echo "umount!!!" + umount ${mountpoint}/home + umount ${mountpoint}/opt + umount ${mountpoint}/var/cache/pacman/pkg + umount ${mountpoint}/var/lib + # custom-mounts + for wort in ${mountsnaps} + do + if cat /proc/mounts | grep ${mountpoint}${wort} > /dev/null; then + umount ${mountpoint}${wort} + fi + done + umount ${mountpoint} + umount /mnt/btrfs-root + #umount -R /mnt + fi + elif [ "${dateisystem}" == "ext4" ]; then + + if cat /proc/mounts | grep ${mountpoint}/boot > /dev/null; then + umount ${mountpoint}/boot + fi + + if cat /proc/mounts | grep ${mountpoint} > /dev/null; then + umount ${mountpoint} + fi + fi + echo "unmounte nochmal alle lvms!!!" + if vgchange -an; then echo "Alle Physikalischen Volumen wurde erfolgreich entbunden :-D"; fi + + if fdisk -l | grep "${deviceluks}" > /dev/null; then + read -p "Should ${deviceluks} be removed? [Y/n] : " cryptremove + if [ "${cryptremove}" != "n" ]; then + if ! cryptsetup remove ${deviceluks}; then umount ${deviceluks}; fi + fi + fi + + if [ "${olddeviceluks}" != "" ]; then + if fdisk -l | grep "${olddeviceluks}" > /dev/null; then + read -p "Should ${olddeviceluks} be removed? [Y/n] : " cryptremove + if [ "${cryptremove}" != "n" ]; then + if ! cryptsetup remove ${olddeviceluks}; then umount ${deviceluks}; fi + fi + fi + fi + + if fdisk -l | grep "/dev/mapper/${deviceluksname}" > /dev/null; then + read -p "Should /dev/mapper/${deviceluksname} be removed? [Y/n] : " cryptremove + if [ "${cryptremove}" != "n" ]; then + if ! cryptsetup remove /dev/mapper/${deviceluksname}; then umount ${deviceluks}; fi + fi + fi + + if fdisk -l | grep "/dev/mapper/luks0" > /dev/null; then + read -p "Should /dev/mapper/luks0 be removed? [Y/n] : " cryptremove + if [ "${cryptremove}" != "n" ]; then + if ! cryptsetup remove /dev/mapper/luks0; then umount ${deviceluks}; fi + fi + fi + + if fdisk -l | grep "/dev/mapper/luks1" > /dev/null; then + read -p "Should /dev/mapper/luks1 be removed? [Y/n] : " cryptremove + if [ "${cryptremove}" != "n" ]; then + if ! cryptsetup remove /dev/mapper/luks1; then umount ${olddeviceluks}; fi + fi + fi + + if fdisk -l | grep "cryptsetup remove /dev/mapper/main-root" > /dev/null; then + read -p "Should /dev/mapper/main-root be removed? [Y/n] : " cryptremove + if [ "${cryptremove}" != "n" ]; then + cryptsetup remove /dev/mapper/main-root + fi + fi + + if cat /proc/mounts | grep ${device}${m2ssd}1 > /dev/null; then + umount ${device}${m2ssd}1 + fi + + if [ -n "${usbkeydevice}" ]; then + if cat /proc/mounts | grep ${usbkeydevice} > /dev/null; then + umount ${usbkeydevice} + fi + fi + + safeumount "${device}${efipartitionnummer}" + safeumount "${device}${bootpartitionnummer}" + if [ "${swap}" != "n" ]; then safeumount "${device}${swappartitionnummer}"; fi + safeumount "${device}${rootpartitionnummer}" + + if cat /proc/mounts | grep /mnt > /dev/null; then umount /mnt; fi + +} + +function formatencrypt() { + if [ "${verschluesselung}" == "y" ]; then + if [ "y" != "${lvmsupport}" ]; then + echo 'unmounte alle lvms!!!' + vgchange -an + fi + echo "Please write big YES" + cryptsetup -c aes-xts-plain64 -y -s 512 luksFormat ${device}${rootpartitionnummer} + mountencrypt + fi + +} + +function mountencrypt() { + if [ "${verschluesselung}" == "y" ]; then + cryptsetup luksOpen ${device}${rootpartitionnummer} ${deviceluksname} + fi + if [ "y" == "${lvmsupport}" ]; then + mountlvm + fi +} + +function partitioniere() { + wipefs -a -f ${device} + sgdisk -o ${device} + if [ "${m2ssddevice}" == "y" ]; then + sgdisk -a 2048 -n ${bootpartitionnummer: -1}::+1024K -c ${bootpartitionnummer: -1}:"BIOS Boot Partition" -t ${bootpartitionnummer: -1}:ef02 ${device} + sgdisk -a 2048 -n ${efipartitionnummer: -1}::+1G -c ${efipartitionnummer: -1}:"EFI Boot Partition" -t ${efipartitionnummer: -1}:ef00 ${device} + if [ "${swap}" != "n" ]; then + sgdisk -a 2048 -n ${swappartitionnummer: -1}::+${swapspeicher} -c ${swappartitionnummer: -1}:"Linux swap" -t ${swappartitionnummer: -1}:8200 ${device} + fi + sgdisk -a 2048 -n ${rootpartitionnummer: -1}:: -c ${rootpartitionnummer: -1}:"Linux filesystem" -t ${rootpartitionnummer: -1}:8300 ${device} + + else + sgdisk -a 2048 -n ${bootpartitionnummer}::+1024K -c ${bootpartitionnummer}:"BIOS Boot Partition" -t ${bootpartitionnummer}:ef02 ${device} + sgdisk -a 2048 -n ${efipartitionnummer}::+1G -c ${efipartitionnummer}:"EFI Boot Partition" -t ${efipartitionnummer}:ef00 ${device} + if [ "${swap}" != "n" ]; then + sgdisk -a 2048 -n ${swappartitionnummer}::+${swapspeicher} -c ${swappartitionnummer}:"Linux swap" -t ${swappartitionnummer}:8200 ${device} + fi + sgdisk -a 2048 -n ${rootpartitionnummer}:: -c ${rootpartitionnummer}:"Linux filesystem" -t ${rootpartitionnummer}:8300 ${device} + + fi + + secureumount + formatencrypt + +} + +function mountlvm() { + vgchange -ay +} + +function makelvm() { + echo "unmounte alle lvms!!!" + if vgchange -an; then echo "Alle Physikalischen Volumen wurde erfolgreich entbunden :-D"; fi + + if [ "y" == "${lvmsupport}" ]; then + if [ "${verschluesselung}" == "y" ]; then + pvcreate -ff /dev/mapper/${deviceluksname} + vgcreate ${devicelvmname} /dev/mapper/${deviceluksname} + else + pvcreate -ff ${device}${rootpartitionnummer} + vgcreate ${devicelvmname} ${device}${rootpartitionnummer} + fi + if [ "${swap}" != "n" ]; then + lvcreate -L ${swapspeicher} -n swap ${devicelvmname} + fi + lvcreate -l 100%FREE -n root ${devicelvmname} + mountlvm + fi +} + +function partitionierelvm() { + wipefs -a -f ${device} + sgdisk -o ${device} + + if [ "${m2ssddevice}" == "y" ]; then + blkdiscard ${device} + sgdisk -a 2048 -n ${bootpartitionnummer: -1}::+1024K -c ${bootpartitionnummer: -1}:"BIOS Boot Partition" -t ${bootpartitionnummer: -1}:ef02 ${device} + sgdisk -a 2048 -n ${efipartitionnummer: -1}::+1G -c ${efipartitionnummer: -1}:"EFI Boot Partition" -t ${efipartitionnummer: -1}:ef00 ${device} + sgdisk -a 2048 -n ${rootpartitionnummer: -1}:: -c ${rootpartitionnummer: -1}:"Linux filesystem" -t ${rootpartitionnummer: -1}:8300 ${device} + + secureumount + formatencrypt + makelvm + else + #shred -v -n 1 ${device} + sgdisk -a 2048 -n ${bootpartitionnummer}::+1024K -c ${bootpartitionnummer}:"BIOS Boot Partition" -t ${bootpartitionnummer}:ef02 ${device} + sgdisk -a 2048 -n ${efipartitionnummer}::+1G -c ${efipartitionnummer}:"EFI Boot Partition" -t ${efipartitionnummer}:ef00 ${device} + sgdisk -a 2048 -n ${rootpartitionnummer}:: -c ${rootpartitionnummer}:"Linux filesystem" -t ${rootpartitionnummer}:8300 ${device} + + secureumount + formatencrypt + makelvm + fi + + + + +} + +function partitionierewithoutboot() { + if [ "${m2ssddevice}" == "y" ]; then + if blkid -s PARTUUID -o value ${device}${rootpartitionnummer}; then + sgdisk -d ${rootpartitionnummer: -1} ${device} + fi + sgdisk -a 2048 -n ${rootpartitionnummer: -1}:: -c ${rootpartitionnummer: -1}:"Linux filesystem" -t ${rootpartitionnummer: -1}:8300 ${device} + + secureumount + formatencrypt + makelvm + else + if blkid -s PARTUUID -o value ${device}${rootpartitionnummer}; then + sgdisk -d ${rootpartitionnummer} ${device} + fi + sgdisk -a 2048 -n ${rootpartitionnummer}:: -c ${rootpartitionnummer}:"Linux filesyst" -t ${rootpartitionnummer}:8300 ${device} + + secureumount + formatencrypt + makelvm + fi + + +} + +function safebootloader() { + + mount ${device}${efipartitionnummer} /mnt/ + if ! [ -d "/root/bootloader" ]; then + mkdir -p /root/bootloader + cp -Rv /mnt/ /root/bootloader + fi + umount /mnt/ + +} + +function restorebootloader() { + + cp -Rv /root/bootloader/mnt/* ${mountpoint}/boot + +} + +function partitionieredual() { + if blkid -s PARTUUID -o value ${device}${efipartitionnummer}; then + safebootloader + fi + #repartioniere Windows-Partition + echo "WICHTIG!!! DIE WINDOWS PARTITION MUSS VON HAND AUS VERKLEINER WERDEN, ODER ES MUSS NOCH FREIER SPEICHER AUF DER FESTPLATTE ENTHALTEN SEIN!!!" + if [ "${m2ssddevice}" == "y" ]; then + if blkid -s PARTUUID -o value ${device}${rootpartitionnummer}; then + echo "entferne partition ${device}${rootpartitionnummer}" + sleep 5 + #parted -s ${device} rm ${rootpartitionnummer} + sgdisk -d ${rootpartitionnummer: -1} ${device} + sync + fi + if [ "${swap}" != "n" ]; then + if blkid -s PARTUUID -o value ${device}${swappartitionnummer}; then + sgdisk -d ${swappartitionnummer: -1} ${device} + fi + + sgdisk -a 2048 -n ${swappartitionnummer: -1}::+${swapspeicher} -c ${swappartitionnummer: -1}:"Linux swap" -t ${swappartitionnummer: -1}:8200 ${device} + fi + + sgdisk -a 2048 -n ${rootpartitionnummer: -1}:: -c ${rootpartitionnummer: -1}:"Linux filesystem" -t ${rootpartitionnummer: -1}:8300 ${device} + + echo "WARNING!!! CREATE NEW WINDOWS BOOTLOADER!!!" + sleep 10 + + if blkid -s PARTUUID -o value ${device}${bootpartitionnummer}; then + sgdisk -d ${bootpartitionnummer: -1} ${device} + fi + + sgdisk -a 2048 -n ${bootpartitionnummer: -1}::+1024K -c ${bootpartitionnummer: -1}:"BIOS Boot Partition" -t ${bootpartitionnummer: -1}:ef02 ${device} + + if blkid -s PARTUUID -o value ${device}${efipartitionnummer}; then + sgdisk -d ${efipartitionnummer: -1} ${device} + fi + + sgdisk -a 2048 -n ${efipartitionnummer: -1}:: -c ${efipartitionnummer: -1}:"Linux/Windows bootloader" -t ${efipartitionnummer: -1}:ef00 ${device} + + else + if blkid -s PARTUUID -o value ${device}${rootpartitionnummer}; then + echo "entferne partition ${device}${rootpartitionnummer}" + sleep 5 + #parted -s ${device} rm ${rootpartitionnummer} + sgdisk -d ${rootpartitionnummer} ${device} + sync + fi + + if [ "${swap}" != "n" ]; then + if blkid -s PARTUUID -o value ${device}${swappartitionnummer}; then + sgdisk -d ${swappartitionnummer} ${device} + fi + + sgdisk -a 2048 -n ${swappartitionnummer}::+${swapspeicher} -c ${swappartitionnummer}:"Linux swap" -t ${swappartitionnummer}:8200 ${device} + fi + + sgdisk -a 2048 -n ${rootpartitionnummer}:: -c ${rootpartitionnummer}:"Linux filesystem" -t ${rootpartitionnummer}:8300 ${device} + + echo "WARNING!!! CREATE NEW WINDOWS BOOTLOADER!!!" + sleep 10 + + if blkid -s PARTUUID -o value ${device}${bootpartitionnummer}; then + sgdisk -d ${bootpartitionnummer} ${device} + fi + + sgdisk -a 2048 -n ${bootpartitionnummer}::+1024K -c ${bootpartitionnummer}:"BIOS Boot Partition" -t ${bootpartitionnummer}:ef02 ${device} + + if blkid -s PARTUUID -o value ${device}${efipartitionnummer}; then + sgdisk -d ${efipartitionnummer} ${device} + fi + + sgdisk -a 2048 -n ${efipartitionnummer}:: -c ${efipartitionnummer}:"Linux/Windows bootloader" -t ${efipartitionnummer}:ef00 ${device} + + fi + + secureumount + formatencrypt + makelvm +} + +function usbkeyinstallation() { + mkdir -p /mnt/usb-stick + mount ${usbkeydevice} /mnt/usb-stick + if ! [ -f "/mnt/usb-stick/archkey" ]; then + dd if=/dev/urandom of=/mnt/usb-stick/archkey bs=512 count=4 + fi + cryptsetup luksAddKey ${device}${rootpartitionnummer} /mnt/usb-stick/archkey + +} + +function usbsecret() { + + cp /opt/${repo}/install/usbsecret ${mountpoint}/usr/lib/initcpio/install/usbsecret + cp /opt/${repo}/hooks/usbsecret ${mountpoint}/root/usbsecret + + # hooks + #cp install/usbsecret ${mountpoint}/usr/lib/initcpio/install/usbsecret + #cp hooks/usbsecret ${mountpoint}/usr/lib/initcpio/hooks/usbsecret + + sed "s|%USB_UUID%|${usbsecretdeviceuuid}|g;" ${mountpoint}/root/usbsecret > ${mountpoint}/usr/lib/initcpio/hooks/usbsecret + +} + +function cron() { + echo "cron-job snapshot" + mkdir -p ${mountpoint}/var/spool/cron/ + echo -n "0 18 * * * /usr/bin/snapshot make var/cache/pacman/pkg opt home " > ${mountpoint}/var/spool/cron/root + + # custom-mounts + for wort in ${mountsnaps} + do + echo -n "${wort#/*} " >> ${mountpoint}/var/spool/cron/root + done + echo "ROOT" >> ${mountpoint}/var/spool/cron/root + + cp /opt/${repo}/scripts/snapshot.sh ${mountpoint}/usr/bin/snapshot + chmod 755 ${mountpoint}/usr/bin/snapshot + +} + +function makeswapfile() { + #swapfile + fallocate -l ${swapfilespeicher} ${mountpoint}/swapfile + chmod 600 ${mountpoint}/swapfile + mkswap ${mountpoint}/swapfile + echo "/swapfile none swap defaults 0 0" >> ${mountpoint}/etc/fstab +} + +function makebtrfsswapfile() { + + # From https://github.com/sebastian-philipp/btrfs-swapon + cp -v /opt/${repo}/scripts/btrfs-swapon ${mountpoint}/usr/bin/btrfs-swapon + cp -v /opt/${repo}/scripts/btrfs-swapoff ${mountpoint}/usr/bin/btrfs-swapoff + cp -v /opt/${repo}/configs/service/btrfs-swapon.service ${mountpoint}/root/btrfs-swapon.service + + chmod +x ${mountpoint}/usr/bin/btrfs-swapon + chmod +x ${mountpoint}/usr/bin/btrfs-swapoff + + sed "s|%swapfilespeicher%|${swapfilespeicher}|g;" ${mountpoint}/root/btrfs-swapon.service > ${mountpoint}/etc/systemd/system/btrfs-swapon.service + + arch-chroot ${mountpoint} systemctl enable btrfs-swapon + +} + +function safeumount() { + echo "unmount \"${1}\"" + if cat /proc/mounts | grep "${1}" > /dev/null; then + umount "${1}" + fi +} + +function installation { + + #boot + echo "format" + if [ "y" != "${noinstall}" ]; then + mkfs.vfat -F 32 ${device}${efipartitionnummer} + safeumount "${device}${efipartitionnummer}" + fi + + #root + if [ "${dateisystem}" == "btrfs" ]; then + #mkfs.btrfs -f -L p_arch ${device}2 + if [ "y" != "${noinstall}" ]; then + btrfsformat #btrfs + fi + subvolume #btrfs + + elif [ "${dateisystem}" == "ext4" ]; then + echo "confirm with y" + if [ "${verschluesselung}" == "y" ]; then + if [ "y" != "${noinstall}" ]; then + sleep 1 + mkfs.ext4 -L p_arch ${deviceluks} #ext4 + safeumount "${deviceluks}" + fi + mount ${deviceluks} ${mountpoint} + else + if [ "y" != "${noinstall}" ]; then + mkfs.ext4 -L p_arch ${device}${rootpartitionnummer} #ext4 + safeumount "${device}${rootpartitionnummer}" + fi + mount ${device}${rootpartitionnummer} ${mountpoint} + fi + mkdir -p ${mountpoint}/boot + mount ${device}${efipartitionnummer} ${mountpoint}/boot + fi + + #swap + if [ "y" != "${noinstall}" ]; then + if [ "${swap}" != "n" ]; then + mkswap -L p_swap ${device}${swappartitionnummer} + swapon ${device}${swappartitionnummer} + fi + fi + + #installation + if [ "${offline}" != "n" ] + then + if [ -f /run/archiso/bootmnt/arch/${arch}/airootfs.sfs ]; then + echo "It is not a copytoram system." + if [ "y" != "${noinstall}" ]; then + unsquashfs -f -d ${mountpoint} /run/archiso/bootmnt/arch/${arch}/airootfs.sfs + fi + elif [ -f /run/archiso/copytoram/airootfs.sfs ]; then + echo "It is a copytoram system." + if [ "y" != "${noinstall}" ]; then + unsquashfs -f -d ${mountpoint} /run/archiso/copytoram/airootfs.sfs + fi + else + read -p "Where is the airootfs.sfs? Please specify the complete path or choose the online installation? [/airootfs.sfs/online] : " installationsfehler + if [ "${installationsfehler}" == "online" ]; then + minimalinstallation + else + unsquashfs -f -d ${mountpoint} ${installationsfehler} + fi + fi + else + minimalinstallation + fi + + + # module and hooks + parameter="base udev modconf block keymap " + #parameter="base udev autodetect keyboard keymap consolefont " + #parameter="base systemd autodetect keyboard sd-vconsole " + #parameter="${parameter}modconf block " + + if [ "${swap}" != "n" ]; then + parameter="${parameter}resume " + fi + + if [ "${verschluesselung}" == "y" ]; then + parameter="${parameter}encrypt " + #For Systemd Bootloader + #parameter="${parameter}sd-encrypt " + fi + + if [ "y" == "${lvmsupport}" ]; then + parameter="${parameter}lvm2 " + fi + + parameter="${parameter}filesystems " + + if [ "${dateisystem}" == "btrfs" ]; then + if [ "${raid}" != "n" ]; then + parameter="${parameter}btrfs " + fi + fi + + if [ "${usbsecret}" == "y" ]; then + parameter="${parameter}usbsecret " + fi + + parameter="${parameter}keyboard fsck " + + if [ "${nvidia}" == "y" ]; then + echo "MODULES=\"amdgpu nvidia i915 radeon\"" > ${mountpoint}/etc/mkinitcpio.conf + echo "HOOKS=\"${parameter}\"" >> ${mountpoint}/etc/mkinitcpio.conf + echo "COMPRESSION=\"zstd\"" >> ${mountpoint}/etc/mkinitcpio.conf + echo "blacklist nouveau" > ${mountpoint}/etc/modprobe.d/blacklist-nouveau.conf + else + echo "MODULES=\"amdgpu i915 radeon nouveau\"" > ${mountpoint}/etc/mkinitcpio.conf + echo "HOOKS=\"${parameter}\"" >> ${mountpoint}/etc/mkinitcpio.conf + echo "COMPRESSION=\"zstd\"" >> ${mountpoint}/etc/mkinitcpio.conf + fi + + echo "blacklist floppy" > ${mountpoint}/etc/modprobe.d/blacklist-floppy.conf + echo "install dell-smbios /bin/false" > ${mountpoint}/etc/modprobe.d/blacklist-dell-smbios.conf + echo "tmpfs /tmp tmpfs defaults,size=6G 0 0" > ${mountpoint}/etc/fstab + echo "tmpfs /dev/shm tmpfs defaults 0 0" >> ${mountpoint}/etc/fstab + + #fstab + rootbind=$(blkid -s PARTUUID -o value ${device}${rootpartitionnummer}) + + #genfstab -Up ${mountpoint} >> ${mountpoint}/etc/fstab + + if [ "${dateisystem}" == "btrfs" ]; then + btrfsfstab #btrfs + + mkdir -p ${mountpoint}/btrfs-root + if [ "${verschluesselung}" == "y" ] || [ "y" == "${lvmsupport}" ]; then + echo "${deviceluks} /btrfs-root/ btrfs defaults 0 0" >> ${mountpoint}/etc/fstab #btrfs + else + echo "PARTUUID=${rootbind} /btrfs-root/ btrfs defaults 0 0" >> ${mountpoint}/etc/fstab #btrfs + fi + #grep -v "/var/lib" < ${mountpoint}/etc/fstab > fstab.neu; mv fstab.neu ${mountpoint}/etc/fstab + + echo "/btrfs-root/__current/ROOT/var/lib /var/lib none bind 0 0" >> ${mountpoint}/etc/fstab #btrfs + + cron + + elif [ "${dateisystem}" == "ext4" ]; then + if [ "${verschluesselung}" == "y" ] || [ "y" == "${lvmsupport}" ]; then + echo "${deviceluks} / ext4 rw,defaults,noatime,nodiratime,discard 0 0" >> ${mountpoint}/etc/fstab #ext4 + else + echo "PARTUUID=${rootbind} / ext4 rw,defaults,noatime,nodiratime,discard 0 0" >> ${mountpoint}/etc/fstab #ext4 + fi + fi + + echo "tmpfs /home/${user}/.cache tmpfs noatime,nodev,nosuid,size=2G 0 0" >> ${mountpoint}/etc/fstab + + bootbind=$(blkid -s PARTUUID -o value ${device}${efipartitionnummer}) + + echo -e "PARTUUID=${bootbind} /boot vfat rw,relatime 0 2" >> ${mountpoint}/etc/fstab + + + if [ "${swap}" != "n" ]; then + if [ "${swapverschluesselung}" == "y" ] || [ "y" == "${lvmsupport}" ]; then + swappartition=$(blkid -s PARTUUID -o value ${device}${swappartitionnummer}) + echo "swap PARTUUID=${swappartition} /dev/urandom swap,cipher=aes-cbc-essiv:sha256,size=256" > ${mountpoint}/etc/crypttab + echo "/dev/mapper/swap none swap defaults 0 0" >> ${mountpoint}/etc/fstab + else + swappartition=$(blkid -s PARTUUID -o value ${device}${swappartitionnummer}) + echo "PARTUUID=${swappartition} swap swap sw 0 0" >> ${mountpoint}/etc/fstab + fi + fi + + #makeswapfile+fstab + if [ "y" != "${noinstall}" ]; then + if [ "${swapfile}" == "y" ]; then + if [ "${dateisystem}" == "btrfs" ]; then + makebtrfsswapfile + elif [ "${dateisystem}" == "ext4" ]; then + makeswapfile + fi + fi + fi + + #hostname + echo "${hostname}" > ${mountpoint}/etc/hostname + echo "hostname=\"${hostname}\"" > /etc/conf.d/hostname + + # os-release + cp /opt/${repo}/os-release ${mountpoint}/etc/ + + if [ "y" != "${noinstall}" ]; then + if [ "${usbsecret}" == "y" ]; then + usbsecret + fi + fi + + if [ "y" != "${noinstall}" ]; then + if [ "${usbkey}" == "y" ]; then + usbkeyinstallation + fi + fi + + if [ "${autodisk}" == "y" ] + then + for wort in ${autodiskdevice} + do + echo "fstab ${wort} wird erstellt!!!" + autodiskdevicedateisystem=$(blkid -s TYPE -o value ${wort}) + autodiskdevicepartuuid=$(blkid -s PARTUUID -o value ${wort}) + mkdir -p ${mountpoint}/media/${user}/${autodiskdevicepartuuid} + echo "PARTUUID=${autodiskdevicepartuuid} /media/${user}/${autodiskdevicepartuuid} ${autodiskdevicedateisystem} defaults 0 2" >> ${mountpoint}/etc/fstab + + done + + + fi + + #forbtrfssnapshots + cp ${mountpoint}/etc/fstab ${mountpoint}/etc/fstab.default + +} + +function grubinstall() { + + sleep 1 + tobootdevice=$(blkid -s PARTUUID -o value ${device}${rootpartitionnummer}) + if aufloesung=$(xrandr | grep -o -E '[0-9]{3,4}\x[0-9]{3,4}' | head -1); then + echo "Deine aufloesung ist ${aufloesung}" + fi + [[ -z "${aufloesung}" ]] && aufloesung=auto + + cp /opt/${repo}/configs/grub.d/10_linux ${mountpoint}/etc/grub.d/10_linux + + mkdir -p ${mountpoint}/boot/grub/themes/ + #cp -Rv /opt/${repo}/grub-config/themes/poly-light/ ${mountpoint}/boot/grub/themes/ + cp -Rv /opt/${repo}/grub-config/themes/Stylish/ ${mountpoint}/boot/grub/themes/ + cp -Rv /opt/${repo}/grub-config/themes/Vimix/ ${mountpoint}/boot/grub/themes/ + sed -i 's|GRUB_DISTRIBUTOR=.*$|GRUB_DISTRIBUTOR=\"'$repo'\"|' ${mountpoint}/etc/default/grub + sed -i 's|GRUB_PRELOAD_MODULES=.*$|GRUB_PRELOAD_MODULES=\"part_gpt part_msdos zstd btrfs lvm\"|' ${mountpoint}/etc/default/grub + + if [ "${verschluesselung}" == "y" ] || [ "y" == "${lvmsupport}" ]; then + sed -i 's|GRUB_CMDLINE_LINUX_DEFAULT=.*$|GRUB_CMDLINE_LINUX_DEFAULT=\"\"|' ${mountpoint}/etc/default/grub + else + sed -i 's|GRUB_CMDLINE_LINUX_DEFAULT=.*$|GRUB_CMDLINE_LINUX_DEFAULT=\"\"|' ${mountpoint}/etc/default/grub + fi + + #sed -i 's|GRUB_BACKGROUND=.*$|GRUB_BACKGROUND=\"\/usr\/share\/grub\/background.png\"|' ${mountpoint}/etc/default/grub + #sed -i 's|GRUB_THEME=.*$|GRUB_THEME="\/boot\/grub\/themes\/poly-light\/theme.txt"|' ${mountpoint}/etc/default/grub + sed -i 's|#GRUB_THEME=.*$|GRUB_THEME="\/boot\/grub\/themes\/Stylish\/theme.txt"|' ${mountpoint}/etc/default/grub + sed -i 's|GRUB_THEME=.*$|GRUB_THEME="\/boot\/grub\/themes\/Stylish\/theme.txt"|' ${mountpoint}/etc/default/grub + #sed -i 's|GRUB_THEME=.*$|GRUB_THEME="\/boot\/grub\/themes\/Vimix\/theme.txt"|' ${mountpoint}/etc/default/grub + #sed -i 's|#GRUB_BACKGROUND=.*$|GRUB_BACKGROUND=\"\/usr\/share\/grub\/background.png\"|' ${mountpoint}/etc/default/grub + #sed -i 's|#GRUB_THEME=.*$|GRUB_THEME="\/boot\/grub\/themes\/poly-light\/theme.txt"|' ${mountpoint}/etc/default/grub + sed -i 's|GRUB_GFXMODE=.*$|GRUB_GFXMODE="'$aufloesung'"|' ${mountpoint}/etc/default/grub + + if [ "y" == "${lvmsupport}" ]; then + cryptdevicesystem="${devicelvmname}" + elif [ "${verschluesselung}" == "y" ]; then + cryptdevicesystem="${deviceluksname}" + fi + + parameter="" + + if [ "${verschluesselung}" == "y" ] || [ "y" == "${lvmsupport}" ]; then + rootbootsystem="${deviceluks}" + parameter="root=${rootbootsystem} ${parameter}cryptdevice=PARTUUID=${tobootdevice}:${cryptdevicesystem} " + echo "GRUB_ENABLE_CRYPTODISK=y" >> ${mountpoint}/etc/default/grub + else + rootbootsystem="$(blkid -s PARTUUID -o value ${device}${rootpartitionnummer})" + parameter="${parameter}root=PARTUUID=${rootbootsystem} " + fi + + if [ "${swap}" == "y" ]; then + parameter="${parameter}resume=PARTUUID=${swappartition} " + fi + + if [ "${usbkey}" == "y" ]; then + parameter="${parameter}cryptkey=UUID=${usbkeyuuid}:${usbkeydateisystem}:\/archkey " + fi + + parameter="${parameter}autostartdesktop=${autostartdesktop} lang=${lang} keytable=${keytable} tz=${tz} " + + sed -i '/GRUB_CMDLINE_LINUX=/d' ${mountpoint}/etc/default/grub + echo "GRUB_CMDLINE_LINUX=\"${parameter}\"" >> ${mountpoint}/etc/default/grub + echo "GRUB_DISABLE_OS_PROBER=true" >> ${mountpoint}/etc/default/grub +} + +function btrfsformat() { + sleep 1 + if [ "$raid" == "raid0" ]; then + if [ "${verschluesselung}" == "y" ] || [ "y" == "${lvmsupport}" ]; then + mkfs.btrfs -f -m raid0 -d raid0 ${deviceluks} ${device1} + safeumount "${deviceluks}" + else + mkfs.btrfs -f -m raid0 -d raid0 ${device}${rootpartitionnummer} ${device1} + safeumount "${device}${rootpartitionnummer}" + fi + elif [ "$raid" == "raid1" ]; then + if [ "${verschluesselung}" == "y" ] || [ "y" == "${lvmsupport}" ]; then + mkfs.btrfs -f -m raid1 -d raid1 ${deviceluks} ${device1} + safeumount "${deviceluks}" + else + mkfs.btrfs -f -m raid1 -d raid1 ${device}${rootpartitionnummer} ${device1} + safeumount "${device}${rootpartitionnummer}" + fi + elif [ "$raid" == "raid10" ]; then + if [ "${verschluesselung}" == "y" ] || [ "y" == "${lvmsupport}" ]; then + mkfs.btrfs -f -m raid10 -d raid10 ${deviceluks} ${device1} + safeumount "${deviceluks}" + else + mkfs.btrfs -f -m raid10 -d raid10 ${device}${rootpartitionnummer} ${device1} + safeumount "${device}${rootpartitionnummer}" + fi + else + if [ "${verschluesselung}" == "y" ] || [ "y" == "${lvmsupport}" ]; then + mkfs.btrfs -f -m single ${deviceluks} + safeumount "${deviceluks}" + else + mkfs.btrfs -f -m single ${device}${rootpartitionnummer} + safeumount "${device}${rootpartitionnummer}" + fi + fi + btrfs filesystem show + +} + +function btrfsfstab() { + + rootbind=$(blkid -s PARTUUID -o value ${device}${rootpartitionnummer}) + + if [ "${verschluesselung}" == "y" ] || [ "y" == "${lvmsupport}" ]; then + + + echo -e "${deviceluks} / btrfs rw,noatime,nodiratime,discard,ssd,compress=zstd,subvol=__current/ROOT 0 0" >> ${mountpoint}/etc/fstab + + echo -e "${deviceluks} /home btrfs rw,noatime,nodiratime,discard,ssd,compress=zstd,subvol=__current/home 0 0" >> ${mountpoint}/etc/fstab + echo -e "${deviceluks} /opt btrfs rw,noatime,nodiratime,discard,ssd,compress=zstd,subvol=__current/opt 0 0" >> ${mountpoint}/etc/fstab + echo -e "${deviceluks} /var/cache/pacman/pkg btrfs rw,noatime,nodiratime,discard,ssd,compress=zstd,subvol=__current/var/cache/pacman/pkg 0 0" >> ${mountpoint}/etc/fstab + + # custom-mounts + for wort in ${mountsnaps} + do + echo -e "${deviceluks} ${wort} btrfs rw,noatime,nodiratime,discard,ssd,compress=zstd,subvol=__current${wort} 0 0" >> ${mountpoint}/etc/fstab + done + + + else + + echo -e "PARTUUID=${rootbind} / btrfs rw,noatime,nodiratime,discard,ssd,compress=zstd,subvol=__current/ROOT 0 0" >> ${mountpoint}/etc/fstab + + echo -e "PARTUUID=${rootbind} /home btrfs rw,noatime,nodiratime,discard,ssd,compress=zstd,subvol=__current/home 0 0" >> ${mountpoint}/etc/fstab + echo -e "PARTUUID=${rootbind} /opt btrfs rw,noatime,nodiratime,discard,ssd,compress=zstd,subvol=__current/opt 0 0" >> ${mountpoint}/etc/fstab + echo -e "PARTUUID=${rootbind} /var/cache/pacman/pkg btrfs rw,noatime,nodiratime,discard,ssd,compress=zstd,subvol=__current/var/cache/pacman/pkg 0 0" >> ${mountpoint}/etc/fstab + + # custom-mounts + for wort in ${mountsnaps} + do + echo -e "PARTUUID=${rootbind} ${wort} btrfs rw,noatime,nodiratime,discard,ssd,compress=zstd,subvol=__current${wort} 0 0" >> ${mountpoint}/etc/fstab + done + + + fi +} + +function btrfsmount() { + #[[ -z "${device}" ]] && device=${2} + + if [ "${1}" == "1" ] || [ "${1}" == "" ]; then + if [ "${verschluesselung}" == "y" ] || [ "y" == "${lvmsupport}" ]; then + mkdir -p /mnt/btrfs-root + mount -o defaults,noatime,nodiratime,discard,ssd,compress=zstd ${deviceluks} /mnt/btrfs-root + else + mkdir -p /mnt/btrfs-root + mount -o defaults,noatime,nodiratime,discard,ssd,compress=zstd ${device}${rootpartitionnummer} /mnt/btrfs-root + fi + fi + if [ "${1}" == "2" ] || [ "${1}" == "" ]; then + if [ "${verschluesselung}" == "y" ] || [ "y" == "${lvmsupport}" ]; then + mkdir -p ${mountpoint} + mount -o defaults,noatime,nodiratime,discard,ssd,compress=zstd,subvol=__current/ROOT ${deviceluks} ${mountpoint} + + mkdir -p ${mountpoint}/home + mkdir -p ${mountpoint}/opt + mkdir -p ${mountpoint}/var/cache/pacman/pkg + mount -o defaults,noatime,nodiratime,discard,ssd,compress=zstd,subvol=__current/home ${deviceluks} ${mountpoint}/home + mount -o defaults,noatime,nodiratime,discard,ssd,compress=zstd,subvol=__current/opt ${deviceluks} ${mountpoint}/opt + mount -o defaults,noatime,nodiratime,discard,ssd,compress=zstd,subvol=__current/var/cache/pacman/pkg ${deviceluks} ${mountpoint}/var/cache/pacman/pkg + + # custom-mounts + for wort in ${mountsnaps} + do + mkdir -p ${mountpoint}${wort} + mount -o defaults,noatime,nodiratime,discard,ssd,compress=zstd,subvol=__current${wort} ${deviceluks} ${mountpoint}${wort} + done + + mkdir -p ${mountpoint}/var/lib + mount --bind /mnt/btrfs-root/__current/ROOT/var/lib ${mountpoint}/var/lib + else + mkdir -p ${mountpoint} + mount -o defaults,noatime,nodiratime,discard,ssd,compress=zstd,subvol=__current/ROOT ${device}${rootpartitionnummer} ${mountpoint} + + mkdir -p ${mountpoint}/home + mkdir -p ${mountpoint}/opt + mkdir -p ${mountpoint}/var/cache/pacman/pkg + mount -o defaults,noatime,nodiratime,discard,ssd,compress=zstd,subvol=__current/home ${device}${rootpartitionnummer} ${mountpoint}/home + mount -o defaults,noatime,nodiratime,discard,ssd,compress=zstd,subvol=__current/opt ${device}${rootpartitionnummer} ${mountpoint}/opt + mount -o defaults,noatime,nodiratime,discard,ssd,compress=zstd,subvol=__current/var/cache/pacman/pkg ${device}${rootpartitionnummer} ${mountpoint}/var/cache/pacman/pkg + + # custom-mounts + for wort in ${mountsnaps} + do + mkdir -p ${mountpoint}${wort} + mount -o defaults,noatime,nodiratime,discard,ssd,compress=zstd,subvol=__current${wort} ${device}${rootpartitionnummer} ${mountpoint}${wort} + done + + mkdir -p ${mountpoint}/var/lib + mount --bind /mnt/btrfs-root/__current/ROOT/var/lib ${mountpoint}/var/lib + fi + # boot mount + mkdir -p ${mountpoint}/boot + mount -t vfat ${device}${efipartitionnummer} ${mountpoint}/boot + + fi +} + +function subvolume() { + + # Mount + btrfsmount 1 + + # Create + if [ "y" != "${noinstall}" ]; then + mkdir -p /mnt/btrfs-root/__snapshot + mkdir -p /mnt/btrfs-root/__current + btrfs subvolume create /mnt/btrfs-root/__current/ROOT + btrfs subvolume create /mnt/btrfs-root/__current/home + btrfs subvolume create /mnt/btrfs-root/__current/opt + mkdir -p /mnt/btrfs-root/__current/var/cache/pacman + btrfs subvolume create /mnt/btrfs-root/__current/var/cache/pacman/pkg/ + + # custom-mounts + for wort in ${mountsnaps} + do + mkdir -p /mnt/btrfs-root/__current${wort%/*} + btrfs subvolume create /mnt/btrfs-root/__current${wort} + done + fi + + btrfs subvolume list -p /mnt/btrfs-root + + # Mount + btrfsmount 2 + +} + +function update() { + #statements + local if="${1}" + local of="${2}" + local execute="${3}" + local parameters="${4}" + if [ -f "${of}" ] + then + rm ${of} + else + echo "${of} noch nicht vorhanden!" + fi + /usr/bin/curl -v -C - -f ${if} > ${of} + chmod 755 ${of} + + ${of} ${execute} ${parameters} + +} + +function systemdboot() { + tobootdeviceuuid=$(blkid -s PARTUUID -o value ${device}${rootpartitionnummer}) + swappartitionpart=$(blkid -s PARTUUID -o value ${device}${swappartitionnummer}) + + # zurücksetzen der parameter + parameter="" + + if [ "${swap}" != "n" ]; then + parameter="${parameter}resume=PARTUUID=${swappartitionpart} " + fi + if [ "${verschluesselung}" == "y" ] || [ "y" == "${lvmsupport}" ]; then + tobootdevice=${deviceluks} + parameter="${parameter}cryptdevice=PARTUUID=${tobootdeviceuuid}:${deviceluksname} " + if [ "${usbkey}" == "y" ]; then + parameter="${parameter}cryptkey=UUID=${usbkeyuuid}:${usbkeydateisystem}:/archkey " + fi + else + tobootdevice="PARTUUID=${tobootdeviceuuid} " + fi + if [ "${dateisystem}" == "btrfs" ]; then + parameter="${parameter}rootflags=subvol=__current/ROOT " + fi + + if [ "${cpusucks}" != "n" ]; then + parameter="${parameter} pci=noacpi rcu_nocbs=0-7 processor.max_cstate=1 i8042.noloop i8042.nomux i8042.nopnp i8042.reset" + fi + + parameter="${parameter}autostartdesktop=${autostartdesktop} lang=${lang} keytable=${keytable} tz=${tz} " + + kernel="initramfs-linux.img" + linuz="vmlinuz-linux" + kernelback="initramfs-linux-fallback.img" + + mkdir -p ${mountpoint}/boot/EFI/systemd/ + mkdir -p ${mountpoint}/boot/EFI/BOOT/ + cp ${mountpoint}/usr/lib/systemd/boot/efi/systemd-bootx64.efi ${mountpoint}/boot/EFI/systemd/systemd-bootx64.efi + cp ${mountpoint}/usr/lib/systemd/boot/efi/systemd-bootx64.efi ${mountpoint}/boot/EFI/BOOT/BOOTX64.EFI + + mkdir -p ${mountpoint}/boot/loader/entries/ + echo "title "${repo}"" > ${mountpoint}/boot/loader/entries/arch-uefi.conf + echo "linux /${linuz}" >> ${mountpoint}/boot/loader/entries/arch-uefi.conf + echo "initrd /intel-ucode.img" >> ${mountpoint}/boot/loader/entries/arch-uefi.conf + echo "initrd /${kernel}" >> ${mountpoint}/boot/loader/entries/arch-uefi.conf + echo "options root=${tobootdevice} rw ${parameter}" >> ${mountpoint}/boot/loader/entries/arch-uefi.conf + + echo "title "${repo}"" > ${mountpoint}/boot/loader/entries/arch-uefi-fallback.conf + echo "linux /${linuz}" >> ${mountpoint}/boot/loader/entries/arch-uefi-fallback.conf + echo "initrd /intel-ucode.img" >> ${mountpoint}/boot/loader/entries/arch-uefi-fallback.conf + echo "initrd /${kernelback}" >> ${mountpoint}/boot/loader/entries/arch-uefi-fallback.conf + echo "options root=${tobootdevice} rw ${parameter}" >> ${mountpoint}/boot/loader/entries/arch-uefi-fallback.conf + + echo "default arch-uefi" > ${mountpoint}/boot/loader/loader.conf + echo "timeout 1" >> ${mountpoint}/boot/loader/loader.conf + + echo "Additional boot entries are created !!!" + + arch-chroot ${mountpoint} efibootmgr -c -d ${device} -p 1 -l /EFI/systemd/systemd-bootx64.efi -L "Linux Boot Manager" + + arch-chroot ${mountpoint} efibootmgr -c -d ${device} -p 1 -l \\${linuz} -L "Arch Linux efistub" -u "initrd=/${kernel} root=${tobootdevice} rw ${parameter}" +} + +function luksabfrage() { + + if [ "n" != "${verschluesselung}" ]; then + if [ "y" == "${lvmsupport}" ]; then + deviceluks="/dev/mapper/main-root" + deviceluksname="luks0" + devicelvmname="main" + else + deviceluks="/dev/mapper/luks0" + deviceluksname="luks0" + devicelvmname="luks0" + fi + if [ "${noinstall}" != "y" ] && fdisk -l | grep ${deviceluks} > /dev/null; then + olddeviceluks="${deviceluks}" + if [ "y" == "${lvmsupport}" ]; then + deviceluks="/dev/mapper/main1-root" + deviceluksname="luks1" + devicelvmname="main1" + else + deviceluks="/dev/mapper/luks1" + deviceluksname="luks1" + devicelvmname="luks1" + fi + echo "${deviceluks} wird jetzt verwendet!!!" + fi + fi + +} + +function abfrage() { + + if [ "${fastinstallnext}" == "y" ]; then + + [[ -z "${name}" ]] && name=arch-linux + + [[ -z "${user}" ]] && user=user1 + + [[ -z "${Partition}" ]] && Partition=bios + + [[ -z "${device}" ]] && device=/dev/sda + + [[ -z "${raid}" ]] && raid=n + + [[ -z "${dateisystem}" ]] && dateisystem=btrfs + + [[ -z "${swap}" ]] && swap=n + + [[ -z "${swapspeicher}" ]] && swapspeicher=8G + + [[ -z "${swapverschluesselung}" ]] && swapverschluesselung=n + + [[ -z "${autologin}" ]] && autologin=y + + [[ -z "${usbkeydevice}" ]] && usbkeydevice=/dev/sdb1 + + [[ -z "${autodiskdevice}" ]] && autodiskdevice=/dev/sdb1 + + [[ -z "${nvidia}" ]] && nvidia=n + + [[ -z "${cpusucks}" ]] && cpusucks=n + + [[ -z "${lvmsupport}" ]] && lvmsupport=n + + luksabfrage + + if [ "${offline}" != "n" ] + then + install="offline" + else + install="online" + fi + + if [ "${device}" == "/dev/nvme0n1" ]; then + m2ssddevice=y + fi + + echo "Überspringe die Konfiguration wegen dem fastinstall Parameter!!!" + echo "Sie können die Überprüfung mit skipcheck überspringen!!!" + else + + # youre virtual name + read -p "What's your name?: " name + [[ -z "${name}" ]] && name=arch-linux + + # youre folder and login name + read -p "What's your username?: " user + [[ -z "${user}" ]] && user=user1 + + # Partionierung + # UEFI oder Legacy-BIOS + echo "" + echo "UEFI = Unified Extensible Firmware Interface" + echo "Recommended for newer PCs" + echo "IMPORTANT FOR THIS MUST BE SELECTED IN THE BOAT MENU THE UEFI USB STICK OTHERWISE CAN NOT BE CREATED A UEFI BOAT ENTRY !!!" + echo "" + echo "BIOS = basic input/output system" + echo "Recommended for old PCs and portable USB sticks " + echo "" + echo "Please write down the entries: D !!!" + echo "For each yes you have to make a y and for every no an n, unless it is interpreted differently!!!" + echo "" + if mount | grep efi > /dev/null && [ -d /sys/firmware/efi/efivars/ ]; then + echo "System supports UEFI" + read -p "How would you like to have your hard drive partitioned?: [UEFI/bios] " Partition + [[ -z "${Partition}" ]] && Partition=uefi + else + echo "System supports not UEFI" + read -p "How would you like to have your hard drive partitioned?: [uefi/BIOS] " Partition + [[ -z "${Partition}" ]] && Partition=bios + fi + + firstdevice=$(fdisk -l | awk '{print $2}' | sed '1!d') + read -p "Specify a hard disk: [${firstdevice%?}] : " device + [[ -z "${device}" ]] && device=${firstdevice%?} + if [ "${device}" == "/dev/nvme0n1" ]; then + m2ssddevice=y + fi + + echo "BTRFS dos´nt support 32-Bit Systems!!!" + read -p "Which file system should be used? [BTRFS/ext4] " dateisystem + [[ -z "${dateisystem}" ]] && dateisystem=btrfs + + if [ "${dateisystem}" == "btrfs" ]; then + read -p "Should a raid be made ?: [raid0/raid1/raid10/N] " raid + [[ -z "${raid}" ]] && raid=n + if [ "${raid}" == "n" ]; then + echo "No raid is generated!" + else + fdisk -l + read -p "Please enter the disks in a row to be connected to a raid !!!: " device1 + fi + echo "Standard snapshots / /home /opt /var/cache/pacman/pkg" + echo "The directories may not overlap otherwise there may be problems with the unmount !!!" + read -p "Should more snapshots be created ?: " mountsnaps + fi + + read -p "Do you want to create a swap partition? : [y/N] " swap + [[ -z "${swap}" ]] && swap=n + if [ "${swap}" != "n" ]; then + echo "The swap is used for the installation immediately because the unpacker of the squashfs file needs at least 1GB of RAM." + read -p "Do you want create your swap with : [2G/4G/8G/16G] " swapspeicher + [[ -z "${swapspeicher}" ]] && swapspeicher=8G + + echo "WARNING with a encrypted Swap disk you cant go in the hibernate-modus!!!" + read -p "Should the Swap disk be encrypted? : [y/N] " swapverschluesselung + [[ -z "${swapverschluesselung}" ]] && swapverschluesselung=n + fi + + read -p "Do you want to create a swapfile? : [y/N] " swapfile + if [ "${swapfile}" == "y" ]; then + read -p "Do you want create your swapfile with : [2G/4G/8G/16G] " swapfilespeicher + [[ -z "${swapfilespeicher}" ]] && swapfilespeicher=8G + + fi + + if [ "${raid}" == "n" ]; then + read -p "Should the hard disk be encrypted? : [y/N] " verschluesselung + if [ "${verschluesselung}" == "y" ]; then + modprobe dm-crypt + read -p "Should an additional USB stick be created for decryption? : [y/N] " usbkey + if [ "${usbkey}" == "y" ]; then + read -p "Which USB stick should be selected ?: [/dev/sdb2] : " usbkeydevice + [[ -z "${usbkeydevice}" ]] && usbkeydevice=/dev/sdb2 + usbkeydateisystem=$(blkid -s TYPE -o value ${usbkeydevice}) + usbkeyuuid=$(blkid -s UUID -o value ${usbkeydevice}) + fi + fi + fi + + # berechnungen + + read -p "Should an offline installation be carried out? : [Y/n] " offline + if [ "${offline}" != "n" ] + then + install="offline" + else + install="online" + echo "You can choose with an online installation, which distrubtion you want to install!!!" + + fi + hostname=deadc0de-remix-os + + echo "WARNING!!! Diese Methode ist wegen einer neuen UDEV Rule unnötig geworden der alle angeschlossen Laufwerke automatisch mountet ;-)" + read -p "Should you an disk added to your fstab? : [y/udevautomountrule/N] " autodisk + if [ "${autodisk}" == "y" ] + then + read -p "Which DISK stick should be selected ?: [/dev/sdb1 /dev/sdc1] : " autodiskdevice + [[ -z "${autodiskdevice}" ]] && autodiskdevice=/dev/sdb1 + + for wort in ${autodiskdevice} + do + echo "fstab ${wort} wird erstellt!!!" + autodiskdevicedateisystem=$(blkid -s TYPE -o value ${wort}) + autodiskdeviceuuid=$(blkid -s PARTUUID -o value ${wort}) + + done + elif [ "${autodisk}" == "udevautomountrule" ]; then + udevautomountrule=y + + fi + + echo "The desktop environments installed by default are sway (preconfigured) or CLI (only for CLI versions!!!)" + read -p "Which desktop environment should be started by default?? : [SWAY/i3/plasma/lxqt/gnome/xfce4/cli] " autostartdesktop + [[ -z "${autostartdesktop}" ]] && autostartdesktop="sway" + + read -p "Should you autologin in youre System? : [Y/n] " autologin + [[ -z "${autologin}" ]] && autologin=y + + if lspci | grep -e VGA -e 3D -m 1 | grep NVIDIA; then + read -p "Will you have activate youre Nvidia driver? : [y/N] " nvidia + fi + [[ -z "${nvidia}" ]] && nvidia=n + + if lspci | grep -e VGA -e 3D -m 1 | grep AMD; then + read -p "Will you have activate youre AMD driver? : [y/N] " amd + fi + [[ -z "${amd}" ]] && amd=n + + read -p "Will you have use youre second Graphic-Card? : [y/N] " multicard + [[ -z "${multicard}" ]] && multicard=n + + echo "On devices cannot acpi fully work, this boot options can help you :-D" + read -p "Will youre CPU SUCKS on every boot? : [y/N] " cpusucks + [[ -z "${cpusucks}" ]] && cpusucks=n + + read -p "Will youre Device have LVM Support? : [y/N] " lvmsupport + [[ -z "${lvmsupport}" ]] && lvmsupport=n + + echo "Windows dualboot funktioniert nur im UEFI Modus und auch nur derzeit mit GRUB!!!" + echo "Ausserdem muss die UEFI_Bootpartition über 256MB mindesten sein!!!" + read -p "Do you want a extra parameter for the installation? : [skipbootpartition/noinstall/noskipuser/debug/windualboot81/windualboot10/dualboot] " extraparameter + for wort in ${extraparameter} + do + echo "$wort" + export ${wort}="y" + echo "Extra-Parameter ${wort}=y" + done + + fi + + # Ausgaben + cmdlineparameter=$(cat /proc/cmdline) + + # for-schleife + for wort in ${cmdlineparameter} + do + #echo "$wort" + export ${wort%=*}=${wort#*=} + #echo "Parameter ${wort%=*} = ${wort#*=}" + done + + # Dateisystem + if [ "${dateisystem}" == "btrfs" ]; then + mountpoint="/mnt/btrfs-current" + elif [ "${dateisystem}" == "ext4" ]; then + mountpoint="/mnt" + fi + + # + echo "name: ${name}" + echo "username: ${user}" + echo "partition type: ${Partition}" + echo "Bootloader: ${boot}" + echo "Drive: ${device}" + if [ "${raid}" != "n" ]; then + echo "Raid: ${raid}" + echo "Hard Drives: ${device1}" + fi + echo "File system: ${dateisystem}" + if [ "${swap}" != "n" ]; then + echo "Swap-partition ${swapspeicher}" + fi + if [ "${swapfile}" == "y" ]; then + echo "Swapfile ${swapfilespeicher}" + fi + #echo "Rootpasswort: ${pass}" + echo "Architektur: ${arch}" + echo "Installation: ${install}" + if [ "${dateisystem}" == "btrfs" ]; then + for wort in ${mountsnaps} + do + echo "Snapshot ${wort} wird erstellt!!!" + done + fi + if [ "${usbsecret}" == "y" ]; then + echo "USB-secret: aktiv" + echo "USB-UIDD: ${usbsecretdeviceuuid}" + echo "USB-Label: ${usbsecretdevice}" + fi + if [ "${verschluesselung}" == "y" ]; then + echo "Fesptplatte with Luks 512KB encryption: aktiv" + if [ "${usbkey}" == "y" ]; then + echo "${usbkeydevice} is used as key for decrypting: " + echo "File system: ${usbkeydateisystem}" + fi + fi + + RCLOCALSHUTDOWN="${mountpoint}/etc/rc.local.shutdown" + + # Partitionierung + + if [ "${m2ssddevice}" == "y" ]; then + m2ssd=p + fi + + luksabfrage + + echo "Zusatzparameter" + if [ "${windualboot81}" == "y" ]; then + echo "Windows Dualboot: ${windualboot81}" + fi + if [ "${windualboot10}" == "y" ]; then + echo "Windows Dualboot: ${windualboot10}" + fi + if [ "${dualboot}" == "y" ]; then + echo "SpectreOS Dualboot: ${dualboot}" + fi + if [ "${skipbootpartition}" == "y" ]; then + echo "Überspringe Formatieren der Boot Partition: ${skipbootpartition}" + fi + if [ "${debug}" == "y" ]; then + echo "Debug Menü: ${debug}" + fi + if [ "${noinstall}" == "y" ]; then + echo "Keine Installation: ${noinstall}" + if [ "y" == "${noskipuser}" ]; then + echo "Der User wird nicht uebersprungen!!!" + fi + fi + + if [ "y" == "${windualboot81}" ]; then + bootpartitionnummer=${m2ssd}1 + efipartitionnummer=${m2ssd}2 + if [ "${swap}" != "n" ]; then + swappartitionnummer=${m2ssd}5 + rootpartitionnummer=${m2ssd}6 + else + rootpartitionnummer=${m2ssd}5 + fi + elif [ "y" == "${windualboot10}" ]; then + bootpartitionnummer=${m2ssd}1 + efipartitionnummer=${m2ssd}2 + if [ "${swap}" != "n" ]; then + swappartitionnummer=${m2ssd}5 + rootpartitionnummer=${m2ssd}6 + else + rootpartitionnummer=${m2ssd}5 + fi + elif [ "y" == "${dualboot}" ]; then + bootpartitionnummer=${m2ssd}1 + efipartitionnummer=${m2ssd}2 + if [ "${swap}" != "n" ]; then + swappartitionnummer=${m2ssd}3 + rootpartitionnummer=${m2ssd}5 + else + rootpartitionnummer=${m2ssd}4 + fi + else + bootpartitionnummer=${m2ssd}1 + efipartitionnummer=${m2ssd}2 + if [ "${swap}" != "n" ]; then + swappartitionnummer=${m2ssd}3 + rootpartitionnummer=${m2ssd}4 + else + rootpartitionnummer=${m2ssd}3 + fi + fi + + echo "Boot-Partition = ${device}${bootpartitionnummer}" + echo "EFI-Partition = ${device}${efipartitionnummer}" + if [ "${swap}" != "n" ]; then + echo "Swap-Partition = ${device}${swappartitionnummer}" + fi + echo "ROOT-Partition = ${device}${rootpartitionnummer}" + + # + if [ "${skipcheck}" != "y" ]; then + read -p "Are all the details correct ?: [y/N] " sicherheitsabfrage + if [ "$sicherheitsabfrage" != "y" ] + then + echo "ABGEBROCHEN" + exit 1 + fi + fi + echo "Operating system is installed !!!" + sleep 5 + +} + +# Begin the Script!!! + +# fastinstall=y device=/dev/sda +# for-schleife +for wort in ${1} +do + echo "$wort" + export ${wort%=*}=${wort#*=} + echo "Parameter ${wort%=*} = ${wort#*=}" +done + +if [ "${fastinstall}" == "y" ] && [ "${fastinstallnext}" != "y" ]; then + gitclone + /opt/${repo}/arch-install.sh "${1} fastinstallnext=y " + exit 0 +elif [ "${phaseone}" != "n" ] && [ "${fastinstallnext}" != "y" ]; then + if wget -qO- ipv4.icanhazip.com 1>/dev/null 2>&1; then + read -p "Should I look at the internet for a new install script and then run it ?: [Y/n] " update + if [ "${update}" == "debug" ] + then + echo "Skip the download a new script !!!" + else + if [ "${update}" != "n" ] + then + read -p "Should I update youre packages and then run it ?: [y/N] " updatepackages + if [ "${updatepackages}" == "y" ]; then + echo "Please dont update the linux kernel!!!" + if [ -f /opt/${repo}/packages.txt ]; then + pacman -Sy $(cat /opt/${repo}/packages.txt) --noconfirm --needed --ignore linux + else + echo "Kann keine neuen Packete nachinstallieren weil die base.txt nicht gefunden werden kann!!" + echo "Es kann sein das dass Programm nicht korrekt funktioniert!!!" + fi + fi + gitclone + /opt/${repo}/arch-install.sh "${1} phaseone=n " + exit 0 + fi + fi + else + echo "No internet connection detected!" + update=n + fi +fi + +if [ "${update}" != "n" ]; then + echo "Online-Modus activated!" + #vpntunnel +fi +# debug = Installation ueberspringen zu arch-graphical-install und DEBEUG-MODUS +abfrage + +secureumount + +if [ "y" == "${debug}" ] || [ "y" == "${noinstall}" ] +then + echo "DEBEUG-MODUS" + echo "For encrypt mount mountencrypt" + echo "Then for normal btrfs mount run: btrfsmount 1 and btrfsmount 2" + echo "If no more commands are required, simply press enter" + echo "Which command should be executed? " + + befehl=blablabla + while [ "$befehl" != "" ] + do + read -p "" befehl + $befehl + done + +fi + +# +echo "A purge stops the chance of installing on the system." +echo "It may take a while!" +if [ "y" != "${noinstall}" ] && [ "y" != "${skipbootpartition}" ]; then + sleep 5 + #dd if=/dev/zero of=${device} bs=64M count=10 status=progress +fi +# +if [ "${Partition}" == "uefi" ] +then + echo "Partitions with UEFI" + + if [ "y" != "${noinstall}" ]; then + if ! [ "${skipbootpartition}" == "y" ]; then + if [ "y" == "${windualboot81}" ] || [ "y" == "${windualboot10}" ]; then + partitionieredual + else + if [ "y" == "${lvmsupport}" ]; then + partitionierelvm + else + partitioniere + fi + fi + else + partitionierewithoutboot + fi + else + if [ "${verschluesselung}" == "y" ] || [ "y" == "${lvmsupport}" ]; then + mountencrypt + fi + fi + + echo "installation" + installation + if [ "y" == "${windualboot81}" ] || [ "y" == "${windualboot10}" ]; then + restorebootloader + fi + grubinstall + + arch-chroot ${mountpoint} mkinitcpio -P -c /etc/mkinitcpio.conf + arch-chroot ${mountpoint} grub-install --target=i386-pc --recheck ${device} + # https://wiki.archlinux.org/title/GRUB/Tips_and_tricks + arch-chroot ${mountpoint} grub-install --target=x86_64-efi --efi-directory=/boot --bootloader-id="${repo}" --recheck --removable + #systemdboot + echo "Finished" +elif [ "${Partition}" == "bios" ]; then + echo "Partitions with MBR" + if [ "y" != "${noinstall}" ]; then + if ! [ "${skipbootpartition}" == "y" ]; then + if [ "y" == "${windualboot81}" ] || [ "y" == "${windualboot10}" ]; then + partitionieredual + else + if [ "y" == "${lvmsupport}" ]; then + partitionierelvm + else + partitioniere + fi + fi + else + partitionierewithoutboot + fi + else + if [ "${verschluesselung}" == "y" ] || [ "y" == "${lvmsupport}" ]; then + mountencrypt + fi + fi + + echo "installation" + installation + if [ "y" == "${windualboot81}" ] || [ "y" == "${windualboot10}" ]; then + restorebootloader + fi + grubinstall + + arch-chroot ${mountpoint} mkinitcpio -P -c /etc/mkinitcpio.conf + arch-chroot ${mountpoint} grub-install --target=i386-pc --recheck ${device} + echo "Finished" +else + echo "Entry Invalid" + exit 1 +fi + +# benutzerwechsel + +# Nur nötig wenn der Name gleich dem Usernamen gleichen soll +arch-chroot ${mountpoint} usermod -l "${user}" "user1" +arch-chroot ${mountpoint} usermod -d /home/"${user}" -m "${user}" +arch-chroot ${mountpoint} chfn -f "${name}" "${user}" + +if ! [ "${fastinstall}" == "y" ]; then + read -s -p "Please choose a passwort for you!!! " userpass +fi + +echo "${user}:${userpass}" > user-keys.txt +arch-chroot ${mountpoint} chpasswd < user-keys.txt +read -s -p "Please choose a passwort for root!!! " rootpass +echo "root:${rootpass}" > root-keys.txt +arch-chroot ${mountpoint} chpasswd < root-keys.txt + +# config.fish +mkdir -p ${mountpoint}/root/.config/fish/ +cp /opt/${repo}/configs/config.fish ${mountpoint}/root/.config/fish/config.fish + +touch ${mountpoint}/root/.bash_profile +touch ${mountpoint}/home/"${user}"/.bash_profile + +mkdir -p ${mountpoint}/etc/X11/xinit/ + +if [ ${autologin} != "n" ]; then + sed -i 's/User=.*$/User='$user'/' /etc/sddm.conf.d/kde_settings.conf +else + sed -i 's/User=.*$/User=/' /etc/sddm.conf.d/kde_settings.conf +fi +#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 [ -f "/etc/locale.conf" ]; then cp /etc/locale.conf ${mountpoint}/etc/locale.conf; fi +if [ -f "/etc/vconsole.conf" ]; then cp /etc/vconsole.conf ${mountpoint}/etc/vconsole.conf; fi +if [ -f "/etc/locale.gen" ]; then cp /etc/locale.gen ${mountpoint}/etc/locale.gen; fi + +arch-chroot ${mountpoint} locale-gen + +if [ -f "/etc/X11/xorg.conf.d/20-keyboard.conf" ]; then + cp /etc/X11/xorg.conf.d/20-keyboard.conf ${mountpoint}/etc/X11/xorg.conf.d/20-keyboard.conf +fi + +if [ "${nvidia}" == "y" ]; then + arch-chroot ${mountpoint} pacman -Sy nvidia lib32-nvidia-utils nvidia-settings nvidia-utils --needed --noconfirm + arch-chroot ${mountpoint} nvidia-xconfig + echo "Bitte füge \"Option \"DPI\" \"96 x 96\"\" in der xorg.conf im Section \"Monitor\" Bereich hinzu, falls die Schrift zu klein erscheint :)" + #sed -i 's/ServerArguments=.*$/ServerArguments=-nolisten tcp -dpi 96/' ${mountpoint}/etc/sddm.conf + # https://wiki.archlinux.org/title/xorg#Setting_DPI_manually + # Set in Nvidia xorg.conf in Device or Screen + # Option "DPI" "96 x 96" + # https://wiki.archlinux.org/title/Vulkan#Selecting_Vulkan_driver + echo "VK_ICD_FILENAMES=\"/usr/share/vulkan/icd.d/nvidia_icd.json\"" >> ${mountpoint}/etc/environment +fi + +if [ "${amd}" == "y" ]; then + # https://wiki.archlinux.org/title/Vulkan#Selecting_Vulkan_driver + echo "VK_ICD_FILENAMES=\"/usr/share/vulkan/icd.d/amd_icd64.json\"" >> ${mountpoint}/etc/environment +fi + +if [ "${multicard}" == "y" ]; then + echo "DRI_PRIME=1" >> ${mountpoint}/etc/environment +fi + +touch ${mountpoint}/etc/grub-snapshot +arch-chroot ${mountpoint} grub-mkconfig -o /boot/grub/grub.cfg + +cp /opt/${repo}/scripts/update.sh ${mountpoint}/usr/bin/update-script +chmod +x ${mountpoint}/usr/bin/update-script +if ! arch-chroot ${mountpoint} /usr/bin/update-script; then + echo "Aktualisierung nicht erfolgreich!!!" +fi + +if [ "${udevautomountrule}" == "y" ]; then + #autodiskmount + mkdir -p ${mountpoint}/media/ + mkdir -p ${mountpoint}/etc/udev/rules.d/ + cp /opt/${repo}/configs/11-media-by-label-auto-mount.rules ${mountpoint}/etc/udev/rules.d/11-media-by-label-auto-mount.rules + udevadm control --reload-rules && udevadm trigger +fi + +echo "df!!!" +df -h +if [ "${dateisystem}" == "btrfs" ]; then + btrfs filesystem df ${mountpoint} +fi +echo "umount!!!" +read -p "Weiter mit unmount..." +secureumount +echo "" +echo "$(date "+%Y%m%d-%H%M%S")" +echo "Fertig!!!" +read -p "Allation completed successfully. Do you want to RESTART the PC ?: [Y/n] " sicherheitsabfrage +if [ "$sicherheitsabfrage" != "n" ] +then + echo "restart now" + reboot +fi +exit 0 diff --git a/configs/.Xmodmap b/configs/.Xmodmap new file mode 100755 index 0000000..7165949 --- /dev/null +++ b/configs/.Xmodmap @@ -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 = diff --git a/configs/.asoundrc b/configs/.asoundrc new file mode 100755 index 0000000..fb1d03a --- /dev/null +++ b/configs/.asoundrc @@ -0,0 +1,3 @@ +defaults.ctl.card 2 +defaults.pcm.card 2 +defaults.timer.card 2 diff --git a/configs/.bash_profile b/configs/.bash_profile new file mode 100755 index 0000000..e20f63f --- /dev/null +++ b/configs/.bash_profile @@ -0,0 +1,6 @@ +#Startx Automatically + +if [[ -z "$DISPLAY" ]] && [[ $(tty) = /dev/tty1 ]]; then + startx + logout +fi diff --git a/configs/.bash_profile-netinstall b/configs/.bash_profile-netinstall new file mode 100755 index 0000000..db4360e --- /dev/null +++ b/configs/.bash_profile-netinstall @@ -0,0 +1,4 @@ +if [ $(tty) = /dev/tty1 ]; then + echo "Starting installer!!!" + arch-install +fi diff --git a/configs/.bash_profile-sway b/configs/.bash_profile-sway new file mode 100755 index 0000000..c38b09b --- /dev/null +++ b/configs/.bash_profile-sway @@ -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 diff --git a/configs/.config-extra.tar.pxz b/configs/.config-extra.tar.pxz new file mode 100755 index 0000000..c0ac8da Binary files /dev/null and b/configs/.config-extra.tar.pxz differ diff --git a/configs/.config.tar.pxz b/configs/.config.tar.pxz new file mode 100755 index 0000000..e221e8f Binary files /dev/null and b/configs/.config.tar.pxz differ diff --git a/configs/.gtkrc-2.0 b/configs/.gtkrc-2.0 new file mode 100755 index 0000000..d1d1aae --- /dev/null +++ b/configs/.gtkrc-2.0 @@ -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" diff --git a/configs/.gvimrc b/configs/.gvimrc new file mode 100755 index 0000000..c056f94 --- /dev/null +++ b/configs/.gvimrc @@ -0,0 +1,3 @@ +" color scheme of the moment: +syntax on +colo desert diff --git a/configs/.imwheelrc b/configs/.imwheelrc new file mode 100755 index 0000000..164f031 --- /dev/null +++ b/configs/.imwheelrc @@ -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 diff --git a/configs/.xscreensaver b/configs/.xscreensaver new file mode 100755 index 0000000..e603505 --- /dev/null +++ b/configs/.xscreensaver @@ -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 + diff --git a/configs/10-wacom.rules b/configs/10-wacom.rules new file mode 100755 index 0000000..abcb536 --- /dev/null +++ b/configs/10-wacom.rules @@ -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" + diff --git a/configs/20-no-embedded.conf b/configs/20-no-embedded.conf new file mode 100755 index 0000000..975e66f --- /dev/null +++ b/configs/20-no-embedded.conf @@ -0,0 +1,9 @@ + + + + + + false + + + diff --git a/configs/bash.bashrc b/configs/bash.bashrc new file mode 100755 index 0000000..fb78cf1 --- /dev/null +++ b/configs/bash.bashrc @@ -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)" diff --git a/configs/grub.d/10_linux b/configs/grub.d/10_linux new file mode 100755 index 0000000..f1625b4 --- /dev/null +++ b/configs/grub.d/10_linux @@ -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 . + +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" diff --git a/configs/hooks/archiso b/configs/hooks/archiso new file mode 100755 index 0000000..28d21ea --- /dev/null +++ b/configs/hooks/archiso @@ -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: diff --git a/configs/hooks/archiso_loop_mnt b/configs/hooks/archiso_loop_mnt new file mode 100755 index 0000000..2e99404 --- /dev/null +++ b/configs/hooks/archiso_loop_mnt @@ -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 +} diff --git a/configs/hooks/archiso_pxe_common b/configs/hooks/archiso_pxe_common new file mode 100755 index 0000000..422e4f7 --- /dev/null +++ b/configs/hooks/archiso_pxe_common @@ -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 +} diff --git a/configs/hooks/archiso_pxe_http b/configs/hooks/archiso_pxe_http new file mode 100755 index 0000000..a7c03a8 --- /dev/null +++ b/configs/hooks/archiso_pxe_http @@ -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} +} diff --git a/configs/hooks/archiso_pxe_nbd b/configs/hooks/archiso_pxe_nbd new file mode 100755 index 0000000..4fb7fa5 --- /dev/null +++ b/configs/hooks/archiso_pxe_nbd @@ -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 +} diff --git a/configs/hooks/archiso_pxe_nfs b/configs/hooks/archiso_pxe_nfs new file mode 100755 index 0000000..67874ec --- /dev/null +++ b/configs/hooks/archiso_pxe_nfs @@ -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} +} diff --git a/configs/hooks/archiso_shutdown b/configs/hooks/archiso_shutdown new file mode 100755 index 0000000..e50dedb --- /dev/null +++ b/configs/hooks/archiso_shutdown @@ -0,0 +1,6 @@ +run_cleanuphook() { + rm -rf /usr/lib/modules + cp -ax / /run/initramfs +} + +# vim: set ft=sh ts=4 sw=4 et: diff --git a/configs/hooks/cow_device b/configs/hooks/cow_device new file mode 100755 index 0000000..78eda7d --- /dev/null +++ b/configs/hooks/cow_device @@ -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} < /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: diff --git a/configs/install/archiso b/configs/install/archiso new file mode 100755 index 0000000..9c1daf5 --- /dev/null +++ b/configs/install/archiso @@ -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: diff --git a/configs/install/archiso_kms b/configs/install/archiso_kms new file mode 100755 index 0000000..3ff31f3 --- /dev/null +++ b/configs/install/archiso_kms @@ -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 +} diff --git a/configs/install/archiso_loop_mnt b/configs/install/archiso_loop_mnt new file mode 100755 index 0000000..59f1d94 --- /dev/null +++ b/configs/install/archiso_loop_mnt @@ -0,0 +1,13 @@ +#!/bin/bash + +build() { + add_runscript +} + +help() { +cat< $BUILDROOT/etc/nsswitch.conf +} + +help() { +cat</dev/null || :' diff --git a/configs/pacman-hooks/display-manager.hook b/configs/pacman-hooks/display-manager.hook new file mode 100755 index 0000000..8eae67c --- /dev/null +++ b/configs/pacman-hooks/display-manager.hook @@ -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" diff --git a/configs/pacman-hooks/display-manager_pre.hook b/configs/pacman-hooks/display-manager_pre.hook new file mode 100755 index 0000000..66b6657 --- /dev/null +++ b/configs/pacman-hooks/display-manager_pre.hook @@ -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" diff --git a/configs/pacman-hooks/grub.hook b/configs/pacman-hooks/grub.hook new file mode 100755 index 0000000..f61eb9c --- /dev/null +++ b/configs/pacman-hooks/grub.hook @@ -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' diff --git a/configs/pacman-hooks/nvidia.hook b/configs/pacman-hooks/nvidia.hook new file mode 100755 index 0000000..42780ee --- /dev/null +++ b/configs/pacman-hooks/nvidia.hook @@ -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' diff --git a/configs/pacman-hooks/pacmanconf.hook b/configs/pacman-hooks/pacmanconf.hook new file mode 100755 index 0000000..463b486 --- /dev/null +++ b/configs/pacman-hooks/pacmanconf.hook @@ -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" diff --git a/configs/pacman-hooks/plymouth.hook b/configs/pacman-hooks/plymouth.hook new file mode 100755 index 0000000..df89023 --- /dev/null +++ b/configs/pacman-hooks/plymouth.hook @@ -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' diff --git a/configs/script-hooks/archiso_shutdown b/configs/script-hooks/archiso_shutdown new file mode 100755 index 0000000..41b3945 --- /dev/null +++ b/configs/script-hooks/archiso_shutdown @@ -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 diff --git a/configs/sshd_config b/configs/sshd_config new file mode 100755 index 0000000..44e019e --- /dev/null +++ b/configs/sshd_config @@ -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 diff --git a/configs/vimrc b/configs/vimrc new file mode 100755 index 0000000..af4a1a0 --- /dev/null +++ b/configs/vimrc @@ -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 :call system("wl-copy", @") +xnoremap :w !wl-copy + +" 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 :TagbarToggle + +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 tr (VTranslate) +xmap tt (VTranslateBang) + +nnoremap , :nohlsearch + +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 + diff --git a/configs/xorg.conf.d/20-keyboard.conf b/configs/xorg.conf.d/20-keyboard.conf new file mode 100755 index 0000000..5b27a16 --- /dev/null +++ b/configs/xorg.conf.d/20-keyboard.conf @@ -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 diff --git a/configs/xorg.conf.d/30-touchpad.conf b/configs/xorg.conf.d/30-touchpad.conf new file mode 100755 index 0000000..c6de68e --- /dev/null +++ b/configs/xorg.conf.d/30-touchpad.conf @@ -0,0 +1,8 @@ +Section "InputClass" + Identifier "touchpad" + Driver "libinput" + MatchIsTouchpad "on" + Option "Tapping" "on" + Option "TappingButtonMap" "lrm" + Option "DisableWhileTyping" "off" +EndSection diff --git a/desktop/arch-install.desktop b/desktop/arch-install.desktop new file mode 100755 index 0000000..6c8b1e4 --- /dev/null +++ b/desktop/arch-install.desktop @@ -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= diff --git a/desktop/install.png b/desktop/install.png new file mode 100755 index 0000000..4a55a07 Binary files /dev/null and b/desktop/install.png differ diff --git a/grub-config/cfg/defaults.cfg b/grub-config/cfg/defaults.cfg new file mode 100755 index 0000000..30a5e4e --- /dev/null +++ b/grub-config/cfg/defaults.cfg @@ -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 diff --git a/grub-config/cfg/grub.cfg b/grub-config/cfg/grub.cfg new file mode 100755 index 0000000..6e98d00 --- /dev/null +++ b/grub-config/cfg/grub.cfg @@ -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=_ keytable= tz=/" + echo " hostname= username=" + echo $" Kernel" + echo " blacklist=" + echo $" Video" + echo " .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 diff --git a/grub-config/cfg/kernels.cfg b/grub-config/cfg/kernels.cfg new file mode 100755 index 0000000..ed53234 --- /dev/null +++ b/grub-config/cfg/kernels.cfg @@ -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 diff --git a/grub-config/cfg/loopback.cfg b/grub-config/cfg/loopback.cfg new file mode 100755 index 0000000..e94c44d --- /dev/null +++ b/grub-config/cfg/loopback.cfg @@ -0,0 +1 @@ +source /boot/grub/grub.cfg diff --git a/grub-config/cfg/variable.cfg b/grub-config/cfg/variable.cfg new file mode 100755 index 0000000..f1682d2 --- /dev/null +++ b/grub-config/cfg/variable.cfg @@ -0,0 +1,2 @@ +grub_theme=/boot/grub/themes/poly-light/theme.txt +timeout=-1 diff --git a/grub-config/cli/kernels.cfg b/grub-config/cli/kernels.cfg new file mode 100755 index 0000000..cb40ba8 --- /dev/null +++ b/grub-config/cli/kernels.cfg @@ -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 diff --git a/grub-config/locales/C_ b/grub-config/locales/C_ new file mode 100755 index 0000000..eebe869 --- /dev/null +++ b/grub-config/locales/C_ @@ -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 diff --git a/grub-config/locales/be_BY b/grub-config/locales/be_BY new file mode 100755 index 0000000..db2ebf8 --- /dev/null +++ b/grub-config/locales/be_BY @@ -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 diff --git a/grub-config/locales/bg_BG b/grub-config/locales/bg_BG new file mode 100755 index 0000000..26d4b48 --- /dev/null +++ b/grub-config/locales/bg_BG @@ -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 diff --git a/grub-config/locales/bs_BA b/grub-config/locales/bs_BA new file mode 100755 index 0000000..e93b394 --- /dev/null +++ b/grub-config/locales/bs_BA @@ -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 diff --git a/grub-config/locales/cs_CZ b/grub-config/locales/cs_CZ new file mode 100755 index 0000000..2a52a56 --- /dev/null +++ b/grub-config/locales/cs_CZ @@ -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 diff --git a/grub-config/locales/da_DK b/grub-config/locales/da_DK new file mode 100755 index 0000000..82b9152 --- /dev/null +++ b/grub-config/locales/da_DK @@ -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 diff --git a/grub-config/locales/de_AT b/grub-config/locales/de_AT new file mode 100755 index 0000000..8fc7f0e --- /dev/null +++ b/grub-config/locales/de_AT @@ -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 diff --git a/grub-config/locales/de_BE b/grub-config/locales/de_BE new file mode 100755 index 0000000..d139a76 --- /dev/null +++ b/grub-config/locales/de_BE @@ -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 diff --git a/grub-config/locales/de_CH b/grub-config/locales/de_CH new file mode 100755 index 0000000..9e2a6fd --- /dev/null +++ b/grub-config/locales/de_CH @@ -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 diff --git a/grub-config/locales/de_DE b/grub-config/locales/de_DE new file mode 100755 index 0000000..96c7510 --- /dev/null +++ b/grub-config/locales/de_DE @@ -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 diff --git a/grub-config/locales/de_LI b/grub-config/locales/de_LI new file mode 100755 index 0000000..f4e454c --- /dev/null +++ b/grub-config/locales/de_LI @@ -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 diff --git a/grub-config/locales/de_LU b/grub-config/locales/de_LU new file mode 100755 index 0000000..0b9388a --- /dev/null +++ b/grub-config/locales/de_LU @@ -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 diff --git a/grub-config/locales/el_CY b/grub-config/locales/el_CY new file mode 100755 index 0000000..3dab741 --- /dev/null +++ b/grub-config/locales/el_CY @@ -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 diff --git a/grub-config/locales/el_GR b/grub-config/locales/el_GR new file mode 100755 index 0000000..e947631 --- /dev/null +++ b/grub-config/locales/el_GR @@ -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 diff --git a/grub-config/locales/en_AG b/grub-config/locales/en_AG new file mode 100755 index 0000000..31a86d9 --- /dev/null +++ b/grub-config/locales/en_AG @@ -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 diff --git a/grub-config/locales/en_AU b/grub-config/locales/en_AU new file mode 100755 index 0000000..574d023 --- /dev/null +++ b/grub-config/locales/en_AU @@ -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 diff --git a/grub-config/locales/en_BW b/grub-config/locales/en_BW new file mode 100755 index 0000000..d5aeb18 --- /dev/null +++ b/grub-config/locales/en_BW @@ -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 diff --git a/grub-config/locales/en_CA b/grub-config/locales/en_CA new file mode 100755 index 0000000..786ff61 --- /dev/null +++ b/grub-config/locales/en_CA @@ -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 diff --git a/grub-config/locales/en_DK b/grub-config/locales/en_DK new file mode 100755 index 0000000..6fd6a20 --- /dev/null +++ b/grub-config/locales/en_DK @@ -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 diff --git a/grub-config/locales/en_GB b/grub-config/locales/en_GB new file mode 100755 index 0000000..b7d5d98 --- /dev/null +++ b/grub-config/locales/en_GB @@ -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 diff --git a/grub-config/locales/en_HK b/grub-config/locales/en_HK new file mode 100755 index 0000000..fa23d9d --- /dev/null +++ b/grub-config/locales/en_HK @@ -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 diff --git a/grub-config/locales/en_IE b/grub-config/locales/en_IE new file mode 100755 index 0000000..91d4470 --- /dev/null +++ b/grub-config/locales/en_IE @@ -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 diff --git a/grub-config/locales/en_IN b/grub-config/locales/en_IN new file mode 100755 index 0000000..21e2262 --- /dev/null +++ b/grub-config/locales/en_IN @@ -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 diff --git a/grub-config/locales/en_NG b/grub-config/locales/en_NG new file mode 100755 index 0000000..5df0af2 --- /dev/null +++ b/grub-config/locales/en_NG @@ -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 diff --git a/grub-config/locales/en_NZ b/grub-config/locales/en_NZ new file mode 100755 index 0000000..a149831 --- /dev/null +++ b/grub-config/locales/en_NZ @@ -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 diff --git a/grub-config/locales/en_PH b/grub-config/locales/en_PH new file mode 100755 index 0000000..ed615f7 --- /dev/null +++ b/grub-config/locales/en_PH @@ -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 diff --git a/grub-config/locales/en_SG b/grub-config/locales/en_SG new file mode 100755 index 0000000..c3b1c0f --- /dev/null +++ b/grub-config/locales/en_SG @@ -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 diff --git a/grub-config/locales/en_US b/grub-config/locales/en_US new file mode 100755 index 0000000..ba75216 --- /dev/null +++ b/grub-config/locales/en_US @@ -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 diff --git a/grub-config/locales/en_ZA b/grub-config/locales/en_ZA new file mode 100755 index 0000000..9b71461 --- /dev/null +++ b/grub-config/locales/en_ZA @@ -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 diff --git a/grub-config/locales/en_ZW b/grub-config/locales/en_ZW new file mode 100755 index 0000000..06f9b57 --- /dev/null +++ b/grub-config/locales/en_ZW @@ -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 diff --git a/grub-config/locales/es_AR b/grub-config/locales/es_AR new file mode 100755 index 0000000..e2c6b9d --- /dev/null +++ b/grub-config/locales/es_AR @@ -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 diff --git a/grub-config/locales/es_BO b/grub-config/locales/es_BO new file mode 100755 index 0000000..846e471 --- /dev/null +++ b/grub-config/locales/es_BO @@ -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 diff --git a/grub-config/locales/es_CL b/grub-config/locales/es_CL new file mode 100755 index 0000000..706c5ce --- /dev/null +++ b/grub-config/locales/es_CL @@ -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 diff --git a/grub-config/locales/es_CO b/grub-config/locales/es_CO new file mode 100755 index 0000000..3fd73eb --- /dev/null +++ b/grub-config/locales/es_CO @@ -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 diff --git a/grub-config/locales/es_CR b/grub-config/locales/es_CR new file mode 100755 index 0000000..9fa998c --- /dev/null +++ b/grub-config/locales/es_CR @@ -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 diff --git a/grub-config/locales/es_DO b/grub-config/locales/es_DO new file mode 100755 index 0000000..b69f902 --- /dev/null +++ b/grub-config/locales/es_DO @@ -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 diff --git a/grub-config/locales/es_EC b/grub-config/locales/es_EC new file mode 100755 index 0000000..c184c75 --- /dev/null +++ b/grub-config/locales/es_EC @@ -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 diff --git a/grub-config/locales/es_ES b/grub-config/locales/es_ES new file mode 100755 index 0000000..36a137b --- /dev/null +++ b/grub-config/locales/es_ES @@ -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 diff --git a/grub-config/locales/es_GT b/grub-config/locales/es_GT new file mode 100755 index 0000000..1db3868 --- /dev/null +++ b/grub-config/locales/es_GT @@ -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 diff --git a/grub-config/locales/es_HN b/grub-config/locales/es_HN new file mode 100755 index 0000000..0440a97 --- /dev/null +++ b/grub-config/locales/es_HN @@ -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 diff --git a/grub-config/locales/es_MX b/grub-config/locales/es_MX new file mode 100755 index 0000000..64de876 --- /dev/null +++ b/grub-config/locales/es_MX @@ -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 diff --git a/grub-config/locales/es_NI b/grub-config/locales/es_NI new file mode 100755 index 0000000..3f8f594 --- /dev/null +++ b/grub-config/locales/es_NI @@ -0,0 +1,9 @@ +lang=es +bootlang="lang=es_NI" +def_bootlang="es_NI" +if [ -z "${keyboard}" ]; then + def_keyboard="latam" +fi +if [ -z "${timezone}" ]; then + def_timezone="America/Managua" +fi diff --git a/grub-config/locales/es_PA b/grub-config/locales/es_PA new file mode 100755 index 0000000..583fbd3 --- /dev/null +++ b/grub-config/locales/es_PA @@ -0,0 +1,9 @@ +lang=es +bootlang="lang=es_PA" +def_bootlang="es_PA" +if [ -z "${keyboard}" ]; then + def_keyboard="latam" +fi +if [ -z "${timezone}" ]; then + def_timezone="America/Panama" +fi diff --git a/grub-config/locales/es_PE b/grub-config/locales/es_PE new file mode 100755 index 0000000..50847f2 --- /dev/null +++ b/grub-config/locales/es_PE @@ -0,0 +1,9 @@ +lang=es +bootlang="lang=es_PE" +def_bootlang="es_PE" +if [ -z "${keyboard}" ]; then + def_keyboard="latam" +fi +if [ -z "${timezone}" ]; then + def_timezone="America/Lima" +fi diff --git a/grub-config/locales/es_PR b/grub-config/locales/es_PR new file mode 100755 index 0000000..fd7d790 --- /dev/null +++ b/grub-config/locales/es_PR @@ -0,0 +1,9 @@ +lang=es +bootlang="lang=es_PR" +def_bootlang="es_PR" +if [ -z "${keyboard}" ]; then + def_keyboard="latam" +fi +if [ -z "${timezone}" ]; then + def_timezone="America/Puerto_Rico" +fi diff --git a/grub-config/locales/es_PY b/grub-config/locales/es_PY new file mode 100755 index 0000000..7450853 --- /dev/null +++ b/grub-config/locales/es_PY @@ -0,0 +1,9 @@ +lang=es +bootlang="lang=es_PY" +def_bootlang="es_PY" +if [ -z "${keyboard}" ]; then + def_keyboard="latam" +fi +if [ -z "${timezone}" ]; then + def_timezone="America/Asuncion" +fi diff --git a/grub-config/locales/es_SV b/grub-config/locales/es_SV new file mode 100755 index 0000000..cb98efd --- /dev/null +++ b/grub-config/locales/es_SV @@ -0,0 +1,9 @@ +lang=es +bootlang="lang=es_SV" +def_bootlang="es_SV" +if [ -z "${keyboard}" ]; then + def_keyboard="latam" +fi +if [ -z "${timezone}" ]; then + def_timezone="America/El_Salvador" +fi diff --git a/grub-config/locales/es_US b/grub-config/locales/es_US new file mode 100755 index 0000000..811fc91 --- /dev/null +++ b/grub-config/locales/es_US @@ -0,0 +1,9 @@ +lang=es +bootlang="lang=es_US" +def_bootlang="es_US" +if [ -z "${keyboard}" ]; then + def_keyboard="latam" +fi +if [ -z "${timezone}" ]; then + def_timezone="America/New_York" +fi diff --git a/grub-config/locales/es_UY b/grub-config/locales/es_UY new file mode 100755 index 0000000..1356c7b --- /dev/null +++ b/grub-config/locales/es_UY @@ -0,0 +1,9 @@ +lang=es +bootlang="lang=es_UY" +def_bootlang="es_UY" +if [ -z "${keyboard}" ]; then + def_keyboard="latam" +fi +if [ -z "${timezone}" ]; then + def_timezone="America/Montevideo" +fi diff --git a/grub-config/locales/es_VE b/grub-config/locales/es_VE new file mode 100755 index 0000000..5ccc212 --- /dev/null +++ b/grub-config/locales/es_VE @@ -0,0 +1,9 @@ +lang=es +bootlang="lang=es_VE" +def_bootlang="es_VE" +if [ -z "${keyboard}" ]; then + def_keyboard="latam" +fi +if [ -z "${timezone}" ]; then + def_timezone="America/Caracas" +fi diff --git a/grub-config/locales/et_EE b/grub-config/locales/et_EE new file mode 100755 index 0000000..3778c55 --- /dev/null +++ b/grub-config/locales/et_EE @@ -0,0 +1,9 @@ +lang=et +bootlang="lang=et_EE" +def_bootlang="et_EE" +if [ -z "${keyboard}" ]; then + def_keyboard="et" +fi +if [ -z "${timezone}" ]; then + def_timezone="Europe/Tallinn" +fi diff --git a/grub-config/locales/fi_FI b/grub-config/locales/fi_FI new file mode 100755 index 0000000..3fc1861 --- /dev/null +++ b/grub-config/locales/fi_FI @@ -0,0 +1,9 @@ +lang=fi +bootlang="lang=fi_FI" +def_bootlang="fi_FI" +if [ -z "${keyboard}" ]; then + def_keyboard="fi" +fi +if [ -z "${timezone}" ]; then + def_timezone="Europe/Helsinki" +fi diff --git a/grub-config/locales/fr_BE b/grub-config/locales/fr_BE new file mode 100755 index 0000000..34e0e3d --- /dev/null +++ b/grub-config/locales/fr_BE @@ -0,0 +1,9 @@ +lang=fr +bootlang="lang=fr_BE" +def_bootlang="fr_BE" +if [ -z "${keyboard}" ]; then + def_keyboard="be" +fi +if [ -z "${timezone}" ]; then + def_timezone="Europe/Brussels" +fi diff --git a/grub-config/locales/fr_CA b/grub-config/locales/fr_CA new file mode 100755 index 0000000..f1b38fe --- /dev/null +++ b/grub-config/locales/fr_CA @@ -0,0 +1,9 @@ +lang=fr +bootlang="lang=fr_CA" +def_bootlang="fr_CA" +if [ -z "${keyboard}" ]; then + def_keyboard="ca" +fi +if [ -z "${timezone}" ]; then + def_timezone="America/Toronto" +fi diff --git a/grub-config/locales/fr_CH b/grub-config/locales/fr_CH new file mode 100755 index 0000000..d7a20c9 --- /dev/null +++ b/grub-config/locales/fr_CH @@ -0,0 +1,9 @@ +lang=fr +bootlang="lang=fr_CH" +def_bootlang="fr_CH" +if [ -z "${keyboard}" ]; then + def_keyboard="ch" +fi +if [ -z "${timezone}" ]; then + def_timezone="Europe/Zurich" +fi diff --git a/grub-config/locales/fr_FR b/grub-config/locales/fr_FR new file mode 100755 index 0000000..09686c7 --- /dev/null +++ b/grub-config/locales/fr_FR @@ -0,0 +1,9 @@ +lang=fr +bootlang="lang=fr_FR" +def_bootlang="fr_FR" +if [ -z "${keyboard}" ]; then + def_keyboard="fr" +fi +if [ -z "${timezone}" ]; then + def_timezone="Europe/Paris" +fi diff --git a/grub-config/locales/fr_LU b/grub-config/locales/fr_LU new file mode 100755 index 0000000..d50adbb --- /dev/null +++ b/grub-config/locales/fr_LU @@ -0,0 +1,9 @@ +lang=fr +bootlang="lang=fr_LU" +def_bootlang="fr_LU" +if [ -z "${keyboard}" ]; then + def_keyboard="fr" +fi +if [ -z "${timezone}" ]; then + def_timezone="Europe/Luxembourg" +fi diff --git a/grub-config/locales/fr_NC b/grub-config/locales/fr_NC new file mode 100755 index 0000000..a3f5c1f --- /dev/null +++ b/grub-config/locales/fr_NC @@ -0,0 +1,9 @@ +lang=fr +bootlang="lang=fr_NC" +def_bootlang="fr_NC" +if [ -z "${keyboard}" ]; then + def_keyboard="fr" +fi +if [ -z "${timezone}" ]; then + def_timezone="Pacific/Noumea" +fi diff --git a/grub-config/locales/ga_IE b/grub-config/locales/ga_IE new file mode 100755 index 0000000..5221075 --- /dev/null +++ b/grub-config/locales/ga_IE @@ -0,0 +1,9 @@ +lang=ga +bootlang="lang=ga_IE" +def_bootlang="ga_IE" +if [ -z "${keyboard}" ]; then + def_keyboard="ie" +fi +if [ -z "${timezone}" ]; then + def_timezone="Europe/Dublin" +fi diff --git a/grub-config/locales/he_IL b/grub-config/locales/he_IL new file mode 100755 index 0000000..750144c --- /dev/null +++ b/grub-config/locales/he_IL @@ -0,0 +1,9 @@ +lang=he +bootlang="lang=he_IL" +def_bootlang="he_IL" +if [ -z "${keyboard}" ]; then + def_keyboard="il" +fi +if [ -z "${timezone}" ]; then + def_timezone="Asia/Jerusalem" +fi diff --git a/grub-config/locales/hr_HR b/grub-config/locales/hr_HR new file mode 100755 index 0000000..89125bc --- /dev/null +++ b/grub-config/locales/hr_HR @@ -0,0 +1,9 @@ +lang=hr +bootlang="lang=hr_HR" +def_bootlang="hr_HR" +if [ -z "${keyboard}" ]; then + def_keyboard="hr" +fi +if [ -z "${timezone}" ]; then + def_timezone="Europe/Zagreb" +fi diff --git a/grub-config/locales/hu_HU b/grub-config/locales/hu_HU new file mode 100755 index 0000000..55d9f5c --- /dev/null +++ b/grub-config/locales/hu_HU @@ -0,0 +1,9 @@ +lang=hu +bootlang="lang=hu_HU" +def_bootlang="hu_HU" +if [ -z "${keyboard}" ]; then + def_keyboard="hu" +fi +if [ -z "${timezone}" ]; then + def_timezone="Europe/Budapest" +fi diff --git a/grub-config/locales/is_IS b/grub-config/locales/is_IS new file mode 100755 index 0000000..85cbc52 --- /dev/null +++ b/grub-config/locales/is_IS @@ -0,0 +1,9 @@ +lang=is +bootlang="lang=is_IS" +def_bootlang="is_IS" +if [ -z "${keyboard}" ]; then + def_keyboard="is" +fi +if [ -z "${timezone}" ]; then + def_timezone="Atlantic/Reykjavik" +fi diff --git a/grub-config/locales/it_CH b/grub-config/locales/it_CH new file mode 100755 index 0000000..164867f --- /dev/null +++ b/grub-config/locales/it_CH @@ -0,0 +1,9 @@ +lang=it +bootlang="lang=it_CH" +def_bootlang="it_CH" +if [ -z "${keyboard}" ]; then + def_keyboard="it" +fi +if [ -z "${timezone}" ]; then + def_timezone="Europe/Zurich" +fi diff --git a/grub-config/locales/it_IT b/grub-config/locales/it_IT new file mode 100755 index 0000000..b20694f --- /dev/null +++ b/grub-config/locales/it_IT @@ -0,0 +1,9 @@ +lang=it +bootlang="lang=it_IT" +def_bootlang="it_IT" +if [ -z "${keyboard}" ]; then + def_keyboard="it" +fi +if [ -z "${timezone}" ]; then + def_timezone="Europe/Rome" +fi diff --git a/grub-config/locales/ja_JP b/grub-config/locales/ja_JP new file mode 100755 index 0000000..9842e72 --- /dev/null +++ b/grub-config/locales/ja_JP @@ -0,0 +1,9 @@ +lang=ja +bootlang="lang=ja_JP" +def_bootlang="ja_JP" +if [ -z "${keyboard}" ]; then + def_keyboard="jp" +fi +if [ -z "${timezone}" ]; then + def_timezone="Asia/Tokyo" +fi diff --git a/grub-config/locales/keyboards b/grub-config/locales/keyboards new file mode 100755 index 0000000..8f1680a --- /dev/null +++ b/grub-config/locales/keyboards @@ -0,0 +1,6 @@ +for kk in us ba be bg br by ca ch cz de dk es et fi fr gb gr hr hu ie il is it jp kr latam no pl pt ro ru se si sk tr ua; do + menuentry "keytable=${kk}" "${kk}" {def_keyboard="${2}" +keyboard="keytable=${2}" +menu_reload +} + done diff --git a/grub-config/locales/ko_KR b/grub-config/locales/ko_KR new file mode 100755 index 0000000..798847e --- /dev/null +++ b/grub-config/locales/ko_KR @@ -0,0 +1,9 @@ +lang=ko +bootlang="lang=ko_KR" +def_bootlang="ko_KR" +if [ -z "${keyboard}" ]; then + def_keyboard="kr" +fi +if [ -z "${timezone}" ]; then + def_timezone="Asia/Seoul" +fi diff --git a/grub-config/locales/nb_NO b/grub-config/locales/nb_NO new file mode 100755 index 0000000..b0ca059 --- /dev/null +++ b/grub-config/locales/nb_NO @@ -0,0 +1,9 @@ +lang=nb +bootlang="lang=nb_NO" +def_bootlang="nb_NO" +if [ -z "${keyboard}" ]; then + def_keyboard="no" +fi +if [ -z "${timezone}" ]; then + def_timezone="Europe/Oslo" +fi diff --git a/grub-config/locales/nl_AW b/grub-config/locales/nl_AW new file mode 100755 index 0000000..7dac4d9 --- /dev/null +++ b/grub-config/locales/nl_AW @@ -0,0 +1,9 @@ +lang=nl +bootlang="lang=nl_AW" +def_bootlang="nl_AW" +if [ -z "${keyboard}" ]; then + def_keyboard="us" +fi +if [ -z "${timezone}" ]; then + def_timezone="America/Aruba" +fi diff --git a/grub-config/locales/nl_BE b/grub-config/locales/nl_BE new file mode 100755 index 0000000..09fdc05 --- /dev/null +++ b/grub-config/locales/nl_BE @@ -0,0 +1,9 @@ +lang=nl +bootlang="lang=nl_BE" +def_bootlang="nl_BE" +if [ -z "${keyboard}" ]; then + def_keyboard="be" +fi +if [ -z "${timezone}" ]; then + def_timezone="Europe/Brussels" +fi diff --git a/grub-config/locales/nl_NL b/grub-config/locales/nl_NL new file mode 100755 index 0000000..f519df4 --- /dev/null +++ b/grub-config/locales/nl_NL @@ -0,0 +1,9 @@ +lang=nl +bootlang="lang=nl_NL" +def_bootlang="nl_NL" +if [ -z "${keyboard}" ]; then + def_keyboard="us" +fi +if [ -z "${timezone}" ]; then + def_timezone="Europe/Amsterdam" +fi diff --git a/grub-config/locales/nn_NO b/grub-config/locales/nn_NO new file mode 100755 index 0000000..02b941d --- /dev/null +++ b/grub-config/locales/nn_NO @@ -0,0 +1,9 @@ +lang=nn +bootlang="lang=nn_NO" +def_bootlang="nn_NO" +if [ -z "${keyboard}" ]; then + def_keyboard="no" +fi +if [ -z "${timezone}" ]; then + def_timezone="Europe/Oslo" +fi diff --git a/grub-config/locales/pl_PL b/grub-config/locales/pl_PL new file mode 100755 index 0000000..1094e71 --- /dev/null +++ b/grub-config/locales/pl_PL @@ -0,0 +1,9 @@ +lang=pl +bootlang="lang=pl_PL" +def_bootlang="pl_PL" +if [ -z "${keyboard}" ]; then + def_keyboard="pl" +fi +if [ -z "${timezone}" ]; then + def_timezone="Europe/Warsaw" +fi diff --git a/grub-config/locales/pt_BR b/grub-config/locales/pt_BR new file mode 100755 index 0000000..48c6ed5 --- /dev/null +++ b/grub-config/locales/pt_BR @@ -0,0 +1,9 @@ +lang=pt +bootlang="lang=pt_BR" +def_bootlang="pt_BR" +if [ -z "${keyboard}" ]; then + def_keyboard="br" +fi +if [ -z "${timezone}" ]; then + def_timezone="America/Sao_Paulo" +fi diff --git a/grub-config/locales/pt_PT b/grub-config/locales/pt_PT new file mode 100755 index 0000000..f76819f --- /dev/null +++ b/grub-config/locales/pt_PT @@ -0,0 +1,9 @@ +lang=pt +bootlang="lang=pt_PT" +def_bootlang="pt_PT" +if [ -z "${keyboard}" ]; then + def_keyboard="pt" +fi +if [ -z "${timezone}" ]; then + def_timezone="Europe/Lisbon" +fi diff --git a/grub-config/locales/ro_RO b/grub-config/locales/ro_RO new file mode 100755 index 0000000..6811dab --- /dev/null +++ b/grub-config/locales/ro_RO @@ -0,0 +1,9 @@ +lang=ro +bootlang="lang=ro_RO" +def_bootlang="ro_RO" +if [ -z "${keyboard}" ]; then + def_keyboard="ro" +fi +if [ -z "${timezone}" ]; then + def_timezone="Europe/Bucharest" +fi diff --git a/grub-config/locales/ru_RU b/grub-config/locales/ru_RU new file mode 100755 index 0000000..ece37b9 --- /dev/null +++ b/grub-config/locales/ru_RU @@ -0,0 +1,9 @@ +lang=ru +bootlang="lang=ru_RU" +def_bootlang="ru_RU" +if [ -z "${keyboard}" ]; then + def_keyboard="ru" +fi +if [ -z "${timezone}" ]; then + def_timezone="Europe/Moscow" +fi diff --git a/grub-config/locales/ru_UA b/grub-config/locales/ru_UA new file mode 100755 index 0000000..159ffa3 --- /dev/null +++ b/grub-config/locales/ru_UA @@ -0,0 +1,9 @@ +lang=ru +bootlang="lang=ru_UA" +def_bootlang="ru_UA" +if [ -z "${keyboard}" ]; then + def_keyboard="ru" +fi +if [ -z "${timezone}" ]; then + def_timezone="Europe/Kiev" +fi diff --git a/grub-config/locales/se_FI b/grub-config/locales/se_FI new file mode 100755 index 0000000..ffdc61e --- /dev/null +++ b/grub-config/locales/se_FI @@ -0,0 +1,9 @@ +lang=se +bootlang="lang=se_FI" +def_bootlang="se_FI" +if [ -z "${keyboard}" ]; then + def_keyboard="fi" +fi +if [ -z "${timezone}" ]; then + def_timezone="Europe/Helsinki" +fi diff --git a/grub-config/locales/se_NO b/grub-config/locales/se_NO new file mode 100755 index 0000000..1516b80 --- /dev/null +++ b/grub-config/locales/se_NO @@ -0,0 +1,9 @@ +lang=se +bootlang="lang=se_NO" +def_bootlang="se_NO" +if [ -z "${keyboard}" ]; then + def_keyboard="no" +fi +if [ -z "${timezone}" ]; then + def_timezone="Europe/Oslo" +fi diff --git a/grub-config/locales/se_SE b/grub-config/locales/se_SE new file mode 100755 index 0000000..7daa5eb --- /dev/null +++ b/grub-config/locales/se_SE @@ -0,0 +1,9 @@ +lang=se +bootlang="lang=se_SE" +def_bootlang="se_SE" +if [ -z "${keyboard}" ]; then + def_keyboard="se" +fi +if [ -z "${timezone}" ]; then + def_timezone="Europe/Stockholm" +fi diff --git a/grub-config/locales/sk_SK b/grub-config/locales/sk_SK new file mode 100755 index 0000000..97a3190 --- /dev/null +++ b/grub-config/locales/sk_SK @@ -0,0 +1,9 @@ +lang=sk +bootlang="lang=sk_SK" +def_bootlang="sk_SK" +if [ -z "${keyboard}" ]; then + def_keyboard="sk" +fi +if [ -z "${timezone}" ]; then + def_timezone="Europe/Bratislava" +fi diff --git a/grub-config/locales/sl_SI b/grub-config/locales/sl_SI new file mode 100755 index 0000000..1e35aaf --- /dev/null +++ b/grub-config/locales/sl_SI @@ -0,0 +1,9 @@ +lang=sl +bootlang="lang=sl_SI" +def_bootlang="sl_SI" +if [ -z "${keyboard}" ]; then + def_keyboard="si" +fi +if [ -z "${timezone}" ]; then + def_timezone="Europe/Ljubljana" +fi diff --git a/grub-config/locales/sv_FI b/grub-config/locales/sv_FI new file mode 100755 index 0000000..edeae6d --- /dev/null +++ b/grub-config/locales/sv_FI @@ -0,0 +1,9 @@ +lang=sv +bootlang="lang=sv_FI" +def_bootlang="sv_FI" +if [ -z "${keyboard}" ]; then + def_keyboard="se" +fi +if [ -z "${timezone}" ]; then + def_timezone="Europe/Helsinki" +fi diff --git a/grub-config/locales/sv_SE b/grub-config/locales/sv_SE new file mode 100755 index 0000000..20adac1 --- /dev/null +++ b/grub-config/locales/sv_SE @@ -0,0 +1,9 @@ +lang=sv +bootlang="lang=sv_SE" +def_bootlang="sv_SE" +if [ -z "${keyboard}" ]; then + def_keyboard="se" +fi +if [ -z "${timezone}" ]; then + def_timezone="Europe/Stockholm" +fi diff --git a/grub-config/locales/tr_CY b/grub-config/locales/tr_CY new file mode 100755 index 0000000..e52cb2f --- /dev/null +++ b/grub-config/locales/tr_CY @@ -0,0 +1,9 @@ +lang=tr +bootlang="lang=tr_CY" +def_bootlang="tr_CY" +if [ -z "${keyboard}" ]; then + def_keyboard="tr" +fi +if [ -z "${timezone}" ]; then + def_timezone="Europe/Istanbul" +fi diff --git a/grub-config/locales/tr_TR b/grub-config/locales/tr_TR new file mode 100755 index 0000000..3c0041b --- /dev/null +++ b/grub-config/locales/tr_TR @@ -0,0 +1,9 @@ +lang=tr +bootlang="lang=tr_TR" +def_bootlang="tr_TR" +if [ -z "${keyboard}" ]; then + def_keyboard="tr" +fi +if [ -z "${timezone}" ]; then + def_timezone="Europe/Istanbul" +fi diff --git a/grub-config/locales/uk_UA b/grub-config/locales/uk_UA new file mode 100755 index 0000000..da0de21 --- /dev/null +++ b/grub-config/locales/uk_UA @@ -0,0 +1,9 @@ +lang=uk +bootlang="lang=uk_UA" +def_bootlang="uk_UA" +if [ -z "${keyboard}" ]; then + def_keyboard="ua" +fi +if [ -z "${timezone}" ]; then + def_timezone="Europe/Kiev" +fi diff --git a/grub-config/locales/zh_CN b/grub-config/locales/zh_CN new file mode 100755 index 0000000..fbab45a --- /dev/null +++ b/grub-config/locales/zh_CN @@ -0,0 +1,9 @@ +lang=zh +bootlang="lang=zh_CN" +def_bootlang="zh_CN" +if [ -z "${keyboard}" ]; then + def_keyboard="us" +fi +if [ -z "${timezone}" ]; then + def_timezone="Asia/Shaghai" +fi diff --git a/grub-config/locales/zh_HK b/grub-config/locales/zh_HK new file mode 100755 index 0000000..22b8e17 --- /dev/null +++ b/grub-config/locales/zh_HK @@ -0,0 +1,9 @@ +lang=zh +bootlang="lang=zh_HK" +def_bootlang="zh_HK" +if [ -z "${keyboard}" ]; then + def_keyboard="us" +fi +if [ -z "${timezone}" ]; then + def_timezone="Asia/Hong_Kong" +fi diff --git a/grub-config/locales/zh_SG b/grub-config/locales/zh_SG new file mode 100755 index 0000000..f379681 --- /dev/null +++ b/grub-config/locales/zh_SG @@ -0,0 +1,9 @@ +lang=zh +bootlang="lang=zh_SG" +def_bootlang="zh_SG" +if [ -z "${keyboard}" ]; then + def_keyboard="us" +fi +if [ -z "${timezone}" ]; then + def_timezone="Asia/Singapore" +fi diff --git a/grub-config/locales/zh_TW b/grub-config/locales/zh_TW new file mode 100755 index 0000000..b3a4643 --- /dev/null +++ b/grub-config/locales/zh_TW @@ -0,0 +1,9 @@ +lang=zh +bootlang="lang=zh_TW" +def_bootlang="zh_TW" +if [ -z "${keyboard}" ]; then + def_keyboard="us" +fi +if [ -z "${timezone}" ]; then + def_timezone="Asia/Taipei" +fi diff --git a/grub-config/themes/Stylish/background.jpg b/grub-config/themes/Stylish/background.jpg new file mode 100644 index 0000000..1cb837b Binary files /dev/null and b/grub-config/themes/Stylish/background.jpg differ diff --git a/grub-config/themes/Stylish/icons/Manjaro.i686.png b/grub-config/themes/Stylish/icons/Manjaro.i686.png new file mode 100644 index 0000000..194e5ca Binary files /dev/null and b/grub-config/themes/Stylish/icons/Manjaro.i686.png differ diff --git a/grub-config/themes/Stylish/icons/Manjaro.x86_64.png b/grub-config/themes/Stylish/icons/Manjaro.x86_64.png new file mode 100644 index 0000000..194e5ca Binary files /dev/null and b/grub-config/themes/Stylish/icons/Manjaro.x86_64.png differ diff --git a/grub-config/themes/Stylish/icons/antergos.png b/grub-config/themes/Stylish/icons/antergos.png new file mode 100644 index 0000000..42946d2 Binary files /dev/null and b/grub-config/themes/Stylish/icons/antergos.png differ diff --git a/grub-config/themes/Stylish/icons/arch.png b/grub-config/themes/Stylish/icons/arch.png new file mode 100644 index 0000000..a86a162 Binary files /dev/null and b/grub-config/themes/Stylish/icons/arch.png differ diff --git a/grub-config/themes/Stylish/icons/archlinux.png b/grub-config/themes/Stylish/icons/archlinux.png new file mode 100644 index 0000000..a86a162 Binary files /dev/null and b/grub-config/themes/Stylish/icons/archlinux.png differ diff --git a/grub-config/themes/Stylish/icons/arcolinux.png b/grub-config/themes/Stylish/icons/arcolinux.png new file mode 100644 index 0000000..925324b Binary files /dev/null and b/grub-config/themes/Stylish/icons/arcolinux.png differ diff --git a/grub-config/themes/Stylish/icons/arcolinuxb.png b/grub-config/themes/Stylish/icons/arcolinuxb.png new file mode 100644 index 0000000..925324b Binary files /dev/null and b/grub-config/themes/Stylish/icons/arcolinuxb.png differ diff --git a/grub-config/themes/Stylish/icons/arcolinuxd.png b/grub-config/themes/Stylish/icons/arcolinuxd.png new file mode 100644 index 0000000..925324b Binary files /dev/null and b/grub-config/themes/Stylish/icons/arcolinuxd.png differ diff --git a/grub-config/themes/Stylish/icons/cancel.png b/grub-config/themes/Stylish/icons/cancel.png new file mode 100644 index 0000000..20096c3 Binary files /dev/null and b/grub-config/themes/Stylish/icons/cancel.png differ diff --git a/grub-config/themes/Stylish/icons/chakra.png b/grub-config/themes/Stylish/icons/chakra.png new file mode 100644 index 0000000..940053a Binary files /dev/null and b/grub-config/themes/Stylish/icons/chakra.png differ diff --git a/grub-config/themes/Stylish/icons/debian.png b/grub-config/themes/Stylish/icons/debian.png new file mode 100644 index 0000000..4f503c1 Binary files /dev/null and b/grub-config/themes/Stylish/icons/debian.png differ diff --git a/grub-config/themes/Stylish/icons/deepin.png b/grub-config/themes/Stylish/icons/deepin.png new file mode 100644 index 0000000..a0607e1 Binary files /dev/null and b/grub-config/themes/Stylish/icons/deepin.png differ diff --git a/grub-config/themes/Stylish/icons/driver.png b/grub-config/themes/Stylish/icons/driver.png new file mode 100644 index 0000000..fc042fe Binary files /dev/null and b/grub-config/themes/Stylish/icons/driver.png differ diff --git a/grub-config/themes/Stylish/icons/edit.png b/grub-config/themes/Stylish/icons/edit.png new file mode 100644 index 0000000..b93f42d Binary files /dev/null and b/grub-config/themes/Stylish/icons/edit.png differ diff --git a/grub-config/themes/Stylish/icons/efi.png b/grub-config/themes/Stylish/icons/efi.png new file mode 100644 index 0000000..bf08be9 Binary files /dev/null and b/grub-config/themes/Stylish/icons/efi.png differ diff --git a/grub-config/themes/Stylish/icons/elementary.png b/grub-config/themes/Stylish/icons/elementary.png new file mode 100644 index 0000000..4543a92 Binary files /dev/null and b/grub-config/themes/Stylish/icons/elementary.png differ diff --git a/grub-config/themes/Stylish/icons/fedora.png b/grub-config/themes/Stylish/icons/fedora.png new file mode 100644 index 0000000..b06e6e7 Binary files /dev/null and b/grub-config/themes/Stylish/icons/fedora.png differ diff --git a/grub-config/themes/Stylish/icons/find.efi.png b/grub-config/themes/Stylish/icons/find.efi.png new file mode 100644 index 0000000..4c93cb2 Binary files /dev/null and b/grub-config/themes/Stylish/icons/find.efi.png differ diff --git a/grub-config/themes/Stylish/icons/find.none.png b/grub-config/themes/Stylish/icons/find.none.png new file mode 100644 index 0000000..505e42f Binary files /dev/null and b/grub-config/themes/Stylish/icons/find.none.png differ diff --git a/grub-config/themes/Stylish/icons/gentoo.png b/grub-config/themes/Stylish/icons/gentoo.png new file mode 100644 index 0000000..9fe5177 Binary files /dev/null and b/grub-config/themes/Stylish/icons/gentoo.png differ diff --git a/grub-config/themes/Stylish/icons/gnu-linux.png b/grub-config/themes/Stylish/icons/gnu-linux.png new file mode 100644 index 0000000..e22ff72 Binary files /dev/null and b/grub-config/themes/Stylish/icons/gnu-linux.png differ diff --git a/grub-config/themes/Stylish/icons/help.png b/grub-config/themes/Stylish/icons/help.png new file mode 100644 index 0000000..adc53b0 Binary files /dev/null and b/grub-config/themes/Stylish/icons/help.png differ diff --git a/grub-config/themes/Stylish/icons/kali.png b/grub-config/themes/Stylish/icons/kali.png new file mode 100644 index 0000000..141bfee Binary files /dev/null and b/grub-config/themes/Stylish/icons/kali.png differ diff --git a/grub-config/themes/Stylish/icons/kaos.png b/grub-config/themes/Stylish/icons/kaos.png new file mode 100644 index 0000000..a354e14 Binary files /dev/null and b/grub-config/themes/Stylish/icons/kaos.png differ diff --git a/grub-config/themes/Stylish/icons/kbd.png b/grub-config/themes/Stylish/icons/kbd.png new file mode 100644 index 0000000..821a7f7 Binary files /dev/null and b/grub-config/themes/Stylish/icons/kbd.png differ diff --git a/grub-config/themes/Stylish/icons/korora.png b/grub-config/themes/Stylish/icons/korora.png new file mode 100644 index 0000000..d146940 Binary files /dev/null and b/grub-config/themes/Stylish/icons/korora.png differ diff --git a/grub-config/themes/Stylish/icons/kubuntu.png b/grub-config/themes/Stylish/icons/kubuntu.png new file mode 100644 index 0000000..1a4230e Binary files /dev/null and b/grub-config/themes/Stylish/icons/kubuntu.png differ diff --git a/grub-config/themes/Stylish/icons/lang.png b/grub-config/themes/Stylish/icons/lang.png new file mode 100644 index 0000000..ff3dd29 Binary files /dev/null and b/grub-config/themes/Stylish/icons/lang.png differ diff --git a/grub-config/themes/Stylish/icons/lfs.png b/grub-config/themes/Stylish/icons/lfs.png new file mode 100644 index 0000000..e22ff72 Binary files /dev/null and b/grub-config/themes/Stylish/icons/lfs.png differ diff --git a/grub-config/themes/Stylish/icons/linux-mint.png b/grub-config/themes/Stylish/icons/linux-mint.png new file mode 100644 index 0000000..0db2010 Binary files /dev/null and b/grub-config/themes/Stylish/icons/linux-mint.png differ diff --git a/grub-config/themes/Stylish/icons/linux.png b/grub-config/themes/Stylish/icons/linux.png new file mode 100644 index 0000000..e22ff72 Binary files /dev/null and b/grub-config/themes/Stylish/icons/linux.png differ diff --git a/grub-config/themes/Stylish/icons/lubuntu.png b/grub-config/themes/Stylish/icons/lubuntu.png new file mode 100644 index 0000000..effcd05 Binary files /dev/null and b/grub-config/themes/Stylish/icons/lubuntu.png differ diff --git a/grub-config/themes/Stylish/icons/macosx.png b/grub-config/themes/Stylish/icons/macosx.png new file mode 100644 index 0000000..a765ab5 Binary files /dev/null and b/grub-config/themes/Stylish/icons/macosx.png differ diff --git a/grub-config/themes/Stylish/icons/mageia.png b/grub-config/themes/Stylish/icons/mageia.png new file mode 100644 index 0000000..5133b97 Binary files /dev/null and b/grub-config/themes/Stylish/icons/mageia.png differ diff --git a/grub-config/themes/Stylish/icons/manjaro.png b/grub-config/themes/Stylish/icons/manjaro.png new file mode 100644 index 0000000..194e5ca Binary files /dev/null and b/grub-config/themes/Stylish/icons/manjaro.png differ diff --git a/grub-config/themes/Stylish/icons/memtest.png b/grub-config/themes/Stylish/icons/memtest.png new file mode 100644 index 0000000..fc042fe Binary files /dev/null and b/grub-config/themes/Stylish/icons/memtest.png differ diff --git a/grub-config/themes/Stylish/icons/opensuse.png b/grub-config/themes/Stylish/icons/opensuse.png new file mode 100644 index 0000000..3ac99e0 Binary files /dev/null and b/grub-config/themes/Stylish/icons/opensuse.png differ diff --git a/grub-config/themes/Stylish/icons/pop-os.png b/grub-config/themes/Stylish/icons/pop-os.png new file mode 100644 index 0000000..f1b7602 Binary files /dev/null and b/grub-config/themes/Stylish/icons/pop-os.png differ diff --git a/grub-config/themes/Stylish/icons/recovery.png b/grub-config/themes/Stylish/icons/recovery.png new file mode 100644 index 0000000..bec4a6a Binary files /dev/null and b/grub-config/themes/Stylish/icons/recovery.png differ diff --git a/grub-config/themes/Stylish/icons/restart.png b/grub-config/themes/Stylish/icons/restart.png new file mode 100644 index 0000000..0075826 Binary files /dev/null and b/grub-config/themes/Stylish/icons/restart.png differ diff --git a/grub-config/themes/Stylish/icons/shutdown.png b/grub-config/themes/Stylish/icons/shutdown.png new file mode 100644 index 0000000..2a7cbe7 Binary files /dev/null and b/grub-config/themes/Stylish/icons/shutdown.png differ diff --git a/grub-config/themes/Stylish/icons/siduction.png b/grub-config/themes/Stylish/icons/siduction.png new file mode 100644 index 0000000..5e4cdaf Binary files /dev/null and b/grub-config/themes/Stylish/icons/siduction.png differ diff --git a/grub-config/themes/Stylish/icons/solus.png b/grub-config/themes/Stylish/icons/solus.png new file mode 100644 index 0000000..729fe59 Binary files /dev/null and b/grub-config/themes/Stylish/icons/solus.png differ diff --git a/grub-config/themes/Stylish/icons/steamos.png b/grub-config/themes/Stylish/icons/steamos.png new file mode 100644 index 0000000..23011cd Binary files /dev/null and b/grub-config/themes/Stylish/icons/steamos.png differ diff --git a/grub-config/themes/Stylish/icons/type.png b/grub-config/themes/Stylish/icons/type.png new file mode 100644 index 0000000..cdd59ce Binary files /dev/null and b/grub-config/themes/Stylish/icons/type.png differ diff --git a/grub-config/themes/Stylish/icons/tz.png b/grub-config/themes/Stylish/icons/tz.png new file mode 100644 index 0000000..8fc577f Binary files /dev/null and b/grub-config/themes/Stylish/icons/tz.png differ diff --git a/grub-config/themes/Stylish/icons/ubuntu.png b/grub-config/themes/Stylish/icons/ubuntu.png new file mode 100644 index 0000000..b32e1ce Binary files /dev/null and b/grub-config/themes/Stylish/icons/ubuntu.png differ diff --git a/grub-config/themes/Stylish/icons/unknown.png b/grub-config/themes/Stylish/icons/unknown.png new file mode 100644 index 0000000..e22ff72 Binary files /dev/null and b/grub-config/themes/Stylish/icons/unknown.png differ diff --git a/grub-config/themes/Stylish/icons/unset.png b/grub-config/themes/Stylish/icons/unset.png new file mode 100644 index 0000000..cf0c597 Binary files /dev/null and b/grub-config/themes/Stylish/icons/unset.png differ diff --git a/grub-config/themes/Stylish/icons/windows.png b/grub-config/themes/Stylish/icons/windows.png new file mode 100644 index 0000000..0998c59 Binary files /dev/null and b/grub-config/themes/Stylish/icons/windows.png differ diff --git a/grub-config/themes/Stylish/icons/xubuntu.png b/grub-config/themes/Stylish/icons/xubuntu.png new file mode 100644 index 0000000..d592ee1 Binary files /dev/null and b/grub-config/themes/Stylish/icons/xubuntu.png differ diff --git a/grub-config/themes/Stylish/select_c.png b/grub-config/themes/Stylish/select_c.png new file mode 100644 index 0000000..b1f8d58 Binary files /dev/null and b/grub-config/themes/Stylish/select_c.png differ diff --git a/grub-config/themes/Stylish/select_e.png b/grub-config/themes/Stylish/select_e.png new file mode 100644 index 0000000..9332368 Binary files /dev/null and b/grub-config/themes/Stylish/select_e.png differ diff --git a/grub-config/themes/Stylish/select_w.png b/grub-config/themes/Stylish/select_w.png new file mode 100644 index 0000000..28f6424 Binary files /dev/null and b/grub-config/themes/Stylish/select_w.png differ diff --git a/grub-config/themes/Stylish/terminal_box_c.png b/grub-config/themes/Stylish/terminal_box_c.png new file mode 100644 index 0000000..d0dd52a Binary files /dev/null and b/grub-config/themes/Stylish/terminal_box_c.png differ diff --git a/grub-config/themes/Stylish/terminal_box_e.png b/grub-config/themes/Stylish/terminal_box_e.png new file mode 100644 index 0000000..394cbe4 Binary files /dev/null and b/grub-config/themes/Stylish/terminal_box_e.png differ diff --git a/grub-config/themes/Stylish/terminal_box_n.png b/grub-config/themes/Stylish/terminal_box_n.png new file mode 100644 index 0000000..476f8bc Binary files /dev/null and b/grub-config/themes/Stylish/terminal_box_n.png differ diff --git a/grub-config/themes/Stylish/terminal_box_ne.png b/grub-config/themes/Stylish/terminal_box_ne.png new file mode 100644 index 0000000..9e26959 Binary files /dev/null and b/grub-config/themes/Stylish/terminal_box_ne.png differ diff --git a/grub-config/themes/Stylish/terminal_box_nw.png b/grub-config/themes/Stylish/terminal_box_nw.png new file mode 100644 index 0000000..5c3cba8 Binary files /dev/null and b/grub-config/themes/Stylish/terminal_box_nw.png differ diff --git a/grub-config/themes/Stylish/terminal_box_s.png b/grub-config/themes/Stylish/terminal_box_s.png new file mode 100644 index 0000000..85a8901 Binary files /dev/null and b/grub-config/themes/Stylish/terminal_box_s.png differ diff --git a/grub-config/themes/Stylish/terminal_box_se.png b/grub-config/themes/Stylish/terminal_box_se.png new file mode 100644 index 0000000..d8627ee Binary files /dev/null and b/grub-config/themes/Stylish/terminal_box_se.png differ diff --git a/grub-config/themes/Stylish/terminal_box_sw.png b/grub-config/themes/Stylish/terminal_box_sw.png new file mode 100644 index 0000000..67c600c Binary files /dev/null and b/grub-config/themes/Stylish/terminal_box_sw.png differ diff --git a/grub-config/themes/Stylish/terminal_box_w.png b/grub-config/themes/Stylish/terminal_box_w.png new file mode 100644 index 0000000..d066e2d Binary files /dev/null and b/grub-config/themes/Stylish/terminal_box_w.png differ diff --git a/grub-config/themes/Stylish/theme.txt b/grub-config/themes/Stylish/theme.txt new file mode 100644 index 0000000..73f932e --- /dev/null +++ b/grub-config/themes/Stylish/theme.txt @@ -0,0 +1,44 @@ +# GRUB2 gfxmenu Linux theme +# Designed for any resolution + +# Global Property +title-text: "" +desktop-image: "background.jpg" +desktop-color: "#000000" +terminal-font: "Unifont Regular 16" +terminal-box: "terminal_box_*.png" +terminal-left: "0" +terminal-top: "0" +terminal-width: "100%" +terminal-height: "100%" +terminal-border: "0" + +# Show the boot menu ++ boot_menu { + left = 30% + top = 30% + width = 45% + height = 60% + item_font = "Unifont Regular 16" + item_color = "#cccccc" + selected_item_color = "#ffffff" + icon_width = 32 + icon_height = 32 + item_icon_space = 20 + item_height = 36 + item_padding = 5 + item_spacing = 10 + selected_item_pixmap_style = "select_*.png" +} + +# Show a countdown message using the label component ++ label { + top = 82% + left = 35% + width = 30% + align = "center" + id = "__timeout__" + text = "Booting in %d seconds" + color = "#cccccc" + font = "Unifont Regular 16" +} diff --git a/grub-config/themes/Stylish/unifont-regular-16.pf2 b/grub-config/themes/Stylish/unifont-regular-16.pf2 new file mode 100644 index 0000000..b87a776 Binary files /dev/null and b/grub-config/themes/Stylish/unifont-regular-16.pf2 differ diff --git a/grub-config/themes/Vimix/background.jpg b/grub-config/themes/Vimix/background.jpg new file mode 100644 index 0000000..f4720e5 Binary files /dev/null and b/grub-config/themes/Vimix/background.jpg differ diff --git a/grub-config/themes/Vimix/icons/Manjaro.i686.png b/grub-config/themes/Vimix/icons/Manjaro.i686.png new file mode 100644 index 0000000..194e5ca Binary files /dev/null and b/grub-config/themes/Vimix/icons/Manjaro.i686.png differ diff --git a/grub-config/themes/Vimix/icons/Manjaro.x86_64.png b/grub-config/themes/Vimix/icons/Manjaro.x86_64.png new file mode 100644 index 0000000..194e5ca Binary files /dev/null and b/grub-config/themes/Vimix/icons/Manjaro.x86_64.png differ diff --git a/grub-config/themes/Vimix/icons/antergos.png b/grub-config/themes/Vimix/icons/antergos.png new file mode 100644 index 0000000..42946d2 Binary files /dev/null and b/grub-config/themes/Vimix/icons/antergos.png differ diff --git a/grub-config/themes/Vimix/icons/arch.png b/grub-config/themes/Vimix/icons/arch.png new file mode 100644 index 0000000..a86a162 Binary files /dev/null and b/grub-config/themes/Vimix/icons/arch.png differ diff --git a/grub-config/themes/Vimix/icons/archlinux.png b/grub-config/themes/Vimix/icons/archlinux.png new file mode 100644 index 0000000..a86a162 Binary files /dev/null and b/grub-config/themes/Vimix/icons/archlinux.png differ diff --git a/grub-config/themes/Vimix/icons/arcolinux.png b/grub-config/themes/Vimix/icons/arcolinux.png new file mode 100644 index 0000000..925324b Binary files /dev/null and b/grub-config/themes/Vimix/icons/arcolinux.png differ diff --git a/grub-config/themes/Vimix/icons/arcolinuxb.png b/grub-config/themes/Vimix/icons/arcolinuxb.png new file mode 100644 index 0000000..925324b Binary files /dev/null and b/grub-config/themes/Vimix/icons/arcolinuxb.png differ diff --git a/grub-config/themes/Vimix/icons/arcolinuxd.png b/grub-config/themes/Vimix/icons/arcolinuxd.png new file mode 100644 index 0000000..925324b Binary files /dev/null and b/grub-config/themes/Vimix/icons/arcolinuxd.png differ diff --git a/grub-config/themes/Vimix/icons/cancel.png b/grub-config/themes/Vimix/icons/cancel.png new file mode 100644 index 0000000..20096c3 Binary files /dev/null and b/grub-config/themes/Vimix/icons/cancel.png differ diff --git a/grub-config/themes/Vimix/icons/chakra.png b/grub-config/themes/Vimix/icons/chakra.png new file mode 100644 index 0000000..940053a Binary files /dev/null and b/grub-config/themes/Vimix/icons/chakra.png differ diff --git a/grub-config/themes/Vimix/icons/debian.png b/grub-config/themes/Vimix/icons/debian.png new file mode 100644 index 0000000..4f503c1 Binary files /dev/null and b/grub-config/themes/Vimix/icons/debian.png differ diff --git a/grub-config/themes/Vimix/icons/deepin.png b/grub-config/themes/Vimix/icons/deepin.png new file mode 100644 index 0000000..a0607e1 Binary files /dev/null and b/grub-config/themes/Vimix/icons/deepin.png differ diff --git a/grub-config/themes/Vimix/icons/driver.png b/grub-config/themes/Vimix/icons/driver.png new file mode 100644 index 0000000..fc042fe Binary files /dev/null and b/grub-config/themes/Vimix/icons/driver.png differ diff --git a/grub-config/themes/Vimix/icons/edit.png b/grub-config/themes/Vimix/icons/edit.png new file mode 100644 index 0000000..b93f42d Binary files /dev/null and b/grub-config/themes/Vimix/icons/edit.png differ diff --git a/grub-config/themes/Vimix/icons/efi.png b/grub-config/themes/Vimix/icons/efi.png new file mode 100644 index 0000000..bf08be9 Binary files /dev/null and b/grub-config/themes/Vimix/icons/efi.png differ diff --git a/grub-config/themes/Vimix/icons/elementary.png b/grub-config/themes/Vimix/icons/elementary.png new file mode 100644 index 0000000..4543a92 Binary files /dev/null and b/grub-config/themes/Vimix/icons/elementary.png differ diff --git a/grub-config/themes/Vimix/icons/fedora.png b/grub-config/themes/Vimix/icons/fedora.png new file mode 100644 index 0000000..b06e6e7 Binary files /dev/null and b/grub-config/themes/Vimix/icons/fedora.png differ diff --git a/grub-config/themes/Vimix/icons/find.efi.png b/grub-config/themes/Vimix/icons/find.efi.png new file mode 100644 index 0000000..4c93cb2 Binary files /dev/null and b/grub-config/themes/Vimix/icons/find.efi.png differ diff --git a/grub-config/themes/Vimix/icons/find.none.png b/grub-config/themes/Vimix/icons/find.none.png new file mode 100644 index 0000000..505e42f Binary files /dev/null and b/grub-config/themes/Vimix/icons/find.none.png differ diff --git a/grub-config/themes/Vimix/icons/gentoo.png b/grub-config/themes/Vimix/icons/gentoo.png new file mode 100644 index 0000000..9fe5177 Binary files /dev/null and b/grub-config/themes/Vimix/icons/gentoo.png differ diff --git a/grub-config/themes/Vimix/icons/gnu-linux.png b/grub-config/themes/Vimix/icons/gnu-linux.png new file mode 100644 index 0000000..e22ff72 Binary files /dev/null and b/grub-config/themes/Vimix/icons/gnu-linux.png differ diff --git a/grub-config/themes/Vimix/icons/help.png b/grub-config/themes/Vimix/icons/help.png new file mode 100644 index 0000000..adc53b0 Binary files /dev/null and b/grub-config/themes/Vimix/icons/help.png differ diff --git a/grub-config/themes/Vimix/icons/kali.png b/grub-config/themes/Vimix/icons/kali.png new file mode 100644 index 0000000..141bfee Binary files /dev/null and b/grub-config/themes/Vimix/icons/kali.png differ diff --git a/grub-config/themes/Vimix/icons/kaos.png b/grub-config/themes/Vimix/icons/kaos.png new file mode 100644 index 0000000..a354e14 Binary files /dev/null and b/grub-config/themes/Vimix/icons/kaos.png differ diff --git a/grub-config/themes/Vimix/icons/kbd.png b/grub-config/themes/Vimix/icons/kbd.png new file mode 100644 index 0000000..821a7f7 Binary files /dev/null and b/grub-config/themes/Vimix/icons/kbd.png differ diff --git a/grub-config/themes/Vimix/icons/korora.png b/grub-config/themes/Vimix/icons/korora.png new file mode 100644 index 0000000..d146940 Binary files /dev/null and b/grub-config/themes/Vimix/icons/korora.png differ diff --git a/grub-config/themes/Vimix/icons/kubuntu.png b/grub-config/themes/Vimix/icons/kubuntu.png new file mode 100644 index 0000000..1a4230e Binary files /dev/null and b/grub-config/themes/Vimix/icons/kubuntu.png differ diff --git a/grub-config/themes/Vimix/icons/lang.png b/grub-config/themes/Vimix/icons/lang.png new file mode 100644 index 0000000..ff3dd29 Binary files /dev/null and b/grub-config/themes/Vimix/icons/lang.png differ diff --git a/grub-config/themes/Vimix/icons/lfs.png b/grub-config/themes/Vimix/icons/lfs.png new file mode 100644 index 0000000..e22ff72 Binary files /dev/null and b/grub-config/themes/Vimix/icons/lfs.png differ diff --git a/grub-config/themes/Vimix/icons/linux-mint.png b/grub-config/themes/Vimix/icons/linux-mint.png new file mode 100644 index 0000000..0db2010 Binary files /dev/null and b/grub-config/themes/Vimix/icons/linux-mint.png differ diff --git a/grub-config/themes/Vimix/icons/linux.png b/grub-config/themes/Vimix/icons/linux.png new file mode 100644 index 0000000..e22ff72 Binary files /dev/null and b/grub-config/themes/Vimix/icons/linux.png differ diff --git a/grub-config/themes/Vimix/icons/lubuntu.png b/grub-config/themes/Vimix/icons/lubuntu.png new file mode 100644 index 0000000..effcd05 Binary files /dev/null and b/grub-config/themes/Vimix/icons/lubuntu.png differ diff --git a/grub-config/themes/Vimix/icons/macosx.png b/grub-config/themes/Vimix/icons/macosx.png new file mode 100644 index 0000000..a765ab5 Binary files /dev/null and b/grub-config/themes/Vimix/icons/macosx.png differ diff --git a/grub-config/themes/Vimix/icons/mageia.png b/grub-config/themes/Vimix/icons/mageia.png new file mode 100644 index 0000000..5133b97 Binary files /dev/null and b/grub-config/themes/Vimix/icons/mageia.png differ diff --git a/grub-config/themes/Vimix/icons/manjaro.png b/grub-config/themes/Vimix/icons/manjaro.png new file mode 100644 index 0000000..194e5ca Binary files /dev/null and b/grub-config/themes/Vimix/icons/manjaro.png differ diff --git a/grub-config/themes/Vimix/icons/memtest.png b/grub-config/themes/Vimix/icons/memtest.png new file mode 100644 index 0000000..fc042fe Binary files /dev/null and b/grub-config/themes/Vimix/icons/memtest.png differ diff --git a/grub-config/themes/Vimix/icons/opensuse.png b/grub-config/themes/Vimix/icons/opensuse.png new file mode 100644 index 0000000..3ac99e0 Binary files /dev/null and b/grub-config/themes/Vimix/icons/opensuse.png differ diff --git a/grub-config/themes/Vimix/icons/pop-os.png b/grub-config/themes/Vimix/icons/pop-os.png new file mode 100644 index 0000000..f1b7602 Binary files /dev/null and b/grub-config/themes/Vimix/icons/pop-os.png differ diff --git a/grub-config/themes/Vimix/icons/recovery.png b/grub-config/themes/Vimix/icons/recovery.png new file mode 100644 index 0000000..bec4a6a Binary files /dev/null and b/grub-config/themes/Vimix/icons/recovery.png differ diff --git a/grub-config/themes/Vimix/icons/restart.png b/grub-config/themes/Vimix/icons/restart.png new file mode 100644 index 0000000..0075826 Binary files /dev/null and b/grub-config/themes/Vimix/icons/restart.png differ diff --git a/grub-config/themes/Vimix/icons/shutdown.png b/grub-config/themes/Vimix/icons/shutdown.png new file mode 100644 index 0000000..2a7cbe7 Binary files /dev/null and b/grub-config/themes/Vimix/icons/shutdown.png differ diff --git a/grub-config/themes/Vimix/icons/siduction.png b/grub-config/themes/Vimix/icons/siduction.png new file mode 100644 index 0000000..5e4cdaf Binary files /dev/null and b/grub-config/themes/Vimix/icons/siduction.png differ diff --git a/grub-config/themes/Vimix/icons/solus.png b/grub-config/themes/Vimix/icons/solus.png new file mode 100644 index 0000000..729fe59 Binary files /dev/null and b/grub-config/themes/Vimix/icons/solus.png differ diff --git a/grub-config/themes/Vimix/icons/steamos.png b/grub-config/themes/Vimix/icons/steamos.png new file mode 100644 index 0000000..23011cd Binary files /dev/null and b/grub-config/themes/Vimix/icons/steamos.png differ diff --git a/grub-config/themes/Vimix/icons/type.png b/grub-config/themes/Vimix/icons/type.png new file mode 100644 index 0000000..cdd59ce Binary files /dev/null and b/grub-config/themes/Vimix/icons/type.png differ diff --git a/grub-config/themes/Vimix/icons/tz.png b/grub-config/themes/Vimix/icons/tz.png new file mode 100644 index 0000000..8fc577f Binary files /dev/null and b/grub-config/themes/Vimix/icons/tz.png differ diff --git a/grub-config/themes/Vimix/icons/ubuntu.png b/grub-config/themes/Vimix/icons/ubuntu.png new file mode 100644 index 0000000..b32e1ce Binary files /dev/null and b/grub-config/themes/Vimix/icons/ubuntu.png differ diff --git a/grub-config/themes/Vimix/icons/unknown.png b/grub-config/themes/Vimix/icons/unknown.png new file mode 100644 index 0000000..e22ff72 Binary files /dev/null and b/grub-config/themes/Vimix/icons/unknown.png differ diff --git a/grub-config/themes/Vimix/icons/unset.png b/grub-config/themes/Vimix/icons/unset.png new file mode 100644 index 0000000..cf0c597 Binary files /dev/null and b/grub-config/themes/Vimix/icons/unset.png differ diff --git a/grub-config/themes/Vimix/icons/windows.png b/grub-config/themes/Vimix/icons/windows.png new file mode 100644 index 0000000..0998c59 Binary files /dev/null and b/grub-config/themes/Vimix/icons/windows.png differ diff --git a/grub-config/themes/Vimix/icons/xubuntu.png b/grub-config/themes/Vimix/icons/xubuntu.png new file mode 100644 index 0000000..d592ee1 Binary files /dev/null and b/grub-config/themes/Vimix/icons/xubuntu.png differ diff --git a/grub-config/themes/Vimix/select_c.png b/grub-config/themes/Vimix/select_c.png new file mode 100644 index 0000000..b1f8d58 Binary files /dev/null and b/grub-config/themes/Vimix/select_c.png differ diff --git a/grub-config/themes/Vimix/select_e.png b/grub-config/themes/Vimix/select_e.png new file mode 100644 index 0000000..9332368 Binary files /dev/null and b/grub-config/themes/Vimix/select_e.png differ diff --git a/grub-config/themes/Vimix/select_w.png b/grub-config/themes/Vimix/select_w.png new file mode 100644 index 0000000..28f6424 Binary files /dev/null and b/grub-config/themes/Vimix/select_w.png differ diff --git a/grub-config/themes/Vimix/terminal_box_c.png b/grub-config/themes/Vimix/terminal_box_c.png new file mode 100644 index 0000000..d0dd52a Binary files /dev/null and b/grub-config/themes/Vimix/terminal_box_c.png differ diff --git a/grub-config/themes/Vimix/terminal_box_e.png b/grub-config/themes/Vimix/terminal_box_e.png new file mode 100644 index 0000000..394cbe4 Binary files /dev/null and b/grub-config/themes/Vimix/terminal_box_e.png differ diff --git a/grub-config/themes/Vimix/terminal_box_n.png b/grub-config/themes/Vimix/terminal_box_n.png new file mode 100644 index 0000000..476f8bc Binary files /dev/null and b/grub-config/themes/Vimix/terminal_box_n.png differ diff --git a/grub-config/themes/Vimix/terminal_box_ne.png b/grub-config/themes/Vimix/terminal_box_ne.png new file mode 100644 index 0000000..9e26959 Binary files /dev/null and b/grub-config/themes/Vimix/terminal_box_ne.png differ diff --git a/grub-config/themes/Vimix/terminal_box_nw.png b/grub-config/themes/Vimix/terminal_box_nw.png new file mode 100644 index 0000000..5c3cba8 Binary files /dev/null and b/grub-config/themes/Vimix/terminal_box_nw.png differ diff --git a/grub-config/themes/Vimix/terminal_box_s.png b/grub-config/themes/Vimix/terminal_box_s.png new file mode 100644 index 0000000..85a8901 Binary files /dev/null and b/grub-config/themes/Vimix/terminal_box_s.png differ diff --git a/grub-config/themes/Vimix/terminal_box_se.png b/grub-config/themes/Vimix/terminal_box_se.png new file mode 100644 index 0000000..d8627ee Binary files /dev/null and b/grub-config/themes/Vimix/terminal_box_se.png differ diff --git a/grub-config/themes/Vimix/terminal_box_sw.png b/grub-config/themes/Vimix/terminal_box_sw.png new file mode 100644 index 0000000..67c600c Binary files /dev/null and b/grub-config/themes/Vimix/terminal_box_sw.png differ diff --git a/grub-config/themes/Vimix/terminal_box_w.png b/grub-config/themes/Vimix/terminal_box_w.png new file mode 100644 index 0000000..d066e2d Binary files /dev/null and b/grub-config/themes/Vimix/terminal_box_w.png differ diff --git a/grub-config/themes/Vimix/theme.txt b/grub-config/themes/Vimix/theme.txt new file mode 100644 index 0000000..73f932e --- /dev/null +++ b/grub-config/themes/Vimix/theme.txt @@ -0,0 +1,44 @@ +# GRUB2 gfxmenu Linux theme +# Designed for any resolution + +# Global Property +title-text: "" +desktop-image: "background.jpg" +desktop-color: "#000000" +terminal-font: "Unifont Regular 16" +terminal-box: "terminal_box_*.png" +terminal-left: "0" +terminal-top: "0" +terminal-width: "100%" +terminal-height: "100%" +terminal-border: "0" + +# Show the boot menu ++ boot_menu { + left = 30% + top = 30% + width = 45% + height = 60% + item_font = "Unifont Regular 16" + item_color = "#cccccc" + selected_item_color = "#ffffff" + icon_width = 32 + icon_height = 32 + item_icon_space = 20 + item_height = 36 + item_padding = 5 + item_spacing = 10 + selected_item_pixmap_style = "select_*.png" +} + +# Show a countdown message using the label component ++ label { + top = 82% + left = 35% + width = 30% + align = "center" + id = "__timeout__" + text = "Booting in %d seconds" + color = "#cccccc" + font = "Unifont Regular 16" +} diff --git a/grub-config/themes/Vimix/unifont-regular-16.pf2 b/grub-config/themes/Vimix/unifont-regular-16.pf2 new file mode 100644 index 0000000..b87a776 Binary files /dev/null and b/grub-config/themes/Vimix/unifont-regular-16.pf2 differ diff --git a/grub-config/themes/artix/background.png b/grub-config/themes/artix/background.png new file mode 100755 index 0000000..344241b Binary files /dev/null and b/grub-config/themes/artix/background.png differ diff --git a/grub-config/themes/artix/highlight_c.png b/grub-config/themes/artix/highlight_c.png new file mode 100755 index 0000000..2b01d9d Binary files /dev/null and b/grub-config/themes/artix/highlight_c.png differ diff --git a/grub-config/themes/artix/highlight_e.png b/grub-config/themes/artix/highlight_e.png new file mode 100755 index 0000000..e5e56ad Binary files /dev/null and b/grub-config/themes/artix/highlight_e.png differ diff --git a/grub-config/themes/artix/highlight_w.png b/grub-config/themes/artix/highlight_w.png new file mode 100755 index 0000000..e323418 Binary files /dev/null and b/grub-config/themes/artix/highlight_w.png differ diff --git a/grub-config/themes/artix/icons/artix.i686.png b/grub-config/themes/artix/icons/artix.i686.png new file mode 100755 index 0000000..d35415e Binary files /dev/null and b/grub-config/themes/artix/icons/artix.i686.png differ diff --git a/grub-config/themes/artix/icons/artix.x86_64.png b/grub-config/themes/artix/icons/artix.x86_64.png new file mode 100755 index 0000000..d35415e Binary files /dev/null and b/grub-config/themes/artix/icons/artix.x86_64.png differ diff --git a/grub-config/themes/artix/icons/cancel.png b/grub-config/themes/artix/icons/cancel.png new file mode 100755 index 0000000..d553637 Binary files /dev/null and b/grub-config/themes/artix/icons/cancel.png differ diff --git a/grub-config/themes/artix/icons/edit.png b/grub-config/themes/artix/icons/edit.png new file mode 100755 index 0000000..435604f Binary files /dev/null and b/grub-config/themes/artix/icons/edit.png differ diff --git a/grub-config/themes/artix/icons/efi.png b/grub-config/themes/artix/icons/efi.png new file mode 100755 index 0000000..e7b21c0 Binary files /dev/null and b/grub-config/themes/artix/icons/efi.png differ diff --git a/grub-config/themes/artix/icons/find.efi.png b/grub-config/themes/artix/icons/find.efi.png new file mode 100755 index 0000000..2097cd3 Binary files /dev/null and b/grub-config/themes/artix/icons/find.efi.png differ diff --git a/grub-config/themes/artix/icons/find.none.png b/grub-config/themes/artix/icons/find.none.png new file mode 100755 index 0000000..96f289e Binary files /dev/null and b/grub-config/themes/artix/icons/find.none.png differ diff --git a/grub-config/themes/artix/icons/help.png b/grub-config/themes/artix/icons/help.png new file mode 100755 index 0000000..aea1b18 Binary files /dev/null and b/grub-config/themes/artix/icons/help.png differ diff --git a/grub-config/themes/artix/icons/kbd.png b/grub-config/themes/artix/icons/kbd.png new file mode 100755 index 0000000..77ddc14 Binary files /dev/null and b/grub-config/themes/artix/icons/kbd.png differ diff --git a/grub-config/themes/artix/icons/lang.png b/grub-config/themes/artix/icons/lang.png new file mode 100755 index 0000000..ac82c78 Binary files /dev/null and b/grub-config/themes/artix/icons/lang.png differ diff --git a/grub-config/themes/artix/icons/memtest.png b/grub-config/themes/artix/icons/memtest.png new file mode 100755 index 0000000..c6a37e4 Binary files /dev/null and b/grub-config/themes/artix/icons/memtest.png differ diff --git a/grub-config/themes/artix/icons/netinstall.png b/grub-config/themes/artix/icons/netinstall.png new file mode 100755 index 0000000..c6a37e4 Binary files /dev/null and b/grub-config/themes/artix/icons/netinstall.png differ diff --git a/grub-config/themes/artix/icons/type.png b/grub-config/themes/artix/icons/type.png new file mode 100755 index 0000000..8dec04f Binary files /dev/null and b/grub-config/themes/artix/icons/type.png differ diff --git a/grub-config/themes/artix/icons/tz.png b/grub-config/themes/artix/icons/tz.png new file mode 100755 index 0000000..f966ea7 Binary files /dev/null and b/grub-config/themes/artix/icons/tz.png differ diff --git a/grub-config/themes/artix/icons/unset.png b/grub-config/themes/artix/icons/unset.png new file mode 100755 index 0000000..669611a Binary files /dev/null and b/grub-config/themes/artix/icons/unset.png differ diff --git a/grub-config/themes/artix/logo.png b/grub-config/themes/artix/logo.png new file mode 100755 index 0000000..d21d6a1 Binary files /dev/null and b/grub-config/themes/artix/logo.png differ diff --git a/grub-config/themes/artix/menu_c.png b/grub-config/themes/artix/menu_c.png new file mode 100755 index 0000000..7da3232 Binary files /dev/null and b/grub-config/themes/artix/menu_c.png differ diff --git a/grub-config/themes/artix/menu_e.png b/grub-config/themes/artix/menu_e.png new file mode 100755 index 0000000..63050ba Binary files /dev/null and b/grub-config/themes/artix/menu_e.png differ diff --git a/grub-config/themes/artix/slider_c.png b/grub-config/themes/artix/slider_c.png new file mode 100755 index 0000000..70a6621 Binary files /dev/null and b/grub-config/themes/artix/slider_c.png differ diff --git a/grub-config/themes/artix/slider_n.png b/grub-config/themes/artix/slider_n.png new file mode 100755 index 0000000..4d5af0c Binary files /dev/null and b/grub-config/themes/artix/slider_n.png differ diff --git a/grub-config/themes/artix/slider_s.png b/grub-config/themes/artix/slider_s.png new file mode 100755 index 0000000..ca4d436 Binary files /dev/null and b/grub-config/themes/artix/slider_s.png differ diff --git a/grub-config/themes/artix/theme.txt b/grub-config/themes/artix/theme.txt new file mode 100755 index 0000000..3743b1d --- /dev/null +++ b/grub-config/themes/artix/theme.txt @@ -0,0 +1,36 @@ +message-font: "u_vga16 16" +message-color: "#fff" +message-bg-color: "#000" +terminal-font: "u_vga16 16" +desktop-image: "background.png" +title-text: "" + ++ boot_menu { + left = 15% + top = 20% + width = 75% + height = 60% + item_font = "u_vga16 16" + item_color = "#f4f4f4" + selected_item_font = "u_vga16 16" + selected_item_color= "#62c0f8" + selected_item_pixmap_style= "highlight_*.png" + icon_height = 28 + icon_width = 28 + item_height = 32 + item_padding = 0 + item_icon_space = 32 + item_spacing = 0 + scrollbar = true + scrollbar_width = 32 + scrollbar_thumb = "slider_*.png" + menu_pixmap_style = "menu_*.png" +} + ++ image { + left = 0% + top = 0% + width = 20% + height = 20% + file = "logo.png" +} diff --git a/grub-config/themes/artix/u_vga16_16.pf2 b/grub-config/themes/artix/u_vga16_16.pf2 new file mode 100755 index 0000000..11d0c47 Binary files /dev/null and b/grub-config/themes/artix/u_vga16_16.pf2 differ diff --git a/grub-config/themes/artix/userpass.png b/grub-config/themes/artix/userpass.png new file mode 100755 index 0000000..a74b3d8 Binary files /dev/null and b/grub-config/themes/artix/userpass.png differ diff --git a/grub-config/themes/breeze/Hack-12.pf2 b/grub-config/themes/breeze/Hack-12.pf2 new file mode 100755 index 0000000..227fdb2 Binary files /dev/null and b/grub-config/themes/breeze/Hack-12.pf2 differ diff --git a/grub-config/themes/breeze/Hack-14.pf2 b/grub-config/themes/breeze/Hack-14.pf2 new file mode 100755 index 0000000..1b27a36 Binary files /dev/null and b/grub-config/themes/breeze/Hack-14.pf2 differ diff --git a/grub-config/themes/breeze/Hack-16.pf2 b/grub-config/themes/breeze/Hack-16.pf2 new file mode 100755 index 0000000..989edd6 Binary files /dev/null and b/grub-config/themes/breeze/Hack-16.pf2 differ diff --git a/grub-config/themes/breeze/Hack-18.pf2 b/grub-config/themes/breeze/Hack-18.pf2 new file mode 100755 index 0000000..ff18cbe Binary files /dev/null and b/grub-config/themes/breeze/Hack-18.pf2 differ diff --git a/grub-config/themes/breeze/Hack-20.pf2 b/grub-config/themes/breeze/Hack-20.pf2 new file mode 100755 index 0000000..8669f5e Binary files /dev/null and b/grub-config/themes/breeze/Hack-20.pf2 differ diff --git a/grub-config/themes/breeze/Hack-22.pf2 b/grub-config/themes/breeze/Hack-22.pf2 new file mode 100755 index 0000000..fa3d7a2 Binary files /dev/null and b/grub-config/themes/breeze/Hack-22.pf2 differ diff --git a/grub-config/themes/breeze/Hack-24.pf2 b/grub-config/themes/breeze/Hack-24.pf2 new file mode 100755 index 0000000..57a4638 Binary files /dev/null and b/grub-config/themes/breeze/Hack-24.pf2 differ diff --git a/grub-config/themes/breeze/Hack-32.pf2 b/grub-config/themes/breeze/Hack-32.pf2 new file mode 100755 index 0000000..ed5714d Binary files /dev/null and b/grub-config/themes/breeze/Hack-32.pf2 differ diff --git a/grub-config/themes/breeze/background.png b/grub-config/themes/breeze/background.png new file mode 100755 index 0000000..5ce815a Binary files /dev/null and b/grub-config/themes/breeze/background.png differ diff --git a/grub-config/themes/breeze/boot_menu_c.png b/grub-config/themes/breeze/boot_menu_c.png new file mode 100755 index 0000000..75c165b Binary files /dev/null and b/grub-config/themes/breeze/boot_menu_c.png differ diff --git a/grub-config/themes/breeze/boot_menu_e.png b/grub-config/themes/breeze/boot_menu_e.png new file mode 100755 index 0000000..d4c7421 Binary files /dev/null and b/grub-config/themes/breeze/boot_menu_e.png differ diff --git a/grub-config/themes/breeze/boot_menu_n.png b/grub-config/themes/breeze/boot_menu_n.png new file mode 100755 index 0000000..5af3469 Binary files /dev/null and b/grub-config/themes/breeze/boot_menu_n.png differ diff --git a/grub-config/themes/breeze/boot_menu_ne.png b/grub-config/themes/breeze/boot_menu_ne.png new file mode 100755 index 0000000..8757868 Binary files /dev/null and b/grub-config/themes/breeze/boot_menu_ne.png differ diff --git a/grub-config/themes/breeze/boot_menu_nw.png b/grub-config/themes/breeze/boot_menu_nw.png new file mode 100755 index 0000000..8757868 Binary files /dev/null and b/grub-config/themes/breeze/boot_menu_nw.png differ diff --git a/grub-config/themes/breeze/boot_menu_s.png b/grub-config/themes/breeze/boot_menu_s.png new file mode 100755 index 0000000..6ba2734 Binary files /dev/null and b/grub-config/themes/breeze/boot_menu_s.png differ diff --git a/grub-config/themes/breeze/boot_menu_se.png b/grub-config/themes/breeze/boot_menu_se.png new file mode 100755 index 0000000..959b609 Binary files /dev/null and b/grub-config/themes/breeze/boot_menu_se.png differ diff --git a/grub-config/themes/breeze/boot_menu_sw.png b/grub-config/themes/breeze/boot_menu_sw.png new file mode 100755 index 0000000..959b609 Binary files /dev/null and b/grub-config/themes/breeze/boot_menu_sw.png differ diff --git a/grub-config/themes/breeze/boot_menu_w.png b/grub-config/themes/breeze/boot_menu_w.png new file mode 100755 index 0000000..d4c7421 Binary files /dev/null and b/grub-config/themes/breeze/boot_menu_w.png differ diff --git a/grub-config/themes/breeze/icons/android-x86.png b/grub-config/themes/breeze/icons/android-x86.png new file mode 100755 index 0000000..15f5ae6 Binary files /dev/null and b/grub-config/themes/breeze/icons/android-x86.png differ diff --git a/grub-config/themes/breeze/icons/android.png b/grub-config/themes/breeze/icons/android.png new file mode 100755 index 0000000..15f5ae6 Binary files /dev/null and b/grub-config/themes/breeze/icons/android.png differ diff --git a/grub-config/themes/breeze/icons/arch.png b/grub-config/themes/breeze/icons/arch.png new file mode 100755 index 0000000..69284c7 Binary files /dev/null and b/grub-config/themes/breeze/icons/arch.png differ diff --git a/grub-config/themes/breeze/icons/cd.png b/grub-config/themes/breeze/icons/cd.png new file mode 100755 index 0000000..bba25cb Binary files /dev/null and b/grub-config/themes/breeze/icons/cd.png differ diff --git a/grub-config/themes/breeze/icons/chakra.png b/grub-config/themes/breeze/icons/chakra.png new file mode 100755 index 0000000..7b8b663 Binary files /dev/null and b/grub-config/themes/breeze/icons/chakra.png differ diff --git a/grub-config/themes/breeze/icons/debian.png b/grub-config/themes/breeze/icons/debian.png new file mode 100755 index 0000000..bd9ce19 Binary files /dev/null and b/grub-config/themes/breeze/icons/debian.png differ diff --git a/grub-config/themes/breeze/icons/deepin.png b/grub-config/themes/breeze/icons/deepin.png new file mode 100755 index 0000000..6249208 Binary files /dev/null and b/grub-config/themes/breeze/icons/deepin.png differ diff --git a/grub-config/themes/breeze/icons/devuan.png b/grub-config/themes/breeze/icons/devuan.png new file mode 100755 index 0000000..c552d6f Binary files /dev/null and b/grub-config/themes/breeze/icons/devuan.png differ diff --git a/grub-config/themes/breeze/icons/dragonflybsd.png b/grub-config/themes/breeze/icons/dragonflybsd.png new file mode 100755 index 0000000..c0c37d1 Binary files /dev/null and b/grub-config/themes/breeze/icons/dragonflybsd.png differ diff --git a/grub-config/themes/breeze/icons/dvd.png b/grub-config/themes/breeze/icons/dvd.png new file mode 100755 index 0000000..bba25cb Binary files /dev/null and b/grub-config/themes/breeze/icons/dvd.png differ diff --git a/grub-config/themes/breeze/icons/elementary.png b/grub-config/themes/breeze/icons/elementary.png new file mode 100755 index 0000000..ab2c5f1 Binary files /dev/null and b/grub-config/themes/breeze/icons/elementary.png differ diff --git a/grub-config/themes/breeze/icons/elementaryos.png b/grub-config/themes/breeze/icons/elementaryos.png new file mode 100755 index 0000000..ab2c5f1 Binary files /dev/null and b/grub-config/themes/breeze/icons/elementaryos.png differ diff --git a/grub-config/themes/breeze/icons/fedora.png b/grub-config/themes/breeze/icons/fedora.png new file mode 100755 index 0000000..5c827ed Binary files /dev/null and b/grub-config/themes/breeze/icons/fedora.png differ diff --git a/grub-config/themes/breeze/icons/freebsd.png b/grub-config/themes/breeze/icons/freebsd.png new file mode 100755 index 0000000..a7d20ab Binary files /dev/null and b/grub-config/themes/breeze/icons/freebsd.png differ diff --git a/grub-config/themes/breeze/icons/gentoo.png b/grub-config/themes/breeze/icons/gentoo.png new file mode 100755 index 0000000..3515b56 Binary files /dev/null and b/grub-config/themes/breeze/icons/gentoo.png differ diff --git a/grub-config/themes/breeze/icons/gnu-linux.png b/grub-config/themes/breeze/icons/gnu-linux.png new file mode 100755 index 0000000..2868364 Binary files /dev/null and b/grub-config/themes/breeze/icons/gnu-linux.png differ diff --git a/grub-config/themes/breeze/icons/guix.png b/grub-config/themes/breeze/icons/guix.png new file mode 100755 index 0000000..66d1959 Binary files /dev/null and b/grub-config/themes/breeze/icons/guix.png differ diff --git a/grub-config/themes/breeze/icons/guixsd.png b/grub-config/themes/breeze/icons/guixsd.png new file mode 100755 index 0000000..66d1959 Binary files /dev/null and b/grub-config/themes/breeze/icons/guixsd.png differ diff --git a/grub-config/themes/breeze/icons/hard-drive.png b/grub-config/themes/breeze/icons/hard-drive.png new file mode 100755 index 0000000..98f72f7 Binary files /dev/null and b/grub-config/themes/breeze/icons/hard-drive.png differ diff --git a/grub-config/themes/breeze/icons/harddrive.png b/grub-config/themes/breeze/icons/harddrive.png new file mode 100755 index 0000000..98f72f7 Binary files /dev/null and b/grub-config/themes/breeze/icons/harddrive.png differ diff --git a/grub-config/themes/breeze/icons/hdd.png b/grub-config/themes/breeze/icons/hdd.png new file mode 100755 index 0000000..98f72f7 Binary files /dev/null and b/grub-config/themes/breeze/icons/hdd.png differ diff --git a/grub-config/themes/breeze/icons/iso.png b/grub-config/themes/breeze/icons/iso.png new file mode 100755 index 0000000..bba25cb Binary files /dev/null and b/grub-config/themes/breeze/icons/iso.png differ diff --git a/grub-config/themes/breeze/icons/kaos.png b/grub-config/themes/breeze/icons/kaos.png new file mode 100755 index 0000000..40e3748 Binary files /dev/null and b/grub-config/themes/breeze/icons/kaos.png differ diff --git a/grub-config/themes/breeze/icons/kubuntu.png b/grub-config/themes/breeze/icons/kubuntu.png new file mode 100755 index 0000000..bc47d2a Binary files /dev/null and b/grub-config/themes/breeze/icons/kubuntu.png differ diff --git a/grub-config/themes/breeze/icons/linux.png b/grub-config/themes/breeze/icons/linux.png new file mode 100755 index 0000000..2868364 Binary files /dev/null and b/grub-config/themes/breeze/icons/linux.png differ diff --git a/grub-config/themes/breeze/icons/linuxmint.png b/grub-config/themes/breeze/icons/linuxmint.png new file mode 100755 index 0000000..899003b Binary files /dev/null and b/grub-config/themes/breeze/icons/linuxmint.png differ diff --git a/grub-config/themes/breeze/icons/lubuntu.png b/grub-config/themes/breeze/icons/lubuntu.png new file mode 100755 index 0000000..f4d22a4 Binary files /dev/null and b/grub-config/themes/breeze/icons/lubuntu.png differ diff --git a/grub-config/themes/breeze/icons/macos.png b/grub-config/themes/breeze/icons/macos.png new file mode 100755 index 0000000..5838a11 Binary files /dev/null and b/grub-config/themes/breeze/icons/macos.png differ diff --git a/grub-config/themes/breeze/icons/macosx.png b/grub-config/themes/breeze/icons/macosx.png new file mode 100755 index 0000000..5838a11 Binary files /dev/null and b/grub-config/themes/breeze/icons/macosx.png differ diff --git a/grub-config/themes/breeze/icons/mageia.png b/grub-config/themes/breeze/icons/mageia.png new file mode 100755 index 0000000..8d2b678 Binary files /dev/null and b/grub-config/themes/breeze/icons/mageia.png differ diff --git a/grub-config/themes/breeze/icons/manjaro.png b/grub-config/themes/breeze/icons/manjaro.png new file mode 100755 index 0000000..6abeba2 Binary files /dev/null and b/grub-config/themes/breeze/icons/manjaro.png differ diff --git a/grub-config/themes/breeze/icons/memtest.png b/grub-config/themes/breeze/icons/memtest.png new file mode 100755 index 0000000..42b19c1 Binary files /dev/null and b/grub-config/themes/breeze/icons/memtest.png differ diff --git a/grub-config/themes/breeze/icons/memtest86.png b/grub-config/themes/breeze/icons/memtest86.png new file mode 100755 index 0000000..42b19c1 Binary files /dev/null and b/grub-config/themes/breeze/icons/memtest86.png differ diff --git a/grub-config/themes/breeze/icons/neon.png b/grub-config/themes/breeze/icons/neon.png new file mode 100755 index 0000000..1861c5a Binary files /dev/null and b/grub-config/themes/breeze/icons/neon.png differ diff --git a/grub-config/themes/breeze/icons/netbsd.png b/grub-config/themes/breeze/icons/netbsd.png new file mode 100755 index 0000000..b63ecf7 Binary files /dev/null and b/grub-config/themes/breeze/icons/netbsd.png differ diff --git a/grub-config/themes/breeze/icons/nixos.png b/grub-config/themes/breeze/icons/nixos.png new file mode 100755 index 0000000..08c8e1e Binary files /dev/null and b/grub-config/themes/breeze/icons/nixos.png differ diff --git a/grub-config/themes/breeze/icons/openbsd.png b/grub-config/themes/breeze/icons/openbsd.png new file mode 100755 index 0000000..e26db84 Binary files /dev/null and b/grub-config/themes/breeze/icons/openbsd.png differ diff --git a/grub-config/themes/breeze/icons/opensuse.png b/grub-config/themes/breeze/icons/opensuse.png new file mode 100755 index 0000000..4dc9299 Binary files /dev/null and b/grub-config/themes/breeze/icons/opensuse.png differ diff --git a/grub-config/themes/breeze/icons/optical.png b/grub-config/themes/breeze/icons/optical.png new file mode 100755 index 0000000..bba25cb Binary files /dev/null and b/grub-config/themes/breeze/icons/optical.png differ diff --git a/grub-config/themes/breeze/icons/os.png b/grub-config/themes/breeze/icons/os.png new file mode 100755 index 0000000..2868364 Binary files /dev/null and b/grub-config/themes/breeze/icons/os.png differ diff --git a/grub-config/themes/breeze/icons/osx.png b/grub-config/themes/breeze/icons/osx.png new file mode 100755 index 0000000..5838a11 Binary files /dev/null and b/grub-config/themes/breeze/icons/osx.png differ diff --git a/grub-config/themes/breeze/icons/poweroff.png b/grub-config/themes/breeze/icons/poweroff.png new file mode 100755 index 0000000..a92bfa0 Binary files /dev/null and b/grub-config/themes/breeze/icons/poweroff.png differ diff --git a/grub-config/themes/breeze/icons/puppy.png b/grub-config/themes/breeze/icons/puppy.png new file mode 100755 index 0000000..b966e9a Binary files /dev/null and b/grub-config/themes/breeze/icons/puppy.png differ diff --git a/grub-config/themes/breeze/icons/reactos.png b/grub-config/themes/breeze/icons/reactos.png new file mode 100755 index 0000000..7af28b3 Binary files /dev/null and b/grub-config/themes/breeze/icons/reactos.png differ diff --git a/grub-config/themes/breeze/icons/reboot.png b/grub-config/themes/breeze/icons/reboot.png new file mode 100755 index 0000000..ba41c4d Binary files /dev/null and b/grub-config/themes/breeze/icons/reboot.png differ diff --git a/grub-config/themes/breeze/icons/recovery.png b/grub-config/themes/breeze/icons/recovery.png new file mode 100755 index 0000000..d8f634e Binary files /dev/null and b/grub-config/themes/breeze/icons/recovery.png differ diff --git a/grub-config/themes/breeze/icons/redhat.png b/grub-config/themes/breeze/icons/redhat.png new file mode 100755 index 0000000..20ea0be Binary files /dev/null and b/grub-config/themes/breeze/icons/redhat.png differ diff --git a/grub-config/themes/breeze/icons/restart.png b/grub-config/themes/breeze/icons/restart.png new file mode 100755 index 0000000..ba41c4d Binary files /dev/null and b/grub-config/themes/breeze/icons/restart.png differ diff --git a/grub-config/themes/breeze/icons/sabayon.png b/grub-config/themes/breeze/icons/sabayon.png new file mode 100755 index 0000000..a11535c Binary files /dev/null and b/grub-config/themes/breeze/icons/sabayon.png differ diff --git a/grub-config/themes/breeze/icons/shutdown.png b/grub-config/themes/breeze/icons/shutdown.png new file mode 100755 index 0000000..a92bfa0 Binary files /dev/null and b/grub-config/themes/breeze/icons/shutdown.png differ diff --git a/grub-config/themes/breeze/icons/slackware.png b/grub-config/themes/breeze/icons/slackware.png new file mode 100755 index 0000000..5a54e8f Binary files /dev/null and b/grub-config/themes/breeze/icons/slackware.png differ diff --git a/grub-config/themes/breeze/icons/solus.png b/grub-config/themes/breeze/icons/solus.png new file mode 100755 index 0000000..75d35c5 Binary files /dev/null and b/grub-config/themes/breeze/icons/solus.png differ diff --git a/grub-config/themes/breeze/icons/solusos.png b/grub-config/themes/breeze/icons/solusos.png new file mode 100755 index 0000000..75d35c5 Binary files /dev/null and b/grub-config/themes/breeze/icons/solusos.png differ diff --git a/grub-config/themes/breeze/icons/steam.png b/grub-config/themes/breeze/icons/steam.png new file mode 100755 index 0000000..3a5385b Binary files /dev/null and b/grub-config/themes/breeze/icons/steam.png differ diff --git a/grub-config/themes/breeze/icons/steamos.png b/grub-config/themes/breeze/icons/steamos.png new file mode 100755 index 0000000..3a5385b Binary files /dev/null and b/grub-config/themes/breeze/icons/steamos.png differ diff --git a/grub-config/themes/breeze/icons/suse.png b/grub-config/themes/breeze/icons/suse.png new file mode 100755 index 0000000..4dc9299 Binary files /dev/null and b/grub-config/themes/breeze/icons/suse.png differ diff --git a/grub-config/themes/breeze/icons/ubuntu-budgie.png b/grub-config/themes/breeze/icons/ubuntu-budgie.png new file mode 100755 index 0000000..6ecb8ba Binary files /dev/null and b/grub-config/themes/breeze/icons/ubuntu-budgie.png differ diff --git a/grub-config/themes/breeze/icons/ubuntu-mate.png b/grub-config/themes/breeze/icons/ubuntu-mate.png new file mode 100755 index 0000000..73bf5ca Binary files /dev/null and b/grub-config/themes/breeze/icons/ubuntu-mate.png differ diff --git a/grub-config/themes/breeze/icons/ubuntu.png b/grub-config/themes/breeze/icons/ubuntu.png new file mode 100755 index 0000000..4aa6923 Binary files /dev/null and b/grub-config/themes/breeze/icons/ubuntu.png differ diff --git a/grub-config/themes/breeze/icons/ubuntu_budgie.png b/grub-config/themes/breeze/icons/ubuntu_budgie.png new file mode 100755 index 0000000..6ecb8ba Binary files /dev/null and b/grub-config/themes/breeze/icons/ubuntu_budgie.png differ diff --git a/grub-config/themes/breeze/icons/ubuntu_mate.png b/grub-config/themes/breeze/icons/ubuntu_mate.png new file mode 100755 index 0000000..73bf5ca Binary files /dev/null and b/grub-config/themes/breeze/icons/ubuntu_mate.png differ diff --git a/grub-config/themes/breeze/icons/unknown.png b/grub-config/themes/breeze/icons/unknown.png new file mode 100755 index 0000000..98f72f7 Binary files /dev/null and b/grub-config/themes/breeze/icons/unknown.png differ diff --git a/grub-config/themes/breeze/icons/usb.png b/grub-config/themes/breeze/icons/usb.png new file mode 100755 index 0000000..b187913 Binary files /dev/null and b/grub-config/themes/breeze/icons/usb.png differ diff --git a/grub-config/themes/breeze/icons/windows.png b/grub-config/themes/breeze/icons/windows.png new file mode 100755 index 0000000..db35776 Binary files /dev/null and b/grub-config/themes/breeze/icons/windows.png differ diff --git a/grub-config/themes/breeze/icons/x86android.png b/grub-config/themes/breeze/icons/x86android.png new file mode 100755 index 0000000..15f5ae6 Binary files /dev/null and b/grub-config/themes/breeze/icons/x86android.png differ diff --git a/grub-config/themes/breeze/icons/xubuntu.png b/grub-config/themes/breeze/icons/xubuntu.png new file mode 100755 index 0000000..f3ee2f9 Binary files /dev/null and b/grub-config/themes/breeze/icons/xubuntu.png differ diff --git a/grub-config/themes/breeze/icons/zorin.png b/grub-config/themes/breeze/icons/zorin.png new file mode 100755 index 0000000..3268cd7 Binary files /dev/null and b/grub-config/themes/breeze/icons/zorin.png differ diff --git a/grub-config/themes/breeze/icons/zorinos.png b/grub-config/themes/breeze/icons/zorinos.png new file mode 100755 index 0000000..3268cd7 Binary files /dev/null and b/grub-config/themes/breeze/icons/zorinos.png differ diff --git a/grub-config/themes/breeze/password_field.png b/grub-config/themes/breeze/password_field.png new file mode 100755 index 0000000..d40aaf2 Binary files /dev/null and b/grub-config/themes/breeze/password_field.png differ diff --git a/grub-config/themes/breeze/progress_bar_c.png b/grub-config/themes/breeze/progress_bar_c.png new file mode 100755 index 0000000..6ddf462 Binary files /dev/null and b/grub-config/themes/breeze/progress_bar_c.png differ diff --git a/grub-config/themes/breeze/progress_highlight_c.png b/grub-config/themes/breeze/progress_highlight_c.png new file mode 100755 index 0000000..4a41750 Binary files /dev/null and b/grub-config/themes/breeze/progress_highlight_c.png differ diff --git a/grub-config/themes/breeze/select_c.png b/grub-config/themes/breeze/select_c.png new file mode 100755 index 0000000..245259a Binary files /dev/null and b/grub-config/themes/breeze/select_c.png differ diff --git a/grub-config/themes/breeze/slider_c.png b/grub-config/themes/breeze/slider_c.png new file mode 100755 index 0000000..7d630fd Binary files /dev/null and b/grub-config/themes/breeze/slider_c.png differ diff --git a/grub-config/themes/breeze/slider_n.png b/grub-config/themes/breeze/slider_n.png new file mode 100755 index 0000000..41482c9 Binary files /dev/null and b/grub-config/themes/breeze/slider_n.png differ diff --git a/grub-config/themes/breeze/slider_s.png b/grub-config/themes/breeze/slider_s.png new file mode 100755 index 0000000..17adc2a Binary files /dev/null and b/grub-config/themes/breeze/slider_s.png differ diff --git a/grub-config/themes/breeze/terminal_c.png b/grub-config/themes/breeze/terminal_c.png new file mode 100755 index 0000000..75c165b Binary files /dev/null and b/grub-config/themes/breeze/terminal_c.png differ diff --git a/grub-config/themes/breeze/terminal_e.png b/grub-config/themes/breeze/terminal_e.png new file mode 100755 index 0000000..d4c7421 Binary files /dev/null and b/grub-config/themes/breeze/terminal_e.png differ diff --git a/grub-config/themes/breeze/terminal_n.png b/grub-config/themes/breeze/terminal_n.png new file mode 100755 index 0000000..5af3469 Binary files /dev/null and b/grub-config/themes/breeze/terminal_n.png differ diff --git a/grub-config/themes/breeze/terminal_ne.png b/grub-config/themes/breeze/terminal_ne.png new file mode 100755 index 0000000..8757868 Binary files /dev/null and b/grub-config/themes/breeze/terminal_ne.png differ diff --git a/grub-config/themes/breeze/terminal_nw.png b/grub-config/themes/breeze/terminal_nw.png new file mode 100755 index 0000000..8757868 Binary files /dev/null and b/grub-config/themes/breeze/terminal_nw.png differ diff --git a/grub-config/themes/breeze/terminal_s.png b/grub-config/themes/breeze/terminal_s.png new file mode 100755 index 0000000..e84e0de Binary files /dev/null and b/grub-config/themes/breeze/terminal_s.png differ diff --git a/grub-config/themes/breeze/terminal_se.png b/grub-config/themes/breeze/terminal_se.png new file mode 100755 index 0000000..d4772f9 Binary files /dev/null and b/grub-config/themes/breeze/terminal_se.png differ diff --git a/grub-config/themes/breeze/terminal_sw.png b/grub-config/themes/breeze/terminal_sw.png new file mode 100755 index 0000000..d4772f9 Binary files /dev/null and b/grub-config/themes/breeze/terminal_sw.png differ diff --git a/grub-config/themes/breeze/terminal_w.png b/grub-config/themes/breeze/terminal_w.png new file mode 100755 index 0000000..d4c7421 Binary files /dev/null and b/grub-config/themes/breeze/terminal_w.png differ diff --git a/grub-config/themes/breeze/theme.txt b/grub-config/themes/breeze/theme.txt new file mode 100755 index 0000000..a5b8b84 --- /dev/null +++ b/grub-config/themes/breeze/theme.txt @@ -0,0 +1,56 @@ +# Breeze GRUB theme +# +# 2018, Gustavo Castro < gustawho [at] disroot [dot] org > +# +# Some rights reserved. This work is licensed under a Creative Commons Attribution-ShareAlike 3.0 License. +# + +desktop-image: "background.png" + +# colors are taken from the breeze default theme +title-text: "Select a boot option" +title-font: "Hack 18" +title-color: "#eff0f1" +message-font: "Hack 18" +message-color: "#eff0f1" +terminal-font: "Hack 18" +terminal-box: "terminal_*.png" + ++ boot_menu { + left = 20% + width = 60% + top = 33% + height = 33% + + menu_pixmap_style = "boot_menu_*.png" + + item_font = "Hack 18" + # breeze inactive text color + item_color = "#7f8c8d" + item_height = 44 + item_icon_space = 8 + item_spacing = 2 + + selected_item_font = "Hack 18" + selected_item_color= "#eff0f1" + selected_item_pixmap_style = "select_*.png" + + icon_height = 48 + icon_width = 48 + + scrollbar = true + scrollbar_width = 20 + scrollbar_thumb = "slider_*.png" +} + ++ progress_bar { + id = "__timeout__" + left = 33% + width = 33% + top = 73% + height = 8 + show_text = false + fg_color = #3daee9 + bg_color = #31363b + border_color = #4d4d4d +} diff --git a/grub-config/themes/poly-light/LICENSE b/grub-config/themes/poly-light/LICENSE new file mode 100755 index 0000000..68280df --- /dev/null +++ b/grub-config/themes/poly-light/LICENSE @@ -0,0 +1,21 @@ +MIT License + +Copyright (c) 2017 Andrei Shevchuk + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. diff --git a/grub-config/themes/poly-light/README.md b/grub-config/themes/poly-light/README.md new file mode 100755 index 0000000..593f58e --- /dev/null +++ b/grub-config/themes/poly-light/README.md @@ -0,0 +1,27 @@ +## Poly light GRUB theme + +Supported languages: Chinese (simplified), English, French, German, Norwegian, Portuguese, Russian, Spanish, Ukrainian + +![](https://i.imgur.com/9VBf1Nl.gif) + +Screenshot is intentionally low res to fit GitHub UI. See also: [1280×720](https://i.imgur.com/HT4ivRY.png), [1920×1080](https://i.imgur.com/n8jBLsj.png) + +--- + +### Installation / update + +1. **Secure way:** + - Download install script: + `wget -P /tmp https://github.com/shvchk/poly-light/raw/master/install.sh` + - Review install script at `/tmp/install.sh` + - Run it: `bash /tmp/install.sh` + +2. **Easier, less secure way** — just download and run install script: + `wget -O - https://github.com/shvchk/poly-light/raw/master/install.sh | bash` + +--- + +### See also + +- [Poly dark GRUB theme](https://github.com/shvchk/poly-dark) +- [Fallout GRUB theme](https://github.com/shvchk/fallout-grub-theme) diff --git a/grub-config/themes/poly-light/background.png b/grub-config/themes/poly-light/background.png new file mode 100755 index 0000000..bd54b67 Binary files /dev/null and b/grub-config/themes/poly-light/background.png differ diff --git a/grub-config/themes/poly-light/icons/antergos.png b/grub-config/themes/poly-light/icons/antergos.png new file mode 100755 index 0000000..0941918 Binary files /dev/null and b/grub-config/themes/poly-light/icons/antergos.png differ diff --git a/grub-config/themes/poly-light/icons/arch.png b/grub-config/themes/poly-light/icons/arch.png new file mode 100755 index 0000000..60ef6ec Binary files /dev/null and b/grub-config/themes/poly-light/icons/arch.png differ diff --git a/grub-config/themes/poly-light/icons/chakra.png b/grub-config/themes/poly-light/icons/chakra.png new file mode 100755 index 0000000..48a1806 Binary files /dev/null and b/grub-config/themes/poly-light/icons/chakra.png differ diff --git a/grub-config/themes/poly-light/icons/debian.png b/grub-config/themes/poly-light/icons/debian.png new file mode 100755 index 0000000..4847dc6 Binary files /dev/null and b/grub-config/themes/poly-light/icons/debian.png differ diff --git a/grub-config/themes/poly-light/icons/deepin.png b/grub-config/themes/poly-light/icons/deepin.png new file mode 100755 index 0000000..447cec9 Binary files /dev/null and b/grub-config/themes/poly-light/icons/deepin.png differ diff --git a/grub-config/themes/poly-light/icons/elementary.png b/grub-config/themes/poly-light/icons/elementary.png new file mode 100755 index 0000000..402be87 Binary files /dev/null and b/grub-config/themes/poly-light/icons/elementary.png differ diff --git a/grub-config/themes/poly-light/icons/fedora.png b/grub-config/themes/poly-light/icons/fedora.png new file mode 100755 index 0000000..4e4d3f4 Binary files /dev/null and b/grub-config/themes/poly-light/icons/fedora.png differ diff --git a/grub-config/themes/poly-light/icons/gentoo.png b/grub-config/themes/poly-light/icons/gentoo.png new file mode 100755 index 0000000..3d69b63 Binary files /dev/null and b/grub-config/themes/poly-light/icons/gentoo.png differ diff --git a/grub-config/themes/poly-light/icons/gnu-linux.png b/grub-config/themes/poly-light/icons/gnu-linux.png new file mode 100755 index 0000000..1861951 Binary files /dev/null and b/grub-config/themes/poly-light/icons/gnu-linux.png differ diff --git a/grub-config/themes/poly-light/icons/kali.png b/grub-config/themes/poly-light/icons/kali.png new file mode 100755 index 0000000..67f2100 Binary files /dev/null and b/grub-config/themes/poly-light/icons/kali.png differ diff --git a/grub-config/themes/poly-light/icons/kaos.png b/grub-config/themes/poly-light/icons/kaos.png new file mode 100755 index 0000000..44d4694 Binary files /dev/null and b/grub-config/themes/poly-light/icons/kaos.png differ diff --git a/grub-config/themes/poly-light/icons/korora.png b/grub-config/themes/poly-light/icons/korora.png new file mode 100755 index 0000000..4b83e7a Binary files /dev/null and b/grub-config/themes/poly-light/icons/korora.png differ diff --git a/grub-config/themes/poly-light/icons/kubuntu.png b/grub-config/themes/poly-light/icons/kubuntu.png new file mode 100755 index 0000000..a02025f Binary files /dev/null and b/grub-config/themes/poly-light/icons/kubuntu.png differ diff --git a/grub-config/themes/poly-light/icons/lfs.png b/grub-config/themes/poly-light/icons/lfs.png new file mode 100755 index 0000000..5bb22f6 Binary files /dev/null and b/grub-config/themes/poly-light/icons/lfs.png differ diff --git a/grub-config/themes/poly-light/icons/linux-mint.png b/grub-config/themes/poly-light/icons/linux-mint.png new file mode 100755 index 0000000..dc07550 Binary files /dev/null and b/grub-config/themes/poly-light/icons/linux-mint.png differ diff --git a/grub-config/themes/poly-light/icons/lubuntu.png b/grub-config/themes/poly-light/icons/lubuntu.png new file mode 100755 index 0000000..18f6526 Binary files /dev/null and b/grub-config/themes/poly-light/icons/lubuntu.png differ diff --git a/grub-config/themes/poly-light/icons/mageia.png b/grub-config/themes/poly-light/icons/mageia.png new file mode 100755 index 0000000..3ea5067 Binary files /dev/null and b/grub-config/themes/poly-light/icons/mageia.png differ diff --git a/grub-config/themes/poly-light/icons/manjaro.png b/grub-config/themes/poly-light/icons/manjaro.png new file mode 100755 index 0000000..147ccf9 Binary files /dev/null and b/grub-config/themes/poly-light/icons/manjaro.png differ diff --git a/grub-config/themes/poly-light/icons/opensuse.png b/grub-config/themes/poly-light/icons/opensuse.png new file mode 100755 index 0000000..9f4dec0 Binary files /dev/null and b/grub-config/themes/poly-light/icons/opensuse.png differ diff --git a/grub-config/themes/poly-light/icons/siduction.png b/grub-config/themes/poly-light/icons/siduction.png new file mode 100755 index 0000000..b6fb5c5 Binary files /dev/null and b/grub-config/themes/poly-light/icons/siduction.png differ diff --git a/grub-config/themes/poly-light/icons/ubuntu.png b/grub-config/themes/poly-light/icons/ubuntu.png new file mode 100755 index 0000000..abe5170 Binary files /dev/null and b/grub-config/themes/poly-light/icons/ubuntu.png differ diff --git a/grub-config/themes/poly-light/icons/windows.png b/grub-config/themes/poly-light/icons/windows.png new file mode 100755 index 0000000..a2eecd1 Binary files /dev/null and b/grub-config/themes/poly-light/icons/windows.png differ diff --git a/grub-config/themes/poly-light/icons/xubuntu.png b/grub-config/themes/poly-light/icons/xubuntu.png new file mode 100755 index 0000000..1878bd0 Binary files /dev/null and b/grub-config/themes/poly-light/icons/xubuntu.png differ diff --git a/grub-config/themes/poly-light/install.sh b/grub-config/themes/poly-light/install.sh new file mode 100755 index 0000000..3762242 --- /dev/null +++ b/grub-config/themes/poly-light/install.sh @@ -0,0 +1,114 @@ +#! /usr/bin/env bash + +THEME='poly-light' +LANG='English' + +# Pre-authorise sudo +sudo echo + +# Select language, optional +declare -A LANGS=( + [Chinese]=zh_CN + [English]=EN + [French]=FR + [German]=DE + [Norwegian]=NO + [Portuguese]=PT + [Russian]=RU + [Spanish]=ES + [Ukrainian]=UA +) + +LANG_NAMES=($(echo ${!LANGS[*]} | tr ' ' '\n' | sort -n)) + +PS3='Please select language #: ' +select l in "${LANG_NAMES[@]}" +do + if [[ -v LANGS[$l] ]] + then + LANG=$l + break + else + echo 'No such language, try again' + fi +done < /dev/tty + +# Detect distro and set GRUB location and update method +GRUB_DIR='grub' +UPDATE_GRUB='' + +if [ -e /etc/os-release ]; then + + source /etc/os-release + + if [[ "$ID" =~ (debian|ubuntu|solus) || \ + "$ID_LIKE" =~ (debian|ubuntu) ]]; then + + UPDATE_GRUB='update-grub' + + elif [[ "$ID" =~ (arch|gentoo) || \ + "$ID_LIKE" =~ (archlinux|gentoo) ]]; then + + UPDATE_GRUB='grub-mkconfig -o /boot/grub/grub.cfg' + + elif [[ "$ID" =~ (centos|fedora|opensuse) || \ + "$ID_LIKE" =~ (fedora|rhel|suse) ]]; then + + GRUB_DIR='grub2' + UPDATE_GRUB='grub2-mkconfig -o /boot/grub2/grub.cfg' + fi +fi + + +echo 'Fetching theme archive' +wget https://github.com/shvchk/${THEME}/archive/master.zip + +echo 'Unpacking theme' +unzip master.zip + +if [[ "$LANG" != "English" ]] +then + echo "Changing language to ${LANG}" + sed -i -r -e '/^\s+# EN$/{n;s/^(\s*)/\1# /}' \ + -e '/^\s+# '"${LANGS[$LANG]}"'$/{n;s/^(\s*)#\s*/\1/}' ${THEME}-master/theme.txt +fi + +echo 'Creating GRUB themes directory' +sudo mkdir -p /boot/${GRUB_DIR}/themes/${THEME} + +echo 'Copying theme to GRUB themes directory' +sudo cp -r ${THEME}-master/* /boot/${GRUB_DIR}/themes/${THEME} + +echo 'Removing other themes from GRUB config' +sudo sed -i '/^GRUB_THEME=/d' /etc/default/grub + +echo 'Making sure GRUB uses graphical output' +sudo sed -i 's/^\(GRUB_TERMINAL\w*=.*\)/#\1/' /etc/default/grub + +echo 'Removing empty lines at the end of GRUB config' # optional +sudo sed -i -e :a -e '/^\n*$/{$d;N;};/\n$/ba' /etc/default/grub + +echo 'Adding new line to GRUB config just in case' # optional +echo | sudo tee -a /etc/default/grub + +echo 'Adding theme to GRUB config' +echo "GRUB_THEME=/boot/${GRUB_DIR}/themes/${THEME}/theme.txt" | sudo tee -a /etc/default/grub + +echo 'Removing theme installation files' +rm -rf master.zip ${THEME}-master + +echo 'Updating GRUB' +if [[ $UPDATE_GRUB ]]; then + eval sudo "$UPDATE_GRUB" +else + cat << ' EOF' + -------------------------------------------------------------------------------- + Cannot detect your distro, you will need to run `grub-mkconfig` (as root) manually. + + Common ways: + - Debian, Ubuntu, Solus and derivatives: `update-grub` or `grub-mkconfig -o /boot/grub/grub.cfg` + - RHEL, CentOS, Fedora, SUSE and derivatives: `grub2-mkconfig -o /boot/grub2/grub.cfg` + - Arch, Gentoo and derivatives: `grub-mkconfig -o /boot/grub/grub.cfg` + -------------------------------------------------------------------------------- + EOF +fi diff --git a/grub-config/themes/poly-light/item_c.png b/grub-config/themes/poly-light/item_c.png new file mode 100755 index 0000000..930463b Binary files /dev/null and b/grub-config/themes/poly-light/item_c.png differ diff --git a/grub-config/themes/poly-light/selected_item_c.png b/grub-config/themes/poly-light/selected_item_c.png new file mode 100755 index 0000000..59c31d6 Binary files /dev/null and b/grub-config/themes/poly-light/selected_item_c.png differ diff --git a/grub-config/themes/poly-light/terminal_box_c.png b/grub-config/themes/poly-light/terminal_box_c.png new file mode 100755 index 0000000..252d950 Binary files /dev/null and b/grub-config/themes/poly-light/terminal_box_c.png differ diff --git a/grub-config/themes/poly-light/theme.txt b/grub-config/themes/poly-light/theme.txt new file mode 100755 index 0000000..b444fca --- /dev/null +++ b/grub-config/themes/poly-light/theme.txt @@ -0,0 +1,83 @@ +# Global properties +title-text: "" +desktop-image: "background.png" +desktop-color: "#000000" +terminal-font: "Unifont Regular 18" +terminal-box: "terminal_box_*.png" +terminal-left: "0" +terminal-top: "0" +terminal-width: "100%" +terminal-height: "100%" +terminal-border: "0" + +# Boot menu ++ boot_menu { + left = 15% + top = 20% + width = 70% + height = 60% + item_font = "Unifont Regular 18" + item_color = "#777777" + selected_item_color = "#444444" + item_height = 40 + item_spacing = 4 + item_pixmap_style = "item_*.png" + selected_item_pixmap_style = "selected_item_*.png" +} + +# Countdown message ++ label { + left = 0 + top = 100%-48 + width = 100% + align = "center" + id = "__timeout__" + # DE + text = "Start in %d Sekunden." + # EN + # text = "Booting in %d seconds" + # ES + # text = "Arranque en% d segundos" + # FR + # text = "Démarrage automatique dans %d secondes" + # NO + # text = "Starter om %d sekunder" + # PT + # text = "Arranque automático dentro de %d segundos" + # RU + # text = "Загрузка выбранного пункта через %d сек." + # UA + # text = "Автоматичне завантаження розпочнеться через %d сек." + # zh_CN + # text = "在 %d 内启动" + color = "#777777" + font = "Unifont Regular 18" +} + +# Navigation keys hint ++ label { + left = 0 + top = 100%-24 + width = 100% + align = "center" + # DE + text = "System mit ↑ und ↓ auswählen und mit Enter bestätigen." + # EN + # text = "Use ↑ and ↓ keys to change selection, Enter to confirm" + # ES + # text = "Use las teclas ↑ y ↓ para cambiar la selección, Enter para confirmar" + # FR + # text = "Choisissez le système avec les flèches du clavier (↑ et ↓), puis validez avec la touche Enter (↲)" + # NO + # text = "Bruk ↑ og ↓ for å endre menyvalg, velg med Enter" + # PT + # text = "Use as teclas ↑ e ↓ para mudar a seleção, e ENTER para confirmar" + # RU + # text = "Используйте клавиши ↑ и ↓ для изменения выбора, Enter для подтверждения" + # UA + # text = "Використовуйте ↑ та ↓ для вибору, Enter для підтвердження" + # zh_CN + # text = "使用 ↑ 和 ↓ 键移动选择条,Enter 键确认" + color = "#777777" + font = "Unifont Regular 18" +} diff --git a/grub-config/themes/poly-light/unifont-regular-16.pf2 b/grub-config/themes/poly-light/unifont-regular-16.pf2 new file mode 100755 index 0000000..d178170 Binary files /dev/null and b/grub-config/themes/poly-light/unifont-regular-16.pf2 differ diff --git a/grub-config/themes/starfield/COPYING.CC-BY-SA-3.0 b/grub-config/themes/starfield/COPYING.CC-BY-SA-3.0 new file mode 100755 index 0000000..f7a1f15 --- /dev/null +++ b/grub-config/themes/starfield/COPYING.CC-BY-SA-3.0 @@ -0,0 +1,65 @@ + CREATIVE COMMONS CORPORATION IS NOT A LAW FIRM AND DOES NOT PROVIDE LEGAL SERVICES. DISTRIBUTION OF THIS LICENSE DOES NOT CREATE AN ATTORNEY-CLIENT RELATIONSHIP. CREATIVE COMMONS PROVIDES THIS INFORMATION ON AN "AS-IS" BASIS. CREATIVE COMMONS MAKES NO WARRANTIES REGARDING THE INFORMATION PROVIDED, AND DISCLAIMS LIABILITY FOR DAMAGES RESULTING FROM ITS USE. + +License + +THE WORK (AS DEFINED BELOW) IS PROVIDED UNDER THE TERMS OF THIS CREATIVE COMMONS PUBLIC LICENSE ("CCPL" OR "LICENSE"). THE WORK IS PROTECTED BY COPYRIGHT AND/OR OTHER APPLICABLE LAW. ANY USE OF THE WORK OTHER THAN AS AUTHORIZED UNDER THIS LICENSE OR COPYRIGHT LAW IS PROHIBITED. + +BY EXERCISING ANY RIGHTS TO THE WORK PROVIDED HERE, YOU ACCEPT AND AGREE TO BE BOUND BY THE TERMS OF THIS LICENSE. TO THE EXTENT THIS LICENSE MAY BE CONSIDERED TO BE A CONTRACT, THE LICENSOR GRANTS YOU THE RIGHTS CONTAINED HERE IN CONSIDERATION OF YOUR ACCEPTANCE OF SUCH TERMS AND CONDITIONS. + +1. Definitions + + "Adaptation" means a work based upon the Work, or upon the Work and other pre-existing works, such as a translation, adaptation, derivative work, arrangement of music or other alterations of a literary or artistic work, or phonogram or performance and includes cinematographic adaptations or any other form in which the Work may be recast, transformed, or adapted including in any form recognizably derived from the original, except that a work that constitutes a Collection will not be considered an Adaptation for the purpose of this License. For the avoidance of doubt, where the Work is a musical work, performance or phonogram, the synchronization of the Work in timed-relation with a moving image ("synching") will be considered an Adaptation for the purpose of this License. + "Collection" means a collection of literary or artistic works, such as encyclopedias and anthologies, or performances, phonograms or broadcasts, or other works or subject matter other than works listed in Section 1(f) below, which, by reason of the selection and arrangement of their contents, constitute intellectual creations, in which the Work is included in its entirety in unmodified form along with one or more other contributions, each constituting separate and independent works in themselves, which together are assembled into a collective whole. A work that constitutes a Collection will not be considered an Adaptation (as defined below) for the purposes of this License. + "Creative Commons Compatible License" means a license that is listed at http://creativecommons.org/compatiblelicenses that has been approved by Creative Commons as being essentially equivalent to this License, including, at a minimum, because that license: (i) contains terms that have the same purpose, meaning and effect as the License Elements of this License; and, (ii) explicitly permits the relicensing of adaptations of works made available under that license under this License or a Creative Commons jurisdiction license with the same License Elements as this License. + "Distribute" means to make available to the public the original and copies of the Work or Adaptation, as appropriate, through sale or other transfer of ownership. + "License Elements" means the following high-level license attributes as selected by Licensor and indicated in the title of this License: Attribution, ShareAlike. + "Licensor" means the individual, individuals, entity or entities that offer(s) the Work under the terms of this License. + "Original Author" means, in the case of a literary or artistic work, the individual, individuals, entity or entities who created the Work or if no individual or entity can be identified, the publisher; and in addition (i) in the case of a performance the actors, singers, musicians, dancers, and other persons who act, sing, deliver, declaim, play in, interpret or otherwise perform literary or artistic works or expressions of folklore; (ii) in the case of a phonogram the producer being the person or legal entity who first fixes the sounds of a performance or other sounds; and, (iii) in the case of broadcasts, the organization that transmits the broadcast. + "Work" means the literary and/or artistic work offered under the terms of this License including without limitation any production in the literary, scientific and artistic domain, whatever may be the mode or form of its expression including digital form, such as a book, pamphlet and other writing; a lecture, address, sermon or other work of the same nature; a dramatic or dramatico-musical work; a choreographic work or entertainment in dumb show; a musical composition with or without words; a cinematographic work to which are assimilated works expressed by a process analogous to cinematography; a work of drawing, painting, architecture, sculpture, engraving or lithography; a photographic work to which are assimilated works expressed by a process analogous to photography; a work of applied art; an illustration, map, plan, sketch or three-dimensional work relative to geography, topography, architecture or science; a performance; a broadcast; a phonogram; a compilation of data to the extent it is protected as a copyrightable work; or a work performed by a variety or circus performer to the extent it is not otherwise considered a literary or artistic work. + "You" means an individual or entity exercising rights under this License who has not previously violated the terms of this License with respect to the Work, or who has received express permission from the Licensor to exercise rights under this License despite a previous violation. + "Publicly Perform" means to perform public recitations of the Work and to communicate to the public those public recitations, by any means or process, including by wire or wireless means or public digital performances; to make available to the public Works in such a way that members of the public may access these Works from a place and at a place individually chosen by them; to perform the Work to the public by any means or process and the communication to the public of the performances of the Work, including by public digital performance; to broadcast and rebroadcast the Work by any means including signs, sounds or images. + "Reproduce" means to make copies of the Work by any means including without limitation by sound or visual recordings and the right of fixation and reproducing fixations of the Work, including storage of a protected performance or phonogram in digital form or other electronic medium. + +2. Fair Dealing Rights. Nothing in this License is intended to reduce, limit, or restrict any uses free from copyright or rights arising from limitations or exceptions that are provided for in connection with the copyright protection under copyright law or other applicable laws. + +3. License Grant. Subject to the terms and conditions of this License, Licensor hereby grants You a worldwide, royalty-free, non-exclusive, perpetual (for the duration of the applicable copyright) license to exercise the rights in the Work as stated below: + + to Reproduce the Work, to incorporate the Work into one or more Collections, and to Reproduce the Work as incorporated in the Collections; + to create and Reproduce Adaptations provided that any such Adaptation, including any translation in any medium, takes reasonable steps to clearly label, demarcate or otherwise identify that changes were made to the original Work. For example, a translation could be marked "The original work was translated from English to Spanish," or a modification could indicate "The original work has been modified."; + to Distribute and Publicly Perform the Work including as incorporated in Collections; and, + to Distribute and Publicly Perform Adaptations. + + For the avoidance of doubt: + Non-waivable Compulsory License Schemes. In those jurisdictions in which the right to collect royalties through any statutory or compulsory licensing scheme cannot be waived, the Licensor reserves the exclusive right to collect such royalties for any exercise by You of the rights granted under this License; + Waivable Compulsory License Schemes. In those jurisdictions in which the right to collect royalties through any statutory or compulsory licensing scheme can be waived, the Licensor waives the exclusive right to collect such royalties for any exercise by You of the rights granted under this License; and, + Voluntary License Schemes. The Licensor waives the right to collect royalties, whether individually or, in the event that the Licensor is a member of a collecting society that administers voluntary licensing schemes, via that society, from any exercise by You of the rights granted under this License. + +The above rights may be exercised in all media and formats whether now known or hereafter devised. The above rights include the right to make such modifications as are technically necessary to exercise the rights in other media and formats. Subject to Section 8(f), all rights not expressly granted by Licensor are hereby reserved. + +4. Restrictions. The license granted in Section 3 above is expressly made subject to and limited by the following restrictions: + + You may Distribute or Publicly Perform the Work only under the terms of this License. You must include a copy of, or the Uniform Resource Identifier (URI) for, this License with every copy of the Work You Distribute or Publicly Perform. You may not offer or impose any terms on the Work that restrict the terms of this License or the ability of the recipient of the Work to exercise the rights granted to that recipient under the terms of the License. You may not sublicense the Work. You must keep intact all notices that refer to this License and to the disclaimer of warranties with every copy of the Work You Distribute or Publicly Perform. When You Distribute or Publicly Perform the Work, You may not impose any effective technological measures on the Work that restrict the ability of a recipient of the Work from You to exercise the rights granted to that recipient under the terms of the License. This Section 4(a) applies to the Work as incorporated in a Collection, but this does not require the Collection apart from the Work itself to be made subject to the terms of this License. If You create a Collection, upon notice from any Licensor You must, to the extent practicable, remove from the Collection any credit as required by Section 4(c), as requested. If You create an Adaptation, upon notice from any Licensor You must, to the extent practicable, remove from the Adaptation any credit as required by Section 4(c), as requested. + You may Distribute or Publicly Perform an Adaptation only under the terms of: (i) this License; (ii) a later version of this License with the same License Elements as this License; (iii) a Creative Commons jurisdiction license (either this or a later license version) that contains the same License Elements as this License (e.g., Attribution-ShareAlike 3.0 US)); (iv) a Creative Commons Compatible License. If you license the Adaptation under one of the licenses mentioned in (iv), you must comply with the terms of that license. If you license the Adaptation under the terms of any of the licenses mentioned in (i), (ii) or (iii) (the "Applicable License"), you must comply with the terms of the Applicable License generally and the following provisions: (I) You must include a copy of, or the URI for, the Applicable License with every copy of each Adaptation You Distribute or Publicly Perform; (II) You may not offer or impose any terms on the Adaptation that restrict the terms of the Applicable License or the ability of the recipient of the Adaptation to exercise the rights granted to that recipient under the terms of the Applicable License; (III) You must keep intact all notices that refer to the Applicable License and to the disclaimer of warranties with every copy of the Work as included in the Adaptation You Distribute or Publicly Perform; (IV) when You Distribute or Publicly Perform the Adaptation, You may not impose any effective technological measures on the Adaptation that restrict the ability of a recipient of the Adaptation from You to exercise the rights granted to that recipient under the terms of the Applicable License. This Section 4(b) applies to the Adaptation as incorporated in a Collection, but this does not require the Collection apart from the Adaptation itself to be made subject to the terms of the Applicable License. + If You Distribute, or Publicly Perform the Work or any Adaptations or Collections, You must, unless a request has been made pursuant to Section 4(a), keep intact all copyright notices for the Work and provide, reasonable to the medium or means You are utilizing: (i) the name of the Original Author (or pseudonym, if applicable) if supplied, and/or if the Original Author and/or Licensor designate another party or parties (e.g., a sponsor institute, publishing entity, journal) for attribution ("Attribution Parties") in Licensor's copyright notice, terms of service or by other reasonable means, the name of such party or parties; (ii) the title of the Work if supplied; (iii) to the extent reasonably practicable, the URI, if any, that Licensor specifies to be associated with the Work, unless such URI does not refer to the copyright notice or licensing information for the Work; and (iv) , consistent with Ssection 3(b), in the case of an Adaptation, a credit identifying the use of the Work in the Adaptation (e.g., "French translation of the Work by Original Author," or "Screenplay based on original Work by Original Author"). The credit required by this Section 4(c) may be implemented in any reasonable manner; provided, however, that in the case of a Adaptation or Collection, at a minimum such credit will appear, if a credit for all contributing authors of the Adaptation or Collection appears, then as part of these credits and in a manner at least as prominent as the credits for the other contributing authors. For the avoidance of doubt, You may only use the credit required by this Section for the purpose of attribution in the manner set out above and, by exercising Your rights under this License, You may not implicitly or explicitly assert or imply any connection with, sponsorship or endorsement by the Original Author, Licensor and/or Attribution Parties, as appropriate, of You or Your use of the Work, without the separate, express prior written permission of the Original Author, Licensor and/or Attribution Parties. + Except as otherwise agreed in writing by the Licensor or as may be otherwise permitted by applicable law, if You Reproduce, Distribute or Publicly Perform the Work either by itself or as part of any Adaptations or Collections, You must not distort, mutilate, modify or take other derogatory action in relation to the Work which would be prejudicial to the Original Author's honor or reputation. Licensor agrees that in those jurisdictions (e.g. Japan), in which any exercise of the right granted in Section 3(b) of this License (the right to make Adaptations) would be deemed to be a distortion, mutilation, modification or other derogatory action prejudicial to the Original Author's honor and reputation, the Licensor will waive or not assert, as appropriate, this Section, to the fullest extent permitted by the applicable national law, to enable You to reasonably exercise Your right under Section 3(b) of this License (right to make Adaptations) but not otherwise. + +5. Representations, Warranties and Disclaimer + +UNLESS OTHERWISE MUTUALLY AGREED TO BY THE PARTIES IN WRITING, LICENSOR OFFERS THE WORK AS-IS AND MAKES NO REPRESENTATIONS OR WARRANTIES OF ANY KIND CONCERNING THE WORK, EXPRESS, IMPLIED, STATUTORY OR OTHERWISE, INCLUDING, WITHOUT LIMITATION, WARRANTIES OF TITLE, MERCHANTIBILITY, FITNESS FOR A PARTICULAR PURPOSE, NONINFRINGEMENT, OR THE ABSENCE OF LATENT OR OTHER DEFECTS, ACCURACY, OR THE PRESENCE OF ABSENCE OF ERRORS, WHETHER OR NOT DISCOVERABLE. SOME JURISDICTIONS DO NOT ALLOW THE EXCLUSION OF IMPLIED WARRANTIES, SO SUCH EXCLUSION MAY NOT APPLY TO YOU. + +6. Limitation on Liability. EXCEPT TO THE EXTENT REQUIRED BY APPLICABLE LAW, IN NO EVENT WILL LICENSOR BE LIABLE TO YOU ON ANY LEGAL THEORY FOR ANY SPECIAL, INCIDENTAL, CONSEQUENTIAL, PUNITIVE OR EXEMPLARY DAMAGES ARISING OUT OF THIS LICENSE OR THE USE OF THE WORK, EVEN IF LICENSOR HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGES. + +7. Termination + + This License and the rights granted hereunder will terminate automatically upon any breach by You of the terms of this License. Individuals or entities who have received Adaptations or Collections from You under this License, however, will not have their licenses terminated provided such individuals or entities remain in full compliance with those licenses. Sections 1, 2, 5, 6, 7, and 8 will survive any termination of this License. + Subject to the above terms and conditions, the license granted here is perpetual (for the duration of the applicable copyright in the Work). Notwithstanding the above, Licensor reserves the right to release the Work under different license terms or to stop distributing the Work at any time; provided, however that any such election will not serve to withdraw this License (or any other license that has been, or is required to be, granted under the terms of this License), and this License will continue in full force and effect unless terminated as stated above. + +8. Miscellaneous + + Each time You Distribute or Publicly Perform the Work or a Collection, the Licensor offers to the recipient a license to the Work on the same terms and conditions as the license granted to You under this License. + Each time You Distribute or Publicly Perform an Adaptation, Licensor offers to the recipient a license to the original Work on the same terms and conditions as the license granted to You under this License. + If any provision of this License is invalid or unenforceable under applicable law, it shall not affect the validity or enforceability of the remainder of the terms of this License, and without further action by the parties to this agreement, such provision shall be reformed to the minimum extent necessary to make such provision valid and enforceable. + No term or provision of this License shall be deemed waived and no breach consented to unless such waiver or consent shall be in writing and signed by the party to be charged with such waiver or consent. + This License constitutes the entire agreement between the parties with respect to the Work licensed here. There are no understandings, agreements or representations with respect to the Work not specified here. Licensor shall not be bound by any additional provisions that may appear in any communication from You. This License may not be modified without the mutual written agreement of the Licensor and You. + The rights granted under, and the subject matter referenced, in this License were drafted utilizing the terminology of the Berne Convention for the Protection of Literary and Artistic Works (as amended on September 28, 1979), the Rome Convention of 1961, the WIPO Copyright Treaty of 1996, the WIPO Performances and Phonograms Treaty of 1996 and the Universal Copyright Convention (as revised on July 24, 1971). These rights and subject matter take effect in the relevant jurisdiction in which the License terms are sought to be enforced according to the corresponding provisions of the implementation of those treaty provisions in the applicable national law. If the standard suite of rights granted under applicable copyright law includes additional rights not granted under this License, such additional rights are deemed to be included in the License; this License is not intended to restrict the license of any rights under applicable law. + diff --git a/grub-config/themes/starfield/README b/grub-config/themes/starfield/README new file mode 100755 index 0000000..47dec40 --- /dev/null +++ b/grub-config/themes/starfield/README @@ -0,0 +1,36 @@ +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +% GRUB2 gfxmenu default theme by Daniel Tschudi % +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + +Version history: + + 0.99: first test release + +Introduction: + + This shall be the default theme for the GRUB2. As the theme format seems to be more stable then before, there is hope that this theme will work + in future version of GRUB2 as well. + +Usage: + + The font (c.f. theme.txt) required by this theme are not supplied with it, + as they should be generated out of the newest available version at compile time. + +Remarks: + + All images of the theme have been made by the author using GIMP. + + This theme does not contain any text in a fixed language. + + As soon as gfxmenu allows it, this theme should be updated to support localised layouts, such as different position for the scrollbar depending on reading direction. + + In order to speed up the loading process on smaller resolutions, the starfield.png might be converted in to .jpeg images of different resolution. + + This theme is inspired by the work and themes of Jo Shields. + + Do not not use the m-word near the ape, ook! + + +Copyright & Licensing: + + Please see the COPYING file diff --git a/grub-config/themes/starfield/blob_w.png b/grub-config/themes/starfield/blob_w.png new file mode 100755 index 0000000..9915bed Binary files /dev/null and b/grub-config/themes/starfield/blob_w.png differ diff --git a/grub-config/themes/starfield/boot_menu_c.png b/grub-config/themes/starfield/boot_menu_c.png new file mode 100755 index 0000000..3ed0707 Binary files /dev/null and b/grub-config/themes/starfield/boot_menu_c.png differ diff --git a/grub-config/themes/starfield/boot_menu_e.png b/grub-config/themes/starfield/boot_menu_e.png new file mode 100755 index 0000000..952c593 Binary files /dev/null and b/grub-config/themes/starfield/boot_menu_e.png differ diff --git a/grub-config/themes/starfield/boot_menu_n.png b/grub-config/themes/starfield/boot_menu_n.png new file mode 100755 index 0000000..5da3271 Binary files /dev/null and b/grub-config/themes/starfield/boot_menu_n.png differ diff --git a/grub-config/themes/starfield/boot_menu_ne.png b/grub-config/themes/starfield/boot_menu_ne.png new file mode 100755 index 0000000..73dc624 Binary files /dev/null and b/grub-config/themes/starfield/boot_menu_ne.png differ diff --git a/grub-config/themes/starfield/boot_menu_nw.png b/grub-config/themes/starfield/boot_menu_nw.png new file mode 100755 index 0000000..29dbab3 Binary files /dev/null and b/grub-config/themes/starfield/boot_menu_nw.png differ diff --git a/grub-config/themes/starfield/boot_menu_s.png b/grub-config/themes/starfield/boot_menu_s.png new file mode 100755 index 0000000..d5fcb74 Binary files /dev/null and b/grub-config/themes/starfield/boot_menu_s.png differ diff --git a/grub-config/themes/starfield/boot_menu_se.png b/grub-config/themes/starfield/boot_menu_se.png new file mode 100755 index 0000000..8636017 Binary files /dev/null and b/grub-config/themes/starfield/boot_menu_se.png differ diff --git a/grub-config/themes/starfield/boot_menu_sw.png b/grub-config/themes/starfield/boot_menu_sw.png new file mode 100755 index 0000000..87fe588 Binary files /dev/null and b/grub-config/themes/starfield/boot_menu_sw.png differ diff --git a/grub-config/themes/starfield/boot_menu_w.png b/grub-config/themes/starfield/boot_menu_w.png new file mode 100755 index 0000000..f541f22 Binary files /dev/null and b/grub-config/themes/starfield/boot_menu_w.png differ diff --git a/grub-config/themes/starfield/dejavu_10.pf2 b/grub-config/themes/starfield/dejavu_10.pf2 new file mode 100755 index 0000000..c663cc0 Binary files /dev/null and b/grub-config/themes/starfield/dejavu_10.pf2 differ diff --git a/grub-config/themes/starfield/dejavu_12.pf2 b/grub-config/themes/starfield/dejavu_12.pf2 new file mode 100755 index 0000000..69718b6 Binary files /dev/null and b/grub-config/themes/starfield/dejavu_12.pf2 differ diff --git a/grub-config/themes/starfield/dejavu_14.pf2 b/grub-config/themes/starfield/dejavu_14.pf2 new file mode 100755 index 0000000..50588e5 Binary files /dev/null and b/grub-config/themes/starfield/dejavu_14.pf2 differ diff --git a/grub-config/themes/starfield/dejavu_16.pf2 b/grub-config/themes/starfield/dejavu_16.pf2 new file mode 100755 index 0000000..cf78cb9 Binary files /dev/null and b/grub-config/themes/starfield/dejavu_16.pf2 differ diff --git a/grub-config/themes/starfield/dejavu_bold_14.pf2 b/grub-config/themes/starfield/dejavu_bold_14.pf2 new file mode 100755 index 0000000..8ade676 Binary files /dev/null and b/grub-config/themes/starfield/dejavu_bold_14.pf2 differ diff --git a/grub-config/themes/starfield/slider_c.png b/grub-config/themes/starfield/slider_c.png new file mode 100755 index 0000000..11231df Binary files /dev/null and b/grub-config/themes/starfield/slider_c.png differ diff --git a/grub-config/themes/starfield/slider_n.png b/grub-config/themes/starfield/slider_n.png new file mode 100755 index 0000000..8bd4b23 Binary files /dev/null and b/grub-config/themes/starfield/slider_n.png differ diff --git a/grub-config/themes/starfield/slider_s.png b/grub-config/themes/starfield/slider_s.png new file mode 100755 index 0000000..3011369 Binary files /dev/null and b/grub-config/themes/starfield/slider_s.png differ diff --git a/grub-config/themes/starfield/starfield.png b/grub-config/themes/starfield/starfield.png new file mode 100755 index 0000000..eeb4d77 Binary files /dev/null and b/grub-config/themes/starfield/starfield.png differ diff --git a/grub-config/themes/starfield/terminal_box_c.png b/grub-config/themes/starfield/terminal_box_c.png new file mode 100755 index 0000000..d4191d7 Binary files /dev/null and b/grub-config/themes/starfield/terminal_box_c.png differ diff --git a/grub-config/themes/starfield/terminal_box_e.png b/grub-config/themes/starfield/terminal_box_e.png new file mode 100755 index 0000000..fab00d5 Binary files /dev/null and b/grub-config/themes/starfield/terminal_box_e.png differ diff --git a/grub-config/themes/starfield/terminal_box_n.png b/grub-config/themes/starfield/terminal_box_n.png new file mode 100755 index 0000000..eb98261 Binary files /dev/null and b/grub-config/themes/starfield/terminal_box_n.png differ diff --git a/grub-config/themes/starfield/terminal_box_ne.png b/grub-config/themes/starfield/terminal_box_ne.png new file mode 100755 index 0000000..d17e1da Binary files /dev/null and b/grub-config/themes/starfield/terminal_box_ne.png differ diff --git a/grub-config/themes/starfield/terminal_box_nw.png b/grub-config/themes/starfield/terminal_box_nw.png new file mode 100755 index 0000000..0de1cac Binary files /dev/null and b/grub-config/themes/starfield/terminal_box_nw.png differ diff --git a/grub-config/themes/starfield/terminal_box_s.png b/grub-config/themes/starfield/terminal_box_s.png new file mode 100755 index 0000000..d4a8074 Binary files /dev/null and b/grub-config/themes/starfield/terminal_box_s.png differ diff --git a/grub-config/themes/starfield/terminal_box_se.png b/grub-config/themes/starfield/terminal_box_se.png new file mode 100755 index 0000000..c2bd23c Binary files /dev/null and b/grub-config/themes/starfield/terminal_box_se.png differ diff --git a/grub-config/themes/starfield/terminal_box_sw.png b/grub-config/themes/starfield/terminal_box_sw.png new file mode 100755 index 0000000..86864f5 Binary files /dev/null and b/grub-config/themes/starfield/terminal_box_sw.png differ diff --git a/grub-config/themes/starfield/terminal_box_w.png b/grub-config/themes/starfield/terminal_box_w.png new file mode 100755 index 0000000..f0968be Binary files /dev/null and b/grub-config/themes/starfield/terminal_box_w.png differ diff --git a/grub-config/themes/starfield/theme.txt b/grub-config/themes/starfield/theme.txt new file mode 100755 index 0000000..5ec871b --- /dev/null +++ b/grub-config/themes/starfield/theme.txt @@ -0,0 +1,79 @@ +# Default theme for GRUB2 +# +# Copyright (C) 2011 Daniel Tschudi +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +# THE SOFTWARE. + +#general settings +message-font: "DejaVu Sans Regular 12" +message-color: "#000" +message-bg-color: "#fff" +terminal-box: "terminal_box_*.png" +terminal-font: "DejaVu Sans Regular 12" +desktop-image: "starfield.png" + +#help bar at the bottom ++ label { + top = 100%-25 + left = 0 + width = 100% + height = 20 + text = "@KEYMAP_MIDDLE@" + align = "center" + font = "DejaVu Sans Regular 10" + color = "#FFF" +} + +#boot menu ++ boot_menu { + left = 10% + width = 80% + top = 20% + height = 50% + item_font = "DejaVu Sans Regular 12" + item_color = "#000" + selected_item_font = "DejaVu Sans Bold 14" + selected_item_color= "#000" + selected_item_pixmap_style = "blob_*.png" + icon_height = 25 + icon_width = 25 + item_height = 26 + item_padding = 0 + item_icon_space = 0 + item_spacing = 1 + scrollbar = true + scrollbar_width = 20 + scrollbar_thumb = "slider_*.png" + menu_pixmap_style = "boot_menu_*.png" +} + +#progress bar ++ progress_bar { + id = "__timeout__" + left = 15% + top = 80% + height = 20 + width = 70% + font = "DejaVu Sans Regular 12" + text_color = "#000" + fg_color = "#fff" + bg_color = "#6ac" + border_color = "#fff" + text = "@TIMEOUT_NOTIFICATION_LONG@" +} diff --git a/grub-config/tz/Africa b/grub-config/tz/Africa new file mode 100755 index 0000000..d1b6d12 --- /dev/null +++ b/grub-config/tz/Africa @@ -0,0 +1,7 @@ +for tz in Gaborone Harare Johannesburg Lagos; do + menuentry --class=tz.Africa.${tz} "Africa/${tz}" { + timezone="tz=${1}" + def_timezone="${1}" + menu_reload + } +done diff --git a/grub-config/tz/America b/grub-config/tz/America new file mode 100755 index 0000000..1c12efc --- /dev/null +++ b/grub-config/tz/America @@ -0,0 +1,7 @@ +for tz in Antigua Argentina Aruba Asuncion Bogota Caracas Costa_Rica El_Salvador Guatemala Guayaquil La_Paz Lima Managua Mexico_City Montevideo New_York Panama Puerto_Rico Santiago Santo_Domingo Sao_Paulo Tegucigalpa Toronto; do + menuentry --class=tz.America.${tz} "America/${tz}" { + timezone="tz=${1}" + def_timezone="${1}" + menu_reload + } +done diff --git a/grub-config/tz/Asia b/grub-config/tz/Asia new file mode 100755 index 0000000..9dcb6dd --- /dev/null +++ b/grub-config/tz/Asia @@ -0,0 +1,7 @@ +for tz in Hong_Kong Jerusalem Kolkata Manila Seoul Shaghai Singapore Taipei Tokyo; do + menuentry --class=tz.Asia.${tz} "Asia/${tz}" { + timezone="tz=${1}" + def_timezone="${1}" + menu_reload + } +done diff --git a/grub-config/tz/Atlantic b/grub-config/tz/Atlantic new file mode 100755 index 0000000..a3a604c --- /dev/null +++ b/grub-config/tz/Atlantic @@ -0,0 +1,7 @@ +for tz in Reykjavik; do + menuentry --class=tz.Atlantic.${tz} "Atlantic/${tz}" { + timezone="tz=${1}" + def_timezone="${1}" + menu_reload + } +done diff --git a/grub-config/tz/Australia b/grub-config/tz/Australia new file mode 100755 index 0000000..6e03fb1 --- /dev/null +++ b/grub-config/tz/Australia @@ -0,0 +1,7 @@ +for tz in Sydney; do + menuentry --class=tz.Australia.${tz} "Australia/${tz}" { + timezone="tz=${1}" + def_timezone="${1}" + menu_reload + } +done diff --git a/grub-config/tz/Etc b/grub-config/tz/Etc new file mode 100755 index 0000000..9c23bb4 --- /dev/null +++ b/grub-config/tz/Etc @@ -0,0 +1,7 @@ +for tz in UTC; do + menuentry --class=tz.Etc.${tz} "Etc/${tz}" { + timezone="tz=${1}" + def_timezone="${1}" + menu_reload + } +done diff --git a/grub-config/tz/Europe b/grub-config/tz/Europe new file mode 100755 index 0000000..de536f9 --- /dev/null +++ b/grub-config/tz/Europe @@ -0,0 +1,7 @@ +for tz in Amsterdam Athens Berlin Bratislava Brussels Bucharest Budapest Copenhagen Dublin Helsinki Istanbul Kiev Lisbon Ljubljana London Luxembourg Madrid Minsk Moscow Oslo Paris Prague Rome Sarajevo Sofia Stockholm Tallinn Vaduz Vienna Warsaw Zagreb Zurich; do + menuentry --class=tz.Europe.${tz} "Europe/${tz}" { + timezone="tz=${1}" + def_timezone="${1}" + menu_reload + } +done diff --git a/grub-config/tz/Pacific b/grub-config/tz/Pacific new file mode 100755 index 0000000..266134e --- /dev/null +++ b/grub-config/tz/Pacific @@ -0,0 +1,7 @@ +for tz in Auckland Noumea; do + menuentry --class=tz.Pacific.${tz} "Pacific/${tz}" { + timezone="tz=${1}" + def_timezone="${1}" + menu_reload + } +done diff --git a/grub-config/unicode.pf2 b/grub-config/unicode.pf2 new file mode 100755 index 0000000..5b5dbb6 Binary files /dev/null and b/grub-config/unicode.pf2 differ diff --git a/grub/grub_background.png b/grub/grub_background.png new file mode 100755 index 0000000..a8a7ba2 Binary files /dev/null and b/grub/grub_background.png differ diff --git a/lsb-release b/lsb-release new file mode 100755 index 0000000..5069ed2 --- /dev/null +++ b/lsb-release @@ -0,0 +1,4 @@ +LSB_VERSION=1.4 +DISTRIB_ID=SpectreOS +DISTRIB_RELEASE=rolling +DISTRIB_DESCRIPTION="SpectreOS" diff --git a/make-packages-txt.sh b/make-packages-txt.sh new file mode 100755 index 0000000..63c4088 --- /dev/null +++ b/make-packages-txt.sh @@ -0,0 +1,22 @@ +#!/usr/bin/env bash + +set -ex + +pacman -Qq > $1 + +# Packete die ignoriert werden können, in diesem Falle Spiele und verweiste Packete +fill="$(pacman -Qqm) widelands megaglest megaglest-data openra openbve freeciv minetest minetest-server teeworlds 0ad 0ad-data" + +while (( "$(expr $#)" )) +do + for wort in ${fill} + do + if grep ${wort} $1; then + grep -v "${wort}" $1 > tempdatei + mv tempdatei $1 + else + echo "überspringe ${wort}" + fi + done + shift +done diff --git a/make_mksquashfs-auto.sh b/make_mksquashfs-auto.sh new file mode 100755 index 0000000..86577fc --- /dev/null +++ b/make_mksquashfs-auto.sh @@ -0,0 +1,328 @@ +#!/usr/bin/env bash +# +set -ex + +if [[ $EUID -ne 0 ]]; then + echo "This script must be run as root" 1>&2 + sudo "${0}" "$@" + exit 0 +fi + +# full install parameters +# ./make_mksquashfs-auto.sh makesystem mkinitcpio filesystem makeimage makebios makeiso +# Parameter: +# Entfernt die Datenträger die noch gemounted sind: umount +# Mountet die Datenträger: mount +# +# Packete die installiert sein muessen: +# arch-install-scripts +# xorriso +# squashfs-tools + +iso_name=spectreos +iso_label="SPECTREOS" +iso_label_short="S_OS" +iso_version=$(date +%Y%m%d) +out_dir=out +install_dir=arch + +# while-schleife +while (( "$#" )) +do + echo ${1} + export ${1}="y" + shift +done + +arch=$(uname -m) +repo=spectreos +repo1=shell-scripte-code + +isohostname="${iso_name}" + +work_dir="/builds" + +function umount_chroot() { + if ! umount -Rfl /builds/${arch}/airootfs; then + echo "Buildverzeichnis NICHT erfolgreich ungemounted" + fi +} + +function mount_chroot() { + umount_chroot + ### https://bugs.archlinux.org/task/46169 + mount --bind ${work_dir}/${arch}/airootfs/ ${work_dir}/${arch}/airootfs/ + ### https://wiki.archlinux.org/index.php/Install_Arch_Linux_from_existing_Linux#Using_a_chroot_environment + mount -t proc /proc ${work_dir}/${arch}/airootfs/proc + mount -o bind /dev ${work_dir}/${arch}/airootfs/dev + mount -o bind /dev/pts ${work_dir}/${arch}/airootfs/dev/pts + mount -o bind /sys ${work_dir}/${arch}/airootfs/sys + ### Before chrooting to it, we need to set up some mount points and copy the resolv.conf for networking. + ### https://askubuntu.com/questions/469209/how-to-resolve-hostnames-in-chroot + #mount --bind /etc/resolv.conf ${work_dir}/${arch}/airootfs/etc/resolv.conf + #mount --bind /run ${work_dir}/${arch}/airootfs/run + cp /etc/resolv.conf ${work_dir}/${arch}/airootfs/etc/resolv.conf +} + +function system() { + + pacman -Sy arch-install-scripts squashfs-tools dosfstools libisoburn --needed + + if [ "${makesystem}" == "y" ]; then + mkdir -p ${work_dir}/${arch}/airootfs + cp -v mirrorlist* /etc/pacman.d/ + pacstrap -c -d -G -C pacman.conf -M ${work_dir}/${arch}/airootfs $(cat packages.txt) + fi + + if [ "${mkinitcpio}" == "y" ]; then + # module and hooks + + # hooks + cp -v configs/install/* ${work_dir}/${arch}/airootfs/usr/lib/initcpio/install/ + cp -v configs/hooks/* ${work_dir}/${arch}/airootfs/usr/lib/initcpio/hooks/ + cp -v configs/script-hooks/* ${work_dir}/${arch}/airootfs/usr/lib/initcpio/ + + mkdir -p ${work_dir}/${arch}/airootfs/etc/pacman.d/hooks + cp -v configs/pacman-hooks/* ${work_dir}/${arch}/airootfs/etc/pacman.d/hooks/ + cp -v pacman.conf ${work_dir}/${arch}/airootfs/etc/pacman.conf + cp -v mirrorlist* ${work_dir}/${arch}/airootfs/etc/pacman.d/ + chmod 644 -R ${work_dir}/${arch}/airootfs/etc/pacman.d/mirrorlist* + + # modprobe.d + mkdir -p ${work_dir}/${arch}/airootfs/etc/modprobe.d/ + echo "blacklist floppy" > ${work_dir}/${arch}/airootfs/etc/modprobe.d/blacklist-floppy.conf + echo "blacklist nouveau" > ${work_dir}/${arch}/airootfs/etc/modprobe.d/blacklist_nouveau.conf + echo "install dell-smbios /bin/false" > ${work_dir}/${arch}/airootfs/etc/modprobe.d/blacklist-dell-smbios.conf + + # modules + echo "MODULES=\"amdgpu i915 radeon nvidia fuse loop\"" > ${work_dir}/${arch}/airootfs/etc/mkinitcpio.conf + echo "HOOKS=\"base udev keyboard keymap consolefont modconf archiso block filesystems\"" >> ${work_dir}/${arch}/airootfs/etc/mkinitcpio.conf + echo "COMPRESSION=\"zstd\"" >> ${work_dir}/${arch}/airootfs/etc/mkinitcpio.conf + fi +} + +function IMAGE() { + + if [ "$image" != "n" ] + then + + echo "Unmounte System" + sleep 2 + umount_chroot + + echo "System wird gereinigt und komprimiert!!!" + sleep 5 + + mkdir -p ${work_dir}/iso/${install_dir}/${arch}/airootfs/ + + if [ -f ${work_dir}/${arch}/airootfs/pkglist.txt ]; then + cp ${work_dir}/${arch}/airootfs/pkglist.txt ${work_dir}/iso/${install_dir}/${arch}/ + fi + + if [ -f ${work_dir}/iso/${install_dir}/${arch}/airootfs.sfs ] + then + echo "${work_dir}/iso/${install_dir}/${arch}/airootfs.sfs wird neu angelegt!!!" + rm ${work_dir}/iso/${install_dir}/${arch}/airootfs.sfs + else + echo "airootfs.sfs nicht vorhanden!" + fi + + mksquashfs ${work_dir}/${arch}/airootfs ${work_dir}/iso/${install_dir}/${arch}/airootfs.sfs -comp zstd + + mkdir -p tmp/ + sha512sum ${work_dir}/iso/${install_dir}/${arch}/airootfs.sfs > tmp/airootfs.sha512 + echo "$(cat tmp/airootfs.sha512 | awk -F ' ' '{print $1}') /run/archiso/bootmnt/${install_dir}/${arch}/airootfs.sfs" > ${work_dir}/iso/${install_dir}/${arch}/airootfs.sha512 + + else + echo "Image wird nicht neu aufgebaut!!!" + fi + +} + +function copykernel() { + + mkdir -p ${work_dir}/iso/boot + mkdir -p ${work_dir}/iso/${install_dir}/boot/${arch}/ + cp ${work_dir}/${arch}/airootfs/boot/initramfs-linux.img ${work_dir}/iso/${install_dir}/boot/${arch}/archiso.img + cp ${work_dir}/${arch}/airootfs/boot/vmlinuz-linux ${work_dir}/iso/${install_dir}/boot/${arch}/vmlinuz + cp ${work_dir}/iso/${install_dir}/boot/${arch}/archiso.img ${work_dir}/iso/boot/initramfs-${arch}.img + cp ${work_dir}/iso/${install_dir}/boot/${arch}/vmlinuz ${work_dir}/iso/boot/vmlinuz-${arch} + +} + +function UEFI() { + + mkdir -p ${work_dir}/iso/boot + mkdir -p ${work_dir}/iso/${install_dir}/boot/${arch} + + mkdir -p ${work_dir}/iso/boot/ + mkdir -p ${work_dir}/iso/EFI/boot/ + + mkdir -p ${work_dir}/iso/boot/grub/ + + mkdir -p ${work_dir}/iso/EFI/archiso + mkdir -p ${work_dir}/iso/EFI/boot + mkdir -p ${work_dir}/iso/loader/entries + + + if [ "$efi" != "n" ] + then + + if [ -f ${work_dir}/iso/EFI/archiso/efiboot.img ] + then + rm ${work_dir}/iso/EFI/archiso/efiboot.img + else + echo "efiboot.img nicht vorhanden!" + fi + + truncate -s 4M ${work_dir}/iso/EFI/archiso/efiboot.img + mkfs.vfat -n ${iso_label_short}_EFI ${work_dir}/iso/EFI/archiso/efiboot.img + + copykernel + + mkdir -p ${work_dir}/efiboot + + mount -t vfat -o loop ${work_dir}/iso/EFI/archiso/efiboot.img ${work_dir}/efiboot + + mkdir -p ${work_dir}/efiboot/EFI/boot/ + + cp -v grub-config/cfg/*.cfg ${work_dir}/iso/boot/grub/ + + mkdir -p ${work_dir}/iso/boot/grub/themes + cp -Rv grub-config/themes/Stylish/ ${work_dir}/iso/boot/grub/themes/ + cp grub-config/unicode.pf2 ${work_dir}/iso/boot/grub/ + cp -Rv grub-config/{locales,tz} ${work_dir}/iso/boot/grub/ + + cp -Rv /usr/lib/grub/i386-pc ${work_dir}/iso/boot/grub/ + grub-mkimage -d ${work_dir}/iso/boot/grub/i386-pc -o ${work_dir}/iso/boot/grub/i386-pc/core.img -O i386-pc -p /boot/grub biosdisk iso9660 + #grub-install --target=i386-pc --force --removable --boot-directory=${work_dir}/iso/boot/ --efi-directory=${work_dir}/efiboot/ /dev/sdc + + cat ${work_dir}/iso/boot/grub/i386-pc/cdboot.img ${work_dir}/iso/boot/grub/i386-pc/core.img > ${work_dir}/iso/boot/grub/i386-pc/eltorito.img + + cp -Rv /usr/lib/grub/x86_64-efi ${work_dir}/iso/boot/grub/ + grub-mkimage -d ${work_dir}/iso/boot/grub/x86_64-efi -o ${work_dir}/iso/EFI/boot/bootx64.efi -O x86_64-efi -p /boot/grub iso9660 + #grub-install --target=x86_64-efi --force --removable --boot-directory=${work_dir}/iso/EFI/boot/ --efi-directory=${work_dir}/efiboot/ /dev/sdc + + cp -Rv /usr/lib/grub/x86_64-efi ${work_dir}/efiboot/EFI/boot/ + grub-mkimage -d ${work_dir}/iso/boot/grub/x86_64-efi -o ${work_dir}/efiboot/EFI/boot/bootx64.efi -O x86_64-efi -p /boot/grub iso9660 + + cp ${work_dir}/${arch}/airootfs/boot/memtest86+/memtest.bin ${work_dir}/iso/boot/memtest + cp ${work_dir}/${arch}/airootfs/usr/share/licenses/common/GPL2/license.txt ${work_dir}/iso/boot/memtest.COPYING + cp ${work_dir}/${arch}/airootfs/boot/memtest86+/memtest.bin ${work_dir}/iso/EFI/boot/memtest + cp ${work_dir}/${arch}/airootfs/usr/share/licenses/common/GPL2/license.txt ${work_dir}/iso/EFI/boot/memtest.COPYING + + sed -e 's|@iso_label@|'$iso_label'|' -i ${work_dir}/iso/boot/grub/kernels.cfg + sed -e 's|@parameters@||' -i ${work_dir}/iso/boot/grub/kernels.cfg + sed -e 's|grub_theme=.*$|grub_theme=/boot/grub/themes/Stylish/theme.txt|' -i ${work_dir}/iso/boot/grub/variable.cfg + sed -e 's|def_bootlang=.*$|def_bootlang=\"de_DE\"|' -i ${work_dir}/iso/boot/grub/defaults.cfg + sed -e 's|def_keyboard=.*$|def_keyboard=\"de\"|' -i ${work_dir}/iso/boot/grub/defaults.cfg + sed -e 's|def_timezone=.*$|def_timezone=\"Europe/Berlin\"|' -i ${work_dir}/iso/boot/grub/defaults.cfg + sed -e 's|def_netinstall=.*$|def_netinstall=\"no\"|' -i ${work_dir}/iso/boot/grub/defaults.cfg + sed -e 's|def_autostartdesktop=.*$|def_autostartdesktop=\"i3\"|' -i ${work_dir}/iso/boot/grub/defaults.cfg + sed -e 's|def_copytoram=.*$|def_copytoram=\"n\"|' -i ${work_dir}/iso/boot/grub/defaults.cfg + + ### + + sleep 5 + + if [ "$trennen" != "n" ] + then + umount -d ${work_dir}/efiboot + fi + + fi + +} + +function makegrubiso() { + + mkdir -p ${out_dir} + xorriso -as mkisofs \ + --modification-date=$(date -u +%Y-%m-%d-%H-%M-%S-00 | sed -e s/-//g) \ + --protective-msdos-label \ + -volid "${iso_label}" \ + -appid "${iso_name} Live/Rescue CD" \ + -publisher "${username}" \ + -preparer "Prepared by simono41 SpectreOS/${0##*/}" \ + -r -graft-points -no-pad \ + --sort-weight 0 / \ + --sort-weight 1 /boot \ + --grub2-mbr ${work_dir}/iso/boot/grub/i386-pc/boot_hybrid.img \ + -partition_offset 16 \ + -b boot/grub/i386-pc/eltorito.img \ + -c boot.catalog \ + -no-emul-boot -boot-load-size 4 -boot-info-table --grub2-boot-info \ + -eltorito-alt-boot \ + -append_partition 2 0xef ${work_dir}/iso/EFI/archiso/efiboot.img \ + -e --interval:appended_partition_2:all:: -iso_mbr_part_type 0x00 \ + -no-emul-boot -iso-level 3 \ + -o "${out_dir}/${imagename}" \ + "${work_dir}/iso/" + +} + + +system + +if [ "${filesystem}" == "y" ]; then + cp -v arch-graphical-install-auto.sh ${work_dir}/${arch}/airootfs/usr/bin/arch-graphical-install-auto + chmod +x ${work_dir}/${arch}/airootfs/usr/bin/arch-graphical-install-auto + # Dieses Script sorgt dafür, dass die Repository´s als Systemvariablen eingerichtet werden + cp -v repo.sh ${work_dir}/${arch}/airootfs/usr/bin/repo + chmod +x ${work_dir}/${arch}/airootfs/usr/bin/repo + # Falls das benötigte Packet nicht enthalten ist, installiere es erneut + mount_chroot + chroot ${work_dir}/${arch}/airootfs /usr/bin/arch-graphical-install-auto archisoinstall + +fi + +if [ "${makeimage}" == "y" ]; then + + # System-image + + IMAGE + +fi + +if [ "${umount}" == "y" ]; then + umount_chroot +fi + +if [ "${mount}" == "y" ]; then + mount_chroot +fi + +if [ "${makebios}" == "y" ]; then + + copykernel + + UEFI + +fi + +if [ "${makeiso}" == "y" ]; then + # MAKEISO + if [ "$image" != "n" ] + then + + imagename=arch-${iso_name}-${iso_version}-${arch}.iso + + if [ "$run" != "n" ] + then + if [ -f ${out_dir}/${imagename} ] + then + rm ${out_dir}/${imagename} + fi + + makegrubiso + + fi + fi +fi + +# chroot + +sync + +echo "$(date "+%Y%m%d-%H%M%S")" +echo "Fertig!!!" diff --git a/mirrorlist-arch b/mirrorlist-arch new file mode 100755 index 0000000..75aeb41 --- /dev/null +++ b/mirrorlist-arch @@ -0,0 +1,801 @@ +## +## Arch Linux repository mirrorlist +## Generated on 2021-12-12 +## + +## Worldwide +#Server = http://mirror.rackspace.com/archlinux/$repo/os/$arch +#Server = https://mirror.rackspace.com/archlinux/$repo/os/$arch + +## Australia +#Server = https://mirror.aarnet.edu.au/pub/archlinux/$repo/os/$arch +#Server = http://archlinux.mirror.digitalpacific.com.au/$repo/os/$arch +#Server = https://archlinux.mirror.digitalpacific.com.au/$repo/os/$arch +#Server = http://ftp.iinet.net.au/pub/archlinux/$repo/os/$arch +#Server = http://mirror.internode.on.net/pub/archlinux/$repo/os/$arch +#Server = http://arch.lucassymons.net/$repo/os/$arch +#Server = https://arch.lucassymons.net/$repo/os/$arch +#Server = http://syd.mirror.rackspace.com/archlinux/$repo/os/$arch +#Server = https://syd.mirror.rackspace.com/archlinux/$repo/os/$arch +#Server = http://ftp.swin.edu.au/archlinux/$repo/os/$arch + +## Austria +#Server = http://mirror.digitalnova.at/archlinux/$repo/os/$arch +#Server = http://mirror.easyname.at/archlinux/$repo/os/$arch +#Server = http://mirror.reisenbauer.ee/archlinux/$repo/os/$arch +#Server = https://mirror.reisenbauer.ee/archlinux/$repo/os/$arch + +## Bangladesh +#Server = http://mirror.xeonbd.com/archlinux/$repo/os/$arch + +## Belarus +#Server = http://ftp.byfly.by/pub/archlinux/$repo/os/$arch +#Server = http://mirror.datacenter.by/pub/archlinux/$repo/os/$arch + +## Belgium +#Server = http://archlinux.cu.be/$repo/os/$arch +#Server = http://archlinux.mirror.kangaroot.net/$repo/os/$arch +#Server = http://mirror.tiguinet.net/arch/$repo/os/$arch + +## Bosnia and Herzegovina +#Server = http://archlinux.mirror.ba/$repo/os/$arch + +## Brazil +#Server = http://archlinux-br.com.br/archlinux/$repo/os/$arch +#Server = https://archlinux-br.com.br/archlinux/$repo/os/$arch +#Server = http://br.mirror.archlinux-br.org/$repo/os/$arch +#Server = http://archlinux.c3sl.ufpr.br/$repo/os/$arch +#Server = http://www.caco.ic.unicamp.br/archlinux/$repo/os/$arch +#Server = https://www.caco.ic.unicamp.br/archlinux/$repo/os/$arch +#Server = http://linorg.usp.br/archlinux/$repo/os/$arch +#Server = http://archlinux.pop-es.rnp.br/$repo/os/$arch +#Server = http://mirror.ufam.edu.br/archlinux/$repo/os/$arch +#Server = http://mirror.ufscar.br/archlinux/$repo/os/$arch + +## Bulgaria +#Server = https://mirror.darklinux.uk/archlinux/$repo/os/$arch +#Server = http://mirror.host.ag/archlinux/$repo/os/$arch +#Server = http://mirrors.netix.net/archlinux/$repo/os/$arch +#Server = http://mirror.telepoint.bg/archlinux/$repo/os/$arch +#Server = https://mirror.telepoint.bg/archlinux/$repo/os/$arch +#Server = http://mirrors.uni-plovdiv.net/archlinux/$repo/os/$arch +#Server = https://mirrors.uni-plovdiv.net/archlinux/$repo/os/$arch + +## Cambodia +#Server = http://mirror.sabay.com.kh/archlinux/$repo/os/$arch +#Server = https://mirror.sabay.com.kh/archlinux/$repo/os/$arch + +## Canada +#Server = http://mirror.0xem.ma/arch/$repo/os/$arch +#Server = https://mirror.0xem.ma/arch/$repo/os/$arch +#Server = http://mirror.cedille.club/archlinux/$repo/os/$arch +#Server = http://archlinux.mirror.colo-serv.net/$repo/os/$arch +#Server = http://mirror.csclub.uwaterloo.ca/archlinux/$repo/os/$arch +#Server = https://mirror.csclub.uwaterloo.ca/archlinux/$repo/os/$arch +#Server = http://mirror2.evolution-host.com/archlinux/$repo/os/$arch +#Server = https://mirror2.evolution-host.com/archlinux/$repo/os/$arch +#Server = http://mirror.its.dal.ca/archlinux/$repo/os/$arch +#Server = http://muug.ca/mirror/archlinux/$repo/os/$arch +#Server = https://muug.ca/mirror/archlinux/$repo/os/$arch +#Server = http://arch.powerfly.ca/$repo/os/$arch +#Server = https://arch.powerfly.ca/$repo/os/$arch +#Server = http://archlinux.mirror.rafal.ca/$repo/os/$arch +#Server = http://mirror.scd31.com/arch/$repo/os/$arch +#Server = https://mirror.scd31.com/arch/$repo/os/$arch +#Server = http://mirror.sergal.org/archlinux/$repo/os/$arch +#Server = https://mirror.sergal.org/archlinux/$repo/os/$arch + +## Chile +#Server = http://mirror.anquan.cl/archlinux/$repo/os/$arch +#Server = http://mirror.archlinux.cl/$repo/os/$arch +#Server = http://mirror1.cl.netactuate.com/archlinux/$repo/os/$arch +#Server = https://mirror1.cl.netactuate.com/archlinux/$repo/os/$arch +#Server = http://mirror.ufro.cl/archlinux/$repo/os/$arch +#Server = https://mirror.ufro.cl/archlinux/$repo/os/$arch + +## China +#Server = http://mirrors.163.com/archlinux/$repo/os/$arch +#Server = http://mirrors.aliyun.com/archlinux/$repo/os/$arch +#Server = https://mirrors.aliyun.com/archlinux/$repo/os/$arch +#Server = http://mirrors.bfsu.edu.cn/archlinux/$repo/os/$arch +#Server = https://mirrors.bfsu.edu.cn/archlinux/$repo/os/$arch +#Server = http://mirrors.cqu.edu.cn/archlinux/$repo/os/$arch +#Server = https://mirrors.cqu.edu.cn/archlinux/$repo/os/$arch +#Server = http://mirrors.dgut.edu.cn/archlinux/$repo/os/$arch +#Server = https://mirrors.dgut.edu.cn/archlinux/$repo/os/$arch +#Server = http://mirrors.hit.edu.cn/archlinux/$repo/os/$arch +#Server = https://mirrors.hit.edu.cn/archlinux/$repo/os/$arch +#Server = http://mirror.lzu.edu.cn/archlinux/$repo/os/$arch +#Server = http://mirrors.neusoft.edu.cn/archlinux/$repo/os/$arch +#Server = https://mirrors.neusoft.edu.cn/archlinux/$repo/os/$arch +#Server = http://mirrors.nju.edu.cn/archlinux/$repo/os/$arch +#Server = https://mirrors.nju.edu.cn/archlinux/$repo/os/$arch +#Server = http://mirror.redrock.team/archlinux/$repo/os/$arch +#Server = https://mirror.redrock.team/archlinux/$repo/os/$arch +#Server = https://mirrors.sjtug.sjtu.edu.cn/archlinux/$repo/os/$arch +#Server = http://mirrors.tuna.tsinghua.edu.cn/archlinux/$repo/os/$arch +#Server = https://mirrors.tuna.tsinghua.edu.cn/archlinux/$repo/os/$arch +#Server = http://mirrors.ustc.edu.cn/archlinux/$repo/os/$arch +#Server = https://mirrors.ustc.edu.cn/archlinux/$repo/os/$arch +#Server = http://mirrors.wsyu.edu.cn/archlinux/$repo/os/$arch +#Server = https://mirrors.wsyu.edu.cn/archlinux/$repo/os/$arch +#Server = https://mirrors.xjtu.edu.cn/archlinux/$repo/os/$arch +#Server = http://mirrors.zju.edu.cn/archlinux/$repo/os/$arch + +## Colombia +#Server = http://mirrors.udenar.edu.co/archlinux/$repo/os/$arch + +## Croatia +#Server = http://archlinux.iskon.hr/$repo/os/$arch + +## Czechia +#Server = http://mirror.dkm.cz/archlinux/$repo/os/$arch +#Server = https://mirror.dkm.cz/archlinux/$repo/os/$arch +#Server = https://europe.mirror.pkgbuild.com/$repo/os/$arch +#Server = http://ftp.fi.muni.cz/pub/linux/arch/$repo/os/$arch +#Server = http://ftp.linux.cz/pub/linux/arch/$repo/os/$arch +#Server = http://gluttony.sin.cvut.cz/arch/$repo/os/$arch +#Server = https://gluttony.sin.cvut.cz/arch/$repo/os/$arch +#Server = http://mirrors.nic.cz/archlinux/$repo/os/$arch +#Server = http://ftp.sh.cvut.cz/arch/$repo/os/$arch +#Server = https://ftp.sh.cvut.cz/arch/$repo/os/$arch +#Server = http://mirror.vpsfree.cz/archlinux/$repo/os/$arch + +## Denmark +#Server = http://mirrors.dotsrc.org/archlinux/$repo/os/$arch +#Server = https://mirrors.dotsrc.org/archlinux/$repo/os/$arch +#Server = http://mirror.one.com/archlinux/$repo/os/$arch +#Server = https://mirror.one.com/archlinux/$repo/os/$arch + +## Ecuador +#Server = http://mirror.cedia.org.ec/archlinux/$repo/os/$arch +#Server = http://mirror.espoch.edu.ec/archlinux/$repo/os/$arch +#Server = http://mirror.uta.edu.ec/archlinux/$repo/os/$arch + +## Estonia +#Server = http://mirror.cspacehostings.com/archlinux/$repo/os/$arch +#Server = https://mirror.cspacehostings.com/archlinux/$repo/os/$arch +#Server = http://mirrors.xtom.ee/archlinux/$repo/os/$arch +#Server = https://mirrors.xtom.ee/archlinux/$repo/os/$arch + +## Finland +#Server = https://arch.mcstrugs.org/$repo/os/$arch +#Server = http://mirror.arctic.lol/ArchMirror/$repo/os/$arch +#Server = https://mirror.arctic.lol/ArchMirror/$repo/os/$arch +#Server = http://arch.mirror.far.fi/$repo/os/$arch +#Server = http://mirror.hosthink.net/archlinux/$repo/os/$arch +#Server = https://mirror.srv.fail/archlinux/$repo/os/$arch +#Server = http://mirror.wuki.li/archlinux/$repo/os/$arch +#Server = https://mirror.wuki.li/archlinux/$repo/os/$arch +#Server = http://arch.yhtez.xyz/$repo/os/$arch +#Server = https://arch.yhtez.xyz/$repo/os/$arch + +## France +#Server = http://archlinux.de-labrusse.fr/$repo/os/$arch +#Server = http://mirror.archlinux.ikoula.com/archlinux/$repo/os/$arch +#Server = https://archlinux.vi-di.fr/$repo/os/$arch +#Server = https://mirror.bakerserver.space/Arch/$repo/os/$arch +#Server = http://archlinux.mirrors.benatherton.com/$repo/os/$arch +#Server = http://mirror.cyberbits.eu/archlinux/$repo/os/$arch +#Server = https://mirror.cyberbits.eu/archlinux/$repo/os/$arch +#Server = http://archlinux.datagr.am/$repo/os/$arch +#Server = https://mirrors.eric.ovh/arch/$repo/os/$arch +#Server = http://mirror.ibcp.fr/pub/archlinux/$repo/os/$arch +#Server = http://mirror.lastmikoi.net/archlinux/$repo/os/$arch +#Server = https://arch-mirror.cloud.louifox.house/$repo/os/$arch +#Server = http://archlinux.mailtunnel.eu/$repo/os/$arch +#Server = https://archlinux.mailtunnel.eu/$repo/os/$arch +#Server = http://mir.archlinux.fr/$repo/os/$arch +#Server = http://mirrors.celianvdb.fr/archlinux/$repo/os/$arch +#Server = https://mirrors.celianvdb.fr/archlinux/$repo/os/$arch +#Server = http://arch.nimukaito.net/$repo/os/$arch +#Server = https://arch.nimukaito.net/$repo/os/$arch +#Server = http://mirror.oldsql.cc/archlinux/$repo/os/$arch +#Server = https://mirror.oldsql.cc/archlinux/$repo/os/$arch +#Server = http://archlinux.mirrors.ovh.net/archlinux/$repo/os/$arch +#Server = http://archlinux.polymorf.fr/$repo/os/$arch +#Server = http://archlinux.rezopole.net/$repo/os/$arch +#Server = https://mirrors.slaanesh.org/archlinux/$repo/os/$arch +#Server = http://mirrors.standaloneinstaller.com/archlinux/$repo/os/$arch +#Server = https://mirror.sysa.tech/archlinux/$repo/os/$arch +#Server = https://mirror.thekinrar.fr/archlinux/$repo/os/$arch +#Server = http://ftp.u-strasbg.fr/linux/distributions/archlinux/$repo/os/$arch +#Server = https://mirror.wormhole.eu/archlinux/$repo/os/$arch +#Server = http://mirroir.wptheme.fr/archlinux/$repo/os/$arch +#Server = https://mirroir.wptheme.fr/archlinux/$repo/os/$arch +#Server = http://arch.yourlabs.org/$repo/os/$arch +#Server = https://arch.yourlabs.org/$repo/os/$arch + +## Georgia +#Server = http://archlinux.grena.ge/$repo/os/$arch +#Server = https://archlinux.grena.ge/$repo/os/$arch + +## Germany +Server = http://mirror.23m.com/archlinux/$repo/os/$arch +#Server = https://mirror.23m.com/archlinux/$repo/os/$arch +#Server = http://ftp.agdsn.de/pub/mirrors/archlinux/$repo/os/$arch +#Server = https://ftp.agdsn.de/pub/mirrors/archlinux/$repo/os/$arch +#Server = https://appuals.com/archlinux/$repo/os/$arch +#Server = http://artfiles.org/archlinux.org/$repo/os/$arch +#Server = https://mirror.bethselamin.de/$repo/os/$arch +#Server = http://mirror.chaoticum.net/arch/$repo/os/$arch +#Server = https://mirror.chaoticum.net/arch/$repo/os/$arch +#Server = http://mirror.checkdomain.de/archlinux/$repo/os/$arch +#Server = https://mirror.checkdomain.de/archlinux/$repo/os/$arch +#Server = http://mirror.clientvps.com/archlinux/$repo/os/$arch +#Server = https://mirror.clientvps.com/archlinux/$repo/os/$arch +#Server = https://mirror.dogado.de/archlinux/$repo/os/$arch +#Server = http://mirror.f4st.host/archlinux/$repo/os/$arch +#Server = https://mirror.f4st.host/archlinux/$repo/os/$arch +#Server = http://ftp.fau.de/archlinux/$repo/os/$arch +#Server = https://ftp.fau.de/archlinux/$repo/os/$arch +#Server = https://pkg.fef.moe/archlinux/$repo/os/$arch +#Server = https://dist-mirror.fem.tu-ilmenau.de/archlinux/$repo/os/$arch +#Server = http://mirror.fsrv.services/archlinux/$repo/os/$arch +#Server = https://mirror.fsrv.services/archlinux/$repo/os/$arch +#Server = https://mirror.gnomus.de/$repo/os/$arch +#Server = http://www.gutscheindrache.com/mirror/archlinux/$repo/os/$arch +#Server = http://ftp.gwdg.de/pub/linux/archlinux/$repo/os/$arch +#Server = https://archlinux.homeinfo.de/$repo/os/$arch +#Server = http://archlinux.honkgong.info/$repo/os/$arch +#Server = http://ftp.hosteurope.de/mirror/ftp.archlinux.org/$repo/os/$arch +#Server = http://ftp-stud.hs-esslingen.de/pub/Mirrors/archlinux/$repo/os/$arch +#Server = http://archlinux.mirror.iphh.net/$repo/os/$arch +#Server = https://mirror.iusearchbtw.nl/$repo/os/$arch +#Server = http://arch.jensgutermuth.de/$repo/os/$arch +#Server = https://arch.jensgutermuth.de/$repo/os/$arch +#Server = https://de.arch.mirror.kescher.at/$repo/os/$arch +#Server = http://mirror.kumi.systems/archlinux/$repo/os/$arch +#Server = https://mirror.kumi.systems/archlinux/$repo/os/$arch +#Server = http://mirror.fra10.de.leaseweb.net/archlinux/$repo/os/$arch +#Server = https://mirror.fra10.de.leaseweb.net/archlinux/$repo/os/$arch +#Server = http://mirror.metalgamer.eu/archlinux/$repo/os/$arch +#Server = https://mirror.metalgamer.eu/archlinux/$repo/os/$arch +#Server = http://mirror.mikrogravitation.org/archlinux/$repo/os/$arch +#Server = https://mirror.mikrogravitation.org/archlinux/$repo/os/$arch +#Server = https://mirror.pkgbuild.com/$repo/os/$arch +#Server = http://mirror.moson.org/arch/$repo/os/$arch +#Server = https://mirror.moson.org/arch/$repo/os/$arch +#Server = http://mirrors.n-ix.net/archlinux/$repo/os/$arch +#Server = https://mirrors.n-ix.net/archlinux/$repo/os/$arch +#Server = http://mirror.netcologne.de/archlinux/$repo/os/$arch +#Server = https://mirror.netcologne.de/archlinux/$repo/os/$arch +#Server = http://mirrors.niyawe.de/archlinux/$repo/os/$arch +#Server = https://mirrors.niyawe.de/archlinux/$repo/os/$arch +#Server = http://mirror.orbit-os.com/archlinux/$repo/os/$arch +#Server = https://mirror.orbit-os.com/archlinux/$repo/os/$arch +#Server = http://packages.oth-regensburg.de/archlinux/$repo/os/$arch +#Server = https://packages.oth-regensburg.de/archlinux/$repo/os/$arch +#Server = http://mirror.pagenotfound.de/archlinux/$repo/os/$arch +#Server = https://mirror.pagenotfound.de/archlinux/$repo/os/$arch +#Server = http://phinau.de/arch/$repo/os/$arch +#Server = https://phinau.de/arch/$repo/os/$arch +#Server = https://mirror.pseudoform.org/$repo/os/$arch +#Server = https://www.ratenzahlung.de/mirror/archlinux/$repo/os/$arch +#Server = http://ftp.halifax.rwth-aachen.de/archlinux/$repo/os/$arch +#Server = https://ftp.halifax.rwth-aachen.de/archlinux/$repo/os/$arch +#Server = http://linux.rz.rub.de/archlinux/$repo/os/$arch +#Server = http://mirror.satis-faction.de/archlinux/$repo/os/$arch +#Server = https://mirror.satis-faction.de/archlinux/$repo/os/$arch +#Server = http://mirror.selfnet.de/archlinux/$repo/os/$arch +#Server = https://mirror.selfnet.de/archlinux/$repo/os/$arch +#Server = http://ftp.spline.inf.fu-berlin.de/mirrors/archlinux/$repo/os/$arch +#Server = https://ftp.spline.inf.fu-berlin.de/mirrors/archlinux/$repo/os/$arch +#Server = http://archlinux.thaller.ws/$repo/os/$arch +#Server = https://archlinux.thaller.ws/$repo/os/$arch +#Server = http://ftp.tu-chemnitz.de/pub/linux/archlinux/$repo/os/$arch +#Server = http://mirror.ubrco.de/archlinux/$repo/os/$arch +#Server = https://mirror.ubrco.de/archlinux/$repo/os/$arch +#Server = http://mirror.undisclose.de/archlinux/$repo/os/$arch +#Server = https://mirror.undisclose.de/archlinux/$repo/os/$arch +#Server = http://ftp.uni-bayreuth.de/linux/archlinux/$repo/os/$arch +#Server = http://ftp.uni-hannover.de/archlinux/$repo/os/$arch +#Server = http://ftp.uni-kl.de/pub/linux/archlinux/$repo/os/$arch +#Server = http://mirror.united-gameserver.de/archlinux/$repo/os/$arch +#Server = https://arch.unixpeople.org/$repo/os/$arch +#Server = http://ftp.wrz.de/pub/archlinux/$repo/os/$arch +#Server = https://ftp.wrz.de/pub/archlinux/$repo/os/$arch +#Server = http://mirror.wtnet.de/arch/$repo/os/$arch +#Server = https://mirror.wtnet.de/arch/$repo/os/$arch +#Server = http://mirrors.xtom.de/archlinux/$repo/os/$arch +#Server = https://mirrors.xtom.de/archlinux/$repo/os/$arch +#Server = http://arch.mirror.zachlge.org/$repo/os/$arch +#Server = https://arch.mirror.zachlge.org/$repo/os/$arch + +## Greece +#Server = http://ftp.cc.uoc.gr/mirrors/linux/archlinux/$repo/os/$arch +#Server = https://repo.greeklug.gr/data/pub/linux/archlinux/$repo/os/$arch +#Server = http://mirrors.myaegean.gr/linux/archlinux/$repo/os/$arch +#Server = http://ftp.ntua.gr/pub/linux/archlinux/$repo/os/$arch +#Server = http://ftp.otenet.gr/linux/archlinux/$repo/os/$arch + +## Hong Kong +#Server = https://asia.mirror.pkgbuild.com/$repo/os/$arch +#Server = http://mirror-hk.koddos.net/archlinux/$repo/os/$arch +#Server = https://mirror-hk.koddos.net/archlinux/$repo/os/$arch +#Server = http://hkg.mirror.rackspace.com/archlinux/$repo/os/$arch +#Server = https://hkg.mirror.rackspace.com/archlinux/$repo/os/$arch +#Server = https://arch-mirror.wtako.net/$repo/os/$arch +#Server = http://mirror.xtom.com.hk/archlinux/$repo/os/$arch +#Server = https://mirror.xtom.com.hk/archlinux/$repo/os/$arch + +## Hungary +#Server = http://ftp.ek-cer.hu/pub/mirrors/ftp.archlinux.org/$repo/os/$arch +#Server = http://archmirror.hbit.sztaki.hu/archlinux/$repo/os/$arch +#Server = http://nova.quantum-mirror.hu/mirrors/pub/archlinux/$repo/os/$arch +#Server = http://quantum-mirror.hu/mirrors/pub/archlinux/$repo/os/$arch +#Server = http://super.quantum-mirror.hu/mirrors/pub/archlinux/$repo/os/$arch +#Server = https://nova.quantum-mirror.hu/mirrors/pub/archlinux/$repo/os/$arch +#Server = https://quantum-mirror.hu/mirrors/pub/archlinux/$repo/os/$arch +#Server = https://super.quantum-mirror.hu/mirrors/pub/archlinux/$repo/os/$arch + +## Iceland +#Server = http://mirror.system.is/arch/$repo/os/$arch +#Server = https://mirror.system.is/arch/$repo/os/$arch + +## India +#Server = http://mirror.cse.iitk.ac.in/archlinux/$repo/os/$arch +#Server = http://mirrors.piconets.webwerks.in/archlinux-mirror/$repo/os/$arch +#Server = https://mirrors.piconets.webwerks.in/archlinux-mirror/$repo/os/$arch + +## Indonesia +#Server = http://mirror.cloudweeb.com/archlinux/$repo/os/$arch +#Server = http://mirror.faizuladib.com/archlinux/$repo/os/$arch +#Server = http://mirror.gi.co.id/archlinux/$repo/os/$arch +#Server = https://mirror.gi.co.id/archlinux/$repo/os/$arch +#Server = http://vpsmurah.jagoanhosting.com/archlinux/$repo/os/$arch +#Server = https://vpsmurah.jagoanhosting.com/archlinux/$repo/os/$arch +#Server = http://mirror.labkom.id/archlinux/$repo/os/$arch +#Server = http://mirror.papua.go.id/archlinux/$repo/os/$arch +#Server = https://mirror.papua.go.id/archlinux/$repo/os/$arch +#Server = http://mirror.poliwangi.ac.id/archlinux/$repo/os/$arch +#Server = http://mirror.repository.id/archlinux/$repo/os/$arch +#Server = https://mirror.repository.id/archlinux/$repo/os/$arch +#Server = http://suro.ubaya.ac.id/archlinux/$repo/os/$arch +#Server = http://mirror.telkomuniversity.ac.id/archlinux/$repo/os/$arch +#Server = https://mirror.telkomuniversity.ac.id/archlinux/$repo/os/$arch + +## Iran +#Server = http://mirror.bardia.tech/archlinux/$repo/os/$arch +#Server = https://mirror.bardia.tech/archlinux/$repo/os/$arch +#Server = http://mirror.hostiran.ir/archlinux/$repo/os/$arch +#Server = https://mirror.hostiran.ir/archlinux/$repo/os/$arch +#Server = http://repo.iut.ac.ir/repo/archlinux/$repo/os/$arch +#Server = http://mirror.nak-mci.ir/arch/$repo/os/$arch +#Server = http://mirror.rasanegar.com/archlinux/$repo/os/$arch +#Server = https://mirror.rasanegar.com/archlinux/$repo/os/$arch + +## Ireland +#Server = http://ftp.heanet.ie/mirrors/ftp.archlinux.org/$repo/os/$arch +#Server = https://ftp.heanet.ie/mirrors/ftp.archlinux.org/$repo/os/$arch + +## Israel +#Server = http://mirror.isoc.org.il/pub/archlinux/$repo/os/$arch +#Server = https://mirror.isoc.org.il/pub/archlinux/$repo/os/$arch +#Server = https://archlinux.mivzakim.net/$repo/os/$arch + +## Italy +#Server = https://archmirror.it/repos/$repo/os/$arch +#Server = http://archlinux.mirror.garr.it/archlinux/$repo/os/$arch +#Server = http://mirrors.prometeus.net/archlinux/$repo/os/$arch +#Server = http://archlinux.mirror.server24.net/$repo/os/$arch +#Server = https://archlinux.mirror.server24.net/$repo/os/$arch + +## Japan +#Server = http://mirrors.cat.net/archlinux/$repo/os/$arch +#Server = https://mirrors.cat.net/archlinux/$repo/os/$arch +#Server = http://ftp.tsukuba.wide.ad.jp/Linux/archlinux/$repo/os/$arch +#Server = http://ftp.jaist.ac.jp/pub/Linux/ArchLinux/$repo/os/$arch +#Server = https://ftp.jaist.ac.jp/pub/Linux/ArchLinux/$repo/os/$arch + +## Kazakhstan +#Server = http://mirror.hoster.kz/archlinux/$repo/os/$arch +#Server = https://mirror.hoster.kz/archlinux/$repo/os/$arch +#Server = http://mirror.ps.kz/archlinux/$repo/os/$arch +#Server = https://mirror.ps.kz/archlinux/$repo/os/$arch + +## Kenya +#Server = http://archlinux.mirror.liquidtelecom.com/$repo/os/$arch +#Server = https://archlinux.mirror.liquidtelecom.com/$repo/os/$arch + +## Latvia +#Server = http://archlinux.koyanet.lv/archlinux/$repo/os/$arch +#Server = https://archlinux.koyanet.lv/archlinux/$repo/os/$arch + +## Lithuania +#Server = http://mirrors.atviras.lt/archlinux/$repo/os/$arch +#Server = https://mirrors.atviras.lt/archlinux/$repo/os/$arch +#Server = http://mirrors.ims.nksc.lt/archlinux/$repo/os/$arch +#Server = https://mirrors.ims.nksc.lt/archlinux/$repo/os/$arch + +## Luxembourg +#Server = http://archlinux.mirror.root.lu/$repo/os/$arch + +## Mexico +#Server = https://arch.jsc.mx/$repo/os/$arch + +## Moldova +#Server = http://mirror.ihost.md/archlinux/$repo/os/$arch +#Server = https://mirror.ihost.md/archlinux/$repo/os/$arch + +## Monaco +#Server = http://archlinux.qontinuum.space/$repo/os/$arch +#Server = https://archlinux.qontinuum.space:4443/$repo/os/$arch + +## Netherlands +#Server = http://mirror.cj2.nl/archlinux/$repo/os/$arch +#Server = https://mirror.cj2.nl/archlinux/$repo/os/$arch +#Server = https://mirrors.daan.vodka/archlinux/$repo/os/$arch +#Server = http://mirror.i3d.net/pub/archlinux/$repo/os/$arch +#Server = https://mirror.i3d.net/pub/archlinux/$repo/os/$arch +#Server = https://arch.jeweet.net/$repo/os/$arch +#Server = http://mirrors.kamey.tk/archlinux/$repo/os/$arch +#Server = https://mirrors.kamey.tk/archlinux/$repo/os/$arch +#Server = http://mirror.koddos.net/archlinux/$repo/os/$arch +#Server = https://mirror.koddos.net/archlinux/$repo/os/$arch +#Server = http://arch.mirrors.lavatech.top/$repo/os/$arch +#Server = https://arch.mirrors.lavatech.top/$repo/os/$arch +#Server = http://mirror.ams1.nl.leaseweb.net/archlinux/$repo/os/$arch +#Server = https://mirror.ams1.nl.leaseweb.net/archlinux/$repo/os/$arch +#Server = http://archlinux.mirror.liteserver.nl/$repo/os/$arch +#Server = https://archlinux.mirror.liteserver.nl/$repo/os/$arch +#Server = http://mirror.lyrahosting.com/archlinux/$repo/os/$arch +#Server = https://mirror.lyrahosting.com/archlinux/$repo/os/$arch +#Server = http://mirror.mijn.host/archlinux/$repo/os/$arch +#Server = https://mirror.mijn.host/archlinux/$repo/os/$arch +#Server = http://mirror.neostrada.nl/archlinux/$repo/os/$arch +#Server = https://mirror.neostrada.nl/archlinux/$repo/os/$arch +#Server = http://ftp.nluug.nl/os/Linux/distr/archlinux/$repo/os/$arch +#Server = http://archlinux.mirror.pcextreme.nl/$repo/os/$arch +#Server = https://archlinux.mirror.pcextreme.nl/$repo/os/$arch +#Server = http://mirror.serverion.com/archlinux/$repo/os/$arch +#Server = https://mirror.serverion.com/archlinux/$repo/os/$arch +#Server = http://ftp.snt.utwente.nl/pub/os/linux/archlinux/$repo/os/$arch +#Server = http://mirror.tarellia.net/distr/archlinux/$repo/os/$arch +#Server = https://mirror.tarellia.net/distr/archlinux/$repo/os/$arch +#Server = http://archlinux.mirror.wearetriple.com/$repo/os/$arch +#Server = https://archlinux.mirror.wearetriple.com/$repo/os/$arch +#Server = http://mirror-archlinux.webruimtehosting.nl/$repo/os/$arch +#Server = https://mirror-archlinux.webruimtehosting.nl/$repo/os/$arch +#Server = http://mirrors.xtom.nl/archlinux/$repo/os/$arch +#Server = https://mirrors.xtom.nl/archlinux/$repo/os/$arch + +## New Caledonia +#Server = http://mirror.lagoon.nc/pub/archlinux/$repo/os/$arch +#Server = http://archlinux.nautile.nc/archlinux/$repo/os/$arch +#Server = https://archlinux.nautile.nc/archlinux/$repo/os/$arch + +## New Zealand +#Server = http://mirror.2degrees.nz/archlinux/$repo/os/$arch +#Server = https://mirror.2degrees.nz/archlinux/$repo/os/$arch +#Server = http://mirror.fsmg.org.nz/archlinux/$repo/os/$arch +#Server = https://mirror.fsmg.org.nz/archlinux/$repo/os/$arch +#Server = https://archlinux.ourhome.kiwi/$repo/os/$arch +#Server = http://mirror.smith.geek.nz/archlinux/$repo/os/$arch +#Server = https://mirror.smith.geek.nz/archlinux/$repo/os/$arch + +## North Macedonia +#Server = http://arch.softver.org.mk/archlinux/$repo/os/$arch +#Server = http://mirror.onevip.mk/archlinux/$repo/os/$arch +#Server = http://mirror.t-home.mk/archlinux/$repo/os/$arch +#Server = https://mirror.t-home.mk/archlinux/$repo/os/$arch + +## Norway +#Server = http://mirror.archlinux.no/$repo/os/$arch +#Server = https://mirror.archlinux.no/$repo/os/$arch +#Server = http://archlinux.uib.no/$repo/os/$arch +#Server = http://mirror.neuf.no/archlinux/$repo/os/$arch +#Server = https://mirror.neuf.no/archlinux/$repo/os/$arch +#Server = http://mirror.terrahost.no/linux/archlinux/$repo/os/$arch + +## Pakistan +#Server = http://repo.inara.pk/archlinux/$repo/os/$arch +#Server = https://repo.inara.pk/archlinux/$repo/os/$arch + +## Paraguay +#Server = http://archlinux.mirror.py/archlinux/$repo/os/$arch + +## Poland +#Server = http://ftp.icm.edu.pl/pub/Linux/dist/archlinux/$repo/os/$arch +#Server = https://ftp.icm.edu.pl/pub/Linux/dist/archlinux/$repo/os/$arch +#Server = http://mirror.juniorjpdj.pl/archlinux/$repo/os/$arch +#Server = https://mirror.juniorjpdj.pl/archlinux/$repo/os/$arch +#Server = http://arch.midov.pl/arch/$repo/os/$arch +#Server = https://arch.midov.pl/arch/$repo/os/$arch +#Server = http://arch.nixlab.pl/$repo/os/$arch +#Server = https://arch.nixlab.pl/$repo/os/$arch +#Server = http://mirror.onet.pl/pub/mirrors/archlinux/$repo/os/$arch +#Server = http://piotrkosoft.net/pub/mirrors/ftp.archlinux.org/$repo/os/$arch +#Server = http://ftp.psnc.pl/linux/archlinux/$repo/os/$arch +#Server = https://ftp.psnc.pl/linux/archlinux/$repo/os/$arch +#Server = http://mirror.sfinae.tech/pub/mirrors/archlinux/$repo/os/$arch +#Server = https://mirror.sfinae.tech/pub/mirrors/archlinux/$repo/os/$arch +#Server = http://repo.skni.umcs.pl/archlinux/$repo/os/$arch +#Server = https://repo.skni.umcs.pl/archlinux/$repo/os/$arch +#Server = http://ftp.vectranet.pl/archlinux/$repo/os/$arch + +## Portugal +#Server = http://glua.ua.pt/pub/archlinux/$repo/os/$arch +#Server = https://glua.ua.pt/pub/archlinux/$repo/os/$arch +#Server = http://ftp.rnl.tecnico.ulisboa.pt/pub/archlinux/$repo/os/$arch +#Server = https://ftp.rnl.tecnico.ulisboa.pt/pub/archlinux/$repo/os/$arch +#Server = http://mirrors.up.pt/pub/archlinux/$repo/os/$arch +#Server = https://mirrors.up.pt/pub/archlinux/$repo/os/$arch + +## Romania +#Server = http://mirrors.chroot.ro/archlinux/$repo/os/$arch +#Server = https://mirrors.chroot.ro/archlinux/$repo/os/$arch +#Server = http://mirror.efect.ro/archlinux/$repo/os/$arch +#Server = https://mirror.efect.ro/archlinux/$repo/os/$arch +#Server = http://mirror.flokinet.net/archlinux/$repo/os/$arch +#Server = https://mirror.flokinet.net/archlinux/$repo/os/$arch +#Server = http://mirrors.go.ro/archlinux/$repo/os/$arch +#Server = https://mirrors.go.ro/archlinux/$repo/os/$arch +#Server = http://mirrors.hostico.ro/archlinux/$repo/os/$arch +#Server = https://mirrors.hostico.ro/archlinux/$repo/os/$arch +#Server = http://archlinux.mirrors.linux.ro/$repo/os/$arch +#Server = http://mirrors.m247.ro/archlinux/$repo/os/$arch +#Server = http://mirrors.nav.ro/archlinux/$repo/os/$arch +#Server = http://mirrors.nxthost.com/archlinux/$repo/os/$arch +#Server = https://mirrors.nxthost.com/archlinux/$repo/os/$arch +#Server = http://mirrors.pidginhost.com/arch/$repo/os/$arch +#Server = https://mirrors.pidginhost.com/arch/$repo/os/$arch + +## Russia +#Server = http://mirror.surf/archlinux/$repo/os/$arch +#Server = https://mirror.surf/archlinux/$repo/os/$arch +#Server = http://mirror.nw-sys.ru/archlinux/$repo/os/$arch +#Server = https://mirror.nw-sys.ru/archlinux/$repo/os/$arch +#Server = http://mirrors.powernet.com.ru/archlinux/$repo/os/$arch +#Server = http://mirror.rol.ru/archlinux/$repo/os/$arch +#Server = https://mirror.rol.ru/archlinux/$repo/os/$arch +#Server = http://mirror.truenetwork.ru/archlinux/$repo/os/$arch +#Server = https://mirror.truenetwork.ru/archlinux/$repo/os/$arch +#Server = http://mirror.yandex.ru/archlinux/$repo/os/$arch +#Server = https://mirror.yandex.ru/archlinux/$repo/os/$arch +#Server = http://archlinux.zepto.cloud/$repo/os/$arch + +## Réunion +#Server = http://arch.mithril.re/$repo/os/$arch + +## Serbia +#Server = http://arch.petarmaric.com/$repo/os/$arch +#Server = http://mirror.pmf.kg.ac.rs/archlinux/$repo/os/$arch + +## Singapore +#Server = http://mirror.0x.sg/archlinux/$repo/os/$arch +#Server = https://mirror.0x.sg/archlinux/$repo/os/$arch +#Server = http://mirror.aktkn.sg/archlinux/$repo/os/$arch +#Server = https://mirror.aktkn.sg/archlinux/$repo/os/$arch +#Server = https://download.nus.edu.sg/mirror/archlinux/$repo/os/$arch +#Server = http://mirror.guillaumea.fr/archlinux/$repo/os/$arch +#Server = https://mirror.guillaumea.fr/archlinux/$repo/os/$arch +#Server = http://mirror.jingk.ai/archlinux/$repo/os/$arch +#Server = https://mirror.jingk.ai/archlinux/$repo/os/$arch +#Server = http://ossmirror.mycloud.services/os/linux/archlinux/$repo/os/$arch + +## Slovakia +#Server = http://mirror.lnx.sk/pub/linux/archlinux/$repo/os/$arch +#Server = https://mirror.lnx.sk/pub/linux/archlinux/$repo/os/$arch +#Server = http://tux.rainside.sk/archlinux/$repo/os/$arch + +## Slovenia +#Server = http://archimonde.ts.si/archlinux/$repo/os/$arch +#Server = https://archimonde.ts.si/archlinux/$repo/os/$arch + +## South Africa +#Server = http://archlinux.za.mirror.allworldit.com/archlinux/$repo/os/$arch +#Server = https://archlinux.za.mirror.allworldit.com/archlinux/$repo/os/$arch +#Server = http://za.mirror.archlinux-br.org/$repo/os/$arch +#Server = http://mirror.is.co.za/mirror/archlinux.org/$repo/os/$arch +#Server = http://opnmirror.co.za/archlinux/$repo/os/$arch +#Server = https://opnmirror.co.za/archlinux/$repo/os/$arch +#Server = http://mirrors.urbanwave.co.za/archlinux/$repo/os/$arch +#Server = https://mirrors.urbanwave.co.za/archlinux/$repo/os/$arch + +## South Korea +#Server = http://mirror.anigil.com/archlinux/$repo/os/$arch +#Server = https://mirror.anigil.com/archlinux/$repo/os/$arch +#Server = http://mirror.funami.tech/arch/$repo/os/$arch +#Server = https://mirror.funami.tech/arch/$repo/os/$arch +#Server = http://ftp.harukasan.org/archlinux/$repo/os/$arch +#Server = https://ftp.harukasan.org/archlinux/$repo/os/$arch +#Server = http://ftp.lanet.kr/pub/archlinux/$repo/os/$arch +#Server = https://ftp.lanet.kr/pub/archlinux/$repo/os/$arch +#Server = http://mirror.premi.st/archlinux/$repo/os/$arch +#Server = https://mirror.premi.st/archlinux/$repo/os/$arch + +## Spain +#Server = https://mirror.cloroformo.org/archlinux/$repo/os/$arch +#Server = http://mirror.librelabucm.org/archlinux/$repo/os/$arch +#Server = https://mirror.librelabucm.org/archlinux/$repo/os/$arch +#Server = http://ftp.rediris.es/mirror/archlinux/$repo/os/$arch +#Server = http://sharing.thelinuxsect.com/archlinux/$repo/os/$arch + +## Sweden +#Server = http://ftp.acc.umu.se/mirror/archlinux/$repo/os/$arch +#Server = https://ftp.acc.umu.se/mirror/archlinux/$repo/os/$arch +#Server = http://ftpmirror.infania.net/mirror/archlinux/$repo/os/$arch +#Server = https://ftp.ludd.ltu.se/mirrors/archlinux/$repo/os/$arch +#Server = http://ftp.lysator.liu.se/pub/archlinux/$repo/os/$arch +#Server = https://ftp.lysator.liu.se/pub/archlinux/$repo/os/$arch +#Server = http://ftp.myrveln.se/pub/linux/archlinux/$repo/os/$arch +#Server = https://ftp.myrveln.se/pub/linux/archlinux/$repo/os/$arch +#Server = https://mirror.osbeck.com/archlinux/$repo/os/$arch +#Server = http://tedwall.se/archlinux/$repo/os/$arch +#Server = https://tedwall.se/archlinux/$repo/os/$arch + +## Switzerland +#Server = http://pkg.adfinis.com/archlinux/$repo/os/$arch +#Server = https://pkg.adfinis.com/archlinux/$repo/os/$arch +#Server = http://mirror.init7.net/archlinux/$repo/os/$arch +#Server = https://mirror.init7.net/archlinux/$repo/os/$arch +#Server = http://mirror.puzzle.ch/archlinux/$repo/os/$arch +#Server = https://mirror.puzzle.ch/archlinux/$repo/os/$arch +#Server = https://theswissbay.ch/archlinux/$repo/os/$arch +#Server = https://mirror.ungleich.ch/mirror/packages/archlinux/$repo/os/$arch + +## Taiwan +#Server = http://archlinux.ccns.ncku.edu.tw/archlinux/$repo/os/$arch +#Server = http://free.nchc.org.tw/arch/$repo/os/$arch +#Server = https://free.nchc.org.tw/arch/$repo/os/$arch +#Server = http://archlinux.cs.nctu.edu.tw/$repo/os/$arch +#Server = http://shadow.ind.ntou.edu.tw/archlinux/$repo/os/$arch +#Server = https://shadow.ind.ntou.edu.tw/archlinux/$repo/os/$arch +#Server = http://ftp.tku.edu.tw/Linux/ArchLinux/$repo/os/$arch +#Server = http://ftp.yzu.edu.tw/Linux/archlinux/$repo/os/$arch +#Server = https://ftp.yzu.edu.tw/Linux/archlinux/$repo/os/$arch + +## Thailand +#Server = https://mirror.cyberbits.asia/archlinux/$repo/os/$arch +#Server = http://mirror.kku.ac.th/archlinux/$repo/os/$arch +#Server = https://mirror.kku.ac.th/archlinux/$repo/os/$arch +#Server = http://mirror2.totbb.net/archlinux/$repo/os/$arch + +## Turkey +#Server = http://ftp.linux.org.tr/archlinux/$repo/os/$arch +#Server = http://mirror.veriteknik.net.tr/archlinux/$repo/os/$arch + +## Ukraine +#Server = http://archlinux.astra.in.ua/$repo/os/$arch +#Server = https://archlinux.astra.in.ua/$repo/os/$arch +#Server = http://repo.endpoint.ml/archlinux/$repo/os/$arch +#Server = https://repo.endpoint.ml/archlinux/$repo/os/$arch +#Server = http://archlinux.ip-connect.vn.ua/$repo/os/$arch +#Server = https://archlinux.ip-connect.vn.ua/$repo/os/$arch +#Server = http://mirror.mirohost.net/archlinux/$repo/os/$arch +#Server = https://mirror.mirohost.net/archlinux/$repo/os/$arch +#Server = http://mirrors.nix.org.ua/linux/archlinux/$repo/os/$arch +#Server = https://mirrors.nix.org.ua/linux/archlinux/$repo/os/$arch + +## United Kingdom +#Server = http://archlinux.uk.mirror.allworldit.com/archlinux/$repo/os/$arch +#Server = https://archlinux.uk.mirror.allworldit.com/archlinux/$repo/os/$arch +#Server = http://mirror.bytemark.co.uk/archlinux/$repo/os/$arch +#Server = https://mirror.bytemark.co.uk/archlinux/$repo/os/$arch +#Server = http://mirrors.gethosted.online/archlinux/$repo/os/$arch +#Server = https://mirrors.gethosted.online/archlinux/$repo/os/$arch +#Server = http://mirrors.manchester.m247.com/arch-linux/$repo/os/$arch +#Server = http://mirrors.melbourne.co.uk/archlinux/$repo/os/$arch +#Server = https://mirrors.melbourne.co.uk/archlinux/$repo/os/$arch +#Server = http://www.mirrorservice.org/sites/ftp.archlinux.org/$repo/os/$arch +#Server = https://www.mirrorservice.org/sites/ftp.archlinux.org/$repo/os/$arch +#Server = http://mirror.netweaver.uk/archlinux/$repo/os/$arch +#Server = https://mirror.netweaver.uk/archlinux/$repo/os/$arch +#Server = http://lon.mirror.rackspace.com/archlinux/$repo/os/$arch +#Server = https://lon.mirror.rackspace.com/archlinux/$repo/os/$arch +#Server = http://arch.serverspace.co.uk/arch/$repo/os/$arch +#Server = http://mirrors.ukfast.co.uk/sites/archlinux.org/$repo/os/$arch +#Server = https://mirrors.ukfast.co.uk/sites/archlinux.org/$repo/os/$arch +#Server = http://mirror.cov.ukservers.com/archlinux/$repo/os/$arch +#Server = https://mirror.cov.ukservers.com/archlinux/$repo/os/$arch + +## United States +#Server = http://mirrors.acm.wpi.edu/archlinux/$repo/os/$arch +#Server = http://mirrors.advancedhosters.com/archlinux/$repo/os/$arch +#Server = http://mirrors.aggregate.org/archlinux/$repo/os/$arch +#Server = https://america.mirror.pkgbuild.com/$repo/os/$arch +#Server = http://ca.us.mirror.archlinux-br.org/$repo/os/$arch +#Server = http://il.us.mirror.archlinux-br.org/$repo/os/$arch +#Server = http://mirror.arizona.edu/archlinux/$repo/os/$arch +#Server = https://mirror.arizona.edu/archlinux/$repo/os/$arch +#Server = http://arlm.tyzoid.com/$repo/os/$arch +#Server = https://arlm.tyzoid.com/$repo/os/$arch +#Server = https://mirror.ava.dev/archlinux/$repo/os/$arch +#Server = http://mirrors.cat.pdx.edu/archlinux/$repo/os/$arch +#Server = http://mirror.cc.columbia.edu/pub/linux/archlinux/$repo/os/$arch +#Server = http://mirror.clarkson.edu/archlinux/$repo/os/$arch +#Server = https://mirror.clarkson.edu/archlinux/$repo/os/$arch +#Server = http://arch.mirror.constant.com/$repo/os/$arch +#Server = https://arch.mirror.constant.com/$repo/os/$arch +#Server = http://mirror.cs.pitt.edu/archlinux/$repo/os/$arch +#Server = http://mirror.cs.vt.edu/pub/ArchLinux/$repo/os/$arch +#Server = http://mirror.cybersecurity.nmt.edu/archlinux/$repo/os/$arch +#Server = https://mirror.cybersecurity.nmt.edu/archlinux/$repo/os/$arch +#Server = http://distro.ibiblio.org/archlinux/$repo/os/$arch +#Server = http://mirror.es.its.nyu.edu/archlinux/$repo/os/$arch +#Server = http://mirror.ette.biz/archlinux/$repo/os/$arch +#Server = https://mirror.ette.biz/archlinux/$repo/os/$arch +#Server = http://mirrors.gigenet.com/archlinux/$repo/os/$arch +#Server = http://www.gtlib.gatech.edu/pub/archlinux/$repo/os/$arch +#Server = http://mirror.hackingand.coffee/arch/$repo/os/$arch +#Server = https://mirror.hackingand.coffee/arch/$repo/os/$arch +#Server = https://mirror.hodgepodge.dev/archlinux/$repo/os/$arch +#Server = http://mirror.hostup.org/archlinux/$repo/os/$arch +#Server = https://mirror.hostup.org/archlinux/$repo/os/$arch +#Server = http://arch.hu.fo/archlinux/$repo/os/$arch +#Server = https://arch.hu.fo/archlinux/$repo/os/$arch +#Server = http://repo.ialab.dsu.edu/archlinux/$repo/os/$arch +#Server = https://repo.ialab.dsu.edu/archlinux/$repo/os/$arch +#Server = http://mirrors.kernel.org/archlinux/$repo/os/$arch +#Server = https://mirrors.kernel.org/archlinux/$repo/os/$arch +#Server = http://mirror.dal10.us.leaseweb.net/archlinux/$repo/os/$arch +#Server = http://mirror.mia11.us.leaseweb.net/archlinux/$repo/os/$arch +#Server = http://mirror.sfo12.us.leaseweb.net/archlinux/$repo/os/$arch +#Server = http://mirror.wdc1.us.leaseweb.net/archlinux/$repo/os/$arch +#Server = https://mirror.dal10.us.leaseweb.net/archlinux/$repo/os/$arch +#Server = https://mirror.mia11.us.leaseweb.net/archlinux/$repo/os/$arch +#Server = https://mirror.sfo12.us.leaseweb.net/archlinux/$repo/os/$arch +#Server = https://mirror.wdc1.us.leaseweb.net/archlinux/$repo/os/$arch +#Server = http://mirrors.liquidweb.com/archlinux/$repo/os/$arch +#Server = http://mirror.lty.me/archlinux/$repo/os/$arch +#Server = https://mirror.lty.me/archlinux/$repo/os/$arch +#Server = http://mirrors.lug.mtu.edu/archlinux/$repo/os/$arch +#Server = https://mirrors.lug.mtu.edu/archlinux/$repo/os/$arch +#Server = http://mirror.math.princeton.edu/pub/archlinux/$repo/os/$arch +#Server = http://mirror.metrocast.net/archlinux/$repo/os/$arch +#Server = http://mirror.kaminski.io/archlinux/$repo/os/$arch +#Server = https://mirror.kaminski.io/archlinux/$repo/os/$arch +#Server = http://iad.mirrors.misaka.one/archlinux/$repo/os/$arch +#Server = https://iad.mirrors.misaka.one/archlinux/$repo/os/$arch +#Server = http://repo.miserver.it.umich.edu/archlinux/$repo/os/$arch +#Server = http://mirrors.mit.edu/archlinux/$repo/os/$arch +#Server = https://mirrors.mit.edu/archlinux/$repo/os/$arch +#Server = http://mirrors.ocf.berkeley.edu/archlinux/$repo/os/$arch +#Server = https://mirrors.ocf.berkeley.edu/archlinux/$repo/os/$arch +#Server = http://archmirror1.octyl.net/$repo/os/$arch +#Server = https://archmirror1.octyl.net/$repo/os/$arch +#Server = http://ftp.osuosl.org/pub/archlinux/$repo/os/$arch +#Server = http://arch.mirrors.pair.com/$repo/os/$arch +#Server = http://dfw.mirror.rackspace.com/archlinux/$repo/os/$arch +#Server = http://iad.mirror.rackspace.com/archlinux/$repo/os/$arch +#Server = http://ord.mirror.rackspace.com/archlinux/$repo/os/$arch +#Server = https://dfw.mirror.rackspace.com/archlinux/$repo/os/$arch +#Server = https://iad.mirror.rackspace.com/archlinux/$repo/os/$arch +#Server = https://ord.mirror.rackspace.com/archlinux/$repo/os/$arch +#Server = http://mirrors.radwebhosting.com/archlinux/$repo/os/$arch +#Server = https://mirrors.radwebhosting.com/archlinux/$repo/os/$arch +#Server = http://plug-mirror.rcac.purdue.edu/archlinux/$repo/os/$arch +#Server = https://plug-mirror.rcac.purdue.edu/archlinux/$repo/os/$arch +#Server = http://mirrors.rit.edu/archlinux/$repo/os/$arch +#Server = https://mirrors.rit.edu/archlinux/$repo/os/$arch +#Server = http://mirrors.rutgers.edu/archlinux/$repo/os/$arch +#Server = https://mirrors.rutgers.edu/archlinux/$repo/os/$arch +#Server = http://mirror.siena.edu/archlinux/$repo/os/$arch +#Server = http://mirrors.sonic.net/archlinux/$repo/os/$arch +#Server = https://mirrors.sonic.net/archlinux/$repo/os/$arch +#Server = http://mirror.phx1.us.spryservers.net/archlinux/$repo/os/$arch +#Server = https://mirror.phx1.us.spryservers.net/archlinux/$repo/os/$arch +#Server = http://arch.mirror.square-r00t.net/$repo/os/$arch +#Server = https://arch.mirror.square-r00t.net/$repo/os/$arch +#Server = http://mirror.stephen304.com/archlinux/$repo/os/$arch +#Server = https://mirror.stephen304.com/archlinux/$repo/os/$arch +#Server = http://ftp.sudhip.com/archlinux/$repo/os/$arch +#Server = https://ftp.sudhip.com/archlinux/$repo/os/$arch +#Server = http://mirror.pit.teraswitch.com/archlinux/$repo/os/$arch +#Server = https://mirror.pit.teraswitch.com/archlinux/$repo/os/$arch +#Server = https://mirror.theash.xyz/arch/$repo/os/$arch +#Server = http://tick-tack.mynetgear.com/archlinux/$repo/os/$arch +#Server = https://tick-tack.mynetgear.com/archlinux/$repo/os/$arch +#Server = http://mirror.umd.edu/archlinux/$repo/os/$arch +#Server = https://mirror.umd.edu/archlinux/$repo/os/$arch +#Server = http://mirror.vtti.vt.edu/archlinux/$repo/os/$arch +#Server = http://mirrors.xmission.com/archlinux/$repo/os/$arch +#Server = http://mirrors.xtom.com/archlinux/$repo/os/$arch +#Server = https://mirrors.xtom.com/archlinux/$repo/os/$arch +#Server = https://zxcvfdsa.com/arch/$repo/os/$arch + +## Vietnam +#Server = http://f.archlinuxvn.org/archlinux/$repo/os/$arch +#Server = http://mirror.bizflycloud.vn/archlinux/$repo/os/$arch + diff --git a/os-release b/os-release new file mode 100755 index 0000000..2bd118b --- /dev/null +++ b/os-release @@ -0,0 +1,8 @@ +NAME="SpectreOS" +PRETTY_NAME="SpectreOS" +ID=arch +ID_LIKE=archlinux +ANSI_COLOR="0;36" +HOME_URL="https://www.archlinux.org/" +SUPPORT_URL="https://bbs.archlinux.org/" +BUG_REPORT_URL="https://bugs.archlinux.org/" diff --git a/packages.txt b/packages.txt new file mode 100644 index 0000000..2b852df --- /dev/null +++ b/packages.txt @@ -0,0 +1,60 @@ +dhcpcd nano vim intel-ucode amd-ucode iwd lvm2 btrfs-progs arch-install-scripts +squashfs-tools dosfstools libisoburn grub efibootmgr dosfstools gptfdisk cronie +acpid dbus avahi +cups hplip +alacritty +ark +base base-devel linux linux-firmware +bashtop +browserpass +browserpass-chromium +browserpass-firefox +capitaine-cursors +chezmoi +chromium +cmake gradle +code +filezilla +firefox-dark-reader +firefox-i18n-de +firefox-ublock-origin +gimp +git +gnupg +gparted +grim +gvfs +htop +jre-openjdk +lxde-gtk3 xfce4 mousepad +network-manager-applet +networkmanager +networkmanager-openvpn +networkmanager-qt +nm-connection-editor +noto-fonts +noto-fonts-emoji +noto-fonts-extra +opus-tools vorbis-tools flac ffmpeg +pixz +pkg-config gcc +polkit +python +qemu-system-x86 +sway i3-gaps i3status-rust +swaybg +swayidle +swaylock +syncthing +vlc +wine +wine-gecko +wine-mono +winetricks +wireguard-tools +xarchiver +xdg-user-dirs +xdg-user-dirs-gtk +xorg-server xorg-xinit xorg-drivers +xournalpp libreoffice +yt-dlp diff --git a/pacman.conf b/pacman.conf new file mode 100755 index 0000000..d30022d --- /dev/null +++ b/pacman.conf @@ -0,0 +1,103 @@ +# +# /etc/pacman.conf +# +# See the pacman.conf(5) manpage for option and repository directives + +# +# GENERAL OPTIONS +# +[options] +# The following paths are commented out with their default values listed. +# If you wish to use different paths, uncomment and update the paths. +#RootDir = / +#DBPath = /var/lib/pacman/ +CacheDir = /var/cache/pacman/pkg/ +LogFile = /var/log/pacman.log +#GPGDir = /etc/pacman.d/gnupg/ +HookDir = /etc/pacman.d/hooks/ +HoldPkg = pacman glibc +#XferCommand = /usr/bin/curl -4 -v -C - -f %u > %o +#XferCommand = /usr/bin/wget -4 --passive-ftp -c -t 0 -O %o %u +#XferCommand = /usr/bin/snarf -N %u +#XferCommand = /usr/bin/aria2c --allow-overwrite=true --continue=true --file-allocation=none --log-level=error --max-tries=2 --max-connection-per-server=2 --max-file-not-found=5 --min-split-size=5M --no-conf --remote-time=true --summary-interval=60 --timeout=5 --dir=/ --out %o %u +#CleanMethod = KeepInstalled +#UseDelta = 0.7 +Architecture = auto + +# Pacman won't upgrade packages listed in IgnorePkg and members of IgnoreGroup +#IgnorePkg = +#IgnoreGroup = + +#NoUpgrade = +#NoExtract = + +# Misc options +#UseSyslog +Color +#TotalDownload +CheckSpace +#VerbosePkgLists +ParallelDownloads = 5 + +# By default, pacman accepts packages signed by keys that its local keyring +# trusts (see pacman-key and its man page), as well as unsigned packages. +SigLevel = Never +LocalFileSigLevel = Optional +RemoteFileSigLevel = Never + +# NOTE: You must run `pacman-key --init` before first using pacman; the local +# keyring can then be populated with the keys of all official Arch Linux +# packagers with `pacman-key --populate archlinux`. + +# +# REPOSITORIES +# - can be defined here or included from another file +# - pacman will search repositories in the order defined here +# - local/custom mirrors can be added here or in separate files +# - repositories listed first will take precedence when packages +# have identical names, regardless of version number +# - URLs will have $repo replaced by the name of the current repo +# - URLs will have $arch replaced by the name of the architecture +# +# Repository entries are of the format: +# [repo-name] +# Server = ServerName +# Include = IncludePath +# +# The header [repo-name] is crucial - it must be present and +# uncommented to enable the repo. +# + +# The testing repositories are disabled by default. To enable, uncomment the +# repo name header and Include lines. You can add preferred servers immediately +# after the header, and they will be used before the default mirrors. + +#[testing] +#Include = /etc/pacman.d/mirrorlist-arch + +[core] +Include = /etc/pacman.d/mirrorlist-arch + +[extra] +Include = /etc/pacman.d/mirrorlist-arch + +#[community-testing] +#Include = /etc/pacman.d/mirrorlist-arch + +[community] +Include = /etc/pacman.d/mirrorlist-arch + +# If you want to run 32 bit applications on your x86_64 system, +# enable the multilib repositories as required here. + +#[multilib-testing] +#Include = /etc/pacman.d/mirrorlist-arch + +[multilib] +Include = /etc/pacman.d/mirrorlist-arch + +# An example of a custom package repository. See the pacman manpage for +# tips on creating your own repositories. +#[custom] +#SigLevel = Optional TrustAll +#Server = file:///home/custompkgs diff --git a/polkit/50-org.freedesktop.NetworkManager.rules b/polkit/50-org.freedesktop.NetworkManager.rules new file mode 100755 index 0000000..b6fe9c7 --- /dev/null +++ b/polkit/50-org.freedesktop.NetworkManager.rules @@ -0,0 +1,5 @@ +polkit.addRule(function(action, subject) { + if (action.id.indexOf("org.freedesktop.NetworkManager.") == 0 && subject.isInGroup("network")) { + return polkit.Result.YES; + } +}); diff --git a/polkit/51-blueman.rules b/polkit/51-blueman.rules new file mode 100755 index 0000000..7fa206f --- /dev/null +++ b/polkit/51-blueman.rules @@ -0,0 +1,11 @@ +/* Allow users in wheel group to use blueman feature requiring root without authentication */ +polkit.addRule(function(action, subject) { + if ((action.id == "org.blueman.network.setup" || + action.id == "org.blueman.dhcp.client" || + action.id == "org.blueman.rfkill.setstate" || + action.id == "org.blueman.pppd.pppconnect") && + subject.isInGroup("wheel")) { + + return polkit.Result.YES; + } +}); diff --git a/repo.sh b/repo.sh new file mode 100755 index 0000000..78fad98 --- /dev/null +++ b/repo.sh @@ -0,0 +1,21 @@ +#!/bin/bash +set -ex + +ENVLOCAL="/etc/environment" +export WEBADDRESS_OS="https://git.spectreos.de/simono41/SpectreOS.git" +export WEBADDRESS_SCRIPTE="https://git.spectreos.de/simono41/shell-scripte-code.git" + +if grep 'WEBADDRESS_OS' $ENVLOCAL; then + sed -i 's|WEBADDRESS_OS=.*|WEBADDRESS_OS='$WEBADDRESS_OS'|' $ENVLOCAL +else + echo "WEBADDRESS_OS=${WEBADDRESS_OS}" >> $ENVLOCAL +fi + +if grep 'WEBADDRESS_SCRIPTE' $ENVLOCAL; then + sed -i 's|WEBADDRESS_SCRIPTE=.*|WEBADDRESS_SCRIPTE='$WEBADDRESS_SCRIPTE'|' $ENVLOCAL +else + echo "WEBADDRESS_SCRIPTE=${WEBADDRESS_SCRIPTE}" >> $ENVLOCAL +fi + +# Lese die Umgebungsvariablen neu +source /etc/environment diff --git a/scripts/addusers.sh b/scripts/addusers.sh new file mode 100755 index 0000000..2ee54a2 --- /dev/null +++ b/scripts/addusers.sh @@ -0,0 +1,65 @@ +#!/usr/bin/env bash +# +set -ex + +if [[ $EUID -ne 0 ]]; then + echo "This script must be run as root" 1>&2 + sudo $0 + exit 0 +fi +echo "Als root Angemeldet" +# +function addusers() { + useradd -m -g users -G wheel,audio,video,sys,optical -s /bin/bash $username + passwd ${username} < /dev/null; then + tempuser=$(cat /etc/passwd | grep "x:1000" | awk '{print $1}') + user=${tempuser%%:*} +else + user=$(whoami) +fi + +url="$1" +packagename=${url##*/} +mkdir -p /home/${user}/aur-builds +cd /home/${user}/aur-builds +pwd + +function aurinstaller() { + if git clone ${url}; then + echo "git erfolgreich runtergeladen!!!" + else + echo "verändere URL zum erfolgreichen herunterladen!!!" + git clone "https://aur.archlinux.org/${url}.git" + fi + echo "Erstelle Dateirechte" + chmod 777 -R ${packagename} + cd ${packagename} + + +} + +if [ -d ${packagename} ];then + echo "Bereits vorhanden!!!" + cd ${packagename} + git reset --hard +else + aurinstaller +fi + +function aurinstallwithoutroot() { + makepkg -si --skipchecksums --skippgpcheck --nocheck --noconfirm --install --needed +} + +function aurinstallwithroot() { + su "${user}" -c "makepkg -si --skipchecksums --skippgpcheck --nocheck --noconfirm --install --needed" +} + +if ! [[ $EUID -ne 0 ]]; then + run=aurinstallwithroot +else + run=aurinstallwithoutroot +fi + +if $run; then + echo "Installation von ${packagename} erfolgreich beendet!!!" +else + echo "Installation von ${packagename} fehlgeschlagen!!!" + echo "Bitte bearbeite in den nächsten 5 Sekunden bei bedarf die PKGBUILD für einen erneuten versuch" + echo "Speichern sie dann die Datei mit STRG + X und dann y" + sleep 5 + # Vim läppert manchmal nicht + nano -w PKGBUILD + + n=1 + if [[ $EUID -ne 0 ]]; then + while ! makepkg -si --skipchecksums --skippgpcheck --nocheck --noconfirm --install --needed; do + echo "restart!!!" + if [ "$n" == "4" ]; then + echo "terminated" + echo "versuche manuelle Installation!!!" + sudo pacman -U $(echo $(find /home/${user}/aur-builds/${packagename}/ -name "*zst") | cut -d" " -f1) + break + fi + echo "Position: $n" + (( n++ )) + done + else + while ! su "${user}" -c "makepkg -si --skipchecksums --skippgpcheck --nocheck --noconfirm --install --needed"; do + echo "restart!!!" + if [ "$n" == "4" ]; then + echo "terminated" + echo "versuche manuelle Installation!!!" + pacman -U $(echo $(find /home/${user}/aur-builds/${packagename}/ -name "*zst") | cut -d" " -f1) + break + fi + echo "Position: $n" + (( n++ )) + done + fi + +fi + +echo "Fertig!!!" diff --git a/scripts/aurupdater.sh b/scripts/aurupdater.sh new file mode 100755 index 0000000..f2a2f4f --- /dev/null +++ b/scripts/aurupdater.sh @@ -0,0 +1,21 @@ +#!/usr/bin/env bash + +set -x + +if cat /etc/passwd | grep "x:1000" > /dev/null; then + tempuser=$(cat /etc/passwd | grep "x:1000" | awk '{print $1}') + user=${tempuser%%:*} +else + user=$(whoami) +fi + +echo "Durchsuche auf neue Packete indem fremde Packete angezeigt werden!!!" + +# for-schleife +for wort in $(pacman -Qmq) +do + echo "$wort" + if [ -d "/home/${user}/aur-builds/${wort}" ];then + /usr/bin/aurinstaller ${wort} + fi +done diff --git a/scripts/btrfs-swapoff b/scripts/btrfs-swapoff new file mode 100755 index 0000000..24516bf --- /dev/null +++ b/scripts/btrfs-swapoff @@ -0,0 +1,26 @@ +#!/bin/sh +# +# Copyright (C) Sebastian Philipp +# +# roughly based on https://gist.github.com/romaninsh/118952ce61643914fb00 (Set up swap on CoreOS) +# + +set -e + +swapname="$1" +swapfile="$(losetup -j "$swapname" | /usr/bin/cut -d : -f 1)" + +if [ -z "$swapname" -o -z "$swapfile" ] +then + cat < + +file: path to the existing swap file. This file should have been created with btrfs-swapon. +EOF + exit 1 +fi + + +swapoff "$swapfile" +losetup -d "$swapfile" +rm "$swapname" diff --git a/scripts/btrfs-swapoff.sh b/scripts/btrfs-swapoff.sh new file mode 100644 index 0000000..24516bf --- /dev/null +++ b/scripts/btrfs-swapoff.sh @@ -0,0 +1,26 @@ +#!/bin/sh +# +# Copyright (C) Sebastian Philipp +# +# roughly based on https://gist.github.com/romaninsh/118952ce61643914fb00 (Set up swap on CoreOS) +# + +set -e + +swapname="$1" +swapfile="$(losetup -j "$swapname" | /usr/bin/cut -d : -f 1)" + +if [ -z "$swapname" -o -z "$swapfile" ] +then + cat < + +file: path to the existing swap file. This file should have been created with btrfs-swapon. +EOF + exit 1 +fi + + +swapoff "$swapfile" +losetup -d "$swapfile" +rm "$swapname" diff --git a/scripts/btrfs-swapon b/scripts/btrfs-swapon new file mode 100755 index 0000000..4f2f941 --- /dev/null +++ b/scripts/btrfs-swapon @@ -0,0 +1,39 @@ +#!/bin/sh +# +# Copyright (C) Sebastian Philipp +# + +set -e + +swapsize="$1" +swapname="$2" + + +if [ -f /$swapname ] +then + rm /$swapname +fi + +if [ -z "$swapsize" -o -z "$swapname" ] +then + cat < + +size: the size of the file, like "8G" +file: path to the new swap file. This file should not exists. +EOF + exit 1 +fi + + +swapfile=$(losetup -f) #free loop device + +# set NOCOW +touch $swapname +chmod 0600 $swapname +chattr +C $swapname +head -c $swapsize /dev/zero >> $swapname + +losetup $swapfile $swapname #mount file to loop +mkswap $swapfile +swapon $swapfile diff --git a/scripts/btrfs-swapon.sh b/scripts/btrfs-swapon.sh new file mode 100644 index 0000000..3c1655b --- /dev/null +++ b/scripts/btrfs-swapon.sh @@ -0,0 +1,40 @@ +#!/bin/sh +# +# Copyright (C) Sebastian Philipp +# + +set -e + +swapsize="$1" +swapname="$2" + + +if [ -z "$swapsize" -o -z "$swapname" ] +then + cat < + +size: the size of the file, like "8G" +file: path to the new swap file. This file should not exists. +EOF + exit 1 +fi + +if [ -e $swapname ] +then + echo "error: File already exists. $swapname" + exit 1 +fi + +swapfile=$(losetup -f) #free loop device + +# set NOCOW +#touch $swapname +fallocate -l "$swapsize" "$swapname" +chmod 0600 $swapname +chattr +C $swapname +#head -c $swapsize /dev/zero >> $swapname + +losetup $swapfile $swapname #mount file to loop +mkswap $swapfile +swapon $swapfile diff --git a/scripts/clipboard_wrapper/bemenu_wrapper b/scripts/clipboard_wrapper/bemenu_wrapper new file mode 100755 index 0000000..0177cd6 --- /dev/null +++ b/scripts/clipboard_wrapper/bemenu_wrapper @@ -0,0 +1,4 @@ +#!/usr/bin/env sh +set -euo pipefail + +wl-clipboard-history -p "$(wl-clipboard-history -l 20 | bemenu -i --nb "#3f3f3f" --nf "#dcdccc" --fn "pango:DejaVu Sans Mono 12" | cut -d ',' -f1)" | wl-copy diff --git a/scripts/clipboard_wrapper/dmenu_wrapper b/scripts/clipboard_wrapper/dmenu_wrapper new file mode 100755 index 0000000..099dee7 --- /dev/null +++ b/scripts/clipboard_wrapper/dmenu_wrapper @@ -0,0 +1,4 @@ +#!/usr/bin/env sh +set -euo pipefail + +wl-clipboard-history -p "$(wl-clipboard-history -l 20 | dmenu | cut -d ',' -f1)" | wl-copy diff --git a/scripts/clipboard_wrapper/fzf_wrapper b/scripts/clipboard_wrapper/fzf_wrapper new file mode 100755 index 0000000..5f51f80 --- /dev/null +++ b/scripts/clipboard_wrapper/fzf_wrapper @@ -0,0 +1,4 @@ +#!/usr/bin/env sh +set -euo pipefail + +wl-clipboard-history -p "$(wl-clipboard-history -l 20 | fzf --with-nth 2.. -d , | cut -d ',' -f1)" diff --git a/scripts/clipboard_wrapper/wl-clipboard-history b/scripts/clipboard_wrapper/wl-clipboard-history new file mode 100755 index 0000000..8db1ad9 --- /dev/null +++ b/scripts/clipboard_wrapper/wl-clipboard-history @@ -0,0 +1,55 @@ +#!/usr/bin/env sh +set -euo pipefail + +clipboard_file="$HOME/.clipboard.sqlite" + +query () { + echo "$1" | sqlite3 -separator "," "$clipboard_file" +} + +if [ ! -f "$clipboard_file" ]; then + query " + CREATE TABLE c (id INTEGER NOT NULL PRIMARY KEY AUTOINCREMENT, contents text); + CREATE TRIGGER rotate_rows AFTER INSERT ON c + BEGIN + DELETE FROM c WHERE id <= (SELECT id FROM c ORDER BY id DESC LIMIT 1000, 1); + END;" +fi + + +listen () { + wl-paste -w wl-clipboard-history +} + +helpusage () { + echo "Usage: $0 OPTION [ARG]" + echo "" + echo "Without any arguments the command will insert contents of stdin in the database" + echo " -t Track clipboard changes" + echo " -l [NUMBER] Print last NUMBER of clipboard entries (defaults to 10 entries)" + echo " -p [INDEX] Print clipboard entry at INDEX (defaults to the last entry)" +} + +if [ $# = 0 ]; then + contents="$(< /dev/stdin sed "s/'/''/g")" + if [ "$contents" = "" ]; then + helpusage + exit 1 + else + query "INSERT INTO c (contents) VALUES ('${contents}');" + exit 0 + fi +fi + + +if [ "$1" = "-t" ]; then + listen +elif [ "$1" = "-l" ]; then + query "SELECT MAX(id), REPLACE(contents, ' +', '') FROM c GROUP BY contents ORDER BY id DESC LIMIT ${2:-10}" +elif [ "$1" = "-p" ]; then + query "SELECT contents FROM c WHERE id = ${2:-"(SELECT id FROM c ORDER BY id DESC)"}" +else + helpusage + exit 1 +fi diff --git a/scripts/compress-pigz.sh b/scripts/compress-pigz.sh new file mode 100755 index 0000000..98dfd50 --- /dev/null +++ b/scripts/compress-pigz.sh @@ -0,0 +1,32 @@ +#!/usr/bin/env bash + +set -ex + +archiv=$2 + +# https://codepre.com/de/pigz-comprime-y-descomprime-archivos-en-paralelo-en-linux.html +if [ "make" == "$1" ]; then + while (( "$(expr $# - 2)" )) + do + + dateien="$3 ${dateien}" + + shift + + done + + tar --use-compress-program=pigz -cf ${archiv} ${dateien} + +elif [ "restore" == "$1" ]; then + + pfad=$3 + [[ -z "${pfad}" ]] && pfad="." + + tar --use-compress-program=pigz -xf ${archiv} -C ${pfad} + +else + echo "tar.gz compress-script" + echo "./compress.sh make/restore archivname.tar.gz input/output" + echo "./compress.sh make archivname.tar.zst daten" + echo "./compress.sh restore archivname ort" +fi diff --git a/scripts/compress.sh b/scripts/compress.sh new file mode 100755 index 0000000..456eb8a --- /dev/null +++ b/scripts/compress.sh @@ -0,0 +1,32 @@ +#!/usr/bin/env bash + +set -ex + +archiv=$2 + +# https://linuxconfig.org/how-to-install-and-use-zstd-compression-tool-on-linux +if [ "make" == "$1" ]; then + while (( "$(expr $# - 2)" )) + do + + dateien="$3 ${dateien}" + + shift + + done + + tar -I 'zstd -c -T0 --ultra -20 -' -cf ${archiv} ${dateien} + +elif [ "restore" == "$1" ]; then + + pfad=$3 + [[ -z "${pfad}" ]] && pfad="." + + tar --use-compress-program=unzstd -xf ${archiv} -C ${pfad} + +else + echo "tar.zst compress-script" + echo "./compress.sh make/restore archivname.tar.zst input/output" + echo "./compress.sh make archivname.tar.zst daten" + echo "./compress.sh restore archivname ort" +fi diff --git a/scripts/csv2tsv b/scripts/csv2tsv new file mode 100755 index 0000000..c77ee2d --- /dev/null +++ b/scripts/csv2tsv @@ -0,0 +1,44 @@ +#!/usr/bin/env perl + +use Text::CSV; +use Getopt::Long qw/ GetOptionsFromArray :config pass_through /; +use warnings; +use strict; + +my $usage = "usage: $0 [-e] < file.csv\n"; + +exit main( @ARGV ); + + +sub main +{ + my $escape = 0; + + GetOptionsFromArray( \@_, 'escape' => \$escape ) or die $usage; + + my $csv = Text::CSV->new( { binary => 1 } ); + my $in = \*STDIN; + + while (my $row = $csv->getline( $in )) { + @$row = map c_escape($_) => @$row if $escape; + print join("\t" => @$row) . $/; + } + + $csv->eof or $csv->error_diag(); + + return 0; +} + + +sub c_escape +{ + my $str = shift; + my %escapes = + ( + "\\" => "\\\\", + "\n" => "\\n", + "\t" => "\\t", + ); + $str =~ s/([\\\n\t])/ $escapes{$1} /ge; + return $str; +} diff --git a/scripts/hardreset.sh b/scripts/hardreset.sh new file mode 100755 index 0000000..f6c7405 --- /dev/null +++ b/scripts/hardreset.sh @@ -0,0 +1,17 @@ +#!/usr/bin/env bash + +set -ex + +umount -a +mount -f / -o remount,ro +echo "System schaltet sich gleich SOFORT!!! aus in" +echo "3" +sleep 1 +echo "2" +sleep 1 +echo "1" +sleep1 + +echo s >| /proc/sysrq-trigger +echo u >| /proc/sysrq-trigger +echo b >| /proc/sysrq-trigger diff --git a/scripts/i3exit-systemd b/scripts/i3exit-systemd new file mode 100755 index 0000000..7a55426 --- /dev/null +++ b/scripts/i3exit-systemd @@ -0,0 +1,30 @@ +#!/bin/sh +lock() { + i3lock +} + +case "$1" in + lock) + i3lock -c 000000 + ;; + logout) + i3-msg exit + ;; + suspend) + lock && systemctl suspend + ;; + hibernate) + lock && systemctl hibernate + ;; + reboot) + systemctl reboot + ;; + shutdown) + systemctl poweroff + ;; + *) + echo "Usage: $0 {lock|logout|suspend|hibernate|reboot|shutdown}" + exit 2 +esac + +exit 0 diff --git a/scripts/import-gsettings b/scripts/import-gsettings new file mode 100755 index 0000000..99fe4b4 --- /dev/null +++ b/scripts/import-gsettings @@ -0,0 +1,11 @@ +#!/bin/sh + +# usage: import-gsettings : : ... + +expression="" +for pair in "$@"; do + IFS=:; set -- $pair + expressions="$expressions -e 's:^$2=(.*)$:gsettings set org.gnome.desktop.interface $1 \1:e'" +done +IFS= +eval exec sed -E $expressions "${XDG_CONFIG_HOME:-$HOME/.config}"/gtk-3.0/settings.ini >/dev/null diff --git a/scripts/lm_sensors b/scripts/lm_sensors new file mode 100755 index 0000000..f3ad630 --- /dev/null +++ b/scripts/lm_sensors @@ -0,0 +1,9 @@ +# Generated by sensors-detect on Mon Dec 9 21:32:05 2019 +# This file is sourced by /etc/init.d/lm_sensors and defines the modules to +# be loaded/unloaded. +# +# The format of this file is a shell script that simply defines variables: +# HWMON_MODULES for hardware monitoring driver modules, and optionally +# BUS_MODULES for any required bus driver module (for example for I2C or SPI). + +HWMON_MODULES="nct6775" diff --git a/scripts/mouse-pnp-event-handler.sh b/scripts/mouse-pnp-event-handler.sh new file mode 100755 index 0000000..47ea130 --- /dev/null +++ b/scripts/mouse-pnp-event-handler.sh @@ -0,0 +1,51 @@ +#!/usr/bin/env bash +## $1 = "add" / "remove" +## $2 = %k from udev + +## Set TRACKPAD_NAME according to your configuration. +## Check your trackpad name with: +## find /sys/class/input/ -name mouse* -exec udevadm info -a {} \; | grep 'ATTRS{name}' +#TRACKPAD_NAME="SynPS/2 Synaptics TouchPad" +#TRACKPAD_NAME="ELAN0501:00 04F3:3060 Touchpad" +temptrackpad="$(find /sys/class/input/ -name mouse* -exec udevadm info -a {} \; | grep 'ATTRS{name}' -m 1)" +TRACKPAD_NAME="${temptrackpad:18:$((${#temptrackpad})) - 19}" + +USERLIST=$(w -h | cut -d' ' -f1 | sort | uniq) +MOUSELIST=$(find /sys/class/input/ -name mouse*) + +for CUR_USER in ${USERLIST}; do + CUR_USER_XAUTH="$(sudo -Hiu ${CUR_USER} env | grep -e "^HOME=" | cut -d'=' -f2)/.Xauthority" + + + ## Can't find a way to get another users DISPLAY variable from an isolated root environment. Have to set it manually. + #CUR_USER_DISPL="$(sudo -Hiu ${CUR_USER} env | grep -e "^DISPLAY=" | cut -d'=' -f2)" + CUR_USER_DISPL=":0" + + export XAUTHORITY="${CUR_USER_XAUTH}" + export DISPLAY="${CUR_USER_DISPL}" + + if [ -f "${CUR_USER_XAUTH}" ]; then + case "$1" in + "add") + echo "${TRACKPAD_NAME}" > /tmp/trackpad + /usr/bin/synclient TouchpadOff=1 + /usr/bin/logger "USB mouse plugged. Disabling touchpad for $CUR_USER. ($XAUTHORITY - $DISPLAY)" + ;; + "remove") + ## Only execute synclient if there are no external USB mice connected to the system. + EXT_MOUSE_FOUND="0" + for CUR_MOUSE in ${MOUSELIST}; do + if [ "$(cat ${CUR_MOUSE}/device/name)" != "$(cat /tmp/trackpad)" ]; then + EXT_MOUSE_FOUND="1" + fi + done + if [ "${EXT_MOUSE_FOUND}" == "0" ]; then + /usr/bin/synclient TouchpadOff=0 + /usr/bin/logger "No additional external mice found. Enabling touchpad for $CUR_USER." + else + logger "Additional external mice found. Won't enable touchpad yet for $CUR_USER." + fi + ;; + esac + fi +done diff --git a/scripts/pinentry-wayland b/scripts/pinentry-wayland new file mode 100755 index 0000000..53fd81b --- /dev/null +++ b/scripts/pinentry-wayland @@ -0,0 +1,10 @@ +#!/bin/sh + +pinentry_shell="pinentry-tty" +pinentry_gui="pinentry-qt" + +if [ "$WAYLAND_DISPLAY" = "" -o "$PINENTRY_USER_DATA" = "USE_TTY=1" ]; then + exec $pinentry_shell "$@" +fi + +exec env DISPLAY=$WAYLAND_DISPLAY $pinentry_gui "$@" diff --git a/scripts/safe-umount.sh b/scripts/safe-umount.sh new file mode 100755 index 0000000..5d7d40c --- /dev/null +++ b/scripts/safe-umount.sh @@ -0,0 +1,25 @@ +#!/usr/bin/env bash + +set -ex + +if [[ $EUID -ne 0 ]]; then + echo "This script must be run as root" 1>&2 + sudo $0 $1 $2 $3 $4 $5 $6 $7 $8 $9 + exit 0 +fi +echo "Als root Angemeldet" + +device="$1" +[[ -z "${device}" ]] && device=/dev/sdb + +while [[ -n "${device}" ]] +do + + for wort in $(cat /proc/mounts | grep ${device}${m2ssd} | awk '{print $1}'); do + if cat /proc/mounts | grep ${wort} > /dev/null; then + umount ${wort} + fi + done + shift + +done diff --git a/scripts/slowtype b/scripts/slowtype new file mode 100755 index 0000000..cdbc152 --- /dev/null +++ b/scripts/slowtype @@ -0,0 +1,133 @@ +#!/bin/bash +# slowtype - type text documents slowly + +nonstopmode="" +file="" + +hotkeys_usage(){ + echo " Interactive keys:" >&2 + echo " SPACE - Pause/Continue" >&2 + echo " ENTER - Print all until next paragraph" >&2 + echo " ? - help" >&2 + echo " c - clear screen" >&2 + echo " n - toggle Nonstop mode (pausing at paragraph end)" >&2 + echo " q - finish current line and quit" >&2 +} + +usage(){ + echo "Usage: $0 [options] filename" >&2 + echo " Typewriting source code with syntax highlighting" >&2 + echo " (C) Klaus Knopper 2012, License: GPL V2" >&2 + echo "" >&2 + echo "Options:" >&2 + echo " -h - help" >&2 + echo " -c - clear screen first" >&2 + echo " -n - nonstop mode (don't stop at paragraph)" >&2 + echo "" >&2 + hotkeys_usage +} + +# Split options vs. files +for arg in "$@"; do + case "$arg" in + -c) clear ;; + -n) nonstopmode=true ;; + -h|--help|-\?) usage; exit 0 ;; + *) [ -r "$arg" ] && file="$arg" || { usage ; exit 1; } ;; + esac +done + +if [ ! -r "$file" ]; then + usage + exit 1 +fi + +# 0.0$sleepvalue +usleepchar="5000" +usleepspace="5000" +usleepline="5000" +usleeppar="5000" + +charmode="true" +linemode="" +parmode="" + +KEY="" +ACTION="" + +trap bailout 1 2 3 10 15 + +bailout(){ + stty echo >/dev/tty /dev/null; then + let d=$RANDOM%5000+$1 + else + [ -n "$charmode" ] && let d+="$usleepchar" + [ -n "$linemode" ] && let d+="$usleepline" + [ -n "$parmode" ] && let d+="$usleeppar" + let d+=$RANDOM%5000 + fi + readkey "0.0$d" +} + +### MAIN + +stty -echo +while IFS='' read -r line; do + if [ -z "$nonstopmode" -a -z "$line" ]; then + ACTION="" + waitforkey + evalkey + fi + l="$line" + while [ -n "$l" ]; do + echo -n "${l:0:1}" + l="${l#?}" + [ -n "$ACTION" ] || delay + done + echo "" + case x"$ACTION" in + xquit) bailout 0 ;; + xhelp) hotkeys_usage; ACTION=""; waitforkey; evalkey;; + xclear) echo -n -e "\033[H\033[J"; ACTION=""; waitforkey; evalkey;; + esac +done <<. +$(highlight -O ansi "$file" | tr -d '\r') +. + +bailout 0 diff --git a/scripts/snapshot.sh b/scripts/snapshot.sh new file mode 100755 index 0000000..c0db497 --- /dev/null +++ b/scripts/snapshot.sh @@ -0,0 +1,122 @@ +#!/usr/bin/env bash + +set -ex + +if [[ $EUID -ne 0 ]]; then + echo "This script must be run as root" 1>&2 + sudo $0 $1 $2 $3 $4 $5 $6 $7 $8 $9 + exit 0 +fi +echo "Als root Angemeldet" + +timetoday="$(date "+%Y%m%d-%H%M%S")" + +if [ "make" == "$1" ] || [ "add" == "$1" ] || [ "backup" == "$1" ] || [ "cp" == "$1" ] || [ "create" == "$1" ]; then + + while (( "$(expr $# - 1)" )) + do + + pfad="${2}" + + echo "${timetoday}" > /btrfs-root/__current/${pfad}/SNAPSHOT + echo "BACKUP" >> /btrfs-root/__current/${pfad}/SNAPSHOT + + sed -i "s|__current/${pfad}|__snapshot/${pfad}@`head -n 1 /btrfs-root/__current/${pfad}/SNAPSHOT`|g;" /etc/fstab.default + + mkdir -p /btrfs-root/__snapshot/${pfad%/*} + btrfs subvolume snapshot /btrfs-root/__current/${pfad} /btrfs-root/__snapshot/${pfad}@`head -n 1 /btrfs-root/__current/${pfad}/SNAPSHOT` + #btrfs subvolume snapshot -r /btrfs-root/__current/${pfad} /btrfs-root/__snapshot/${pfad}@`head -n 1 /btrfs-root/__current/${pfad}/SNAPSHOT` + + #if ! [ "${pfad}" == "ROOT" ]; then + # rm /btrfs-root/__current/${pfad}/SNAPSHOT + #fi + + shift + + done + + #reset-fstab + cp /etc/fstab /etc/fstab.default + + kernel="initramfs-linux.img" + linuz="vmlinuz-linux" + kernelback="initramfs-linux-fallback.img" + + cp /boot/${kernel} /boot/backup_initramfs-linux.img + cp /boot/${linuz} /boot/backup_vmlinuz-linux + + #stable-snapshot-boot + #if [ -f "/boot/arch-uefi.conf.default" ]; then + # kernel="initramfs-stable.img" + # linuz="vmlinuz-stable" + # sed "s|%LINUZ%|${linuz}|g;s|%KERNEL%|${kernel}|g;s|rootflags=subvol=__current/ROOT|rootflags=subvol=__snapshot/ROOT@`head -n 1 /btrfs-root/__current/ROOT/SNAPSHOT`|g" /boot/arch-uefi.conf.default > /boot/loader/entries/arch-uefi-stable.conf + #fi + + echo "__snapshot/ROOT@`head -n 1 /btrfs-root/__current/ROOT/SNAPSHOT`" >> /etc/grub-snapshot + grub-mkconfig -o /boot/grub/grub.cfg + + #if [ -f /btrfs-root/__current/ROOT/SNAPSHOT ]; then + # rm /btrfs-root/__current/ROOT/SNAPSHOT + #fi + + elif [ "restore" == "$1" ] || [ "remake" == "$1" ] || [ "mv" == "$1" ]; then + + while (( "$(expr $# - 1)" )) + do + + pfad="${2}" + + if [ -d /btrfs-root/__current/${pfad/@*}.old ]; then + btrfs subvolume delete /btrfs-root/__current/${pfad/@*}.old + fi + mv /btrfs-root/__current/${pfad/@*} /btrfs-root/__current/${pfad/@*}.old + btrfs subvolume snapshot /btrfs-root/__snapshot/${pfad} /btrfs-root/__current/${pfad/@*} + + #only root for the fstab + if [ "${pfad}" == "ROOT" ]; then + cp /etc/fstab /btrfs-root/__current/${pfad/@*}/etc/fstab + fi + + + + + shift + + done + + + btrfs subvolume list -p / + + #echo "Bitte noch die /etc/fstab editieren und die neuen IDs eintragen!!!" + + echo "Bitte damit die Änderungen wirksam werden das System neustarten!!!" + + #reboot + + elif [ "delete" == "$1" ] || [ "del" == "$1" ] || [ "rm" == "$1" ]; then + + while (( "$(expr $# - 1)" )) + do + pfad="${2}" + + if btrfs subvolume delete /btrfs-root/__snapshot/${pfad}\@* ;then + echo "${pfad} erfolgreich gelöscht!!!" + else + echo "${pfad} konnte nicht gefunden werden!!!" + fi + + shift + done + +else + + echo "bash ./snapshot.sh PARAMETER PFAD" + echo "Parameters: make restore" + echo "make var/cache/pacman/pkg opt home ROOT" + echo "restore ROOT@20170725-235544 home@20170725-235544 opt@20170725-235544 var/cache/pacman/pkg@20170725-235544" + + btrfs subvolume list -p / + +fi + +echo "Fertig !!!" diff --git a/scripts/startup-script.sh b/scripts/startup-script.sh new file mode 100755 index 0000000..b9786e9 --- /dev/null +++ b/scripts/startup-script.sh @@ -0,0 +1,97 @@ +#!/usr/bin/env bash + +set -x + +cmdlineparameter=$(cat /proc/cmdline) +repo=spectreos +user=user1 + +if cat /etc/passwd | grep "x:1000" > /dev/null; then + tempuser=$(cat /etc/passwd | grep "x:1000" | awk '{print $1}') + user=${tempuser%%:*} +fi + +for wort in $(cat /proc/cmdline) +do + echo "Parameter ${wort%=*} = ${wort#*=}" + if ! export ${wort%=*}=${wort#*=}; then echo "cannot export ${wort}!!!"; fi +done + + +function loadnvidia () { + + echo ":: nvidia driver loading..." + + mkdir -p -m 755 /etc/X11/xorg.conf.d/ + + nvidia-xconfig + + if modprobe nvidia; then + echo "nvidia driver loaded" + else + echo "nvidia driver failed" + fi + + if [ -f "/etc/X11/xorg.conf.d/20-nouveau.conf" ]; then + rm /etc/X11/xorg.conf.d/20-nouveau.conf + fi + +} + +if cat /proc/cmdline | grep "nvidia=y" 1>/dev/null 2>&1; then + + loadnvidia + +fi + +# set systemconfiguration + +if cat /proc/cmdline | grep "lang" 1>/dev/null 2>&1; then + + if ! cat /etc/locale.conf | grep LANG=${lang}.UTF-8 1>/dev/null 2>&1; then + + # + echo "LANG=${lang}.UTF-8" > /etc/locale.conf + echo "LC_COLLATE=C" >> /etc/locale.conf + echo "LANGUAGE=${lang}" >> /etc/locale.conf + # + echo "${lang}.UTF-8 UTF-8" > /etc/locale.gen + echo "${lang} ISO-8859-1" >> /etc/locale.gen + #echo "${lang}@euro ISO-8859-15" >> /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 + + fi + # +fi + +if cat /proc/cmdline | grep "keytable" 1>/dev/null 2>&1; then + + keytable_short="${keytable:0:2}" + echo "KEYMAP=${keytable_short}" > /etc/vconsole.conf + echo "FONT=lat9w-16" >> /etc/vconsole.conf + if [ -f "/etc/conf.d/keymaps" ]; then + sed -i 's/keymap=.*$/keymap=\"'$keytable_short'\"/' /etc/conf.d/keymaps + fi + + sed -e 's|Option "XkbLayout".*$|Option "XkbLayout" "'$keytable_short'"|' -i /etc/X11/xorg.conf.d/20-keyboard.conf + if [ "$keytable_short" != "de" ]; then + sed -e 's| xkb_layout.*$| xkb_layout '$keytable_short',de|' -i /home/${user}/.config/sway/config + fi +fi +# +if cat /proc/cmdline | grep "tz" 1>/dev/null 2>&1; then + + # 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/"${tz}" /etc/localtime + +fi + +echo "Fertig!!!" + diff --git a/scripts/swayexit-systemd b/scripts/swayexit-systemd new file mode 100755 index 0000000..a038ed0 --- /dev/null +++ b/scripts/swayexit-systemd @@ -0,0 +1,30 @@ +#!/bin/sh +lock() { + i3lock +} + +case "$1" in + lock) + swaylock -c 000000 + ;; + logout) + killall sway + ;; + suspend) + lock && systemctl suspend + ;; + hibernate) + lock && systemctl hibernate + ;; + reboot) + systemctl reboot + ;; + shutdown) + systemctl poweroff + ;; + *) + echo "Usage: $0 {lock|logout|suspend|hibernate|reboot|shutdown}" + exit 2 +esac + +exit 0 diff --git a/scripts/tablet-onboard.sh b/scripts/tablet-onboard.sh new file mode 100755 index 0000000..3f29cd4 --- /dev/null +++ b/scripts/tablet-onboard.sh @@ -0,0 +1,15 @@ +#!/usr/bin/env bash +# +set -ex + +while true +do + FTB=`ps -e | grep onboard | wc -l` + if [ "$FTB" == 0 ]; then + /usr/bin/onboard + else + echo "onboard already started" + fi + + sleep 10 +done diff --git a/scripts/touchpad_toggle.sh b/scripts/touchpad_toggle.sh new file mode 100755 index 0000000..0ad2a0f --- /dev/null +++ b/scripts/touchpad_toggle.sh @@ -0,0 +1,16 @@ +#!/usr/bin/env bash + +declare -i ID +ID=`xinput list | grep -Eio '(touchpad|glidepoint)\s*id\=[0-9]{1,2}' | grep -Eo '[0-9]{1,2}'` +declare -i STATE +STATE=`xinput list-props $ID|grep 'Device Enabled'|awk '{print $4}'` +if [ $STATE -eq 1 ] +then + xinput disable $ID + echo "Touchpad disabled." + notify-send -a 'Touchpad' 'Disabled' -i /usr/share/icons/Adwaita/48x48/devices/input-touchpad-symbolic.symbolic.png +else + xinput enable $ID + echo "Touchpad enabled." + notify-send -a 'Touchpad' 'Enabled' -i /usr/share/icons/Adwaita/48x48/devices/input-touchpad-symbolic.symbolic.png +fi diff --git a/scripts/tsv2csv b/scripts/tsv2csv new file mode 100755 index 0000000..734d92f --- /dev/null +++ b/scripts/tsv2csv @@ -0,0 +1,47 @@ +#!/usr/bin/env perl + +use Text::CSV; +use Getopt::Long qw/ GetOptionsFromArray :config pass_through /; +use warnings; +use strict; + +my $usage = "usage: $0 [-e] < file.tsv\n"; + +exit main( @ARGV ); + + +sub main +{ + my $escape = 0; + + GetOptionsFromArray( \@_, 'escape|e' => \$escape ) or die $usage; + + my $csv = Text::CSV->new( { binary => 1 } ); + my $out = \*STDOUT; + + while () + { + chomp; + do { print $/; next } if /^\s*$/; + my @row = split /\t/; + @row = map c_unescape($_) => @row if $escape; + $csv->combine( @row ) or die "CSV error: ".$csv->error_diag; + print $out $csv->string.$/; + } + + return 0; +} + + +sub c_unescape +{ + my $str = shift; + my %unescapes = + ( + "\\\\" => "\\", + "\\n" => "\n", + "\\t" => "\t", + ); + $str =~ s/(\\[\\nt])/ $unescapes{$1} /ge; + return $str; +} diff --git a/scripts/update-bootloader.sh b/scripts/update-bootloader.sh new file mode 100755 index 0000000..4014e31 --- /dev/null +++ b/scripts/update-bootloader.sh @@ -0,0 +1,48 @@ +#!/usr/bin/env bash + +set -ex + +if [[ $EUID -ne 0 ]]; then + echo "This script must be run as root" 1>&2 + sudo $0 $1 $2 $3 $4 $5 $6 $7 $8 $9 + exit 0 +fi +echo "Als root Angemeldet" + + +kernel1="$(echo $(find /boot/ -name "initramfs*linux.img") | cut -d" " -f1)" +linuz1="$(echo $(find /boot/ -name "vmlinuz*") | cut -d" " -f1)" +kernel="${kernel1#/*/}" +linuz="${linuz1#/*/}" + +kernelback1="$(echo $(find /boot/ -name "initramfs*-fallback.img") | cut -d" " -f1)" +kernelback="${kernelback1#/*/}" + + +echo "Kernel: ${kernel}" +echo "Linuz: ${linuz}" +echo "Kernel-fallback: ${kernelback}" + +if [ "${kernel1}" == "/boot/initramfs-linux.img" ]; then + echo "Ist die selbe Datei. Operation nicht notwendig!!!" +else + + cp "${kernel1}" "/boot/initramfs-linux.img" + cp "${linuz1}" "/boot/vmlinuz-linux" + +fi + +if [ -f /boot/arch-uefi.conf.default ]; then + sed "s|%LINUZ%|vmlinuz-linux|g; + s|%KERNEL%|initramfs-linux.img|g" /boot/arch-uefi.conf.default > /boot/loader/entries/arch-uefi.conf + + sed "s|%LINUZ%|vmlinuz-linux|g; + s|%KERNEL%|initramfs-linux-fallback.img|g" /boot/arch-uefi.conf.default > /boot/loader/entries/arch-uefi-fallback.conf +fi + +if [ -f /boot/initramfs-stable.img ]; then + cp /boot/initramfs-linux.img /boot/initramfs-stable.img + cp /boot/vmlinuz-linux /boot/vmlinuz-stable +fi + +echo "Bootloader update $(date)" >> /update.log diff --git a/scripts/update.sh b/scripts/update.sh new file mode 100755 index 0000000..82510d2 --- /dev/null +++ b/scripts/update.sh @@ -0,0 +1,48 @@ +#!/usr/bin/env bash + +set -ex +user=$(whoami) + +if [[ $EUID -ne 0 ]]; then + echo "This script must be run as root" 1>&2 + sudo "${0}" "$@" + exit 0 +fi +echo "Als root Angemeldet" + +version="${1}" + +git config --global credential.helper store +repo=deadc0de-remix-os +repo1=shell-scripte-code +arch=$(uname -m) + +# Aktualisiere die Repositiories +/opt/${repo}/repo.sh + +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 +cd / + +/opt/${repo}/arch-graphical-install-auto.sh + +echo "Fertig!!!" diff --git a/scripts/write_cowspace b/scripts/write_cowspace new file mode 100755 index 0000000..6b9b611 --- /dev/null +++ b/scripts/write_cowspace @@ -0,0 +1,77 @@ +#!/bin/bash + +set -ex + +if [[ $EUID -ne 0 ]]; then + echo "This script must be run as root" 1>&2 + exit 1 +fi +# Satz="Hallo du schöne Welt" +# echo "${Satz:0:5} ${Satz:16}" + +#system=$(blkid -L SIMON_OS) +#echo $system + +#/dev/sdd +#system1=$(echo "${system:0:8}") +#echo $system1 + +fdisk -l + +function secureumount() { + #statements + # + if cat /proc/mounts | grep ${device}1 > /dev/null; then + echo "gemountet" + umount ${device}1 + else + echo "nicht gemountet" + fi + # + if cat /proc/mounts | grep ${device}2 > /dev/null; then + echo "gemountet" + umount ${device}2 + else + echo "nicht gemountet" + fi + # + if cat /proc/mounts | grep ${device}3 > /dev/null; then + echo "gemountet" + umount ${device}3 + else + echo "nicht gemountet" + fi + # +} + +read -p "Soll das Image jetzt eine Partition zum Offline-Schreiben erhalten? [Y/n] " partition +if [ "$partition" != "n" ] +then + if [ "$device" == "" ] + then + fdisk -l + read -p "Wo das Image jetzt geschrieben werden? /dev/sda " device + [[ -z "${device}" ]] && device=/dev/sda + fi + + secureumount + + fdisk -W always ${device} < "/sys/block/zram" i "/comp_algorithm" + system("mkswap /dev/zram" i " -L zram" i) + swapdevs = swapdevs " /dev/zram" i + } + + system("swapon -p 100" swapdevs) + } + ' /proc/cpuinfo /proc/meminfo +} + +stop() { + exec awk ' + FNR > 1 && $1 ~ /^\/dev\/zram[0-9]+$/ { + activeswaps = activeswaps " " $1 + } + + END { + system("swapoff" activeswaps) + system("rmmod zram") + } + ' /proc/swaps +} + +case $1 in + start|stop) "$1" ;; +esac diff --git a/service/btrfs-swapon.service b/service/btrfs-swapon.service new file mode 100755 index 0000000..933327d --- /dev/null +++ b/service/btrfs-swapon.service @@ -0,0 +1,10 @@ +[Unit] +Description=btrfs-swapon +After=multi-user.target + +[Service] +Type=simple +ExecStart=/usr/bin/btrfs-swapon %swapfilespeicher% /btrfs.swap + +[Install] +WantedBy=multi-user.target diff --git a/service/startup-script.service b/service/startup-script.service new file mode 100755 index 0000000..7c435a1 --- /dev/null +++ b/service/startup-script.service @@ -0,0 +1,11 @@ +[Unit] +Description=startup shell commands for Desktop Graphic-card usw. +Before=display-manager.service + +[Service] +User=root +Type=simple +ExecStart=/usr/bin/startup-script + +[Install] +WantedBy=multi-user.target diff --git a/service/x11vnc.service b/service/x11vnc.service new file mode 100755 index 0000000..29a34cd --- /dev/null +++ b/service/x11vnc.service @@ -0,0 +1,10 @@ +[Unit] +Description=Start X11VNC +After=multi-user.target + +[Service] +Type=simple +ExecStart=/usr/bin/x11vnc -display :0 -auth guess -forever -loop -noxdamage -repeat -passwd PASSWORD -rfbport 5900 -shared + +[Install] +WantedBy=multi-user.target diff --git a/service/zramswap.service b/service/zramswap.service new file mode 100755 index 0000000..f31f31f --- /dev/null +++ b/service/zramswap.service @@ -0,0 +1,11 @@ +[Unit] +Description=Zram-based swap (compressed RAM block devices) + +[Service] +Type=oneshot +ExecStart=/usr/bin/zramctrl start +ExecStop=/usr/bin/zramctrl stop +RemainAfterExit=yes + +[Install] +WantedBy=multi-user.target diff --git a/steam-deck/mirrorlist b/steam-deck/mirrorlist new file mode 100644 index 0000000..5a2820f --- /dev/null +++ b/steam-deck/mirrorlist @@ -0,0 +1 @@ +Server = https://steamdeck-packages.steamos.cloud/archlinux-mirror/$repo/os/$arch diff --git a/steam-deck/pacman.conf b/steam-deck/pacman.conf new file mode 100644 index 0000000..6c7e85a --- /dev/null +++ b/steam-deck/pacman.conf @@ -0,0 +1,103 @@ +# +# /etc/pacman.conf +# +# See the pacman.conf(5) manpage for option and repository directives + +# +# GENERAL OPTIONS +# +[options] +# The following paths are commented out with their default values listed. +# If you wish to use different paths, uncomment and update the paths. +#RootDir = / +#DBPath = /var/lib/pacman/ +#CacheDir = /var/cache/pacman/pkg/ +#LogFile = /var/log/pacman.log +#GPGDir = /etc/pacman.d/gnupg/ +#HookDir = /etc/pacman.d/hooks/ +HoldPkg = pacman glibc +#XferCommand = /usr/bin/curl -L -C - -f -o %o %u +#XferCommand = /usr/bin/wget --passive-ftp -c -O %o %u +#CleanMethod = KeepInstalled +Architecture = auto + +# Pacman won't upgrade packages listed in IgnorePkg and members of IgnoreGroup +#IgnorePkg = +#IgnoreGroup = + +#NoUpgrade = +#NoExtract = + +# Misc options +#UseSyslog +#Color +#TotalDownload +# We cannot check disk space from within a chroot environment +CheckSpace +#VerbosePkgLists +ParallelDownloads = 5 + +# By default, pacman accepts packages signed by keys that its local keyring +# trusts (see pacman-key and its man page), as well as unsigned packages. +SigLevel = Required DatabaseOptional +LocalFileSigLevel = Optional +#RemoteFileSigLevel = Required + +# NOTE: You must run `pacman-key --init` before first using pacman; the local +# keyring can then be populated with the keys of all official Arch Linux +# packagers with `pacman-key --populate archlinux`. + +# +# REPOSITORIES +# - can be defined here or included from another file +# - pacman will search repositories in the order defined here +# - local/custom mirrors can be added here or in separate files +# - repositories listed first will take precedence when packages +# have identical names, regardless of version number +# - URLs will have $repo replaced by the name of the current repo +# - URLs will have $arch replaced by the name of the architecture +# +# Repository entries are of the format: +# [repo-name] +# Server = ServerName +# Include = IncludePath +# +# The header [repo-name] is crucial - it must be present and +# uncommented to enable the repo. +# + +# The testing repositories are disabled by default. To enable, uncomment the +# repo name header and Include lines. You can add preferred servers immediately +# after the header, and they will be used before the default mirrors. + +#[testing] +#Include = /etc/pacman.d/mirrorlist + +[jupiter] +Include = /etc/pacman.d/mirrorlist +SigLevel = Never + +[holo] +Include = /etc/pacman.d/mirrorlist +SigLevel = Never + +[core] +Include = /etc/pacman.d/mirrorlist + +[extra] +Include = /etc/pacman.d/mirrorlist + +#[community-testing] +#Include = /etc/pacman.d/mirrorlist + +[community] +Include = /etc/pacman.d/mirrorlist + +[multilib] +Include = /etc/pacman.d/mirrorlist + +# An example of a custom package repository. See the pacman manpage for +# tips on creating your own repositories. +#[custom] +#SigLevel = Optional TrustAll +#Server = file:///home/custompkgs