Squib of the day: On giant displays, place windows near the pointer

NEC 43" super wide DLP displayDid you know that the xrandr extension uses a 16-bit quantity to store the millimetre width of the screen? That gives a maximum screen width under X of about 65½ metres. Granted, this is about three times wider than a good-sized cinema screen, but it’s certainly a limit to try for. Imagine, you could get the whole of Hamlet in your AbiWord window at the same time.

Anyway, GNOME bug 106239 suggests that on “giant” displays (the meaning of “giant” left ambiguous), newly-created windows should appear near the pointer.  If we grant that this is a good idea, should we also do this on small displays?  If not, where’s the cut-off?

(Clue: introducing a GConf key is going to be an unpopular move.)

Photo © naan, cc-by.

2.26.0 released

Children's ShrineStable release 2.26.0 hit the servers today. Not much is new and interesting therein, except for the translations, because most new hacking is going on in trunk (effectively the 2.27 branch).

What is it ?

  • Metacity is a simple compositing window manager that integrates nicely with GNOME 2.

What’s changed ?

  • queue frame resize on window undecorate (Neil)
  • fix description of desktop background (Luca) (GNOME bug 569649)
  • wrap g_error calls in braces (Matt)

Translations:
Amitakhya Phukan (as), Mikel González (ast), Ihar Hrachyshka (be@latin), Runa Bhattacharjee (bn_IN), David Planella (ca), Petr Kovar (cs), Ask Hjorth Larsen (da), Christian Kirbach (de), Jennie Petoumenou (el), David Lodge (en_GB), Jorge González (es), Mattias Põldaru (et), Iñaki Larrañaga Murgoitio (eu), Ilkka Tuohela (fi), Claude Paroz (fr), Ankit Patel (gu), Mark Krapivner (he), Rajesh Ranjan (hi), Gabor Kelemen (hu), Luca Ferretti (it), Takeshi AIHANA (ja), Changwoo Ryu (ko), Gintautas Miliauskas (lt), Sangeeta Kumari (mai), Sandeep Shedmake (mr), Wouter Bolsterlee (nl), Manoj Kumar Giri (or), Duarte Loreto (pt), Leonardo Ferreira Fontenelle (pt_BR), Adi Roiban (ro), Yuriy Penkin (ru), Daniel Nylander (sv), I. Felix (ta), Krishna Babu K (te), Theppitak Karoonboonyanan (th), Clytie Siddall (vi), Chao-Hsiung Liao (zh_HK), Chao-Hsiung Liao (zh_TW)

Where can I get it ?

  • eafb624e79fbcdab6da59acc222430b1 bz2
  • 23b9af5d98ab7ff9f6e88a18aeaf9753 gz

Photo © Geoff Leeming, cc-by-nc. Thanks to Fin for choosing the picture.

On enhancements which need changes to the EWMH

Some of the enhancements which have been suggested need some sort of hint to be set on windows.  For example, the recent squib about a special style for warning windows could only work if warning windows were marked in some way, and at present they’re not.  Similarly, drag and drop can only work better if the window manager is warned which clicks start a drag and which don’t.  This too will need a new hint.

There are two ways this can be done.  The simplest way is to use a hint whose name begins _METACITY; this doesn’t require us to talk to anyone.  It’s sometimes one way of starting the process of adding a feature like this.  Of course, it means that the feature’s unlikely ever to work with any other window manager.

The better and more extensible way is to make a new standard hint, one beginning _NET_WM.  This means adding the hint to the Extended Window Manager Hints standard (the EWMH).  Changing this standard means arguing it out on the wm-spec list.  The maintainers would like not to be the only ones to raise new ideas on this list.

In either case, the toolkits (such as GTK) will then need to be updated to mark the relevant windows with the relevant hints, and finally the applications will probably need to be updated to use the new functionality in the toolkits.  You can see, gentle reader, that enhancements like these are the source of more work than the average enhancement.  They may nevertheless be worth the effort.

This entry exists mainly so that we can link to it when the issue comes up.

Photo © !!sahrizvi!! (back in Dubai) !!, cc-by-nc-nd.

Squib of the day: Special frame style for warning dialogues

GNOME bug 102548 suggests that warning dialogues should have a special frame style, and it’s suggested that this could look like safety tape wrapped around the edge.

This is not unlike the special frame style suggested here for root windows.  However, while there’s already a way for the window manager to tell whether a window belongs to the superuser, there’s currently no way to tell whether a window is a warning, so this would need a change made to the EWMH and then need all the toolkits fixing to use it.  It’s thus rather nontrivial, although it may still be worth it if it helps users.

Because this requires a change to the theme format, it must be committed first on a branch.

I am seriously entertaining the idea of doing away with the window and frame_style_set tags in v3 of the format, and just using tags on frame styles such as maximized, shaded, focused, unfocused, root, warning, modal, and so on, with some well-defined and intuitive rule about how to break ties:

<frame_style geometry="foo" tags="border focused maximized">
<piece position="title">   ...

Photo © Robin Gallagher, cc-by.

Squib of the Day: Maximise to the edge of the screen

Gemini North telescope, Mauna Kea ObservatoryIn GNOME bug 140362, someone requests the ability to maximise one side of a window to the edge of the screen by double-clicking the frame.  Thomas provides a patch, there is some discussion, and the reporter realises that Metacity already does most of what is wanted through the ability to resize in one direction only when Shift is held down.

