Fetching the latest programs, projects, and workspace data.
A diverse and sustainable free software desktop.
Showing 5 of 49 projects. Click any project card for scope, mentors, and proposal studio.
Mentors: Student: Laureen Caliman
Created in the early 2020’s, GNOME Crosswords became a well-liked application powered by the libipuz C library. While robust, it does not have customizable vocabulary-style puzzles. However, the implementation of a grid-generating algorithm would provide GNOME Crosswords with the ability to diversify their consumer base to even more educators. The primary focus will be to introduce a vocab-style puzzle generator to the GNOME system. The algorithms must be able to interlock words on a 2D grid tightly without breaking rules, sort inputs by length, seed the board dynamically, recursively match words to find orthogonal points to sew words together, check the constraints per surrounding cells, and score upon a placement with the failsafe to take a step back and rearrange the former word suitably. Doing so requires creating classes using GObject and GLib. A full-stack approach must accommodate for validating vocab puzzles using libipuz and Glib in the backend, and also provide an input editor for users which render a grid focused on quality using GTK4, GObject, and libadwaita in the frontend.
Mentors: Student: Shyam Jagath
This proposal aims to add a simple built in way to uninstall applications directly from the GNOME shell App Grid Right now users have to open the GNOME software app or use the terminal just to delete a application. This project solves that by adding an "Uninstall" option straight into the app's right click menu. When a user clicks it, the system will quietly tell GNOME software to remove the app in the background. To show the user that it is working, the app's icon will fade slightly and then disappear completely once the uninstallation finished. By cutting out extra steps and keeping users in their normal workflow, this feature will make managing apps much faster. This will promise to smooth out a very common task and noticeably improve the daily experience for anyone using GNOME desktop
Mentors: Student: Shivam_.
GNOME Gitg is a graphical user interface for Git that aims to be a small, fast, and easy-to-use tool for visualizing repository history and managing projects. It is currently built on the GTK 3 toolkit, which is expected to be deprecated in the future. This proposal focuses on migrating Gitg to GTK 4, ensuring long-term maintainability, better performance, and a more modern user experience.
Mentors: Student: Michael Calabrese
The Pitivi timeline ruler currently relies on a legacy Python implementation using GTK3 and the Cairo drawing model. As Pitivi updates to a modern GTK4 native structure, the CPU-heavy Cairo draw calls are becoming a bottleneck for rendering time markers and frames at varying levels of zoom. This project will rewrite the ruler as a standalone, native GTK4 widget using Rust and ‘gtk-rs’. By moving away from Cairo and utilizing GTK4’s hardware acceleration via ‘GtkSnapshot’ and Render Nodes, the new ruler will be significantly more performant and memory-safe. Following a modular design philosophy, the widget will be built independently with a robust GObject API before being integrated into Pitivi’s existing Python and GStreamer Editing Services (GES) infrastructure using GObject introspection.
Mentors: Student: Angelo Verlain Shema
GJS is a JavaScript runtime built on Firefox's SpiderMonkey JavaScript engine and the GNOME platform libraries. It allows the use of the GNOME platform libraries in JavaScript programs. GJS powers GNOME Shell, Maps, Characters, Sound Recorder and many other apps. The Debug Adapter Protocol (DAP) defines the abstract protocol used between a development tool (e.g. IDE or editor) and a debugger. DAP makes it possible to implement a generic debugger for a development tool that can communicate with different debuggers via Debug Adapters. DAP is already supported by the most prominent code editors and tools like VS Code, Zed, Emacs, etc… (https://microsoft.github.io/debug-adapter-protocol/implementors/tools/) Today, you can already debug applications and libraries written for/with Android, Node.js, Deno, C, C++, Rust, Python and more (https://microsoft.github.io/debug-adapter-protocol/implementors/adapters/). This proposal aims to make GJS applications and libraries like GNOME Shell, Maps, Decibels etc… debuggable by implementing a DAP adapter for GJS.