Portfolio 1.0.0

I am happy to announce the release of Portfolio 1.0.0! This new release is the first step in the modernization process to GTK 4 and Libadwaita. It’s also a continuation to my efforts of bringing a minimalist file manager to the mobile Linux community, with a few important bug fixes.

As a starting point for the modernization process, this new version of Portfolio preserves the exact same design, in a GTK 4 flavor. A few reasons for that.

First, although I wish everyone was distributing applications using Flatpak, I want to reduce friction for the mobile Linux distributions, by sticking to currently available APIs. Second, I want to spend more time experimenting with newer Libadwaita widgets, specially with the ones from the upcoming 1.4 release, as these could require redesigning a few aspects of Portfolio’s graphical interface.

On the maintenance side of things, I fixed a major issue which prevented some files to be sent to the trash and another that prevented displaying progress while moving files, among other minor fixes. Porting widgets to Libadwaita fixed one annoying issue which prevented swapping back, so that’s a big free win.

Even before all of this work ever happened, I spent some time refactoring the project into smaller, more modular, pieces. This helped significantly to the porting process and it will ensure an easier maintenance move forward. So expect more refactors to come.

Portfolio 0.9.15

After a long hiatus, a new release of Portfolio is out 📱🤓. This new release comes with important bug fixes, small-detail additions and a few visual improvements.

In terms of visuals, by popular demand, the most notable change is the use of regular icons for the files browser view. It should be easier now to quickly catch what each file is about. Thanks to @AngelTomkins for the initial implementation, @Exalm for helping with the reviews, and to the GNOME design team for such lovely new icons.

Another addition is support for system-wide style management. This is specially useful now that desktops like GNOME provide quick toggle buttons to switch between dark and light modes. Thanks to @pabloyoyoista for the initial implementation.

One small-detail change to the properties view is the addition of file permissions.  Plus, the properties view was broken down into three different sections to reduce the visual load, and labels can now be selected which is useful for copying locations or ellipsized values.

Moving on to bug fixes, two important changes landed. The first one solves an issue which prevented opening files with special characters 🤦. Thanks to @jwaataja for detecting and fixing this issue. The second one solves an issue with Portfolio not properly detecting mount points under some specific conditions. Thanks to mo2mo for reaching out and sharing his system details, so I could figure this out.

Last but never least, many thanks to @carlosgonz0, @Vistaus, @rffontenelle, @AsciiWolf, and @eson57 for keeping translations up to date, and  to @rene-coty for the new French translation.

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.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.

Portfolio: manage files in your phone

On mobile phones with GNOME

Ever since I met @Kekun in Barcelona, during LAS 2019, I got intrigued by this wave of “running GNOME on phones”. It took several months until I could get my teeth into it though. Between my Sugar applications project, Flatseal, a new job and, mostly, due to how hard it is to get a proper Linux-capable phone in Paraguay, I had no time or choice really.

My first mobile-related project started in August, after many failed attempts to buy a proper Linux-capable phone, I decided that my only way forward was to get a refurbished Moto G4 Play, which has acceptable support thanks to PostmarketOS. The project goal was to provide more clarity on how far we are from a Flathub-powered GNOME community-driven OS for phones. The results were better than I expected, but still far from a daily driver. If you’re curious about this research you can find it here.

To my surprise, one of the biggest missing pieces was the file manager. I tried all the options that fell into my selection criteria, but none provided a good experience for me. The major issue I found is that the available options seem to land on a “designed for the desktop, but will fit in a small screen with a few tweaks to improve the UI” category.

Since then, I started to think about how would a simple file manager for phones would look like. By simple I mean two things. First, that it provides that ninety percent of things that people need to manage their files and, second, a UI/UX that is specifically crafted for phones and small touch screens.

A couple of weeks ago I finally got the weekend slots I needed to hack on these ideas.

Introducing Portfolio

A minimalist file manager for those who want to use Linux mobile devices.

That was the best description I could come up with, hah, it’s funny because it’s true. Portfolio is my first application that is one hundred percent designed for mobile devices. Supports the most simple, yet most common, tasks like browsing, opening, moving, copying, deleting and renaming files.

A whole weekend went into just getting the interaction model right, but I believe it paid off. The UI is clean. The relevant actions are always visible and just one tap away. The application assumes it’s running on a resource limited device and, therefore, sacrifices some speed for improved responsiveness. As seen above, it even provides an About “dialog” fit for small screens.

Of course, this application is far from perfect and, actually, it’s just a few days old. It urgently needs lazy loading, an explicit way to get out of selection mode, tests, tests, tests, among other things but, I believe getting the interaction model was the right priority for these limited weekend slots.

Portfolio is now available on Flathub. If you have a Linux-capable phone, please give it a try!

Last but not least, thanks to @eddsalkield and @bertob for their amazing early feedback.