Portfolio 0.9.13

After  a few months of slow but steady progress, a new release of Portfolio is out 📱🤓. This new release comes with the ability to fully manage external devices, better feedback and responsiveness when copying big files to slow devices and many bugs fixes.

By popular demand, the main addition to Portfolio is the ability to fully manage external devices, this means; detecting external devices, unlocking encrypted devices, mounting and ejecting. For this release, I focused on getting the udisks2 integration right, but there’s still room for improvement on the UX department. A shout out to @ahoneybun for testing my two previous (and unsuccessful 😅) attempts to implement this.

Another noticeable improvement is that now copying operations display progress feedback on individual files. Previously, there wasn’t any, which led to the impression of “no feedback at all” when copying big files.

A related improvement is that copying operations now do a better job displaying the real progress, specially when copying files to slow external devices. No more suspiciously fast copying operations, which later turn into several minutes of undetermined wait time when ejecting these devices.

On the bug fixing department, hidden Trash folders are no longer created on external devices until they’re really needed, send to Trash button won’t show on devices with no Trash folder, Portfolio no longer crashes on the Sway tiling compositor, broken symlinks are now handled properly and the same file size unit is used consistently through all the application.

Moving forward, for the short term, I want to improve the external devices management UX and give these beautiful GNOME 42 folder icons a try 🤩. For the long term, I would love to port this application to GTK4 and Libadwaita.

Last but not least, special thanks to @lqs01, @AsciiWolf, @Vistaus, @eson57, @cho2, @rffontenelle and @carlosgonz0 for keeping their translations up to date, and to @craftyguy for helping me with  general testing.

Portfolio 0.9.11

Catching up

The last couple of months have been particularly busy:

  • A few more releases down the road, the portal permissions support in Flatseal has finally matured. I took the opportunity to fix a crash in Flatpak’s permission store and to complete its permissions API, to pave the way for existing and future Flatseal-like front ends.
  • I took a short break to take care of my twenty five Sugar applications. Released a new version of the BaseApp, and updated every application to the latest upstream release and GNOME runtime.
  • On a personal note, I have been mentoring some brilliant interns at work, which is a refreshing experience after so many months of lockdown due to COVID.

What’s new in Portfolio?

On the visuals department, this new release brings a refreshed icon by @jimmac, which looks fantastic and takes it closer to the modern art style in GNOME.

Regarding features, well, there’s quite a lot. The most noticeable one is the Trash folder.

One of my goals for Portfolio is that, for the little it does, it should just work™.  It shouldn’t matter what the users environment might be or how it’s being distributed. This imposes some technical challenges and, I imagine, is one of the reasons why a few file managers available on Flathub don’t provide feature parity with their non-flatpak versions.

Because of this, I prototyped different Trash folder implementations. Initially, I went for the right way™ and simply relied on the gvfsd. Sadly, there were a few issues with the sandbox interaction that prevented me from fulfilling my goal. Therefore, I stuck to my own implementation of freedesktop’s Trash spec. I must admit though, that I really enjoy reading these specs for Portfolio.

But there’s more!

A common issue among users, of the Flatpak version, is that they can’t see the real root directory. This is understandably confusing. Therefore, Portfolio now includes a Host device shortcut, as a best-effort attempt to mitigate this.

If you have been using Portfolio on devices with slow storage, you have probably seen that loading screen a few times when opening folders. I will eventually get around to something more elaborated but, for the time being, I reduced these load times with a bit of cache.

Among other improvements, there are now proper notifications when removing devices, filtering and sorting options will persist between sessions, and the files view will restore its scroll position to the previous directory when navigating back.

As for the bugs, kudos to @craftyguy for fixing a couple ones that prevented Portfolio to run on Postmarket OS.

Last but never least! Thanks to @lqs01, @AsciiWolf, @eson57, @Vistaus, @rffontenelle and @cho2 for helping me with translations.

Portfolio 0.9.10

Almost 3 months, and 15 releases later, Portfolio development has been moving pretty fast. Well, for a weekend project 😅. So much so, it’s worth of another blog post. With today’s release, it provides a much smoother file management experience for mobile users. These are the highlights:

This new release introduces a new home page, which serves as the starting point for the navigation experience. Besides its utility as “quick access”, it also provides a better interface for managing external devices. Kudos to @nahuelwexd for designing it.

Moving places and devices to the home page solved one of the biggest issues preventing Portfolio to run in portrait mode. Even though is not perfect, it feels pretty good already, like holding a handheld game console.

Another missing piece, now set in place, is the properties viewer. For now, the viewer displays the most basic properties but, I can keep adding more on demand. Thanks to @bertob for the design hints.

With the properties viewer in place, I was finally able to finish the org.freedesktop.FileManager1 interface implementation. In case you’re wondering, this is what other applications invoke to display files, e.g. Chromium’s “Show in folder” button on it’s downloads page.

Like these, many other things improved and changed since the original release. Portfolio is, and feels, generally faster, e.g. the loading progress bar doesn’t show up anymore unnecessarily, cancelling paste operations is now instant, and is available in 6 different languages. But, if you’re curious, here’s the full CHANGELOG.

Of course, all of these improvements would not have been possible without the feedback from the community. Big thanks to everyone who has contributed so far. Now roll the credits!

Kudos to @eson57, @Vistaus, @henry-nicolas, @AsciiWolf, @cho2, @rffontenelle, @srevinsaju, @GNUuser, @aVolpe, @philipzae, @MobianLinux, @linmobblog and @DanctNIX.