OS Apps: GCP Custom UI, Ripasso and PixelTools

A fun mixed bag of goodness

Posted by Isaac on Tuesday, October 27, 2026

Today we’ll look at a few interesting apps that have been on my list: GCP Custom UI, Ripasso password manager and PixelTools. The first two are open-source but the last is a free to use SaaS suite based on Open-Source frameworks so I’m including it.

Let’s start with the powerful GCP Custom UI written by a fellow GDE Aliane Abdelouahab

GCP Custom UI

Aliane in the GDE community has been busy working on this “gcp-custom-ui” app for some time. They would get excited and post updates and even take feature requests. I decided it had grown big enough it was worth a deep dive just on its own.

I’ll clone down the repo

isaac@isaac-G707:~/Workspaces$ git clone https://github.com/abdelouahabb/gcp-custom-ui.git
Cloning into 'gcp-custom-ui'...
remote: Enumerating objects: 2315, done.
remote: Counting objects: 100% (772/772), done.
remote: Compressing objects: 100% (260/260), done.
remote: Total 2315 (delta 532), reused 682 (delta 448), pack-reused 1543 (from 1)
Receiving objects: 100% (2315/2315), 3.74 MiB | 11.56 MiB/s, done.
Resolving deltas: 100% (1630/1630), done.
isaac@isaac-G707:~/Workspaces$ cd gcp-custom-ui/
isaac@isaac-G707:~/Workspaces/gcp-custom-ui$

I then did the gcloud auth login steps

$ gcloud auth login
$ gcloud auth application-default login
$ gcloud components install beta

Though the last one doesn’t really work in my setup so I just verified i had the latest installed

$ sudo apt-get install google-cloud-cli
[sudo: authenticate] Password:
Reading package lists... Done
Building dependency tree... Done
Reading state information... Done
Solving dependencies... Done
The following package was automatically installed and is no longer required:
  grub-pc-bin
Use 'sudo apt autoremove' to remove it.
The following packages will be upgraded:
  google-cloud-cli
1 upgraded, 0 newly installed, 0 to remove and 34 not upgraded.
Need to get 0 B/93.5 MB of archives.
After this operation, 292 kB disk space will be freed.
(Reading database… 320491 files and directories currently installed.)
Preparing to unpack …/google-cloud-cli_590.0.1-0_amd64.deb…
Unpacking google-cloud-cli (590.0.1-0) over (590.0.0-0)…
Setting up google-cloud-cli (590.0.1-0)…
Processing triggers for libc-bin (2.43-2ubuntu2.4)…

I need to set the .env. The defaults are fine

isaac@isaac-G707:~/Workspaces/gcp-custom-ui$ cp .env.example .env
isaac@isaac-G707:~/Workspaces/gcp-custom-ui$ cat .env
# ============================================================================
# CloudPulse 2026 — Runtime Environment Configuration (.env.example)
# Copy to .env if you want to override default ports or hosts:
#   cp .env.example .env
#
# Never commit real API keys, OAuth tokens, or GCP Project IDs to git!
# ============================================================================

# Express Backend API & WebSocket Bridge (server/index.js)
BACKEND_HOST=127.0.0.1
BACKEND_PORT=4000
PORT=4000

# Vite Frontend Dev Server (vite.config.js)
VITE_HOST=0.0.0.0
VITE_PORT=5173

# Optional: Explicit proxy target override for /api/* (defaults to http://${BACKEND_HOST}:${BACKEND_PORT})
# VITE_API_PROXY_TARGET=http://127.0.0.1:4000

# Automatically start & watch server/index.js when running `npm run dev` (true | false)
VITE_AUTO_START_BACKEND=true

I’ll install any dependencies for NodeJS

isaac@isaac-G707:~/Workspaces/gcp-custom-ui$ nvm use lts/jod
Now using node v22.23.2 (npm v10.9.8)
isaac@isaac-G707:~/Workspaces/gcp-custom-ui$ npm install

added 238 packages, and audited 239 packages in 8s

44 packages are looking for funding
  run `npm fund` for details

5 vulnerabilities (4 moderate, 1 high)

To address issues that do not require attention, run:
  npm audit fix

To address all issues (including breaking changes), run:
  npm audit fix --force

Run `npm audit` for details.

I can now run npm run dev to fire it up

/img/2026-10-gcpcustomui-01.png

I can now see a lot of stuff on the heads up. As this is my demo account, it is not surprising to see very little running and no charges yet

/img/2026-10-gcpcustomui-02.png

One of my favourite features might be this API and Services page that has kill switches on all the things. For demos were we might live show some services (and API keys), this is a nice “giant red button” to stop services that could incur lots of charges if left on

/img/2026-10-gcpcustomui-03.png

