Install the fafi command line app easily using pipx install fafi that's all that's needed, and then feed it a single URL, a text file with one URL per line, a bookmarks.html containing links (any browser's export) or --firefox and it will detect the Firefox profile and extract its bookmarks and index them.
Then search all your bookmark contents using full-text search and ranking!
New in 0.2.3
The release notes for version 0.2.3 of Fafi (Favorites Finder) include the following changes and updates:
Fixes pipx installs: This release addresses issues related to installing Fafi using pipx, a tool that allows you to install Python applications in isolated environments. The fixes aim to improve the installation process and ensure smoother usage of Fafi.
--url option: A new command-line option, "--url," has been added to Fafi. This option allows users to add single URLs directly for indexing and searching purposes. It provides a convenient way to include specific webpages in the Fafi search index.
--list=textfile: Another addition to the command-line options is "--list=textfile." This option enables users to specify a text file containing a list of URLs or webpage locations that should be indexed by Fafi. It offers a means to index multiple URLs at once from a single file, streamlining the indexing process.
Textual TUI: Fafi now includes a Textual Terminal User Interface (TUI). This feature enhances the user experience by providing a text-based interface within the command-line environment. The TUI improves interaction with Fafi, making it more intuitive and user-friendly.
Dependency updates: The release incorporates updates to Fafi's dependencies. These updates ensure that Fafi remains compatible with the latest versions of the libraries and packages it relies on. By keeping the dependencies up to date, Fafi benefits from bug fixes, performance enhancements, and new features introduced in those libraries.
I was looking to monitor developer related metrics when I noticed that there's no bitbar / xbar for Linux!
In the age of AI-assisted engineering, that's no longer a massive time commitment, so I built one.
Sidewing is a GTK4 desktop bar for elementary OS-style multi-monitor setups. It runs local executable plugins, parses xbar-style output, and renders the result in a slim bar window on a selected display.
Current target:
elementary OS 8 / Linux desktop environments with X11
GTK4 + Vala
local, unsandboxed script plugins
Sidewing discovers and runs plugins, schedules refreshes from xbar-style filenames, renders a translucent bar, and opens per-plugin popover menus with a built-in variables editor. See Current Limitations for scope boundaries.
Hello Browser is a webview window for desktop web apps (written in vala, GTK4, for linux). The goal is to bundle a locally-served web app into something that behaves like a native desktop app.
What's new
Links that open in a new window now open in your default browser. Previously, clicking a target="_blank" link did nothing β the new window request was silently dropped. Hello Browser now hands those URLs off to whatever browser you've set as your system default.
Pass a URL directly. You can now run hello-browser https://example.org without the --url flag.
Site launchers via make desktop. A new Makefile target generates .desktop entries so a wrapped site shows up in your application menu like any other app.
Under the hood
Ported from GTK3 / WebKitGTK 4.0 to GTK4 + WebKitGTK 6.0. You'll need the GTK4 and WebKitGTK 6.0 development packages to build.
Build system streamlined; README updated with current setup instructions.
For anyone starting to fix their own open-source issues with patches on top of apt packages, but cannot upstream it due to AI policies: https://github.com/svandragt/elementary-patches I built some tooling to make this easy, and this is where I plan to keep my elementaryOS patches. #projects
Lamb 0.8.0…
Two weeks after Lamb 0.7.0, I released another significant new version of Lamb, my friction free microblogging project. This version includes support for Micropub, allowing you to post text and photos from anywhere, adds a Trash where deleted posts go for 30 days, support for drafts, a new docs site and a lot more (redirects)!
With LLMs these days we are living in a golden age at the moment as a side-project developer. This makes it a challenge to catalogue and present these tools and projects in the best light. So I built toolhub:
Toolhub is a portfolio hub / tools manager that will bootstrap a projects.yaml with a GitHub userβs public github repos, and gists with a readme, then generate a static site with a tool per page and a index, auto updated with a focus on minimising maintenance, so the site updates itself π
Thought it would be useful to apply my LLM learnings to future projects, and extracted half a dozen skills. As I wasn't clear on the separation between Claude.AI and Claude Code I also documented how to make the skills available to both.
Having the skills repo symlinked allows you iteratively work on them as well, which is nice.
The other day, it took me half an hour to share an HTML file of a blog design from my phone with Claude Code, which was running in an isolated environment. Now Iβm not inexperienced when it comes to computers but file sharing on iOS is just needlessly complicated.
Claude code canβt read files shared using iCloud and all the services it suggested like Pastee allow sharing of text but itβs not possible to view the source of an .html file stored in Files on iOS without third party apps. Ultimate I had to push the file into a temporary git repository.
Anyway, what I needed was a simple file share so I whipped up FileShare. Login with an account you setup and create temporary or permanent private and public files
Today I was thinking about how I am never sure what format to use when creating links to files and directories. Is it symbolic or hard link, should I use absolute or relative paths? So I spent a little time and created link that will guide you through the process or use heuristics, in a standardized lnk from to format.
lnk is an interactive wrapper around ln that helps you create symbolic and hard links safely.
It asks a small set of plain-English questions, explains the decision it makes, shows the equivalent shell command, and only proceeds after confirmation.