https://github.com/cluther/ulauncher-google-cloud-console
Ulauncher extension to open Google Cloud Console to a specific area and project.
https://github.com/cluther/ulauncher-google-cloud-console
gcp google-cloud ulauncher ulauncher-extensions
Last synced: 5 months ago
JSON representation
Ulauncher extension to open Google Cloud Console to a specific area and project.
- Host: GitHub
- URL: https://github.com/cluther/ulauncher-google-cloud-console
- Owner: cluther
- License: mit
- Created: 2025-01-26T02:03:57.000Z (about 1 year ago)
- Default Branch: main
- Last Pushed: 2025-02-14T13:52:56.000Z (about 1 year ago)
- Last Synced: 2025-02-14T14:40:18.541Z (about 1 year ago)
- Topics: gcp, google-cloud, ulauncher, ulauncher-extensions
- Language: Python
- Homepage: https://ext.ulauncher.io/-/github-cluther-ulauncher-google-cloud-console
- Size: 475 KB
- Stars: 0
- Watchers: 1
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# ulauncher-google-cloud-console
This is a [Ulauncher](https://ulauncher.io/) extension to open [Google Cloud Console](https://console.cloud.google.com) to a specific area and project.


## Usage
Usage is as simple as typing the configured keyword (default is `gcloud`)
followed by space or enter. This will present you with the top list of areas.
Choosing any result will take you to it in your default web browser. As you
type additional letters after the keyword, the list of results will be filtered
to those that contain what you've typed.
### Projects
Project support is what differentiates this extension from the others described
below. By entering a comma-separated list of projects in the extension's
preferences, your web browser can be opened to the desired area within your
choice of project.
For example, let's say you have added `xyz-dev,xyz-prod1,xyz-prod2` into the
projects preference. When you type `gcloud prod logs` you will be presented
with the following two options.
- Logs for xyz-prod1
- Logs for xyz-prod2
## Supported Services
The list of supported Google Cloud services and areas within those services is
maintained within this project, and will probably never be complete. It's easy
to add new services and areas by adding to the `AREAS` dictionary in `main.py`,
and I encourage pull requests that do so.
Currently the supported services and areas are the following.
- Artifact Registry – Repositories
- Bigtable – Instances
- Billing
- Compute – Overview
- Compute – VM Instances
- Dataflow – Jobs
- Datastore – Databases
- Filestore – Instances
- Firestore – Databases
- IAM & Admin – IAM
- IAM & Admin – Service Accounts
- Kubernetes Engine – Kubernetes clusters
- Monitoring – Overview
- Monitoring – Dashboards
- Monitoring – Metrics explorer
- Monitoring – Logs explorer
- Monitoring – Alerting
- Monitoring – Incidents
- Network Security
- Network Security - Cloud Armor policies
- Network Services – Load Balancing
- Network Services – DNS Zones
- Network Services - Cloud NAT
- Pub/Sub – Overview
- Pub/Sub – Topics
- Pub/Sub – Subscriptions
- Pub/Sub – Lite Reservations
- Pub/Sub – Lite Topics
- Pub/Sub – Lite Subscriptions
- SQL – Instances
- Storage – Overview
- Storage – Buckets
- Vertex AI - Dashboard
- Vertex AI - Training - Custom jobs
## Similar Projects
As of now (2025-01-25) there are two other extensions that do a similar thing
to this one.
- [Google Cloud Extension](https://ext.ulauncher.io/-/github-dhollinger-ulauncher-gcp)
- [GCP Launcher](https://ext.ulauncher.io/-/github-zeue-ulauncher-gcp)
As far as I can tell, their features are the same. However, the GitHub
repository associated with _GCP Launcher_ is no longer available.
The reason I created yet another plugin for opening Google Cloud Console is
because in my daily work I work with many different Google Cloud services, and
in many different Google Cloud projects. The aforementioned extensions don't
offer a way to open a page for the correct project, and that's always what I
want to do.
## Hacking
Notes for those who might want to contribute to this extension
### Icons
I capture the icons for the areas from the SVG used on
https://console.cloud.google.com. However, those are typically greyscale and
use transparencies and use a background of #1967d2 to achieve the blue color
when active. The problem is that this doesn't end up looking right when used
with any of Ulauncher's dark themes. So I replace the transparency with a
specific color from Google's blue palette.
How to replace greyscale colors with their blue counterparts:
- #4285f4 (dark - replaces #424242)
- #669df6 (medium - replaces #616161)
- #aecbfa (light - replaces #757575)
How to replace base colors and transparency.
- #1967d2 (replaces top-level fill="currentColor")
- #3076d6 (replaces opacity=".9")
- #4785db (replaces opacity=".8")
- #75a4e4 (replaces opacity=".6")
- #a3c2ed (replaces opacity=".4")
- #bad2f2 (replaces opacity=".3")
When replacing the base and transparency style icons that are used for
sections, I find the following `vim` command useful. Yank it into your `v`
register with `"vy`, then execute it in the SVG buffer with `:@v`.
```vimrc
%s/ aria-hidden=\"true\"//ge
\ | %s/fill=\"currentColor\"/fill=\"#1967d2\"/ge
\ | %s/\(fill-\)\=opacity=\".9\d*\"/fill=\"#3076d6\"/ge
\ | %s/\(fill-\)\=opacity=\".8\d*\"/fill=\"#4785db\"/ge
\ | %s/\(fill-\)\=opacity=\".7\d*\"/fill=\"#5e94df\"/ge
\ | %s/\(fill-\)\=opacity=\".6\d*\"/fill=\"#75a4e4\"/ge
\ | %s/\(fill-\)\=opacity=\".5\d*\"/fill=\"#8cb3e8\"/ge
\ | %s/\(fill-\)\=opacity=\".4\d*\"/fill=\"#a3c2ed\"/ge
\ | %s/\(fill-\)\=opacity=\".3\d*\"/fill=\"#bad2f2\"/ge
```
This is the `vim` command for replacing greyscale colors.
```vimrc
%s/ aria-hidden=\"true\"//ge
\ | %s/fill=\"#424242\"/fill=\"#4285f4\"/ge
\ | %s/fill=\"#616161\"/fill=\"#669df6\"/ge
\ | %s/fill=\"#757575\"/fill=\"#aecbfa\"/ge
```
I then generate the PNG that Ulauncher uses using Inkscape as follows.
```sh
inkscape -w 48 --export-type=png name.svg
```