Package: xserver-xephyr Version: 2:1.4.2-2 Severity: wishlist Tags: patch Background: 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.
Problem: I'd like to start one Xephyr on first monitor and one Xephyr on second monitor. Without window manager it's a bit tricky. Workaround: 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 2.6.25.13 (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 @@ else 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. */ void* -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); XFree(size_hints); +#ifndef PANORAMIX + XMoveWindow(HostX.dpy, HostX.win, x, y); +#endif 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); void* -hostx_screen_init (int width, int height, int buffer_height); +hostx_screen_init (int x, int y, int width, int height, int buffer_height); void hostx_paint_rect(int sx, int sy,