The window menu

French Woodland StrawberryThe window menu is the menu you see when you click the menu button (which usually has the window icon on it), or right-click the titlebar. An identical menu appears when you right-click an application’s entry in the task switcher on the panel, although this menu is owned by libwnck rather than Metacity and is manually synchonised. The contents of both menus are currently fixed. Let’s treat them as the same menu.

The menu currently has around a dozen options.  What is the optimum length for this menu?

These are the current contents. Which of these should not be in the menu by default?

  • Minimise
  • Maximise
  • Move
  • Resize
  • Always on top (checkbox)
  • On every workspace / On only this workspace (radio buttons) ★
  • Move to workspace above, to the right, below, to the left (four separate options, only the applicable ones being visible) ★
  • Move to another workspace (leading to a submenu) ★
  • Close

Some say that the workspace options (★) are overkill. They are by far the most complicated options in the menu, and they take up a large amount of space even for people who do use workspaces.  Perhaps that’s not everyone; if workspaces are something that only advanced users are aware of, maybe these options ought to be enabled separately.

There are other things we could put on the window menu, if it doesn’t get too crowded.  What extra options would you like to see there?

  • Take a screenshot of this window
  • Share this window with another user using VNC
  • Screencast this window and upload it somewhere using Istanbul
  • Anything you can bind a keystroke to.  (Nargery: This would be kept as a hint on the root window, encoded either as a keybinding name (e.g. “toggle_shaded“) or as a representation of an EWMH command.)
  • Similarly, application-specific options, given in a hint on the window itself: so your music player could have play, pause, and so on when you clicked its entry in the task switcher; consider how this could move towards replacing permanent notification applets, evolving into being part of notifisation in Metacity 2, and how useful it might be in gnome-shell.
  • By analogy with right-clicking on the desktop allowing you to set the wallpaper, perhaps “Edit window borders“, which would take you to a dialogue which let you reorder the buttons, modify which user-chosen options were in the window menu, pick a window border theme, and perhaps even do some light theme editing.
  • …your ideas here…

Photo © Beautiful Rust, cc-by-nc-nd.

