There are a lot of ways to get involved in KDE development. For example, you could write code, write documentation, find bugs, fix bugs, design logos or splash screens, draw icons, manage websites or do promotional work. The KDE project welcomes anyone who wants to help.
If you aren't sure where to start, read below - it provides an overview of the different aspects of KDE development, and of the KDE development community.
News and Mail Sources
The general direction of the KDE project is determined by those who do the work - there is no single high level plan for what KDE will look like in the future.
If you want to find out what is currently happening, then there are a number of sources you might like to consider:
- Mailing Lists
- Probably the best way to find out what's going on in KDE development. Archives are available here
- Receive notification of SVN commits in areas that interest you.
- KDE Commit-Digest
- Weekly summary of SVN commits.
- The Dot
- The KDE news site.
Getting Started with Coding
Getting started at coding in KDE is a matter of finding something to fix, and fixing it. You may want to consult the module overview to help find what you are looking for; once you have fixed something, you will want to send in a patch. If you do that a few times, you may want to apply for an SVN account so you can fix things directly.
- Module overview
- Sending patches
- Applying for a KDE SVN Account
- First steps with your new SVN account
At the moment, there are two choices for development within KDE - you can work on KDE3, or KDE4. KDE3 is a good choice for bug fixing, however the main development work effort (and all new features) is on KDE4. This document mainly focuses on work in support of KDE4.
KDE is mostly written in C++. If you are not familiar with C++, you should do at least some work on it. There are a number of good books on C++ - an excellent source is Bruce Eckel's "Thinking in C++", which is available both as a free download and as a printed document - see http://mindview.net/Books/TICPP/ThinkingInCPP2e.html. It isn't essential to understand everything before you start in KDE, but you do need to understand basic syntax and operations.
To become proficient with KDE coding, you should understand the Qt toolkit. If you are not familiar with Qt, you should work through the tutorials included with Qt. Note that these tutorials are also available online (see http://doc.trolltech.com/latest/examples.html) for the Qt4 version, and http://doc.trolltech.com/3.3/tutorial.html for the Qt3 version.
If you need a gentler introduction to Qt, or would just like an alternative view, then you may wish to look at the The Independent Qt Tutorial.
More suggestions on becoming familiar with Qt4 are available at http://doc.trolltech.com/latest/how-to-learn-qt.html. A copy of this documentation is also provided with Qt4.
A range of information on KDE techniques is available in the tutorial section. Note that some of these tutorials are still based on KDE3, however they should be at least partly applicable.
You will also find useful information on KDE coding in the HOWTOs and FAQs section. This information may also be somewhat dated for KDE4, however much of it is broadly applicable, even outside KDE.
A list of some books that may help with KDE coding is provided in the Books section.
Last, but by no means least, KDE comes with extensive class (Application Programmer Interface) documentation. This is available in the KDE API Reference Manuals section, which also contains a number of useful links on how to write or update the class documentation. You can also generate these on your own machine, or refer to a more up-to-date online version at The English Breakfast Network.
A more detailed description of the steps above is available in our Programming Guide.
Getting Started with Documentation
KDE documentation work is very important, and can always use more developers to write new documentation, review and proofread current documentation, and to do translations and localization.
For more information on getting started, refer to the Joining the KDE Documentation Team reference. There is a wealth of information on the KDE Localization web site, including list of the Translation Teams.
Getting Started with Usability
KDE developers have become increasingly committed to usability, and if you have expertise in this area, you may wish to become involved in the KDE Usability Project. The best way to get started is to participate on the mailing list - see the KDE Usability Project Contact page.
Getting Involved in Accessibility
KDE Accessibility activities (making KDE accessible to all users, including those of us with physical handicaps) are coordinated on the kde-accessibility mailing list (see the KDE Accessibility Contact page). The best way to become involved is to discuss issues and solutions on the mailing list.
Getting Started with Artwork
For information on getting involved in the KDE art community, see the KDE-Artists website. KDE artists use a combination of IRC and mailing lists.
Getting Involved in Bug Hunting and Application Quality
There are a large number of applications within KDE, and not all of them have a maintainer dedicated to managing bugs and generally helping out with all the issues associated with turning some working code into a polished application.
If you are interested in helping out with KDE, but don't know where to start, becoming a member of the KDE Quality Team might appeal to you - see the Quality Team website for more information. Note that you do not need any programming skills to become involved.
Of course, you can become involved in bug hunting without being part of the KDE Quality Team - just create yourself an account on the KDE bug tracking system, and start searching / sorting through the bugs. Again, you don't have to have programming skills - it helps the programmers enormously just to have a procedure that allows a bug to be consistently reproduced.
- Kernel Cousin KDE
- Summary of the development mailing lists. The Kernel Cousin KDE ran for 76 issues, from 10 March 2001 until 16 April 2004. The KDE Commit-Digest (described above) is its logical successor.