Mir's next steps - we need your input!

Should tiling be a built-in option?

I can’t help with the design or programming aspects of your questions but I can give some input from the user side.
I would appreciate a strong set of intuitive key chords to manage windows size and position.

Let me explain:

I never gotten completely accustomed to a tiling window manager but I start to expect similar features form a conventional window manager.
From the user’s view tiling is noting more then the ability to be able to commandeer the size and position of windows precisely without having to fumble with the mouse. For example: focus window, press win+left puts the window on the left half of the screen followed by focusing a different window, press win+right puts this windows on the right half of the screen. This is very satisfying because of the gaps that are minimized/nonexistent or constant (i3-gaps).

Maybe a new class of windows manager - a snapping window manager?

By that I mean not an internal grid of tiles and sub grids but holes/space between windows that other windows can be send to and then snap into the maximally available space? With key bindings like win+left, win+right+up … to send them to the nearest empty space in that direction and win+alt+(arrow keys) to resize them combined with the snappy/stickiness of adjacent windows that resize/move there borders in concert? Maybe win+ctrl+(arrow keys) to move the focused window and have the others around it dynamically adjust to the pressure/vacuum the movement produces.

While writing this I remembered the first experience with the sticky and wobbly windows of Compiz.
I guess my proposal would produce the same oddly satisfying feeling while managing windows this way especially if the mouse could also be used and not just the arrow keys.

There is a magical emotional reaction of the brain to objects on screen that “behave” in a kind of physical way to your movement.

Personnally, now I’m using I3WM-gaps because it’s hightly modular and configurable. So in my point of view, MIR need to offer people the possibility to users to configure their desktop as their need (that’s why lots of linux users like their desktop and reject MS Windows desktop)

The woobly window, or fire or something are totally not efficiency, but there’s some graphical improvement using compositing which improve a lot UX

Cheers

Yes. the desire for stability and speed is one of the reasons to avoid any unnecessary complexity in the server process. Every time someone adds a new bit of code to the process multiplies the risk. While I like “wobbly windows” I don’t think a architecture that allows arbitrary mixes of plugins (like Compiz, for example) is right for the server component.

Rust is an admirable language and there are many projects I’d recommend it for, but I believe C++ was and remains the right choice for Mir.

I don’t think we’ll be working on remote desktop any time soon. @greyback and I did some initial work on this last year. We know what needs to be done and how, there’s nothing happening that will make it any more difficult, but priorities have shifted since.

@slalomsk8er, one of my objectives when I started the MirAL project was to separate all the window management assumptions from the Mir server so that there could be sensible defaults while allowing full customization by the shell developer.

I don’t know if you’re a developer, but if so (and I achieved my goals) you should be able to extend the miral-shell example with a “snapping window manager” without much difficulty. It wouldn’t have a dock, open animations or wobbly windows, but it is a great place to try out window management ideas.

Not so much as settled, just using what’s currently available (KWin). Not exactly in love with it or tied to it so I’m just watching from the sidelines :slight_smile:

1 Like

hi. in desktop customisation , i have the secound approach. i have a 2D desktop, and no need for wobbly and other same for me.

in 3th. I care for my games, and this is important for me. i am a player in steam :slight_smile:
also i have multiple GPUs and need to be able to switch between these.

tnx for your work.

Desktop Customization/Theming

I’m not sure if/how Mir can help with this, but…

The state of Global Menu support is inconsistent (to be charitable) among various DEs. For example, in my experience, Global Menus work pretty well on Plasma with some Qt apps, but not so much with GTK apps. MATE seems to offer better Global Menu support for a greater variety of apps, but support is still inconsistent. So, could Mir offer some sort of back-end that would allow for better consistency?

Also, more and more GNOME applications are using CSD. Some apps using CSD provide optional FEV menus that can be used in conjunction with Global Menus, but many don’t. I realize that this is highly unlikely, but I wonder, could Mir offer some sort of back-end that would allow displaying a GTK apps’s full CSD (not just an FEV menu, which some devs seem to eschew) outside of the application’s window, such as in a top bar?

