Hello,

I'm trying to teach Debian emacs-snapshot to stay on workspace #4, as
defined in WMWindowAttributes. The stubborn application listens only
partially: it will /not/ start where instructed, but on whatever desktop
happens to be displayed, but it _will_ StartMaximized, also requested in
WMWindowAttributes.

My WMWindowAttributes contains two instances of emacs, one for
emacs-snapshot, and one for emacs23. I quote:

,----
|   emacs-snapshot.Emacs = {
|     StartWorkspace = "Workspace 4";
|     StartMaximized = Yes;
|   };
|   emacs23.Emacs = {
|     StartWorkspace = "Workspace 4";
|   };
`----

If I launch emacs23 from desktop#[1-6] the application will
start on desktop#4. I want the same from emacs-snapshot.

I've run a bunch of xprop to check if it something to do with the
WM_CLASS. I see four versions:

1) emacs-snapshot (the application itself)
WM_CLASS(STRING) = "emacs-snapshot", "Emacs"

2) emacs-snapshot (the pop-up that appears when closing emacs using
WindowMakers [x])
WM_CLASS(STRING) = "emacs-snapshot", "Emacs-snapshot"

3) emacs23 (app)
WM_CLASS(STRING) = "emacs23", "Emacs"

4) emacs23 (pop-up)
WM_CLASS(STRING) = "emacs23", "Emacs23"


I noticed that it makes a difference whether or not I use quote
marks. If I define WMWindowAttributes like this (note the "):
 
  "emacs-snapshot.Emacs-snapshot" = {
     StartWorkspace = "Workspace 4";
     StartMaximized = Yes;
   };

then the pop up (in 2, above) will become maximized on desktop 4,
irrespective of what desktop is displayed. If I remove the quote marks,
the pop up will not maximize and will be on whatever desktop happens to
be displayed.

So, naturally I tried "emacs-snapshot.Emacs", but that does not put
emacs-snapshot on the intended desktop.


I wonder if my definition in WMWindowAttributes is correct. One clue is
that emacs and emacs-snapshot are actually emacs-snapshot-gtk, per
/etc/alternatives.  But even if I edit WMWindowAttributes to read:

emacs.Emacs

or

emacs-snaphot-gtk.Emacs

with and without ", it still won't go to desktop#4.


So, maybe WM_Class has other values, hidden somewhere, or WindowMaker
looks in another place for WM_CLASS.

Anyone here know more about the internals? There is a bug report on
Ubuntu, 

https://bugs.launchpad.net/ubuntu/+source/emacs23/+bug/725988

that mentions: "emacs ships an emacs.desktop file, but the Debian source
package uses its own emacsVER.desktop file. Unfortunately, this messes
up libraries like the shell application trackers and bamf that use
WM_CLASS as a basis for the application."

I'm guessing this has something to do with it. 



-- 
To unsubscribe, send mail to [email protected].

Reply via email to