A GUI for RandR

<meta content="OpenOffice.org 2.2 (Linux)" name="GENERATOR" /><meta content="Alberto Milone" name="AUTHOR" /><meta content="20070604;22164000" name="CREATED" /><meta content="Alberto Milone" name="CHANGEDBY" /><meta content="20070605;190000" name="CHANGED" /> <p style="margin-bottom: 0cm;" class="western">I have been working at nights on a new project of mine. I have always thought that Keith Packards’ RandR was an excellent tool and I wanted to make xrandr (its textual interface) more userfriendly. I am aware that another chap is working on a UI written in C, however I thought I would contribute with my Python application.</p> <p style="margin-bottom: 0cm;" class="western">RandrGUI (its provisional name) is a GTK interface to xrandr. I did not create Python bindings for RandR (since I can’t code in C, <strong>yet</strong><span style="">) but an application which captures the output of xrandr and uses it to apply the settings that users choose.</span></p> <p style="margin-bottom: 0cm;" class="western">I installed Debian Sid, since it uses xserver-xorg 1.3, randr 1.2 and the intel driver 2.0, and started developing my application. I wrote the interface using glade (so that I don’t have to change the code if I want to make the UI look different.</p> <p style="margin-bottom: 0cm;" class="western"><span style="">I have almost finished writing </span><strong>version 0.1 which will enable you to</strong><span style="">:</span></p> <ul> <li> <p style="margin-bottom: 0cm;" class="western"> clone your screen on an external screen or TV</p> </li> <li> <p style="margin-bottom: 0cm;" class="western"> rotate your screen(s)</p> </li> <li> <p style="margin-bottom: 0cm;" class="western"> change your screen(s) resolution</p> </li> </ul> <p style="margin-bottom: 0cm;" class="western">You will be able to do all this without touching your xorg.conf, only a few mouse clicks are required.</p> <p style="margin-bottom: 0cm;" class="western"><br/> </p> <p style="margin-bottom: 0cm;" class="western"><strong>What are the requirements?</strong></p> <ul> <li> <p style="margin-bottom: 0cm;" class="western"> xserver-xorg 1.3</p> </li> <li> <p style="margin-bottom: 0cm;" class="western"> randr 1.2</p> </li> <li> <p style="margin-bottom: 0cm;" class="western"> the intel driver 2.0 (or the ATI open source driver from GIT code)<br/> </p> </li> <li> <p style="margin-bottom: 0cm;" class="western"> A GNU/Linux distribution which uses the first three elements in this list.</p> </li> </ul> <p style="margin-bottom: 0cm;" class="western">This means that you will not be able to use it on Feisty. Maybe on Gutsy.</p> <p style="margin-bottom: 0cm;" class="western"><br/> </p> <p style="margin-bottom: 0cm;" class="western"><strong>Does it work flawlessly?</strong></p> <p style="margin-bottom: 0cm;" class="western">No,not yet. At least not with the version of randr available on Debian unstable. However it works quite well here.</p> <p style="margin-bottom: 0cm;" class="western"><br/> </p> <p style="margin-bottom: 0cm;" class="western"><strong>Known Issues</strong></p> <ul> <li> <p style="margin-bottom: 0cm;" class="western"> There is no way to select PAL/NTSC for your CRT TV therefore my TV works at 30Hz and the video is black and white *<br/> </p> </li> <li> <p style="margin-bottom: 0cm;" class="western"> I do not know how Randrgui will work with HD TVs *<br/> </p> </li> <li> <p style="margin-bottom: 0cm;" class="western"><span style="">Sometimes you have to change the resolution of your 2</span><sup><span style="">nd</span></sup><span style=""> screen in order to get the right resolution on your first screen (this means that more clicks are required).</span></p> </li> <li> <p style="margin-bottom: 0cm;" class="western"> If I use a DVI2VGA adapter 1 extra TMDS-1 device spawns up (I’ll have to ask some Xorg hackers about this)</p> </li> </ul> <p style="margin-bottom: 0cm;" class="western"><strong> * As far as I know,the first 2 problems are solved in Randr GIT code </strong><span style="">therefore I will have to play with the experimental code and adapt randrgui.</span></p> <p style="margin-bottom: 0cm;" class="western"><br/> </p> <p style="margin-bottom: 0cm;" class="western"><strong>TODO</strong></p> <ul> <li> <p style="margin-bottom: 0cm;" class="western"> Write a logger (for version 0.1 ?)</p> </li> <li> <p style="margin-bottom: 0cm;" class="western"> Give the option to use each screen separately (instead of just cloning your main screen on the other screens)</p> </li> <li> <p style="margin-bottom: 0cm;" class="western"> Adapt Randrgui to Randr’s GIT code</p> </li> <li> <p style="margin-bottom: 0cm;" class="western"> Find a better name for Randrgui</p> </li> <li> <p style="margin-bottom: 0cm;" class="western"> make a deb package</p> </li> </ul> <p><strong><br/><br /> </strong></p> <p><strong>Release date</strong><br/> </p> <p>I hope to release it soon. I am studying all day for my English and Spanish exams therefore I can code only at nights.<br/> </p> <p style="margin-bottom: 0cm;" class="western"><br/> </p> <p style="margin-bottom: 0cm;" class="western"><strong>Screenshots</strong></p> <p style="margin-bottom: 0cm;" class="western">I know this screenshot does not show how RandrGUI works therefore I promise that I will post more screenshots soon.</p> <p><img src="http://albertomilone.com/images/randrgui1.jpg" alt="randrgui in action" /></p> <p style="text-align: right; font-size: 8px">Blogged with <a href="http://www.flock.com/blogged-with-flock" title="Flock" target="_new">Flock</a></p> </div> <footer class="entry-footer"> <section class="author-section cf"> <div class="author-image"><a href="http://albertomilone.com/?author=1" rel="author"><img alt='' src='http://0.gravatar.com/avatar/2640bf6b7d320a2b74babf92f92ce31c?s=250&d=wavatar&r=G' class='avatar avatar-250 photo' height='250' width='250' /></a></div> <div class="author-text"> <div class="author-name"><a href="http://albertomilone.com/?author=1" rel="author">Alberto Milone</a></div> <div class="author-bio"></div> </div> </section> <p class="tags"></p> <p class="categories">Categorized in: <a href="http://albertomilone.com/?cat=11" title="View all posts in Debian" rel="category">Debian</a>, <a href="http://albertomilone.com/?cat=8" title="View all posts in Ubuntu" rel="category">Ubuntu</a></p> <p class="date"><span class="posted-on-text">Posted on </span><span class="posted-on-date"><a href="http://albertomilone.com/?p=93" title="15:27" rel="bookmark"><time class="entry-date published" datetime="2007-06-05T15:27:26+00:00">June 5, 2007</time></a></span><span class="byline"> by <span class="vcard author"><a class="url fn n" href="http://albertomilone.com/?author=1" title="View all posts by Alberto Milone" rel="author">Alberto Milone</a></span></span></p> </footer><!-- .entry-footer --> </article><!-- #post-93 --> <div id="comments" class="comments-area"> <h2 class="comments-title"> 16 thoughts on “<span>A GUI for RandR</span>” </h2> <ol class="comment-list"> <li id="comment-735" class="comment even thread-even depth-1"> <article id="div-comment-735" class="comment-body"> <footer class="comment-meta"> <div class="comment-author vcard"> <img alt='' src='http://0.gravatar.com/avatar/aa438b63ff1e9b75693aeabbeddae5eb?s=64&d=wavatar&r=G' class='avatar avatar-64 photo' height='64' width='64' /> <b class="fn"><a href='http://arvindn.livejournal.com' rel='external nofollow' class='url'>randomwalker</a></b> <span class="says">says:</span> </div><!-- .comment-author --> <div class="comment-metadata"> <a href="http://albertomilone.com/?p=93#comment-735"> <time datetime="2007-06-05T16:57:29+00:00"> June 5, 2007 at 16:57 </time> </a> </div><!-- .comment-metadata --> </footer><!-- .comment-meta --> <div class="comment-content"> <p>I think you should call it gRandR, pronounced ‘grander’.</p> </div><!-- .comment-content --> <div class="reply"> <a class='comment-reply-link' href='/wordpress/?p=93&replytocom=735#respond' onclick='return addComment.moveForm("div-comment-735", "735", "respond", "93")'>Reply</a> </div><!-- .reply --> </article><!-- .comment-body --> </li><!-- #comment-## --> <li id="comment-736" class="comment odd alt thread-odd thread-alt depth-1"> <article id="div-comment-736" class="comment-body"> <footer class="comment-meta"> <div class="comment-author vcard"> <img alt='' src='http://0.gravatar.com/avatar/0e15b9fca74e7d4acef145122d9ff6e4?s=64&d=wavatar&r=G' class='avatar avatar-64 photo' height='64' width='64' /> <b class="fn">Martijn</b> <span class="says">says:</span> </div><!-- .comment-author --> <div class="comment-metadata"> <a href="http://albertomilone.com/?p=93#comment-736"> <time datetime="2007-06-05T17:38:43+00:00"> June 5, 2007 at 17:38 </time> </a> </div><!-- .comment-metadata --> </footer><!-- .comment-meta --> <div class="comment-content"> <p>Is this related to the DisplayConfigGTK spec? <a href="https://wiki.ubuntu.com/DisplayConfigGTK" rel="nofollow">https://wiki.ubuntu.com/DisplayConfigGTK</a></p> <p>You might want to team up with those people, instead of duplicating effort.</p> </div><!-- .comment-content --> <div class="reply"> <a class='comment-reply-link' href='/wordpress/?p=93&replytocom=736#respond' onclick='return addComment.moveForm("div-comment-736", "736", "respond", "93")'>Reply</a> </div><!-- .reply --> </article><!-- .comment-body --> </li><!-- #comment-## --> <li id="comment-737" class="comment even thread-even depth-1"> <article id="div-comment-737" class="comment-body"> <footer class="comment-meta"> <div class="comment-author vcard"> <img alt='' src='http://0.gravatar.com/avatar/6f4795b7379a474b071f1d8361aff485?s=64&d=wavatar&r=G' class='avatar avatar-64 photo' height='64' width='64' /> <b class="fn"><a href='https://blueprints.launchpad.net/ubuntu/spec/simple-x-mode-selection' rel='external nofollow' class='url'>Fabian Rodriguez</a></b> <span class="says">says:</span> </div><!-- .comment-author --> <div class="comment-metadata"> <a href="http://albertomilone.com/?p=93#comment-737"> <time datetime="2007-06-05T17:48:22+00:00"> June 5, 2007 at 17:48 </time> </a> </div><!-- .comment-metadata --> </footer><!-- .comment-meta --> <div class="comment-content"> <p>Have you followed this spec:<br /> <a href="https://blueprints.launchpad.net/ubuntu/" rel="nofollow">https://blueprints.launchpad.net/ubuntu/</a> spec/simple-x-mode-selection</p> <p>?</p> <p>There’s ongoing work to have this and other problems in X solved by next Ubuntu release. I’d hate to see duplicate work!</p> </div><!-- .comment-content --> <div class="reply"> <a class='comment-reply-link' href='/wordpress/?p=93&replytocom=737#respond' onclick='return addComment.moveForm("div-comment-737", "737", "respond", "93")'>Reply</a> </div><!-- .reply --> </article><!-- .comment-body --> </li><!-- #comment-## --> <li id="comment-738" class="comment odd alt thread-odd thread-alt depth-1"> <article id="div-comment-738" class="comment-body"> <footer class="comment-meta"> <div class="comment-author vcard"> <img alt='' src='http://1.gravatar.com/avatar/be562ca77b66a4ada4768efae353cbe7?s=64&d=wavatar&r=G' class='avatar avatar-64 photo' height='64' width='64' /> <b class="fn">albertomilone</b> <span class="says">says:</span> </div><!-- .comment-author --> <div class="comment-metadata"> <a href="http://albertomilone.com/?p=93#comment-738"> <time datetime="2007-06-05T18:04:18+00:00"> June 5, 2007 at 18:04 </time> </a> </div><!-- .comment-metadata --> </footer><!-- .comment-meta --> <div class="comment-content"> <p>I see your concerns however one of the Pre-requisites of DisplayConfigGTK are the “python bindings for xrandr 1.2. Possibly ctypes would be enough.”</p> <p>My application gets around the problem. And it already works well.</p> <p>Of course I would be glad to help those people (provided that my help is welcome).</p> </div><!-- .comment-content --> <div class="reply"> <a class='comment-reply-link' href='/wordpress/?p=93&replytocom=738#respond' onclick='return addComment.moveForm("div-comment-738", "738", "respond", "93")'>Reply</a> </div><!-- .reply --> </article><!-- .comment-body --> </li><!-- #comment-## --> <li id="comment-739" class="comment even thread-even depth-1"> <article id="div-comment-739" class="comment-body"> <footer class="comment-meta"> <div class="comment-author vcard"> <img alt='' src='http://1.gravatar.com/avatar/375e2d5e3830388b963621ec074f365d?s=64&d=wavatar&r=G' class='avatar avatar-64 photo' height='64' width='64' /> <b class="fn"><a href='http://www.digitalprognosis.com' rel='external nofollow' class='url'>Jeff Schroeder</a></b> <span class="says">says:</span> </div><!-- .comment-author --> <div class="comment-metadata"> <a href="http://albertomilone.com/?p=93#comment-739"> <time datetime="2007-06-05T19:08:57+00:00"> June 5, 2007 at 19:08 </time> </a> </div><!-- .comment-metadata --> </footer><!-- .comment-meta --> <div class="comment-content"> <p>Alberto,</p> <p>This looks really nice, I’ll try it out on Gutsy in a few days and let you know how it goes.</p> <p>Keep up the good work!</p> <p>In other news, envy reboots my nvidia laptop when trying to create a package, I’ll email you what it does sometime soon.</p> </div><!-- .comment-content --> <div class="reply"> <a class='comment-reply-link' href='/wordpress/?p=93&replytocom=739#respond' onclick='return addComment.moveForm("div-comment-739", "739", "respond", "93")'>Reply</a> </div><!-- .reply --> </article><!-- .comment-body --> </li><!-- #comment-## --> <li id="comment-740" class="comment odd alt thread-odd thread-alt depth-1"> <article id="div-comment-740" class="comment-body"> <footer class="comment-meta"> <div class="comment-author vcard"> <img alt='' src='http://0.gravatar.com/avatar/e75a657426ea706a191e47398431c30c?s=64&d=wavatar&r=G' class='avatar avatar-64 photo' height='64' width='64' /> <b class="fn">Mathieu Laurent</b> <span class="says">says:</span> </div><!-- .comment-author --> <div class="comment-metadata"> <a href="http://albertomilone.com/?p=93#comment-740"> <time datetime="2007-06-05T20:02:20+00:00"> June 5, 2007 at 20:02 </time> </a> </div><!-- .comment-metadata --> </footer><!-- .comment-meta --> <div class="comment-content"> <p>Great project Alberto ! And good luck for your exam ;-)</p> </div><!-- .comment-content --> <div class="reply"> <a class='comment-reply-link' href='/wordpress/?p=93&replytocom=740#respond' onclick='return addComment.moveForm("div-comment-740", "740", "respond", "93")'>Reply</a> </div><!-- .reply --> </article><!-- .comment-body --> </li><!-- #comment-## --> <li id="comment-741" class="comment even thread-even depth-1"> <article id="div-comment-741" class="comment-body"> <footer class="comment-meta"> <div class="comment-author vcard"> <img alt='' src='http://0.gravatar.com/avatar/e7b5d7d48539496b665103f77ed1015f?s=64&d=wavatar&r=G' class='avatar avatar-64 photo' height='64' width='64' /> <b class="fn">David Nusinow</b> <span class="says">says:</span> </div><!-- .comment-author --> <div class="comment-metadata"> <a href="http://albertomilone.com/?p=93#comment-741"> <time datetime="2007-06-05T20:12:03+00:00"> June 5, 2007 at 20:12 </time> </a> </div><!-- .comment-metadata --> </footer><!-- .comment-meta --> <div class="comment-content"> <p>This is great to see! If you are interested in getting it in to Debian, let me know and I’ll help make it happen. If you’re interested in cooperating with the X Strike Force, please write us at <a href="mailto:debian-x@lists.debian.org">debian-x@lists.debian.org</a>.</p> </div><!-- .comment-content --> <div class="reply"> <a class='comment-reply-link' href='/wordpress/?p=93&replytocom=741#respond' onclick='return addComment.moveForm("div-comment-741", "741", "respond", "93")'>Reply</a> </div><!-- .reply --> </article><!-- .comment-body --> </li><!-- #comment-## --> <li id="comment-742" class="comment odd alt thread-odd thread-alt depth-1"> <article id="div-comment-742" class="comment-body"> <footer class="comment-meta"> <div class="comment-author vcard"> <img alt='' src='http://1.gravatar.com/avatar/be562ca77b66a4ada4768efae353cbe7?s=64&d=wavatar&r=G' class='avatar avatar-64 photo' height='64' width='64' /> <b class="fn">albertomilone</b> <span class="says">says:</span> </div><!-- .comment-author --> <div class="comment-metadata"> <a href="http://albertomilone.com/?p=93#comment-742"> <time datetime="2007-06-05T23:03:54+00:00"> June 5, 2007 at 23:03 </time> </a> </div><!-- .comment-metadata --> </footer><!-- .comment-meta --> <div class="comment-content"> <p>@Jeff<br /> sure. Let me know when you have time ;)</p> <p>@David Nusinow:<br /> I’ll be glad to help. I subscribed to the mailing list</p> <p>@all<br /> thanks for your support ;)</p> </div><!-- .comment-content --> <div class="reply"> <a class='comment-reply-link' href='/wordpress/?p=93&replytocom=742#respond' onclick='return addComment.moveForm("div-comment-742", "742", "respond", "93")'>Reply</a> </div><!-- .reply --> </article><!-- .comment-body --> </li><!-- #comment-## --> <li id="comment-743" class="comment even thread-even depth-1"> <article id="div-comment-743" class="comment-body"> <footer class="comment-meta"> <div class="comment-author vcard"> <img alt='' src='http://1.gravatar.com/avatar/5815ad8360bee3dad4a41efa48cf5601?s=64&d=wavatar&r=G' class='avatar avatar-64 photo' height='64' width='64' /> <b class="fn"><a href='http://itmanagement.earthweb.com/' rel='external nofollow' class='url'>Matt Hartley</a></b> <span class="says">says:</span> </div><!-- .comment-author --> <div class="comment-metadata"> <a href="http://albertomilone.com/?p=93#comment-743"> <time datetime="2007-06-05T23:18:46+00:00"> June 5, 2007 at 23:18 </time> </a> </div><!-- .comment-metadata --> </footer><!-- .comment-meta --> <div class="comment-content"> <p>(Took me forever to realize I had to click on “Leave an URL” just to enter the mandatory anti-spam word, may need to make this a little more clear. Sorry, just really found that annoying)</p> <p>—-</p> <p>Hi again, it’s Matt (the guy who did the “OSS projects to watch” for Datamation)</p> <p>I think this is *fantastic* and would also be interested in how dual-displays are handled? Not cloning, rather extended twinview (NVIDIA) support?</p> </div><!-- .comment-content --> <div class="reply"> <a class='comment-reply-link' href='/wordpress/?p=93&replytocom=743#respond' onclick='return addComment.moveForm("div-comment-743", "743", "respond", "93")'>Reply</a> </div><!-- .reply --> </article><!-- .comment-body --> </li><!-- #comment-## --> <li id="comment-744" class="comment odd alt thread-odd thread-alt depth-1"> <article id="div-comment-744" class="comment-body"> <footer class="comment-meta"> <div class="comment-author vcard"> <img alt='' src='http://1.gravatar.com/avatar/5815ad8360bee3dad4a41efa48cf5601?s=64&d=wavatar&r=G' class='avatar avatar-64 photo' height='64' width='64' /> <b class="fn"><a href='http://itmanagement.earthweb.com/' rel='external nofollow' class='url'>Matt Hartley</a></b> <span class="says">says:</span> </div><!-- .comment-author --> <div class="comment-metadata"> <a href="http://albertomilone.com/?p=93#comment-744"> <time datetime="2007-06-05T23:22:54+00:00"> June 5, 2007 at 23:22 </time> </a> </div><!-- .comment-metadata --> </footer><!-- .comment-meta --> <div class="comment-content"> <p>N/M, it looks like you are already ahead of me on the dual-monitor stuff. ;)</p> <p>“…Give the option to use each screen separately (instead of just cloning your main screen on the other screens)”</p> </div><!-- .comment-content --> <div class="reply"> <a class='comment-reply-link' href='/wordpress/?p=93&replytocom=744#respond' onclick='return addComment.moveForm("div-comment-744", "744", "respond", "93")'>Reply</a> </div><!-- .reply --> </article><!-- .comment-body --> </li><!-- #comment-## --> <li id="comment-745" class="comment even thread-even depth-1"> <article id="div-comment-745" class="comment-body"> <footer class="comment-meta"> <div class="comment-author vcard"> <img alt='' src='http://0.gravatar.com/avatar/c920ff59b2b4601f0097cbcc3cf2d29b?s=64&d=wavatar&r=G' class='avatar avatar-64 photo' height='64' width='64' /> <b class="fn">Bryce Harrington</b> <span class="says">says:</span> </div><!-- .comment-author --> <div class="comment-metadata"> <a href="http://albertomilone.com/?p=93#comment-745"> <time datetime="2007-06-06T01:21:50+00:00"> June 6, 2007 at 01:21 </time> </a> </div><!-- .comment-metadata --> </footer><!-- .comment-meta --> <div class="comment-content"> <p>Hiya Alberto,</p> <p>I’m one of the people working on displayconfig-gtk for Ubuntu (actually I focus more on Xorg itself, but this is an important piece). We would love to have your help, especially if you have sorted out issues we haven’t yet.</p> <p>Display detection and configuration has been a problematic area with Ubuntu historically, but my hope is that with a good gui/randr tool we’ll be able to turn this into a big strength. So the more good brains we can get working on this solution, the better! I would be happy to put you in touch with folks, or come by the #ubuntu-devel channel on freenode and look for glatzor or I.</p> </div><!-- .comment-content --> <div class="reply"> <a class='comment-reply-link' href='/wordpress/?p=93&replytocom=745#respond' onclick='return addComment.moveForm("div-comment-745", "745", "respond", "93")'>Reply</a> </div><!-- .reply --> </article><!-- .comment-body --> </li><!-- #comment-## --> <li id="comment-746" class="comment odd alt thread-odd thread-alt depth-1"> <article id="div-comment-746" class="comment-body"> <footer class="comment-meta"> <div class="comment-author vcard"> <img alt='' src='http://1.gravatar.com/avatar/be562ca77b66a4ada4768efae353cbe7?s=64&d=wavatar&r=G' class='avatar avatar-64 photo' height='64' width='64' /> <b class="fn">albertomilone</b> <span class="says">says:</span> </div><!-- .comment-author --> <div class="comment-metadata"> <a href="http://albertomilone.com/?p=93#comment-746"> <time datetime="2007-06-06T09:29:36+00:00"> June 6, 2007 at 09:29 </time> </a> </div><!-- .comment-metadata --> </footer><!-- .comment-meta --> <div class="comment-content"> <p>@Matt<br /> currently only cloning is implemented. The multi-screen I wrote about consists in having different workspaces on distinct displays. However I feel that GNOME and KDE are not ready for multi-screen (especially KDE). But of course I hope to be proven wrong.</p> <p>I have to ask Xorg’s mailing list if something similar to twinview can be done through randr. If it’s doable then I’ll implement it ;)</p> <p>@Bryce<br /> I would be more than glad to help and I’ll definitely look for you on freenode, or via email.</p> </div><!-- .comment-content --> <div class="reply"> <a class='comment-reply-link' href='/wordpress/?p=93&replytocom=746#respond' onclick='return addComment.moveForm("div-comment-746", "746", "respond", "93")'>Reply</a> </div><!-- .reply --> </article><!-- .comment-body --> </li><!-- #comment-## --> <li id="comment-747" class="comment even thread-even depth-1"> <article id="div-comment-747" class="comment-body"> <footer class="comment-meta"> <div class="comment-author vcard"> <img alt='' src='http://0.gravatar.com/avatar/a153cc0ebef591904c04d8bf487661de?s=64&d=wavatar&r=G' class='avatar avatar-64 photo' height='64' width='64' /> <b class="fn"><a href='http://popey.com/' rel='external nofollow' class='url'>Alan Pope</a></b> <span class="says">says:</span> </div><!-- .comment-author --> <div class="comment-metadata"> <a href="http://albertomilone.com/?p=93#comment-747"> <time datetime="2007-06-06T10:49:41+00:00"> June 6, 2007 at 10:49 </time> </a> </div><!-- .comment-metadata --> </footer><!-- .comment-meta --> <div class="comment-content"> <p>My laptop is a tablet one, and when I rotate the screen I have to rotate the wacom tablet also otherwise when I move the stylus up it goes left, and when I move it down it goes right.</p> <p>xsetwacom is the command you need, which is in the wacom-tools package (main).</p> <p>So to rotate you might issue:-</p> <p> sudo xsetwacom set cursor rotate</p> <p>Where is CW, CCW, HALF or NONE (default).</p> </div><!-- .comment-content --> <div class="reply"> <a class='comment-reply-link' href='/wordpress/?p=93&replytocom=747#respond' onclick='return addComment.moveForm("div-comment-747", "747", "respond", "93")'>Reply</a> </div><!-- .reply --> </article><!-- .comment-body --> </li><!-- #comment-## --> <li id="comment-748" class="comment odd alt thread-odd thread-alt depth-1"> <article id="div-comment-748" class="comment-body"> <footer class="comment-meta"> <div class="comment-author vcard"> <img alt='' src='http://1.gravatar.com/avatar/be562ca77b66a4ada4768efae353cbe7?s=64&d=wavatar&r=G' class='avatar avatar-64 photo' height='64' width='64' /> <b class="fn">albertomilone</b> <span class="says">says:</span> </div><!-- .comment-author --> <div class="comment-metadata"> <a href="http://albertomilone.com/?p=93#comment-748"> <time datetime="2007-06-06T10:54:22+00:00"> June 6, 2007 at 10:54 </time> </a> </div><!-- .comment-metadata --> </footer><!-- .comment-meta --> <div class="comment-content"> <p>@Alan<br /> thanks for your suggestion. The same happens with my mouse or touchpad.</p> </div><!-- .comment-content --> <div class="reply"> <a class='comment-reply-link' href='/wordpress/?p=93&replytocom=748#respond' onclick='return addComment.moveForm("div-comment-748", "748", "respond", "93")'>Reply</a> </div><!-- .reply --> </article><!-- .comment-body --> </li><!-- #comment-## --> <li id="comment-749" class="comment even thread-even depth-1"> <article id="div-comment-749" class="comment-body"> <footer class="comment-meta"> <div class="comment-author vcard"> <img alt='' src='http://0.gravatar.com/avatar/2a2ae7fefcdabf4737ff2b060e68bc5a?s=64&d=wavatar&r=G' class='avatar avatar-64 photo' height='64' width='64' /> <b class="fn">C</b> <span class="says">says:</span> </div><!-- .comment-author --> <div class="comment-metadata"> <a href="http://albertomilone.com/?p=93#comment-749"> <time datetime="2007-06-26T13:14:11+00:00"> June 26, 2007 at 13:14 </time> </a> </div><!-- .comment-metadata --> </footer><!-- .comment-meta --> <div class="comment-content"> <p>What about color depth? I tried to change mine from 24 to 16 once, and X fell down and couldn’t get up.</p> </div><!-- .comment-content --> <div class="reply"> <a class='comment-reply-link' href='/wordpress/?p=93&replytocom=749#respond' onclick='return addComment.moveForm("div-comment-749", "749", "respond", "93")'>Reply</a> </div><!-- .reply --> </article><!-- .comment-body --> </li><!-- #comment-## --> <li id="comment-750" class="comment odd alt thread-odd thread-alt depth-1"> <article id="div-comment-750" class="comment-body"> <footer class="comment-meta"> <div class="comment-author vcard"> <img alt='' src='http://1.gravatar.com/avatar/be562ca77b66a4ada4768efae353cbe7?s=64&d=wavatar&r=G' class='avatar avatar-64 photo' height='64' width='64' /> <b class="fn">albertomilone</b> <span class="says">says:</span> </div><!-- .comment-author --> <div class="comment-metadata"> <a href="http://albertomilone.com/?p=93#comment-750"> <time datetime="2007-06-26T14:03:00+00:00"> June 26, 2007 at 14:03 </time> </a> </div><!-- .comment-metadata --> </footer><!-- .comment-meta --> <div class="comment-content"> <p>@C<br /> I’m not sure whether you can change the colour depth of your display.</p> </div><!-- .comment-content --> <div class="reply"> <a class='comment-reply-link' href='/wordpress/?p=93&replytocom=750#respond' onclick='return addComment.moveForm("div-comment-750", "750", "respond", "93")'>Reply</a> </div><!-- .reply --> </article><!-- .comment-body --> </li><!-- #comment-## --> </ol><!-- .comment-list --> <div id="respond" class="comment-respond"> <h3 id="reply-title" class="comment-reply-title">Leave a Reply <small><a rel="nofollow" id="cancel-comment-reply-link" href="/wordpress/?p=93#respond" style="display:none;">Cancel reply</a></small></h3> <form action="http://albertomilone.com/wordpress/wp-comments-post.php" method="post" id="commentform" class="comment-form" novalidate> <p class="comment-notes">Your email address will not be published. Required fields are marked <span class="required">*</span></p> <p class="comment-form-author"><label for="author">Name <span class="required">*</span></label> <input id="author" name="author" type="text" value="" size="30" aria-required='true' /></p> <p class="comment-form-email"><label for="email">Email <span class="required">*</span></label> <input id="email" name="email" type="email" value="" size="30" aria-required='true' /></p> <p class="comment-form-url"><label for="url">Website</label> <input id="url" name="url" type="url" value="" size="30" /></p> <p class="comment-form-comment"><label for="comment">Comment</label> <textarea id="comment" name="comment" cols="45" rows="8" aria-required="true"></textarea></p> <p class="form-submit"> <input name="submit" type="submit" id="submit" value="Post Comment" /> <input type='hidden' name='comment_post_ID' value='93' id='comment_post_ID' /> <input type='hidden' name='comment_parent' id='comment_parent' value='0' /> </p> <p style="display: none;"><input type="hidden" id="akismet_comment_nonce" name="akismet_comment_nonce" value="e672400090" /></p><div><input type="hidden" id="wphc_value" name="wphc_value" value=""/></div><noscript><div><small>Wordpress Hashcash needs javascript to work, but your browser has javascript disabled. Your comment will be queued in Akismet!</small></div></noscript><script type='text/javascript' src='http://albertomilone.com/wordpress/wp-includes/js/jquery/jquery.js?ver=1.10.2'></script> <script type='text/javascript' src='http://albertomilone.com/wordpress/wp-includes/js/jquery/jquery-migrate.min.js?ver=1.2.1'></script> <script type='text/javascript' src='http://albertomilone.com/wordpress/wp-content/plugins/akismet/_inc/form.js?ver=3.0.0'></script> <p style="display: none;"><input type="hidden" id="ak_js" name="ak_js" value="139"/></p> </form> </div><!-- #respond --> </div><!-- #comments --> </main><!-- #main --> <nav class="navigation post-navigation" role="navigation"> <h1 class="screen-reader-text">Post navigation</h1> <div class="nav-links"> <div class="nav-previous"><a href="http://albertomilone.com/?p=91" rel="prev"><span class="meta-nav">←</span> Another bugfix release of Envy</a></div> <div class="nav-next"><a href="http://albertomilone.com/?p=94" rel="next">Envy 0.9.5-0ubuntu1 STABLE is now available <span class="meta-nav">→</span></a></div> </div><!-- .nav-links --> </nav><!-- .navigation --> </div><!-- #primary --> </div><!-- #content --> <footer id="colophon" class="site-footer" role="contentinfo"> <div class="site-colophon"> <p>Copyright 2005 Alberto Milone</p> </div><!-- .site-colophon --> <div class="theme-info"> <p><a href="http://ScottHSmith.com/projects/decode/">Decode</a> by Scott Smith</p> </div><!-- .theme-info --> </footer><!-- #colophon --> </div><!-- #page --> <div id="sidebar" class="sidebar left closing"> <div id="sidebar_top" class="SidebarTop"> <div id="sidebar_close" class="SidebarClose"> <svg width="100%" height="100%" viewBox="0 0 200 200" version="1.1" xmlns="http://www.w3.org/2000/svg"> <path class="SocialIconFill" d="M0,172.881356 L72.8813559,100 L1.0658141e-14,27.1186441 L27.1186441,-2.84217094e-14 L100,72.8813559 L172.881356,0 L200,27.1186441 L127.118644,100 L200,172.881356 L172.881356,200 L100,127.118644 L27.1186441,200 Z M0,172.881356" fill="#444444"></path> </svg> </div> </div> <div class="SidebarContent"> <div class="widget-area" role="complementary"> <aside id="pages-2" class="widget widget_pages"><h2 class="widgettitle">Pages</h2> <ul> <li class="page_item page-item-355"><a href="http://albertomilone.com/">Introduction</a></li> <li class="page_item page-item-612 current_page_parent"><a href="http://albertomilone.com/?page_id=612">Blog</a></li> <li class="page_item page-item-632"><a href="http://albertomilone.com/?page_id=632">Presentazione</a></li> </ul> </aside><aside id="categories-2" class="widget widget_categories"><h2 class="widgettitle">Categories</h2> <ul> <li class="cat-item cat-item-13"><a href="http://albertomilone.com/?cat=13" title="View all posts filed under Android">Android</a> </li> <li class="cat-item cat-item-10"><a href="http://albertomilone.com/?cat=10" title="View all posts filed under Daily routine">Daily routine</a> </li> <li class="cat-item cat-item-11"><a href="http://albertomilone.com/?cat=11" title="View all posts filed under Debian">Debian</a> </li> <li class="cat-item cat-item-17"><a href="http://albertomilone.com/?cat=17" title="View all posts filed under Driver Updates">Driver Updates</a> </li> <li class="cat-item cat-item-3"><a href="http://albertomilone.com/?cat=3" title="View all posts filed under Envy">Envy</a> </li> <li class="cat-item cat-item-12"><a href="http://albertomilone.com/?cat=12" title="View all posts filed under GNU/Linux">GNU/Linux</a> </li> <li class="cat-item cat-item-4"><a href="http://albertomilone.com/?cat=4" title="View all posts filed under Planet">Planet</a> </li> <li class="cat-item cat-item-5"><a href="http://albertomilone.com/?cat=5" title="View all posts filed under Python">Python</a> </li> <li class="cat-item cat-item-6"><a href="http://albertomilone.com/?cat=6" title="View all posts filed under QT">QT</a> </li> <li class="cat-item cat-item-8"><a href="http://albertomilone.com/?cat=8" title="View all posts filed under Ubuntu">Ubuntu</a> </li> <li class="cat-item cat-item-9"><a href="http://albertomilone.com/?cat=9" title="View all posts filed under UDS">UDS</a> </li> <li class="cat-item cat-item-1"><a href="http://albertomilone.com/?cat=1" title="View all posts filed under Uncategorized">Uncategorized</a> </li> <li class="cat-item cat-item-19"><a href="http://albertomilone.com/?cat=19" title="View all posts filed under voices">voices</a> </li> </ul> </aside><aside id="archives-3" class="widget widget_archive"><h2 class="widgettitle">Archives</h2> <select name="archive-dropdown" onchange='document.location.href=this.options[this.selectedIndex].value;'> <option value="">Select Month</option> <option value='http://albertomilone.com/?m=201312'> December 2013 </option> <option value='http://albertomilone.com/?m=201311'> November 2013 </option> <option value='http://albertomilone.com/?m=201310'> October 2013 </option> <option value='http://albertomilone.com/?m=201306'> June 2013 </option> <option value='http://albertomilone.com/?m=201305'> May 2013 </option> <option value='http://albertomilone.com/?m=201301'> January 2013 </option> <option value='http://albertomilone.com/?m=201209'> September 2012 </option> <option value='http://albertomilone.com/?m=201111'> November 2011 </option> <option value='http://albertomilone.com/?m=201107'> July 2011 </option> <option value='http://albertomilone.com/?m=201104'> April 2011 </option> <option value='http://albertomilone.com/?m=201103'> March 2011 </option> <option value='http://albertomilone.com/?m=201009'> September 2010 </option> <option value='http://albertomilone.com/?m=201003'> March 2010 </option> <option value='http://albertomilone.com/?m=201002'> February 2010 </option> <option value='http://albertomilone.com/?m=200909'> September 2009 </option> <option value='http://albertomilone.com/?m=200907'> July 2009 </option> <option value='http://albertomilone.com/?m=200903'> March 2009 </option> <option value='http://albertomilone.com/?m=200901'> January 2009 </option> <option value='http://albertomilone.com/?m=200812'> December 2008 </option> <option value='http://albertomilone.com/?m=200811'> November 2008 </option> <option value='http://albertomilone.com/?m=200810'> October 2008 </option> <option value='http://albertomilone.com/?m=200808'> August 2008 </option> <option value='http://albertomilone.com/?m=200807'> July 2008 </option> <option value='http://albertomilone.com/?m=200806'> June 2008 </option> <option value='http://albertomilone.com/?m=200805'> May 2008 </option> <option value='http://albertomilone.com/?m=200804'> April 2008 </option> <option value='http://albertomilone.com/?m=200803'> March 2008 </option> <option value='http://albertomilone.com/?m=200802'> February 2008 </option> <option value='http://albertomilone.com/?m=200801'> January 2008 </option> <option value='http://albertomilone.com/?m=200712'> December 2007 </option> <option value='http://albertomilone.com/?m=200711'> November 2007 </option> <option value='http://albertomilone.com/?m=200710'> October 2007 </option> <option value='http://albertomilone.com/?m=200709'> September 2007 </option> <option value='http://albertomilone.com/?m=200708'> August 2007 </option> <option value='http://albertomilone.com/?m=200707'> July 2007 </option> <option value='http://albertomilone.com/?m=200706'> June 2007 </option> <option value='http://albertomilone.com/?m=200705'> May 2007 </option> <option value='http://albertomilone.com/?m=200704'> April 2007 </option> <option value='http://albertomilone.com/?m=200703'> March 2007 </option> <option value='http://albertomilone.com/?m=200702'> February 2007 </option> <option value='http://albertomilone.com/?m=200701'> January 2007 </option> <option value='http://albertomilone.com/?m=200612'> December 2006 </option> <option value='http://albertomilone.com/?m=200611'> November 2006 </option> <option value='http://albertomilone.com/?m=200610'> October 2006 </option> <option value='http://albertomilone.com/?m=200609'> September 2006 </option> <option value='http://albertomilone.com/?m=200608'> August 2006 </option> </select> </aside><aside id="meta-3" class="widget widget_meta"><h2 class="widgettitle">Meta</h2> <ul> <li><a href="http://albertomilone.com/wordpress/wp-login.php">Log in</a></li> <li><a href="http://albertomilone.com/?feed=rss2" title="Syndicate this site using RSS 2.0">Entries <abbr title="Really Simple Syndication">RSS</abbr></a></li> <li><a href="http://albertomilone.com/?feed=comments-rss2" title="The latest comments to all posts in RSS">Comments <abbr title="Really Simple Syndication">RSS</abbr></a></li> <li><a href="http://wordpress.org/" title="Powered by WordPress, state-of-the-art semantic personal publishing platform.">WordPress.org</a></li> </ul> </aside> </div><!-- .widget-area --> </div> </div> <!-- #sidebar --> <script type='text/javascript' src='http://albertomilone.com/wordpress/wp-content/themes/decode/js/decode-with-sidebar.js?ver=2.9.3'></script> </body> </html>