Solid/Projects/ScreenManagement

From KDE Community Wiki

How we work

All Solid projects operates in the same way, be sure to read How we work

Description

KScreen is the new screen management software for KDE Plasma Workspaces which tries to be as magic and automatic as possible for users with basic needs and easy to configure for those who want special setups.

The project is composed of a few components:

  • KDED Module: Saving and restoring configurations
  • KCM Module: Freely configure setups for each set of connected/plugged screens.
  • kscreen-console: Debugging tool

Project Status

KScreen is part of the Plasma Desktop.

Documentation

Currently we're lacking a good End user documentation, help is needed.

How to collaborate

KScreen is a KDE project, so we use the usual ways to communicate to each other and to work together (reviewboard, mailist, irc)

Project Page

KScreen is currently located in playground/base and libkscreen in playground/libs

Mailing list

We're using the kde-hardware-devel mailing list kde-hardware-devel

Debugging Information

We can't fix bugs if we don't have the needed information to diagnose the problem, so please provide the following information with your bug report:

Create a script with the following content:

#!/bin/sh
export KSCREEN_LOGGING=1
export QT_MESSAGE_PATTERN="[%{time hh::mm:s.zzz}] %{function}: %{message}"

And add it in a script in ~/.config/plasma-workspace/env (don't forget to make the script executable!). This will create a log file in ~/.local/share/kscreen/kscreen.log with relevant debugging information. If you don't have kscreen.log, then fix this, first.

Enable debugging output by opening ~/.config/QtProject/qtlogging.ini (if the file doesn't exist, create it) and make sure you have the following in it:

[Rules]
kscreen.*=true

The output of:

kscreen-console bug

may be helpful (but as of January 2023 it does not work under Wayland, Bug #464835).

If your bug is related to the SystemSettings module, please reproduce the bug while executing in a terminal:

kcmshell5 kcm_kscreen

If your bug is related to how KScreen reacts to certain events (for example you plug your monitor and nothing happens), execute the following in a terminal and reproduce the bug:

export QT_MESSAGE_PATTERN="[%{time hh::mm:s.zzz}] %{function}: %{message}"
kquitapp kded
kded5

This adds timestamps to the debugging output and then restarts the kded5 daemon. kded5 loads a kscreen plugin that restores a screen setup from the configuration and reacts to hardware changes, suspending, etc..

These configuration files contains screen configurations, please attach the files located in

~/.local/share/kscreen/* 

These are files with long hashnames that contain information about your screen setup. The filenames are relevant, please don't rename them. These configuration files contain the setup for different combinations of outputs, the files are picked based on connected displays (you can see that in the output of kded5 above).