Xfce

Subdomains
 

xfce4-terminal 0.9.0 development release

  • October 16, 2021
  • Sergios - Anestis Kefalidis

  Welcome back! Since I became maintainer of xfce4-terminal I've worked on replacing deprecated parts of the codebase, closing old bugs and merging Merge Requests which have been sitting around for a while.

GtkActions

  The majority of my time was spent on dealing with the, now deprecated, GtkActions/GtkActionEntries and GtkUiManager which were used for creating the menubar, toolbar, right click context menu and for handling the shortcuts. All of that logic was moved to Xfce's own XfceGtkAction entries which are supported by the Xfce team. As a nice bonus, this transition slightly reduced the size of the codebase. Some deprecated parts remain, like the UI for changing encoding from the menubar but I've decided to transition slowly to make sure that things remain stable.

Sending signals

  The most exciting new feature is the ability to send signals to foreground processes. This is done either through the right click menu, or through the `Terminal` entry of the menubar. We have Cyrille Pontivieux to thank for the initial implementation of this, which I simplified and later transitioned to the new menu/shortcut system.

Release notes

  You can find the full release notes at the following link: Release Notes


Previous post

A couple of big features for Thunar

  • September 16, 2021
  • Sergios - Anestis Kefalidis

A couple of big features for Thunar

  Welcome to my first post-GSoC blogpost. Google Summer of Code might have ended but I'm continuing my daily work on Thunar and Xfce Terminal (more on that later). This blog-post is accompanied by a video that showcases what is written here.

Recursive Search

  I'm happy to inform you that my work on implementing a performant recursive-search in Thunar has been met with success. Users will be able to recursively search their filesystem (including remote folders and other special locations like Recent and Trash) and sort the results like they would in any folder. Presently, searching is depth limited but in the final version you will be able to select a custom depth or no depth at all, to make sure that this is useful even for older machines and at the same time makes use of the resources of faster systems. As this is a work in progress there are some bugs and crashes but it looks like the big issues have been solved at last. You can see for yourself at: link.

Shared Thumbnail Repositories

  Additionally, I wanted to give users the option to create shared thumbnail repositories from within Thunar. That's why I've been working on creating a script to create Shared Thumbnail Repositories using any thumbnailer that implements the D-Bus thumbnailing spec (tumbler being an example of such a thumbnailer). You will be able to use this script from Thunar through a custom action.

Xfce Terminal

  Lastly, I wanted to let you know that I've become the maintainer of xfce4-terminal. I've been working on resolving old issues, fixing bugs and merging MRs that have been sitting stagnant for months. I've got a lot of exciting things to show you on that front, so stay tuned.


Previous post

A journey comes to an end

  • August 16, 2021
  • Sergios - Anestis Kefalidis
A journey comes to an end

  As this year's Google Summer of Code comes to a close, so does this series of blogposts. Since this is my last post related to GSoC I have decided to summarize my contributions to Xfce and give you a glimpse of what I'll be working on in the foreseeable future. If you have read my previous posts, you can skip right to the end since you have already read most of the stuff that I'm going to write.

What has been done

  My project's goal was to improve various aspects of Thunar, dealing with several important deficiencies that existed. In the roughly two and a half months that my work lasted I made the following contributions:

  • Add zoom-level as a per-directory setting MR, giving users the ability to have the zoom-levels of their directories restored upon opening them.
  • Support for GTK-Recent MR, adding support for the `recent:///` location, and all that this entails.
  • GTK-Recent
  • Provide additional menu item for trashed files: "restore and open folder" MR, giving users the option to immediately open the location of files restored from the Trash folder.
  • Add a preference to restore tabs on startup MR, or as it is known in other programs a preference to 'restore the last session'.
  • Preference
  • Support shared thumbnail repositories MR, making Thunar one of the relatively few programs that support the #SHARED part of the freedesktop.org thumbnail spec. For more info about what this I've uploaded a video in a previous blogpost.
  • Search improvements for Thunar MR, which completely reworks Thunar's search functionality and makes Catfish easily accessible from Thunar.
  • Some bugfixes and minor additions.

 Additionally since I've started working on Thunar, in the beginning of this year's GSoC I've worked on improving the `Trash` location by adding a new `Date Deleted` column and making the `Empty` and `Restore` actions more accessible.
Trash

  I've also made minor improvements to the `Renamer` as well as dealing with various small bugs or missing features of Thunar.

The future

  Google Summer of Code might be ending, but my job isn't done. I will continue working on adding a decent recursive-search. A lot of progress has been made on that front, but the performance isn't quite there yet. Besides that, I want to give Thunar users an option to easily create Shared Thumbnail Repositories which is something that I will probably do through a new plugin.

Acknowledgements

 All in all, I've had a great deal of fun and I'm very much looking forward to continue working with the Xfce community on improving the Xfce Desktop Environment. I want to thank my mentor Alexander Schwinn (@alexxcons) for his continuous support and exceptional mentoring, as well as his calm and motivational attitude. I also want to thank Yousuf Philips (@philipz) for promoting all of our work, posts and videos and being a really friendly and kind person to talk to (which was especially great when I first came in contact with the Xfce community).


Link to all my Thunar Merge Requests: link
Previous post

Search improvements

  • August 2, 2021
  • Sergios - Anestis Kefalidis
Search improvements

 Welcome back. This is my last (or second to last) blog post for this year's Google Summer of Code with Xfce and Thunar. Unlike previous weeks this time I have only one new thing to talk to you about. Searching in Thunar.

 Most of you might have noticed that Thunar has had a significnt deficiency for a while. Thunar has been missing a decent solution for searching for files in the filesystem. Users could search for files in the selected directory, but even that was a pretty mediocre experience, because results weren't being filtered while searching. Fortunately there is another program under the Xfce umbrella that makes searching for files a breeze. That program is, of course, Catfish. Unfortunately this status quo requires users to juggle between Thunar and Catfish even when searching for simple things.

 In the past two weeks I've been working on two things. First, making Catfish easier to use through Thunar. Second improving Thunar's built-in search features to make routine and/or simple searches possible without leaving Thunar. The first improvement is pretty straightforward. A new button has been added that allows the user to open catfish with the specified search query from inside Thunar. As far as the improving the built-in search features goes, I've implemented a basic depth-limited recursive search in Thunar that is accessed from the location bar, which can now be used as both a location bar and a search bar. As the user types his/her search query the view is updated with the results. For convenience in addition to the current directory and its subdirectories, Thunar searches the GTK-Recent database for eligible entries.

 Instead of describing how all this works I would like to demonstrate state of things to you. Some small things are missing (like options for selecting whether the GTK-Recent database should be searched and a new `location` column that will be introduced), but the core functionality has been implemented and is close to being merged.


Link to all my Merge Requests: link
Previous post

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

Introduction

  • 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