My activities for week 47 of 2020 - GNOME Extensions in ClojureScript

en
- 22 Nov, 2020

Write Gnome extensions with ClojureScript

This week besides some client work I contributed to shadow-cljs-gjs-target. shadow-cljs-gjs-target is a plugin for Shadow CLJS that allows people to build Gnome applications in ClojureScript via GJS Gnome JavaScript Bindings.

This started from my desire to build Gnome Extensions so I can improve my workflow. I use Gnome on my Debian system and I would like to improve how I manage my time. I thought about using an extension to help me with my time tracking app - hledger - which is a plain text tool.

I found How to create GNOME Extension video series on YouTube and I thought - can I do this with Clojure(Script)?

As I said, I wanted to see if I can build Gnome extensions in ClojureScript. Since Gnome extensions are written in JavaScript and use Gjs I thought that a good place to start is shadow-cljs-gjs-target.

I got feedback from the plugin author @titonbarua and also ShadowCLJS author Thomas Heller. I was able to draft a working example and the PR to build Gnome Extensions with ClojureScript was merged.

When I have some time I would like to explore making some useful Gnome extensions. I will probably start with porting the How to create a GNOME extension code from JavaScript to Clojure.

Tags: gnome clojure free software gnome extension contribution open source

Tag cloud

plain text accounting timeclock documentation parser sysadmin cryogen grammar keepassxc gnome authentication clojure tutorial pass oauth2 password management export hledger oauth2-proxy free software csv website static website kubernetes lexer open-source snippets dex gnome extension babashka k3s contribution time logging FreeIPA Raspberry PI LDAP deps.edn giving back OpenFaaS Antlr self-hosting serverless cryogen-web live-reload open source