Skip to content

GitLab

  • Projects
  • Groups
  • Snippets
  • Help
    • Loading...
  • Help
    • Help
    • Support
    • Community forum
    • Submit feedback
    • Contribute to GitLab
  • Sign in / Register
bitmask-vpn
bitmask-vpn
  • Project overview
    • Project overview
    • Details
    • Activity
    • Releases
  • Repository
    • Repository
    • Files
    • Commits
    • Branches
    • Tags
    • Contributors
    • Graph
    • Compare
  • Issues 154
    • Issues 154
    • List
    • Boards
    • Labels
    • Service Desk
    • Milestones
  • Merge Requests 2
    • Merge Requests 2
  • CI/CD
    • CI/CD
    • Pipelines
    • Jobs
    • Schedules
  • Operations
    • Operations
    • Incidents
    • Environments
  • Packages & Registries
    • Packages & Registries
    • Container Registry
  • Analytics
    • Analytics
    • CI/CD
    • Repository
    • Value Stream
  • Wiki
    • Wiki
  • Members
    • Members
  • Activity
  • Graph
  • Create a new issue
  • Jobs
  • Commits
  • Issue Boards
Collapse sidebar
  • leap
  • bitmask-vpnbitmask-vpn
  • Issues
  • #303

Closed
Open
Created Jun 18, 2020 by Mason Hock@chaosmonk

gnome shell extension

Hi. I am working on a GNOME Shell extension to integrate Riseup VPN into GNOME's status menu. It basically functions right now (see the video below), but some of the ways in which it interacts with the VPN are hacky and wrong:

  • The extension currently determines whether the VPN is on by checking whether there is a current process called "riseup-vpn" and whether "tun" appears in the output of nmcli c show --active. This is probably not reliable. For example, there would be a false positive if riseup-vpn were running but off while another VPN was running and connected.
  • The extension currently turns the VPN on and off by killing the riseup-vpn process and restarting it with the -start-vpn on or -start-vpn off option which is slow (I've edited out the delay in the video) and dirty.

I've begun looking through bitmask-vpn's code to see if there is some functionality exposed that the extension could use to properly determine the VPN's status and to turn it on/off without killing and restarting it. However, I have no experience with golang and am having a hard time understanding it, so I thought I'd see if someone more familiar with the codebase could give me some insight or guidance.

Here is the code so far.

Here is a video. I have Topicons plus installed to display the systray icon alongside the status menu for demonstration purposes.

riseup-vpn

Thanks!

Edited Jun 24, 2020 by Kali Kaneko
Assignee
Assign to
Desktop Backlog
Milestone
Desktop Backlog
Assign milestone
Time tracking
None
Due date
None