FOSS Roundup #6 – Where have all the good bugs gone?
This week's roundup features another Linux vulnerability, Xfce's acceptance into the Google Summer of Code program, and spring cleaning!
The post FOSS Roundup #6 – Where have all the good bugs gone? appeared first on Sean Davis.
FOSS Roundup #5 – Time to Test (Ubuntu Flavors)
This week's roundup features the Xubuntu 22.04 wallpaper contest, the Ubuntu Testing Week until March 10, and Linux Mint switching to Blueman.
The post FOSS Roundup #5 – Time to Test (Ubuntu Flavors) appeared first on Sean Davis.
xfce4-terminal 0.9.2 development release
xfce4-terminal 0.9.2 development release
A new xfce4-terminal development release is here, and this time it is special. This version serves also as the release candidate for xfce4-terminal 1.0.0. If you want to help keep xfce4-terminal bug-free, this is the time to test and report any bugs you find!
Changes
For this release I focused on fixing regressions and minor annoyances, so I have no fancy new features to write about in this post. Most improvements are related to accelerator-handling and most fixes related to UI/UX regressions (or accidental changes) that were introduced in the transition to XfceGtkActionEntry. You can see the full list of changes in our wiki.
I want to thank Gael and Theo for bringing a lot of these issues to my attention.
Future plans
If no major bugs are discovered, I will release xfce4-terminal 1.0.0 in a couple of weeks. After that I will focus on my long list of Thunar issues.
FOSS Roundup #4 – The Steamy Update
This week's roundup features the release of the Steam Deck, an immutable Xfce distribution, the Xubuntu 22.04 wallpaper contest, and more!
The post FOSS Roundup #4 – The Steamy Update appeared first on Sean Davis.
A shortcuts editor for Xfce and a couple of other things
A shortcuts editor for Xfce and a couple of other things
Welcome to another Xfce development update! In this one you will learn about the new Xfce Shortcuts Editor and a couple of upcoming Thunar features.
Shortcuts Editor
As you may know, I'm the maintainer of xfce4-terminal and a developer for Thunar. It just so happens that both of these programs have a ton of shortcuts. Until now, there was no GUI for changing shortcuts. Users had to manually edit the `accels.scm` file which is doable yet cumbersome.
Additionally xfce4-terminal, being a terminal emulator, has the problem of its shorcuts colliding with the shorcuts of terminal applications, rendering them unusable. To fix that issue users needed to once again dive into the `accels.scm` file and change the default shortcuts manually.
That is why I created a new widget called XfceShortcutsEditor in libxfce4ui. Applications that use XfceGtkActionEntries for their accelerators can easily integrate that editor in their UI and enjoy the benefits without any additional complexity.
Thunar improvements
As far as Thunar specific improvements go, I'm happy to announce that the next version of Thunar will have a customizable Statusbar. By right-clicking, users will be able to hide/show information that they (don't) need.
Additionally the folder properties dialog now displays the type of contents of the folder (i.e. the number of files and folders insdie the folder).
xfce4-terminal 0.9.0 development release
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
A couple of big features for Thunar
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.
Shiny new things in Thunar thanks to GSoC 2021
GSoC 2021 is over now and I am happy to tell you that both students working on thunar did an excellent job. Alot of nice stuff has been added thanks to them !
In order to allow you to discover all these new features, Thunar 4.17.5 was just released. (Note that this is a development release. It still might have some rough edges)
For details about the new features check the summaries provided by Sergios and Yongha:
Besides these, here as well some more new features added during GSoC for which I thought they would be worth to mention:
- Bookmarks got moved into a separate ‘Bookmarks Menu’ and a ‘create bookmark’ option was added (MR !109 and MR !71)
- A new menu item “Set Default Application” was added to the “Open with” submenu (MR !79)
- A new section ‘Default Application’ was added to the ‘thunar-chooser-dialog’ (MR !81)
On top there are still various open merge requests with partial finished features, most of them from GSoC students for which I did not find time so far. So expect more new stuff to arrive soon !
You as well might want to keep an eye on xfce4-terminal, which received alot of activity recently, since it is now maintained by Sergios Kefalidis.
If you find a bug on any of these new features, please make use of the xfce bugtracker.
Happy testing !
GSOC contribution summary
Secure .desktop handling (Thunar !117, !121, Exo !44, Libxfce4util !16)
.desktop file is a special kind of script that is optimized for launching application. It can use custom icon and name to represent application. However, this feature can be abused as it can disguise it as any type of file. To prevent this security breach, I introduced a “trused” flag to mark whether this .desktop file is safe to execute. By utilizing GVFS-metadata, there is no way that the flag of any downloaded file. A user will be warned about the safety hazard until the user sets “trusted” flag up.
File copy improvements
Implement queued transfer management (Thunar !116)
Sequential transfer, which is introduced in 4.16, caused freuqent freeze and/or crash. Now sequential transfer is handled by a queue, and now this feature works without a problem.
Keep modified time for the file copied from foreign location (Thunar !127)
When copying from remote locations, all the metadata gets lost. The original plan was to use g_file_build_attribute_list_for_copy()
to overwrite metadata of the copied file, but for now, it only copies modified time of the original file.
Use “copy name” when copying from gvfs-google backend (Thunar !121)
When copying a file from gvfs-google (google-drive:// protocol), the filename was replaced with unreadable number-alphabet combination. Now the filename is maintained without a problem.
Use intermediate file to copy files (!130)
When a file transfer gets interrupted for any reason, the file that is not fully transferred is left on the destination. Since that the single file on the destination is guaranteed to be corrupted, a user cannot just retry copying the same file on the destination and skip duplicate files. To solve this problem, Thunar will try to delete the incomplete file if it can. In case the destination is not accessible at the time, there is a safer option that first copies a file with a different name than the original and then change the name of the copied file to its original.
Fix invalid filenames when copying to FAT-like filesystem (!137, !138)
FAT and NTFS have a stricter naming rule than EXT filesystem. Also, Windows has a reserved word for filename. For this reason, when copying a file to FAT-like system, Thunar will automatically rename to avoid illegal names before copy.
Check if a target directory is a subdirectory of the moved folder (!139)
Now Thunar will check if a target directory is a subdirectory of the moved folder before trying to copy files.
Implement “safe copy” (!144)
New option “safe copy” will compare checksum of the original and the copy if enabled. This will largely increase copy time, but it would be useful if the source location or the destination is unreliable.
Miscellaneous
For directories, leave size column blank (Thunar !83)
For some reason, Thunar has shown a block size of the filesystem as the “file size” of the directory. This value might be confusing to a user, so now the file size is only shown for regular files.
On “Select by Pattern” add option for case sensitivity (Thunar !89, !98)
“Select by Pattern” feature was not case sensitive, so now case insensitive select is introduced and set as a default.
Improve computer://
panel (Thunar !92)
Detail view for computer://
was incomplete since it cannot be handled like a normal directory. Now “size” column shows disk usage info, and “type” column shows a device type.
Deprecate ExoBinding (Exo !42, ThunarMediaTagsPlugin !4, Xfce4PlacesPlugin !7, Thunar !113, ThunarVolman !8)
Since ExoBinding
in Exo can be replaced with GBinding
in GLib, ExoBinding
is deprecated and the usage within XFCE project is replaced with GBinding
.
Preserve metadata when editing desktop item (Exo !43)
When editing a desktop item with exo-desktop-item-edit, all the metadata got lost since the modified file was actually a new file that replaces older one. This problem is fixed and the file modified maintains its info.
A journey comes to an end
A journey comes to an endAs 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.
- 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'.
- 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.
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