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
projects:gsoc_2022:start [2024/01/24 14:46] alexxconsprojects:gsoc_2022:start [2024/01/24 14:50] (current) alexxcons
Line 1: Line 1:
 ~~NOTOC~~ ~~NOTOC~~
-====== Xfce - Google Summer of Code 2021 ======+====== Xfce - Google Summer of Code 2022 ======
  
   * **[[#Communication|Communication]]**   * **[[#Communication|Communication]]**
   * **[[#Project Ideas|Project Ideas]]**   * **[[#Project Ideas|Project Ideas]]**
-    * **[[#Create Sample/Skeleton plugins in all GOI supported languages|Create Sample/Skeleton plugins in all GOI supported languages]]** +    * **[[#thunar|thunar]]** 
-    * **[[#Improve Thunar|Improve Thunar]]** +    * **[[#xfce4-terminal|xfce4-terminal]]** 
-    * **[[#Wayland Support|Wayland Support]]** +    * **[[#xfce4-screenshooter|xfce4-screenshooter]]** 
-    * **[[#Create StatusNotifierItem Skeleton / example|Create StatusNotifierItem Skeleton / example]]** +    * **[[#xfce4-panel|xfce4-panel]]** 
-    * **[[#Add Calendar Capabilities to Clock|Add Calendar Capabilities to Clock]]**+    * **[[#all components|all components]]** 
 +  * **[[#Frequently Asked Questions|Frequently Asked Questions]]**
   * **[[#GSoC Participants Blogs|GSoC Participants Blogs]]**   * **[[#GSoC Participants Blogs|GSoC Participants Blogs]]**
  
Line 15: Line 16:
 [[https://www.xfce.org|Xfce]] is a lightweight desktop environment for UNIX-like operating systems. It aims to be fast and low on system resources, while still being visually appealing and user friendly. [[https://www.xfce.org|Xfce]] is a lightweight desktop environment for UNIX-like operating systems. It aims to be fast and low on system resources, while still being visually appealing and user friendly.
  
-[[https://summerofcode.withgoogle.com/|Google Summer of Code]] (GSoC) is a global program focused on bringing more student developers into open source software development. Students work with an open source organization on a 10 week programming project during their break from school or university. +[[https://summerofcode.withgoogle.com/|Google Summer of Code]] (GSoC) is a global program focused on bringing more developers into open source software development. Participants work with an open-source organization on a 175-hour or 350-hour programming project during the summer.
- +
-The Xfce project was accepted as [[https://summerofcode.withgoogle.com/organizations/6058796058673152/|an organization]] into GSoC 2021 is looking for students to boost the project and possibly recruit new contributors and maintainers.+
  
 If you are a developer who would like to get involved with the Xfce project, please see [[https://docs.xfce.org/contribute/dev/start|Xfce Development Information]] for additional resources. If you are a developer who would like to get involved with the Xfce project, please see [[https://docs.xfce.org/contribute/dev/start|Xfce Development Information]] for additional resources.
  
 +**Note**: Due to bot protection you need to request permission on the #xfce-dev IRC channel to be able to fork Xfce proejcts and to open merge requests.
  
 ---- ----
Line 26: Line 26:
 ====== Communication ====== ====== Communication ======
  
-Students should idle in <nowiki>IRC</nowiki> in order to stay connected with mentors, other GSoC students and xfce developers.+Participants should idle in <nowiki>IRC</nowiki> in order to stay connected with mentors, other GSoC participants and Xfce developers:
  
-  * [[https://matrix.to/#/#xfce-gsoc:libera.chat|our IRC channel]] to discuss Xfce GSoC related topics +  * The [[https://matrix.to/#/#xfce-gsoc:libera.chat|#xfce-gsoc IRC channel]] to discuss Xfce GSoC related topics 
-  * [[https://matrix.to/#/#xfce-dev:libera.chat|our IRC channel]] to follow general xfce development and to ask coding questions if the mentor is afk.+  * The [[https://matrix.to/#/#xfce-dev:libera.chat|#xfce-dev IRC channel]] to follow general Xfce development and to ask coding questions if the mentor is afk.
  
 If you use a [[https://en.wikipedia.org/wiki/Comparison_of_Internet_Relay_Chat_clients|native IRC client]], please make sure to run a [[https://en.wikipedia.org/wiki/BNC_(software)|bouncer(bnc)]] in order to receive offline messages, so that you will not miss anything. (There are some websites around which provide bouncer services free of charge for the for Libera network. Though you as well can host a bouncer yourself) If you use a [[https://en.wikipedia.org/wiki/Comparison_of_Internet_Relay_Chat_clients|native IRC client]], please make sure to run a [[https://en.wikipedia.org/wiki/BNC_(software)|bouncer(bnc)]] in order to receive offline messages, so that you will not miss anything. (There are some websites around which provide bouncer services free of charge for the for Libera network. Though you as well can host a bouncer yourself)
Line 35: Line 35:
 Alternatively you can use [[https://matrix.org/|Matrix]], which provides bridges to the #freenode <nowiki>IRC</nowiki> network and stores the communication. You can login via OpenID, and it makes a bouncer obsolete. To try that, just follow the links to the channels above. Alternatively you can use [[https://matrix.org/|Matrix]], which provides bridges to the #freenode <nowiki>IRC</nowiki> network and stores the communication. You can login via OpenID, and it makes a bouncer obsolete. To try that, just follow the links to the channels above.
  
-In order to coordinate projectsstudents should add their names to [[https://docs.google.com/spreadsheets/d/15HJNHG9RAkRLANffHvB9IqCg9oHz__oqHp2wBXU3kCQ/edit#gid=0|this google spreadsheet]] and check the sub-projects they are interested in. +If you are connecting via Matrixplease dont use Matrix specific things like 'reactions', 'reply', 'delete message' and 'edit message'While the former will just do nothing for native IRC users'edit' might generate an unexpected result. However uploading attachments via Matrix works fine for IRC clients
 ---- ----
 [[|Back To Top]] [[|Back To Top]]
Line 42: Line 41:
 ====== Project Ideas ====== ====== Project Ideas ======
  
-  * **[[#Create Sample/Skeleton plugins in all GOI supported languages|Create Sample/Skeleton plugins in all GOI supported languages]]** +Feel free to package a number of issues to a GSoC project, for which you think, you can solve them in the given timeframe (175h or 350h). Note that the issues you pick don't need to share the same mentor or be entirely from one project (some projects are pretty small and simple to understand).
-  * **[[#Improve Thunar|Improve Thunar]]** +
-  * **[[#Wayland Support|Wayland Support]]** +
-  * **[[#Improve Accessibility|Improve Accessibility]]** +
-  * **[[#Create StatusNotifierItem Skeleton / example]]** +
-  * **[[#Add Calendar Capabilities to Clock|Add Calendar Capabilities to Clock]]**+
  
-----+Note: Fixing some smaller issues already now (E.g. to show your programming skills) as well would be very welcome.
  
-===== Create Sample/Skeleton plugins in all GOI supported languages =====+Here are some suggestions to pick from, where mentors already confirmed to support them as part of a GSoC project. You can as well check our [[https://gitlab.xfce.org/|gitlab issue tracker]] for other issues from the projects listed below, though please make sure that there is a mentor supporting your choice!
  
-As we already have sample/skeleton panel plugin in [[https://gitlab.xfce.org/panel-plugins/xfce4-sample-plugin|C Language]] and good example of thunar plugin in [[https://gitlab.xfce.org/thunar-plugins/thunar-archive-plugin|C Language]], we can write the same for other languages which have support for Introspection, in that we create 2 plugins for each language,+  * **[[#thunar|thunar]]** 
 +  * **[[#xfce4-terminal|xfce4-terminal]]** 
 +  * **[[#xfce4-screenshooter|xfce4-screenshooter]]** 
 +  * **[[#xfce4-panel|xfce4-panel]]** 
 +  * **[[#all components|all components]]**
  
-  A minimal skeleton which just creates a hello world like plugin. +----
-  Other sample plugin in which we use most of the available APIs.+
  
-that make it's easy for everyone to understand the basic working and development of xfce4 panel and thunar plugins. 
  
-  * **[Language: any from the list]** +===== thunar =====
-    * **Python:** Create Sample/Skeleton panel and thunar plugin in Python, Possible using [[https://pygobject.readthedocs.io/en/latest/getting_started.html|PyGobject]] +
-    * **JavaScript:** Create Sample/Skeleton panel and thunar plugin in JavaScript, Possible using [[https://gjs.guide/guides/|Gjs]] +
-    * **Vala:** Create Sample/Skeleton panel and thunar plugin in Vala, Possible using [[https://wiki.gnome.org/Projects/Vala/Bindings|vapi]]+
  
-**[Difficulty: Medium] [Required Skills: Gtk, GobjectGLib] [Possible MentorsManjeet Singh]**+Thunar is Xfce's file manager and one of its core components. There are many new features pending to be implemented and bugs that need fixingsome of which are listed below:
  
----- +  * [[https://gitlab.xfce.org/xfce/thunar/-/issues/295|Use URI to identify bookmarks instead of md5 checksum]] 
-[[|Back To Top]]+    * **[Difficulty: easy] [Required Skills: C, Glib[Possible Mentors: Alexander Schwinn, Yongha Hwang]** 
 +    * **[Estimate time: 15h (Could be part of a 175h/350h project)]** 
 +    * To ease the editing of accels.scm 
 +    * The linked bug contains an old WIP patch.
  
-===== Improve Thunar =====+  * [[https://gitlab.xfce.org/xfce/thunar/-/issues/230|Bulk Rename: Fix regex replace to replace all occurrences]] 
 +    * **[Difficulty: easy] [Required Skills: C, Glib] [Possible Mentors: Alexander Schwinn, Yongha Hwang]** 
 +    * **[Estimate time: 20h (Could be part of a 175h/350h project)]** 
 +    * Bulk rename supports find-and-replace, but the behavior for plaintext replacement and RegEx behavior differs. 
 +    * Fix RegEx find-and-replace to replace all occurrences. 
 +    * Additional task: Add an option to replace only the first occurrence 
 +      * **[Difficulty: easy] [Additional Required Skills: Gtk]** 
 +      * **[Estimated time: 20h (Could be part of a 175h/350h project)]** 
 +      * Add a checkbox to enable replace-all. 
 +      * Open an Issue first to work with this problem.
  
-Thunar is Xfce's file manager and one of its core componentsThere are many new features pending to be implemented and bugs that need fixingsome of which are listed below:+  * [[https://gitlab.xfce.org/xfce/thunar/-/issues/252|Symbolic icons for side panel]] 
 +    * **[Difficulty: medium] [Required Skills: CGtk] [Possible Mentors: Andre Miranda, Alexander Schwinn]** 
 +    * **[Estimate time: 40h (Could be part of a 175h/350h project)]** 
 +    * So that the side panel icons are more consistent and less distracting 
 +    * There is already a [[https://gitlab.xfce.org/xfce/thunar/-/merge_requests/32|WIP]] implementation that needs to be rebased and finished.
  
-  * <del>[[https://gitlab.xfce.org/xfce/thunar/-/issues/123|Possibility to sort trash by delete date]]</del> +  * [[https://gitlab.xfce.org/xfce/thunar/-/issues/108|Bulk renamer Fails to rename "name03" to "name02" when ranges overlap]] 
-    * **[Difficulty: easy] [Required Skills: C, Gtk] [Possible Mentors: Alexander Schwinn]** +    * **[Difficulty: medium] [Required Skills: C, Glib] [Possible Mentors: Alexander Schwinn, Yongha Hwang]** 
-    * Often when searching something in trash, the latest trashed items are of interest. +    * **[Estimate time60h (Could be part of a 175h/350h project)]** 
-    The mission here would be, to add another sorting category "delete date". That category only can be picked for "trash"+    * Implement strategy that can handle when a resulting name of one file conflicts with the original name of the other 
-    Check [[https://gitlab.xfce.org/xfce/thunar/-/merge_requests/29|!29]] and [[https://gitlab.xfce.org/xfce/thunar/-/merge_requests/59|!59]] which are about a  similar feature, "file creation date" to see which files need to be touched. + 
-    * Most likely it will be required to bundle multiple [[https://gitlab.xfce.org/xfce/thunar/-/issues?label_name[]=5.%20Trash%20%2F%20Delete|trash/delete issues]] into "improve trash/delete handling" GSoC Project to have work for 175 hours+  * [[https://gitlab.xfce.org/xfce/thunar/-/issues/86|Confusing overwrite dialog when copying a folder from case-sensitive to case-insensitive file-systems]] 
-  * <del>[[https://gitlab.xfce.org/xfce/thunar/-/issues/342|"Open with" menu Improve default application handling]]</del> +    * **[Difficulty: medium] [Required Skills: C, Gtk] [Possible Mentors: Alexander Schwinn, Yongha Hwang]** 
-    * **[Difficulty: easy] [Required Skills: C, Gtk] [Possible Mentors: Alexander Schwinn]** +    * **[Estimate time: 60h (Could be part of 175h/350h project)]** 
-    * Currently setting default application is a bit hidden in thunar. And if not set, the last used application always will be used as default, which is bad UX (see issue description). +    * Unlike UNIX systemsWindows and macOS systems do not allow files that differ only by case
-    * The idea isto automatically select an application as default for a specific mime-type on the first open, if no default application was defined so far for that mime type+    * Figure out how to check filesystem case-insensitivity ([[https://gitlab.xfce.org/xfce/thunar/-/commit/9f7aca2e7762d0343c743c16470a23c788868f58|Related commit]]) 
-    * Additionally the "open with" context menu should get an additional entry labeled "set default application"+    * Implement a renaming scheme to fit case-sensitive names to case-insensitive filesystems. 
-    * The application chooser should highlight the current default application in some way. +    * Additional task: Warn user about case-insensitive systems 
-    * Note that most likely this issue alone will not be sufficient for a 175 hour Project, you will need to bundle multiple issues. +      * **[Difficulty: medium] [Required Skills: C, Gtk]** 
-  * <del>[[https://gitlab.xfce.org/xfce/thunar/-/issues/257|Add Support for GTK RECENT bookmark]]</del> +      * **[Estimated time20h + dialog discussion (Could be part of a 175h/350h project)]** 
-    * **[Difficulty: easy] [Required Skills: C, Gtk] [Possible MentorsAlexander Schwinn]** +      Open an Issue first to work with this problem. 
-    The location "recent:/" currently is not well supported within thunarFiles inside there have a "lockedsymbol and many formats cant be opened properly+      * Dialog like "Overwrite 'Gtk' with 'GTK'would confuse users without knowledge about filesystems
-    It would be nice to fix these flaws, and show the "recent" section by default if the system provides it+      Check if the filesystem is case-insensitive and/or the overwriten file only differs by case
-    Note that most likely this issue alone will not be sufficient for 175 hour Project, you will need to bundle multiple issues+      Figure out way to inform the user about the problem without explaining too many technical details. 
-  * <del>[[https://gitlab.xfce.org/xfce/thunar/-/issues/418|Remember zoom level per directory]]</del>+ 
 +  * [[https://gitlab.xfce.org/xfce/thunar/-/issues/160|Set custom color to specific files and folder names]]
     * **[Difficulty: medium] [Required Skills: C, Gtk] [Possible Mentors: Alexander Schwinn]**     * **[Difficulty: medium] [Required Skills: C, Gtk] [Possible Mentors: Alexander Schwinn]**
-    * Currently zoom levels are the same for each directory. However since thunar 4.16.xseveral settings, like view-type and sorting order can be saved per directory. As well for the zoom level that would make a lot of sense+    * **[Estimate time: 60h (Could be part of a 175h/350h project)]** 
-    * The commits for the existing "per-directory-settings" could be used as a base to see how it can be accomplished+    * Like for Macit would be nice to have the possibility to set custom colors for file and folder names
-    * In addition it could be interesting to select in detail which settings should be shown "per directory" instead of switching just all of them on/off.+    * The chosen color could be saved as gvfs-metadata value, like done for e.g. emblems
 +    * The property dialog of files/folders would require a color picker. 
   * [[https://gitlab.xfce.org/xfce/thunar/-/issues/245|Provide a collection of preinstalled custom actions, which can be enabled]]   * [[https://gitlab.xfce.org/xfce/thunar/-/issues/245|Provide a collection of preinstalled custom actions, which can be enabled]]
     * **[Difficulty: medium] [Required Skills: C, Gtk] [Possible Mentors: Alexander Schwinn]**     * **[Difficulty: medium] [Required Skills: C, Gtk] [Possible Mentors: Alexander Schwinn]**
 +    * **[Estimate time: 60h (Could be part of a 175h/350h project)]**
     * Currently the only thunar custom action which is provided by thunar is "open terminal here". (Xubuntu adds some more). To add additional custom actions from [[https://docs.xfce.org/xfce/thunar/custom-actions|the wiki]] is not very user-friendly. Thunar could be improved alot here by adding some meaningful default custom-actions, e.g. for catfish search (which now is an Xfce project), PNG/JPG conversion, rotating jpegs, creating symlinks/hardlinks, printing.     * Currently the only thunar custom action which is provided by thunar is "open terminal here". (Xubuntu adds some more). To add additional custom actions from [[https://docs.xfce.org/xfce/thunar/custom-actions|the wiki]] is not very user-friendly. Thunar could be improved alot here by adding some meaningful default custom-actions, e.g. for catfish search (which now is an Xfce project), PNG/JPG conversion, rotating jpegs, creating symlinks/hardlinks, printing.
     * Like that we would have the possibility to provide translations for all of these UCA's     * Like that we would have the possibility to provide translations for all of these UCA's
-    * We would need the possibility enable/disable UCA's, so that we can add more "disabled by default" UCA's. That would prevent overload of the menu with UCA's which are possibly of no use for certain users. +    * We would need the possibility to enable/disable UCA's, so that we can add more "disabled by default" UCA's. That would prevent overload of the menu with UCA's which are possibly of no use for certain users. 
-    * One job here would be to modify the UCA-management dialog in order to show disabled UCA's grayed out. A checkbox inside UCA config dialog could be used to enable/disable it. Like all other UCA attributes, that attributes would need to be stored. (The commit adding support for "UCA submenus" will help to see what has to be done)+    * One job here would be to modify the UCA-management dialog in order to show disabled UCA's grayed out. A checkbox inside UCA config dialog could be used to enable/disable it. Like all other UCA attributes, those attributes would need to be stored. (The commit adding support for "UCA submenus" will help to see what has to be done)
     * In a second step, default UCA's could be added from the [[https://docs.xfce.org/xfce/thunar/custom-actions|wiki page]]     * In a second step, default UCA's could be added from the [[https://docs.xfce.org/xfce/thunar/custom-actions|wiki page]]
     * Code in Xfdesktop, the desktop manager, would also need to be modified to handle disabled UCA's.     * Code in Xfdesktop, the desktop manager, would also need to be modified to handle disabled UCA's.
-  * <del>[[https://gitlab.xfce.org/xfce/thunar/-/issues/351|Introduce rate limiting to recursive build of tree-view]]</del> +
-    * **[Difficulty: medium] [Required Skills: C, Gtk] [Possible Mentors: Alexander Schwinn]** +
-    * In the past we had alot of bugs related to tree-view (sidepane) letting CPU run at 100%. The reason is, that building the file-tree is a complex procedure which has a lot of corner cases, embedded in an recursive call. Errors  during tree buildup occasionally led to infinite tree-walk, blocking a single core. +
-    * It looks like for now we found all problematic corner cases, though in order to make the related code more failsafe for further changes, it still would be nice to have a rate-limiting mechanism, using ''g_timeout_add_full'' to make sure that even in a malfunction case, a CPU will not be 100% blocked. +
-  * [[https://gitlab.xfce.org/xfce/thunar/-/issues/179|split uca.xml (custom action configuration) into multiple files]] +
-    * **[Difficulty: medium] [Required Skills: C, Gtk] [Possible Mentors: Alexander Schwinn]** +
-    * Currently there is only a single file which stores all the user-specific custom actions +
-    * It would be much more "packager-friendly" if several files could be used for that purpose. So that distributions could easily add additional custom actions, without messing with files in the userspace. +
-    * The user would need to be able to overwrite and disable system-defined UCA's. (See as well [[https://gitlab.xfce.org/xfce/thunar/-/issues/245|here]]) +
-    * Optionally the project could be extended by changing the format from ".xml" to ".desktop" files. +
-  * <del>[[https://gitlab.xfce.org/xfce/thunar/-/issues?label_name[]=5.%20Searching|Improve thunar file search facility]]</del> +
-    * **[Difficulty: medium] [Required Skills: C, Gtk] [Possible Mentors: Alexander Schwinn]** +
-    * There is a couple of open issues related to file search. According to your skill-level we could make a GSoC project out of multiple of these bugs. +
-    * E.g. the possibility to access a file-search tool, like catfish via toolbar (Possibly by using a DBus call?) +
-  * <del>[[https://gitlab.xfce.org/xfce/thunar/-/issues/338|Ability to reopen last tabs/location upon restart]]</del> +
-    * **[Difficulty: medium] [Required Skills: C, Gtk] [Possible Mentors: Alexander Schwinn]** +
-    * Currently on restart only the latest used path is restored. +
-    * Like web browsers, thunar could restore all paths from the last session instead. +
-  * [[https://gitlab.xfce.org/xfce/thunar/-/issues?label_name[]=5.%20Bulk%20Renamer|Improve the bulk renamer]] +
-    * **[Difficulty: medium] [Required Skills: C, Gtk] [Possible Mentors: Alexander Schwinn]** +
-    * There are a number of issues filed on the thunar bulk renamer which could be packed as a GSoC project dependent on your skill-level +
-    * E.g. it is needed to properly highlight renaming conflicts, and several smaller enhancements +
-  * <del>[[https://gitlab.xfce.org/xfce/thunar/-/issues/156#note_18095|Introduce gvfs trusted flag for more safety]]</del> +
-    * **[Difficulty: medium] [Required Skills: C, Gtk] [Possible Mentors: Alexander Schwinn]**  +
-    * The execute flag currently is used to mark a launcher as "trusted". That can be easily lured, since as well via unpacking an archive, an executable flag can be imported. +
-    * The idea is to use a "trusted" flag stored as gvfs metadata, like nautilus(files?) already does. +
-  * [[https://gitlab.xfce.org/xfce/thunar/-/issues/160|Set custom color to specific files and folder names]] +
-    * **[Difficulty: medium] [Required Skills: C, Gtk] [Possible Mentors: Alexander Schwinn]** +
-    * Like for Mac, it would be nice to have the possibility to set custom colors for file and folder names. +
-    * The chosen color could be saved as gvfs-metadata value, like done for e.g. emblems. +
-    * The property dialog of files/folders would require a color picker. +
-  * <del>[[https://gitlab.xfce.org/xfce/thunar/-/issues/279|Possibility to configure shortcuts in thunar preferences via GUI]]</del> +
-    * **[Difficulty: challenging] [Required Skills: C, Gtk] [Possible Mentors: Alexander Schwinn]** +
-    * Currently in thunar it is possible to specify custom keyboard shortcuts via the accels.xml file. That is not user-friendly. +
-    * Instead, it would be nice to have a dialog which provides an overview on all thunar shortcuts and the possibility to change them. +
-    * That dialog should be implemented in libxfce4ui in a way that allows other Xfce components to reuse it. +
-  * <del>[[https://gitlab.xfce.org/xfce/thunar/-/issues/262|Implement the "shared thumbnails" feature of the thumbnail spec]]</del> +
-    * **[Difficulty: challenging] [Required Skills: C, Gtk] [Possible Mentors: Alexander Schwinn]** +
-    * The freedesktop thumbnail spec described how to store and retrieve thumbnails. Thunar impements only part of the spec. The "shared thumbnail folder" part described on  [[https://specifications.freedesktop.org/thumbnail-spec/thumbnail-spec-latest.html#SHARED|freedesktop.org]] is entirely missing. +
-    * To implement the spec fully, the following things needs to be changed: +
-       * Thunar needs to check .sh_thumbnails and display thumbnails there before requesting new thumbnails to be created by tumbler +
-       * Tumbler needs only to create thumbnails if they are not already in .sh_thumbnails +
-       * For remote drives, thumbnails should also be displayed if they are in  .sh_thumbnails, even if thumbnails for remote drives are disabled+
   * [[https://gitlab.xfce.org/xfce/thunar/-/issues/61|For folders, put the count of containing files into the detailed view "size" column]]   * [[https://gitlab.xfce.org/xfce/thunar/-/issues/61|For folders, put the count of containing files into the detailed view "size" column]]
-    * **[Difficulty: challenging] [Required Skills: C, Gtk] [Possible Mentors: Alexander Schwinn]** +    * **[Difficulty: challenging] [Required Skills: C, Gtk] [Possible Mentors: Alexander Schwinn, Sergios - Anestis Kefalidis, Yongha Hwang]** 
-    * While it would be good to know how many files are inside a folder, that can be very resource-consuming, specially on remote locations+    * **[Estimate time: 80h (Could be part of a 175h/350h project)]** 
 +    * While it would be good to know how many files are inside a folder, that can be very resource-consuming, especially in remote locations
     * The linked bug contains an old WIP patch, which already worked for local files.     * The linked bug contains an old WIP patch, which already worked for local files.
     * The mission would be, to port that patch to thunar master and make it usable for remote location / figure out how to best do so.     * The mission would be, to port that patch to thunar master and make it usable for remote location / figure out how to best do so.
 +    * It is likely that a good solution requires running this functionality in a separate thread so experience with multi-threading could prove useful.
     * If that is not challenging enough for you, there is an [[https://gitlab.xfce.org/xfce/thunar/-/issues/94|issue for showing recursive file size]] (as well that issue has a partly functional patch attached).     * If that is not challenging enough for you, there is an [[https://gitlab.xfce.org/xfce/thunar/-/issues/94|issue for showing recursive file size]] (as well that issue has a partly functional patch attached).
 +
   * [[https://gitlab.xfce.org/xfce/thunar/-/issues/500|Extend Thunarx API to be able to set emblems in thunar-plugins]]   * [[https://gitlab.xfce.org/xfce/thunar/-/issues/500|Extend Thunarx API to be able to set emblems in thunar-plugins]]
     * **[Difficulty: challenging] [Required Skills: C, Gtk] [Possible Mentors: Alexander Schwinn]**     * **[Difficulty: challenging] [Required Skills: C, Gtk] [Possible Mentors: Alexander Schwinn]**
-    * Several thunar plugins, like rabbit-vcs, the thunar-vcs-plugin and thunar-dropbox would profit from the possibility to set emblems on files. Though currently plugins are not able to do so.+    * **[Estimate time: 80h (Could be part of a 175h/350h project)]** 
 +    * Several thunar plugins, like rabbit-vcs, the thunar-vcs-plugin and thunar-dropbox would profit from the possibility to set emblems on files. Though currentlyplugins are not able to do so.
     * Nautilus already seems to provide such a service. Most likely the nautilus code can be used as inspiration.     * Nautilus already seems to provide such a service. Most likely the nautilus code can be used as inspiration.
     * It would be required to extend the thunarx API (API used by thunar plugin) in order to support custom emblems.     * It would be required to extend the thunarx API (API used by thunar plugin) in order to support custom emblems.
-  Move resources which can be shared between thunar and xfdesktop into libxfce4util/libxfce4ui+ 
 +  [[https://gitlab.xfce.org/xfce/thunar/-/issues/191|Support "Undo" for file operations]] 
 +    * **[Difficulty: challenging] [Required Skills: C, Gtk] [Possible Mentors: Sergios - Anestis Kefalidis, Alexander Schwinn]** 
 +    * **[Estimate time: 80h (Could be part of a 175h/350h project)]** 
 +    * The goal of this project is to implement 'Undo' functionality for file operations (where it makes sense). 
 +    * Examples of such operations are: "copy", "cut", "rename", "move to trash" (I might be forgetting something). 
 +    * 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. 
 + 
 +  * [[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]** 
 +    * **[Estimate time: 100h (Could be part of a 175h/350h project)]** 
 +    * The goal of this project is to expand the Details View to be able to handle expanded folders like the Tree View in the sidepane does. 
 + 
 +  * [[https://gitlab.xfce.org/xfce/thunar/-/issues/693|New view "Pictures"]]
     * **[Difficulty: challenging] [Required Skills: C, Gtk] [Possible Mentors: Alexander Schwinn]**     * **[Difficulty: challenging] [Required Skills: C, Gtk] [Possible Mentors: Alexander Schwinn]**
-    * Both components need to do file operations, mounting and provide context menus. The related code currently is duplicated. +    * **[Estimate time: 160h (Could be part of a 175h/350h project)]** 
-    * The idea is to move that code and it's dependencies to a shared library in order to reduce duplicationand to ease maintenance work. +    * A new view in order to maximize the space taken by thumbnailsnot showing the file names anymore 
-    * There is no issue yet for that project ...feel free to open one+    * 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"]]   * [[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]**     * **[Difficulty: challenging] [Required Skills: C, Gtk] [Possible Mentors: Alexander Schwinn]**
-    * So that all applications which want to pick a filewill see the thunar dialog, instead of the foreign GtkFileChooserDialog+    * **[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)     * 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     * Creation of the related DBUS Service in thunar
     * Dialog to pick specific file(s) and hit "done"/"abort" using the current thunar widgets.     * Dialog to pick specific file(s) and hit "done"/"abort" using the current thunar widgets.
-  * [[https://gitlab.xfce.org/xfce/thunar/-/issues/252|Symbolic icons for side panel]] + 
-    * **[Difficulty: challenging] [Required Skills: C, Gtk] [Possible Mentors: Andre Miranda, Alexander Schwinn]** +  * [[https://gitlab.xfce.org/xfce/thunar/-/issues?label_name%5B%5D=5.+Out+of+Sync|Thunar Synchronization Issues]] 
-    * So that the side panel icons are more consistent and less distracting +    * **[Difficulty: challenging] [Required Skills: C, Gtk] [Possible Mentors: Alexander Schwinn]** 
-    * There is already a [[https://gitlab.xfce.org/xfce/thunar/-/merge_requests/32|WIP]] implementation that needs to be rebased and finished.+    * **[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]] [[|Back To Top]]
  
-===== Wayland Support =====+===== xfce4-terminal =====
  
-The X11 windowing system is currently in maintenance modeas it is an aging system, and the Linux desktop ecosystem is transitioning to the Wayland display server protocolIn order to speedup the transition of Xfce'components to Waylandthey need to be tested and bugs need to be filed and fixed. [[https://wiki.xfce.org/releng/wayland_roadmap|Wayland Roadmap]]+Xfce Terminal is a lightweight and easy-to-use terminal emulator application with many advanced features including drop-downtabs, 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 GladeGlade is, in general, unpleasant to work with which has led a lot of other Xfce apps to build their UI through code (see Thunar'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 Projectyou 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]]
  
-===== Improve Accessibility =====+===== xfce4-screenshooter =====
  
-Investigate all Xfce applications to ensure that they are 100% accessible to screen reader and keyboard usersincluding making the [[https://gitlab.xfce.org/xfce/xfce4-panel/-/issues/1|panel navigatable]], assign and fix accelerators ([[https://gitlab.xfce.org/xfce/xfwm4/-/issues/64|example]])present info to screen reader in thunar ([[https://gitlab.xfce.org/xfce/thunar/-/issues/48|bug]]), etc.+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 savedopened 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: CGtk] [Possible Mentors: Andre Miranda]** 
 +    * **[Estimate time80h (Could be part of a 175h/350h project)]** 
 +    * Currently screenshooter only supports 4 actionsoftentimes users need to craft scripts that store the screenshot somewhere (i.e. /tmpand 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 Imgurit 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.
  
 ---- ----
  
-===== Create StatusNotifierItem Skeleton / example =====+===== 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. 
  
-We already provide a way to show [[https://www.freedesktop.org/wiki/Specifications/StatusNotifierItem/StatusNotifierItem/|StatusNotifierItems]] in our panel as an alternative to writing traditional plugins, which only target Xfce. In order to be able to port some of our plugins (at least where that makes sense) to the open standard it would be helpful to have a skeleton or example StatusNotifier. 
  
 ---- ----
-[[|Back To Top]]+===== all components =====
  
-===== Add Calendar Capabilities to Clock =====+Things which involve various xfce components at the same time
  
-The Gtk2-based [[https://docs.xfce.org/panel-plugins/orage/start|Orage calendar panel plugin]] was deprecated in Xfce 4.16 and the Clock panel plugin has no Calendar capabilitiesso a new Calendar widget would need to be rewritten in modern widgets, as the [[https://developer.gnome.org/gtk3/stable/GtkCalendar.html|Gtk3 Calendar widget]] is a mess. The widget should be made with the intent that it can be used by other projects and should be pluggable with desktop and online calendar apps ([[https://gitlab.xfce.org/xfce/xfce4-panel/-/issues/449|bug report]]).\\ +  * Optional support for GtkHeaderBar (CSD) 
-**[Required SkillsC, Gtk, Glib]**+    * **[Difficulty: easy] [Required SkillsC, 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 Shellit 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
  
 ---- ----
  
-===== GSoC Participants Blogs ====+===== Frequently Asked Questions =====
  
-  * **[[http://users.uoa.gr/~sdi1800073/sources/xfce_blog01.html|Sergios - Anestis Kefalidis]]** +=== What is the recommended format for the GSoC proposal ? === 
-  * **[[https://dev.ikx.kr/GSOC-2021/|Yongha Hwang]]** +We do not force any specifc format. Here is what you have to look for: 
-  * **[[https://freshlybuilt.com/my-journey-to-gsoc-2021-through-xfce/|Vishal Sharma]]**+  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]]
  
 ---- ----
Line 214: Line 299:
  
 [[https://docs.xfce.org/contribute/start|Back to main Xfce Contribute page]] [[https://docs.xfce.org/contribute/start|Back to main Xfce Contribute page]]
 +