I've spent the last few days updating my lobste.rs client, written in ClojureScript.
I've even implemented an html renderer that converts html tags to gtk, so that comments can be properly shown, with links, quotes, lists, etc...
Lol
| github | ranfdev |
I've spent the last few days updating my lobste.rs client, written in ClojureScript.
I've even implemented an html renderer that converts html tags to gtk, so that comments can be properly shown, with links, quotes, lists, etc...
Lol
I'm continuing developing my outliner in Janet.
Also, I'm having fun testing the new Claude Sonnet 4.5 llm model, letting them annotate my functions with pre and post conditions contracts, to ensure the invariants are _always_ valid.
I'm yakshaving. Now I'm trying to build a Phoenix live-view alternative in Janet.
I've rebuilt a simple solidjs alternative in Janet to track and react to data changes dynamically. Now I only need to write a macro that listens to data changes and sends an event having the updated HTML fragments.
Following is a sample of code to see how the final API would look like.
The app logic stays server-side, and the :lv-click events get translated to requests like POST /lv-event/click?id=123.
I'm now adding support for toolbox as well to my DistroShelf app
I finally published the code for DistroShelf, a GUI for distrobox written with #gtk #libadwaita.
What's distrobox?
"Use any Linux distribution inside your terminal. Enable both backward and forward compatibility with software and freedom to use whatever distribution you’re more comfortable with"
This is what a peak desktop environment would look like.
Have a look at the workspace view:
It unifies the workspace switcher, the alt-tab switcher and the app launcher.
The workspaces are left aligned, so that they are near the workspace switcher button on the bottom panel. This minimizes mouse movement when you want to switch workspaces.
Opening the app list doesn't hide the workspace preview row. This let's you drag and drop an app directly to a target workspace.
Hardware controls, Session controls (log out, switch user, power off), Notifications and Time/Calendar have their own buttons on the bottom panel.
For this app, I completely abstracted away the terminal. I'm able to replace the output of a process with a stub.
This lets me replace the distrobox command with a stub to properly test the GUI. Look how cool is that!
How would I test these cases otherwise?
- distrobox not installed
- distrobox installed but no container was created (I cannot delete all my containers everytime)
- distrobox installed, with 12 containers created