From e2e5b9a02d42b5e689cbb925106634e66b9f1be0 Mon Sep 17 00:00:00 2001 From: Manuel Thalmann Date: Wed, 17 Jul 2024 14:18:27 +0200 Subject: [PATCH] Streamline installation of all further software --- lib/modules/software.nix | 13 ++ scripts/Arch/Collections/personal.sh | 2 +- scripts/Arch/OS/install.fish | 125 +++++++++++++++++- scripts/Arch/Software/Firefox/main.fish | 13 ++ scripts/Arch/Software/IcedTea/main.fish | 24 ++++ scripts/Arch/Software/Lutris/main.fish | 72 ++++++++++ scripts/Arch/Software/Pennywise/main.fish | 25 ++++ .../Virtual Machine Manager/main.fish | 28 ++++ scripts/Arch/Software/brave/main.fish | 16 +++ scripts/Arch/Software/logo-ls/main.fish | 41 ++++++ scripts/Arch/Software/n/main.fish | 12 ++ scripts/Arch/Software/nix/main.fish | 20 +++ scripts/Arch/Software/pyenv/main.fish | 12 ++ scripts/Arch/Software/rclone/main.fish | 15 +++ scripts/Arch/Software/vscode/main.fish | 27 ++++ scripts/Arch/Software/waydroid/main.fish | 20 +++ scripts/Common/Config/Firefox/install.sh | 2 +- scripts/Common/Config/rclone/install.sh | 2 +- .../Chromium/install-extension.sh | 2 +- .../Chromium/ytmdl.sh} | 0 .../Virtual Machine Manager/main.fish | 18 +++ scripts/Common/Software/aliae/main.fish | 6 +- scripts/Common/Software/brave/main.fish | 29 ++++ .../Firefox => Software/firefox}/firefox.sh | 0 scripts/Common/Software/firefox/main.fish | 12 ++ scripts/Common/Software/logo-ls/main.fish | 59 +++++++++ scripts/Common/Software/n/main.fish | 16 +++ scripts/Common/Software/nix/main.fish | 3 + scripts/Common/Software/nuke-usb/main.fish | 11 ++ scripts/Common/Software/pyenv/main.fish | 29 ++++ scripts/Common/Software/rclone/main.fish | 11 ++ .../rclone/rclone.service | 0 .../{Config => Software}/rclone/rclone.target | 0 .../rclone/rclone@.service | 0 scripts/Common/Software/vscode/main.fish | 21 +++ scripts/PopOS/Collections/personal.sh | 2 +- 36 files changed, 679 insertions(+), 9 deletions(-) create mode 100644 scripts/Arch/Software/Firefox/main.fish create mode 100644 scripts/Arch/Software/IcedTea/main.fish create mode 100644 scripts/Arch/Software/Lutris/main.fish create mode 100644 scripts/Arch/Software/Pennywise/main.fish create mode 100644 scripts/Arch/Software/Virtual Machine Manager/main.fish create mode 100644 scripts/Arch/Software/brave/main.fish create mode 100644 scripts/Arch/Software/logo-ls/main.fish create mode 100644 scripts/Arch/Software/n/main.fish create mode 100644 scripts/Arch/Software/nix/main.fish create mode 100644 scripts/Arch/Software/pyenv/main.fish create mode 100644 scripts/Arch/Software/rclone/main.fish create mode 100644 scripts/Arch/Software/vscode/main.fish create mode 100644 scripts/Arch/Software/waydroid/main.fish rename scripts/Common/{Config => Software}/Chromium/install-extension.sh (96%) mode change 100755 => 100644 rename scripts/Common/{Config/Chromium/install-ytmusic-dl.sh => Software/Chromium/ytmdl.sh} (100%) mode change 100755 => 100644 create mode 100644 scripts/Common/Software/Virtual Machine Manager/main.fish create mode 100644 scripts/Common/Software/brave/main.fish rename scripts/Common/{Config/Firefox => Software/firefox}/firefox.sh (100%) create mode 100644 scripts/Common/Software/firefox/main.fish create mode 100644 scripts/Common/Software/logo-ls/main.fish create mode 100644 scripts/Common/Software/n/main.fish create mode 100644 scripts/Common/Software/nuke-usb/main.fish create mode 100644 scripts/Common/Software/pyenv/main.fish create mode 100644 scripts/Common/Software/rclone/main.fish rename scripts/Common/{Config => Software}/rclone/rclone.service (100%) rename scripts/Common/{Config => Software}/rclone/rclone.target (100%) rename scripts/Common/{Config => Software}/rclone/rclone@.service (100%) create mode 100644 scripts/Common/Software/vscode/main.fish diff --git a/lib/modules/software.nix b/lib/modules/software.nix index d367b354..e326bdbf 100644 --- a/lib/modules/software.nix +++ b/lib/modules/software.nix @@ -12,6 +12,7 @@ software = let inherit (cfg.software) + coding common desktopExperience school @@ -42,6 +43,12 @@ default = common && !server; }; + fileSync = mkOption { + type = types.bool; + description = "A value indicating whether file syncs should be installed."; + default = common && !server; + }; + school = mkOption { type = types.bool; description = "A value indicating whether software for studies should be installed."; @@ -77,6 +84,12 @@ description = "A value indicating whether development apps should be installed."; default = common; }; + + python = mkOption { + type = types.bool; + description = "A value indicating whether apps for coding python should be installed."; + default = coding; + }; }; }; }; diff --git a/scripts/Arch/Collections/personal.sh b/scripts/Arch/Collections/personal.sh index 82553f03..457f9fb6 100755 --- a/scripts/Arch/Collections/personal.sh +++ b/scripts/Arch/Collections/personal.sh @@ -109,7 +109,7 @@ yay --noconfirm -Syu jq; BROWSER_BIN="brave" \ EXTENSION_DIR="/usr/share/chromium-extensions" \ EXTENSION_POLICY_DIR="$braveExtensions" \ - source "../../Common/Config/Chromium/install-ytmusic-dl.sh"; + source "../../Common/Software/Chromium/ytmdl.sh"; # sudo ln -sf "$braveExtensions" /opt/brave.com/brave-beta/extensions; # sudo ln -sf "$braveExtensions" /opt/brave.com/brave-nightly/extensions; diff --git a/scripts/Arch/OS/install.fish b/scripts/Arch/OS/install.fish index 3745fc91..d7acd61d 100644 --- a/scripts/Arch/OS/install.fish +++ b/scripts/Arch/OS/install.fish @@ -25,6 +25,7 @@ begin if collectionActive essential yayinst \ + bb \ mkinitcpio-firmware \ neofetch \ bash-completion \ @@ -41,10 +42,12 @@ begin rar sudo pkgfile --update + source "$dir/../../Common/Software/bash/main.fish" source "$dir/../Software/openssh/main.fish" source "$dir/../Software/vim/main.fish" source "$dir/../Software/git/main.fish" source "$dir/../Software/zoxide/main.fish" + source "$dir/../Software/logo-ls/main.fish" # GRUB Shenanigans - if that's not an essential I don't know what is! source "$dir/../Software/minegrub-theme/main.fish"; @@ -54,8 +57,6 @@ begin yayinst \ tldr \ btop \ - nvtop \ - numbat-bin \ terminal-parrot source "$dir/../Software/aliae/main.fish" @@ -78,6 +79,50 @@ begin ttf-ms-win11-auto \ otf-cascadia-code \ ttf-droid + + # Password Management + yayinst \ + bitwarden \ + keepass \ + keepassxc + + # Tools + yayinst \ + android-tools \ + blackbox-terminal \ + cpu-x \ + gnome-calculator \ + yubikey-manager-qt + + yayinst \ + remmina ( + # RDP support for Remmina + ) freerdp \ + wireshark-qt \ + linux-wifi-hotspot + + # Creativity + yayinst \ + gimp \ + inkscape + + # Office stuff + yayinst \ + libreoffice-fresh \ + naps2-bin \ + pdfarranger \ + protonmail-bridge \ + thunderbird + + # Browser + source "$dir/../Software/firefox/main.fish" + source "$dir/../Software/brave/main.fish" + source "$dir/../Software/Pennywise/main.fish" + + # Virtualization + source "$dir/../Software/waydroid/main.fish" + source "$dir/../Software/Virtual Machine Manager/main.fish" + yayinst propertree-git # mac config file editor end if collectionActive server @@ -89,7 +134,81 @@ begin # Networking yayinst \ networkmanager-openvpn \ - networkmanager-openconnect + networkmanager-openconnect \ + protonvpn + + if collectionActive common + source "$dir/../Software/IcedTea/main.fish" + + yayinst \ + img2pdf \ + numbat-bin \ + nvtop \ + pdf2svg \ + tnef + end + end + + if collectionActive media + yayinst \ + ytmdesktop-bin \ + netflix \ + spotube-bin \ + stremio \ + tidal-dl \ + tidal-hifi-bin \ + nuclear-player-bin \ + audius-client-bin + end + + if collectionActive fileSync + yayinst nextcloud-client + source "$dir/../Software/rclone/main.fish" + end + + if collectionActive socialMedia + yayinst \ + signal-desktop \ + threema-desktop \ + discord ( + # Open Source Discord implementation + ) openasar-git + end + + if collectionActive productivity + yayinst \ + anki-bin + end + + if collectionActive coding + yayinst \ + tea \ + woodpecker-cli + + source "$dir/../Software/vscode/main.fish" + source "$dir/../Software/n/main.fish" + end + + if collectionActive python + yayinst \ + python \ + python-pip \ + python-pipenv + + source "$dir/../Software/pyenv/main.fish" + end + + if collectionActive gaming + yayinst \ + steam \ + chiaki \ + osu-lazer-bin \ + libretro \ + supertux \ + gamepad-tool-bin + + source "$dir/../Software/Lutris/main.fish" + flatpak install -y flathub com.usebottles.bottles end end end diff --git a/scripts/Arch/Software/Firefox/main.fish b/scripts/Arch/Software/Firefox/main.fish new file mode 100644 index 00000000..bdd13b4b --- /dev/null +++ b/scripts/Arch/Software/Firefox/main.fish @@ -0,0 +1,13 @@ +#!/bin/env fish +begin + set -l dir (status dirname) + source "$dir/../../Scripts/software.fish" + source "$dir/../../../Common/Software/firefox/main.fish" + + function installSW + yayinst firefox + configureSW + end + + runInstaller $argv +end diff --git a/scripts/Arch/Software/IcedTea/main.fish b/scripts/Arch/Software/IcedTea/main.fish new file mode 100644 index 00000000..0d794925 --- /dev/null +++ b/scripts/Arch/Software/IcedTea/main.fish @@ -0,0 +1,24 @@ +#!/bin/env fish +begin + set -l dir (status dirname) + source "$dir/../../Scripts/software.fish" + + function installSW + yayinst \ + jdk-temurin + + yayinst \ + icedtea-web + + configureSW + end + + function configureSW + # Allow execution of huwaei KVM application (uses out of date security mechanisms) + sudo sed -i \ + "/^jdk.jar.disabledAlgorithms=/{ :comment; s/\(.*\)/#\1/; /\\\\\$/{ n; bcomment; }; }" \ + /usr/lib/jvm/default-runtime/conf/security/java.security + end + + runInstaller $argv +end diff --git a/scripts/Arch/Software/Lutris/main.fish b/scripts/Arch/Software/Lutris/main.fish new file mode 100644 index 00000000..32663ff8 --- /dev/null +++ b/scripts/Arch/Software/Lutris/main.fish @@ -0,0 +1,72 @@ +#!/bin/env fish +begin + set -l dir (status dirname) + source "$dir/../../Scripts/software.fish" + + function installSW + yayinst \ + wine-staging \ + giflib \ + lib32-giflib \ + libpng \ + lib32-libpng \ + libldap \ + lib32-libldap \ + gnutls \ + lib32-gnutls \ + mpg123 \ + lib32-mpg123 \ + openal \ + lib32-openal \ + v4l-utils \ + lib32-v4l-utils \ + libpulse \ + lib32-libpulse \ + libgpg-error \ + lib32-libgpg-error \ + alsa-plugins \ + lib32-alsa-plugins \ + alsa-lib \ + lib32-alsa-lib \ + libjpeg-turbo \ + lib32-libjpeg-turbo \ + sqlite \ + lib32-sqlite \ + libxcomposite \ + lib32-libxcomposite \ + libxinerama \ + lib32-libgcrypt \ + libgcrypt \ + lib32-libxinerama \ + ncurses \ + lib32-ncurses \ + ocl-icd \ + lib32-ocl-icd \ + libxslt \ + lib32-libxslt \ + libva \ + lib32-libva \ + gtk3 \ + lib32-gtk3 \ + gst-plugins-base-libs \ + lib32-gst-plugins-base-libs \ + vulkan-icd-loader \ + lib32-vulkan-icd-loader + + yayinst ( + # Extracting GOG games + ) innoextract \ + gamemode \ + lib32-gamemode \ + vkd3d \ + lib32-vkd3d \ + gamescope \ + yad \ + protontricks \ + protonup-qt-bin + + yayinst lutris + end + + runInstaller $argv +end diff --git a/scripts/Arch/Software/Pennywise/main.fish b/scripts/Arch/Software/Pennywise/main.fish new file mode 100644 index 00000000..3fe30f95 --- /dev/null +++ b/scripts/Arch/Software/Pennywise/main.fish @@ -0,0 +1,25 @@ +#!/bin/env fish +begin + set -l dir (status dirname) + source "$dir/../../Scripts/software.fish" + + function installSW + yayinst \ + pennywise-bin + + configureSW + end + + function configureSW + set -l patch " --no-sandbox" + set -l pattern "^Exec=.*" + set -l indicator "$pattern$patch" + set -l file /usr/share/applications/pennywise.desktop + + if ! grep "$indicator" "$file" > /dev/null + sudo sed -i "/$pattern/s/$pattern/\0 --no-sandbox/" "$file" + end + end + + runInstaller $argv +end diff --git a/scripts/Arch/Software/Virtual Machine Manager/main.fish b/scripts/Arch/Software/Virtual Machine Manager/main.fish new file mode 100644 index 00000000..5310dda3 --- /dev/null +++ b/scripts/Arch/Software/Virtual Machine Manager/main.fish @@ -0,0 +1,28 @@ +#!/bin/env fish +begin + set -l dir (status dirname) + source "$dir/../../Scripts/software.fish" + + function installSW + yayinst qemu-full + + yayinst \ + virtiofsd \ + virt-manager \ + dnsmasq \ + iptables-nft \ + swtpm \ + lxc \ + virt-bootstrap-git + + configureSW + end + + function configureSW -V dir + sudo systemctl enable --now libvirtd + sudo systemctl enable --now virtlogd + source "$dir/../../../Common/Software/Virtual Machine Manager/main.fish" configure + end + + runInstaller $argv +end diff --git a/scripts/Arch/Software/brave/main.fish b/scripts/Arch/Software/brave/main.fish new file mode 100644 index 00000000..f2f6984e --- /dev/null +++ b/scripts/Arch/Software/brave/main.fish @@ -0,0 +1,16 @@ +#!/bin/env fish +begin + set -l dir (status dirname) + source "$dir/../../Scripts/software.fish" + + function installSW -V dir + yayinst brave-bin ( + # brave-beta-bin + # brave-nightly-bin + ) + + fish "$dir/../../../Common/Software/brave/main.fish" configure + end + + runInstaller $argv +end diff --git a/scripts/Arch/Software/logo-ls/main.fish b/scripts/Arch/Software/logo-ls/main.fish new file mode 100644 index 00000000..093d5bc6 --- /dev/null +++ b/scripts/Arch/Software/logo-ls/main.fish @@ -0,0 +1,41 @@ +#!/bin/env fish +begin + set -l dir (status dirname) + source "$dir/../../Scripts/software.fish" + + function installSW -V dir + set -l dirName (realpath "$dir") + set -l contextRoot (mktemp -d) + set -l pkgName logo-ls + set -l patchName workaround.patch + + begin + pushd "$contextRoot" > /dev/null + yay -G -f "$pkgName" + cd "$pkgName" + cp "$dirName/$patchName" . + + set -i \ + -e "/^source=(/s/source=(/\0$patchName /" \ + -e "/^md5sums=(/s/^md5sumns=(/\0SKIP /" \ + -e "/^build() {/,/}/{" \ + -e "/^[[:space:]]*cd/{" \ + -e "a cat ../$patchName | patch --strip 1 --forward --merge" \ + -e "}" \ + -e "}" \ + PKGBUILD + + makepkg --noconfirm -si --force + popd > /dev/null + end + + rm -rf "$contextRoot" + configureSW + end + + function configureSW -V dir + source "$dir/../../../Common/Software/logo-ls/main.fish" configure + end + + runInstaller $argv +end diff --git a/scripts/Arch/Software/n/main.fish b/scripts/Arch/Software/n/main.fish new file mode 100644 index 00000000..c1717c1e --- /dev/null +++ b/scripts/Arch/Software/n/main.fish @@ -0,0 +1,12 @@ +#!/bin/env fish +begin + set -l dir (status dirname) + source "$dir/../../Scripts/software.fish" + + function installSW -V dir + yayinst nodejs-n + sudo fish "$dir/../../../Common/Software/n/main.fish" configure + end + + runInstaller $argv +end diff --git a/scripts/Arch/Software/nix/main.fish b/scripts/Arch/Software/nix/main.fish new file mode 100644 index 00000000..684f28be --- /dev/null +++ b/scripts/Arch/Software/nix/main.fish @@ -0,0 +1,20 @@ +#!/bin/env fish +begin + set -l dir (status dirname) + source "$dir/../../Scripts/software.fish" + + function installSW + yayinst \ + nix \ + nil-git + + configureSW + end + + function configureSW -V dir + sudo systemctl enable --now nix-daemon + source "$dir/../../../Common/Software/nix/main.fish" configure + end + + runInstaller $argv +end diff --git a/scripts/Arch/Software/pyenv/main.fish b/scripts/Arch/Software/pyenv/main.fish new file mode 100644 index 00000000..1769d627 --- /dev/null +++ b/scripts/Arch/Software/pyenv/main.fish @@ -0,0 +1,12 @@ +#!/bin/env fish +begin + set -l dir (status dirname) + source "$dir/../../Scripts/software.fish" + + function installSW + yayinst pyenv + source "$dir/../../../Common/Software/pyenv/main.fish" configure + end + + runInstaller $argv +end diff --git a/scripts/Arch/Software/rclone/main.fish b/scripts/Arch/Software/rclone/main.fish new file mode 100644 index 00000000..176fdcd7 --- /dev/null +++ b/scripts/Arch/Software/rclone/main.fish @@ -0,0 +1,15 @@ +#!/bin/env fish +begin + set -l dir (status dirname) + source "$dir/../../Scripts/software.fish" + source "$dir/../../../Common/Software/rclone/main.fish" + + function installSW + yayinst \ + rclone + + configureSW + end + + runInstaller $argv +end diff --git a/scripts/Arch/Software/vscode/main.fish b/scripts/Arch/Software/vscode/main.fish new file mode 100644 index 00000000..e51ce199 --- /dev/null +++ b/scripts/Arch/Software/vscode/main.fish @@ -0,0 +1,27 @@ +#!/bin/env fish +begin + set -l dir (status dirname) + source "$dir/../../Scripts/software.fish" + + function installSW + yayinst \ + vscodium-bin \ + visual-studio-code-bin + + configureSW + end + + function configureSW + set -l bins codium code + + for bin in $bins + if type -q "$bin" + echo "--touch-events" | sudo tee /etc/skel/.config/$bin-flags.conf > /dev/null + end + end + + source "$dir/../../../Common/Software/vscode/main.fish" configure + end + + runInstaller $argv +end diff --git a/scripts/Arch/Software/waydroid/main.fish b/scripts/Arch/Software/waydroid/main.fish new file mode 100644 index 00000000..77922114 --- /dev/null +++ b/scripts/Arch/Software/waydroid/main.fish @@ -0,0 +1,20 @@ +#!/bin/env fish +begin + set -l dir (status dirname) + source "$dir/../../Scripts/software.fish" + + function installSW + yayinst ( + # Waydroid prerequisite: https://wiki.archlinux.org/title/Waydroid#DKMS_modules + ) binder_linux-dkms \ + waydroid ( + # For installing ARM suppot on waydroid + ) waydroid-script-git ( + # Clipboard support: https://wiki.archlinux.org/title/Waydroid#Failed_to_start_Clipboard_manager_service + ) python-pyclip ( + # Wayland clipboard support: https://github.com/spyoungtech/pyclip?tab=readme-ov-file#linux + ) wl-clipboard + end + + runInstaller $argv +end diff --git a/scripts/Common/Config/Firefox/install.sh b/scripts/Common/Config/Firefox/install.sh index a96d2b02..e271f0f2 100755 --- a/scripts/Common/Config/Firefox/install.sh +++ b/scripts/Common/Config/Firefox/install.sh @@ -1,4 +1,4 @@ #!/bin/bash pushd "${BASH_SOURCE%/*}" > /dev/null; -sudo cp ./firefox.sh /etc/profile.d/; +sudo cp ../../Software/firefox/firefox.sh /etc/profile.d/; popd > /dev/null; diff --git a/scripts/Common/Config/rclone/install.sh b/scripts/Common/Config/rclone/install.sh index f1cd5f74..0cc10c8a 100755 --- a/scripts/Common/Config/rclone/install.sh +++ b/scripts/Common/Config/rclone/install.sh @@ -1,5 +1,5 @@ #!/bin/bash -pushd "${BASH_SOURCE%/*}" > /dev/null; +pushd "${BASH_SOURCE%/*}/../../Software/rclone" > /dev/null; sudo cp "rclone.service" "rclone.target" "rclone@.service" /etc/systemd/user; systemctl enable --user rclone; diff --git a/scripts/Common/Config/Chromium/install-extension.sh b/scripts/Common/Software/Chromium/install-extension.sh old mode 100755 new mode 100644 similarity index 96% rename from scripts/Common/Config/Chromium/install-extension.sh rename to scripts/Common/Software/Chromium/install-extension.sh index 821fb973..fa68b685 --- a/scripts/Common/Config/Chromium/install-extension.sh +++ b/scripts/Common/Software/Chromium/install-extension.sh @@ -2,7 +2,7 @@ BROWSER_BIN="${BROWSER_BIN}"; EXTENSION_NAME="${EXTENSION_NAME}"; UNPACKED_EXTENSION="${UNPACKED_EXTENSION}"; -EXTENSION_DIR="${EXTENSION_DIR}"; +EXTENSION_DIR="${EXTENSION_DIR:-"/usr/local/share/chromium-extensions"}"; EXTENSION_POLICY_DIR="${EXTENSION_POLICY_DIR}"; # Elevate script diff --git a/scripts/Common/Config/Chromium/install-ytmusic-dl.sh b/scripts/Common/Software/Chromium/ytmdl.sh old mode 100755 new mode 100644 similarity index 100% rename from scripts/Common/Config/Chromium/install-ytmusic-dl.sh rename to scripts/Common/Software/Chromium/ytmdl.sh diff --git a/scripts/Common/Software/Virtual Machine Manager/main.fish b/scripts/Common/Software/Virtual Machine Manager/main.fish new file mode 100644 index 00000000..a9912cf8 --- /dev/null +++ b/scripts/Common/Software/Virtual Machine Manager/main.fish @@ -0,0 +1,18 @@ +#!/bin/env fish +begin + set -l dir (status dirname) + source "$dir/../../Scripts/software.fish" + + function installSW + end + + function configureSW + sudo virsh net-autostart default + + if not sudo virsh net-info default | grep "^Active:\s*yes\$" > /dev/null + sudo virsh net-start default || true + end + end + + runInstaller $argv +end diff --git a/scripts/Common/Software/aliae/main.fish b/scripts/Common/Software/aliae/main.fish index 581a6082..8788b31f 100644 --- a/scripts/Common/Software/aliae/main.fish +++ b/scripts/Common/Software/aliae/main.fish @@ -14,7 +14,11 @@ begin sudo install -Dm644 "$dir/aliae.yml" "$file" begin - echo "export ALIAE_CONFIG=$(string escape "$file")" + printf %s\n "" \ + "# aliae" \ + "export ALIAE_CONFIG=$(string escape "$file")" \ + 'eval "$(aliae init bash)"' \ + 'eval "$(aliae completion bash)"' end | installBashProfile "aliae" "aliae" begin diff --git a/scripts/Common/Software/brave/main.fish b/scripts/Common/Software/brave/main.fish new file mode 100644 index 00000000..87b79b76 --- /dev/null +++ b/scripts/Common/Software/brave/main.fish @@ -0,0 +1,29 @@ +#!/bin/env fish +begin + set -l dir (status dirname) + source "$dir/../../Scripts/software.fish" + + function configureSW + set -l bin + set -l extensionRoot + set -l bins brave brave-beta brave-nightly + + set -l \ + extensionRoots \ + /opt/brave-bin/extensions \ + /opt/brave.com/brave-{beta,nightly}/extensions + + for i in (seq (count $bins)) + if type -q "$bins[$i]" + set bin "$bins[$i]" + set extensionRoot "$extensionRoots[$i]" + end + end + + BROWSER_BIN="$bin" \ + EXTENSION_POLICY_DIR="$braveExtensions" \ + bash "$dir/../Chromium/ytmdl.sh" + end + + runInstaller $argv +end diff --git a/scripts/Common/Config/Firefox/firefox.sh b/scripts/Common/Software/firefox/firefox.sh similarity index 100% rename from scripts/Common/Config/Firefox/firefox.sh rename to scripts/Common/Software/firefox/firefox.sh diff --git a/scripts/Common/Software/firefox/main.fish b/scripts/Common/Software/firefox/main.fish new file mode 100644 index 00000000..a03370b4 --- /dev/null +++ b/scripts/Common/Software/firefox/main.fish @@ -0,0 +1,12 @@ +#!/bin/env fish +begin + set -l dir (status dirname) + source "$dir/../../Scripts/software.fish" + source "$dir/../../../Common/Software/firefox/main.fish" + + function configureSW -V dir + sudo cp "$dir/firefox.sh" /etc/profile.d/ + end + + runInstaller $argv +end diff --git a/scripts/Common/Software/logo-ls/main.fish b/scripts/Common/Software/logo-ls/main.fish new file mode 100644 index 00000000..fc38d036 --- /dev/null +++ b/scripts/Common/Software/logo-ls/main.fish @@ -0,0 +1,59 @@ +#!/bin/env fish +begin + set -l dir (status dirname) + source "$dir/../../Scripts/software.fish" + + function configureSW -V dir + source "../bash/profile.fish"; + source "../fish/profile.fish"; + set -l functionName _PortValhalla_ls_ + + function dump_header + echo "# logo-ls" + end + + function dump_aliases + printf %s\n \ + "alias ls='$functionName'" \ + "alias ll='ls -al'" \ + "alias l='ls'" + end + + begin + dump_header + + printf %s\n \ + "function $functionName() {" \ + " if [ -t 1 ]" \ + " then" \ + ' logo-ls -D "$@";' \ + " else" \ + ' ls --color=auto "$@"' \ + " fi;" \ + "}" \ + "" + + dump_aliases + end | installBashProfile "logo-ls" + + if type -q fish + begin + dump_header + + printf %s\n \ + "function $functionName" \ + " if [ -t 1 ]" \ + ' logo-ls -D $argv' \ + " else" \ + ' command ls --color=auto $argv' \ + " end" \ + "end" \ + "" + + dump_aliases + end | installFishProfile "logo-ls" + end + end + + runInstaller $argv +end diff --git a/scripts/Common/Software/n/main.fish b/scripts/Common/Software/n/main.fish new file mode 100644 index 00000000..0bbc01f4 --- /dev/null +++ b/scripts/Common/Software/n/main.fish @@ -0,0 +1,16 @@ +#!/bin/env fish +begin + set -l dir (status dirname) + source "$dir/../../Scripts/software.fish" + + function installSW + npm install --global n + configureSW + end + + function configureSW + n install latest + end + + runInstaller $argv +end diff --git a/scripts/Common/Software/nix/main.fish b/scripts/Common/Software/nix/main.fish index 2850973c..fc2ab74e 100644 --- a/scripts/Common/Software/nix/main.fish +++ b/scripts/Common/Software/nix/main.fish @@ -8,6 +8,9 @@ begin set -l configFile ~/.config/nix/nix.conf mkdir -p (dirname "$configFile") cp "$dir/../../../../archiso/airootfs/root/.config/nix/nix.conf" "$configFile" + else + sudo nix-channel --add https://nixos.org/channels/nixpkgs-unstable + sudo nix-channel --update end end diff --git a/scripts/Common/Software/nuke-usb/main.fish b/scripts/Common/Software/nuke-usb/main.fish new file mode 100644 index 00000000..0902bb56 --- /dev/null +++ b/scripts/Common/Software/nuke-usb/main.fish @@ -0,0 +1,11 @@ +#!/bin/env fish +begin + set -l dir (status dirname) + source "$dir/../../Scripts/software.fish" + + function installSW -V dir + sudo install -m 755 "$dir/nuke-usb.sh" /usr/local/bin/nuke-usb + end + + runInstaller $argv +end diff --git a/scripts/Common/Software/pyenv/main.fish b/scripts/Common/Software/pyenv/main.fish new file mode 100644 index 00000000..2454f1f4 --- /dev/null +++ b/scripts/Common/Software/pyenv/main.fish @@ -0,0 +1,29 @@ +#!/bin/env fish +begin + set -l dir (status dirname) + source "$dir/../../Scripts/software.fish" + source "$dir/../../../Common/Software/aliae/main.fish" + + function installSW + curl https://pyenv.run | bash + configureSW + end + + function configureSW + source "$dir/../bash/profile.fish" + source "$dir/../fish/profile.fish" + + begin + printf %s\n "" \ + 'export PYENV_ROOT="$HOME/.pyenv"' \ + 'command -v pyenv >/dev/null || export PATH="$PYENV_ROOT/bin:$PATH"' \ + 'eval "$(pyenv init -)"' + end | installBashProfile "pyenv" > /dev/null + + if type -q fish + addFishProfile "pyenv" "pyenv" "pyenv init - | source" + end + end + + runInstaller $argv +end diff --git a/scripts/Common/Software/rclone/main.fish b/scripts/Common/Software/rclone/main.fish new file mode 100644 index 00000000..9110684e --- /dev/null +++ b/scripts/Common/Software/rclone/main.fish @@ -0,0 +1,11 @@ +#!/bin/env fish +begin + set -l dir (status dirname) + source "$dir/../../Scripts/software.fish" + + function configureSW -V dir + sudo cp "$dir/rclone.service" "$dir/rclone.target" "$dir/rclone@.service" /etc/systemd/user + end + + runInstaller $argv +end diff --git a/scripts/Common/Config/rclone/rclone.service b/scripts/Common/Software/rclone/rclone.service similarity index 100% rename from scripts/Common/Config/rclone/rclone.service rename to scripts/Common/Software/rclone/rclone.service diff --git a/scripts/Common/Config/rclone/rclone.target b/scripts/Common/Software/rclone/rclone.target similarity index 100% rename from scripts/Common/Config/rclone/rclone.target rename to scripts/Common/Software/rclone/rclone.target diff --git a/scripts/Common/Config/rclone/rclone@.service b/scripts/Common/Software/rclone/rclone@.service similarity index 100% rename from scripts/Common/Config/rclone/rclone@.service rename to scripts/Common/Software/rclone/rclone@.service diff --git a/scripts/Common/Software/vscode/main.fish b/scripts/Common/Software/vscode/main.fish new file mode 100644 index 00000000..24b650bb --- /dev/null +++ b/scripts/Common/Software/vscode/main.fish @@ -0,0 +1,21 @@ +#!/bin/env fish +begin + set -l dir (status dirname) + source "$dir/../../Scripts/software.fish" + source "$dir/../../../Common/Software/aliae/main.fish" + + function configureSW + set -l bins codium codium-insiders code code-insiders + set -l extensions zokugun.{sync-settings,vsix-manager} + + for bin in $bins + if type -q "$bin" + for extension in $extensions + "$bin" --install-extension "$extension" + end + end + end + end + + runInstaller $argv +end diff --git a/scripts/PopOS/Collections/personal.sh b/scripts/PopOS/Collections/personal.sh index c0b3916f..6ae3eca6 100755 --- a/scripts/PopOS/Collections/personal.sh +++ b/scripts/PopOS/Collections/personal.sh @@ -11,7 +11,7 @@ source "../../Debian/Software/Brave/install-stable.sh"; BROWSER_BIN="brave-browser" \ EXTENSION_DIR=/usr/share/brave-extensions \ EXTENSION_POLICY_DIR=/opt/brave.com/brave/extensions \ - source "../../Common/Config/Chromium/install-ytmusic-dl.sh"; + source "../../Common/Software/Chromium/ytmdl.sh"; source "../../Debian/Software/Google Chrome/install.sh";