There are some “tribunals” to launch a series of evaluation agents. I don’t have a positive connotation of “tribunal” - perhaps they meant “council”, but regardless, I launched the Cloud Architect one

/img/2026-10-gcpcustomui-04.png

and one of it’s suggestions was to remove RDP access in this demo account (not a bad firewall rule, but for no computes, not one I’ll execute)

/img/2026-10-gcpcustomui-05.png

I next ran the SRE inspector on that page. It went and created some cloudquotas and operational logs (I believe, but am not 100% certain)

/img/2026-10-gcpcustomui-06.png

I tried the “Inspect in Shell”

/img/2026-10-gcpcustomui-07.png

But saw it complain about the project ID in the output. I manually corrected and ran again and saw no errors (no logs, but no errors)

/img/2026-10-gcpcustomui-08.png

I found some strange behaviours on graphs

Provision resources

One nice feature is a UI around some of the common activities one might do in a GCP project like creating resources.

If I clean “+ Provision Resource” in the upper right, I am presented with a nice “Provision Real GCP Resource” (what would the alternative be, magical?)

/img/2026-10-gcpcustomui-10.png

I like the cost calculator for VMs

/img/2026-10-gcpcustomui-11.png

As you can see, it suggests the ‘Always Free VM’ of e2-micro that will cost $3.96/month. That is because Public IPs are not included with the ‘free’.

I particularly like the gcloud command being shown which is useful for documentation or making one’s own subtle tweaks

/img/2026-10-gcpcustomui-12.png

In this case, we see the command would be: “gcloud compute instances create careful-compass-241122-vm-7839 –project=careful-compass-241122 –zone=us-east1-b –machine-type=e2-micro –service-account=vertex-express@careful-compass-241122.iam.gserviceaccount.com –boot-disk-size=20GB –boot-disk-type=pd-balanced –provisioning-model=SPOT –instance-termination-action=STOP –network=default –tags=http-server,https-server”

Resource Groups

One of the features they added for me was Azure equivalent Resource Groups. When the feature was added, I was confused how it would come into being.

/img/2026-10-gcpcustomui-13.png

Let’s try creating an RG

/img/2026-10-gcpcustomui-14.png

this suggests it should not incur charges, but prompts me to confirm the action

/img/2026-10-gcpcustomui-15.png

I executed and saw a green “resource group created” dialog show up but it didn’t say long enough for me to screen capture it.

At the bottom of the page we now see my resource group “rg-myfirstrg” showing up

/img/2026-10-gcpcustomui-16.png

However, as I look at the implementation of RGs, its really more of an IAM consideration across a project rather than a “grouping of resources”

/img/2026-10-gcpcustomui-17.png

Ripasso

I saw this Linux gamer post recently that pointed to this Linux links post about Ripasso password manager.

Like many modern TUIs, this one is also written in Rust.

Let’s start by cloning it down

isaac@isaac-G707:~/Workspaces$ git clone https://github.com/cortex/ripasso.git
Cloning into 'ripasso'...
remote: Enumerating objects: 5401, done.
remote: Counting objects: 100% (1005/1005), done.
remote: Compressing objects: 100% (166/166), done.
remote: Total 5401 (delta 925), reused 855 (delta 839), pack-reused 4396 (from 3)
Receiving objects: 100% (5401/5401), 3.78 MiB | 12.41 MiB/s, done.
Resolving deltas: 100% (3372/3372), done.
isaac@isaac-G707:~/Workspaces$ cd ripasso/

I could then build it with cargo

