From f9864060bbcbe00b95d586bc13f30d4c01aaf88f Mon Sep 17 00:00:00 2001 From: 4ntsy <228124712+4ntsy@users.noreply.github.com> Date: Sun, 24 Aug 2025 19:53:29 -0300 Subject: [PATCH] feat: Add privacy category Signed-off-by: 4ntsy <228124712+4ntsy@users.noreply.github.com> --- p3/app/icons/expressvpn.svg | 9 +++++ p3/app/icons/ivpn.svg | 14 ++++++++ p3/app/icons/mullvadvpn.svg | 48 +++++++++++++++++++++++++ p3/app/icons/nordvpn.svg | 7 ++++ p3/app/icons/privacy.svg | 26 ++++++++++++++ p3/app/icons/protonvpn.svg | 25 +++++++++++++ p3/app/icons/surfsharkvpn.svg | 20 +++++++++++ p3/libs/lang/en.json | 2 ++ p3/libs/lang/pt.json | 2 ++ p3/scripts/privacy/category-info.txt | 2 ++ p3/scripts/privacy/express-vpn.sh | 16 +++++++++ p3/scripts/privacy/ivpn.sh | 52 ++++++++++++++++++++++++++++ p3/scripts/privacy/mullvad-vpn.sh | 32 +++++++++++++++++ p3/scripts/privacy/nord-vpn.sh | 24 +++++++++++++ p3/scripts/privacy/proton-vpn.sh | 15 ++++++++ p3/scripts/privacy/surfshark-vpn.sh | 15 ++++++++ 16 files changed, 309 insertions(+) create mode 100644 p3/app/icons/expressvpn.svg create mode 100644 p3/app/icons/ivpn.svg create mode 100644 p3/app/icons/mullvadvpn.svg create mode 100644 p3/app/icons/nordvpn.svg create mode 100644 p3/app/icons/privacy.svg create mode 100644 p3/app/icons/protonvpn.svg create mode 100644 p3/app/icons/surfsharkvpn.svg create mode 100644 p3/scripts/privacy/category-info.txt create mode 100644 p3/scripts/privacy/express-vpn.sh create mode 100644 p3/scripts/privacy/ivpn.sh create mode 100644 p3/scripts/privacy/mullvad-vpn.sh create mode 100644 p3/scripts/privacy/nord-vpn.sh create mode 100644 p3/scripts/privacy/proton-vpn.sh create mode 100644 p3/scripts/privacy/surfshark-vpn.sh diff --git a/p3/app/icons/expressvpn.svg b/p3/app/icons/expressvpn.svg new file mode 100644 index 00000000..f16d586e --- /dev/null +++ b/p3/app/icons/expressvpn.svg @@ -0,0 +1,9 @@ + + + Logo/Monogram/ExpressVPN_Monogram_Logo_Red + + + + + + \ No newline at end of file diff --git a/p3/app/icons/ivpn.svg b/p3/app/icons/ivpn.svg new file mode 100644 index 00000000..21d905b1 --- /dev/null +++ b/p3/app/icons/ivpn.svg @@ -0,0 +1,14 @@ + + + + C0A05EA0-297A-4570-9608-D713E92E241F + Created with sketchtool. + + + + + + + \ No newline at end of file diff --git a/p3/app/icons/mullvadvpn.svg b/p3/app/icons/mullvadvpn.svg new file mode 100644 index 00000000..e6727515 --- /dev/null +++ b/p3/app/icons/mullvadvpn.svg @@ -0,0 +1,48 @@ + + + + + diff --git a/p3/app/icons/nordvpn.svg b/p3/app/icons/nordvpn.svg new file mode 100644 index 00000000..7134a45f --- /dev/null +++ b/p3/app/icons/nordvpn.svg @@ -0,0 +1,7 @@ + + + + + + + diff --git a/p3/app/icons/privacy.svg b/p3/app/icons/privacy.svg new file mode 100644 index 00000000..16e3f130 --- /dev/null +++ b/p3/app/icons/privacy.svg @@ -0,0 +1,26 @@ + \ No newline at end of file diff --git a/p3/app/icons/protonvpn.svg b/p3/app/icons/protonvpn.svg new file mode 100644 index 00000000..be383e6f --- /dev/null +++ b/p3/app/icons/protonvpn.svg @@ -0,0 +1,25 @@ + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/p3/app/icons/surfsharkvpn.svg b/p3/app/icons/surfsharkvpn.svg new file mode 100644 index 00000000..2f26992d --- /dev/null +++ b/p3/app/icons/surfsharkvpn.svg @@ -0,0 +1,20 @@ + + + + + + + + + diff --git a/p3/libs/lang/en.json b/p3/libs/lang/en.json index 2a62ceaf..d2534a26 100644 --- a/p3/libs/lang/en.json +++ b/p3/libs/lang/en.json @@ -46,6 +46,8 @@ "utils_desc": "System management, maintenance, monitoring and other tools.", "devs": "Developers", "devs_desc": "Tools and resources for software developers.", + "privacy": "Privacy", + "privacy_desc": "Tools and resources for privacy on Linux.", "drivers": "Drivers", "drivers_desc": "Drivers for various purposes and devices.", "repos": "Adittional Repositories", diff --git a/p3/libs/lang/pt.json b/p3/libs/lang/pt.json index 120a77be..36a79111 100644 --- a/p3/libs/lang/pt.json +++ b/p3/libs/lang/pt.json @@ -48,6 +48,8 @@ "devs_desc": "Ferramentas e recursos para desenvolvedores de software.", "drivers": "Drivers", "drivers_desc": "Drivers para diversos propósitos e dispositivos.", + "privacy": "Privacidade", + "privacy_desc": "Ferramentas e recursos para privacidade no Linux.", "repos": "Repositórios Adicionais", "repos_desc": "Fontes adicionais de software no Linux. Instale apenas o que realmente precisa.", "unoptimize": "Reverter Otimizações", diff --git a/p3/scripts/privacy/category-info.txt b/p3/scripts/privacy/category-info.txt new file mode 100644 index 00000000..dd7ac155 --- /dev/null +++ b/p3/scripts/privacy/category-info.txt @@ -0,0 +1,2 @@ +ICON: privacy.svg +description: privacy_desc diff --git a/p3/scripts/privacy/express-vpn.sh b/p3/scripts/privacy/express-vpn.sh new file mode 100644 index 00000000..28d8508b --- /dev/null +++ b/p3/scripts/privacy/express-vpn.sh @@ -0,0 +1,16 @@ +#!/bin/bash +# name: Express VPN +# version: 1.0 +# description: Express VPN +# icon: expressvpn.svg +# compat: ubuntu, debian, fedora, arch, cachy + +# --- Start of the script code --- +. /etc/os-release +SCRIPT_DIR="$(dirname "$(readlink -f "${BASH_SOURCE[0]}")")" +source "$SCRIPT_DIR/../../libs/linuxtoys.lib" +_lang_ +source "$SCRIPT_DIR/../../libs/lang/${langfile}.lib" +source "$SCRIPT_DIR/../../libs/helpers.lib" +sudo_rq +curl -fsSLo /tmp/express-instaler.run https://www.expressvpn.works/clients/linux/expressvpn-linux-universal-4.1.1.10039.run && bash /tmp/express-instaler.run && rm /tmp/express-instaler.run diff --git a/p3/scripts/privacy/ivpn.sh b/p3/scripts/privacy/ivpn.sh new file mode 100644 index 00000000..3213950b --- /dev/null +++ b/p3/scripts/privacy/ivpn.sh @@ -0,0 +1,52 @@ +#!/bin/bash +# name: IVPN +# version: 1.0 +# description: IVPN +# icon: ivpn.svg +# compat: ubuntu, debian, fedora + +# --- Start of the script code --- +. /etc/os-release +SCRIPT_DIR="$(dirname "$(readlink -f "${BASH_SOURCE[0]}")")" +source "$SCRIPT_DIR/../../libs/linuxtoys.lib" +_lang_ +source "$SCRIPT_DIR/../../libs/lang/${langfile}.lib" +source "$SCRIPT_DIR/../../libs/helpers.lib" +sudo_rq +if [[ "$ID_LIKE" == *debian* ]] || [ "$ID" == "debian" ]; then + # Add IVPN's GPG key + curl -fsSL https://repo.ivpn.net/stable/debian/generic.gpg | gpg --dearmor | sudo tee /usr/share/keyrings/ivpn-archive-keyring.gpg > /dev/null + # Set Appropriate Permissions for GPG key + sudo chown root:root /usr/share/keyrings/ivpn-archive-keyring.gpg && sudo chmod 644 /usr/share/keyrings/ivpn-archive-keyring.gpg + # Add the IVPN repository + curl -fsSL https://repo.ivpn.net/stable/debian/generic.list | sudo tee /etc/apt/sources.list.d/ivpn.list + # Set Appropriate Permissions for Repository + sudo chown root:root /etc/apt/sources.list.d/ivpn.list && sudo chmod 644 /etc/apt/sources.list.d/ivpn.list + # Update APT repo info + sudo apt update + # Install IVPN software (CLI and UI) + _packages=(ivpn-ui) + _install_ +elif [[ "$ID_LIKE" == *ubuntu* ]] || [ "$ID" == "ubuntu" ]; then + # Add IVPN's GPG key + curl -fsSL https://repo.ivpn.net/stable/ubuntu/generic.gpg | gpg --dearmor | sudo tee /usr/share/keyrings/ivpn-archive-keyring.gpg > /dev/null + # Set Appropriate Permissions for GPG key + sudo chown root:root /usr/share/keyrings/ivpn-archive-keyring.gpg && sudo chmod 644 /usr/share/keyrings/ivpn-archive-keyring.gpg + # Add the IVPN repository + curl -fsSL https://repo.ivpn.net/stable/ubuntu/generic.list | sudo tee /etc/apt/sources.list.d/ivpn.list + # Set Appropriate Permissions for Repository + sudo chown root:root /etc/apt/sources.list.d/ivpn.list && sudo chmod 644 /etc/apt/sources.list.d/ivpn.list + # Update APT repo info + sudo apt update + # Install IVPN software (CLI and UI) + _packages=(ivpn-ui) + _install_ +elif [[ "$ID_LIKE" == *fedora* ]] || [ "$ID" == "fedora" ]; then + # [Fedora 41+] Add the IVPN repository + sudo dnf config-manager addrepo --from-repofile=https://repo.ivpn.net/stable/fedora/generic/ivpn.repo + # Install IVPN software (CLI and UI) + _packages=(ivpn-ui) + _install_ +else + fatal "$msg077" +fi diff --git a/p3/scripts/privacy/mullvad-vpn.sh b/p3/scripts/privacy/mullvad-vpn.sh new file mode 100644 index 00000000..32769506 --- /dev/null +++ b/p3/scripts/privacy/mullvad-vpn.sh @@ -0,0 +1,32 @@ +#!/bin/bash +# name: Mullvad VPN +# version: 1.0 +# description: Mullvad VPN +# icon: mullvadvpn.svg +# compat: ubuntu, debian, fedora, arch, cachy + +# --- Start of the script code --- +. /etc/os-release +SCRIPT_DIR="$(dirname "$(readlink -f "${BASH_SOURCE[0]}")")" +source "$SCRIPT_DIR/../../libs/linuxtoys.lib" +_lang_ +source "$SCRIPT_DIR/../../libs/lang/${langfile}.lib" +source "$SCRIPT_DIR/../../libs/helpers.lib" +sudo_rq +if [[ "$ID_LIKE" == *debian* ]] || [[ "$ID_LIKE" == *ubuntu* ]] || [ "$ID" == "debian" ] || [ "$ID" == "ubuntu" ]; then + sudo curl -fsSLo /usr/share/keyrings/mullvad-keyring.asc https://repository.mullvad.net/deb/mullvad-keyring.asc + echo "deb [signed-by=/usr/share/keyrings/mullvad-keyring.asc arch=$( dpkg --print-architecture )] https://repository.mullvad.net/deb/stable stable main" | sudo tee /etc/apt/sources.list.d/mullvad.list + sudo apt-get update + _packages=(mullvad-vpn) + _install_ +elif [[ "$ID_LIKE" =~ (rhel|fedora) ]] || [[ "$ID" =~ (fedora) ]]; then + sudo dnf config-manager addrepo --from-repofile=https://repository.mullvad.net/rpm/stable/mullvad.repo + _packages=(mullvad-vpn) + _install_ +elif [[ "$ID" =~ ^(arch|cachyos)$ ]] || [[ "$ID_LIKE" == *arch* ]] || [[ "$ID_LIKE" == *archlinux* ]]; then + chaotic_aur_lib + _packages=(mullvad-vpn) + _install_ +else + fatal "$msg077" +fi diff --git a/p3/scripts/privacy/nord-vpn.sh b/p3/scripts/privacy/nord-vpn.sh new file mode 100644 index 00000000..06db2f8c --- /dev/null +++ b/p3/scripts/privacy/nord-vpn.sh @@ -0,0 +1,24 @@ +#!/bin/bash +# name: Nord VPN +# version: 1.0 +# description: Nord VPN +# icon: nordvpn.svg +# compat: ubuntu, debian, fedora, arch, cachy, suse + +# --- Start of the script code --- +. /etc/os-release +SCRIPT_DIR="$(dirname "$(readlink -f "${BASH_SOURCE[0]}")")" +source "$SCRIPT_DIR/../../libs/linuxtoys.lib" +_lang_ +source "$SCRIPT_DIR/../../libs/lang/${langfile}.lib" +source "$SCRIPT_DIR/../../libs/helpers.lib" +sudo_rq +if [[ "$ID_LIKE" =~ (ubuntu|debian) ]] || [[ "$ID_LIKE" =~ (suse|rhel|fedora) ]] || [[ "$ID" =~ (fedora|suse) ]]; then + sh <(wget -qO - https://downloads.nordcdn.com/apps/linux/install.sh) -p nordvpn-gui -n +elif [[ "$ID" =~ ^(arch|cachyos)$ ]] || [[ "$ID_LIKE" == *arch* ]] || [[ "$ID_LIKE" == *archlinux* ]]; then + chaotic_aur_lib + _packages=(nordvpn-bin) + _install_ +else + fatal "$msg077" +fi diff --git a/p3/scripts/privacy/proton-vpn.sh b/p3/scripts/privacy/proton-vpn.sh new file mode 100644 index 00000000..9efa054e --- /dev/null +++ b/p3/scripts/privacy/proton-vpn.sh @@ -0,0 +1,15 @@ +#!/bin/bash +# name: Proton VPN +# version: 1.0 +# description: Proton VPN +# icon: protonvpn.svg + +# --- Start of the script code --- +. /etc/os-release +SCRIPT_DIR="$(dirname "$(readlink -f "${BASH_SOURCE[0]}")")" +source "$SCRIPT_DIR/../../libs/linuxtoys.lib" +_lang_ +source "$SCRIPT_DIR/../../libs/lang/${langfile}.lib" +source "$SCRIPT_DIR/../../libs/helpers.lib" +flatpak_in_lib +flatpak install --or-update --user --noninteractive flathub com.protonvpn.www diff --git a/p3/scripts/privacy/surfshark-vpn.sh b/p3/scripts/privacy/surfshark-vpn.sh new file mode 100644 index 00000000..bfeef61a --- /dev/null +++ b/p3/scripts/privacy/surfshark-vpn.sh @@ -0,0 +1,15 @@ +#!/bin/bash +# name: Surfshark VPN +# version: 1.0 +# description: Surfshark VPN +# icon: surfsharkvpn.svg + +# --- Start of the script code --- +. /etc/os-release +SCRIPT_DIR="$(dirname "$(readlink -f "${BASH_SOURCE[0]}")")" +source "$SCRIPT_DIR/../../libs/linuxtoys.lib" +_lang_ +source "$SCRIPT_DIR/../../libs/lang/${langfile}.lib" +source "$SCRIPT_DIR/../../libs/helpers.lib" +flatpak_in_lib +flatpak install --or-update --user --noninteractive flathub com.surfshark.Surfshark