Improving MATE desktop environment
I want to improve MATE desktop environment by implementing full GTK3 support for its core components and applications.
Proposal Description
My task would be to implement full GTK3 support for MATE desktop environment. The environment itself is a Gnome2 (thus gtk2) fork, with the traditional desktop environment. It is very nice, very customizable, very fast (surprisingly), but the toolkit its applications are using is a bit old and to stay competitive they should get some refresh, especially by implementing GTK3 support. The work briefly is to expand their source with GTK3 counterparts where only GTK2 specific code exists. This shouldn't be a hard task for me, since I know C well and I have some GTK background via PyGTK. (and if I hadn't, it still wouldn't be a big problem, since GTK is just another framework with great documentation, so I could easily learn it.)
Planned timeline
As I have never been participating in GSoC yet, I don't know what to expect from it, but I will try to write down my detailed plan as particular as possible.
- May 9: Calculus (analysis) course exam.
- May 10: Management and Business Economics course exam.
- May 13: Basics of Programming (C++) course exam.
- May 16: Introduction to the Theory of Computing course exam.
- May 21 – June 28: I'm going to have 4 final exams, their dates are not specified yet.
- June 21-23: Trip arranged by my university.
- July 17-21: Alterába Music Festival1.
- Some day: Cycling round Lake Balaton. It shouldn't take more than 5 days but its date is undefined and the trip itself is not assured.
As for Google Summer of Code, I don't know exactly how fast I'm going to progress and what I'm going to do. I think I will set up a development environment in the first 1-2 days, learn the basics of collaborative development the next few days, then start making applications GTK3 compatible one by one. I will try to do my best, and if I finish with it before the end of the summer I'm willing to participate in Wayland support project or another MATE-specific task.