isaac@isaac-G707:~/Workspaces/ripasso$ cargo build --all
    Updating crates.io index
  Downloaded base32 v0.5.1
  Downloaded atomic-waker v1.1.2
  Downloaded arboard v3.6.1
  Downloaded ascii-canvas v4.0.0
  Downloaded annotate-snippets v0.11.5
  Downloaded argon2 v0.5.3
  Downloaded ahash v0.8.12
  Downloaded serde_spanned v1.1.1
  Downloaded cfg-if v1.0.4
  Downloaded signal-hook-registry v1.4.8
  Downloaded same-file v1.0.6
  Downloaded dyn-clone v1.0.20
  Downloaded futures-task v0.3.33
  Downloaded constant_time_eq v0.3.1
  Downloaded field-offset v0.3.6
  Downloaded gethostname v1.1.0
  Downloaded futures-io v0.3.33
  Downloaded build-rs v0.1.2
  Downloaded futures-macro v0.3.33
  Downloaded cstr-argument v0.1.2
  Downloaded enum-map-derive v0.17.0
  Downloaded futures-sink v0.3.33
  Downloaded signal-hook-mio v0.2.5
  Downloaded cexpr v0.6.0
  Downloaded enumset v1.1.14
  Downloaded cmake v0.1.58
  Downloaded urlencoding v2.1.3
  Downloaded wayland-sys v0.31.11
  Downloaded zerofrom-derive v0.1.7
  Downloaded sha1 v0.10.7
  Downloaded futures-core v0.3.33
  Downloaded darling_macro v0.21.3
  Downloaded fs2 v0.4.3
  Downloaded crypto-common v0.1.7
  Downloaded encoding-index-singlebyte v1.20141219.5
  Downloaded gdk-pixbuf-sys v0.22.0
  Downloaded bit-set v0.8.0
  Downloaded simd-adler32 v0.3.10
  Downloaded roff v0.1.0
  Downloaded rustversion v1.0.23
  Downloaded downcast-rs v1.2.1
  Downloaded byteorder-lite v0.1.0
  Downloaded terminal_size v0.4.4
  Downloaded capnp-futures v0.25.2
  Downloaded encoding_index_tests v0.1.4
  Downloaded embedded-io v0.7.1
  Downloaded cursive-macros v0.1.0
  Downloaded ena v0.14.4
  Downloaded enumset_derive v0.15.0
  Downloaded siphasher v1.0.3
  Downloaded http-body v1.1.0
  Downloaded displaydoc v0.2.6
  Downloaded foldhash v0.1.5
  Downloaded tinyvec_macros v0.1.1
  Downloaded lru-slab v0.1.2
  Downloaded mime v0.3.17
  Downloaded yoke-derive v0.8.2
  Downloaded conv v0.3.3
  Downloaded bit-set v0.9.1
  Downloaded bit-vec v0.9.1
  Downloaded find-msvc-tools v0.1.9
  Downloaded custom_derive v0.1.7
  Downloaded rand_core v0.10.1
  Downloaded jiff-static v0.2.35
  Downloaded enum-map v2.7.3
  Downloaded byteorder v1.5.0
  Downloaded fax v0.2.7
  Downloaded gpgme-sys v0.11.0
  Downloaded cairo-sys-rs v0.22.0
  Downloaded futures-executor v0.3.33
  Downloaded version-compare v0.2.1
  Downloaded graphene-sys v0.22.8
  Downloaded fixedbitset v0.5.7
  Downloaded base64ct v1.8.3
  Downloaded gdk-pixbuf v0.22.0
  Downloaded unic-langid v0.9.6
  Downloaded bit-vec v0.8.0
  Downloaded rustls-native-certs v0.8.4
  Downloaded fs_extra v1.3.0
  Downloaded cfg-expr v0.15.8
  Downloaded chacha20 v0.10.1
  Downloaded gettext v0.4.0
  Downloaded zeroize_derive v1.5.0
  Downloaded cfg-expr v0.20.8
  Downloaded capnpc v0.25.3
  Downloaded libloading v0.8.9
  Downloaded num-rational v0.4.2
  Downloaded glib-build-tools v0.22.8
  Downloaded openssl-probe v0.2.1
  Downloaded libgpg-error-sys v0.6.2
  Downloaded ctor v1.0.11
  Downloaded shlex v2.0.1
  Downloaded fdeflate v0.3.7
  Downloaded getrandom v0.2.17
  Downloaded thiserror-impl v2.0.19
  Downloaded zerovec-derive v0.11.3
  Downloaded blake2 v0.10.6
  Downloaded crc32fast v1.5.0
  Downloaded either v1.17.0
  Downloaded futures-channel v0.3.33
  Downloaded cursive v0.21.1
  Downloaded bytemuck v1.25.2
  Downloaded crossbeam-utils v0.8.22
  Downloaded proc-macro-crate v3.5.0
  Downloaded quick-error v2.0.1
  Downloaded config v0.15.25
  Downloaded bitflags v2.13.1
  Downloaded os_pipe v1.2.3
  Downloaded pathdiff v0.2.3
  Downloaded password-hash v0.5.0
  Downloaded rustc-hash v2.1.3
  Downloaded memsec v0.7.0
  Downloaded num-iter v0.1.46
  Downloaded keccak v0.1.6
  Downloaded rand_pcg v0.10.2
  Downloaded system-deps v7.0.8
  Downloaded tree_magic_mini v3.2.2
  Downloaded litemap v0.8.2
  Downloaded target-lexicon v0.13.5
  Downloaded parking_lot_core v0.9.12
  Downloaded system-deps v6.2.2
  Downloaded quinn-udp v0.5.15
  Downloaded lalrpop-util v0.22.2
  Downloaded num v0.4.3
  Downloaded potential_utf v0.1.5
  Downloaded string_cache v0.8.9
  Downloaded thiserror v2.0.19
  Downloaded darling v0.21.3
  Downloaded zune-core v0.5.1
  Downloaded generic-array v1.4.4
  Downloaded buffered-reader v1.4.1
  Downloaded futures v0.3.33
  Downloaded toml_datetime v1.1.1+spec-1.1.0
  Downloaded walkdir v2.5.0
  Downloaded zeroize v1.9.0
  Downloaded gobject-sys v0.22.6
  Downloaded gsk4-sys v0.11.4
  Downloaded slab v0.4.12
  Downloaded new_debug_unreachable v1.0.6
  Downloaded wayland-protocols-wlr v0.3.12
  Downloaded graphene-rs v0.22.8
  Downloaded clang-sys v1.8.1
  Downloaded precomputed-hash v0.1.1
  Downloaded ipnet v2.12.0
  Downloaded num-complex v0.4.6
  Downloaded lalrpop-util v0.23.1
  Downloaded linktime-proc-macro v0.2.0
  Downloaded writeable v0.6.3
  Downloaded libadwaita-sys v0.9.2
  Downloaded target-lexicon v0.12.16
  Downloaded whoami v2.1.2
  Downloaded tinystr v0.8.3
  Downloaded ossl v1.5.2
  Downloaded gtk4-macros v0.11.4
  Downloaded toml_writer v1.1.2+spec-1.1.0
  Downloaded iana-time-zone v0.1.65
  Downloaded string_cache v0.9.0
  Downloaded man v0.3.0
  Downloaded smallvec v1.15.2
  Downloaded darling_core v0.21.3
  Downloaded gdk4-sys v0.11.4
  Downloaded cairo-rs v0.22.0
  Downloaded ryu v1.0.23
  Downloaded jobserver v0.1.35
  Downloaded link-section v0.19.1
  Downloaded log v0.4.33
  Downloaded lock_api v0.4.14
  Downloaded rustls-pki-types v1.15.1
  Downloaded pkg-config v0.3.33
  Downloaded pango-sys v0.22.0
  Downloaded hyper-rustls v0.27.9
  Downloaded phf_shared v0.13.1
  Downloaded icu_normalizer v2.2.0
  Downloaded memoffset v0.7.1
  Downloaded toml_parser v1.1.2+spec-1.1.0
  Downloaded icu_properties v2.2.0
  Downloaded tokio-rustls v0.26.4
  Downloaded wl-clipboard-rs v0.9.3
  Downloaded totp-rs v5.7.2
  Downloaded weezl v0.1.12
  Downloaded gsk4 v0.11.4
  Downloaded compact_str v0.9.1
  Downloaded cc v1.4.0
  Downloaded bytes v1.12.1
  Downloaded encoding v0.2.33
  Downloaded crossbeam-channel v0.5.16
  Downloaded xxhash-rust v0.8.18
  Downloaded encoding-index-japanese v1.20141219.5
  Downloaded stfu8 v0.2.7
  Downloaded flate2 v1.1.9
  Downloaded gpg-error v0.6.2
  Downloaded encoding-index-korean v1.20141219.5
  Downloaded prettyplease v0.2.37
  Downloaded rustls-platform-verifier v0.7.0
  Downloaded capnp-rpc v0.25.1
  Downloaded getrandom v0.3.4
  Downloaded unicode-ident v1.0.24
  Downloaded pango v0.22.8
  Downloaded rustls-webpki v0.103.13
  Downloaded openssl-sys v0.9.117
  Downloaded locale_config v0.3.0
  Downloaded term v1.2.1
  Downloaded http-body-util v0.1.4
  Downloaded gdk4 v0.11.4
  Downloaded aho-corasick v1.1.4
  Downloaded wayland-scanner v0.31.11
  Downloaded icu_normalizer_data v2.2.0
  Downloaded icu_provider v2.2.0
  Downloaded icu_collections v2.2.0
  Downloaded encoding-index-simpchinese v1.20141219.5
  Downloaded encoding-index-tradchinese v1.20141219.5
  Downloaded hyper-util v0.1.20
  Downloaded socket2 v0.6.5
  Downloaded quinn v0.11.11
  Downloaded mio v1.2.2
  Downloaded rand v0.10.2
  Downloaded crossterm v0.28.1
  Downloaded tinyvec v1.12.0
  Downloaded pin-project-lite v0.2.17
  Downloaded itertools v0.13.0
  Downloaded nom v8.0.0
  Downloaded png v0.18.1
  Downloaded parking_lot v0.12.5
  Downloaded toml_edit v0.25.13+spec-1.1.0
  Downloaded wayland-client v0.31.15
  Downloaded capnp v0.25.6
  Downloaded h2 v0.4.15
  Downloaded toml v1.1.3+spec-1.1.0
  Downloaded aws-lc-rs v1.17.3
  Downloaded itertools v0.14.0
  Downloaded futures-util v0.3.33
  Downloaded jiff-core v0.1.0
  Downloaded reqwest v0.13.4
  Downloaded hashbrown v0.15.5
  Downloaded glib-macros v0.22.6
  Downloaded gio-sys v0.22.8
  Downloaded libadwaita v0.9.2
  Downloaded moxcms v0.8.1
  Downloaded icu_properties_data v2.2.0
  Downloaded sequoia-gpg-agent v0.6.2
  Downloaded wayland-backend v0.3.16
  Downloaded gpgme v0.11.0
  Downloaded zerotrie v0.2.4
  Downloaded glib-sys v0.22.8
  Downloaded cursive_core v0.4.7
  Downloaded quinn-proto v0.11.16
  Downloaded zune-jpeg v0.5.15
  Downloaded chrono v0.4.45
  Downloaded bindgen v0.72.1
  Downloaded xi-unicode v0.3.0
  Downloaded lalrpop v0.22.2
  Downloaded tiff v0.11.3
  Downloaded icu_locale_core v2.2.0
  Downloaded half v2.7.1
  Downloaded unic-langid-impl v0.9.6
  Downloaded rustls v0.23.42
  Downloaded tower v0.5.3
  Downloaded typenum v1.20.1
  Downloaded zerocopy-derive v0.8.55
  Downloaded http v1.4.2
  Downloaded gtk4-sys v0.11.4
  Downloaded zerovec v0.11.6
  Downloaded indexmap v2.14.0
  Downloaded rustix v1.1.4
  Downloaded tokio-util v0.7.19
  Downloaded wayland-protocols v0.32.13
  Downloaded tower-http v0.6.11
  Downloaded regex-automata v0.4.16
  Downloaded hyper v1.11.0
  Downloaded jiff v0.2.35
  Downloaded petgraph v0.7.1
  Downloaded petgraph v0.8.3
  Downloaded libc v0.2.189
  Downloaded pxfm v0.1.30
  Downloaded x11rb v0.13.2
  Downloaded gio v0.22.8
  Downloaded vcpkg v0.2.15
  Downloaded encoding_rs v0.8.35
  Downloaded git2 v0.21.0
  Downloaded unicode-width v0.1.14
  Downloaded lalrpop v0.23.1
  Downloaded zerocopy v0.8.55
  Downloaded libgit2-sys v0.18.7+1.9.6
  Downloaded glib v0.22.8
  Downloaded image v0.25.10
  Downloaded syn v3.0.3
  Downloaded x11rb-protocol v0.13.2
  Downloaded gtk4 v0.11.4
  Downloaded sha1collisiondetection v0.3.4
  Downloaded sha3 v0.10.9
  Downloaded aws-lc-sys v0.43.0
  Downloaded tokio v1.53.1
  Downloaded libz-sys v1.1.29
  Downloaded sequoia-ipc v0.36.1
  Downloaded sequoia-openpgp v2.4.1
  Downloaded 295 crates (46.1MiB) in 2.93s (largest was `aws-lc-sys` at 9.2MiB)
   Compiling libc v0.2.189
   Compiling pkg-config v0.3.33
   Compiling proc-macro2 v1.0.107
   Compiling unicode-ident v1.0.24
   Compiling quote v1.0.47
   Compiling smallvec v1.15.2
   Compiling winnow v1.0.4
   Compiling heck v0.5.0
   Compiling version-compare v0.2.1
   Compiling memchr v2.8.3
   Compiling cfg-if v1.0.4
   Compiling toml_datetime v1.1.1+spec-1.1.0
   Compiling target-lexicon v0.13.5
   Compiling serde_spanned v1.1.1
   Compiling find-msvc-tools v0.1.9
   Compiling hashbrown v0.17.1
   Compiling log v0.4.33
   Compiling equivalent v1.0.2
   Compiling shlex v2.0.1
   Compiling version_check v0.9.5
   Compiling bitflags v2.13.1
   Compiling pin-project-lite v0.2.17
   Compiling futures-core v0.3.33
   Compiling futures-sink v0.3.33
   Compiling autocfg v1.5.1
   Compiling futures-io v0.3.33
   Compiling slab v0.4.12
   Compiling futures-channel v0.3.33
   Compiling futures-task v0.3.33
   Compiling parking_lot_core v0.9.12
   Compiling stable_deref_trait v1.2.1
   Compiling generic-array v0.14.7
   Compiling scopeguard v1.2.0
   Compiling regex-syntax v0.8.11
   Compiling either v1.17.0
   Compiling rustversion v1.0.23
   Compiling once_cell v1.21.4
   Compiling glob v0.3.4
   Compiling subtle v2.6.1
   Compiling fixedbitset v0.5.7
   Compiling indexmap v2.14.0
   Compiling serde_core v1.0.229
   Compiling typenum v1.20.1
   Compiling serde v1.0.229
   Compiling vcpkg v0.2.15
   Compiling siphasher v1.0.3
   Compiling cfg-expr v0.20.8
   Compiling bytes v1.12.1
   Compiling num-traits v0.2.19
   Compiling clang-sys v1.8.1
   Compiling lock_api v0.4.14
   Compiling prettyplease v0.2.37
   Compiling syn v2.0.119
   Compiling toml_parser v1.1.2+spec-1.1.0
   Compiling rustix v1.1.4
   Compiling unicode-width v0.2.2
   Compiling precomputed-hash v0.1.1
   Compiling minimal-lexical v0.2.1
   Compiling litemap v0.8.2
   Compiling itoa v1.0.18
   Compiling new_debug_unreachable v1.0.6
   Compiling writeable v0.6.3
   Compiling linux-raw-sys v0.12.1
   Compiling nom v7.1.3
   Compiling libloading v0.8.9
   Compiling anstyle v1.0.14
   Compiling bindgen v0.72.1
   Compiling fnv v1.0.7
   Compiling keccak v0.1.6
   Compiling toml v1.1.3+spec-1.1.0
   Compiling jobserver v0.1.35
   Compiling regex-automata v0.4.16
   Compiling mio v1.2.2
   Compiling socket2 v0.6.5
   Compiling same-file v1.0.6
   Compiling target-lexicon v0.12.16
   Compiling system-deps v7.0.8
   Compiling cc v1.4.0
   Compiling block-buffer v0.10.4
   Compiling crypto-common v0.1.7
   Compiling parking_lot v0.12.5
   Compiling digest v0.10.7
   Compiling dunce v1.0.5
   Compiling term v1.2.1
   Compiling fs_extra v1.3.0
   Compiling icu_normalizer_data v2.2.0
   Compiling utf8_iter v1.0.4
   Compiling icu_properties_data v2.2.0
   Compiling sha3 v0.10.9
   Compiling tokio v1.53.1
   Compiling walkdir v2.5.0
   Compiling ascii-canvas v4.0.0
   Compiling annotate-snippets v0.11.5
   Compiling itertools v0.13.0
   Compiling itertools v0.14.0
   Compiling ena v0.14.4
   Compiling rustc-hash v2.1.3
   Compiling winnow v0.7.15
   Compiling shlex v1.3.0
   Compiling glib-sys v0.22.8
   Compiling gobject-sys v0.22.6
   Compiling gio-sys v0.22.8
   Compiling cmake v0.1.58
   Compiling cexpr v0.6.0
   Compiling regex v1.13.1
   Compiling unicode-xid v0.2.6
   Compiling foldhash v0.1.5
   Compiling hashbrown v0.15.5
   Compiling aws-lc-sys v0.43.0
   Compiling pango-sys v0.22.0
   Compiling toml_datetime v0.6.11
   Compiling serde_spanned v0.6.9
   Compiling cfg-expr v0.15.8
   Compiling cairo-sys-rs v0.22.0
   Compiling gdk-pixbuf-sys v0.22.0
   Compiling aws-lc-rs v1.17.3
   Compiling http v1.4.2
   Compiling phf_shared v0.11.3
   Compiling petgraph v0.8.3
