diff --git a/daily-use-pcs/setup-git.bash b/daily-use-pcs/setup-git.bash index 29232f9..a7f57f7 100755 --- a/daily-use-pcs/setup-git.bash +++ b/daily-use-pcs/setup-git.bash @@ -1,11 +1,8 @@ #!/usr/bin/env bash -# Exit if there's an error -set -e # Modify constants as needed -GITEA_URL="https://git.askiiart.net" GIT_NAME="askiiart" GIT_EMAIL="dev@askiiart.net" -KEY_ID="02EFA1CE3C3E4AAD7A863AB8ED24985CA884CD61" +KEY_ID="CFCF6723A8ED791C5FD25CB5858969DCCC2E792D" # Note: This waits until enter is pressed # read -p "Press Enter to continue" < /dev/tty @@ -21,6 +18,10 @@ if command_exists "apt-get"; then sudo apt-get install git -y elif command_exists "yum"; then sudo yum install git -y +elif command_exists "rpm-ostree" && ! command_exists "git"; then + rpm-ostree install git -y + read -p "Press enter to reboot, then run do-everything.bash again" + reboot elif command_exists "pacman"; then sudo pacman -S git --noconfirm --needed elif command_exists "zypp"; then @@ -29,6 +30,8 @@ elif command_exists "emerge"; then sudo echo Not yet supported, exiting... elif command_exists "apk"; then sudo apk add git +elif command_exists "xbps-install"; then + sudo xbps-install git else echo "Unsupported: unknown package manager and distro" fi @@ -41,6 +44,9 @@ git config --global user.email "${GIT_EMAIL}" git config --global commit.gpgsign true git config --global user.signingkey ${KEY_ID} +# other git settings +git config --global init.defaultBranch main + # From https://superuser.com/a/954639 # Archived at https://web.archive.org/web/20230606153856/https://superuser.com/a/954639 echo Fixing .gnupg/ permissions diff --git a/distro-specific.bash b/distro-specific.bash index c2b7aa4..bb5c630 100755 --- a/distro-specific.bash +++ b/distro-specific.bash @@ -1,5 +1,4 @@ #!/usr/bin/env bash -set -e if [ $(whoami) == "root" ]; then echo "Run as a normal user, not root" exit 1 @@ -10,10 +9,18 @@ command_exists() { type "$1" &>/dev/null; } if command_exists "apt-get"; then sudo apt update sudo apt install curl -y + elif command_exists "dnf"; then sudo dnf config-manager --add-repo https://askiiart.net/repos/fedora/x86_64/askiiart.repo sudo dnf remove libreoffice* atril -y - sudo dnf install https://mirrors.rpmfusion.org/free/fedora/rpmfusion-free-release-$(rpm -E %fedora).noarch.rpm https://mirrors.rpmfusion.org/nonfree/fedora/rpmfusion-nonfree-release-$(rpm -E %fedora).noarch.rpm + sudo dnf install https://mirrors.rpmfusion.org/free/fedora/rpmfusion-free-release-$(rpm -E %fedora).noarch.rpm https://mirrors.rpmfusion.org/nonfree/fedora/rpmfusion-nonfree-release-$(rpm -E %fedora).noarch.rpm -y + +elif command_exists "rpm-ostree"; then + sudo wget https://askiiart.net/repos/fedora/x86_64/askiiart.repo -O /etc/yum.repos.d/askiiart.repo + rpm-ostree install https://mirrors.rpmfusion.org/free/fedora/rpmfusion-free-release-$(rpm -E %fedora).noarch.rpm https://mirrors.rpmfusion.org/nonfree/fedora/rpmfusion-nonfree-release-$(rpm -E %fedora).noarch.rpm -y + sudo rpm-ostree apply-live --allow-replacement + flatpak remote-add --if-not-exists flathub https://dl.flathub.org/repo/flathub.flatpakrepo + elif command_exists "pacman"; then WD=$(pwd) sudo pacman -S --noconfirm --needed git base-devel @@ -22,15 +29,31 @@ elif command_exists "pacman"; then makepkg -si cd $WD rm -rf yay + # get fast arch mirrors + yay -S rate-mirrors-bin + rate-mirrors --disable-comments-in-file --entry-country=US --protocol=https arch --max-delay 7200 | sudo tee /etc/pacman.d/mirrorlist yay -S noto-fonts-emoji --noconfirm --needed - sudo mkdir /usr/share/fonts/meslolgs - yay -S ttf-meslo-nerd-font-powerlevel10k --noconfirm --needed + elif command_exists "zypp"; then echo "not yet implemented" + elif command_exists "emerge"; then echo "not yet implemented" + elif command_exists "apk"; then echo "not yet implemented" + +elif command_exists "xbps-install"; then + sudo xbps-install NetworkManager dbus polkit polkit-gnome nano noto-fonts-emoji noto-fonts-cjk python3 python3-pip + mkdir ~/Applications + cd ~/Applications + curl -LO $(curl -s https://api.github.com/repos/TheAssassin/AppImageLauncher/releases/latest | grep "browser_download_url.*appimagelauncher-lite.*-x86_64.AppImage" | cut -d : -f 2,3 | tr -d \") -C - + chmod +x appimagelauncher-lite*-x86_64.AppImage + cd - + echo "AppImageLauncher is in ~/Applications, deal with it yourself or update this script" + sudo xbps-install void-repo-multilib void-repo-nonfree + else echo "Unsupported: unknown package manager and distro" + fi diff --git a/do-everything.bash b/do-everything.bash index 4ffb007..9a39b05 100755 --- a/do-everything.bash +++ b/do-everything.bash @@ -1,4 +1,6 @@ -#!/usr/bin/env sh +#!/usr/bin/env bash + +command_exists() { type "$1" &>/dev/null; } chmod 700 ./distro-specific.bash ./distro-specific.bash @@ -10,7 +12,6 @@ cd .. cd install-stuff/ chmod 700 ./*.bash -./install-vesktop.bash ./install-claws-mail.bash ./install-fish.bash ./install-librewolf.bash @@ -18,10 +19,17 @@ chmod 700 ./*.bash ./install-qemu-libvirt.bash ./install-steam.bash ./install-vs-code.bash +./install-fonts.bash ./install-yt-music.bash +./install-vesktop.bash cd .. cd ./dotfiles chmod 700 restore.sh ./restore.sh cd .. + +if command_exists "rpm-ostree"; then + read -p "Press enter to reboot" + reboot +fi \ No newline at end of file diff --git a/dotfiles b/dotfiles index 274c0a3..3110da2 160000 --- a/dotfiles +++ b/dotfiles @@ -1 +1 @@ -Subproject commit 274c0a37d3669c18d73ecb5510b7778992cdaa51 +Subproject commit 3110da2e40b77caf275c95b368ab97d47982faa4 diff --git a/install-stuff/install-claws-mail.bash b/install-stuff/install-claws-mail.bash index fa09cfa..735927e 100755 --- a/install-stuff/install-claws-mail.bash +++ b/install-stuff/install-claws-mail.bash @@ -1,5 +1,4 @@ #!/usr/bin/env bash -EDITOR=nano if [ $(whoami) == "root" ]; then echo "Run as a normal user, not root" @@ -9,8 +8,7 @@ fi command_exists() { type "$1" &>/dev/null; } if command_exists "yay"; then - yay -S claws-mail python-gpgme nuspell aspell aspell-en - yay -S spamassassin + yay -S claws-mail python-gpgme nuspell aspell aspell-en spamassassin sudo systemctl enable --now spamassassin.service cd ~ git clone https://git.askiiart.net/askiiart/gpg-email-helper @@ -21,6 +19,21 @@ elif command_exists "dnf"; then cd ~ git clone https://git.askiiart.net/askiiart/gpg-email-helper cd - +elif command_exists "rpm-ostree"; then + if ! command_exists "spamassassin"; then + rpm-ostree install spamassassin claws-mail claws-mail-plugins-pgp claws-mail-plugins-spamassassin claws-mail-plugins-rssyl + read -p "Press enter to reboot, then run do-everything.bash again" + reboot + else + sudo systemctl enable --now spamassassin.service + cd ~ + git clone https://git.askiiart.net/askiiart/gpg-email-helper + cd - + fi +elif command_exists "xbps-install"; then + sudo xbps-install claws-mail spamassassin + ln -s /etc/sv/spamd /var/service/ + sv start spamd else echo "IDK" fi diff --git a/install-stuff/install-fish.bash b/install-stuff/install-fish.bash index ac36d7d..7ada69f 100755 --- a/install-stuff/install-fish.bash +++ b/install-stuff/install-fish.bash @@ -12,8 +12,12 @@ if command_exists "apt-get"; then sudo apt-get install fish -y elif command_exists "yum"; then sudo yum install fish -y +elif command_exists "rpm-ostree" && ! command_exists "fish"; then + rpm-ostree install fish -y + read -p "Press enter to reboot, then run do-everything.bash again" + reboot elif command_exists "pacman"; then - yay -S fish + sudo pacman -S fish elif command_exists "zypp"; then # Untested sudo zypper install fish -y @@ -22,6 +26,8 @@ elif command_exists "emerge"; then exit elif command_exists "apk"; then sudo apk add fish +elif command_exists "xbps-install"; then + sudo xbps-install fish-shell -y else echo "Unsupported: unknown package manager and distro" exit diff --git a/install-stuff/install-fonts.bash b/install-stuff/install-fonts.bash index 2210c28..9190458 100755 --- a/install-stuff/install-fonts.bash +++ b/install-stuff/install-fonts.bash @@ -1,5 +1,9 @@ #!/usr/bin/env bash +command_exists() { type "$1" &>/dev/null; } + +# on void i could totally install the nerd fonts via `xbps-install nerd-fonts-otf` but i am NOT installing an extra 1.45-ish GB of the rest of the nerd fonts along with it +# stock firacode is available via `font-firacode` though sudo mkdir /usr/share/fonts/firacode mkdir ./tmp-fonts cd ./tmp-fonts @@ -8,12 +12,16 @@ curl $(curl -s https://api.github.com/repos/ryanoasis/nerd-fonts/releases/latest unzip FiraCode.zip sudo mv FiraCodeNerdFont*.ttf /usr/share/fonts/firacode/ -sudo mkdir /usr/share/fonts/atkinson-hyperlegible -curl -LO https://raw.githubusercontent.com/googlefonts/atkinson-hyperlegible/main/fonts/ttf/AtkinsonHyperlegible-Regular.ttf -curl -LO https://raw.githubusercontent.com/googlefonts/atkinson-hyperlegible/main/fonts/ttf/AtkinsonHyperlegible-Bold.ttf -curl -LO https://raw.githubusercontent.com/googlefonts/atkinson-hyperlegible/main/fonts/ttf/AtkinsonHyperlegible-Italic.ttf -curl -LO https://raw.githubusercontent.com/googlefonts/atkinson-hyperlegible/main/fonts/ttf/AtkinsonHyperlegible-BoldItalic.ttf -sudo mv AtkinsonHyperlegible*.ttf /usr/share/fonts/atkinson-hyperlegible/ +if command_exists "xbps-install"; then + sudo xbps-install font-atkinson-hyperlegible-otf +else + sudo mkdir /usr/share/fonts/atkinson-hyperlegible + curl -LO https://raw.githubusercontent.com/googlefonts/atkinson-hyperlegible/main/fonts/ttf/AtkinsonHyperlegible-Regular.ttf + curl -LO https://raw.githubusercontent.com/googlefonts/atkinson-hyperlegible/main/fonts/ttf/AtkinsonHyperlegible-Bold.ttf + curl -LO https://raw.githubusercontent.com/googlefonts/atkinson-hyperlegible/main/fonts/ttf/AtkinsonHyperlegible-Italic.ttf + curl -LO https://raw.githubusercontent.com/googlefonts/atkinson-hyperlegible/main/fonts/ttf/AtkinsonHyperlegible-BoldItalic.ttf + sudo mv AtkinsonHyperlegible*.ttf /usr/share/fonts/atkinson-hyperlegible/ +fi cd - rm -rf ./tmp-fonts diff --git a/install-stuff/install-librewolf.bash b/install-stuff/install-librewolf.bash index 44c9434..95fe8e6 100755 --- a/install-stuff/install-librewolf.bash +++ b/install-stuff/install-librewolf.bash @@ -1,5 +1,4 @@ #!/usr/bin/env bash -set -e if [ $(whoami) == "root" ]; then echo "Run as a normal user, not root" exit 1 @@ -32,6 +31,33 @@ elif command_exists "dnf"; then rm -rf ./tmp-openh264/ echo -e "\nNow open LibreWolf, go to about:config, and set these to true:\n media.gmp-gmpopenh264.autoupdate\n media.gmp-gmpopenh264.enabled\n media.gmp-gmpopenh264.provider.enabled\n media.peerconnection.video.h264_enabled\n" read -p "" +elif command_exists "rpm-ostree"; then + if ! command_exists "librewolf"; then + sudo wget https://rpm.librewolf.net/librewolf-repo.repo -O /etc/yum.repos.d/librewolf.repo + rpm-ostree install librewolf + rpm-ostree remove firefox + read -p "Press enter to reboot, then run do-everything.bash again" + reboot + else + librewolf & + sleep 5 + pkill librewolf + mkdir tmp-openh264 + cd tmp-openh264 + wget http://ciscobinary.openh264.org/openh264-linux64-v1.1-Firefox33.zip + rpm-ostree install unzip -y + rpm-ostree apply-live + unzip ./*.zip + for dir in $(ls -d ~/.librewolf/*/); do + mkdir -p ${dir}gmp-gmpopenh264/1.1/ + cp libgmpopenh264.so ${dir}gmp-gmpopenh264/1.1/ + cp gmpopenh264.info ${dir}gmp-gmpopenh264/1.1/ + done + cd - + rm -rf ./tmp-openh264/ + echo -e "\nNow open LibreWolf, go to about:config, and set these to true:\n media.gmp-gmpopenh264.autoupdate\n media.gmp-gmpopenh264.enabled\n media.gmp-gmpopenh264.provider.enabled\n media.peerconnection.video.h264_enabled\n" + read -p "" + fi elif command_exists "yay"; then yay -S librewolf-bin yay -R firefox @@ -39,6 +65,14 @@ elif command_exists "emerge"; then # Untested sudo eselect repository add librewolf git https://codeberg.org/librewolf/gentoo.git emaint -r librewolf sync +elif command_exists "xbps-install"; then + mkdir librewolf + cd librewolf + curl $(curl -s https://api.github.com/repos/index-0/librewolf-void/releases/latest | grep "browser_download_url.*librewolf-.*.x86_64.xbps" | head --lines 1 | cut -d : -f 2,3 | tr -d \") -LO + sudo xbps-rindex -a librewolf-*.x86_64.xbps + sudo xbps-install -R $PWD librewolf + cd - + rm -rf librewolf else echo "Figure it out yourself, or get the AppImage from here: https://gitlab.com/librewolf-community/browser/appimage/-/releases" fi diff --git a/install-stuff/install-misc.sh b/install-stuff/install-misc.sh index 675d702..2495d55 100755 --- a/install-stuff/install-misc.sh +++ b/install-stuff/install-misc.sh @@ -6,19 +6,29 @@ if [ $(whoami) == "root" ]; then exit 1 fi +# only fedora is up-to-date + command_exists() { type "$1" &>/dev/null; } if command_exists "apt-get"; then sudo apt-get install kitty -y echo "Please install SchildiChat, nvim/neovim" elif command_exists "dnf"; then - sudo dnf install kitty neovim gcc gnome-hexgl drawing make vlc freeglut ncdu gcolor3 rust cargo clippy p7zip mosh krita podman podman-docker podman-compose gajim schildichat-desktop -y + sudo dnf install kitty neovim gcc gnome-hexgl drawing make vlc freeglut ncdu gcolor3 rustup clippy p7zip mosh krita podman podman-docker podman-compose gajim schildichat-desktop progress yt-dlp genisoimage zstd iperf3 -y # Install Prism Launcher sudo dnf copr enable g3tchoo/prismlauncher sudo dnf install prismlauncher-qt5 +elif command_exists "rpm-ostree"; then + rpm-ostree install kitty neovim gcc gnome-hexgl drawing make vlc freeglut ncdu gcolor3 rustup clippy p7zip mosh krita podman podman-docker podman-compose gajim progress yt-dlp genisoimage zstd iperf3 -y --allow-inactive + + # Install Prism Launcher + sudo wget https://copr.fedorainfracloud.org/coprs/g3tchoo/prismlauncher/repo/fedora-$(rpm -E %fedora)/g3tchoo-prismlauncher-fedora-$(rpm -E %fedora).repo -O /etc/yum.repos.d/g3tchoo-prismlauncher.repo + rpm-ostree install prismlauncher-qt5 + + flatpak install me.iepure.devtoolbox elif command_exists "yay"; then - yay -S kitty schildichat-desktop-bin digikam eog man-db neovim prismlauncher-qt5-bin --noconfirm --needed + yay -S kitty neovim gcc vlc ncdu gcolor3 rustup p7zip mosh krita podman podman-compose gajim progress yt-dlp genisoimage drawing clippy gnome-hexgl zstd iperf3 unzip schildichat-desktop-bin digikam man-db prismlauncher-qt5-bin progress --noconfirm --needed elif command_exists "zypp"; then # Untested sudo zypper install kitty -y @@ -28,6 +38,13 @@ elif command_exists "emerge"; then exit elif command_exists "apk"; then echo Not yet supported, exiting... +elif command_exists "xbps-install"; then + # missing: hexgl, drawing, clippy, schildichat, genisoimage + # not included: libfreeglut, don't think that's required + sudo xbps-install kitty neovim gcc vlc ncdu gcolor3 rustup p7zip mosh krita podman podman-compose gajim progress yt-dlp zstd iperf3 unzip + cd ~/Applications + curl -LO $(curl -s https://api.github.com/repos/SchildiChat/schildichat-desktop/releases/latest | grep "browser_download_url.*SchildiChat-.*.AppImage" | head --lines 1 | cut -d : -f 2,3 | tr -d \") -C - + cd - else echo "Unsupported: unknown package manager and distro" exit diff --git a/install-stuff/install-qemu-libvirt.bash b/install-stuff/install-qemu-libvirt.bash index f5398f7..8cdaf67 100755 --- a/install-stuff/install-qemu-libvirt.bash +++ b/install-stuff/install-qemu-libvirt.bash @@ -14,8 +14,9 @@ elif command_exists "yum"; then sudo systemctl enable --now libvirtd.service sudo usermod -aG libvirt $(whoami) elif command_exists "pacman"; then - sudo pacman -S qemu-full --noconfirm --needed + sudo pacman -S qemu-full dnsmasq --noconfirm --needed sudo pacman -S virt-manager --noconfirm --needed + sudo systemctl enable --now libvirtd.service elif command_exists "zypp"; then # Untested sudo zypper install qemu -y @@ -26,6 +27,10 @@ elif command_exists "apk"; then sudo apk add git sudo rc-update add libvirtd sudo rc-service libvirtd start +elif command_exists "xbps-install"; then + sudo xbps-install qemu libvirt virt-manager + sudo usermod -aG libvirt $(whoami) + sudo ln -s /etc/sv/libvirtd/ /var/service/ else echo "Unsupported: unknown package manager and distro" fi diff --git a/install-stuff/install-steam.bash b/install-stuff/install-steam.bash index a86dcc3..c38d411 100755 --- a/install-stuff/install-steam.bash +++ b/install-stuff/install-steam.bash @@ -17,7 +17,7 @@ elif command_exists "dnf"; then mkdir $HOME/Applications cd $HOME/Applications curl -LO $(curl -s https://api.github.com/repos/DavidoTek/ProtonUp-Qt/releases/latest | grep "browser_download_url.*ProtonUp-Qt-.*-x86_64.AppImage" | head --lines 1 | cut -d : -f 2,3 | tr -d \") -C - - cd - # throws an error but it works? + cd - # throws an error but it works? AppImageLauncherSettings & sleep 5 kill $(pidof AppImageLauncherSettings) @@ -28,6 +28,12 @@ elif command_exists "yay"; then #sudo $EDITOR /etc/pacman.conf yay -S steam yay -S protonup-qt-bin dosbox inotify-tools timidity scummvm xdotool xwinfo yad --noconfirm --needed +elif command_exists "xbps-install"; then + sudo xbps-install steam gperftools gperftools-32bit + # missing: protonup-qt + cd ~/Applications + curl -LO $(curl -s https://api.github.com/repos/DavidoTek/ProtonUp-Qt/releases/latest | grep "browser_download_url.*ProtonUp-Qt-.*-x86_64.AppImage" | head --lines 1 | cut -d : -f 2,3 | tr -d \") -C - + cd - else echo "IDK" fi diff --git a/install-stuff/install-vesktop.bash b/install-stuff/install-vesktop.bash index bfbfdee..6efe39e 100755 --- a/install-stuff/install-vesktop.bash +++ b/install-stuff/install-vesktop.bash @@ -14,8 +14,12 @@ elif command_exists "yum"; then curl -LO $(curl -s https://api.github.com/repos/Vencord/Vesktop/releases/latest | grep "browser_download_url.*vesktop-.*.x86_64.rpm" | head --lines 1 | cut -d : -f 2,3 | tr -d \") sudo dnf install ./vesktop-*.rpm -y rm ./vesktop-*.rpm -elif command_exists "pacman"; then +elif command_exists "yay"; then yay -S vesktop-bin --noconfirm --needed +elif command_exists "xbps-install"; then + cd ~/Applications + curl -LO $(curl -s https://api.github.com/repos/Vencord/Vesktop/releases/latest | grep "browser_download_url.*Vesktop-.*.AppImage" | tail --lines 1 | cut -d : -f 2,3 | tr -d \") + cd - else echo "IDK, check the repo: https://github.com/Vencord/Vesktop" fi diff --git a/install-stuff/install-vs-code.bash b/install-stuff/install-vs-code.bash index 1f01a1b..bd8bea1 100755 --- a/install-stuff/install-vs-code.bash +++ b/install-stuff/install-vs-code.bash @@ -9,7 +9,7 @@ command_exists() { type "$1" &>/dev/null; } if command_exists "apt-get"; then sudo apt-get install wget gpg - wget -qO- https://packages.microsoft.com/keys/microsoft.asc | gpg --dearmor > packages.microsoft.gpg + wget -qO- https://packages.microsoft.com/keys/microsoft.asc | gpg --dearmor >packages.microsoft.gpg sudo install -D -o root -g root -m 644 packages.microsoft.gpg /etc/apt/keyrings/packages.microsoft.gpg sudo sh -c 'echo "deb [arch=amd64,arm64,armhf signed-by=/etc/apt/keyrings/packages.microsoft.gpg] https://packages.microsoft.com/repos/code stable main" > /etc/apt/sources.list.d/vscode.list' rm -f packages.microsoft.gpg @@ -34,6 +34,8 @@ elif command_exists "emerge"; then elif command_exists "apk"; then echo Not yet supported, exiting... exit +elif command_exists "xbps-install"; then + sudo xbps-install vscode else echo "Unsupported: unknown package manager and distro" fi diff --git a/install-stuff/install-yt-music.bash b/install-stuff/install-yt-music.bash index 662c3fd..02cf6ec 100755 --- a/install-stuff/install-yt-music.bash +++ b/install-stuff/install-yt-music.bash @@ -16,6 +16,10 @@ elif command_exists "yum"; then sudo dnf install youtube-music -y elif command_exists "yay"; then yay -S youtube-music-bin --noconfirm --needed +elif command_exists "xbps-install"; then + cd ~/Applications + curl -LO $(curl -s https://api.github.com/repos/th-ch/youtube-music/releases/latest | grep "browser_download_url.*YouTube-Music-.*.AppImage" | cut -d : -f 2,3 | tr -d \") -C - + cd - else echo "IDK, check the repo: https://github.com/th-ch/youtube-music" fi