en XFree Blog at Deadman.org XFree Blog at Deadman.org http://www.deadman.org/X/ Mouseless Pasting in Sawfish http://www.deadman.org/X/article/37 Thu, 02 Jun 2005 07:40:32 -0700

I still use sawfish and I hope it never ever goes away. I love it. Here's a great example of why I love it.

I hate the mouse, so I wanted to have an equivalent of xterm's ctrl-ins (clipboard paste) in every window. mmc on irc.freenode.net's #sawfish channel was kind enough to whip this up for me:

(require 'sawfish.wm.util.selection)
(define (send-string-to-window s w)
  (let ((i 0))
    (while (< i (length s))
           (let* ((ch (substring s i (setq i (1+ i))))
                  (e (cond ((equal ch "n") "RET")
                           (t ch))))
             (synthesize-event e w)))))
(defun send-selection (window)
  (interactive "%W")
    (x-get-selection 'PRIMARY) window))

Just put that in ~/.sawfish/rc (or ~/.sawfishrc if you already have one,) restart sawfish and edit your bindings. You'll see a new action called send-selection that you can bind to whatever key you want. I chose ctrl-; because it seemed unlikely that any app would use that binding already.

Eyecandy and Xclip http://www.deadman.org/X/article/36 Fri, 25 Mar 2005 08:15:14 -0800

While it's something that I'd personally never use, there's some pretty kick-ass eye-candy in development over at RedHat. The movies are pretty impressive.

Another utility that I assume everyone knows about is Xclip. Xclip provides a command line (think std in/out) interface to the X11 clipboard. It's amazingly handy and works over X11 forwarding SSH. There are even Debian packages, so stop reading and go get it!

XtermControl in ATerm http://www.deadman.org/X/article/35 Tue, 13 Apr 2004 05:25:15 -0700

Glenn pointed out that if you add the '-tn xterm' argument to ATerm it changes the TERM variable to 'xterm' when then allows one to use the kickass XtermControl.

nVidia Drivers Now Support 2.6! http://www.deadman.org/X/article/34 Wed, 28 Jan 2004 06:11:04 -0800

I haven't had a chance to try these out, but I'm quite excited to finally be able to run 2.6 on my workstation. I never got around to trying the minion.de patches due to time constraints.

Synaptics TouchPad and Linux 2.6 Goodness http://www.deadman.org/X/article/33 Sun, 18 Jan 2004 13:10:34 -0800

I use a Dell Latitude C400 running Debian Unstable. When using the Linux 2.4 kernel, the Synaptics TouchPad (very common on laptops these days) has "just worked" in XFree86 by simply setting Protocol to "auto" and Device to "/dev/psaux". But after I upgraded to Linux 2.6.1 last week, the touchpad stopped working. Or, more accurately, the touchpad created erratic pointer movement, and the tapping features stopped working completely.

Some Googling turned up an article at KernelTrap.org that recaps a very interesting discussion between Linus and Vojtech Pavlik on the Linux Kernel Mailing List this past November about The Mouse in 2.6. It turns out that the 2.4 kernel performs absolutely no mouse initialization, while the 2.6 kernel performs quite a bit. Pavlik emphasizes that the mouse initialization in 2.6 makes things better in most cases, but the discussion makes clear that there are a few cases when it just doesn't work. And to make matters worse in those cases, there's currently no way in 2.6 to change the kernel's decisions, because, according to Linus, the new input-mode driver in 2.6 doesn't allow the user to send information back to the mouse like the old psaux driver allowed. But there's a way to get around all this: Passing psmouse_noext=1 to the kernel at boot will bring back the old 2.4 behavior of no mouse initialization. After reading the discussion, I thought that there was a good chance that I had found the fix, or at least a workaround.

But, alas, psmouse_noext=1 didn't change anything for me one way or the other. But I still learned a lot from the LKML discussion, including some interesting information about Linus' philosophy about how things should work in Linux, so I highly recommend it.

Some more Googling turned up the Synaptics TouchPad driver for XFree86. According to the driver's FAQ, it works with the 2.6 kernel (2.4 too) and facilitates lots of advanced touchpad features including:

  • Movement with adjustable, non-linear acceleration and speed.
  • Button events through short touching of the touchpad.
  • Double-Button events through double short touching of the touchpad.
  • Dragging through short touching and holding down the finger on the touchpad.
  • Middle and right button events on the upper and lower corner of the touchpad.
  • Vertical scrolling (button four and five events) through moving the finger on the right side of the touchpad.
  • Horizontal scrolling (button six and seven events) through moving the finger on the lower side of the touchpad.
  • Multifinger taps: two finger for middle button and three finger for right button events. (Needs hardware support. Not all models implement this feature.)
  • many more.

So, I decided to give this new driver a try to find out if it would clear up the problem and get the touchpad working again. The answer is yes, it works wonderfully! The driver compiled easily and the INSTALL file that comes with the source explains everything you need to know to install the driver including how to modify your XF86Config config file. The README file explains all of the options available for making use of the advanced Synaptics features.

So grab a copy of the driver and have fun! By the way, thanks very much to Deadman for letting me use his forum!