I guess what I’m after is a back-end that could support a truly universal Global Menu, that would work with Qt apps and GTK apps, including GTK apps that use CSD exclusively.

And of course, if such a back-end also allowed for specifying under what conditions CSD/menus would be displayed outside the window (such as “only for maximized windows” etc.), but otherwise displayed in the the title bar area (like Unity’s LIM does), that would be amazing.

GPU Support

Sorry for bringing up a hot button issue, but…

If not already supported, please consider supporting EGLStreams for Wayland. Also, hopefully Mir’s XWayland will play nicely with X11 Server 1.20, which is anticipated to support EGLStreams for XWayland.

I’d like to chime in with a few thoughts as an experienced linux user, but one who is not so knowledgeable on the fundamentals of how a desktop environment is put together.

For me (aside from the obvious desire for a stable, performant desktop that doesn’t suffer from screen tearing) the two most important features would be making mir useful for a variety of different desktop environments, and colour management.

I use Linux both in my work (web development) and at home, and have quite different requirements depending on what I’m using it for. At work the main requirement is that it be fast and stable (while also allowing easy navigation between multiple windows), whereas at home I’m an enthusiastic photographer and therefore having a desktop environment that fully supports colour management is a very important consideration. I’m fond of traditional desktops like Mate (but it’s colour management feels very tacked on) and Cinnamon, but do like many of the features of Gnome and use Unity in my work.

As everyone has different preferences when it comes to how a desktop operates (just look at how some people love windows, but hate macs, and vice versa) I think it would be brilliant if mir was modular enough that it could be used by a wide variety of desktop environments, and thus not benefit just a small subset of linux users.

Also not having a crash in one component taking down the whole stack would be nice!

Hopefully that makes some kind of sense.

First off, we’ve got a lot of flavours of Ubuntu. In fact, there’s more flavours than Ubuntu itself, all with their own unique desktop environment components. Ideally, each of these should be able to make use out of Wayland. Also as a user of a flavour with unique components plugged in (I’m running awesome instead of OpenBox on Lubuntu), I want that same flexibility.

I personally like the idea of modularity a lot. Being able to restart individual components rather than shut down the whole display server. I’d support semi-modularity, but I cannot see a lot of benefits beyond security with being completely monolithic.

Tiling: love it. Would love it as an option that every single window manager could just use. In fact, the less work window managers have to do implementing features and the more that was just built in the display server, the better. That said, I probably wouldn’t change from awesome (though I’ve long considered i3).

As for snazzy features, I like the really practical ones. Transparency’s really great. Highlighting windows (wobbly or not) is good. Animated windows? I don’t care. I’d rather have less resources tied up into all this extra stuff.

First would like to say thank you for all the work you have done. My comment in on Desktop customisation/theming. This is one of the biggest reasons I moved to Linux. Windows 10 and previous version as well as Mac OS have a customization problem. The desktop that MS or Apple provide is it, take or leave it. Years back when I leaned that you can customize the Desktop the way I wanted to work I was sold on Ubuntu. Since the demise of Unity I have moved to KDE and Mate for the simple fact that I can customize them the way I want and I have all the Eye Candy I can get Desktop Cube, wobbly windows… etc. My biggest lost in Unity going away and being replaced by Gnome was Compiz and all the effects. KDE does a good job as a replacement, I have been able to re-create what I lost in Unity on 17.10 in KDE, Global menu, window buttons in the panel, Desktop Cube, support of Cairo-Dock…Etc. Gnome desktop to me was too restrictive and does not work. The extensions are a band aide waiting to break or lose support due to a developer just not having time to keep up with it. I am a long time user not a developer and can not comment of the all the technical views in your post ,but the eye candy and ability to customize a desktop for me is a must have!!

Hi all,
sorry for the absence, I chose a terrible time to move house and post a thread like this!

