Plasma 6 widget for showing informations about your public IP address and the status of your VPN (active/inactive). This is useful for informational purposes and to monitor VPN geolocation.
The expanded view shows a map with informations requested from ipinfo.com: you can copy to clipboard the different informations by clicking over them. You can also open the map on the browser, and update the informations by sending another request.
By default, the widget update itself every 5 minutes. You can change this behaviour in the settings. Please note that ipinfo.com API limits the total amount of requests to 1000 per day: this means that the plugin will update itself at most every 2 minutes.
You can change the colors of the displayed informations in the settings.
This widget uses the excellent flags icon pack by lipis and contributors.
Master branch deals with Plasma 6. plasma5 branch contains the code for Plasma 5.
The primary functions of the widget (check IP address) should work correctly even if the following dependencies are not installed. Anyway, to get the best experience you need:
curl: this is used to query ipinfo.com. It can be installed withsudo apt install curl.libnotify-bin: this is for showing notifications when clicking links, thus copying the link's content to the clipboard.sudo apt install libnotify-binnmcli: this is part of thenetwork-managerpackage. It'll check the status of the VPN by executing the commandnmcli c show --active; if a VPN is active, there should be some entries containing the keywordsvpnortun. It should already be installed in Ubuntu. Don't know about other distros (let me know in the comments or by opening an issue).
- If your widgets are locked, right-click the desktop and select
Unlock Widgets - Right-click the desktop and select
Add Widgets... - Click the
Get new widgetsbutton in the Widget Explorer that just opened - Type
Public IP Addressinto the search field - Click the
Installbutton next toPublic IP Address
I tested the Plasma 6 version with Kubuntu 24.04 and 25.04. Even when
libqt6positioning6 libqt6location6 qml6-module-qtlocation qml6-module-qtpositioning
are installed on the system, the interactive map can't be shown and the logs
showed this error: "The geoservices provider is not supported".
If you have any idea why this happens, let me know!
Here are the recommended steps to contribute to this widget:
- fork this repository.
- download the repository:
git clone https://github.com/<YOUR-USERNAME>/ip_address.git - enter the project directory:
cd ip_address - create a new branch:
git branch -d YOUR-BRANCH-NAME - do the necessary edits and commit them.
- push the branch to your remote:
git push origin YOUR-BRANCH-NAME - open the Pull Request.
PRs are welcomed. However, each PR should be concise and on point with its intended goal. If a PR claims to implement feature A but it also modifies other parts of the code unnecessarely, than it is doing too much and I won't merge it.
NOTE about AI-LLM usage: I have nothing against the use of these tools. However, many people are unable to properly control their outputs. In practice, these tools often modifies too much. With this in mind:
- If there is a comment in the code, it is very likely to be important to me (the maintainer). Equally important are variable names, function names etc. If the LLM is going to change variable names, remove comments or reorganize the code just for the sake of it, I'll close the PR immediately.
- I prefer that you code manually and understand exactly what you are doing. Remember that at this moment, testing is done manually after each edit, which is time consuming.