warning: pango-sys@0.22.0:
error: failed to run custom build command for `pango-sys v0.22.0`

Caused by:
  process didn't exit successfully: `/home/isaac/Workspaces/ripasso/target/debug/build/pango-sys-e3740830f113648a/build-script-build` (exit status: 1)
  --- stdout
  cargo:rerun-if-changed=/home/isaac/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/pango-sys-0.22.0/Cargo.toml
  cargo:rerun-if-env-changed=PANGO_NO_PKG_CONFIG
  cargo:rerun-if-env-changed=PKG_CONFIG_x86_64-unknown-linux-gnu
  cargo:rerun-if-env-changed=PKG_CONFIG_x86_64_unknown_linux_gnu
  cargo:rerun-if-env-changed=HOST_PKG_CONFIG
  cargo:rerun-if-env-changed=PKG_CONFIG
  cargo:rerun-if-env-changed=PKG_CONFIG_PATH_x86_64-unknown-linux-gnu
  cargo:rerun-if-env-changed=PKG_CONFIG_PATH_x86_64_unknown_linux_gnu
  cargo:rerun-if-env-changed=HOST_PKG_CONFIG_PATH
  cargo:rerun-if-env-changed=PKG_CONFIG_PATH
  cargo:rerun-if-env-changed=PKG_CONFIG_LIBDIR_x86_64-unknown-linux-gnu
  cargo:rerun-if-env-changed=PKG_CONFIG_LIBDIR_x86_64_unknown_linux_gnu
  cargo:rerun-if-env-changed=HOST_PKG_CONFIG_LIBDIR
  cargo:rerun-if-env-changed=PKG_CONFIG_LIBDIR
  cargo:rerun-if-env-changed=PKG_CONFIG_SYSROOT_DIR_x86_64-unknown-linux-gnu
  cargo:rerun-if-env-changed=PKG_CONFIG_SYSROOT_DIR_x86_64_unknown_linux_gnu
  cargo:rerun-if-env-changed=HOST_PKG_CONFIG_SYSROOT_DIR
  cargo:rerun-if-env-changed=PKG_CONFIG_SYSROOT_DIR
  cargo:warning=
  pkg-config exited with status code 1
  > PKG_CONFIG_ALLOW_SYSTEM_CFLAGS=1 pkg-config --libs --cflags pango 'pango >= 1.50'

  pkg-config output:
    Package pango was not found in the pkg-config search path.
    Perhaps you should add the directory containing `pango.pc'
    to the PKG_CONFIG_PATH environment variable
    Package 'pango' not found
    Package 'pango' not found

  The system library `pango` required by crate `pango-sys` was not found.
  The file `pango.pc` needs to be installed and the PKG_CONFIG_PATH environment variable must contain its parent directory.
  The PKG_CONFIG_PATH environment variable is not set.

  HINT: if you have installed the library, try setting PKG_CONFIG_PATH to the directory containing `pango.pc`.

warning: build failed, waiting for other jobs to finish...
warning: gdk-pixbuf-sys@0.22.0:
error: failed to run custom build command for `gdk-pixbuf-sys v0.22.0`

Caused by:
  process didn't exit successfully: `/home/isaac/Workspaces/ripasso/target/debug/build/gdk-pixbuf-sys-4c3fd5a1fc9e3744/build-script-build` (exit status: 1)
  --- stdout
  cargo:rerun-if-changed=/home/isaac/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/gdk-pixbuf-sys-0.22.0/Cargo.toml
  cargo:rerun-if-env-changed=GDK_PIXBUF_2.0_NO_PKG_CONFIG
  cargo:rerun-if-env-changed=PKG_CONFIG_x86_64-unknown-linux-gnu
  cargo:rerun-if-env-changed=PKG_CONFIG_x86_64_unknown_linux_gnu
  cargo:rerun-if-env-changed=HOST_PKG_CONFIG
  cargo:rerun-if-env-changed=PKG_CONFIG
  cargo:rerun-if-env-changed=PKG_CONFIG_PATH_x86_64-unknown-linux-gnu
  cargo:rerun-if-env-changed=PKG_CONFIG_PATH_x86_64_unknown_linux_gnu
  cargo:rerun-if-env-changed=HOST_PKG_CONFIG_PATH
  cargo:rerun-if-env-changed=PKG_CONFIG_PATH
  cargo:rerun-if-env-changed=PKG_CONFIG_LIBDIR_x86_64-unknown-linux-gnu
  cargo:rerun-if-env-changed=PKG_CONFIG_LIBDIR_x86_64_unknown_linux_gnu
  cargo:rerun-if-env-changed=HOST_PKG_CONFIG_LIBDIR
  cargo:rerun-if-env-changed=PKG_CONFIG_LIBDIR
  cargo:rerun-if-env-changed=PKG_CONFIG_SYSROOT_DIR_x86_64-unknown-linux-gnu
  cargo:rerun-if-env-changed=PKG_CONFIG_SYSROOT_DIR_x86_64_unknown_linux_gnu
  cargo:rerun-if-env-changed=HOST_PKG_CONFIG_SYSROOT_DIR
  cargo:rerun-if-env-changed=PKG_CONFIG_SYSROOT_DIR
  cargo:warning=
  pkg-config exited with status code 1
  > PKG_CONFIG_ALLOW_SYSTEM_CFLAGS=1 pkg-config --libs --cflags gdk-pixbuf-2.0 'gdk-pixbuf-2.0 >= 2.36.8'

  pkg-config output:
    Package gdk-pixbuf-2.0 was not found in the pkg-config search path.
    Perhaps you should add the directory containing `gdk-pixbuf-2.0.pc'
    to the PKG_CONFIG_PATH environment variable
    Package 'gdk-pixbuf-2.0' not found
    Package 'gdk-pixbuf-2.0' not found

  The system library `gdk-pixbuf-2.0` required by crate `gdk-pixbuf-sys` was not found.
  The file `gdk-pixbuf-2.0.pc` needs to be installed and the PKG_CONFIG_PATH environment variable must contain its parent directory.
  The PKG_CONFIG_PATH environment variable is not set.

  HINT: if you have installed the library, try setting PKG_CONFIG_PATH to the directory containing `gdk-pixbuf-2.0.pc`.

