Supporting shared thumbnail repositories and video update

  • July 11, 2021
  • Sergios - Anestis Kefalidis
Supporting shared thumbnail repositories and video update

 Greetings! After 84 yea.... 17 days I'm back with another blog-post. This time a shorter one, since most of my work has been on finishing the features that I talked about last week and implementing support for shared thumbnail repositories (as specified in freedesktop.org).

 Support for Shared thumbnail repositories: For 15 years the #SHARED part of the freedesktop.org thumbnail specification has been ignored by the vast majority of Linux file managers. At last, the time has come for Thunar to be one of the first, if not the first, file managers that support shared thumbnail repositories. 'What are shared thumbnail repositories' I hear you ask. Let me explain. Imagine that you have a large external hard drive that contains family photos (something that most, if not all of us have). Connecting it in a new PC or as a different user would normally lead to thumbnailing for all the files that are visible in your file manager. That process is both slow and wasting space. That is the problem that shared thumbnail repositories solve. Instead of creating and storing thumbnail in the default location of the PC filesystem, thumbnails are stored locally in the USB/HDD/CD. It is a niche but potentially extremely useful feature.

 I've linked a video that showcases the stuff that I've talked about in these blogposts, with the exception of shared thumbnail repositories. Even though the code is complete and it works as it should there has been a problem with Tumbler while refactoring. Specifically, it looks like Tumbler doesn't use libxfce4util, where I placed some shared code to avoid duplication. Hopefully next time I'll be able to show them to you.

Link to all my Merge Requests: link
Previous post

GTK-Recent and other improvements

  • June 23, 2021
  • Sergios - Anestis Kefalidis
Σέργιος - Ανέστης Κεφαλίδης Support for GTK-Recent and various improvements

 In the introductory blog-post I wrote that for the first month of my GSoC time I had planned to work on supporting the `recent:///` location and on adding some other requested features, most notably the option to save the zoom-level per directory. The time has come for you to take a closer look at what I've been working on.

  • Support for GTK-Recent: A way to easily access recently used files is a staple of contemporary file managers. For that purpose, GTK has a special location on its virtual filesystem called 'recent:///'. Until now users could access this location manually (by typing `recent:///` in the path bar) but because this location wasn't supported files appeared locked and there were a variety of other issues, which rendered it useless. The following MR solves these problems. Users will be able to use the `Recent` location like any other location that Thunar supports. In addition opening a file from Thunar adds it in the list of recently used files (previously files got added to the recently used files only if they were opened by an app that supports GTK-Recent), there is an option to remove files from `Recent` and a new sorting column called `Recency` has been added (only visible in the `Recent` folder).
  • Zoom-level as a per-directory setting: This is a feature that has already been merged, which means that you can try it by using the latest development release. Thunar has supported per-directory settings for quite some time. A significant omission was the ability to use different zoom-levels for different directories (e.g. a different zoom-level for a folder with family photos and a folder with work documents). If you've been waiting for that... rejoice :-)
  • Preference to restore tabs on restart: Lately I've been working on a feature that is pretty common in web browsers, the option to restore the tabs as they were before exiting the program. I've coded a rudimentary version that lacks support for things like the split-view. I'm hoping that in the next few days I'll complete my work on this feature.
  • Restore and show: This is a new option for restoring files from the Trash folder. The goal is to make it easier for users to use the restored files. The existing `restore` option removes the selected files from the Trash folder and places them back in their original locations. Unfortunately, if you don't remember (or check) the location of the now restored files you might have a hard time finding them. With this option the locations of the restored files will be opened as new tabs (I'm not quite sure if following the existing tabs/windows preference is the way to go, more on that later).

 Originally I had planned to accompany this post with a video showcasing these features and talking about some minor details. Unfortunately it looks like my video editing software doesn't support the format that I used to record my footage and it's getting pretty late over here, so I'll keep that for next week's update, stay tuned :^)

Link to all my Merge Requests: link
Previous post Next post


  • June 9, 2021
  • Sergios - Anestis Kefalidis
Σέργιος - Ανέστης Κεφαλίδης Introduction

 Hello and welcome to the first of a series of blog posts detailing my work in this year's Google Summer of Code (GSoC from now on). Most of you have probably found this page from one of Xfce's development channels, but for those of you who just happened to stumble upon it let me say a few quick words about Xfce. Xfce is a FOSS desktop environment for Unix-like systems. It has a dedicated community of developers and users and it is one of the most widely available DEs. It also happens to be the desktop environment that my/our department uses for its Linux systems.

 Allow me to introduce myself, which is also the main point of this blog post. I am Sergios - Anestis Kefalidis and I am a 3rd year undergraduate student at the department of Informatics and Telecommunications of the University of Athens. This is my second year in GSoC and my first time contributing to Xfce. I've made significant contributions to another high profile open source project, MuseScore with whom I also completed my first GSoC project as you might have guessed.

 This summer I will work on improving Thunar, Xfce's file manager. File managers are one of the most used system programs and the Xfce project considers Thunar one of its core components. A good file manager positively impacts the user experience and allows the user to achieve his/her file managing tasks intuitively and quickly. Thunar is a pretty decent file manager that is unfortunately missing some features that other widely used file managers support. I am aiming to bring the parts of Thunar that are lagging behind up to par with the rest of its rock-solid components. I've already made a significant amount of contributions in the previous months that improve various parts of Thunar, most notably the Trash folder. The time has come for even bigger improvements.

 In the first month of GSoC I have planned to work on 2 things. Support for the `Recent` location (as seen in Nautilus, Dolphin, Windows' File Explorer and others) and support for saving zoom levels as a per-directory setting. I've already started working on these 2 features and the early results are more than encouraging (you can see and test the latest implementations by visiting the Thunar gitlab). I'll talk more about these things in the following weeks.

 In the second month of GSoC I will work on improving Thunar's search functionality which is bare-bones and on implementing a missing part of freedesktop.org's thumbnail spec. More on both of those in the coming weeks.

 As an ending note, I want to congratulate my fellow GSoC students Yongha and Vishal and wish them good luck. I am looking forward to working with all of you on improving Xfce :^)

Link to all my Merge Requests: link
Next post