Skip to main content

Gnome appindicator dns switcher


Gnome appindicator (toolbar icon) tool to quickly switch between different DNS servers

  • Easily available in your toolbox
  • Config file to specify DNS servers Supports multiple connections and switching them separately
  • Utility button to restart NetworkManager

gds

💻 Screenshots

Easily available in your toolbar

Shows you what it's done, no surprises

Supports multiple connections and switching them separately

Setup

Install dependencies

# Install pipx:
sudo apt install pipx

# Add pipx path to your .bashrc
pipx ensurepath

# Install dependencies to run this application
sudo apt install python3-dev libcairo2-dev libgirepository1.0-dev python3-gi python3-gi-cairo gir1.2-gtk-3.0 gir1.2-appindicator3-0.1

Install gnome-dns-switcher

pipx install gnome-dns-switcher

# Generate a default configuration
gnome-dns-switcher generate-config

# Modify the config to your needs. See config documentation below
edit ~/.config/gnome-dns-switcher.yml

Usage

Start the app in the background

Simply add & after your command

gnome-dns-switcher &

Specify a different configuration file (default is ~/.config/gnome-dns-switcher.yml)

gnome-dns-switcher --config /path/to/config.yml

Add to startup applications

# Sleep 10 seconds before starting to prevent starting up 
# before network connections have been made
bash -c 'sleep 10 && gnome-dns-switcher --config ~/.config/gnome-dns-switcher.yml'

Config

The config file allows you to specify which DNS servers to show and what devices are visible. By default, gnome-dns-switcher looks for a config file at ~/.config/gnome-dns-switcher.yml

To generate and example configuration, you can run gnome-dns-switcher generate-config

The generated configuration will look like this:

servers: # DNS Server options to show
  # DHCP is always shown as the first option
  Quad9: 9.9.9.9
  CloudFlare: [1.1.1.1, 1.0.0.1]
  Google DNS:
    - 8.8.8.8
    - 8.8.4.4
devices: [] # Specify device names here if you want to hide certain devices (ip link show)

servers A list of servers that can be switched between

  • The name is only used for displaying
  • You can define one or more ips, as a yaml array or as a comma-seperated string

devices Which devices to show (optional)

  • optional, will display all non-bridge connections if not present or empty
  • one or more devices to show in the switcher
    • List all your devices by running ip link show in a terminal

Development

Setup

Set up virtualenv:

virtualenv venv
source venv/bin/activate

Install dependencies:

python setup.py install
pip install vext vext.gi

Running

python -m gnome_dns_switcher

Useful links

Release files for gnome-dns-switcher 1.4.0

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for gnome-dns-switcher 1.4.0
File Size Uploaded
gnome_dns_switcher-1.4.0.tar.gz 21.1 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for gnome-dns-switcher 1.4.0
File Interpreter ABI Platform
gnome_dns_switcher-1.4.0-py3-none-any.whl Python 3 none any Details

Total release size: 42.9 kB

Release files / gnome_dns_switcher-1.4.0.tar.gz

Download URL gnome_dns_switcher-1.4.0.tar.gz
Size 21.1 kB
Tags Source
SHA-256 checksum
How to use checksums
afb63deb0f6f099257f96ed5d02f42739f15b6dd35c7bf12ffa317ca77548531
BLAKE2b-256 checksum
How to use checksums
56135b024b74f07459633da5c5c4fd6e0e2452e5eb45ad0efcf53e11cb8f965c
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.1.0 CPython/3.13.3

Release files / gnome_dns_switcher-1.4.0-py3-none-any.whl

Download URL gnome_dns_switcher-1.4.0-py3-none-any.whl
Size 21.7 kB
Tags Python 3
SHA-256 checksum
How to use checksums
1c6f822e69a63185c14c7eddba61787b4e8aedcf12f6571d93bced7bd192598e
BLAKE2b-256 checksum
How to use checksums
b1b1936a9bcb971e3dd9bfb9238b95d2a9f370db158feb13e330ef5da4a5b2e3
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.1.0 CPython/3.13.3

Release history Release notifications | RSS feed

This release

1.4.0 This release

2 release files

1.3.0

2 release files

1.2.2

2 release files

1.2.1

2 release files

1.2.0

2 release files

1.1.2

2 release files

1.1.1

2 release files

1.1.0

2 release files

1.0.0

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page