Shallow Thoughts : : Jan
Akkana's Musings on Open Source Computing and Technology, Science, and Nature.
Sun, 31 Jan 2016
My mouse died recently: the middle button started bouncing, so a
middle button click would show up as two clicks instead of one.
What a piece of junk -- I only bought that Logitech some ten years ago!
(Seriously, I'm pretty amazed how long it lasted, considering it wasn't
I replaced it with another Logitech, which turned out to be quite
difficult to find. Turns out most stores only sell cordless mice these
days. Why would I want something that depends on batteries to use
every day at my desktop?
But I finally found another basic corded Logitech mouse (at Office Depot).
Brought it home and it worked fine, except that the speed was way too fast,
much faster than my old mouse. So I needed to find out how to change
X11 has traditionally made it easy to change mouse acceleration,
but that wasn't what I wanted. I like my mouse to be fairly linear,
not slow to start then suddenly zippy. There's no X11 property for
mouse speed; it turns out that to set mouse speed, you need to call
But first, you need to get the ID for your mouse.
$ xinput list| grep -i mouse
⎜ ↳ Logitech USB Optical Mouse id=11 [slave pointer (2)]
Armed with the ID of 11, we can find the current speed (deceleration)
and its ID:
$ xinput list-props 11 | grep Deceleration
Device Accel Constant Deceleration (259): 3.500000
Device Accel Adaptive Deceleration (260): 1.000000
Constant deceleration is what I want to set, so I'll use that ID of 259
and set the new deceleration to 2:
$ xinput set-prop 11 259 2
That's fine for doing it once. But what if you want it to happen
automatically when you start X? Those constants might all stay the
same, but what if they don't?
So let's build a shell pipeline that should work even if the constants aren't.
First, let's get the mouse ID out of
We want to pull out the digits immediately following "id=", and nothing else.
$ xinput list | grep Mouse | sed 's/.*id=\([0-9]*\).*/\1/'
Save that in a variable (because we'll need to use it more than once)
and feed it in to
list-props to get the deceleration ID.
Then use sed again, in the same way, to pull out just the thing in
parentheses following "Deceleration":
$ mouseid=$(xinput list | grep Mouse | sed 's/.*id=\([0-9]*\).*/\1/')
$ xinput list-props $mouseid | grep 'Constant Deceleration'
Device Accel Constant Deceleration (262): 2.000000
$ xinput list-props $mouseid | grep 'Constant Deceleration' | sed 's/.* Deceleration (\([0-9]*\)).*/\1/'
Whew! Now we have a way of getting both the mouse ID and the ID for
the "Constant Deceleration" parameter, and we can pass them in to
set-prop with our desired value (I'm using 2) tacked
onto the end:
$ xinput set-prop $mouseid $(xinput list-props $mouseid | grep 'Constant Deceleration' | sed 's/.* Deceleration (\([0-9]*\)).*/\1/') 2
Add those two lines (setting the mouseid, then the final xinput line)
wherever your window manager will run them when you start X.
For me, using Openbox, they go in .config/openbox/autostart.
And now my mouse will automatically be the speed I want it to be.
[ 13:42 Jan 31, 2016
More linux |
permalink to this entry |
Wed, 13 Jan 2016
It's been snowing quite a bit! Radical, and fun, for a California ex-pat.
But it doesn't slow down the weekly hiking group I'm in. When the weather
turns white, the group switches to cross-country skiing and snowshoeing.
A few weeks ago, I tried cross-country skiing for the first time.
(I've downhill skied a handful of times, so I know how, more or less,
but never got very good at it. Ski areas are way too far away
and way too expensive in Californian.) It was fun, but I have a
chronic rotator cuff problem, probably left over from an old
motorcycle injury, and found my shoulder didn't deal well with skiing.
Well, the skiing was probably fine. It was probably more the falling
and trying to get back up again that it didn't like.
So for the past two weeks I've tried snowshoes instead.
That went just fine. It doesn't take much learning: it's just like
hiking, except a little bit harder work remembering not to step
on your own big feet. "Bozo goes hiking!" Dave called it, but
it isn't nearly as Bozo-esque as I thought it would be.
Last week we snowshoed from a campground out to the edge of Frijoles
Canyon, in a snowstorm most of the way, and ice fog -- sounds harsh
when described like that, but it was lovely, and we were plenty warm
when we were moving. This week, we followed the prettiest trail in the
area, the East Fork of the Jemez River.
In summer, it's a vibrantly green meadow with the sparkling creek
snaking through it. In winter, it turns into a green and sparkling
white forest. Someone took a photo of me snowshoeing across one of the
many log bridges spanning the East Fork. You can't see any hint of the
river itself -- it's buried in snow.
But if you hike in far enough, there's a warm spring: we're on the
edge of the Valles Caldera, an old supervolcano that still has plenty of
low-level geothermal activity left. The river is warm enough here that
it's still running even in midwinter ... and there was a dipper there.
are little birds that dive into creeks and fly under the water in
search of food. They're in constant motion, diving, re-emerging,
bathing, shaking off, and this dipper went about its business fifteen
feet from where we were standing watching it. Someone had told me that
he saw two dippers at this spot yesterday, but we were happy
to get such a good look at even one.
We had lunch in a sunny spot downstream from the dipper, then headed
back to the trailhead. A lovely way to spend a winter day.
[ 19:01 Jan 13, 2016
More misc |
permalink to this entry |
Wed, 06 Jan 2016
I'm working on my GIMP talk for SCALE 14x, the Southern California Linux
Expo in Pasadena.
My talk is at 11:30 on Saturday, January 23:
Stupid GIMP tricks (and smart ones, too).
I'm sure anyone reading my blog knows
that GIMP is the GNU Image Manipulation
Program, the free open-source photo and image editing program which
just celebrated its 20th birthday last month.
I'll be covering an assortment of tips and tricks for beginning
and intermediate GIMP users, and I'll also give a quick preview
of some new and cool features that will be coming in the next
GIMP release, 2.10.
I haven't finished assembling the final talk yet -- if you have any
suggestions for things you'd love to see in a GIMP talk, let me know.
No guarantees, but if I get any requests I'll try to accommodate them.
Come to SCALE! I've spoken at SCALE several times in the past, and
it's a great conference -- plenty of meaty technical talks,
but it's also the most newbie-friendly conference I've been to,
with talks spanning the spectrum from introductions to setting up
Linux or introductory Python programming all the way to kernel
configuration and embedded boot systems.
This year, there's also an extensive "Ubucon" for Ubuntu users,
including a keynote by Mark Shuttleworth. And speaking of keynotes,
the main conference has great ones: Cory Doctorow on Friday
and Sarah Sharp on Sunday, with Saturday's keynote yet to be announced.
In the past, SCALE been held at hotels near LAX,
which is about the
possible part of LA.
I'm excited that the conference moving to Pasadena this year: Pasadena
is a much more congenial place to be, prettier, closer to good
restaurants, and it's even close to public transportation.
And best of all, SCALE is fairly inexpensive compared to most conferences.
Even more so if you use the promo-code SPEAK for a discount
[ 16:32 Jan 06, 2016
More conferences |
permalink to this entry |