Skip to content

Clone a single Xinerama screen to another X server, in userspace.

Notifications You must be signed in to change notification settings

puetzk/hybrid-screenclone

 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

19 Commits
 
 
 
 
 
 
 
 
 
 

Repository files navigation

This is a fork of liskin's screenclone, adding support for multiple outputs

hybrid-screenclone

This is a reimplementation of hybrid-windump with the opposite use-case: doing all rendering using the integrated intel card and using the additional card just to get more outputs (e.g. a triple-head with ThinkPad T420). As such, it uses the DAMAGE extension to avoid unnecessary redraws and the RECORD extension to capture mouse movements, which are translated to mouse movements on the destination X server.

For this to work correctly, an additional virtual Xinerama screen must be available. To get one, see my virtual CRTC for intel patch.

Multiple outputs

This version supports remapping to a target Xinerama screen other than 0, and also remapping multiple screens at once. This is mostly useful if you're using a version of the virtual CRTC patch new enough to support multiple virtual screens, e.g.

Section "Device"
    Identifier     "integrated"
    Driver         "intel"
    Option         "Virtuals" "2"
EndSection

Resulting in a setup with 3 outputs: LVDS1, VIRTUAL1, and VIRTUAL2. Then

xrandr --output VIRTUAL1 --mode 1600x1200 --right-of LVDS1 \
       --output VIRTUAL2 --mode 1600x1200 --right-of VIRTUAL1
screenclone -x 1:0 -x 2:1

Bumblebee

If you are running an optimus setup with bumblebee, this fork also adds direct support for that. Simply add -b to your screenclone command, and remove -d :display. Screenclone will connect to bumblebee (launching the nVidia X server), and get the display name from it. When screenclone (and anything else using it) disconnects, bumblebee will close the server and power down the discrete graphics card.

Normally, bumblebee does not attach any screens when it launches the nVidia card. You will need to alter /etc/bumblebee/xorg.conf.nvidia (or whatever path you are using), to add a screen section and refer to it in ServerLayout.

Section "ServerLayout"
    ...
    Screen      "Screen0"
EndSection

Section "Screen"
    Identifier     "Screen0"
    Device         "Device0"
    DefaultDepth    24
    SubSection     "Display"
    Depth       24
    EndSubSection
EndSection

About

Clone a single Xinerama screen to another X server, in userspace.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • C++ 100.0%