Skip to main content

QVpnStatus

pipeline status coverage report documentation pypi version gitter

VPN Status tray icon for monitoring VPN connections from nmcli. Allows you to specify interval to check and also toggle off sound notifications.

See link here for more information.

It is based on my copier-poetry-fbs skeleton which uses PyQT5 for the GUI elements and fbs for the installer creation.

Installation

###Debian/Ubuntu/Mint Linux Installation

Manual Installer link without automatic updates. https://fbs.sh/qvpnstatus/qvpnstatus/qvpnstatus.deb

###Install from website.

wget https://fbs.sh/qvpnstatus/qvpnstatus/qvpnstatus.deb
sudo dpkg -i qvpnstatus.deb

####To install with automatic updates supported via repo.

sudo apt-get install -y apt-transport-https
wget -qO - https://fbs.sh/qvpnstatus/qvpnstatus/public-key.gpg | sudo apt-key add -
echo 'deb [arch=amd64] https://fbs.sh/qvpnstatus/qvpnstatus/deb stable main' | sudo tee /etc/apt/sources.list.d/qvpnstatus.list
sudo apt-get update; sudo apt-get install -y qvpnstatus

Installation is done into /opt/qvpnstatus/


###Arch Linux Installation

####Manual Installer link without automatic updates. https://fbs.sh/qvpnstatus/qvpnstatus/qvpnstatus.pkg.tar.xz

####To install with automatic updates supported via repo.

curl -O https://fbs.sh/qvpnstatus/qvpnstatus/public-key.gpg && sudo pacman-key --add public-key.gpg && sudo pacman-key --lsign-key 9EF5FD1B7714354D0535303CFF1B29F26A1378E8 && rm public-key.gpg
echo -e '\n[qvpnstatus]\nServer = https://fbs.sh/qvpnstatus/qvpnstatus/arch' | sudo tee -a /etc/pacman.conf
sudo pacman -Syu qvpnstatus

If you already have the app installed, you can force an immediate update via:

sudo pacman -Syu --needed qvpnstatus

Installation via pip:

python3.7 -m pip install qvpnstatus

Installation via pipx:

python3.7 -m pip install --user pipx

pipx install --python python3.7 qvpnstatus

Dev Requirements

QVpnStatus requires Python 3.7 or above.

To install Python 3.7, I recommend using pyenv.
# install pyenv
git clone https://github.com/pyenv/pyenv ~/.pyenv

# setup pyenv (you should also put these three lines in .bashrc or similar)
export PATH="${HOME}/.pyenv/bin:${PATH}"
export PYENV_ROOT="${HOME}/.pyenv"
eval "$(pyenv init -)"

# install Python 3.7
pyenv install 3.7.12

# make it available globally
pyenv global system 3.7.12

Creating a native installer

  • clone the repo locally
    git clone git@gitlab.com:mikeramsey/qvpnstatus.git
  • Install poetry
    curl -sSL https://raw.githubusercontent.com/python-poetry/poetry/master/get-poetry.py | python3 -
  • Setting the below settings are highly recommended for ensuring the virtual environment poetry makes is located inside the project folder.
    poetry config virtualenvs.create true; poetry config virtualenvs.in-project true;
  • Run poetry install in the path to install all the dependencies
  • Enter the virtual environment that poetry created. This can be found by running poetry env info See also here
  • Run fbs freeze and then fbs installer afterwards if the frozen "compiled" app runs without issues. See here for more on how fbs works. And also here

Credits

Special thanks to below references and resources.

Resources: Python nmcli api package which made this a breeze:
https://github.com/ushiboy/nmcli
https://pypi.org/project/nmcli/

References:
https://www.learnpyqt.com/tutorials/system-tray-mac-menu-bar-applications-pyqt/
https://itectec.com/ubuntu/ubuntu-connect-disconnect-from-vpn-from-the-command-line/
https://www.devdungeon.com/content/python3-qt5-pyqt5-tutorial#toc-9

Metadata

Release files for qvpnstatus 0.1.2

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for qvpnstatus 0.1.2
File Size Uploaded Provenance Actions
qvpnstatus-0.1.2.tar.gz 432.2 kB Without provenance Details for qvpnstatus-0.1.2.tar.gz

Built distribution (wheel)

Table of built distributions (wheels) for qvpnstatus 0.1.2
File Interpreter ABI Platform Actions
qvpnstatus-0.1.2-py3-none-any.whl Python 3 none any Details for qvpnstatus-0.1.2-py3-none-any.whl

Total release size: 861.5 kB

Release files / qvpnstatus-0.1.2.tar.gz

Download URL qvpnstatus-0.1.2.tar.gz
Size 432.2 kB
Tags Source
SHA-256 checksum
How to use checksums
be99e6b9a367193eb7dbd9b8271e045985d4182ea873cd07023394f3ac23a47c
BLAKE2b-256 checksum
How to use checksums
20f4b27061bc2ab4a48da88d05ce11f382b89ddec9536015f1a1fc8e6894600d
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via poetry/1.1.5 CPython/3.7.10 Linux/5.4.0-70-generic

Release files / qvpnstatus-0.1.2-py3-none-any.whl

Download URL qvpnstatus-0.1.2-py3-none-any.whl
Size 429.3 kB
Tags Python 3
SHA-256 checksum
How to use checksums
06968b9aa77d2dbc60a54e8b1b681f30c540e67d4f2d47c6ec4cea847bb4d008
BLAKE2b-256 checksum
How to use checksums
57576d2707d91f19b9fb0ef6829eabbabae8d56af4fc74f18850824c8cbfda89
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via poetry/1.1.5 CPython/3.7.10 Linux/5.4.0-70-generic

Security for qvpnstatus 0.1.2

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

No provenance found

None of the files in this release were uploaded with provenance metadata.

A note on package security

PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.

To learn more about protecting yourself from malicious actors, visit our package security documentation.

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page