Xfce 4.20 Pre1 Release and Wallpaper Contest for Xfce 4.20
Nov 01,2024
Xfce 4.20 Pre1 Released
Dear Xfce community, I am happy to announce the release of Xfce4.20 pre1.
Xfce 4.20 Pre1 is a platform pre-release, which gives early adopters the possibility to test the new release and to check for compatibility.
Further implications for the pre1 release:
- In order to increase stability, no new features will be added to Xfce core components until the final release.
- We will not add new strings either, in order to give translators the possibility to reach a complete translation for the final release.
A detailed overview on the major changes introduced in Xfce4.20 will be given for the final release, planned for December 15th.
Xfce4.20 pre1 includes all Xfce core components. The tarballs for building it can be found here:
Though, you might prefer to wait for distribution specific development packages.
Wallpaper Contest for Xfce 4.20
Like for Xfce 4.18 I would like to ask the Xfce community to contribute a few wallpapers. Everyone will have the opportunity to vote on them to elect the new default wallpaper for Xfce 4.20.
If you possess the required skills, your contribution would be greatly appreciated!
Like the old Xfce wallpapers, the new wallpaper should be a vector graphic with an unmodified Xfce mouse on it and some fancy shapes.
Note that the image must be all yours and needs to be licensed under CC BY-SA 4.0. If you do not specify a license in your post, then we will assume that you are licensing the image under the CC BY-SA 4.0.
The image should not mention the software (FOSS or proprietary) used to create the wallpaper in the metainfo.
The deadline for submissions is the 15th of November. Like that, we will have two weeks left for voting and integration of the new wallpaper into the Xfce pre2 release.
In order to participate, take a look at the Xfce wallpaper contest GitLab issue.
Please note that this year only the ❤️ emoji will be considered as an upvote, in order to simplify vote counting. You can upvote as many wallpapers as you like.
My journey to a new laptop enabled by Xfce donations
I have been contributing to Xfce since about 2013. Over the years, computers have come and gone, from netbooks to desktops to laptops. Since I moved to another country, I’ve been avoiding owning a desktop for practical reasons - the less bulky my belongings, the better. Before the move, I decided to sell my aging desktop (self-built) and even older laptop (a Dell Vostro - ah, fond memories of playing GTA V at 20 FPS) for peanuts and invest in a gaming laptop.Xfce 4.18 Pre2 Released
Dec 01,2022
Xfce 4.18 Pre2 Released
Dear Xfce community, I am happy to announce the release of Xfce4.18 pre2.
This platform pre-release consists of the Xfce core components and will be followed by the final Xfce4.18 release soon. We fixed some quirks which were found in Xfce4.18 pre1, did some further polishing and the result is now released as Xfce4.18 pre2.
Early adopters are invited to give it a try and to check for compatibility before the final release, which is planned for 15. December.
Xfce4.18 pre2 includes all Xfce core components. The tarballs for building it can be found here:
Though, you might prefer to wait for distribution specific development packages.
Wallpaper contest
It is a pleasure for me to present you the outcome of our Xfce4.18 wallpaper contest, which received numerous nice wallpaper submissions.
The winner wallpaper, which will be the new Xfce4.18 default wallpaper, was brought to you by Katerina Shkel:
The second and third place both go to Denis Kuzminok. As well these wallpapers will be shipped within Xfce:
You as well might be interested in the complete list of submissions !
Coming soon
A detailed sum up of all new features in Xfce4.18 is planned for the final release, so stay tuned!
Best regards,
The Xfce development team
GSoC’22 – [Part 2] User Profiles in Xfce-Terminal
User-Profiles in Xfce-Terminal
Note: This feature has not yet been merged. The UI/UX have been finalized but there are some internal implementations that are being reviewed.
The Task
- There has to exist at-least one profile.
- Terminal creates a "default" profile if no profiles are found on the system. Old configuration will be migrated to this profile.
- One of the profiles is set to be "Default", i.e each new tab or window is opened using this profile. So if one wishes to change profile on a particular tab/window then one can just do so by selecting the desired profile from the Profiles menu.
On the implementation
- Xfce4-terminal will now be using Xfconf as backend for storing and organizing settings.
- The TerminalPreferencesDialog, which was previously written using glade, has now been re-written in C as an attempt to make it easier to work on it.
- A new setting has been added that allows users to specify the orientation of the tabs of the preferences dialog. In the picture above I have set it to the "Left".
Work Left
- I am closely working with my Mentor Sergios to fix a synchronization bug: mismatch in background images when multiple windows are open.
GSoC 22 – The Closing Blog Post
In the summer of 2022, I participated in Google’s Summer of Code, contributing to the Thunar file manager at XFCE, with the help of my mentor Alexander Schwinn. It’s been about a month since my GSoC term was officially over, and after a hectic couple weeks, I’ve finally decided to sit down and write down the closing blog post.
New features in Thunar
I’ll start off by introducing the features that I worked on, and a rough idea of how the implementation for the same works. Of these, undo-redo and file counts for folders are already merged on master and have been released with Xfce 4.18. The tour probably does a much better job than I will here, so be sure to go through it as well!
Undo-redo
This is the big one. While adding support for undo and redo, one of the most crucial things for me was doing it in an elegant way that would make it easy to have multi-level undo and redo.
How we decided to do this was to maintain a global linked list, containing information about the last performed operation, including what type of an operation it was, what files were involved in it, etc. This allowed it to be as trivial as moving a few pointers around to keep track of the state of the system once an undo or a redo is performed. The actual undo/redo operation is simply executing either the inverse of the last performed operation, or executing the exact same operation that was last undone.
I’m of course glossing over a lot of the details that made this a fair bit harder than we had initially anticipated. Nonetheless, with some help from Alex, we were able to ship this in time for the 4.18 release! :raised_hands:
File counts for folders
Adding file counts for features was just a little addition to help better utilize the ‘size’ column for folders, which was essentially wasted space earlier.
It was essential to be asynchronous with its implementation, which turned out to be a bit trickier than I had initially expected. It mostly boiled down to a line of conversions between file abstractions that I had taken for granted would have a low overhead (spoiler alert: they did not have a low overhead).
Gallery view
I was less than confident when first approaching Gallery view, since I thought I’d have to create an entire view from scratch. Luckily, that really wasn’t necessary. I was able to make a new view based off the same abstract view class that the existing icon view used. This is probably better for multiple reasons, since building on existing things makes for much simpler design for the new additions, and easier code review as well.
While I initially had envisioned a masonry image gallery, like the kind you would see on sites such as Pinterest, the abstract icon view lent itself much better to a square icon based gallery, similar to what most Android phone galleries have by default these days.
The gallery view PR is not yet merged into master, needing a few minor fixes on the dialog tooltips (which I’ve sadly been a bit too busy to work on yet), before it’s completely ready.
Not all smooth sailing
While I had initially hoped to complete what I had mapped out in my GSoC proposal in my summer vacations itself, that didn’t work out as intended. Once my semester at college started, I started struggling a bit to balance my academics and my GSoC commitments, but I was steadily making progress.
GSoC being flexible with its contributor timelines this year was an absolute life-saver, since I had to extend my deadline multiple times in order to hit the milestones on my proposal.
The lowest point was when in the midst of all this, some personal family issues cropped up and I essentially went incommunicado for almost a week. This would’ve been enough to fail my proposal in some organizations, but Alex still gave me a chance to make up on lost time when I was back, and for that I’m incredibly grateful. I was able to capitalize on this opportunity and get plenty of work done, though it was really quite hard (and probably not very good for my health long term :sweat_smile:).
Advice for others
I recently received an email from someone who was looking to contribute to XFCE in this year’s GSoC, and wanted some advice. I’ll relay part of what I wrote back over here:
I’d say the most important thing is to dive into it while still knowing that you don’t know anything :P
Try at a problem with your intuition for what might work. If you get stuck, push for another 15-20 mins and note down what you try. In this time you should be consulting documentation, StackOverflow, Github issues etc.
If you still aren’t able to figure it out, send a message on the XFCE IRC/Matrix channel, and be descriptive about what you tried, why you think it should work, and why you think it might not have worked. The mentors are incredibly helpful, and you’ll often get an answer that will deepen your understanding of the system and coding in general.
In addition, I’d also like to stress that communication is key!. Your mentors are there to help you, and they want nothing more than a successful and productive summer for the both of you. Raising issues that you’re facing as early as you can allows the both of you to think about and discuss how to tackle them.
Acknowledgements
I’m incredibly grateful to my mentor Alexander Schwinn, who is one of the most helpful people I’ve had the pleasure of working with. He’s been incredibly kind and polite, more than one could reasonably expect out of anyone given the circumstances.
I’m also very thankful for all the help I’ve received from the dedicated XFCE community, including Sergios Kefalidis, Yonghwa Hong, Gaël Bonithon, and many others.
Finally, I’d like to thank Google Summer of Code for the wonderful opportunity, which has definitely been a fantastic hands-on learning experience for me.
GSoC’22 – File Highlighting in Thunar
About the feature
- The aim of this feature is to enable the user to highlight files/folders across the various different views.
- The feature can be toggled on/off through the View Menu.
- The highlight color can be selected by navigating to the Highlight tab in the properties dialog of the respective file. The properties dialog can be brought about by selecting the Properties option under the Context Menu (Right click on the desired file/folder to show the context-menu)
Requirement: GVFS (Gnome Virtual File System)
Implementation
- The biggest challenge was figuring out how to paint the highlights on the various different views.
- The solution was to use a GtkCellLayoutDataFunc that is called on each item of the view. This way we can set the specific background color in the CellRenderer for each of the different items on view.
- Another challenge that came up was implementing the rounded corners.
- For this, modifications were made to the IconRenderer & a new custom TextRenderer was introduced. The trick was to use cairo to clip the backgrounds & paint the specific color.
This feature is possible with the support by Thunar's lead developers - Alexander Schwinn (alexxcons), Sergios - Anestis Kefalidis (SKefalidis) and Yongha Hwang (MShrimp4).
GSoC 22 – The First Blog Post
I’m really looking forward to this summer, since my project proposal for this year’s Google Summer of Code has been selected! I’ll be working on adding features to Thunar file manager, an XFCE application, with the help of my mentor Alexander Schwinn.
My history with XFCE
I’ve been big on open-source ever since my school days, and actually ran Xubuntu (an Ubuntu distribution with XFCE as its desktop environment) on my daily driver, an old netbook back in eleventh grade. It was too slow of a device to run GNOME, so I absolutely had to use a lighter-weight desktop environment, and compared to alternatives like LXDE which I didn’t like the aesthetics of, and pantheon (the default DE for elementaryOS) which still felt lacking in terms of performance, XFCE was the perfect balance of form and functionality.
Since then, I’ve done some distro-hopping before settling on my current setup, hand-rolled with awesome window manager and no DE. While I generally prefer to use the command-line, Thunar has been by GUI file manager of choice ever since I started using this setup a little over 2 years ago. It’s fast, light-weight, and gets the job done without getting in your way, which is exactly what I need.
Planned features
Thunar does however lack a few features that would be really handy to have, which is exactly what I’ll be working on.
Undo-redo
Adding undo and redo is an absolute no-brainer for me, and would probably be the single biggest thing I think Thunar is currently missing. If you’re anything like me, you’ve often selected the wrong file to move into another directory, and you have to manually undo it and move the correct file once you realize your mistake. Implementing this would do away with such frustrating tedium in the case of minor mistakes.
File counts for folders
Currently, the list view in Thunar has a ‘size’ column which shows the size of the corresponding file in the listing. However, this column is blank for folders (or directories). As such, it’s essentially wasted space for directories, but it could be put to good use showing the count of the files in the folder instead.
Picture-specific maximized thumbnail view
Managing pictures is primarily based on the content of the picture itself, rather than metadata like the name, date etc. So it would be very convenient to have a specific view optimized for folders with a large number of pictures, where the thumbnails take up as much space on the screen as possible. Think Pinterest, Google images etc.
If somehow I complete the work enlisted in my proposal ahead of time, I plan on looking at some of the file system synchronisation bugs that some Thunar users have reported.
Conclusion
I’m glad to have the opportunity to be able to work on open-source tools I myself use everyday, and feel really lucky to have the support of Google to be able to work on this over this summer. I’m really grateful for the help I’ve gotten along the way to getting my proposal accepted from Sergios Kefalidis, Alexander Schwinn, and other members of the XFCE community.
I’d like to congratulate my fellow XFCE GSoC contributors Yogesh Kaushik and Amrit Borah as well (who coincidentally are also from different IIITs :grin:).
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:
FOSS Roundup #7 – M1, Gaming, Docs, and More!
This week's roundup features the first alpha release of Asahi Linux, Microsoft looking to bring more games to the Steam Deck, and more!
The post FOSS Roundup #7 – M1, Gaming, Docs, and More! appeared first on Sean Davis.