So far I see the following aspects of a desktop experience are important to people (in no particular order):

  • Responsiveness / low latency
  • Eye candy - animations to be possible
  • Security
  • Modularity, to ease of mix-and-matching panels/docks/desktop
  • Stability - modularity will help with this too
  • Nice API for compositor authors
  • Compatibility with Wayland protocols
  • Remote Desktop feature, plus tweaks to make it efficient (disable animations & transparency)
  • Pixel perfect rendering - no screen tearing
  • Workspaces, and powerful window management features (all hotkey controlled)
  • Multi-GPU support, with dynamic switching
  • Global menu support
  • Color management

This is valuable data, thank you all so very much!

It does also show how varied people’s desires are for their desktop experience, and yet certain points are common to all: perfection, stability, performance.

We are taking all this under advisement, this is helping us direct our development priorities with Mir. We’ve got lots to do, but I think we’re starting on a good foundation.

If there’s anything else you can think of, please just shout (well, and then reply here :slight_smile: )!
Cheers
-Gerry

1 Like

Wholeheartedly agreed. This is definitely a place where modularity helps - if you don’t like the existing wallpaper plugin, find a better one.
Thanks for taking the time to reply!
-G

And the award for “Understatement of the Year” goes to… :smile:

Color management support is a good call, yes. And you reminded me that I really miss utils like Flux, to change the display whiteness as the day changes.
-G

And LIM support, preferably combined with support for integrating a maximized window’s title bar into a top panel (like Unity does), that could be used by various DEs, including MATE, please. :slight_smile:

1 Like

Please work closely with GPU vendors to find a solution to stabilize drivers when installing the newest ones

I agree with most of the other suggestions. I give a big +1 for Redshift support. Not just for after dark, but to let me easily set the color temperature in the daytime as well.

I’d also love an option to be able to hide the mouse cursor on timeout or keypress. I use unclutter to do this on X/MATE now. It hides the mouse after being idle for a few seconds. MacOS hides the cursor when you press a key. ChromeOS – at least the last time I used it – also has this feature.

2D desktops are the thing from 30 years ago, of course it has to be 3D with full hardware support. You can always make 3D to look like 2D with material design if you need to, but it has to work in 3 (three) dimensions. It has to work like hardware works, protip: hardware works in 3D.

Of course display server doesn’t have to implement its own window manager, so another WM like i3 or xfwm could be installed on top of it. Sway dev suggests to embed WM only because Sway is a window manager, also he didn’t have a choice and had to implement Wayland compositor in his WM, so he bundled everything together like a bauss. It doesn’t matter for him if WM crashes because server/compositor/WM is all the same in Wayland and there is no way around this. It’s a Wayland shortcoming, you don’t have to repeat it.

Global menu is not something display server can do. Where are you going to display this menu? It’s something GTK/Qt should support, but apparently GTK could be ruled out because their devs are not cooperative, so whatever, this is not happening anytime soon.

Why do you even care about desktop experience but not about surfaces, textures and meshes? You want to reinvent Unity again or what?

Look into Chromium, it’s what you’re making display server for. They have their own compositor and WM under the hood, and they have abstraction on top of display server, so they can throw in their own display server anytime they want. Google: Ozone, Aura, mus+ash. In two years you will be ditching your WM just like you ditched Unity.

But i’m glad you’re listening to the community and Wayland support is going well. Good job. I hope you won’t be laid off this or next year.

One thing I want as part of Mir’s support for tiling window management is to negotiate CSD/SSD.

There seems to be some prior art: server-decoration.xml (also here) but this doesn’t seem to have been upstreamed (some comments on this).

Does anyone know whether this is a good thing to pick up or a dead end?

2 Likes

I won’t pretend to understand what you have in mind. But I’m curious. Is this patch (in which your name is mentioned) related to this goal, namely allowing better CSD/SSD negotiation in Wayland?

Is this patch3 (in which your name is mentioned) related to this goal, namely allowing better CSD/SSD negotiation in Wayland?

Yes. It is an new iteration of the “prior art” I mentioned above. It seems Mir is not the only shell interested in this facility.

1 Like