Your chronicler believes that this bug may be fairly closed since the reporter feels happy about the existing system.  If anyone would like to make a case for double-clicking the frame having this effect, now’s your time to speak out.

Photo © brewbooks, cc-by-nc-sa.

Squib of the day: Where did I come from?

Down the Fretboard.Two rather similar squibs today.

GNOME bug 96348 calls for an animation to be shown when restoring (unminimising) a window, as we already do when minimising. I can’t see any problem with this idea.

GNOME bug 97288, however, would like all new windows to have the opportunity to come from somewhere.  If you open a document from the file manager, for example, the window should appear to zoom out of the icon.  Presumably this would involve modifying the startup notification protocol to pass in a pair of (x, y) coordinates.  This would need some changes to nautilus and friends as well as to Metacity, so it seems non-trivial.

However, even if these coordinates were missing, we still know the ID of the window which launched the new window, so we could assume it came from the centre of its launcher.  Something similar could also be done with transient windows.

Photo © lant-70, cc-by-nc-nd.

Squib of the day: Macro cleanup

Abandoned MachineryIn GNOME bug 94111, Havoc points out that some of the macros we use for checking certain features of windows are incorrect.  Fields with names like has_foo_func denote whether the window gives us permission to foo it.  Macros with names like ALLOWS_foo take these into consideration and also whether the operation is possible right now (for example, you can maximise a window only if it allows maximisation in general, and also if it’s not currently maximised).

The bug requires checking these macros have correct names, and making sure they do what they’re intended to do.

This whole business does make me wonder why we’re using macros for this sort of thing, anyway.  Given a modern compiler, do macros win us anything that inline functions don’t, besides extra difficulty in debugging and readability?

Photo © Thristian, cc-by-sa.

2.27.0 released

Vesuvius and Pompeii

Metacity 2.27.0 has just been released.  Since the number 27 is odd, it means the first unstable release on the path to the stable release 2.28 in six months’ time, and not a stable release as the forthcoming 2.26 will be.

What is it ?

  • Metacity is a simple compositing window manager that integrates nicely
    with GNOME 2.

What’s changed ?

  • Remove deprecated GTK symbols (Thomas A, Matt) (GNOME bug 572332)
  • fix window properties bug which showed up as ignoring struts (Ori) (GNOME bug 572573)
  • include “as username” in window title (Thomas T) (GNOME bug 549389)
  • Use zenity for dialogues (Thomas T) (GNOME bug 521914)
  • Use libcanberra for sound effects (Matthias) (GNOME bug 557921)
  • Don’t define meta_spew_event unless verbose mode is on (Matt) (GNOME bug 571126)
  • Fix README to give correct switch names (Matt) (GNOME bug 571210)
  • Windows which couldn’t appear in alt-tab don’t get there by being urgent (Thomas T)
  • Skip the first window in alt-tab only if it’s actually current (Matt) (GNOME bug 535887)
  • Optimise line coordinate storage (Thomas)
  • Queue resize on window undecorate (Neil)
  • Fix description of “show desktop” (Luca) (GNOME bug 569649)
  • Wrap g_error calls in braces (Matt)

Translations:

  • Mikel González (ast), Ihar Hrachyshka (be@latin), David Planella (ca), Petr Kovar (cs), Ask Hjorth Larsen (da), Jorge González (es), Mattias Põldaru (et), Iñaki Larrañaga Murgoitio (eu), Ilkka Tuohela (fi), Claude Paroz (fr), Gabor Kelemen (hu), Kjartan Maraas (nb), Wouter Bolsterlee (nl), Leonardo Ferreira Fontenelle (pt_BR), Daniel Nylander (sv), Theppitak Karoonboonyanan (th), Chao-Hsiung Liao (zh_HK), Chao-Hsiung Liao (zh_TW.po)

What didn’t make it into this version

Where can I get it ?

  • 52871631cc13b7fde1403aaee3db32d4 bz2
  • f856c9d0828baf79de82e9c5d97c30b7 gz

Beautiful shot of Vesuvius and Pompeii © MorBCN, cc-by-nc-sa. Thanks to Fin for choosing the picture and the theme for 2.27.0 release posts.

Squib of the day: Workspaces should switch instantaneously, or not

When GNOME bug 86590 was born, it was a request to make workspaces switch instantaneously when you panned around them using the workspace switcher with ctrl+alt+arrow.

Then that was fixed, and someone else complained that it was too slow, and inconsistent with the alt+tab popup, which doesn’t switch until you let go of alt.  They asked for it to be reverted.  Someone else suggested a compromise: if the user pauses while moving through workspaces, flip to that workspace without removing the pager.

Of course, then we’d have to consider whether we should do that with alt+tab, too.  It’s possible that the two cases are different enough that there’s no good analogy here, though:  workspaces can be named, for example.  It’s possible as well that they’d become different enough for there to be no good analogy here if we had thumbnails of the workspaces instead of the icon-based boxes we have now.

So the options now are:

  1. Switch when they let go of the keys, as we used to.
  2. Switch after a delay, as suggested above.
  3. Maybe it’s fast enough these days and nobody cares any more.
  4. We could keep all the windows on all the workspaces mapped all the time, like Compiz does, which would make things a lot faster anyway, and would reduce to the previous case.

Photo © Matsatsinis Fragiskos, cc-by-nc-nd.

Creative Commons Attribution-NonCommercial-ShareAlike 3.0 Unported
This work is licensed under a Creative Commons Attribution-NonCommercial-ShareAlike 3.0 Unported.