21 Comments

  1. Nick
    Posted July 13, 2009 at 10:12 pm | Permalink

    If anything, I think it makes sense to do it the other way around: remove minimize, maximize, etc., since they already have their own buttons. The more complex ones that lack dedicated buttons (such as workspace operations) should be in the menu.

  2. Matt Mossholder
    Posted July 13, 2009 at 10:18 pm | Permalink

    I’ve always thought there should be a hint for pulse-audio awareness. Windows that were not pulse-audio enabled would have options for performing various window specific sounds operations (e.g. move the audio output of this window to the headset).

    I agree with Nick on the removing the text version of the Min/Max/etc. buttons, but there might be accessibility issues with that.

  3. Posted July 13, 2009 at 10:22 pm | Permalink

    It is obvious, since Play/Pause state was mentioned: A represented file in the Window decorations.

    This idea comes from Mac OS X, where document windows can register that they represent a file; they get the file’s icon and you can drag it just like dragging the file’s icon in nautilus.

  4. Posted July 13, 2009 at 10:26 pm | Permalink

    Nick is right

    i never use :
    * Minimise
    * Maximise
    * Move
    * Resize
    * Close

    Whereas i use a lot :
    * Always on top (checkbox)

    i use quite a lot :
    * Move to workspace above, to the right, below, to the left (four separate options, only the applicable ones being visible) ★
    * Move to another workspace (leading to a submenu) ★

    and i may use :
    * On every workspace / On only this workspace (radio buttons) ★

  5. Posted July 13, 2009 at 10:30 pm | Permalink

    @ulrik:

    It’s a good idea, and now is the time to think about it with gnome-shell in the works. It was discussed on this blog at the end of last year:

    http://blogs.gnome.org/metacity/2008/12/11/dragging-the-window-icon/

  6. Posted July 13, 2009 at 10:52 pm | Permalink

    +1 for the comment by antistress – I have exactly the same usage

  7. Simon
    Posted July 13, 2009 at 10:58 pm | Permalink

    As I said in the previous entry in the subject, the various workspace related options really should be there, even if not everybody uses them. Because while Maximize, Minimize, and Close already have buttons on the toolbar, there’s no apparent way to access the workspace stuff. In theory, you can drag windows from one workspace to another on the Gnome pager applet, but in practice, small windows are very hard to grab.

    Plus, because you can open the window menu with Alt-Space, it’s a very convenient way of moving windows around with the keyboard.

  8. Posted July 13, 2009 at 11:11 pm | Permalink

    I’m all for removing minimize/maximize/close as suggested above if doing so is not an a11y issue.

    Also I think that “On every workspace / Only on this workspace” should be a checkbox named “Display on every workspace” or something like that. There’s no need for it to be radio buttons IMHO.

    And I’d love to see the screenshot and screencast buttons there!

  9. Screwtape
    Posted July 14, 2009 at 2:09 am | Permalink

    I think the “Move to workspace {above,below,…}” options are entirely redundant with the “Move to another workspace” submenu. Since the submenu is a superset of everything the other options can do, the other options should go.

    I also would be happy for “Always On Top” to go away. There’s certainly an argument for some windows to be Always On Top (media players, clocks, other instances of the general Desktop Accessories category) but it’s silly to think that *every* window needs to have an Always On Top option. For the applications that do want such an option, I think it could be profitably placed in the app’s preferences, or in the app-specific section of the window menu.

  10. Posted July 14, 2009 at 8:29 am | Permalink

    Screwtape : personally i use the “Always On Top” function sometimes for watching VLC while surfing the web for instance.
    Since VLC is not a GNOME application, but a multi-OS multi-desktop one, i’m glad that Metacity provides that function.
    But sometimes i don’t want VLC to be always on top. Therefore it’s very convenient to be able to quickly set the function through Metacity Window Menu. For me it’s not a preference option that could be set one for all, it’s an option that i like being able to quickly select/deselect, like moving a window to another workspace. It’s about managing window and not a definitive setting.
    I’m curious to read other comments on that point

  11. Screwtape
    Posted July 14, 2009 at 9:19 am | Permalink

    @antistress

    I’m using VLC 0.9.9a from Ubuntu 9.04, and it definitely has its own “Always on top” option in the Video menu while a video is playing, so Metacity’s option really is a duplicate.

    It’s occurred to me that Metacity’s click-to-focus mode causes windows to be involuntarily shuffled in the z-order, which would make an explicit “always on top” more useful than in focus-follows-mouse mode, where windows that are on top naturally stay there until some other window is brought to the top.

  12. Posted July 14, 2009 at 9:31 am | Permalink

    Screwtape : you’re right, “Always on top” feature is now fiwed in VLC!

  13. Kamil
    Posted July 14, 2009 at 11:25 am | Permalink

    My 2 cents:
    +1 for removal of Minimise, Maximise, Move and Resize as they’re redundant

    I find these two:
    # Take a screenshot of this window
    # Screencast this window and upload it somewhere using Istanbul
    great additions, introducing these options to less tech savvy users. I see use for the latter in bug reporting.

    Having play/pause etc. button in music player would be nice as well.

  14. stancil
    Posted July 14, 2009 at 1:21 pm | Permalink

    +1 for application-based menu items. I want to be able to control minimized applications just by right-click on the taskbar.

    Few Suggestions:

    # Like suggested play pause etc in a media player
    # Fetch emails and other email functions ( Thunderbird, evolution etc)
    # Gnome Terminal -> ability to switch to another user

  15. Posted July 14, 2009 at 3:25 pm | Permalink

    the application-based menu items concept is interesting and remind me MS Internet Explorer 8 Accelerators http://www.microsoft.com/windows/internet-explorer/features/faster.aspx
    Both are about saving time by displaying contextual actions = giving the user what he wants

    It could be a second step in GNOME desktop after the MIME stuff which already allows to open the corresponding application by right clicking on a file (very convenient)

    It could bring some more smartness

    However
    # Take a screenshot of this window
    # Share this window with another user using VNC
    # Screencast this window and upload it somewhere using Istanbul
    all these seems to be cool especially for advanced user

  16. Posted July 14, 2009 at 4:17 pm | Permalink

    -1 for removing “always on top”. It makes no sense to add that per-application as that’s a window-manager thing really. It would be like adding “minimize” to every app out there. And I sometimes add it to a IM conversation, or to the music player lyrics window, or to random things. So saying it should be added on a case-by-case basis doesn’t really make sense to me, since there’s not a pattern to identify which windows should get them.

    Nice discussion btw! I hope to see some of the proposed changes implemented sometime :)

  17. Mats Taraldsvik
    Posted July 14, 2009 at 5:10 pm | Permalink

    I have used Close, Move to workspace x a couple of times, but mostly I just use the keyboard shortcuts.

    However, please, please don’t remove the Always on top-option. It is, in fact, the only of these options I absolutely depend upon when doing any work that requires more than one window to be open at once… and this option is needed for every window. :)

  18. Posted July 14, 2009 at 6:31 pm | Permalink

    I think that the taskbar and window frame menu need to be separated. I dont think that the minimize, unmaximize, close and resize options are very useful for the window frame menu but I find that the close and maximize options are useful for the taskbar so I wouldnt like to see it removed from there. Its useful on the taskbar if you have lots of apps open minimized and you want to close them quickly.
    When they are maximized(window frame menu) though I find them redundant as there are already buttons available to achieve those functions when the window is in focus.
    I wouldn’t like to see the always on top option removed as I use it frequently for college and personal work(extremely useful for gedit open on top of firefox for editing code).
    I would like to see a the workspace entries cleaned up as others have pointed out.
    Also the screencast/screenshot options would rock.
    I think it would be great to have application centric options available through some sort of plugin system(maybe a plugin system or app per app basis and all apps too(so that you could later add a plugin which shares a window over something other than vnc, telepathy maybe available to all applications).

  19. Niu Peng
    Posted July 16, 2009 at 1:43 am | Permalink

    I like these:
    Take a screenshot of this window
    Share this window with another user using VNC
    Screencast this window and upload it somewhere using Istanbul

  20. Botan
    Posted July 16, 2009 at 3:09 am | Permalink

    In my own experience and those who are new to Ubuntu (and Metacity), the workspace options are almost instinctively ignored. The only reason I ever use the right click menu is to close the window. The workspace options are almost certainly a clutter in the menu, I am sure if some sort of testing were done on the most frequently used options, they would be very underused.

  21. CTenorman
    Posted July 31, 2009 at 5:05 pm | Permalink

    I’d like to put in a vote for another option here: tile windows. The number of times I simply want to view all my open windows without manually re-arranging them is pretty high. It’s standard windows functionality, and I find it very useful. I have to use gnome-do at the moment and ask it to tile the windows. In metacity tiling works, there’s just no menu option for it.

2 Trackbacks

  1. [...] The previous post about extending the window menu caused a great deal of discussion. It would seem that our readers would be interested in an implementation.  Thomas is considering working on this after the window matching experiments are more stable. [...]

  2. By A meta-post about blogging « ᛏᚦ on July 16, 2009 at 10:18 pm

    [...] subsystems for CSS theming and window matching, and whether applications should be able to extend the window menu (so if you have Istanbul installed, you could add Screencast this window to all [...]