I noticed the missing library and installed

$ sudo apt update && sudo apt install -y pkg-config libpango1.0-dev

I still needed more packages

$ sudo apt install libssl-dev libclang-dev libadwaita-1-dev libgpgme-dev libgpg-error-dev libgtk-4-dev libxcb-shape0-dev libxcb-xfixes0-dev capnproto

But it finally worked

...
Compiling terminal_size v0.4.4
Compiling cursive v0.21.1
Compiling git2 v0.21.0
Compiling pango v0.22.8
Compiling gdk-pixbuf v0.22.0
Compiling rustls-webpki v0.103.13
Compiling gdk4 v0.11.4
Compiling tokio-rustls v0.26.4
Compiling rustls-platform-verifier v0.7.0
Compiling gsk4 v0.11.4
Compiling hyper-rustls v0.27.9
Compiling reqwest v0.13.4
Compiling gtk4 v0.11.4
Compiling ripasso v0.8.0 (/home/isaac/Workspaces/ripasso/crates/ripasso)
Compiling libadwaita v0.9.2
 Finished `dev` profile [unoptimized + debuginfo] target(s) in 57.43s

I was trying to find the best way to run the app and compiled and ran the gtk version

isaac@isaac-G707:~/Workspaces/ripasso$ cargo run --bin ripasso-gtk
   Compiling bindgen v0.72.1
   Compiling openssl-sys v0.9.117
   Compiling ossl v1.5.2
   Compiling sequoia-openpgp v2.4.1
   Compiling sequoia-ipc v0.36.1
   Compiling sequoia-gpg-agent v0.6.2
   Compiling ripasso v0.8.0 (/home/isaac/Workspaces/ripasso/crates/ripasso)
   Compiling ripasso-gtk v0.8.0 (/home/isaac/Workspaces/ripasso/crates/ripasso-gtk)
    Finished `dev` profile [unoptimized + debuginfo] target(s) in 20.41s
     Running `target/debug/ripasso-gtk`

