xfwm: support for 2d pagers

Paramjit Oberoi param at cs.wisc.edu
Tue Sep 21 01:54:03 CEST 2004


> No new feature is being added to the 4.0 release and your patch doesn't
> apply on CVS HEAD.

Yeah, I'm not very familiar with CVS, and I wasn't sure I had the right
version.  This is what I did to check out the code:

cvs -d:pserver:anonymous at cvs.xfce.sf.net:/cvsroot/xfce login
cvs -d:pserver:anonymous at cvs.xfce.sf.net:/cvsroot/xfce co xfce-devel/xfwm4

(got this from xfwm4-4.0.6 README)

How do I check out the latest code?

-param

> 
> Cheers,
> Olivier.
> 
> On Mon, 2004-09-20 at 08:50, Paramjit Oberoi wrote:
> > xfwm4 currently does not support 2d pagers very well: i.e., say that
> > your desktop pager/switcher displays 8 virtual desktops in 2 rows, 4
> > columns.  It is natural in this situation to want to move the virtual
> > desktop up/down/left/right.  However, xfwm only supports moving to the
> > next/previous desktop.  (the xfce pager doesn't support multiple rows;
> > I am using xfwm with GNOME, as a replacement for metacity)
> > 
> > According to the NetWM specification, pagers can communicate the layout
> > of the virtual desktops using the _NET_DESKTOP_LAYOUT property.  This
> > property is described in detail here:
> > http://freedesktop.org/Standards/wm-spec/1.3/ar01s03.html#id2503159
> > 
> > Attached to this email is a patch that adds support for this to xfwm.
> > The patch is against the current CVS head (I think).  Here's a summary
> > of the changes:
> > 
> > Additions to keythemerc:
> >     up_workspace_key
> >     down_workspace_key
> >     left_workspace_key
> >     right_workspace_key
> >     move_window_up_workspace_key
> >     move_window_down_workspace_key
> >     move_window_left_workspace_key
> >     move_window_right_workspace_key
> > 
> > Eight new hotkeys for changing the virtual desktop, and for moving the
> > current window. You must add these to your keythemerc to try out this
> > patch.
> > 
> > Adidtional setting in xfwm4.xml:
> >     <option name="Xfwm/WrapLayout" type="int" value="0"/>
> > 
> > Optionally, a "wrap_layout" parameter can be specified in the theme defaults.
> > 
> > This setting controls if the up/down/left/right movement wraps around at
> > the boundaries of the pager.  I have not (yet) modified the settings
> > manager plugins to allow this to be set via the GUI.
> > 
> > Most of the additional code is self-explanatory - things like grabbing
> > hotkeys, reading settings, etc.  Here is a list of the non-trivial bits:
> > 
> > hints.c, getDesktopLayout()
> >   Get the _NET_DESKTOP_LAYOUT property from the root window and update
> >   internal data structures appropriately
> > 
> > workspaces.c, workspaceGetPosition()
> >   Translate the given workspace number to a X,Y position depending on
> >   the layout of virtual workspaces
> > 
> > workspaces.c, workspaceGetNumber()
> >   Translate the given X,Y position to the workspace number
> > 
> > workspaces.c, workspaceMove(int rowmod, int colmod, Client * c2)
> >   just like workspaceSwitch (int new_ws, Client * c2), except that
> >   instead of specifying the new workspace number you specify which
> >   direction to move in (rowmod is +/- 1 for down/up movement; colmod
> >   is +/- 1 for right/left movement).
> > 
> > I've been using this with xfwm-4.0.6 for about a month.  I just ported
> > it to the latest xfwm, and it seems to be working fine so far.  I will
> > be glad if this can be included in future releases of xfwm.
> > 
> > -param
> > 
> > 
> > ______________________________________________________________________
> > _______________________________________________
> > Xfce4-dev mailing list
> > Xfce4-dev at xfce.org
> > http://lunar-linux.org/mailman/listinfo/xfce4-dev
> -- 
>  - Olivier Fourdan - fourdan at xfce.org - http://www.xfce.org - 
> 
> _______________________________________________
> Xfce4-dev mailing list
> Xfce4-dev at xfce.org
> http://lunar-linux.org/mailman/listinfo/xfce4-dev



More information about the Xfce4-dev mailing list