Xfce

Subdomains
 

GSoC’22 – [Part 3] Tree-View in Thunar

  • October 30, 2022
  • Amrit Borah

About the Feature

This feature aims to enable the user, when in list-view, to expand non-empty folders (as shown in the image above).

Additions & Behaviors,

  • An entry has been added to the preferences dialog under Display > View Settings to define the default behavior when a new tab/window with list-view is opened.
  • When a new tab/window is opened with the list-view as the active view, it will respect the above mentioned setting for the tree-view option and default to that.
  • This feature can be toggled on and off using the Enable Tree View entry under the View menu but this only affects the currently active tab/window.

 MR: https://gitlab.xfce.org/xfce/thunar/-/merge_requests/297 

Note: This feature hasn't yet been merged.

I am working with  Sergios Anestis Kefalidis (@SKefalidis), Yongha Hwang (@MShrimp4) and Alexander Schwinn (@alexxcons) to have this feature out swiftly 😁.

 


GSoC’22 – [Part 2] User Profiles in Xfce-Terminal

  • October 23, 2022
  • Amrit Borah

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.


MRhttps://gitlab.xfce.org/apps/xfce4-terminal/-/merge_requests/57

The Task

The aim of this feature is to enable users to create multiple different profiles. A profile is just a combination of preferences.

This allows the user to quickly switch between predefined profiles when the need arises.
As a use case scenario, let us consider the following example. One might want to have one particular tab transparent. So one can just create a new profile and change the transparency value on that profile. Then proceed to switch the profile by selecting the desired profile form the newly added "Profiles" menu.

Some considerations on the behavior of this feature,
  • 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 – File Highlighting in Thunar

  • August 13, 2022
  • Amrit Borah

 

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).



A Journey Begins (GSoC – 2022)

  • May 25, 2022
  • Amrit Borah

 

Introduction

Hello 👋😁 ! I am overjoyed to announce that my proposal to XFCE for GSoC - 2022 got selected !

Oh ! I forgot to introduce myself. My name is Amrit Borah and I am a somophore undergraduate student at the Indian Institute of Information Technology Guwahati (IIITG), India, pursuing Computer Science Engineering (CSE). I have only recently completed my 4th semester at college. 

Tasks in my proposal

So, getting back to the topic at hand - GSoC, I will be taking on 4 tasks for XFCE.

Namely,

  • Implementing option to enable expansion of folders in "Details View" in Thunar. (link)The desired outcome -


  • Adding user profiles to XFCE Terminal (link)
  • I'll also be rewriting the preference-dialog in plain C. Currently it has been written using glade.
  • Handling session restoration for XFCE Terminal (link)
  • Implementing colored highlights for files/folders in Thunar. (link) The desired outcome -


  • Further details on the topics can be found on the links corresponding to the respective tasks.

    What I'll be working with -

     I will be working with GTK - 3.0 toolkit and C source code for the aforementioned tasks.

    Linux, C & XFCE

    I first started using Linux back in 2018. Quite frankly, I hated the look of Windows 10. I wasn't really tech savvy enough to really know the fundamental differences between Windows & GNU/Linux. All I could differentiate them by, was their looks. I wanted to make my desktop look and feel like MacOS. I have always liked it's pleasant looks. The MacOS desktop is pure eye candy to me. But unfortunately I never had the pleasure to own a Apple Mac. So I installed Ubuntu. Followed youtube tutorials and customised gnome to look like mac os. Then as year went by I tried out other distros like Pop OS, Opensuse, etc. But the laptop I had then was the Y530 from Lenovo which had Nvidia GTX 1050. Gaming was an issue for me. So I switched back to Windows. 

    Finally in 2020, when I got my own personal laptop for college, I got a thinkpad E14 with the intention of daily driving Linux. I tried out a variety of flavors on that hardware. It had great keyboard ! On the quest for the perfect Distro, I stumbled upon numerous YouTube channels on Linux notably DistroTube. Following the guide for Arch installation I successfully installed arch and tasted my first WM i.e Awesome WM. Customising it wasn't too bad but since I had little knowledge of lua I found it's config too verbose and hard to hack into ( (whispering...) I wasn't tech savvy back then ) . It was only a matter of time before I started WM hopping much like my distro hoping earlier. Tried out bspwm & xmonad. I even tried learning Haskell, but only went as far as the basics (didn't venture into monads).

    But I think I finally settled down on Fedora. Gnome is/was my favourite DE but I always had one gripe i.e stuttering/lagging when switching into the overview view using intel igpus. It has now been solved ig with Gnome 42, at least it's really smooth for me now. So (I sincerely hope ! distro/wm hopping is fun but tedious 😭) Gnome it is then.

     Coming onto C now, my first introduction to C programming language was in my CS course. It was one of the topics in my 1st semester. I kinda like C to be honest. I am most familiar with it's syntax more so than other programming languages. But memory management is not fun 😭. Oh the seg faults 😇 ! Later we did have Java as a course. I have a good relation with Java. But the real meaty portions of the OS was taught in my Operating Systems course in 4th sem. I loved that course.Finally got a formal introduction to the depths of an operating system.

     I hadn't used XFCE on any of my main machines since they were quite capable hardware. It's only when I bought a raspberry pi 4, I got the taste of the XFCE DE. I am quite impressed with the performant and snappy look and feel of the DE. And Now I have the pleasure to work for XFCE 😄 !

    Final thoughts

    I have gone on for too long now. So keeping it short, I am really greatful for the opportunity that I am provided with and I thank Sergios - Anestis Kefalidis (my mentor & maintainer of XFCE Terminal), Alexander Schwinn (maintainer of Thunar & xfce org admin for gsoc) & Yongha Hwang (Xfce Developer) for the reviews and support.

    I would also like to congratulate my fellow GSoC contributors - Pratyaksh Gautam & Yogesh Kaushik - and wish them the best of luck !

    Really excited ! 😁

    My contributions to XFCE

    • For Thunar (link)
    • For XFCE Terminal (link)