[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Bug#493963: xserver-xephyr: Allow starting Xephyr at other than 0,0 location

Package: xserver-xephyr
Version: 2:1.4.2-2
Severity: wishlist
Tags: patch

I'd like to use Xephyr to have a multiseat setup. My graphic card has
two displays and I don't know how to do differently than having one
large screen encompassing both monitors (ideally I'd have :0.0 on
first monitor and :0.1 on the second, but hey, I'm not capable). I
start Xephyr to have two X servers.

I'd like to start one Xephyr on first monitor and one Xephyr on
second monitor. Without window manager it's a bit tricky.

I can use an X client that honor the -geometry option and use
the ``-parent'' option of Xephyr. It's realy ugly (but it works).

Better approach:
There is a ``-origin'' option of Xephyr that is used in PanoramiX
mode but is ignored in non-PanoramiX mode. The following patch
sets the upper-left corner of the Xephyr window to the coordinates
specified as origin if PanoramiX is not activated.

-- System Information:
Debian Release: lenny/sid
  APT prefers testing
  APT policy: (990, 'testing')
Architecture: amd64 (x86_64)

Kernel: Linux (SMP w/2 CPU cores)
Locale: LANG=fr_FR.UTF-8, LC_CTYPE=fr_FR.UTF-8 (charmap=UTF-8)
Shell: /bin/sh linked to /bin/bash

Versions of packages xserver-xephyr depends on:
ii  libc6                         2.7-10     GNU C Library: Shared libraries
ii  libdbus-1-3                   1.2.1-2    simple interprocess messaging syst
ii  libfontenc1                   1:1.0.4-3  X11 font encoding library
ii  libhal1                       0.5.11-2   Hardware Abstraction Layer - share
ii  libpixman-1-0                 0.10.0-2   pixel-manipulation library for X a
ii  libx11-6                      2:1.1.4-2  X11 client-side library
ii  libxau6                       1:1.0.3-3  X11 authorisation library
ii  libxdmcp6                     1:1.0.2-3  X11 Display Manager Control Protoc
ii  libxext6                      2:1.0.4-1  X11 miscellaneous extension librar
ii  libxfont1                     1:1.3.3-1  X11 font rasterisation library
ii  x11-common                    1:7.3+14   X Window System (X.Org) infrastruc

Versions of packages xserver-xephyr recommends:
ii  xbase-clients                 1:7.3+14   miscellaneous X clients - metapack
ii  xfonts-base                   1:1.0.0-5  standard fonts for X

xserver-xephyr suggests no packages.

-- no debconf information
diff -u hw/kdrive/ephyr.orig/ephyr.c hw/kdrive/ephyr/ephyr.c
--- hw/kdrive/ephyr.orig/ephyr.c	2008-05-12 18:53:59.000000000 +0200
+++ hw/kdrive/ephyr/ephyr.c	2008-08-05 12:31:50.000000000 +0200
@@ -227,7 +227,7 @@
     buffer_height = 3 * screen->height;
-  priv->base = hostx_screen_init (screen->width, screen->height, buffer_height);
+  priv->base = hostx_screen_init (screen->origin.x, screen->origin.y, screen->width, screen->height, buffer_height);
   screen->memory_base  = (CARD8 *) (priv->base);
   screen->memory_size  = priv->bytes_per_line * buffer_height;
diff -u hw/kdrive/ephyr.orig/hostx.c hw/kdrive/ephyr/hostx.c
--- hw/kdrive/ephyr.orig/hostx.c	2008-05-12 18:53:59.000000000 +0200
+++ hw/kdrive/ephyr/hostx.c	2008-08-05 22:23:35.000000000 +0200
@@ -445,7 +445,7 @@
  * by fakexa for storing offscreen pixmap data.
-hostx_screen_init (int width, int height, int buffer_height)
+hostx_screen_init (int x, int y, int width, int height, int buffer_height)
   int         bitmap_pad;
   Bool        shm_success = False;
@@ -533,6 +533,9 @@
   XSetWMNormalHints(HostX.dpy, HostX.win, size_hints);
+#ifndef PANORAMIX
+  XMoveWindow(HostX.dpy, HostX.win, x, y);
   XMapWindow(HostX.dpy, HostX.win);
   XSync(HostX.dpy, False);
diff -u hw/kdrive/ephyr.orig/hostx.h hw/kdrive/ephyr/hostx.h
--- hw/kdrive/ephyr.orig/hostx.h	2008-05-12 18:53:59.000000000 +0200
+++ hw/kdrive/ephyr/hostx.h	2008-08-05 12:26:56.000000000 +0200
@@ -147,7 +147,7 @@
 		     unsigned char b);
-hostx_screen_init (int width, int height, int buffer_height);
+hostx_screen_init (int x, int y, int width, int height, int buffer_height);
 hostx_paint_rect(int sx,    int sy,

Reply to: