Much improved afpfs-ng + AFP plugin for KDE file managers

Since I started dual boot Asahi Linux / Fedora Remix and KDE on my MacBook Pro M1, I found out the hard way that KDE file managers doesn't speak AFP natively (unlike GNOME). A little while ago I was able to modernize the afpfs-ng AFP client enough that it became possible to use libfuse3 to mount AFP file systems in a reliable manner. However I wasn't satisfied with how unintuitive it is to juggle FUSE mounts on modern OSes. This inspired me to look into what it would take to make AFP a first class citizen remote file system in KDE.

Now thanks to a few ancient screenshots on the abandoned afpfs-ng SourceForge project landing page, I knew that Alex (the original author of afpfs-ng) had a working prototype of something like this circa 2008, but I had no idea what APIs or technologies were involved, and for the longest time I thought his source code was either unpublished or long lost.

Back in December of 2025 I made a first experiment, which was a thin wrapper and KDE connection dialog GUI for the afpfs-ng FUSE client. It did not work out very well and I soon abandoned it.

Fast forward a few weeks later in early January I had two breakthroughs in quick succession: First one was the idea of a stateless AFP client library and daemon architecture, and the second was KIO, KDE's API for modular file manager components. To give credit where credit is due, both ideas originate with Alex, but since the experiment from 2008 was abandoned before it was completed and released, tracking down the PoC code and then understanding the purpose and architecture were both major hurdles for me.

After two months of intense coding and testing, I am proud to present a much-improved afpfs-ng v0.9.4, and a brand new kio-afp KIO Worker for the AFP protocol. And to make the software suite complete, I am also proposing a modification to the kio-zeroconf component to make it sensitive to AFP-over-TCP Zeroconf services.

To demonstrate, here is AFP servers listed by Dolphin using the modified kio-zeroconf:

1772406689752.png

And after authenticating with a server and opening a shared volume:

1772406669805.png

If you are running KDE and comfortable building software with cmake and meson, I would love your testing and feedback! This software suite is running well now in my particular environment, but there is a risk of bugs when venturing out into the wild!

The first step is building afpfs-ng v0.9.4 (or later) since it provides the shared libraries and headers that we need later. Then build kio-afp and install it, which should immediately give Dolphin and Konqueror the ability to load afp:// URLs. Finally, make sure that you uninstall the stable kio-zeroconf package first, then build my modified version of kio-zeroconf (fingers crossed that the KDE project will accept my MR eventually.)

Dolphin's Network page should now have a new "AFP remote directory" category of Zeroconf services available!

Finally, there are countless of other recent improvements and new features in afpfs-ng. Of interest for the vintage Mac crowd is that we now can decode MacRoman charset, which enables proper AFP 2.x compatibility, e.g. a Classic Mac OS machine running personal file sharing. However afpfs-ng cannot make sense of resource forks yet to tread carefully when copying files from old Macs!
 
Back
Top