Differences
This shows you the differences between two versions of the page.
Both sides previous revisionPrevious revision | |||
projects:gsoc_2022:start [2024/01/24 14:46] – alexxcons | projects: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 ====== |
* **[[# | * **[[# | ||
* **[[# | * **[[# | ||
- | * **[[#Create Sample/ | + | * **[[#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]]** |
+ | * **[[# | ||
* **[[#GSoC Participants Blogs|GSoC Participants Blogs]]** | * **[[#GSoC Participants Blogs|GSoC Participants Blogs]]** | ||
Line 15: | Line 16: | ||
[[https:// | [[https:// | ||
- | [[https:// | + | [[https:// |
- | + | ||
- | The Xfce project was accepted as [[https:// | + | |
If you are a developer who would like to get involved with the Xfce project, please see [[https:// | If you are a developer who would like to get involved with the Xfce project, please see [[https:// | ||
+ | **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 | + | Participants |
- | * [[https:// | + | * The [[https:// |
- | * [[https:// | + | * The [[https:// |
If you use a [[https:// | If you use a [[https:// | ||
Line 35: | Line 35: | ||
Alternatively you can use [[https:// | Alternatively you can use [[https:// | ||
- | In order to coordinate projects, students should add their names to [[https:// | + | If you are connecting via Matrix, please dont use Matrix specific things like ' |
---- | ---- | ||
[[|Back To Top]] | [[|Back To Top]] | ||
Line 42: | Line 41: | ||
====== Project Ideas ====== | ====== Project Ideas ====== | ||
- | * **[[#Create Sample/ | + | 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 |
- | * **[[# | + | |
- | * **[[# | + | |
- | * **[[# | + | |
- | * **[[#Create StatusNotifierItem Skeleton / example]]** | + | |
- | * **[[#Add Calendar Capabilities | + | |
- | ---- | + | 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:// |
- | As we already have sample/ | + | * **[[# |
+ | * **[[#xfce4-terminal|xfce4-terminal]]** | ||
+ | * **[[#xfce4-screenshooter|xfce4-screenshooter]]** | ||
+ | * **[[#xfce4-panel|xfce4-panel]]** | ||
+ | * **[[#all components|all components]]** | ||
- | | + | ---- |
- | | + | |
- | that make it's easy for everyone to understand the basic working and development of xfce4 panel and thunar plugins. | ||
- | * **[Language: | + | ===== thunar |
- | * **Python:** Create Sample/ | + | |
- | * **JavaScript: | + | |
- | * **Vala:** Create Sample/ | + | |
- | **[Difficulty: | + | 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 fixing, some of which are listed below: |
- | ---- | + | * [[https:// |
- | [[|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:// |
+ | * **[Difficulty: | ||
+ | * **[Estimate time: 20h (Could be part of a 175h/350h project)]** | ||
+ | * Bulk rename supports find-and-replace, | ||
+ | * Fix RegEx find-and-replace to replace all occurrences. | ||
+ | * Additional task: Add an option to replace only the first occurrence | ||
+ | * **[Difficulty: | ||
+ | * **[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 components. There are many new features pending to be implemented and bugs that need fixing, some of which are listed below: | + | * [[https:// |
+ | * **[Difficulty: | ||
+ | * **[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:// | ||
- | * <del>[[https:// | + | * [[https:// |
- | * **[Difficulty: | + | * **[Difficulty: |
- | * Often when searching something in trash, the latest trashed items are of interest. | + | * **[Estimate time: 60h (Could be part of a 175h/350h project)]** |
- | | + | * Implement |
- | | + | |
- | * Most likely it will be required to bundle multiple [[https:// | + | * [[https:// |
- | * <del>[[https:// | + | * **[Difficulty: |
- | * **[Difficulty: | + | * **[Estimate time: 60h (Could be part of a 175h/350h project)]** |
- | * Currently setting | + | * Unlike UNIX systems, Windows and macOS systems do not allow files that differ only by case. |
- | * The idea is, to 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:// |
- | * Additionally the "open with" context menu should get an additional entry labeled "set default application" | + | |
- | * 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. | + | |
- | * <del>[[https:// | + | * **[Estimated time: 20h + dialog discussion (Could be part of a 175h/350h project)]** |
- | * **[Difficulty: | + | * Open an Issue first to work with this problem. |
- | * The location " | + | * Dialog like "Overwrite ' |
- | * It would be nice to fix these flaws, | + | * Check if the filesystem is case-insensitive |
- | * Note that most likely this issue alone will not be sufficient for a 175 hour Project, you will need to bundle multiple issues. | + | * Figure out a way to inform the user about the problem without explaining too many technical details. |
- | * <del>[[https:// | + | |
+ | * [[https:// | ||
* **[Difficulty: | * **[Difficulty: | ||
- | * Currently zoom levels are the same for each directory. However since thunar 4.16.x, several 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 " | + | * Like for Mac, it 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" | + | * The chosen color could be saved as gvfs-metadata value, like done for e.g. emblems. |
+ | * The property dialog | ||
* [[https:// | * [[https:// | ||
* **[Difficulty: | * **[Difficulty: | ||
+ | * **[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:// | * 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:// | ||
* 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/ | + | * We would need the possibility |
- | * 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/ | + | * 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/ |
* In a second step, default UCA's could be added from the [[https:// | * In a second step, default UCA's could be added from the [[https:// | ||
* 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. | ||
- | * < | + | |
- | * **[Difficulty: | + | |
- | * 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 | + | |
- | * 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 '' | + | |
- | * [[https:// | + | |
- | * **[Difficulty: | + | |
- | * Currently there is only a single file which stores all the user-specific custom actions | + | |
- | * It would be much more " | + | |
- | * The user would need to be able to overwrite and disable system-defined UCA's. (See as well [[https:// | + | |
- | * Optionally the project could be extended by changing the format from " | + | |
- | * < | + | |
- | * **[Difficulty: | + | |
- | * 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?) | + | |
- | * < | + | |
- | * **[Difficulty: | + | |
- | * Currently on restart only the latest used path is restored. | + | |
- | * Like web browsers, thunar could restore all paths from the last session instead. | + | |
- | * [[https:// | + | |
- | * **[Difficulty: | + | |
- | * 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 | + | |
- | * < | + | |
- | * **[Difficulty: | + | |
- | * The execute flag currently is used to mark a launcher as " | + | |
- | * The idea is to use a " | + | |
- | * [[https:// | + | |
- | * **[Difficulty: | + | |
- | * 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/ | + | |
- | * < | + | |
- | * **[Difficulty: | + | |
- | * 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. | + | |
- | * < | + | |
- | * **[Difficulty: | + | |
- | * The freedesktop thumbnail spec described how to store and retrieve thumbnails. Thunar impements only part of the spec. The " | + | |
- | * 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, | + | |
* [[https:// | * [[https:// | ||
- | * **[Difficulty: | + | * **[Difficulty: |
- | * While it would be good to know how many files are inside a folder, that can be very resource-consuming, | + | * **[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, | ||
* 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:// | * If that is not challenging enough for you, there is an [[https:// | ||
+ | |||
* [[https:// | * [[https:// | ||
* **[Difficulty: | * **[Difficulty: | ||
- | * 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. | + | |
+ | | ||
* 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. | ||
- | | + | |
+ | | ||
+ | * **[Difficulty: | ||
+ | * **[Estimate time: 80h (Could be part of a 175h/350h project)]** | ||
+ | * The goal of this project is to implement ' | ||
+ | * Examples of such operations are: " | ||
+ | * 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:// | ||
+ | * **[Difficulty: | ||
+ | * **[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:// | ||
* **[Difficulty: | * **[Difficulty: | ||
- | * 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 | + | * A new view in order to maximize the space taken by thumbnails, not showing the file names anymore |
- | * There is no issue yet for that project | + | * Most likely would require work on the [[https:// |
* [[https:// | * [[https:// | ||
* **[Difficulty: | * **[Difficulty: | ||
- | * 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 '' | * Possible required to implement a service '' | ||
* Creation of the related DBUS Service in thunar | * Creation of the related DBUS Service in thunar | ||
* Dialog to pick specific file(s) and hit " | * Dialog to pick specific file(s) and hit " | ||
- | | + | |
- | * **[Difficulty: | + | |
- | * So that the side panel icons are more consistent and less distracting | + | * **[Difficulty: |
- | * There is already a [[https:// | + | * **[Estimate time: 175h (Could as well be part of a 350h project)]** |
+ | * The way thunar monitors files and folders | ||
+ | * 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 | + | Xfce Terminal |
+ | |||
+ | * Rewrite | ||
+ | * **[Difficulty: | ||
+ | * **[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 | ||
+ | * Additionally, | ||
+ | * 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:// | ||
+ | * **[Difficulty: | ||
+ | * **[Estimate time: 25h (Could | ||
+ | * xfce4-terminal supports xfce-session which allows the user to save a session | ||
+ | * 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:// | ||
+ | * Note that most likely this issue alone will not be sufficient for a GSoC project, you will need to bundle multiple issues. | ||
+ | |||
+ | * [[https:// | ||
+ | * **[Difficulty: | ||
+ | * **[Estimate time: 80h (Could | ||
+ | * **[Estimate time: 120h if migrating to xfconf is required (Could be part of a 175h/350h project)]** | ||
+ | * Currently xfce4-terminal doesn' | ||
+ | * Many other terminal emulators use the notion of " | ||
+ | * 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/ | ||
---- | ---- | ||
+ | [[|Back To Top]] | ||
- | ===== Improve Accessibility | + | ===== xfce4-screenshooter |
- | Investigate all Xfce applications | + | Screenshooter is a simple and flexible tool to take screenshots. It supports fullscreen, active window |
+ | |||
+ | * [[https:// | ||
+ | * **[Difficulty: | ||
+ | * **[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 | ||
+ | * 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. | ||
---- | ---- | ||
- | ===== Create StatusNotifierItem Skeleton / example | + | ===== xfce4-panel |
+ | |||
+ | Application launchers, window buttons, applications menu, workspace switcher, and more. | ||
+ | |||
+ | * Merge datetime with clock plugin | ||
+ | * **[Difficulty: | ||
+ | * **[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' | ||
+ | * it is easier to set font family/ | ||
+ | * 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/ | ||
+ | * **[Difficulty: | ||
+ | * **[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:// | ||
+ | * Comment/ | ||
+ | * Find a replacement for GtkSocket/ | ||
+ | * The code of [[https:// | ||
+ | * 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:// | ||
+ | * 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:// | ||
---- | ---- | ||
- | [[|Back To Top]] | + | ===== all components ===== |
- | ===== Add Calendar Capabilities to Clock ===== | + | Things which involve various xfce components at the same time |
- | The Gtk2-based | + | * Optional support for GtkHeaderBar (CSD) |
- | **[Required Skills: C, Gtk, Glib]** | + | * **[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/-/ | ||
+ | * https:// | ||
+ | * https:// | ||
---- | ---- | ||
- | ===== GSoC Participants Blogs ==== | + | ===== 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: |
- | | + | |
+ | | ||
+ | | ||
+ | |||
+ | === Where can I start ? === | ||
+ | After you have read the [[https://docs.xfce.org/contribute/dev/start|Xfce Development Information]], | ||
+ | |||
+ | * [[https://gitlab.xfce.org/ | ||
+ | * [[https://gitlab.xfce.org/apps/xfce4-terminal/-/ | ||
+ | |||
+ | ---- | ||
+ | |||
+ | [[|Back To Top]] | ||
+ | |||
+ | ==== GSoC Participants Blogs ==== | ||
+ | |||
+ | | ||
+ | |||
+ | ==== Previous Years ==== | ||
+ | |||
+ | | ||
---- | ---- | ||
Line 214: | Line 299: | ||
[[https:// | [[https:// | ||
+ |