Xfce Wiki

Sub domains
 

Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revisionPrevious revision
Next revision
Previous revision
projects:gsoc_2022:start [2024/01/23 08:31] – grgdrg alexxconsprojects:gsoc_2022:start [2024/01/24 14:50] (current) alexxcons
Line 54: Line 54:
  
 ---- ----
 +
 +
 ===== thunar ===== ===== thunar =====
  
Line 140: Line 142:
     * A possible solution would be to create a Stack where information about file operations is kept. To undo Thunar would get the top element of the Stack and execute the reverse operation.      * A possible solution would be to create a Stack where information about file operations is kept. To undo Thunar would get the top element of the Stack and execute the reverse operation. 
     * For example, if the top element of the Stack says that a FileA was moved from DirA to DirB Thunar would need to move FileA from DirB to DirA to undo.     * For example, if the top element of the Stack says that a FileA was moved from DirA to DirB Thunar would need to move FileA from DirB to DirA to undo.
-    * +
   * [[https://gitlab.xfce.org/xfce/thunar/-/issues/41|Add the option to expand folders in "Details View"]]   * [[https://gitlab.xfce.org/xfce/thunar/-/issues/41|Add the option to expand folders in "Details View"]]
     * **[Difficulty: challenging] [Required Skills: C, Gtk] [Possible Mentors: Sergios - Anestis Kefalidis, Alexander Schwinn]**     * **[Difficulty: challenging] [Required Skills: C, Gtk] [Possible Mentors: Sergios - Anestis Kefalidis, Alexander Schwinn]**
Line 151: Line 153:
     * A new view in order to maximize the space taken by thumbnails, not showing the file names anymore     * A new view in order to maximize the space taken by thumbnails, not showing the file names anymore
     * Most likely would require work on the [[https://gitlab.xfce.org/xfce/exo/-/blob/master/exo/exo-icon-view.c|exo-icon-view]].     * Most likely would require work on the [[https://gitlab.xfce.org/xfce/exo/-/blob/master/exo/exo-icon-view.c|exo-icon-view]].
 +
 +  * [[https://gitlab.xfce.org/xfce/thunar/-/issues/547|Offer Thunar specific file selection dialog via DBus Service "org.freedesktop.portal.FileChooser"]]
 +    * **[Difficulty: challenging] [Required Skills: C, Gtk] [Possible Mentors: Alexander Schwinn]**
 +    * **[Estimate time: 175h (Could as well be part of a 350h project)]**
 +    * So that all applications which want to pick a file will see the thunar dialog, instead of the foreign GtkFileChooserDialog
 +    * Possible required to implement a service ''xdg-desktop-portal-xfce'', according to [[https://github.com/flatpak/xdg-desktop-portal-gtk/|xdg-desktop-portal-gtk]] (to be checked)
 +    * Creation of the related DBUS Service in thunar
 +    * Dialog to pick specific file(s) and hit "done"/"abort" using the current thunar widgets.
 +
 +  * [[https://gitlab.xfce.org/xfce/thunar/-/issues?label_name%5B%5D=5.+Out+of+Sync|Thunar Synchronization Issues]]
 +    * **[Difficulty: challenging] [Required Skills: C, Gtk] [Possible Mentors: Alexander Schwinn]**
 +    * **[Estimate time: 175h (Could as well be part of a 350h project)]**
 +    * The way thunar monitors files and folders is not working that great. There are [[https://gitlab.xfce.org/xfce/thunar/-/issues?label_name%5B%5D=5.+Out+of+Sync|various issues]] about displayed content which is not in sync with the content on the disk.
 +    * The idea is to either fix the current way thunar does file/folder monitoring, or to re-write the whole file/folder monitoring mechanics in order to fix all the issues with it.   
 +
 +----
 +[[|Back To Top]]
 +
 +===== xfce4-terminal =====
 +
 +Xfce Terminal is a lightweight and easy-to-use terminal emulator application with many advanced features including drop-down, tabs, unlimited scrolling, full colors, fonts, transparent backgrounds, and more. Work is currently being done to update its legacy parts and add missing features.
 +
 +  * Rewrite the Preferences Dialog
 +    * **[Difficulty: easy] [Required Skills: C, Gtk] [Possible Mentors: Sergios - Anestis Kefalidis]**
 +    * **[Estimate time: 15h (Could be part of a 175h/350h project)]**
 +    * The current xfce4-terminal Preferences Dialog was built using Glade. Glade is, in general, unpleasant to work with which has led a lot of other Xfce apps to build their UI through code (see Thunar's thunar-preferences-dialog.c).
 +    * Additionally, this makes it harder to embed the newly created XfceShortcutsEditor (part of libxfce4ui) in the Preferences Dialog.
 +    * The goal of this project is to rewrite the Preferences Dialog manually and embed the XfceShortcutsEditor in the PreferencesDialog.
 +    * There is no open issue for this project but you are free to open one and discuss it there.
 +    * Note that most likely this issue alone will not be sufficient for a GSoC Project, you will need to bundle multiple issues.
 +
 +  * [[https://gitlab.xfce.org/apps/xfce4-terminal/-/issues/75|Support tab restoration outside of Xfce session]]
 +    * **[Difficulty: easy] [Required Skills: C, Gtk] [Possible Mentors: Sergios - Anestis Kefalidis]**
 +    * **[Estimate time: 25h (Could be part of a 175h/350h project)]**
 +    * xfce4-terminal supports xfce-session which allows the user to save a session and restore it at will which is very useful for Xfce users. 
 +    * On the other hand, xfce4-terminal is often used in other Desktop Environments where xfce-session is not available.
 +    * It would be very useful to have xfce4-terminal support session restoration on its own, in parallel to xfce-session.
 +    * There is already a [[https://gitlab.xfce.org/apps/xfce4-terminal/-/merge_requests/30|patch]] that lays the groundwork for this but it needs to be expanded and completed. 
 +    * Note that most likely this issue alone will not be sufficient for a GSoC project, you will need to bundle multiple issues.
 +
 +  * [[https://gitlab.xfce.org/apps/xfce4-terminal/-/issues/151|Add user profiles]]
 +    * **[Difficulty: medium] [Required Skills: C, Gtk] [Possible Mentors: Sergios - Anestis Kefalidis]**
 +    * **[Estimate time: 80h (Could be part of a 175h/350h project)]**
 +    * **[Estimate time: 120h if migrating to xfconf is required (Could be part of a 175h/350h project)]**
 +    * Currently xfce4-terminal doesn't have a way to quickly change between different sets of preferences.
 +    * Many other terminal emulators use the notion of "Profiles" which are essentially a collection of preferences that the user can save and load at will.
 +    * The goal of this project is to implement the aforementioned functionality in xfce4-terminal and in addition give the option to assign accelerators (i.e. shortcuts) to switch between profiles easily.
 +    * It might be advantageous for this project to first migrate the preferences to xfconf, there is already an [[https://gitlab.xfce.org/apps/xfce4-terminal/-/issues/134|issue]] open for investigating the pros and cons of such a change.
 +
 +----
 +[[|Back To Top]]
 +
 +===== xfce4-screenshooter =====
 +
 +Screenshooter is a simple and flexible tool to take screenshots. It supports fullscreen, active window and select region modes. Once a screenshot is taken it can be saved, opened with an application, stored in the clipboard or uploaded to Imgur. Screenshooter can be used via its friendly dialogs, command line or panel plugin.
 +
 +  * [[https://gitlab.xfce.org/apps/xfce4-screenshooter/-/issues/48|Add support to custom actions]]
 +    * **[Difficulty: medium] [Required Skills: C, Gtk] [Possible Mentors: Andre Miranda]**
 +    * **[Estimate time: 80h (Could be part of a 175h/350h project)]**
 +    * Currently screenshooter only supports 4 actions, oftentimes users need to craft scripts that store the screenshot somewhere (i.e. /tmp) and do something else with it.
 +    * With custom actions it should be more intuitive on how to extend screenshooter to fulfill several user cases without having to implement all or none (my current take).
 +    * We also would like to decouple screenshooter from Imgur, it is a non FOSS service with privacy implications many users disagree.
 +    * With custom actions it should be trivial to add support to any file hosting service.
 +
 +----
 +
 +===== xfce4-panel =====
 +
 +Application launchers, window buttons, applications menu, workspace switcher, and more.
 +
 +  * Merge datetime with clock plugin
 +    * **[Difficulty: easy] [Required Skills: C, Gtk] [Possible Mentors: Andre Miranda]**
 +    * **[Estimate time: 40h (Could be part of a 175h/350h project)]**
 +    * The objective here is to eliminate a plugin which is duplicate and barely maintained
 +    * datetime's advantages over clock are:
 +      * it is easier to set font family/style/size without writing pango markup (resembles html)
 +      * supports time and date each on its own line
 +      * has many more formats out of the box (users hardly need to write a custom format)
 +    * The scope of this task is add those features to clock so datetime users can more easily migrate to it
 +
 +  * Experimental port of xfce4-panel to wayland/wlroots
 +    * **[Difficulty: challenging] [Required Skills: C, Gtk] [Possible Mentors: Alexander Schwinn]**
 +    * **[Estimate time: 175h (Could be part of a 350h project)]**
 +    * **[Estimate time: 350h (If the GSoC project includes porting of most panel plugins)]**
 +    * The aim: Get xfce4-panel to run at sway or wayfire
 +    * Minimum required changes:
 +      * Make use of [[https://github.com/wmww/gtk-layer-shell|gtk-layer-shell]] for simple window placement. For now, ignore advanced window placement features
 +      * Comment/avoid all X11 calls which lead to crashes in Wayland
 +      * Find a replacement for GtkSocket/GtkPlug to load plugins. Possibly makes sense to use statusnotifiers/indicators. Or directly dlopen, as wapanel does. Port at least one plugin to the new tech to show that it works.  
 +    * The code of [[https://github.com/Firstbober/wapanel|wapanel]] probably can help as a reference.
 +    * To be checked if X11 backward compatibility can be kept, or if it rather should be dropped.
 +    * Some more info is available on the [[https://wiki.xfce.org/releng/wayland_roadmap#core_components|wayland roadmap]]
 +    * You might want to as well port planes-plugin as part of your GSoC project (full 350h GSoC project). It is not clear yet if that will be possible for all plugins.
 +
 +
 +
 +----
 +===== all components =====
 +
 +Things which involve various xfce components at the same time
 +
 +  * Optional support for GtkHeaderBar (CSD)
 +    * **[Difficulty: easy] [Required Skills: C, Gtk] [Possible Mentors: Alexander Schwinn, Andre Miranda]**
 +    * **[Estimate time: 60h (Could be part of a 175h/350h project)]**
 +    * Motivation:
 +      * For whoever likes to have buttons/widgets in the header bar.
 +      * To get more consistant window decorations if gnome applications are used.
 +      * If Xfce applications are used in a Gnome Shell, it would be nice to use the same window decoration style than gnome for all windows.
 +    * The plan is to use a central setting to toggle usage of GtkHeaderBar on/off for all xfce applications.  
 +    * Related issues and merge requests:
 +      * https://gitlab.xfce.org/xfce/libxfce4ui/-/merge_requests/47
 +      * https://gitlab.xfce.org/apps/xfce4-taskmanager/-/merge_requests/27
 +      * https://gitlab.xfce.org/apps/xfce4-taskmanager/-/merge_requests/28
 +
 +----
 +
 +===== Frequently Asked Questions =====
 +
 +=== What is the recommended format for the GSoC proposal ? ===
 +We do not force any specifc format. Here is what you have to look for:
 +  * Make sure you follow the [[https://google.github.io/gsocguides/student/writing-a-proposal|official basics]]
 +  * It can be beneficial to define an alternative target (In case some other participant as well picked your preferred target)
 +  * Make sure to define some stretch targets, in case you finish early
 +
 +=== Where can I start ? ===
 +After you have read the [[https://docs.xfce.org/contribute/dev/start|Xfce Development Information]], and specially the [[https://andreldm.com/2018/12/03/xfce-contributor-guide.html|The Ultimate Contributor's Guide to Xfce]], you can pick easy issues from the above list, or watch for issues which are labeled 'Newcomers': 
 + 
 +  * [[https://gitlab.xfce.org/xfce/thunar/-/issues?label_name[]=Newcomers|thunar newcomer issues]]
 +  * [[https://gitlab.xfce.org/apps/xfce4-terminal/-/issues?label_name%5B%5D=Newcomers|xfce4-terminal newcomer issues]]
 +
 +----
 +
 +[[|Back To Top]]
 +
 +==== GSoC Participants Blogs ====
 +
 +  * to be added
 +
 +==== Previous Years ====
 +
 +  * [[projects:GSoC_2021:start|GSoC 2021]]
 +
 +----
 +[[|Back to Top]]
 +
 +[[https://docs.xfce.org/contribute/start|Back to main Xfce Contribute page]]