# NextDNS Linux Trayicon This small Python script and .desktop file add a quick toggle to the desktop environment's system tray. ![NextDNS Tray demo](nextdns_tray_demo.png "NextDNS Tray demo") ## Prerequisites 1. **NextDNS CLI**: The script controls the nextdns service. If you haven't installed it yet: ```bash sh -c 'curl -sL https://nextdns.io/install | sh' ``` 1. **Python 3 & PyQt6**: The interface is built using Python 3 and the Qt6 toolkit. (This is installed by default on (K)ubuntu.) ```bash sudo apt update sudo apt install python3 python3-pyqt6 ``` 1. **Polkit Agent**: The script uses pkexec to handle start/stop commands safely. Most desktop environments (KDE, GNOME, XFCE) come with this pre-installed. ## Installation Preferred (single command): ```bash ./install.sh ``` Enable autostart during install: ```bash ./install.sh --autostart ``` ## Uninstall ```bash ./uninstall.sh ``` Preview what would be removed: ```bash ./uninstall.sh --dry-run ``` 1. **Copy the files to your home directory:** ```bash # Create directories if they don't exist mkdir -p ~/.local/bin ~/.local/share/applications ~/.local/share/icons # Copy the specific files cp home/.local/bin/nextdns-tray ~/.local/bin/ cp home/.local/share/applications/nextdns-tray.desktop ~/.local/share/applications/ cp home/.local/share/icons/nextdns.png ~/.local/share/icons/ ``` 1. **Make the script executable** ```bash chmod +x ~/.local/bin/nextdns-tray ``` The bundled `nextdns-tray.desktop` launcher runs `nextdns-tray` directly (via `PATH`) so it is not tied to any repository location. If your desktop session does not include `~/.local/bin` in `PATH`, use an absolute path in `~/.local/share/applications/nextdns-tray.desktop`. 1. **(Optional) Add to Autostart**: If you want the tray to start automatically when you log in: ```bash mkdir -p ~/.config/autostart cp ~/.local/share/applications/nextdns-tray.desktop ~/.config/autostart/ ``` ### Manual Installation (equivalent) ```bash sh -c 'curl -sL https://nextdns.io/install | sh' sudo apt update sudo apt install python3 python3-pyqt6 ``` ```bash mkdir -p ~/.local/bin ~/.local/share/applications ~/.local/share/icons cp home/.local/bin/nextdns-tray ~/.local/bin/ cp home/.local/share/applications/nextdns-tray.desktop ~/.local/share/applications/ cp home/.local/share/icons/nextdns.png ~/.local/share/icons/ chmod +x ~/.local/bin/nextdns-tray mkdir -p ~/.config/autostart cp ~/.local/share/applications/nextdns-tray.desktop ~/.config/autostart/ ```