/img/2026-10-ripasso-01.png

However, as soon as I compiled and ran it, on first collection create it crashed

/img/2026-10-ripasso-02.png

I tried “ripasso-cursive” next, the TUI

/img/2026-10-ripasso-03.png

But alas that crashed as well

/img/2026-10-ripasso-04.png

I think that puts a pin in it for me.

PixelTools

A user wrote in to me to check out their passion project, Pixeltools. It’s free to use and based on open-source tooling, but it itself is not open-source (which is fine, just pointing that out in case you wanted to run it locally).

/img/2026-10-pixeltools-01.png

It was easy to flip an image

/img/2026-10-pixeltools-02.png

Or perhaps I want to have a selfie setup for other images, here I can remove the background from a recent event

/img/2026-10-pixeltools-03.png

I can easily set to half-speed an MP4

/img/2026-10-pixeltools-04.png

I tried the face blur but it really just found my own

/img/2026-10-pixeltools-05.png

I can, of course, draw my own boxes

/img/2026-10-pixeltools-06.png

I can generate App Icons which is handy

/img/2026-10-pixeltools-07.png

I can then take some of these screenshots and turn them into new images (good for presentations)

/img/2026-10-pixeltools-08.png

The DevTools has some interesting options. This How Long has a timer that can down to various times

