{"id":41820956,"url":"https://github.com/heisantosh/gnomex","last_synced_at":"2026-01-25T07:44:08.551Z","repository":{"id":64306469,"uuid":"247389328","full_name":"heisantosh/gnomex","owner":"heisantosh","description":"A CLI tool to search and install GNOME Shell extensions from the GNOME extensions website https://extensions.gnome.org/. ","archived":false,"fork":false,"pushed_at":"2020-03-17T02:38:57.000Z","size":718,"stargazers_count":5,"open_issues_count":0,"forks_count":1,"subscribers_count":3,"default_branch":"master","last_synced_at":"2024-06-20T07:58:01.230Z","etag":null,"topics":["gnome-shell","gnome-shell-extension","go","golang","linux"],"latest_commit_sha":null,"homepage":"","language":"Go","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/heisantosh.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}},"created_at":"2020-03-15T02:41:21.000Z","updated_at":"2024-02-10T12:52:53.000Z","dependencies_parsed_at":"2022-12-06T08:22:32.389Z","dependency_job_id":null,"html_url":"https://github.com/heisantosh/gnomex","commit_stats":null,"previous_names":[],"tags_count":2,"template":false,"template_full_name":null,"purl":"pkg:github/heisantosh/gnomex","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/heisantosh%2Fgnomex","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/heisantosh%2Fgnomex/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/heisantosh%2Fgnomex/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/heisantosh%2Fgnomex/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/heisantosh","download_url":"https://codeload.github.com/heisantosh/gnomex/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/heisantosh%2Fgnomex/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":28748076,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-01-25T05:12:38.112Z","status":"ssl_error","status_checked_at":"2026-01-25T05:04:50.338Z","response_time":113,"last_error":"SSL_connect returned=1 errno=0 peeraddr=140.82.121.6:443 state=error: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"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":["gnome-shell","gnome-shell-extension","go","golang","linux"],"created_at":"2026-01-25T07:44:08.058Z","updated_at":"2026-01-25T07:44:08.545Z","avatar_url":"https://github.com/heisantosh.png","language":"Go","funding_links":[],"categories":[],"sub_categories":[],"readme":"# gnomex\n\u003ch1\u003e🐮\u003c/h1\u003e\nA CLI tool to search and install GNOME Shell extensions from the GNOME extensions website https://extensions.gnome.org/.\n\n## Context\nThe usual way to install GNOME Shell extensions is to visit https://extensions.gnome.org/. And install the browser extension and the host connector and install the extension. This tool aims to ease the installation of extensions through a CLI.\n\n### Finding available extensions\nA HTTP GET of the URL https://extensions.gnome.org/extension-query/?page=1\u0026shell_version=3.34 returns a list of extensions that support GNOME Shell version 3.34. The response is of the format:\n\n```json\n{\n    \"extensions\": [\n        {\n            \"uuid\": \"user-theme@gnome-shell-extensions.gcampax.github.com\",\n            \"name\": \"User Themes\",\n            \"creator\": \"fmuellner\",\n            \"creator_url\": \"/accounts/profile/fmuellner\",\n            \"pk\": 19,\n            \"description\": \"Load shell themes from user directory.\",\n            \"link\": \"/extension/19/user-themes/\",\n            \"icon\": \"/static/images/plugin.png\",\n            \"screenshot\": null,\n            \"shell_version_map\": {\n                \"3.26\": {\n                    \"pk\": 7480,\n                    \"version\": 32\n                },\n                \"3.24\": {\n                    \"pk\": 7481,\n                    \"version\": 33\n                },\n                \"3.28\": {\n                    \"pk\": 8103,\n                    \"version\": 34\n                },\n                \"3.30\": {\n                    \"pk\": 8388,\n                    \"version\": 35\n                },\n                \"3.32\": {\n                    \"pk\": 10231,\n                    \"version\": 37\n                },\n                \"3.34\": {\n                    \"pk\": 13345,\n                    \"version\": 39\n                },\n                \"3.36\": {\n                    \"pk\": 14396,\n                    \"version\": 40\n                }\n            }\n        },\n        ...\n    ],\n    \"total\": 10,\n    \"numpages\": 31\n}\n```\n\nTo find the extensions by search keyword `user themes` the HTTP GET request is -\nhttps://extensions.gnome.org/extension-query/?page=1\u0026shell_version=3.34\u0026search=user%20themes.\n\n### Finding GNOME Shell version\nThe current version of GNOME Shell can be found using the command:\n\n```bash\n$ gnome-shell --version\nGNOME Shell 3.34.1\n```\n\n### Version of an extension\nAn extension can have different versions. Multiple versions of the extension could be use in the same GNOME Shell version.\n\nFor example, for the extension `User Themes` by `fmuellner` for GNOME Shell version 3.34 there are 2 versions of the extension - versions 38 and 39.\n\n### Downloading an extension\nBelow is the HTTP GET URL to downlod the `User Themes` extension -\nhttps://extensions.gnome.org/download-extension/user-theme%40gnome-shell-extensions.gcampax.github.com.shell-extension.zip?version_tag=13345\n\nIt is a specific format - https://extensions.gnome.org/download-extension/{`uuid`}.shell-extension.zip?version_tag=`pk`\n\n`version_tag` is same as the field `pk` in the `shell_version_map` field.\n\nAnother way to download to GET the URL https://extensions.gnome.org/extension-data/user-themegnome-shell-extensions.gcampax.github.com.v39.shell-extension.zip. \n\nThis URL also is a specific format - https://extensions.gnome.org/extension-data/{`uuid`}.v{`version`}.shell-extension.zip\n\nHere `v39` refers the version of the extension. It's the same as the `version` field in the `shell_version_map` field.\n\n### Installing a downloaded extension\n\n```bash\n$ cd ~/Downloads\n$ ls\ndash-to-dockmicxgx.gmail.com.v67.shell-extension.zip\n$ gnome-extensions install dash-to-dockmicxgx.gmail.com.v67.shell-extension.zip\ndash-to-dock@micxgx.gmail.com\n$ # Enable the extension\n$ gnome-extensions enable dash-to-dock@micxgx.gmail.com\n```\n\nThen restart GNOME Shell by pressing `Alt + F2` and enter `r`.\n\nNow the extension will be active.\n\n### Managing extension settings\n`GNOME Tweaks` application can be used to manage the installed extensions and the settings of the extensions.\n\n### Link of extension on extension website\n`https://extensions.gnome.org/extension/1082/cpufreq/`\n\nThe format is `https://extensions.gnome.org/{link}` where link is from the extension object in the search result.\n\n## Plan\n\n### Searching for extensions\nFind the running gnome shell version. Get the results of the query for that version and the search query from the gnome extension website. Store the results in a map of UUID to the extension. Print the list of extensions in the search result.\n\n```bash\n$ gnomex search \"dock\"\nname (uuid) by creator\nname (uuid) by creator\n```\n\n### Installing the extension\nFind the extension details from the gnome extension website by querying with the UUID. Get the extension details from the map using UUID as key.\n\n```bash\n$ gnomex install uuid\ninstalling extension: done\nrestarting GNOME Shell: done\nextension is ready to use\n```\n\n### Uninstalling the extension\n```bash\n$ gnomex uninstall uuid\nuninstalling extension: done\nrestarting GNOME Shell: done\nextension is removed\n```\n\n### List installed extensions\n```bash\n$ gnomex list\nuuid - description\nuuid - description\nuuid - description\n```\n\n### Upgrade installed extensions\n\nUpgrade all extensions\n```bash\n$ gnomex upgrade\n```\n\nUpgrade some extensions\n```bash\n$ gnomex uuid1 uuid2 uuid3\n```\n\n### Show detailed information of an extension\n```bash\n$ gnomex about uuid\nname (uuid) by creator\nlink\n\ndescription\n```\n\n## Screenshots\n\n\u003cimg src=\"https://raw.githubusercontent.com/heisantosh/gnomex/master/screenshots/search-desktop.png\" alt=\"Search 'desktop'\"\u003e\n\n\u003cimg src=\"https://raw.githubusercontent.com/heisantosh/gnomex/master/screenshots/about.png\" alt=\"About\"\u003e\n\n\u003cimg src=\"https://raw.githubusercontent.com/heisantosh/gnomex/master/screenshots/install.png\" alt=\"Install\"\u003e\n\n\u003cimg src=\"https://raw.githubusercontent.com/heisantosh/gnomex/master/screenshots/list.png\" alt=\"List\"\u003e\n\n\n## Installation\n\n### Install from source\nThis installation method requires `Go` (version \u003e= 1.14) and `git` to be installed on the system.\n\n```bash\n$ git clone https://github.com/heisantosh/gnomex.git\n$ cd gnomex\n$ go install\n```\n\n### Download prebuilt binaries\n\nOr download the prebuilt binaries and place in your `$PATH`.\n\nhttps://github.com/heisantosh/gnomex/releases\n\n### Usage\n```bash\n$ gnomex help\ngnomex version 0.1.1\n\nSearch, install and uinstall GNOME Shell extensions from the website \nhttps://extensions.gnome.org.\n\nCOMMANDS\n\tsearch [query]          Search extensions.\n\n\tlist                    List all installed extensions.\n\t\n\tinstall \u003cuuid\u003e          Install extension with the uuid. Replace if already\n\t                        installed.\n\n\tuninstall \u003cuuid\u003e        Uninstall extension with the uuid.\n\n\tenable \u003cuuid\u003e           Enable extension with the uuid.\n\n\tdisable \u003cuuid\u003e          Disable extension with the uuid.\n\n\tversion                 Print gnomex version.\n\n\tupgrade [uuid]...       Upgrade extension(s). It may not be able to upgrade\n\t                        some extensions installed by the system.\n\t\t\t\t\t\t\t\n\tabout \u003cuuid\u003e            Print detailed information of the extension.\n\n\thelp                    Print this help information.\n\nEXAMPLES\n\tSearch extension with query \"user themes\"\n\t$ gnomex search \"user themes\"\n\n\tSearch all extensions\n\t$ gnomex search\n\n\tInstall dash-to-dock extension\n\t$ gnomex install dash-to-dock@micxgx.gmail.com\n\n\tUinstall dash-to-dock extension\n\t$ gnomex uninstall dash-to-dock@micxgx.gmail.com\n\n\tList installed extensions\n\t$ gnomex list\n\n\tUpgrade all extensions\n\t$ gnomex upgrade\n\n\tUpgrade some extensions\n\t$ gnomex dash-to-dock@micxgx.gmail.com Resource_Monitor@Ory0n\n```\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fheisantosh%2Fgnomex","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fheisantosh%2Fgnomex","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fheisantosh%2Fgnomex/lists"}