import tkinter as tk
import subprocess
from tkinter import ttk
class NordVPNApp:
def __init__(self, root):
self.root = root
self.root.title("NordVPN Controller")
self.label = tk.Label(root, text="NordVPN Controller")
self.label.pack()
self.connect_button = tk.Button(root, text="Connect", command=self.connect)
self.connect_button.pack()
self.disconnect_button = tk.Button(root, text="Disconnect", command=self.disconnect)
self.disconnect_button.pack()
self.server_label = tk.Label(root, text="Server:")
self.server_label.pack()
self.servers = ["us", "uk", "ca", "au", "de", "fr"] # list of NordVPN servers
self.server_var = tk.StringVar()
self.server_dropdown = ttk.OptionMenu(root, self.server_var, *self.servers)
self.server_dropdown.pack()
self.status_label = tk.Label(root, text="Status: Not Connected")
self.status_label.pack(side=tk.BOTTOM, fill=tk.X)
def connect(self):
server = self.server_var.get()
subprocess.run(["nordvpn", "connect", server])
self.status_label.config(text=f"Status: Connected to {server}")
def disconnect(self):
subprocess.run(["nordvpn", "disconnect"])
self.status_label.config(text="Status: Not Connected")
if __name__ == "__main__":
root = tk.Tk()
app = NordVPNApp(root)
root.mainloop()
Published