Display Management in KDE

As some of you might have noticed, display management in KDE is not really something we could be proud of. It does not work as expected, it lacks some features and it’s not really maintained. Time to change it, don’t you think? Smilie: :-)

The effort was initiated by Alex Fiestas (who is too busy to making KDE rock, so the blog post is up to me Smilie: :-)). Alex has written the libkscreen library that provides information about available/connected/enabled outputs and notifications about their changes. He also intends to write a KDED daemon that would listen for these events and depending on connected monitors (every monitor can be uniquely identified by it’s EDID) it would load specific configuration. For example, docking your notebook into a docking station at work would automatically turn on a second monitor and place it left of the notebook screen (or whatever you configure the first time you do it). Undocking the notebook and connecting a data projector in a meeting room would automatically set clone mode etc. etc.

This also requires a new UI in System Settings which is the part I’m working on.

It’s written in QML and allows you to configure your displays by dragging them around rather then configuring them through combo boxes. Picture is worth a thousand words, and when it’s a moving picture, well…..

Download OGV (1.8 MB) (in real time the animations are faster and smoother of course)

The best part of all this is that users won’t be exposed to the KCM very often, because connecting an already-known monitor will configure it and place it automatically depending on the last configuration. Connecting a previously unknown output should pop up a simple window/dialog where user can quickly select whether the display should be left/right/clone of the active screen or open the KCM and perform more advanced configuration.

(Note: this is just a preview, we will have the icons made by someone sane)

Right now I’m abusing the krandrtray icon for the applet. It does not provide any rich features like krandrtray though, it only has a context menu with a single action to start the KCM. This should be enough because unlike current krandr-based display configuration there most things will work automagically.

And of course we will take care of displaying these dialogs and windows on the correct screen (that is the one that is connected and enabled) Smilie: :-)

Finally, we want to use KWin scripting engine to display a black overlay over the entire desktop when changing display configuration in order to hide Plasma flickering and resizing from users and make it look like a smooth transition.

Hopefully I didn’t miss anything Smilie: :)

Category(s): KDE
Tags: , , , ,

