Sunday, June 13, 2010

Moving windows around

A new feature added to Oxygen for KDE SC 4.5 is the possibility to move windows around by clicking (with left mouse button) in any of its 'empty' area and dragging it around, in a way that is similar to what one usually does with the window decoration titlebar.

How this works is illustrated in the following screencast (sorry for the poor quality of the video):

This feature has been present in bespin (another kde4 widget style) for quite a while. It has been ported (and largely rewritten) to Oxygen, on popular demand.

It is believed to be very useful, notably on touch-screens, for which dragging windows from the sometimes tiny decoration titlebar might end up being problematic.

Now, this is still quite experimental and conflicts might exist between dragging the window and some other mouse actions for some applications. I hope we can identify, and fix, most of these conflicts in KDE SC 4.5 beta cycle, so that a well crafter and fully functional feature can be delivered to users with the first release candidate.


  1. Cool. One of the few features I missed from my time as OSX user.

  2. That is so great though i see no stopping in adding new features instead of stabilising platform but what the heck i love it :D If i wanted stability i'd choose GNOME and that's why i chose KDE, keep it up and THANKS!!

  3. I'd really like an option to turn it off entirely. I have have no trouble whatsoever finding the title bar if I want to move a window (since I'm on a full-sized laptop), and every single time it's triggered has been an annoyance, rather than a help. Besides, *if* I ever want to move the window without using the title bar, I can just hold down Alt and drag.

  4. @eternaleye: that's the first option in the video (grab window from titlebar only). This corresponds to the "old" behavior.

  5. This is a very nice feature! Thank you very much!
    This way is much more natural to move windows.

    One question, now that you mention Bespin, is it possible to add ARGB with Blur support to Oxygen? Would this be hard or can the code be ported from Bespin? Or like Murrine for GTK?

  6. Aha! Running trunk, I had this bug where marble would not let me drag them map -- the window would always start moving.

    I guess that'll get fixed at some point, then...

    Interesting feature, though.

  7. I'm fine with holding Alt when I want to click anywhere and move a window :-) but that's a nice feature though.

  8. @Cyrille:
    Actually, the bug you mention ( is supposed to be fixed alreday (well: since last Friday). Or is your trunk more recent than that ?

  9. That really is very needed feature and especially for touchscreen users!

    The advanced KDE SC users always have used ALT+LMB combo to move and ALT+RMB to resize window. But it has own problems like shortcuts on applications what needs ALT+LMB and drawing. Like GIMP. So I fixed it by changing the function to META key (Windows key) and it is much more logical then. Even normal users finds it better because for them the key is useless and they are unsure when to use it. Once they hear it, they have much less troubles to use it. But the ALT function is good default because almost any Window Manager use it.

    What I still miss is that you could start moving window from the Dolphin empty space between file. (the Huge white area on the window). That would make it even better then. But I am unsure is it logical because the window background has usually own color what is different than from such objects.

    And this is even great improvement to Oxygen style itself because it is by default a style and decoration what is seamesless. So you can not even easily find out where window decoration starts and stops. Now you do not need to teah them to check out the "top bar" from window to drag it. Just by saying "drag the window surroundings the empty space and drag".

  10. Great feature, the default should be the second option, cause it's ergonomic-wise the best choice (increased area for dragging windows near the window title area)

  11. I think you MUST enable it by default. The reason for this is than in Oxygen, window and window decoration are not clearly separated. It was part of Oxygen's design goals to "melt" them together.

    Distributions that want to disable this feature by default should also choose a coloured window decoration by default that clearly sets itself apart from the window.

  12. Please make it enabled by default!

  13. Trunk from the opensuse build service, so if it has been fixed, I'll see it at the next update. Again, interesting feature.

    Doesn't it clash with scrolling on touch-screen devices? Scrolling is usually done via the gesture: move your finger on the free areas and the view will follow. I suppose that in full-screen, one can safely assume the window should not be moved, whereas smaller windows are probably meant to be shuffled around by the user.

  14. @Paristo: Real reason why you can't drag from the dolphin "files" area is that left-mouse-button + moving is used to select multiple files at once (using a following mouse blue rect). This directly conflict with window grabbing.

    @Albert: could you elaborate ? (here or on #oxygen, or by email)

    @Cyrille: to be honest I haven't tested whether it conflicts with finger scrolling on touchpads (since I don't have any). Dolphin, konqueror, rekonq are "safe" since you can't drag from here. But I'm not sure this will always work. I'll think about adding a protection against that.

  15. To the people having an opinion on whether it should be disabled by default, have you actually tried it?

    If you have no trouble finding the window bar, surely you'll have no trouble not finding the large toolbar area.

  16. @ David, sure - and sometimes one hits the statusbar or any other area, causing one to move one's window instead of merely selecting it. But I digress, what I really want is the option to turn it off to be easy to find, as I've yet to be able to locate this "configure widget" dialouge, it seems that, at least in OpenSUSE (using (KDE 4.4.85 (KDE 4.5 Beta2)) "release 3") from the unsable repos), the Systemsettings dialouge is a moving target (i.e., changes with every new release), which means that new settings would need to be placed somewhere a user is likely to look for them.. Such as "Window Behaviour" (as it modifies the behaviour of the windows) or workspace Appearances in the window decoration tab (Oxygen is a decoration right, right?)

    Anyway, nice for everyone who previously experienced this as a problem, good work.

  17. @strife
    I guess you will not be happy about it, but the option to disable it is _not_ to be found in systemsettings. You have to type "oxygen-settings" from a terminal (or krunner), and then you'll find it "first page"

    Discussions on how one could make this oxygen-settings thingy more accessible can be found in previous post.

  18. @Hugo
    Thanks for the concice reply, it's appreciated, and it makes me happy enough, I realise that it's work in progress. I actually didn't think it was configureable yet, however some of the replies here indicated that a way to disable it was visible (which I suppose it was if you knew what to look for..) in the movie - a way which I couldn't find so that was something of an annoying experience :P

    (not that it really is that much of an annoyance, it's just some applications like ktorrent which seems to be dragged around a lot these days...)

  19. @Hugo
    Thanks for the heads up how to disable this. Recently this has been bugging me (at least in its current incarnation). The problem is that the move behavior is used when dragging a disabled element. This is not so bad, considering you usually don't drag disabled widgets, unless you have a horizontal scroll bar that is always visible (ie in Kate). If you don't realize there is nothing to scroll and you try to scroll, now the window moves. The other problem I have with this feature is that it gets invoked even if the app is maximized.

    I looked everywhere to disable this behavior. It should really be in a better spot. I think the Usability component in System Settings would be the best considering this is a usability improvement. However, considering this is an Oxygen specific setting, I don't know how feasible that is.