xfwm: support for 2d pagers
Olivier Fourdan
fourdan at xfce.org
Mon Sep 20 23:17:15 CEST 2004
Hi
No new feature is being added to the 4.0 release and your patch doesn't
apply on CVS HEAD.
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 -
More information about the Xfce4-dev
mailing list