Goals/Wayland: Difference between revisions

From KDE Community Wiki
No edit summary
Line 3: Line 3:
KDE community has [https://phabricator.kde.org/T11081 elected] to finalize the transition to Wayland and embrace the future of desktop.
KDE community has [https://phabricator.kde.org/T11081 elected] to finalize the transition to Wayland and embrace the future of desktop.


Wayland has been a great interest and effort to the KDE community as it aligns with its values and goals : security, lightweight and beauty. See more about wayland in our [https://community.kde.org/KWin/Wayland Wayland page].
Wayland has been of great interest and effort to the KDE community as it aligns with its values and goals to produce software that is secure, lightweight and beautiful. See more about Wayland in our [https://community.kde.org/KWin/Wayland Wayland page].


This goal will articulate in tracking down and fixing the issues that keeps our software from achieving feature parity with the venerable X Window system.
This goal will prioritize tracking down and fixing the issues that keep our software from achieving feature parity with the venerable X Window system. Our focus will be our own community software--KWin, Plasma and Apps--but will also be about helping the wider free software community to advance the Wayland feature set.
Our focus will be our own community software, KWin, Plasma and Apps but will also be about helping the wider free software community to advance Wayland feature set.


This is an ambitious goal, it cannot be a small team effort, we invite the wider community to participate.
This is an ambitious goal. It cannot be a small team effort, and we invite the wider community to participate.


== How to help ==
== How to help ==


There are a few ways to help this goal, some requiring no particular skills.
There are a few ways to help this goal, some requiring no specialized skills.


=== Bug triaging ===
=== Bug triaging ===
In order to fix bugs, we need to have precise reporting. Often we need to reproduce the issues reported, check it is not missing relevant information, ask for more information, ask to test a fix etc...
In order to fix bugs, we need to have precise reporting. Often we need to reproduce the issues reported, verify that bug reports include relevant information, request additional information, etc.


All of those actions are essential to the community to be able to fix the issues, and anyone can help.
All of those actions are essential to the community to be able to fix the issues, and anyone can help.
See the reported wayland [https://bugs.kde.org/buglist.cgi?bug_status=UNCONFIRMED&bug_status=CONFIRMED&bug_status=ASSIGNED&bug_status=NEEDSINFO&bug_status=REOPENED&keywords=wayland%2C%20&keywords_type=allwords&list_id=1662528&query_format=advanced bugs] you can help triage.
See the [https://bugs.kde.org/buglist.cgi?bug_status=UNCONFIRMED&bug_status=CONFIRMED&bug_status=ASSIGNED&bug_status=NEEDSINFO&bug_status=REOPENED&keywords=wayland%2C%20&keywords_type=allwords&list_id=1662528&query_format=advanced reported Wayland bugs] that you can help triage.


=== Testing ===
=== Testing ===
You can run plasma or a KDE Application and [https://community.kde.org/Get_Involved/Issue_Reporting report an issue] you noticed, in the bug tracker marking it with the keyword wayland.
You can run plasma or a KDE Application and [https://community.kde.org/Get_Involved/Issue_Reporting report an issue] you've encountered in the bug tracker and mark it with the keyword "wayland".
You don't need a wayland session to test apps in wayland just ''startplasmacompositor dolphin'' to try it out within wayland.
You don't need a Wayland session to test apps in Wayland; just ''startplasmacompositor dolphin'' to try it out within Wayland.


=== Developing ===
=== Developing ===
There are different ways you can contribute coding, you can pick a wayland bug in the known [https://bugs.kde.org/buglist.cgi?bug_status=UNCONFIRMED&bug_status=CONFIRMED&bug_status=ASSIGNED&bug_status=NEEDSINFO&bug_status=REOPENED&keywords=wayland%2C%20&keywords_type=allwords&list_id=1662528&query_format=advanced bugs] and give a crack at it.
There are different ways you can contribute with code. Pick a Wayland bug from among the [https://bugs.kde.org/buglist.cgi?bug_status=UNCONFIRMED&bug_status=CONFIRMED&bug_status=ASSIGNED&bug_status=NEEDSINFO&bug_status=REOPENED&keywords=wayland%2C%20&keywords_type=allwords&list_id=1662528&query_format=advanced known bugs] and give it a shot!


The simplest way would be to send patches for an application to fix their wayland shortcomings, you can use [https://community.kde.org/Guidelines_and_HOWTOs/Wayland_Porting_Notes the wayland porting notes] to help you.
The simplest way would be to send patches for an application to fix their Wayland shortcomings. [https://community.kde.org/Guidelines_and_HOWTOs/Wayland_Porting_Notes Rhe wayland porting notes] may be helpful.


For more advanced contribution, you can try to fix a plasma wayland issue, setting up a [https://community.kde.org/Get_Involved/development plasma developer environment] and send a patch to [https://community.kde.org/Infrastructure/Phabricator phabricator].
For more advanced contributions, you can try to fix a plasma Wayland issue by setting up a [https://community.kde.org/Get_Involved/development plasma developer environment] and sending a patch to [https://community.kde.org/Infrastructure/Phabricator phabricator]. And finally you can hack on KWin and Kwayland and following the [https://community.kde.org/Get_Involved/development developer environment setup] documentation. Start your journey with ''kdesrc-build kwin''.
And finally you can hack on KWin and Kwayland and following the [https://community.kde.org/Get_Involved/development developer environment setup] start your journey with ''kdesrc-build kwin''.


== Documentation ==
== Documentation ==
We have a few documentation pages to help with debugging and fixing bugs.
We have a few documentation pages to help with debugging and fixing bugs:
* For [https://community.kde.org/KWin/Wayland Wayland debugging tips and general information]
* For [https://community.kde.org/KWin/Wayland Wayland debugging tips and general information]
* For app developers and maintainers we have a documentation to [https://community.kde.org/Guidelines_and_HOWTOs/Wayland_Porting_Notes help porting to wayland]
* For app developers and maintainers we have a documentation to [https://community.kde.org/Guidelines_and_HOWTOs/Wayland_Porting_Notes help porting to Wayland]
* For new developer contributors wanting [https://community.kde.org/Get_Involved/development to start hacking]
* For new developer contributors wanting [https://community.kde.org/Get_Involved/development to start hacking]


Line 41: Line 39:


=== KWin and KWayland ===
=== KWin and KWayland ===
KWin as the KDE wayland compositor is the main component establishing a wayland session.
KWin is the KDE Wayland compositor, representing the main component establishing a Wayland session.
KWayland is an essential library wrapping low-level wayland API to higher-level Qt-Style API.
KWayland is an essential library wrapping low-level Wayland API to higher-level Qt-Style API.
Their work board is located at https://phabricator.kde.org/project/view/98/
Their work board is located at https://phabricator.kde.org/project/view/98/
      
      
=== Plasma ===
=== Plasma ===
Plasma, the KDE desktop, needs a lot of integration with wayland and KWin in order to provide a smooth experience.
Plasma needs a lot of integration with Wayland and KWin to provide a smooth experience.
Its wayland work board is located at https://phabricator.kde.org/project/view/99/
Its Wayland work board is located at https://phabricator.kde.org/project/view/99/


=== Apps ===
=== Apps ===
KDE has many great applications and we want to make sure they work flawlessly under Wayland.
KDE has many great applications and we want to make sure they work flawlessly under Wayland.
We will be helping the apps contributors testing and fixing their wayland support.
We will be helping the apps contributors testing and fixing their Wayland support.


== Upstream projects ==
== Upstream projects ==
===libinput===
===libinput===
[https://gitlab.freedesktop.org/libinput/libinput Libinput] as the input library for Wayland is a major dependency of Plasma and a few of our apps.
[https://gitlab.freedesktop.org/libinput/libinput Libinput] is the input library for Wayland, and a major dependency of Plasma and a few of our apps. We will probably need to work upstream to achieve our goal.
We will probably need to work with upstream, to achieve our goal.


=== Qt and QtWayland ===
=== Qt and QtWayland ===
Line 62: Line 59:


=== SDDM ===
=== SDDM ===
[https://github.com/sddm/sddm SDDM] as our main desktop manager, will need some contribution of our community to take full advantage of wayland.
[https://github.com/sddm/sddm SDDM] is our main desktop manager and will need some contribution of our community to take full advantage of wayland.


== Currently reported Wayland bugs ==
== Currently reported Wayland bugs ==
You can find open bugs associated with Wayland with
You can find open bugs associated with Wayland with
[https://bugs.kde.org/buglist.cgi?bug_status=UNCONFIRMED&bug_status=CONFIRMED&bug_status=ASSIGNED&bug_status=NEEDSINFO&bug_status=REOPENED&keywords=wayland%2C%20&keywords_type=allwords&list_id=1662528&query_format=advanced this query].
[https://bugs.kde.org/buglist.cgi?bug_status=UNCONFIRMED&bug_status=CONFIRMED&bug_status=ASSIGNED&bug_status=NEEDSINFO&bug_status=REOPENED&keywords=wayland%2C%20&keywords_type=allwords&list_id=1662528&query_format=advanced this query].

Revision as of 19:39, 6 October 2019

Intro

KDE community has elected to finalize the transition to Wayland and embrace the future of desktop.

Wayland has been of great interest and effort to the KDE community as it aligns with its values and goals to produce software that is secure, lightweight and beautiful. See more about Wayland in our Wayland page.

This goal will prioritize tracking down and fixing the issues that keep our software from achieving feature parity with the venerable X Window system. Our focus will be our own community software--KWin, Plasma and Apps--but will also be about helping the wider free software community to advance the Wayland feature set.

This is an ambitious goal. It cannot be a small team effort, and we invite the wider community to participate.

How to help

There are a few ways to help this goal, some requiring no specialized skills.

Bug triaging

In order to fix bugs, we need to have precise reporting. Often we need to reproduce the issues reported, verify that bug reports include relevant information, request additional information, etc.

All of those actions are essential to the community to be able to fix the issues, and anyone can help. See the reported Wayland bugs that you can help triage.

Testing

You can run plasma or a KDE Application and report an issue you've encountered in the bug tracker and mark it with the keyword "wayland". You don't need a Wayland session to test apps in Wayland; just startplasmacompositor dolphin to try it out within Wayland.

Developing

There are different ways you can contribute with code. Pick a Wayland bug from among the known bugs and give it a shot!

The simplest way would be to send patches for an application to fix their Wayland shortcomings. Rhe wayland porting notes may be helpful.

For more advanced contributions, you can try to fix a plasma Wayland issue by setting up a plasma developer environment and sending a patch to phabricator. And finally you can hack on KWin and Kwayland and following the developer environment setup documentation. Start your journey with kdesrc-build kwin.

Documentation

We have a few documentation pages to help with debugging and fixing bugs:

KDE community projects

KWin and KWayland

KWin is the KDE Wayland compositor, representing the main component establishing a Wayland session. KWayland is an essential library wrapping low-level Wayland API to higher-level Qt-Style API. Their work board is located at https://phabricator.kde.org/project/view/98/

Plasma

Plasma needs a lot of integration with Wayland and KWin to provide a smooth experience. Its Wayland work board is located at https://phabricator.kde.org/project/view/99/

Apps

KDE has many great applications and we want to make sure they work flawlessly under Wayland. We will be helping the apps contributors testing and fixing their Wayland support.

Upstream projects

libinput

Libinput is the input library for Wayland, and a major dependency of Plasma and a few of our apps. We will probably need to work upstream to achieve our goal.

Qt and QtWayland

Qt is the main framework upon which most of KDE software is built. As we have advanced needs, we might encounter issues or limitations with Qt or QtWayland (the Wayland integration Qt module) in which case we will work with the Qt community to address them.

SDDM

SDDM is our main desktop manager and will need some contribution of our community to take full advantage of wayland.

Currently reported Wayland bugs

You can find open bugs associated with Wayland with this query.