Settings GUI
Welcome back! It's time to talk about hidden preferences.
The problem
It's a sunny day and you boot up your PC, which uses Xfce, ready to do some file-organizing. You open Thunar and suddenly you realise something. All this time you would have prefered sorting to be case-sensitive. You open the Preferences Dialog but alas, there is no relevant setting. You are left disappointed, hoping that Thunar devs add this option in a future release. You might even create a feature request.
Little do you know, Thunar does have a preference to enable this functionality but it is hidden away. You can only find it in the wiki and even that is not a guarantee because we might forget about updating the wiki. Then you have to go and manually enable it in the Settings Editor or using xfconf-query.
Thunar is not the only Xfce application that has hidden settings, Terminal is another prominent application that has preferences that don't showup in its preferences dialog.
Settings Editor à la Shortcuts Editor
If you have been following the development of Xfce you probably know that I created a Shortcuts Editor widget that can be easily integrated in Xfce apps. Presently, Thunar, Mousepad and Terminal use that widget to give users an easy way of editing shortcuts.
I've been working on a similar widget for Settings based on the Xfce Settings Editor. The end goal is to have a simplified version of that settings editor that can be easily integrated in Xfce Apps that use xfconf. That will allow us to eliminate hidden preferences (or at least, greatly reduce them).
Searching in the Xfce Settings Editor
The other big feature that I've been working on is Search/Filtering for the existing Xfce Settings Editor. Simon had started working on a patch for this but never finished it, so I continued where he left off. I am not planning to include this functionality in the separate widget that was described previously.
xfce4-terminal 1.0.0 stable release
After 15 months a new stable release of Xfce Terminal is out full of improvements for everybody to enjoy!
A new maintainer
From 2016 until 2020, Terminal was in the capable hands of Igor Zakharov. It became unmaintained for a few months in 2021 until I took up its development in September. This is Terminal's first stable release with me as its maintainer, and I hope you will find it worthy of the quality standards set by my predecessors and the Xfce desktop environment as a whole.
A new versioning scheme
After asking around the Xfce community about Terminal's versioning scheme and looking into its history, I decided to adopt Thunar's old versioning. That means that the next cycle of development releases will be 1.1.x, and the next major stable release will be 1.2.0. That will continue until we reach 2.0.0 or some major change happens (for example, porting to GTK 4).
Improvements
For anyone who hasn't kept up with Terminal's development here are the major improvements:
- The `Scrolling on ouput` preference has been improved and will now be temporarily disabled if you scroll up.
- Overlay scrollbars are now supported.
- You can now send signals to the foreground process through the UI.
- The '--tab' and '--window' command line arguments have been reworked to be more intuitive.
- For those who use background images, 'Fill' is a new style option.
- The 'Unsafe Paste' dialog has been significantly revamped and now also gives you an option to temporarily disable it.
- You can now change the behavior of right click.
- Accelerators that contain the 'Tab' key can now be changed at runtime.
- A new Shortcuts Editor was created for Xfce applications, and Xfce Terminal is one of the first apps to support it (requires libxfce4ui 4.17.2 or greater).
- XfceTitledDialog is used where possible for better synergy with the rest of your Xfce desktop.
Under the hood
As far as under the hood improvements go, I spent most of my time rewriting the code that handles the accelerators and the creation of various menus. This removed most of the deprecated code in Xfce Terminal and fixed various small issues or inconsistencies that existed in the old code while also reducing the size of the codebase. At first, this transition introduced a bunch of regressions but thanks to testers in the community it looks like any shortcuts or UI issues created by it have been fixed. A nice bonus of this transition is being able to customize the goto-tab accelerators.
I did also spent some time fixing build warnings and removing code for ancient versions of VTE. All in all, I believe that the codebase is in a better place than it was one year ago and this will enable me to make 1.2.0 an even bigger release.
Future plans
Xfce Terminal
The future of Xfce Terminal is bright. Some of my goals for 1.2.0 are:
- Rewriting the Preferences Dialog to use XfceTitledDialog and integrate the Shortcuts Editor into it.
- Creating a new Settings Editor widget in libxfce4ui by reusing code from the exisitng Settings Editor and using that to eliminate hidden preferences.
- Documenting all public functions in Xfce Terminal.
- Introducing Profiles-like functionality which will close a bunch of open issues.
- Tab restoration outside of Xfce environments.
- Improved FreeBSD support.
Videos showcasing features and improvements in this release: