• I'm rather interested in learning the Gleam language, so I've started a new series of YouTube videos, "live coding" converting an Elm app to Gleam & Lustre.

    Elm to Gleam & Lustre – Setup | Always Developing #235

  • Snippet Expander v1.0.2 Released 🎉

    Snippet Expander v1.0.2 is now available.

    https://snippetexpander.org

    Changelog

    • Fix copying snippet on Wayland
    • Fix pasting snippet on Wayland (when using standards compliant compositor)
    • Remove dependency on cgo and xtst
    • Now depends on xclip and xdotool for X Server
    • Now depends on wl-clipboard and wtype for Wayland
    • Other dependencies updated
    • Minor fixes to man pages

    Wayland Support

    Snippet Expander now works when using a Wayland compositor. Snippet Expander used to work fine with Wayland when auto expanding snippets, but not so much when using the Search & Paste window.

    Previously, Snippet Expander used a Go library that did not use any external dependencies (in the form of programs) to add a snippet to the clipboard, or when grabbing the clipboard contents to insert into a snippet's body that used the @clipboard placeholder. This library did not work on Wayland (at least for me), so I switched to another library, but this library does use external programs to work with the clipboard. This new library has proven very reliable, using either xclip or wcopy (from the wl-clipboard package) to save or retrieve snippets to or from the clipboard.

    xclip

    wl-clipboard

    Snippet Expander used to then use some custom cgo code I wrote to simulate using the ctrl+v keyboard shortcut to paste a snippet into an application once the Search & Paste window had closed. However, this simply did not work on Wayland (although I could swear it used to), no matter which X Server and Wayland supporting C library I tried to use.

    So now, instead, Snippet Expander uses either xdotool or wtype on either X Server or Wayland desktops respectively to "press" ctrl+v.

    xdotool

    wtype

    On X Server this works fine everywhere I've tested it, but on Wayland, this only works on compositors that support the virtual keyboard protocol standard. So on wlroots based compositors like Sway, all is good, but on KDE Plasma or GNOME, not so much. It seems like KDE hasn't decided yet whether it will support the virtual keyboard protocol in Plasma, but GNOME isn't going to, which is a shame. I don't understand why a Wayland compositor wouldn't want to support all the standards. 🤷

  • How did I not know that I could subscribe to an atom feed in Amfora,

    the gemini protocol browser I use? 🤦

    And how did I not realise I could create an atom feed for my blog posts

    and microblog with Kiln! 🤦

    All fixed now, both blog and microblog now have atom feeds for gemini

    and https protocols.

    /posts/atom.xml

    /microblog/atom.xml

  • Last video in my mini series on creating a Debian package file (.deb) for Snippet Expander.

    Snippet Expander: Packaging for Debian – Part 7 – .deb done! 🎉 | Always Developing #234

  • Snippet Expander v1.0.1 Released 🎉

    It is my immense pleasure to announce that Snippet Expander v1.0.1 has been released!

    https://snippetexpander.org

    What Is Snippet Expander?

    Snippet Expander is "Your little expandable text snippets helper", for Linux. With Snippet Expander you can type a saved abbreviation and it will automatically expand to the associated body text.

    Placeholders

    Your snippets can optionally include placeholders for formatted and calculated dates and times, the clipboard contents, other snippets, and cursor position.

    Placeholders Manual Page

    Search & Paste Window

    There is also a very handy search and paste window for if you can't remember your abbreviation, or happen to be using an application that does not allow auto expansion of snippets. Personally, I pretty much always use the search and paste window, and find holding down the shift key when I select a snippet a great way to have the snippet body pasted into a terminal window when the search and paste window closes.

    The most recently used snippets are shown first in the search and past window, with numeric quick select keys for the first 10 items. So opening the search and paste window via a shortcut, typing a couple of letters to search your snippets, and selecting the right one can be super quick.

    Snippet Expander's desktop application will try and set up a shortcut for the search and past window when first run, but if it can't, you can set up the shortcut using your system's settings. Just call the application with the –search-and-paste option:

    snippetexpandergui --search-and-paste
    

    Options in GUI's Manual Page

    CLI

    There is also a fully featured command line interface that can be used to manage snippets and settings.

    CLI Manual Page

    What Happened to Snippet Pixie?

    Snippet Expander is a complete rewrite of Snippet Pixie using (mostly) different languages, with a more flexible architecture, giving improved speed, stability and utility.

    Snippet Pixie is now considered deprecated, and is no longer being worked on as Snippet Expander supersedes it.

    You can export your snippets from Snippet Pixie and import them into Snippet Expander.

    Where Can You Get It?

    Snippet Expander isn't packaged for any Linux distro just yet, although I have submitted a pull request to Nixpkgs.

    Nixpkgs PR

    I might have a crack at building a Debian package, but I'm not sure whether I'll build any other package formats myself. I'm more than happy for other people to package Snippet Expander for their preferred Linux distro, or universal packaging format.

    So, for the time being best bet is to checkout the source and build it yourself, instructions are on the repository's readme.

    Snippet Expander source code on SourceHut

    Quick Demo on YouTube

    If you want to see Snippet Expander in action, I did a quick demo in a YouTube video on my Always Developing channel.

    Snippet Expander: v1.0.1 released! 🎉 | Always Developing #226

    Enjoy!

    Hope you find Snippet Expander useful and enjoy using it. If you have any questions or feature requests, please get in touch via either of the project's mailing lists, IRC channel, or directly via the contact methods on this site.

    snippetexpander-discuss mailing list

    #snippetexpander IRC channel on the Libera.Chat network

    Contact Page

  • Svelte 5 runes are going to be awesome! 🎉

    Introducing [Svelte 5] runes

    I've definitely hit some of the pain points that runes seek to address.

    In particular, the $derived rune will simplify a whole bunch of code for me

    that currently necessitates using $: along with passing extra variables into

    a function to ensure reactive values flow.

    Being able to refactor some reactive code out to JavaScript files will also

    be a big win, some of our script tags are getting a little unwieldy.

    Really looking forward to getting my hands on Svelte 5 and doing a little bit

    of code gardening next time I hit some code that can be simplified by runes.

  • OSNews

    The other day, OSNews launched their own Gemini capsule. For a site that as far as I can tell, is basically text only, this makes perfect sense, and was an instant bookmark and subscribe in the Gemini browser I use daily, Amfora.

    OSNews launches Gemini capsule

    OSNews Gemini Capsule

    Amfora – alas in maintenance mode

    OSNews adding a Gemini capsule prompted me to reminisce about the site, and wonder just how long it's been adding interesting links and commentary items to my daily RSS feed reading habit.

    One of the oldest OS's I remember being introduced to me via OSNews is Unununium. From searching OSNews, first mention of Unununium was in September 2001, so that means I've been reading the site for at least 22 years!

    Unununium

    OSNews – First Operating Engine Without a Kernel (Unununium)

    Unununium was a very interesting system written in assembly where everything was in user space, even the kernel, as such, and I remember enjoying building and installing it on some old hardware, or maybe in a virtual machine, not quite sure. I remember trying out a bunch of other "hobby" operating systems at the time, there seemed to be quite a renaissance at the time.

    I suspect I first became aware of OSNews via some coverage of BeOS, which they covered quite often, and after its demise, Haiku too. I really loved BeOS, still have some original disks I'm loathed to throw out (I gave away my BeOS Bible and developer's guide though), and often find myself firing up Haiku in quickemu or on an old laptop to see just how far it is getting along (very far, it's really good and stable for me these days).

    In fact, I visit the Haiku Community forum every day to keep tabs on the project, and of course I subscribe to its blog, and its Gemini capsule.

    OSNews – Search Results for: BeOS

    OSNews – Search Results for: haiku

    Haiku

    Haiku Community

    Haiku Gemini Capsule

    While Unununium and BeOS are long dead, OSNews is still very much alive and kicking, and I still read it every day, often being sent off on some rat-hole of reading about some new project or interesting going-ons in the world of OSes and open source software and hardware.

    As mentioned, I generally read OSNews via RSS, but while searching for Unununium on the site I of course got to see what it looks like today, which isn't too dissimilar to how I remember it always being, clean, simple and content focussed.

    One thing I didn't know, and noticed while looking at the site for the first time in ages, was that OSNews has a Patreon account. Seeing as I've been enjoying the site for so long, for free, seemed like a no-brainer to become a member, and show my support.

    OSNews Patreon

    Anyway, thank you OSNews for launching a Gemini capsule, and thanks for keeping me informed about operating systems new, old, big and small for such a long time.

  • Tumbleweeds …

    ⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀
    ⠀⠀⠀⠀⠀⠀⠀⠀⠀⣠⣤⡀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀
    ⠀⠀⠀⠀⠀⠀⠀⣰⡾⠋⠀⠀⣀⣴⠶⣶⣦⣤⣀⠀⠙⠒⠦⣤⣀⡀⠀⠀⠀⠀
    ⠀⠀⠀⠀⠀⢀⣾⠋⠀⣠⣴⠞⠉⠀⠀⠀⠈⠉⠛⠿⣶⣤⡀⠀⠈⢻⡄⠀⠀⠀
    ⠀⠀⠀⠀⠀⣸⣿⣶⠟⠋⠀⠀⣤⣶⣾⣿⣿⣿⣷⣄⠀⠙⠻⣷⣄⠀⠃⠀⠀⠀
    ⠀⠀⠀⠀⣠⡿⠋⠁⣠⣾⠁⢠⣿⡟⠁⠈⠉⠙⢻⣿⣷⠀⠀⠈⠻⣷⣄⠀⠀⠀
    ⠀⠀⠀⣴⡟⠁⠠⣾⣿⡇⠀⠸⢿⣄⡀⠀⠀⠰⣿⣿⠏⠀⠀⠀⣠⣿⡟⠀⠀⠀
    ⠀⠀⡀⠙⣇⠀⠀⠘⢿⣧⠀⠀⠀⠈⠉⠂⠀⠀⢸⣿⠀⠀⢀⣴⡿⢻⣿⡷⠂⠀
    ⠀⠀⢱⡀⠈⠀⠀⠀⠀⠻⣷⣦⣄⣀⣀⣀⣀⣤⣾⣿⣷⣤⡾⠋⠀⢈⣿⡇⠀⠀
    ⠀⠀⠈⣷⡀⠀⠀⠀⡄⠀⠙⢿⣿⠿⠿⠛⠛⠋⣉⣭⡿⠋⢀⣤⣾⠿⠟⠃⠀⠀
    ⠀⠀⠀⢹⣿⣄⡀⠀⢻⣆⠀⠀⠀⠀⠀⠀⢀⣴⣟⣋⣤⣾⠟⣿⡇⠀⠀⠀⠀⠀
    ⠀⠀⠀⠀⠙⢿⣿⣶⣤⣽⣷⣄⣀⣤⣴⣶⣿⣿⣿⠟⠋⠀⢰⣿⡇⠀⠀⠀⠀⠀
    ⠀⠀⠀⠑⢦⣀⠉⠙⠛⠛⠛⠛⠛⠛⢉⣉⣉⣀⣤⣤⣤⣤⣿⣿⠃⠀⠀⠀⠀⠀
    ⠀⠀⠀⠀⠀⠙⢿⣶⠶⠖⠂⠀⠀⠀⠀⠀⠈⠉⠉⠉⠉⠉⠉⠁⠀⠀⠀⠀⠀⠀
    ⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀
    
  • Had a bit of time to return to Snippet Pixie development last night, and instantly found a UX bug with the CLI.

    It wasn't a code bug, technically it worked as it should, but it definitely did not work in a way that someone (now) less familiar with its quirks would expect.

    So I added tests to enforce how someone might expect the CLI to work, and fixed the code. It was a nice re-introduction to the project's code.

    Seems like a rest from a project is a good way to get a fresh pair of eyes on it.