A simple python GUI for Nord VPN

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()