Results 1 to 5 of 5

Thread: Wacom tablet and Twinview woes

  1. #1
    Join Date
    Jul 2007
    Location
    London, UK
    Beans
    20
    Distro
    Ubuntu 10.04 Lucid Lynx

    Wacom tablet and Twinview woes

    Hi All,

    Having spent some time on various other helpful threads, most importantly http://ubuntuforums.org/showthread.php?t=1321238 trying to get my tablet working I've decided the answer isn't out there. I might have missed it, but it certainly isn't obvious.

    Firstly let me say that I have followed the instructions in the holy grail of posts linked above. My tablet *does* work. It's just functionally impaired and there is no suggestion on that thread of how to fix it.

    I have a dual screen setup. Nvidia graphics (GTX 275), running TwinView (NOT Xinerama). See attached xorg.conf. The active area of the graphics tablet is mapped to the entire double screen spread. That's 3840x1080. But the pad is only ~8" x 5", so the sensitivity in the x axis is pretty terrible. This is what I'm trying to fix.

    According to the Linux Wacom project, there are various configurations for multiple screen setups: http://linuxwacom.sourceforge.net/in...o/multimonitor.

    The following settings are involved, all of which can be changed in the fdi file or using xsetwacom. If using xsetwacom, the syntax is
    Code:
    xsetwacom set [tablet_name] [option] [value]
    The tablet_name part can be found by running xsetwacom list. In my case it's stylus.

    Some are also accessible through wacomcpl, but I've stopped using that since it doesn't allow access to all settings.

    Option "TwinView": can take "none","xinerama","horizontal",etc
    Option "ScreenNo" ("Screen_No" in xsetwacom): can take "-1","0","1",depending on above setting
    Option "TVResolution0": specify in format "1920 1080"
    Option "TVResolution1": ditto for second screen
    Option "Mmonitor": "on" or "off"

    A further option exists only in the fdi file

    Option "KeepShape": "on" or "off"

    And then there's a useful piece of info available from xsetwacom only:

    Code:
    xsetwacom get stylus NumScreen
    I have played around with all of these. Observations:

    You can tell whether you're running Xinerama or TwinView based on the output of xsetwacom get stylus NumScreen. 1 screen means TwinView, 2 means Xinerama.

    Running TwinView (as in xorg.conf attached), only KeepShape has any effect. It reduces the active area vertically, so that the overall ratio is equivalent to that on the screen. Not ideal - the vertical resolution is much reduced AND I'm only using half of my active area.

    Running Xinerama - I had to modify my xorg.conf. I used one posted by Ianni67 as a guide: http://ubuntuforums.org/showpost.php...&postcount=979. Notice TwinView is switched OFF. Now selecting a screen using the "ScreenNo" option does work. Setting "Mmonitor" to "off" also allows switching between the two screens by clicking with the mouse. The "TVResolution" settings make no difference.

    Problems:

    - I lose support for desktop effects (Compiz). Unless things have changed very recently, this is expected as the two are incompatible: http://www.linuxquestions.org/questi...compiz-765118/.

    - There's a strange problem with cursor offset in GIMP and Inkscape (my two test programs). Reported elsewhere:
    https://bugzilla.gnome.org/show_bug.cgi?id=66813
    https://bugs.launchpad.net/ubuntu/+s...ls/+bug/410267
    Some solutions were suggested. I'm not going to try them for now because I don't want to lose 3D rendering in order to restrict my tablet to one screen - there has to be a better way!

    So... where to next? I think possibly the source code?! If there are any developers out there perhaps you could suggest where I might start? I'd be very happy with a rough-and-ready solution - for example manually restricting the tablet to a specified subregion.
    Attached Files Attached Files

  2. #2
    Join Date
    Dec 2007
    Beans
    29

    Re: Wacom tablet and Twinview woes

    Hello,

    I have a Bamboo CTH-661 (Pen and Touch) and a Nvidia GTX260 both set to TwinView (xsetwacom get stylus NumScreen gives me a 2, any idea?) because I have two monitors. I don't need touch right now and only want to get the pen working on only one screen (1920x1080); right now the combined resolution is 3840x1080. I tried for a couple of hours now but it is not going to just one screen. I don't want to use Xinerama because I like to have 4 panels. From what I read this is not supported right now? Any suggestions?


    Here is my xorg.conf file:
    Code:
    # nvidia-settings: X configuration file generated by nvidia-settings
    # nvidia-settings:  version 1.0  (buildd@crested)  Sun Feb  1 20:25:37 UTC 2009
    
    # xorg.conf (X.Org X Window System server configuration file)
    #
    # This file was generated by dexconf, the Debian X Configuration tool, using
    # values from the debconf database.
    #
    # Edit this file with caution, and see the xorg.conf manual page.
    # (Type "man xorg.conf" at the shell prompt.)
    #
    # This file is automatically updated on xserver-xorg package upgrades *only*
    # if it has not been modified since the last upgrade of the xserver-xorg
    # package.
    #
    # Note that some configuration settings that could be done previously
    # in this file, now are automatically configured by the server and settings
    # here are ignored.
    #
    # If you have edited this file but would like it to be automatically updated
    # again, run the following command:
    #   sudo dpkg-reconfigure -phigh xserver-xorg
    
    Section "ServerLayout"
        Identifier     "Default Layout"
        Screen      0  "Screen0" 0 0
        InputDevice    "Keyboard0" "CoreKeyboard"
        InputDevice    "Mouse0" "CorePointer"
    EndSection
    
    Section "Module"
        Load           "glx"
    EndSection
    
    Section "ServerFlags"
        Option         "DontZap" "False"
        Option         "Xinerama" "0"
    EndSection
    
    Section "InputDevice"
    
        # generated from default
        Identifier     "Keyboard0"
        Driver         "kbd"
    EndSection
    
    Section "InputDevice"
    
        # generated from default
        Identifier     "Mouse0"
        Driver         "mouse"
        Option         "Protocol" "auto"
        Option         "Device" "/dev/psaux"
        Option         "Emulate3Buttons" "no"
        Option         "ZAxisMapping" "4 5"
    EndSection
    
    Section "Monitor"
        Identifier     "Configured Monitor"
    EndSection
    
    Section "Monitor"
        Identifier     "Monitor0"
        VendorName     "Unknown"
        ModelName      "Samsung SyncMaster"
        HorizSync       30.0 - 81.0
        VertRefresh     56.0 - 60.0
    EndSection
    
    Section "Monitor"
        Identifier     "Monitor1"
        VendorName     "Unknown"
        ModelName      "Samsung SyncMaster"
        HorizSync       30.0 - 81.0
        VertRefresh     56.0 - 60.0
    EndSection
    
    Section "Device"
        Identifier     "Configured Video Device"
        Driver         "nvidia"
        Option         "NoLogo" "True"
    EndSection
    
    Section "Device"
        Identifier     "Device0"
        Driver         "nvidia"
        VendorName     "NVIDIA Corporation"
        BoardName      "GeForce GTX 260"
    EndSection
    
    Section "Device"
        Identifier     "Device1"
        Driver         "nvidia"
        VendorName     "NVIDIA Corporation"
        BoardName      "GeForce GTX 260"
        BusID          "PCI:1:0:0"
        Screen          1
    EndSection
    
    Section "Screen"
        Identifier     "Default Screen"
        Device         "Configured Video Device"
        Monitor        "Configured Monitor"
        DefaultDepth    24
    EndSection
    
    Section "Screen"
        Identifier     "Screen0"
        Device         "Device0"
        Monitor        "Monitor0"
        DefaultDepth    24
        Option         "TwinView" "1"
        Option         "TwinViewXineramaInfoOrder" "DFP-0"
        Option         "metamodes" "DFP-0: nvidia-auto-select +1920+0, DFP-1: nvidia-auto-select +0+0"
        SubSection     "Display"
            Depth       24
        EndSubSection
    EndSection
    
    Section "Screen"
        Identifier     "Screen1"
        Device         "Device1"
        Monitor        "Monitor1"
        DefaultDepth    24
        Option         "TwinView" "0"
        Option         "metamodes" "DFP-0: nvidia-auto-select +0+0"
        SubSection     "Display"
            Depth       24
        EndSubSection
    EndSection
    As a test I did remove the whole screen1 sction and this makes no difference at all. I also removed the TwinViewXineramaInfoOrder line and this also makes no difference at all.

    Here is my 10-linuxwacom.fdi file:
    Code:
    <?xml version="1.0" encoding="ISO-8859-1"?>
    
    <!-- Wacom:  tablets, tablet pc's, and touch screen laptops -->
    <deviceinfo version="0.2">
      <!-- for all Wacom USB tablets -->
      <device>
        <match key="input.originating_device" contains="if0">
          <match key="info.product" contains="Wacom">
    	<merge key="input.x11_driver" type="string">wacom</merge>
    	<merge key="input.x11_options.Type" type="string">stylus</merge>
    	<merge key="input.x11_options.Twinview" type="string">horizontal</merge>
    	<merge key="input.x11_options.TVResolution" type="string">1920x1080,1920x1080</merge>
    	<merge key="input.x11_options.ScreenNo" type="string">0</merge>
    	<merge key="input.x11_options.Mmonitor" type="string">off</merge>
    	<merge key="input.x11_options.Button1" type="string">1</merge>
    	<merge key="input.x11_options.Button2" type="string">2</merge>
    	<merge key="input.x11_options.Button3" type="string">3</merge>
    	<merge key="input.x11_options.Button4" type="string">4</merge>
    	<append key="info.callouts.add" type="strlist">hal-setup-wacom</append>
    	<append key="wacom.types" type="strlist">eraser</append>
    	<append key="wacom.types" type="strlist">cursor</append>
    	<append key="wacom.types" type="strlist">pad</append>
            <!-- for HP dv3-2250 multi-touch laptop -->
            <match key="info.udi" contains="e2">
              <merge key="input.x11_options.Type" type="string">touch</merge>
            </match>
          </match>
        </match>
      </device>
      <!-- for most Wacom USB tablets with touch -->
      <device>
        <match key="input.originating_device" contains="if1">
          <match key="info.product" contains="Wacom">
            <merge key="input.x11_driver" type="string">wacom</merge>
            <merge key="input.x11_options.Type" type="string">touch</merge>
            <!-- for Bamboo Pen & Touch tablets -->
    	<append key="info.callouts.add" type="strlist">hal-setup-wacom</append>
    	<append key="wacom.types" type="strlist">pad</append>
          </match>
        </match>
      </device>
      <!-- for Wacom Serial tablets -->
      <device>
        <match key="info.capabilities" contains="serial">
          <match key="@info.parent:pnp.id" contains_outof="WACf;FUJ02e5;FUJ02e7">
    	<append key="info.capabilities" type="strlist">input</append>
    	<merge key="input.x11_driver" type="string">wacom</merge>
    	<merge key="input.x11_options.Type" type="string">stylus</merge>
    	<merge key="input.x11_options.ForceDevice" type="string">ISDV4</merge>
    	<merge key="input.device" type="copy_property">serial.device</merge>
    	<append key="info.callouts.add" type="strlist">hal-setup-wacom</append>
    	<append key="wacom.types" type="strlist">eraser</append>
    	<append key="wacom.types" type="strlist">cursor</append>
    	<!-- Serial tablets with touch capabilities -->
            <match key="@info.parent:pnp.id" contains_outof="WACf008;WACf009;WACf010;WACf008A;WACf00B;WACf00C;WACf00D;WACf00E;FUJ02e7">
    	  <append key="wacom.types" type="strlist">touch</append>
    	</match>
            <!-- Serial tablets that operate at higher baud rate -->
            <match key="@info.parent:pnp.id" contains_outof="WACf008">
              <merge key="input.x11_options.BaudRate" type="string">38400</merge>
            </match>
          </match>
        </match>
      </device>
      <!-- Match the Wacom Bluetooth A5 pen tablet -->
      <device>
        <match key="info.capabilities" contains="input.mouse">
          <match key="info.product" contains="WACOM">
            <match key="info.product" contains="Tablet">
              <merge key="input.x11_driver" type="string">wacom</merge>
              <merge key="input.x11_options.Type" type="string">stylus</merge>
    	  <append key="info.callouts.add" type="strlist">hal-setup-wacom</append>
    	  <append key="wacom.types" type="strlist">eraser</append>
    	  <append key="wacom.types" type="strlist">cursor</append>
            </match>
          </match>
        </match>
      </device>
      <!-- Wacom names "parser" -->
      <device>
        <match key="info.udi" contains_not="subdev_0">
        <match key="info.udi" contains_not="subdev_1">
        <match key="info.udi" contains_not="subdev_2">
          <match key="input.x11_options.Type" contains="stylus">
            <merge key="info.product" type="string">stylus</merge>
          </match>
          <match key="input.x11_options.Type" contains="eraser">
            <merge key="info.product" type="string">eraser</merge>
          </match>
          <match key="input.x11_options.Type" contains="cursor">
            <merge key="info.product" type="string">cursor</merge>
          </match>
          <match key="input.x11_options.Type" contains="pad">
            <merge key="info.product" type="string">pad</merge>
          </match>
          <match key="input.x11_options.Type" contains="touch">
            <merge key="info.product" type="string">touch</merge>
          </match>
        </match>
        </match>
        </match>
      </device>
    </deviceinfo>
    On the Twinview" type="string">horizontal< I tried also the other ones like leftof etc... and I tried to change the screenNo to 1.
    It would be nice to configure for example Button1 to switch between screens... I tried this in wacomcpl, but this did also not change anything.

  3. #3
    Join Date
    Dec 2007
    Beans
    29

    Re: Wacom tablet and Twinview woes

    I also thought about a subregion hack today... for now I would not mind to hard code that into the driver... but a working solution not just for nvidia but also for the other cards would be good... but I'm not sure if this a wacom or xserver issue?

    from /linuxwacom-0.8.5-11/src/util/xsetwacom.c
    Code:
            { "STopX0",
    		"Screen 0 left coordinate in pixels. ",
    		XWACOM_PARAM_STOPX0, VALUE_REQUIRED },
    
    	{ "STopY0",
    		"Screen 0 top coordinate in pixels. ",
    		XWACOM_PARAM_STOPY0, VALUE_REQUIRED },
    
    	{ "SBottomX0",
    		"Screen 0 right coordinate in pixels. ",
    		XWACOM_PARAM_SBOTTOMX0, VALUE_REQUIRED },
    
    	{ "SBottomY0",
    		"Screen 0 bottom coordinate in pixels. ",
    		XWACOM_PARAM_SBOTTOMY0, VALUE_REQUIRED },
    This is read only... but it would be nice if we could set this just for the tablet without modifying the graphics resolution... btw if I comment the return 1 on the set function i get this error:
    Set: 'SBottomX0' doesn't support set option.
    X Error: 8 BadMatch (invalid parameter attributes)
    Error (22): WacomConfigSetRawParam: failed
    Set: Failed to set stylus value for 'SBottomX0'

    So I guess this is a x server issues after all.

    Regards,
    Markus
    Last edited by alpharesearch; March 26th, 2010 at 02:51 AM.

  4. #4
    Join Date
    Dec 2007
    Beans
    29

    Re: Wacom tablet and Twinview woes

    I guess right now the mapper maps the tablet to to the X screen0 ... but my screen0 is made of monitor0 and monitor1... if we can find a way to add a new mode to map it to monitorX instead of screenX I think we solved the issue... or if we just could map it to part of screen0 like start x1920 and end x 3840 and y 0 to 1080 in my case; this would be the right side of my setup.

    Regards,
    Markus

    PS: I also send some questions to the mailing list.
    PPS: here is something I had send to the mailing list:
    Sorry to double post.... but I think I found the right file:
    wcmMapping.c should do the trick.
    I don't know anything about the XOrg 7.4 that Ubuntu 9.10 uses... I
    guess I need to copy the file wacom_drv.so into the
    /usr/lib/xorg/modules/input/ directory. Is the only thing I need to do?
    I guess I need to restart X or do I need to reboot or recompile
    something else?
    Last edited by alpharesearch; March 26th, 2010 at 04:05 AM.

  5. #5
    Join Date
    Dec 2007
    Beans
    29

    [SOLVED]Wacom tablet and Twinview woes

    For me the solution was to use:
    ./configure --enable-quirk-tablet-rescale
    make
    sudo make install

    logout and back in

    Now I was able to use wacomcpl to configure the TwinView LeftOF or Horizontal Screen0 (my right screen) or screen1 (my left screen)... looks like this has something to do with XOrg 7.4 in Ubuntu 9.10, from the comments in the code I guess this extra stuff is needed for 7.3 and higher.

    Or put thoses two lines in this file:
    /usr/share/hal/fdi/policy/20thirdparty/10-linuxwacom.fdi

    <merge key="input.x11_options.TwinView" type="string">Horizontal</merge>
    <merge key="input.x11_options.ScreenNo" type="string">0</merge>
    http://ubuntuforums.org/showpost.php...0&postcount=73


    Markus

    PS: Now I only need to get the screen/monitor toggle options under pad for the buttons to work and I'm all set.
    Last edited by alpharesearch; March 26th, 2010 at 04:59 AM.

Tags for this Thread

Bookmarks

Posting Permissions

  • You may not post new threads
  • You may not post replies
  • You may not post attachments
  • You may not edit your posts
  •