Differences
This shows you the differences between two versions of the page.
Both sides previous revisionPrevious revisionNext revision | Previous revisionNext revisionBoth sides next revision | ||
projects:gsoc:start [2022/04/07 22:07] – [Frequently Asked Questions] alexxcons | projects:gsoc:start [2024/02/10 09:07] – [thunar] alexxcons | ||
---|---|---|---|
Line 1: | Line 1: | ||
~~NOTOC~~ | ~~NOTOC~~ | ||
- | ====== Xfce - Google Summer of Code 2022 ====== | + | |
+ | ====== Xfce - Google Summer of Code 2024 ====== | ||
* **[[# | * **[[# | ||
* **[[# | * **[[# | ||
* **[[# | * **[[# | ||
- | * **[[# | ||
- | * **[[# | ||
- | * **[[# | ||
* **[[#all components|all components]]** | * **[[#all components|all components]]** | ||
* **[[# | * **[[# | ||
Line 16: | Line 14: | ||
[[https:// | [[https:// | ||
- | [[https:// | + | [[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 # | + | **Note**: Due to bot protection you need to request permission on the # |
---- | ---- | ||
Line 26: | Line 24: | ||
====== Communication ====== | ====== Communication ====== | ||
- | Participants should idle in < | + | Participants should idle in Matrix |
- | * The [[https:// | + | * The [[https:// |
- | * The [[https:// | + | * The [[https:// |
- | + | * More information about communication channels can be found [[https://docs.xfce.org/contribute/dev/start# | |
- | 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:// | + | |
- | + | ||
- | Alternatively you can use [[https:// | + | |
---- | ---- | ||
- | [[|Back To Top]] | ||
- | |||
====== Project Ideas ====== | ====== Project Ideas ====== | ||
- | 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). | + | Feel free to package a number of issues to a GSoC project, for which you think, you can solve them in the given timeframe (90h / 175h / 350h, 8 till 22 weeks). 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). |
Note: Fixing some smaller issues already now (E.g. to show your programming skills) as well would be very welcome. | Note: Fixing some smaller issues already now (E.g. to show your programming skills) as well would be very welcome. | ||
- | 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:// | + | 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:// |
- | + | ||
- | * **[[# | + | |
- | * **[[# | + | |
- | * **[[# | + | |
- | * **[[# | + | |
- | * **[[#all components|all components]]** | + | |
- | + | ||
- | ---- | + | |
===== thunar ===== | ===== thunar ===== | ||
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: | 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: 15h (Could be part of a 175h/350h project)]** | ||
- | * To ease the editing of accels.scm | ||
- | * The linked bug contains an old WIP patch. | ||
- | |||
- | * [[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. | ||
- | |||
- | * [[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:// | ||
- | |||
- | * [[https:// | ||
- | * **[Difficulty: | ||
- | * **[Estimate time: 60h (Could be part of a 175h/350h project)]** | ||
- | * Implement a strategy that can handle when a resulting name of one file conflicts with the original name of the other. | ||
- | |||
- | * [[https:// | ||
- | * **[Difficulty: | ||
- | * **[Estimate time: 60h (Could be part of a 175h/350h project)]** | ||
- | * Unlike UNIX systems, Windows and macOS systems do not allow files that differ only by case. | ||
- | * Figure out how to check filesystem case-insensitivity ([[https:// | ||
- | * Implement a renaming scheme to fit case-sensitive names to case-insensitive filesystems. | ||
- | * Additional task: Warn user about case-insensitive systems | ||
- | * **[Difficulty: | ||
- | * **[Estimated time: 20h + dialog discussion (Could be part of a 175h/350h project)]** | ||
- | * Open an Issue first to work with this problem. | ||
- | * Dialog like " | ||
- | * Check if the filesystem is case-insensitive and/or the overwriten file only differs by case. | ||
- | * Figure out a way to inform the user about the problem without explaining too many technical details. | ||
- | |||
- | * [[https:// | ||
- | * **[Difficulty: | ||
- | * **[Estimate time: 60h (Could be part of a 175h/350h project)]** | ||
- | * 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/ | ||
- | |||
- | * [[https:// | ||
- | * **[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:// | ||
- | * Like that we would have the possibility to provide translations for all of these UCA's | ||
- | * We would need the possibility 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:// | ||
- | * Code in Xfdesktop, the desktop manager, would also need to be modified to handle disabled UCA's. | ||
- | |||
- | * [[https:// | ||
- | * **[Difficulty: | ||
- | * **[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 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:// | ||
- | |||
- | * [[https:// | ||
- | * **[Difficulty: | ||
- | * **[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 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. | ||
- | * It would be required to extend the thunarx API (API used by thunar plugin) in order to support custom emblems. | ||
- | |||
- | * [[https:// | ||
- | * **[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: | ||
- | * **[Estimate time: 160h (Could be part of a 175h/350h project)]** | ||
- | * 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:// | ||
* [[https:// | * [[https:// | ||
* **[Difficulty: | * **[Difficulty: | ||
- | * **[Estimate time: 175h (Could as well be part of a 350h project)]** | + | * **[Estimate time: 175h]** |
* So that all applications which want to pick a file will see the thunar dialog, instead of the foreign GtkFileChooserDialog | * 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 '' | ||
Line 161: | Line 51: | ||
* Dialog to pick specific file(s) and hit " | * Dialog to pick specific file(s) and hit " | ||
- | * [[https:// | + | * [[https:// |
* **[Difficulty: | * **[Difficulty: | ||
- | * **[Estimate time: 175h (Could as well be part of a 350h project)]** | + | * **[Estimate time: 175h]** |
- | * The way thunar monitors files and folders is not working that great. There are [[https:// | + | * A new view in order to maximize the space taken by thumbnails, |
- | * The idea is to either fix the current way thunar | + | * Most likely would require to introduce a new base-view, similar to [[https:// |
+ | * There is already an [[https:// | ||
- | ---- | + | * [[https:// |
- | [[|Back To Top]] | + | * **[Difficulty: |
+ | * **[Estimate time: 175h]** | ||
+ | * Check how other file managers (dolphin?) handle custom actions / which formats are used. Possibly we can follow some standard. | ||
+ | * That would allow distros to provide preinstalled uca's in a simple way. Related: [[https:// | ||
+ | * Precondition to [[https:// | ||
+ | * Support for reading uca.xml should be kept (For at least one thunar version) to keep backward compatibility. | ||
- | ===== 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, | + | |
- | + | ||
- | * Rewrite the Preferences Dialog | + | |
- | * **[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 to work with which has led a lot of other Xfce apps to build their UI through code (see Thunar' | + | |
- | * 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. | + | |
- | + | ||
- | | + | |
- | * **[Difficulty: | + | |
- | * **[Estimate time: 25h (Could be part of a 175h/350h project)]** | + | |
- | * xfce4-terminal supports | + | |
- | * 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/ | + | |
- | * Note that most likely this issue alone will not be sufficient for a GSoC project, you will need to bundle multiple | + | |
- | + | ||
- | * [[https:// | + | |
- | * **[Difficulty: | + | |
- | * **[Estimate time: 80h (Could be part of a 175h/350h project)]** | + | |
- | * **[Estimate time: 120h if migrating | + | |
- | * Currently xfce4-terminal doesn' | + | |
- | * Many other terminal emulators use the notion of " | + | |
- | * The goal of this project is to implement the aforementioned functionality | + | |
- | * It might be advantageous for this project to first migrate the preferences to xfconf, there is already an [[https:// | + | |
- | + | ||
- | ---- | + | |
- | [[|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, | + | |
- | + | ||
- | * [[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 (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: | + | |
- | * **[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: | * **[Difficulty: | ||
- | * **[Estimate time: 175h (Could be part of a 350h project)]** | + | * **[Estimate time: 90h]** |
- | * **[Estimate time: 350h (If the GSoC project includes porting of most panel plugins)]** | + | * Several thunar |
- | * The aim: Get xfce4-panel to run at sway or wayfire | + | * Nautilus already seems to provide such a service. Most likely |
- | * Minimum required changes: | + | * It would be required to extend |
- | * 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 | + | |
+ | * [[https:// | ||
+ | * **[Difficulty: | ||
+ | * **[Estimate time: 50h]** | ||
+ | * Currently, only the derivation from the default loading order is used to arrange toolbar buttons. This can lead to bugs | ||
+ | * In the future, either the name+subfolder of each toolbar-button (and UCA) should be used for indexing (or the path to some *.desktop file after [[https:// | ||
- | ---- | ||
===== all components ===== | ===== all components ===== | ||
- | Things which involve various xfce components at the same time | + | |
- | + | * **[Difficulty: | |
- | | + | * **[Estimate time: 10-90h |
- | * **[Difficulty: | + | * Currently only available for thunar, xfce4-terminal and mousepad(via plugin) |
- | * **[Estimate time: 60h (Could be part of a 175h/350h project)]** | + | * To be integrated as well into all other xfce applications which use keyboard shortcuts (TODO: Provide |
- | * Motivation: | + | * See [[https:// |
- | * For whoever likes to have buttons/ | + | |
- | | + | |
- | * 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:// | + | |
- | * https:// | + | |
- | * https:// | + | |
---- | ---- | ||
- | |||
===== Frequently Asked Questions ===== | ===== Frequently Asked Questions ===== | ||
=== What is the recommended format for the GSoC proposal ? === | === What is the recommended format for the GSoC proposal ? === | ||
- | We do not force any specifc | + | We do not force any specific |
+ | * Make sure you follow the [[https:// | ||
+ | * Draft some timeline to show in detail when you will have time to work on which exact part of your project. | ||
+ | * In case multiple participants will be picked, it can be beneficial to define an alternative targets to prevent overlap. | ||
+ | * Make sure to define some stretch targets, in case you finish your main target early | ||
=== Where can I start ? === | === Where can I start ? === | ||
Line 277: | Line 103: | ||
* [[https:// | * [[https:// | ||
- | * [[https:// | ||
---- | ---- | ||
- | |||
- | [[|Back To Top]] | ||
- | |||
==== GSoC Participants Blogs ==== | ==== GSoC Participants Blogs ==== | ||
* to be added | * to be added | ||
+ | ---- | ||
==== Previous Years ==== | ==== Previous Years ==== | ||
* [[projects: | * [[projects: | ||
+ | * [[projects: | ||
---- | ---- | ||
- | [[|Back to Top]] | ||
- | [[https:// | + | [[|Back to Top]] |