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 @@
+
+
\ 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 @@
+
+
\ 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