{"id":16366928,"url":"https://github.com/annervisser/gnome-dns-switcher","last_synced_at":"2025-12-14T14:12:37.525Z","repository":{"id":90729311,"uuid":"333215521","full_name":"annervisser/gnome-dns-switcher","owner":"annervisser","description":"Gnome appindicator (toolbar icon) tool to switch between different DNS servers","archived":false,"fork":false,"pushed_at":"2025-05-09T09:01:18.000Z","size":110,"stargazers_count":13,"open_issues_count":3,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-10-27T03:29:28.415Z","etag":null,"topics":["appindicator","dns","gnome","linux","networkmanager","nmcli"],"latest_commit_sha":null,"homepage":"","language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"gpl-3.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/annervisser.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null}},"created_at":"2021-01-26T20:58:13.000Z","updated_at":"2025-05-09T09:01:22.000Z","dependencies_parsed_at":"2024-06-20T21:28:14.944Z","dependency_job_id":"27638ca7-bbd3-4923-8b5f-24f514c1e389","html_url":"https://github.com/annervisser/gnome-dns-switcher","commit_stats":null,"previous_names":["annervisser/gnome-appindicator-dns-switcher"],"tags_count":5,"template":false,"template_full_name":null,"purl":"pkg:github/annervisser/gnome-dns-switcher","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/annervisser%2Fgnome-dns-switcher","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/annervisser%2Fgnome-dns-switcher/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/annervisser%2Fgnome-dns-switcher/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/annervisser%2Fgnome-dns-switcher/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/annervisser","download_url":"https://codeload.github.com/annervisser/gnome-dns-switcher/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/annervisser%2Fgnome-dns-switcher/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":27729587,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","status":"online","status_checked_at":"2025-12-14T02:00:11.348Z","response_time":56,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["appindicator","dns","gnome","linux","networkmanager","nmcli"],"created_at":"2024-10-11T02:48:00.572Z","updated_at":"2025-12-14T14:12:37.468Z","avatar_url":"https://github.com/annervisser.png","language":"Python","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Gnome appindicator dns switcher\n![](https://img.shields.io/github/v/tag/annervisser/gnome-dns-switcher?style=for-the-badge\u0026logo=github\u0026label=GitHub\u0026link=https%3A%2F%2Fgithub.com%2Fannervisser%2Fgnome-dns-switcher)\n![](https://img.shields.io/pypi/v/gnome-dns-switcher?style=for-the-badge\u0026logo=python\u0026logoColor=white\u0026link=https%3A%2F%2Fpypi.org%2Fproject%2Fgnome-dns-switcher%2F)\n- GitHub: https://github.com/annervisser/gnome-dns-switcher\n- PyPi:   https://pypi.org/project/gnome-dns-switcher/\n---\n\nGnome appindicator (toolbar icon) tool to quickly switch between different DNS servers\n- Easily available in your toolbox\n- Config file to specify DNS servers\nSupports multiple connections and switching them separately\n- Utility button to restart NetworkManager\n\n![gds](https://github.com/annervisser/gnome-dns-switcher/assets/5613416/56e66264-5f35-4385-9a47-b8827906e631)\n\n\n\n\u003cdetails\u003e\n\u003csummary\u003e💻 Screenshots\u003c/summary\u003e\n\n![](./screenshots/menu.png)\n\n\n#### Easily available in your toolbar\n![](./screenshots/appindicator.png)\n\n#### Shows you what it's done, no surprises\n![](./screenshots/notification.png)\n\n#### Supports multiple connections and switching them separately\n![](./screenshots/menu_multiple_connections.png)\n\n\u003c/details\u003e\n\n## Setup\nInstall dependencies\n```shell\n# Install pipx:\nsudo apt install pipx\n\n# Add pipx path to your .bashrc\npipx ensurepath\n\n# Install dependencies to run this application\nsudo apt install python3-dev libcairo2-dev libgirepository1.0-dev python3-gi python3-gi-cairo gir1.2-gtk-3.0 gir1.2-appindicator3-0.1\n```\n\nInstall gnome-dns-switcher\n```shell\npipx install gnome-dns-switcher\n\n# Generate a default configuration\ngnome-dns-switcher generate-config\n\n# Modify the config to your needs. See config documentation below\nedit ~/.config/gnome-dns-switcher.yml\n```\n\n## Usage\n### Start the app in the background\nSimply add ` \u0026` after your command\n```shell\ngnome-dns-switcher \u0026\n```\n\n### Specify a different configuration file (default is `~/.config/gnome-dns-switcher.yml`)\n```shell\ngnome-dns-switcher --config /path/to/config.yml\n```\n\n### Add to startup applications\n```shell\n# Sleep 10 seconds before starting to prevent starting up \n# before network connections have been made\nbash -c 'sleep 10 \u0026\u0026 gnome-dns-switcher --config ~/.config/gnome-dns-switcher.yml'\n```\n\n## Config\nThe config file allows you to specify which DNS servers to show and what devices are visible.\nBy default, gnome-dns-switcher looks for a config file at `~/.config/gnome-dns-switcher.yml`\n\nTo generate and example configuration, you can run `gnome-dns-switcher generate-config`\n### The generated configuration will look like this:\n```yaml\nservers: # DNS Server options to show\n  # DHCP is always shown as the first option\n  Quad9: 9.9.9.9\n  CloudFlare: [1.1.1.1, 1.0.0.1]\n  Google DNS:\n    - 8.8.8.8\n    - 8.8.4.4\ndevices: [] # Specify device names here if you want to hide certain devices (ip link show)\n```\n\n#### `servers` A list of servers that can be switched between\n- The name is only used for displaying\n- You can define one or more ips, as a yaml array or as a comma-seperated string\n\n#### `devices` Which devices to show (optional)\n- optional, will display all non-bridge connections if not present or empty\n- one or more devices to show in the switcher\n    - List all your devices by running `ip link show` in a terminal\n\n## Development\n\n### Setup\nSet up virtualenv:\n```shell\nvirtualenv venv\nsource venv/bin/activate\n```\n\nInstall dependencies:\n```shell\npython setup.py install\npip install vext vext.gi\n```\n\n### Running\n```shell\npython -m gnome_dns_switcher\n```\n\n### Useful links\n\n- Alternative: https://extensions.gnome.org/extension/7861/sanad/\n- Api docs: https://gjs-docs.gnome.org/\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fannervisser%2Fgnome-dns-switcher","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fannervisser%2Fgnome-dns-switcher","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fannervisser%2Fgnome-dns-switcher/lists"}