mirror of
https://github.com/brl/mutter.git
synced 2024-11-24 17:10:40 -05:00
...
This commit is contained in:
parent
b88cece213
commit
857757b221
78
README
78
README
@ -60,8 +60,8 @@ METACITY FEATURES
|
|||||||
If you hold down Alt and click inside a window, it will move the
|
If you hold down Alt and click inside a window, it will move the
|
||||||
window (buttons 1 and 2) or show menu (button 3).
|
window (buttons 1 and 2) or show menu (button 3).
|
||||||
|
|
||||||
If you pick up a window with button 1 and then switch desktops
|
If you pick up a window with button 1 and then switch workspaces
|
||||||
the window will come with you to the new desktop, this is
|
the window will come with you to the new workspace, this is
|
||||||
a feature copied from Enlightenment.
|
a feature copied from Enlightenment.
|
||||||
|
|
||||||
If you hold down Shift while moving a window, the window snaps
|
If you hold down Shift while moving a window, the window snaps
|
||||||
@ -130,6 +130,10 @@ METACITY BUGS, NON-FEATURES, AND CAVEATS
|
|||||||
|
|
||||||
- Metacity turns off its keybindings for Emacs, because I use
|
- Metacity turns off its keybindings for Emacs, because I use
|
||||||
Alt-space in Emacs, and getting a window menu annoys me.
|
Alt-space in Emacs, and getting a window menu annoys me.
|
||||||
|
This is a broken feature. My planned fix is to use super/hyper
|
||||||
|
instead of Alt as the main keybinding shortcut, if super/hyper
|
||||||
|
exist, and then keyboards with a windows key can use that for
|
||||||
|
WM functions and Alt for application shortcuts.
|
||||||
|
|
||||||
- Cycling windows with Alt-Tab is flickery, AFAIK because
|
- Cycling windows with Alt-Tab is flickery, AFAIK because
|
||||||
Metacity passes the entire window stack to XRestackWindows()
|
Metacity passes the entire window stack to XRestackWindows()
|
||||||
@ -140,9 +144,6 @@ METACITY BUGS, NON-FEATURES, AND CAVEATS
|
|||||||
- Various operations, such as minimize, maximize, etc., should
|
- Various operations, such as minimize, maximize, etc., should
|
||||||
have simple animations to make them clearer to users.
|
have simple animations to make them clearer to users.
|
||||||
|
|
||||||
- Metacity registers with the session manager, but doesn't actually
|
|
||||||
remember window sizes and positions.
|
|
||||||
|
|
||||||
- I haven't even read the ICCCM section about colormaps. So if you
|
- I haven't even read the ICCCM section about colormaps. So if you
|
||||||
have an 8-bit display you are basically screwed.
|
have an 8-bit display you are basically screwed.
|
||||||
|
|
||||||
@ -156,7 +157,7 @@ METACITY BUGS, NON-FEATURES, AND CAVEATS
|
|||||||
- Window placement is always cascade for now; I want to implement
|
- Window placement is always cascade for now; I want to implement
|
||||||
"first fit, falling back to cascade if no fit."
|
"first fit, falling back to cascade if no fit."
|
||||||
(Configurable placement algorithms are stupid though, don't
|
(Configurable placement algorithms are stupid though, don't
|
||||||
send me patches for any bogus ones.)
|
send me patches for any bogus ones. Let's just pick a good one.)
|
||||||
|
|
||||||
- Maximization and movement constraints do not take the
|
- Maximization and movement constraints do not take the
|
||||||
GNOME panel into account. Most of the code already handles
|
GNOME panel into account. Most of the code already handles
|
||||||
@ -165,12 +166,21 @@ METACITY BUGS, NON-FEATURES, AND CAVEATS
|
|||||||
Metacity needs to keep this area up-to-date using the hints the
|
Metacity needs to keep this area up-to-date using the hints the
|
||||||
panel sets.
|
panel sets.
|
||||||
|
|
||||||
- Should really support click-to-focus as an option.
|
- Should support click-to-focus as an option.
|
||||||
|
|
||||||
- Windows has a neat way of implementing Alt-Tab for
|
- Windows has a neat way of implementing Alt-Tab for
|
||||||
window cycling that I would like to copy. (The little
|
window cycling that I would like to copy. (The little
|
||||||
popup window thing.)
|
popup window thing.)
|
||||||
|
|
||||||
|
- People seem to like shortcuts using arrow keys for moving
|
||||||
|
between workspaces. My only question here is that I'm not sure
|
||||||
|
what the spatial relationship between workspaces is.
|
||||||
|
(Are they in a grid, or a horizontal row, or what.)
|
||||||
|
I think we may need a window manager spec extension to
|
||||||
|
share this information between the WM and the pager.
|
||||||
|
We could add left/right arrow and pretend they're in
|
||||||
|
a row for the short term though.
|
||||||
|
|
||||||
- Should Metacity support flipping in right-to-left locales?
|
- Should Metacity support flipping in right-to-left locales?
|
||||||
I don't know what window managers look like in a right-to-left
|
I don't know what window managers look like in a right-to-left
|
||||||
locale. I assume the window titles should be right-justified;
|
locale. I assume the window titles should be right-justified;
|
||||||
@ -230,11 +240,10 @@ A: You don't, until GConf 2 is relatively easy to compile and I feel
|
|||||||
|
|
||||||
Q: Will Metacity be part of GNOME?
|
Q: Will Metacity be part of GNOME?
|
||||||
|
|
||||||
A: If Metacity is ever better than the other options, and the GNOME
|
A: This is not the current plan, though of course I'm happy to see the
|
||||||
Project so chooses. But Metacity may continue to suck forever
|
code used by anyone who's interested. Metacity may continue to suck
|
||||||
because I might get tired of working on it; or Metacity's feature
|
forever because I might get tired of working on it; or Metacity's
|
||||||
set might not make sense for GNOME. Who knows. I'm not worrying
|
feature set might not make sense for GNOME. Who knows.
|
||||||
about this, and you shouldn't either.
|
|
||||||
|
|
||||||
For now Metacity is my toy hobby project that I work on when I feel
|
For now Metacity is my toy hobby project that I work on when I feel
|
||||||
like it.
|
like it.
|
||||||
@ -245,6 +254,51 @@ A: Because XMMS is broken and is trying to move itself. Metacity
|
|||||||
does not tolerate insolent windows who believe they can
|
does not tolerate insolent windows who believe they can
|
||||||
self-manage. Use Alt-button1 to move XMMS using Metacity.
|
self-manage. Use Alt-button1 to move XMMS using Metacity.
|
||||||
|
|
||||||
|
Q: Why does Metacity remember the workspace/position of some apps
|
||||||
|
but not others?
|
||||||
|
|
||||||
|
A: Metacity only stores sizes/positions for apps that are session
|
||||||
|
managed. As far as I can determine, there is no way to attempt
|
||||||
|
to remember workspace/position for non-session-aware apps without
|
||||||
|
causing a lot of weird effects.
|
||||||
|
|
||||||
|
The reason is that you don't know which non-SM-aware apps were
|
||||||
|
launched by the session. When you initially log in, Metacity sees a
|
||||||
|
bunch of new windows appear. But it can't distinguish between
|
||||||
|
windows that were stored in your session, or windows you just
|
||||||
|
launched after logging in. If Metacity tried to guess that a window
|
||||||
|
was from the session, it could e.g. maximize a dialog, or put a
|
||||||
|
window you just launched on another desktop or in a weird
|
||||||
|
place. And in fact I see a lot of bugs like this in window managers
|
||||||
|
that try to handle non-session-aware apps.
|
||||||
|
|
||||||
|
However, for session-aware apps, Metacity can tell that the
|
||||||
|
application instance is from the session and thus restore it
|
||||||
|
reliably, assuming the app properly restores the windows it had
|
||||||
|
open on session save.
|
||||||
|
|
||||||
|
So the correct way to fix the situation is to make apps
|
||||||
|
session-aware. libSM has come with X for years, it's very
|
||||||
|
standardized, it's shared by GNOME and KDE - even twm is
|
||||||
|
session-aware. So anyone who won't take a patch to add SM is more
|
||||||
|
archaic than twm - and you should flame them. ;-)
|
||||||
|
|
||||||
|
Docs on session management:
|
||||||
|
ftp://ftp.x.org/pub/R6.4/xc/doc/hardcopy/SM/xsmp.PS.gz
|
||||||
|
ftp://ftp.x.org:21/pub/R6.4/xc/doc/hardcopy/SM/SMlib.PS.gz
|
||||||
|
|
||||||
|
See also the ICCCM section on SM. For GNOME apps, use
|
||||||
|
the GnomeClient object. For a simple coding example using
|
||||||
|
libSM directly, twm/session.c in the twm source code is
|
||||||
|
pretty easy to understand.
|
||||||
|
|
||||||
|
Q: How about adding viewports in addition to workspaces?
|
||||||
|
|
||||||
|
A: I could conceivably be convinced to use viewports _instead_ of
|
||||||
|
workspaces, though currently I'm not thinking that. But I don't
|
||||||
|
think it makes any sense to have both; it's just confusing. They
|
||||||
|
are functionally equivalent.
|
||||||
|
|
||||||
Q: Did you spend a lot of time on this?
|
Q: Did you spend a lot of time on this?
|
||||||
|
|
||||||
A: Metacity is about 6000 lines of code, which took a few weekends and
|
A: Metacity is about 6000 lines of code, which took a few weekends and
|
||||||
|
Loading…
Reference in New Issue
Block a user