~~NOTOC~~ ====== Xfce Development Information ====== * **[[#Introduction|Introduction]]** * **[[#Communication with the Xfce development team|Communication with the Xfce development team]]** * **[[#Developer's Tools|Developer's Tools]]** * **[[#Debugging|Debugging]]** * **[[#Additional Reading|Additional Reading]]** ---- ===== Introduction ===== For new developers, it is recommended to read the [[https://andreldm.com/2018/12/03/xfce-contributor-guide.html|Ultimate Contributor's Guide to Xfce]] in order to get an impression on how to contribute to Xfce. * To request a contributor account, please [[:contribute:dev:get-a-contributor-account|see the docs]] for more information. * Before getting involved with development, it may help to check [[https://wiki.xfce.org/#developer_roadmaps_schedules|the current roadmap]] to get an overview of our current progress. * A guide to using Git with Xfce can be found [[:contribute:dev:git:start|here]]. * For more information on making a release, see [[:contribute:dev:make-a-release|Making a Release]]. * Xfce API documentation can be found on the [[https://wiki.xfce.org/api_documentation|Xfce development Wiki]]. ---- ===== Communication with the Xfce development team ===== There are various ways to get in touch with Xfce developers: * For general questions, the [[https://forum.xfce.org/|Xfce's Forum]], the [[https://mail.xfce.org/mailman/listinfo/xfce|Xfce mailing list]] and our [[https://matrix.to/#/#xfce:matrix.org|Matrix channel #xfce]] are places to go. * For any translation stuff, join the [[https://mail.xfce.org/mailman/listinfo/xfce-i18n|Xfce-i18n mailing list]]. * For anything code related, join our [[https://matrix.to/#/#xfce-dev:matrix.org|Matrix channel #xfce-dev]] or write to the [[https://mail.xfce.org/mailman/listinfo/xfce4-dev|Xfce-dev mailing list]]. * The [[https://matrix.to/#/#xfce-space:matrix.org|Xfce Matrix space]] gives an overview on all available Xfce related Matrix channels. (not yet supported by all matrix clients) * The former communication channels on IRC, [[irc://irc.libera.chat/#xfce|#xfce]] and [[irc://irc.libera.chat/#xfce-dev|#xfce-dev]] on Libera can still be accessed, though they are not officially supported anymore. All Xfce developers have a real life and live across multiple time zones. If you don't get an answer straight away, be patient and stay online! ---- ===== Developer's Tools ===== (The following list is extracted from [[https://andreldm.com/2018/12/03/xfce-contributor-guide.html|The Ultimate Contributor's Guide to Xfce]]) * Use whatever text editor/IDE you are comfortable with. * The terminal is your friend, get used to it, then you will love it. * If you want a local Docker-based build environment and build script check out the [[https://gitlab.xfce.org/xfce/xfce4-dev-tools/-/blob/master/helpers/xfce-build|xfce-build script]] and the xfce/xfce-build:latest container. * Now that almost all components are gtk3-based, [[https://wiki.gnome.org/action/show/Projects/GTK/Inspector|GtkInspector]] is an invaluable tool. * Offline documentation browser such as [[https://wiki.gnome.org/Apps/Devhelp|Devhelp]] is faster and more convenient than using a web browser. * [[https://glade.gnome.org/|Glade]] is a [[https://en.wikipedia.org/wiki/WYSIWYG|WYSIWYG]] interface editor, many Xfce components have their UI created using this editor. * [[https://wiki.gnome.org/Apps/DFeet|D-Feet]] is useful when dealing with [[https://www.freedesktop.org/wiki/Software/dbus/|D-Bus]]. * Tricky bugs will need advanced tools to find their cause, in this case [[https://www.gnu.org/software/gdb/|gdb]] and [[http://www.valgrind.org/|valgrind]] are good companions. * Xorg’s utilities, for instance [[https://linux.die.net/man/1/xev|xev]] and [[https://linux.die.net/man/1/xprop|xprop]]. * [[https://github.com/schuellerf/xfce-test|xfce-test]] is a Docker container "based on Ubuntu with a build from git sources of all core Xfce components" used for testing and development. See the [[https://wiki.xfce.org/testing/xfce-test|Xfce-test Quick Start Guide]] for basic installation instructions. ---- ===== Debugging ===== * [[https://docs.xfce.org/xfce/xfce4-panel/debugging|Debugging Xfce4-panel & plugins]] ---- ===== Additional Reading ===== * [[https://blog.xfce.org/2012/11/|How to start contributing to Xfce or any other open source project]] * [[https://www.gtk.org/|The GTK Project pages]] * [[https://people.gnome.org/~swilmet/glib-gtk-book/|The GLib/GTK+ Development Platform]] * [[https://git-scm.com/book/|Pro Git]] * See the [[contribute:dev:git:|Xfce/Git page]] for additional reference material on using Git [[|Back To Top]] ---- [[:contribute:start:|Back to main Contribute page]]