109 Responses to Display Management in KDE

    Pavol Polacek says:

    Hello guys,

    The current display management was slowly driving me crazy, so I’m excited to hear about an upgrade. I connect different secondary monitors on a daily basis and it takes up unnecessary amount of time to set up everything. Looking forwatd to try this out.

    Thank you and Alex for the efford,


  1. Great, you tackle my most hated KDE issue. I love you for that!!!

    All thumbs up!

  2. Hi, congrats, it’s been a while that I try to help Alex with this thing but he always said it was almost finished Smilie: :P
    Anyway, from the screenshots I see you don’t (yet) show the monitor’s name, so if you need help to interpret the EDID you can look at the code I have on colord-kde that does that. Just poke me if you get confused since it’s not a simple thing Smilie: :P

  3. i would appreciate a name from edid feature! keep on guys!

  4. Sounds great! Right now I have a collection of xrandr bash scrips that I use configure my various monitor setups and it would be great to have the GUI handle this.

    One question. Would this solve the problem of a laptop starting up and trying to output to external monitors that are no longer connected (instead of outputting to the laptop screen)?
    Thanks for your work on this!

    • If you mean during boot then no, this is probably a BIOS thing. If you mean like about suspending laptop, disconnecting output and waking up your system again then yes, that should work (it will require integration of the kded daemon with upower probably, as it would not receive any notification from X11 when suspended.

      • very cool, this is exaclty my use case. Cant wait to see this in kde!

        • Second this. Please, oh please think about laptop users. I want to suspend my laptop while docking and open it up outside docking with a working screen and password prompt.

          Cannot wait to see this working!

  5. Love it! I really do!

  6. That sounds great. Gnome has always been good at remembering the layout that i used last time, when plugging in an external monitor. So when i arrive at work, i just plug the vga cable into my netbook, and i’m good to go.

    When Gnome3 came out, i looked around at other options. KDE would detect the monitor, and pop a dialog from which i could open the epic monitor configuration panel, and set all the settings. I had to do this every time i plugged in the monitor.

    Anyway i ended up using MATE. I may try KDE again when the next version comes arround.

    • Gnome display settings works perfectly. It does also remember the setting used for every particular monitor. In the office, I use both laptop display and an external monitor, at home, I turn off the laptop display. Gnome display settings remember both. When I plug in the external monitor in the office, I get what I want, same at home. No fiddling with anything, just magic.

  7. Great to see work started on this. The foundational ideas are great imho, though the kcm Ui could use some coordination with the rest of the workspace. Perhaps you could drop a line to plasma-devel@kde.org where it can be tested, discussed and refined by the workspaces team?

  8. This looks really great, and covers just about everything. The only exception is the selection of the ‘primary’ monitor – how will you handle that? I think that the choice of primary monitor should be remembered for the combination of screens currently connected. So maybe if I have just my laptop, then I want that to be the primary screen, but if I plug in an external screen then I want the primary to switch to that (and then back again when I unplug).

    • “Primary” is a yet another property (like resolution, rotation, position), so it will be remembered as part of the profile configuration, based on connected outputs. So this will work out-of-box Smilie: :)

        Samuel Sarette says:

        Yes, but will there be a nice combo-box/check marks to SET said value of primary display or is that what those strange green check marks on the display positioning area were?

        • “Primary” is represented by the yellow star (haven’t found a better icon yet).

          The green check/red X represent enabled/disabled state of connected monitor.

          • What about using a thicker border for the primary monitor that the current implementation uses? Would minimize clutter. You could add an explanation “Press Ctrl to prevent snapping bla. The monitor with thick frame is the primary one” to your sentence below the graphic Smilie: :)

          • (sorry, reached max depth of replies)

            The new KCM is supposed to be interactive. That means dragging displays around, rotating and toggling primary flag directly on the display object rather then through a set of comboboxes and buttons somewhere else in the window (doesn’t apply on resolution yet, but when I find out how to add a popup menu to each dispkay box…Smilie: ;)

          • Oh, right, forgot that without the star there is nothing to click on. My bad Smilie: :)

  9. Hey guys,

    nice work. Would it be possible to configure the login screen this way too? I would like it very much when the login field would only appear on one of my monitors and not on all (which will set down my display resolution as well).

    • I don’t know how difficult it would be to integrate this with KDM…Maybe it would be possible with LightDM, which already talks to upower regarding powersaving, so it might be more open to other “frameworks”. But definitely a think to discuss with devs of both projects. Thanks for bringing that up.

    • Have you tried LightDM-KDE? If you haven’t you should give it a try.

      The included themes work similarly to what you are asking (i.e. they only show the login prompt in one screen and each monitor uses its default resolution). In addition to this the prompt follows your mouse when it moves to another screen, which I think its a major bonus.

      • Hi,

        i tried this in Kubuntu 12.04 but it didn’t work but maybe it will work better in Sabayon I will try that.
        I know that lightDM in Ubuntu 12.04 does exactly what you describe but not when you use Kubuntu.

        • Hi Daniel Smilie: :)

          You installed LightDM-KDE and it didn’t work? That’s odd…

          I believe Kubuntu 12.04 uses KDM by default. You’d have to install LightDM-KDE separately (not sure if it’s in the repos ) and enable it to run instead of KDM (I’m not sure how to do this, maybe using some dpkg command?). Or you can simply wait for Kubuntu 12.10 which will use LightDM-KDE by default!

  10. sweet sweet sweet Smilie: :)

    One little suggestion, could you change the “What would you like to do?” with “How should the second monitor be used?”. That first question is used in Windows all the time, it even was Microsoft’s tagline and gets really dull. The second question is also more active from the point of the questioner.

    • Reminds me of “How do you want to crash today?” Smilie: :-D

      Of course, the applet is just a quick demonstration of how it will probably look like, so this (and possibly other things) will change. ATM it does not event have any integration with display management, we need to discuss how it should actually work.

  11. Just one word – aaaawwwwwwesome! You made my day, thanks so much Smilie: :) This will save me a large amount of my time and nerves.

  12. “He also intends to write a KDED daemon that would listen for these events and depending on connected monitors (every monitor can be uniquely identified by it’s EDID) it would load specific configuration.” [...] You must have heard my prayers……
    I am waiting for that feature for years now…. Smilie: ;)

    If this KDED daemon would be able to change the whole desktop configuration would be very nice.

    Enrico Tagliavini says:

    This is very very nice and appreciated. The GUI is very nice and the idea of having a persistent configuration based on the EDID is simply wonderful. Please try your best to have it ready for 4.10, we really need this work.

    Paul Eggleton says:

    because connecting an already-known monitor will configure it and place it automatically depending on the last configuration.

    Massive win! Very much looking forward to all of this functionality.

  13. This is just great news. I use dual monitor setup every day and too often it is a hassle! Great to see that you make progress on this!

  14. Great to see improvements in this area. Here are some additional suggestions:
    – Make sure to get some input from usability people. The use of icons does not look intuitive to me. Are those screens so terrible that they only receive a 1-star rating? Clicking ❌ to enable a screen and ✔ to disable it again is messed up.
    – Try to reduce the visibility of the refresh rate. The refresh rate is a technical implementation detail that should not matter to users at all, as the computer knows better.
    – Draw the resulting display rectangle, this is important when some areas of the virtual display are not covered by any physical display.

    • – Make sure to get some input from usability people. The use of icons does not look intuitive to me. Are those screens so terrible that they only receive a 1-star rating? Clicking ❌ to enable a screen and ✔ to disable it again is messed up.

      The start should represent primary display. Didn’t find a better icon for “primary” Smilie: :-) I think the icons for enabling/disabling output are OK, since you are clicking on them to toggle the state from current to an another. But as you say, it will be discussed with people who really understand “normal users” (unlike me Smilie: :D )

      – Try to reduce the visibility of the refresh rate. The refresh rate is a technical implementation detail that should not matter to users at all, as the computer knows better.

      Refresh rate can be important when using TV. There is the “Auto” option, which is always pre-selected, so users don’t really have to care about it and can just rely on us choosing the correct refresh rate.

      – Draw the resulting display rectangle, this is important when some areas of the virtual display are not covered by any physical display.

      Good idea!

      Thanks for your input!

      • I definitely need the refresh rate option. I have a monitor hooked up to an HDMI port on my laptop that always defaults to 30Hz instead of 60 for some reason. I have to change it every morning when I get to work.

        • I definitely need the refresh rate option. I have a monitor hooked up to an HDMI port on my laptop that always defaults to 30Hz instead of 60 for some reason. I have to change it every morning when I get to work.

          Well, we should really start fixing the root cause of such bugs instead of papering over them.

      • The star should represent primary display. Didn’t find a better icon for “primary”
        The association chain “favourite” → “favourite display” → “primary display” only makes sense for people who are actually familiar with the concept of a primary screen (including myself, I’m just playing devil’s advocate here).

        Refresh rate can be important when using TV. There is the “Auto” option, which is always pre-selected, so users don’t really have to care about it and can just rely on us choosing the correct refresh rate.
        You can still hide the refresh rate as long as you have EDID information available.
        Also, I would hide the refresh rate from the screen rectangle if it is set to “Auto” (which you should rename to “Automatic”Smilie: ;).

        Btw, it might make sense to ensure that screen areas always contact each other – unless there is a real use case I missed, of course.

        • what if the device posts incorrect EDID information… This has happened to me before.

          • what if the device posts incorrect EDID information… This has happened to me before.

            Those things happened in the past, true, but should not happen anymore.
            (Especially since both Windows and OS X rely on EDID data, they don’t offer refresh rates anymore)
            Incidentally, KMS does not cope well with broken EDID either.

  15. Hey! This is awesome, I’ve been battling with multi monitor setups on a daily basis too, and this is a very welcome addition. There’s one thing that I’d like to comment, I love how we can have monitors overlap (specially a smaller monitor overlapping a region of a bigger one), and fine tune the coordenates that each physical monitor will show… can this be considered in the QML UI you’re working on?

    Thank you!

    • Hi,

      you can have the monitors overlapping – by holding Ctrl when dragging the monitors, you can freely move them and set any kind of overlap you want to (this is not shown on the video). Displaying coordinates of the current monitor should not be a problem, I was even playing the implementation, but disregarded it because I didn’t know where to put the label with position Smilie: :-) I’ll rethink it and put it back.

      Thanks for your comments!

  16. I’m really looking forward to see it in action. The hassle at the moment is the only reason why I still stick with Gnome.
    Thank you for your work!

  17. Whoppee!! when gnome2 was discontinued from fedora, I tried KDE instead of gnome3. The inability to cope automatically with attaching monitors, plugging/unplugging to dock drove me insane. I undock my laptop several times a day, so that functionality is a deal breaker to me. Because of that I have stayed on Fedora14.
    I will try KDE again when you get these things working, so thanks, I’m happy to hear there is progress.

    (and yes, I’ll be testing mate too).

  18. Thanks for your efforts, if you need a beta tester, I have 8 monitors with 2 video cards on my PC. Just let me know. Thanks again.

  19. I use multiple monitors on KDE all the time.

    One thing that ‘broke’ recently is what happens when apps (including $%!@#$ flash apps) go fullscreen. At one point in the past, they went fullscreen on whatever monitor they were on. Now they go fullscreen on the primary monitor. This isn’t always the right thing to do (when I have a laptop connected to an external HDTV or projector for example)

    At work, I have three monitors (all different sizes) all rotated by 90 degrees. Every time I boot up I have to startup the krandr widget and fix the monitor positions.

    I’m now running kubuntu 12.10 beta, and am willing to experiment with new stuff, contact me at david at lang dot hm if you want another test subject.

  20. Awesome! Any idea on when it may be available? As a heavy docking station user, this has made my entire day!!! Let me know if you need help testing.

  21. Awesome job. This is what we all needed for a long time!

    A small question/suggestion:
    is it possible to integrate the applet with system notofications? So that we do not need to keep the applet in tray for “just in case”. Me personally, i removed teh sytray completelly Smilie: :-) and use only plasmoids.

    • We still need to think about these use cases. Whether it’s possible to use notification system, or whether to display a Plasma applet…there are many possibilities, I didn’t talk about this with Alex yet, but I bet he already has some awesome ideas Smilie: :)

  22. Only one word: great!!

    I’m really missing this feature! It will finally fix https://bugs.kde.org/show_bug.cgi?id=277483 where I had already suggested the behaviour you are describing.

    Will it be in 4.10?

    By the way, I like the “extend left/right” and “do nothing” icons.

    For the rotate button on the screen: although it is the same as in Gwenview, it looks a bit like “Reload” to me. You might want to put one button for clockwise and one for anticlockwise rotation. Then it is also clear that it doesn’t mean reload.

    • We hope it will fix more then just this one bug Smilie: :-) There are plenty of bugs in BKO as well as in our Fedora and RH bugzilla and we just want to fix them all!

      For the rotation – the counterclockwise rotation can be achieved by right-clicking the icon. As long as it’s an official “rotate-left” Oxygen icon, I don’t know why to change it. We’ll see what usability/Plasma guys suggest to do Smilie: :)

    Matt Thompson says:

    Another use case to consider is a laptop with outputs for two external displays and a limitation of only driving two displays at once. When I plug in both external displays, I need to disable the built-in display in order to drive the two externals. I think this is a pretty common situation for laptops with the exception of some newer models which can drive at least 3 displays.

    This is great news!

  23. God finally.

    /me uses laptop + multi monitors every day with KDE.

    LOVE_MOSS_NOT says:

    If only Linux would support multi-core GPUs, and no XINERAMA without 3D aint cool…

  24. Hi, thanks for your work, I really look forward to the release including this.

  25. Wow, I would actually consider Linux if this was available. I have had laptops for years that could output to 3 monitors, and linux was terrible and dealing with them. Is there someone I can sign up so I can be notified when this is available so I can try it out?

    Thank you for your efforts!


    • Hi,

      just follow my and Alex’s blogs, we will ne posting updates about our progress. I’d love too see it in KDE 4.10 and I think it’s a very realistic estimation Smilie: :-)

  26. Looks really awesome!

    Just one thing… maybe one should hide the list of available resolutions and autoselect the maximum one (as i think this is what 99% of people use) and only if one wishes to change it show the list.

  27. Hi this is really good news thanks for the post.

    Ps. What distro are you using ? and what’s the name of the complete theme/look of your kde.

    Thanks motivated me to love more my desktop

  28. Wow! It’s needed… Thanks!

    Something I would like to have is a way to show or hide panels if a monitor is connected or not. Could you confirm that something like that will be available?

    Thanks again!

    • Hi,

      this is not planned atm (or at least not as part of our current effor). Panels are under control of Plasma, so Plasma would have to be “display profile” aware. Can be achieved though, I just can’t tell when, how and who will do it Smilie: :)

  29. I really like this idea and look forward to it landing in a new release! One thing though that I would suggest is also giving the option to Extend Up and Extend Down. At home I have my netbook on a rather large desk and a monitor up on the top shelf of the desk so that I can watch videos and such on the monitor up top while doing work on the bottom screen or when I want to relax in the back of the room where it would be rather difficult for me to easily view the netbook screen. It would be great if it was made easier to facilitate the adding and removing of the second screen in this particular configuration!

    Thanks again to you and all the KDE devs out there!

    David Edmundson says:

    Wondered what you’ve been up to recently Smilie: :)

    Loving the popups, that parts looks really well thought through, and the dragable part in the systemsettings looks pretty sweet.

    On a more cynical note, the panel for resolution/refresh look completely out of place. When you’re outside the workspace everything has QWidget style buttons and menus about, using something else will look wrong. (let alone what this will look like for people who use a different widget style)

    • First: great work!

      Regarding, the KCM, I have the same feeling as David… my rule of thumb for this is: “if it has window decorations, user interface elements should look like ‘application’ widgets”.

      I think it is fine to use QML for the top part (where I assume it is the most useful) because those are not standard widgets people expect to recognize. The bottom part, on the other hand, should use application widgets.

  30. What happens with the panel?
    I can see several options. For example, when I plug a 2nd display into my laptop (not cloned), I probably want it to get its own panel, (and have the taskbar only list windows from that screen). When I unplug, I don’t want my carefully crafted panel setup to change, but I do want to ensure that the K menu remains on the visible display. What if I boot up with external display connected as primary (and the panel/launcher on external), then unplug my laptop? At bare minimum, I need a launcher icon on the desktop. What about when my external monitor is physically plugged in, but turned off?

    • This is a problem with Plasma. Our effort at this moment is only to ensure that monitors are correctly configured when plugged/unplugged etc. What is still unsolved is for example what to do with Plasma applets on a monitor you disconnected. This will be discussed with Plasma people and it would be nice if we also managed to get someone from Plasma to work on it, since I’m not really familar with Plasma code.

  31. Some ideas on making this visually cleaner:

    This includes:
    1. Whether a monitor is active or not is displayed by greying out, when inactive rather than putting ticks everywhere. It’s also visible in the toggle switch of the monitor you have selected.
    2. Screen resolution / refresh rate for is displayed only in the panel at the bottom, for the selected monitor.
    3. More meaningful names can be given to monitors by the user. I imagine this would start off with the EDID, but when the user moused over the name, it would highlight and change to a text edit cursor. If they click, they can type a “friendly” name, which would be remembered with the monitor’s other preferences.
    4. The tip about ctrl for temporarily deactivating snapping would go into what’s displayed when they click the “More info” icon. Most of the time users wouldn’t be using it., and little functionality is lost by not using it at all.
    5. The selected monitor is indicated by a border glow, just like selected windows in Kwin.
    6. Rotation arrows fade in when mousing over a monitor. These could be either clicked or dragged (with snapping on release to 90 degrees). Yes, I know, these aren’t the standard Oxygen icons. Unfortunately the standard Oxygen icons really don’t work in this context without looking fugly.
    7. Everything in the bottom panel has been moved left to horizontally align with the window area above, and the help button below.
    8. Boxes use rounded corners (don’t tell Apple!) to give a more organic feel.

    I think work could still be done to make things like the list of resolutions and screen rates more standard, but tell me this doesn’t look more attractive. Smilie: :)

  32. Fantastic work! Thank you and all who made that happen.

    One thing related to accessibility:
    Please make sure the kcm is still fully usable evwn without mouse using keyboard only. With the previous Comboboxes somebody could Tab-Tab and use the key up/down.

    This is not only important for those who just cannot use a mouse but also for those who prefer keyboard over mouse (lot of us hackers, heh) or just alternate input methods (touch, joystick, tablet, …Smilie: ;).

    Lot of thanks. Keep up rocking Smilie: :)

  33. I know this is pretty much a “yes, I’d like a pony with that” kind of feature request, but one can always hope. I’m currently using an Asus Zenbook Prime that has a 108p display, and usually also an external monitor that’s also 1080p. The problem is the notebook has a 13″ display, the external monitor is 24″. So trying to find a DPI setting for fonts that’d look good on both displays is quite hard, if not impossible. It would be better than sliced bread if one could have apps run with a different DPI depending on the display. Is this technically even possible, and if yes, is this feature being considered?

    • Hi,

      unfortunatelly that’s not possible. X server is not able to use different DPIs for different monitors. The problem is mainly how to render a window which is partly on one and parly on the other screen – X server can’t “unzoom” part of the window to do so.

  34. I was wondering if you could also include support for Multiseat. All that is needed is to properly configure X11. Working configuration is described here


    I would be happy to help with testing

  35. I’m looking forward to this. Right now, I’m using autorandr/auto-disper and a custom script. I can create a profile for every ‘setup’. I have 4 situations:

    Desk (laptop + 22″ monitor)

    I have set up my auto-disper profiles and after that wrote the custom script that checks every 10 seconds what displays are connected. Right now, my “normal” set up is Desk. Then the work day is finished and I want to watch a movie or something, I disconnect the VGA cable and within 10 seconds it all switches to Laptop mode. I connect the HDMI cable that’s attached to my TV and within 10 seconds auto-disper recognizes the LG display and switches to TV only mode. It’s awesome and it’s exactly how I would want it to work ‘out of the box’, so to speak. But this works 100% perfect for me, right now. The only ‘work’ would be if I connect an unknown display to the laptop, but I can setup that profile in a minute when needed. Hurrah! Smilie: :)

    I hope one day it’ll work that fabulous (with profiles that automatically set in) in KDE. I noticed changes in 4.9, but it still doesn’t work as desired for me, so I’ll stick with auto-disper for now. Smilie: :) Good luck working on this. Smilie: :)

  36. Excellent work guys! This is the kind of thing that makes KDE a proper, usable and fully featured desktop. I can’t wait til this is finished!

  37. Thanks Smilie: ;-)

  38. This is great. Thank you for your work. Current handling is really a hassle.
    One question, will you also include quick switching via keyboard? Thinkpads have a FN-F7 to quickly switch between basically: Only internal monitor, only external monitor, show the same on both screens and extend the first to the second screen. This very useful if you have to setup a latop for a presentation or switch while having a presentation. Basically this would be very similar to the menu poping up when first time pluging in a new monitor. It would be showing that menu (or OSD) and allow to switch between that basic options by repeatingly pressing FN-F7 (or other combination on other laptops). On letting go the keys for a few seconds the config would be selected. That is at least how it is handled on Windows.

    • Hi,

      I tried (I have a Thinkpad) and FN7 emits an ACPI event. I’m not an expert here, but I think that we would have to either “steal” the events or reconfigure ACPI to just notify us rather then performing an action. Not sure how to do it though…

    RandomKDEuser says:

    Please allow forcing a setup, i.e. when a display is not connected/detected/switched on, it should still be displayed and driven when the user ‘pins’ it (with the obvious/most intuitive icon for this being a pin). This is useful for when you are using a KVM switch which doesn’t pass EDID, for virtualized/headless systems and/or when using VNC for remote display with a monitor mostly disconnected. Ideally it should be possible to force-create a display without having a physical one ever connected (and of course some kind of escape if you set a resolution/refresh rate that cannot be displayed).

    One example of this is using VNC on a video card with 2x DVI and an S-Video output: when disconnecting the DVI cables and rebooting the max display resolution possible via VNC is 1024×768 (PAL on the S-Video out); while the login screen appears at 800×600 (default S-Video res), it then switches to something like 320×240 and has to be manually set via KrandRTray, every time.

  39. This is great. Only one thing: Get rid of that switch in the KCM and use a regular checkbox. Switches need to die.

  40. Thanks fot putting your efforts on display management. I’ve watched the video with great interest, and I’d like to make a little suggestion, different from those yet made:
    If the monitor resolution list is too long to fit into the listbox, please provide some means to let user know there are more items, like scrollbars or something like this. This will also help usability, as for now is not only difficult to realize there are more items in the list, but also isn’t clear how user can scroll the list up and down (perhaps dragging the list with the mouse?).
    Thanks again.

    • Hi,

      thanks for your comment. Based on the proposal from others (namely d_ed), I’ll rewrite the bottom panel completely using good old widgets instead of QML, so your concerns will be addressed.

  41. A quick suggestion. I think it’s important to ensure that at least one screen is active at any one time. With the current KDE, it’s easy to get myself in a situation where I disconnect my laptop from the dock, but the internal screen is still disabled. I think that if the device is a laptop, it should have logic to see if all external monitors are disconnected, and to re-enable the internal display. Not sure if you covered this yet.

    Also, is the code posted anywhere? I tried to do this before in a bash script but failed MISERABLY.

    • Good idea. Thanks.

      The code is available on git://anongit.kde.org/scratch/dvratil/displayconfiguration.git. At the moment you also need my “fork” of Alex’s libkscreen: git://anongit.kde.org/scratch/dvratil/libkscreen-clone.git.

        Jonathan Kolberg says:

        How did you get the libkscreen compiled, I get following error:

        CMakeFiles/KSC_Fake.dir/parser.cpp.o: In function `Parser::modeFromJson(QVariant const&Smilie: ;)’:
        backends/fake/parser.cpp:91: undefined reference to `QJson::QObjectHelper::qvariant2qobject(QMap const&, QObject*)’
        CMakeFiles/KSC_Fake.dir/parser.cpp.o: In function `Parser::outputFromJson(QVariant const&Smilie: ;)’:
        backends/fake/parser.cpp:65: undefined reference to `QJson::QObjectHelper::qvariant2qobject(QMap const&, QObject*)’
        CMakeFiles/KSC_Fake.dir/parser.cpp.o: In function `Parser::fromJson(QByteArray const&Smilie: ;)’:
        backends/fake/parser.cpp:33: undefined reference to `QJson:Smilie: :Parser:Smilie: :Parser()’
        backends/fake/parser.cpp:35: undefined reference to `QJson:Smilie: :Parser::parse(QByteArray const&, bool*)’
        backends/fake/parser.cpp:50: undefined reference to `QJson:Smilie: :Parser::~Parser()’
        collect2: error: ld returned 1 exit status
        make[2]: *** [lib/KSC_Fake.so] Error 1
        make[1]: *** [backends/fake/CMakeFiles/KSC_Fake.dir/all] Error 2
        make: *** [all] Error 2

    Aram Grigoryan says:

    it is nice,,, but look, how KDE plasma desktop suck with multiscreen… Smilie: :-(
    also it is reported as a bug…

    • Unfortunatelly these are Plasma issues, we (I) can try fix them, but there’s no point in fixing it unless we have a good and properly working desktop management in KDE.

      (I myself now about at least 3 Plasma issues with multiscreen that annoy me almost daily, so I’m at least motivated to try to fix it Smilie: :-D )

  42. Another question. Is this code compatible with Nvidia cards?

    • At this moment it only has an experimental xrandr backend (does not work completely). Since latest nvidia drivers have native xrandr support, then yes, it should be compatible. I don’t know whether Alex plans to support alternative xrandr-like backends.

  43. Will this rework finally allow users to force a screen resolution that xrandr falsely claims is not supported by the gpu, without needing to go to the console.

    • Probably not. When using xrandr backend, we rely on on information that xrandr provides, so if xrandr does not list the resolution, we won’t know about it. I suggest reporting a bug either to xrandr (if you think it’s a xrandr bug) or to GPU drivers devs (or trying open source/proprietary alternative).

  44. Awesome news, I would gladly donate some money to make it happen sooner! Much appreciation for your hard work!!!!!

  45. Sorry, another question. How might this handle differing resolutions? One of my laptops has a resolution of 1440*900, and my two screens are both 1600*900. I can imagine that would not allow the plasmoids I have set up to scale well, but if I have to live with that, no problem, because your code is very much needed.

    • This is more Plasma issue then display management problem. I remember I saw a discussion but I don’t remember it’s result, but I think it was something like “It’s broken and it needs fixing”. As I said above, I can try to look into Plasma issues later, but for the start, we need a working display management.

  46. Finally! Great news! Keep rocking my friend Smilie: :)

    PS please rethink some KCM UI aspects because right now it’s ugly as hell Smilie: ;)

  47. It’s amazing!!!
    Can I upload to youtube for insert into my blog?

  48. This is fantastic news, when can we expect to have it integrated in mainstream KDE?

  49. Will this at all address any of the issues relating to having multiple video adapters and the horror it is to configure them?

    For example in Windows I can stick in multiple video cards of varying types and configure their resolution, orientation, and relation to each other, and have no problems with them apart from the differences in performance from the card.
    In Mac OSX with a Mac Pro there is similarly few if any problems (apart from finding video adapters which work with Macs) with configuration and use of multiple monitors.

    Setup for both of these OSes takes (generally) 5-30 minutes depending on driver installation, physical setup, how finicky you are, etc.

    In Linux, life is extremely painful if you are using multiple video adapters.
    This tool probably would have saved me several hours of time configuring my xorg.conf file recently; forcing my screens to be in the places I want them to be, almost. But there’s still the problem of X giving cards different screens, so you can’t drag windows from one monitor to another. Additionally due to being forced to have different screens you also have separate virtual desktops for each. Display management tools typically display only the card on which the window is on the screen, so you have to open at least one for each card.
    I’m sure there must be some way through either Xinerma or XRandr to do create an acceptable configuration (in my own case), but one shouldn’t need to spend excessive amounts of time to do it.

    • The recommended solution is to not have anything in xorg.conf at all, and configure your screens via the graphical configuration module.