/img/2026-10-pixeltools-09.png

Generate a HASH (nice for MD5)

/img/2026-10-pixeltools-10.png

Or just pick a colour from the screen

/img/2026-10-pixeltools-11.png

The text translation says it can do things like Elvish but I question those (looks like it just changes the w to a v)

/img/2026-10-pixeltools-12.png

But I found some useful ones like generating usernames

/img/2026-10-pixeltools-13.png

or passwords

/img/2026-10-pixeltools-14.png

or URL encode

/img/2026-10-pixeltools-15.png

The Invoice Generator can be handy for small businesses

/img/2026-10-pixeltools-16.png

I won’t go over all the tools, but you can check them out on the website at Pixeltools.

Summary

Today we looked at an interesting GCP tool “gcp-custom-ui” which is a fantastic high featured Google Cloud tool. While some of the features are a bit confusing to me, I do like the “FinOps” field that shows the impact to cost on any action and in many cases, the reveal of the gcloud commands so I could see what it was doing.

Next I looked at Ripasso password manager which seemed promising but would crash after initial TUI or UI display so I stopped going any farther.

Lastly, we looked at a free SaaS site, PixelTools which has quite a variety of free to use features for Image, PDF, Audio, Video, Invoicing, Text and miscellaneous Dev Tools. There is no paid option so I can only assume it’s just a labor of love by the authors.