{"id":6752,"date":"2023-02-08T16:14:58","date_gmt":"2023-02-08T16:14:58","guid":{"rendered":"https:\/\/notmart.org\/blog\/?p=6752"},"modified":"2023-02-08T16:15:00","modified_gmt":"2023-02-08T16:15:00","slug":"how-to-report-multiscreen-bugs","status":"publish","type":"post","link":"https:\/\/notmart.org\/blog\/2023\/02\/how-to-report-multiscreen-bugs\/","title":{"rendered":"How to report Multiscreen bugs"},"content":{"rendered":"\n<p>As announced previously, Plasma 5.27 will have a significantly reworked <a href=\"https:\/\/notmart.org\/blog\/2022\/12\/multi-screen\/\">multiscreen<\/a> management, and we want to make sure this will be the best LTS Plasma release we had so far.<\/p>\n\n\n\n<p>Of course, this doesn&#8217;t mean it will be perfect from day one, and your feedback is really important, as we want to fix any potential issue as fast as they get noticed.<\/p>\n\n\n\n<p>As you know, for our issue tracking we use Bugzilla at this <a href=\"https:\/\/bugs.kde.org\/\">address<\/a>. We have different products and components that are involved in the multiscreen management.<\/p>\n\n\n\n<p>First, under New bug, chose the &#8220;<a href=\"https:\/\/bugs.kde.org\/enter_bug.cgi?classification=Plasma\">plasma<\/a>&#8221; category. Then there are 4 possible combinations of products and components, depending on the symptoms:<\/p>\n\n\n\n<figure class=\"wp-block-table\"><table><tbody><tr><th><strong>Possible problem<\/strong><\/th><th><strong>Product<\/strong><\/th><th><strong>Component<\/strong><\/th><\/tr><tr><td><ul><li>The output of the command <code>kscreen-doctor -o <\/code>looks wrong, such as:<\/li><li> The listed &#8220;priority&#8221; is not the one you set in systemsettings<\/li><li> Geometries look wrong<\/li><\/ul><\/td><td>kscreen<\/td><td>common<\/td><\/tr><tr><td><ul><li>Desktops or panels are on the wrong screen<\/li><li>There are black screens but is possible to move the cursor inside them<\/li><\/ul><\/td><td>plasmashell<\/td><td>Multi Screen Support<\/td><\/tr><tr><td><ul><li>Ordinary application windows appear on the wrong screen or get moved in unexpected screens when screens are connected\/disconnected<\/li><li>Some screens are black and is not possible to move the mouse inside those, but they look enabled in the systemsettings displays module or in the output of the command <code>kscreen-doctor -o<\/code> <\/li><\/ul><\/td><td>kwin<\/td><td>multi-screen<\/td><\/tr><tr><td><ul><li>The systemsettings displays module shows settings that don&#8217;t match reality<\/li><li>The systemsettings displays module shows settings that don&#8217;t match the output of the command <code>kscreen-doctor -o<\/code><\/li><\/ul><\/td><td>systemsettings<\/td><td>kcm_kscreen<\/td><\/tr><\/tbody><\/table><\/figure>\n\n\n\n<p>In order to have a good complete information on the affected system, its configuration, and the configuration of our multiscreen management, if you can, the following information would be needed:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Whether the problem happens in a Wayland or X11 session (or both)<\/li>\n\n\n\n<li>A good description of the scenario: how many screens, whether is a laptop or desktop, when the problem happens (startup, connecting\/disconnectiong, going out of sleep and things like that)<\/li>\n\n\n\n<li>The output the terminal command: <code>kscreen-doctor -o<\/code><\/li>\n\n\n\n<li>The output of the terminal command: <code>kscreen-console<\/code><\/li>\n\n\n\n<li>The main plasma configuration file: <code>~\/.config\/plasma-org.kde.plasma.desktop-appletsrc<\/code><\/li>\n<\/ul>\n\n\n\n<p>Those items of information already help a lot figuring out what problem is and where it resides.<\/p>\n\n\n\n<p>Afterwards we still may ask for more informations, like an archive of the main screen config files that are the directory content of <code>~\/.local\/share\/kscreen\/<\/code>  but normally, we wouldn&#8217;t need that.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">One more word on kscreen-doctor and kscreen-console<\/h3>\n\n\n\n<p>Those 2 commands are very useful to understand what Plasma and the rest of the system thinks about every screen that&#8217;s connected and how they intend to treat them.<\/p>\n\n\n\n<h4 class=\"wp-block-heading\">kscreen-doctor<\/h4>\n\n\n\n<p>Here is a typical output of the command <code>kscreen-doctor - o<\/code>:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code><strong>Output: 1 eDP-1<\/strong> enabled connected <strong>priority 2<\/strong> Panel Modes: 0:1200x1920@60<em>! <\/em>1:1024x768@60 <em>Geometry: 1920,0 960x600<\/em> Scale: 2 Rotation: 8 Overscan: 0 Vrr: incapable RgbRange: Automatic\n<strong>Output: 2 DP-3<\/strong> enabled connected <strong>priority 3<\/strong> DisplayPort Modes: 0:1024x768@60! 1:800x600@60 2:800x600@56 3:848x480@60 4:640x480@60 5:1024x768@60 <em>Geometry: 1920,600 1024x768<\/em> Scale: 1 Rotation: 1 Overscan: 0 Vrr: incapable RgbRange: Automatic\n<strong>Output: 3 DP-4<\/strong> enabled connected <strong>priority 1<\/strong> DisplayPort Modes: 0:1920x1080@60*! 1:1920x1080@60 2:1920x1080@60 3:1680x1050@60 4:1600x900@60 5:1280x1024@75 6:1280x1024@60 7:1440x900@60 8:1280x800@60 9:1152x864@75 10:1280x720@60 11:1280x720@60 12:1280x720@60 13:1024x768@75 14:1024x768@70 15:1024x768@60 16:832x624@75 17:800x600@75 18:800x600@72 19:800x600@60 20:800x600@56 21:720x480@60 22:720x480@60 23:720x480@60 24:720x480@60 25:640x480@75 26:640x480@73 27:640x480@67 28:640x480@60 29:640x480@60 30:720x400@70 31:1280x1024@60 32:1024x768@60 33:1280x800@60 34:1920x1080@60 35:1600x900@60 36:1368x768@60 37:1280x720@60 <em>Geometry: 0,0 1920x1080<\/em> Scale: 1 Rotation: 1 Overscan: 0 Vrr: incapable RgbRange: Automatic<\/code><\/pre>\n\n\n\n<p>Here we can see we have 3 outputs, one internal and two via DisplayPort, DP-4 is the primary (priority 1) followed by eDP-1 (internal) and DP-3 (those correcpond to the new reordering UI in the systemsettings screen module).<\/p>\n\n\n\n<p>Important data points, also the screen geometries (in <em>italic <\/em>in the snippet) which tell their relative positions.<\/p>\n\n\n\n<h4 class=\"wp-block-heading\">kscreen-console<\/h4>\n\n\n\n<p>This gives a bit more verbose information, here is a sample (copied here the data of a single screen, as the output is very long):<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>Id: 3\nName: \"DP-4\"\nType: \"DisplayPort\"\nConnected: true\nEnabled: true\nPriority: 1\nRotation: KScreen::Output::None\nPos: QPoint(0,0)\nMMSize: QSize(520, 290)\nFollowPreferredMode: false\nSize: QSize(1920, 1080)\nScale: 1\nClones: None\nMode: \"0\"\nPreferred Mode: \"0\"\nPreferred modes: (\"0\")\nModes:\n\"0\" \"1920x1080@60\" QSize(1920, 1080) 60\n\"1\" \"1920x1080@60\" QSize(1920, 1080) 60\n\"10\" \"1280x720@60\" QSize(1280, 720) 60\n\"11\" \"1280x720@60\" QSize(1280, 720) 60\n\"12\" \"1280x720@60\" QSize(1280, 720) 59.94\n\"13\" \"1024x768@75\" QSize(1024, 768) 75.029\n\"14\" \"1024x768@70\" QSize(1024, 768) 70.069\n\"15\" \"1024x768@60\" QSize(1024, 768) 60.004\n\"16\" \"832x624@75\" QSize(832, 624) 74.551\n\"17\" \"800x600@75\" QSize(800, 600) 75\n\"18\" \"800x600@72\" QSize(800, 600) 72.188\n\"19\" \"800x600@60\" QSize(800, 600) 60.317\n\"2\" \"1920x1080@60\" QSize(1920, 1080) 59.94\n\"20\" \"800x600@56\" QSize(800, 600) 56.25\n\"21\" \"720x480@60\" QSize(720, 480) 60\n\"22\" \"720x480@60\" QSize(720, 480) 60\n\"23\" \"720x480@60\" QSize(720, 480) 59.94\n\"24\" \"720x480@60\" QSize(720, 480) 59.94\n\"25\" \"640x480@75\" QSize(640, 480) 75\n\"26\" \"640x480@73\" QSize(640, 480) 72.809\n\"27\" \"640x480@67\" QSize(640, 480) 66.667\n\"28\" \"640x480@60\" QSize(640, 480) 60\n\"29\" \"640x480@60\" QSize(640, 480) 59.94\n\"3\" \"1680x1050@60\" QSize(1680, 1050) 59.883\n\"30\" \"720x400@70\" QSize(720, 400) 70.082\n\"31\" \"1280x1024@60\" QSize(1280, 1024) 59.895\n\"32\" \"1024x768@60\" QSize(1024, 768) 59.92\n\"33\" \"1280x800@60\" QSize(1280, 800) 59.81\n\"34\" \"1920x1080@60\" QSize(1920, 1080) 59.963\n\"35\" \"1600x900@60\" QSize(1600, 900) 59.946\n\"36\" \"1368x768@60\" QSize(1368, 768) 59.882\n\"37\" \"1280x720@60\" QSize(1280, 720) 59.855\n\"4\" \"1600x900@60\" QSize(1600, 900) 60\n\"5\" \"1280x1024@75\" QSize(1280, 1024) 75.025\n\"6\" \"1280x1024@60\" QSize(1280, 1024) 60.02\n\"7\" \"1440x900@60\" QSize(1440, 900) 59.901\n\"8\" \"1280x800@60\" QSize(1280, 800) 59.91\n\"9\" \"1152x864@75\" QSize(1152, 864) 75\n<strong>EDID Info:<\/strong>\nDevice ID: \"xrandr-Samsung Electric Company-S24B300-H4MD302024\"\nName: \"S24B300\"\nVendor: \"Samsung Electric Company\"\nSerial: \"H4MD302024\"\nEISA ID: \"\"\nHash: \"eca6ca3c32c11a47a837d696a970b9d5\"\nWidth: 52\nHeight: 29\nGamma: 2.2\nRed: QQuaternion(scalar:1, vector:(0.640625, 0.335938, 0))\nGreen: QQuaternion(scalar:1, vector:(0.31543, 0.628906, 0))\nBlue: QQuaternion(scalar:1, vector:(0.15918, 0.0585938, 0))\nWhite: QQuaternion(scalar:1, vector:(0.3125, 0.329102, 0))<\/code><\/pre>\n\n\n\n<p>Important also the section <code>EDID Info<\/code>, to see if the screen has a good and unique EDID, as invalid Edids, especially in combination with DisplayPort is a known source or problems.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>As announced previously, Plasma 5.27 will have a significantly reworked multiscreen management, and we want to make sure this will be the best LTS Plasma release we had so far. Of course, this doesn&#8217;t mean it will be perfect from day one, and your feedback is really important, as we want to fix any potential [&hellip;]<\/p>\n","protected":false},"author":2,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[3,16,1],"tags":[184,2,188,7],"class_list":["post-6752","post","type-post","status-publish","format-standard","hentry","category-blabla","category-software","category-uncategorized","tag-5-27","tag-kde","tag-multiscreen","tag-plasma"],"_links":{"self":[{"href":"https:\/\/notmart.org\/blog\/wp-json\/wp\/v2\/posts\/6752","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/notmart.org\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/notmart.org\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/notmart.org\/blog\/wp-json\/wp\/v2\/users\/2"}],"replies":[{"embeddable":true,"href":"https:\/\/notmart.org\/blog\/wp-json\/wp\/v2\/comments?post=6752"}],"version-history":[{"count":10,"href":"https:\/\/notmart.org\/blog\/wp-json\/wp\/v2\/posts\/6752\/revisions"}],"predecessor-version":[{"id":6762,"href":"https:\/\/notmart.org\/blog\/wp-json\/wp\/v2\/posts\/6752\/revisions\/6762"}],"wp:attachment":[{"href":"https:\/\/notmart.org\/blog\/wp-json\/wp\/v2\/media?parent=6752"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/notmart.org\/blog\/wp-json\/wp\/v2\/categories?post=6752"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/notmart.org\/blog\/wp-json\/wp\/v2\/tags?post=6752"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}