Files
Lee Hanken 7c8efd2228 Initial commit: HPR Knowledge Base MCP Server
- MCP server with stdio transport for local use
- Search episodes, transcripts, hosts, and series
- 4,511 episodes with metadata and transcripts
- Data loader with in-memory JSON storage

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-10-26 10:54:13 +00:00

136 lines
12 KiB
Plaintext

Episode: 1750
Title: HPR1750: xclip, xdotool, xvkbd: 3 CLI Linux tools for RSI sufferers
Source: https://hub.hackerpublicradio.org/ccdn.php?filename=/eps/hpr1750/hpr1750.mp3
Transcribed: 2025-10-18 08:48:12
---
This episode of HBR is brought to you by Ananasthost.com.
At 15% discount on all shared hosting with the offer code HBR15, that's HBR15.
Better web hosting that's honest and fair at Ananasthost.com.
Hey folks, John Culp again in Lafayette, Louisiana and today I'm going to talk to you about
three command line tools that I use all the time that saved me hundreds of keystrokes a day.
Now I've classified this as an episode in the accessibility series and you might think
that it would be more appropriate to put it in the command line series, but the reason
I put it with accessibility is because that's basically how I use these tools.
You may have heard me talk in the past if you've listened to my episodes about Blather,
the speech recognition program that Jezram wrote and that I use basically all the time.
Blather is a speech recognition tool that you have to configure yourself, every command
that Blather executes is one that you have configured in a configuration file.
When I first started using Blather, I knew of a few things that would help me navigate
around the desktop like the WMCTRL, I think that's the command, where it can put focus
on different windows and stuff like that, but fairly early on I also found that you can use
certain commands to type virtual keystrokes and this is when the magic really started to happen
with Blather. Once you have harnessed the power of virtual keystrokes it's incredible how
many things you can do with your voice. So the commands I'm going to talk about are
XDO tool, that's XDO TOL XV KBD, I guess that would be X Virtual Keyboard, would be the long name,
XV KBD, and finally XClip. So XDO tool and XV KBD are both commands that can do virtual keystrokes
and XDO tool actually can do virtual mouse clicks as well. XClip is command line access to the
clipboard which was crucial to a whole lot of the tricks that I use when I'm configuring Blather
to do the various tasks that I need. So one of the basic things you can do with XV KBD is just
type words or type any characters and you can do this with XDO tool and I have after experimenting
with both of them decided that I have different uses for each of them. With XDO tool I normally
use that to do simple keystrokes like if I want to do a virtual control plus C to copy some text
to the clipboard I will use XDO tool. If I want to type a whole bunch of text or do a really long
series of keystrokes I use XV KBD because it seems like it executes faster. Especially if there's
a whole lot of text it executes quite a lot faster and so those are the two ways I use that one.
But you might want to go look at the show notes if you're interested in actually trying some of
these things out. The command that you have to type to do any of this typing is pretty long with
XV KBD. For example to type the words fubar you would have to do the command XV KBD space dash X
send event that's all one word space dash secure space dash text space and then you enclose the
words fubar in single quotes. So that's a whole lot of keystrokes to simply type two three letter
words. Now you'd think well that's not very efficient how could I possibly save keystrokes
by doing that. And the answer is that you have to use some other program to trigger all of those
things and what I use is my voice. So when I tell it to type something it does all of that
for me in the background and I never have to touch the keyboard at all. It's a matter of spending
a little bit of time setting up a configuration file and setting up commands in order to save you
lots and lots of keystrokes in the future. Now XV KBD can also type the contents of a file.
And so I have another command in the show notes that shows how you can use it to type out the
commands or to type out whatever is in the file called fubar.text. So that would be XV KBD
space dash X send event space dash secure space dash file space and then the file name in quotation
marks. In this time I called it fubar.text. And so that will tell it to type whatever is in that
file and it can be anything from a couple of words to a very long something. I use that to store
frequently used bits of text like my name and address and email addresses that I might need to type
into fields in a web browser. And also I save fairly large things like lily pond templates that
will have one or two thousand characters in them. And I just have to speak a command. And if my
cursor is in a window it will just type everything in that file. Look at the split. And it's really
quite magical. Now where this really becomes powerful is when you can combine these virtual keystrokes
with the clipboard. And so I use this all the time to edit text. And so I will for example I have
one of my commands will take whatever text I have selected and copy that text into the clipboard
by using a control plus c command with xdo tool. And then it will take the contents of the clipboard
and pipe them out using x clip. Actually I should have mentioned the there are two main commands I
use with x clip x clip space dash i will send something into the clipboard and x clip space dash o
will take whatever is in the clipboard and pipe it out to standard output.
And so in the in the example I was just talking about I would select some text and then speak a
command and that would trigger a series of events. The first thing would be to do an xdo tool space
control plus c to copy that text into the clipboard. And then I would follow that up with an
x clip space dash o to send it out of the clipboard. And then I would send it through the stream
editor said that's s-e-d to do whatever manipulations to the text that I need to do. For example one of
my commands is called capitalize this. And if I want to capitalize the words that I have selected I
say that. And it copies into the clipboard sends it out of the clipboard through said to capitalize
every word that was selected. And then sends it back into the clipboard so that it can then be
typed out as new text. You I did some experimenting with this and it has to be in the clipboard as
the corrected text before you can tell xvkvd to type out the right words. So it's it gets a little
complicated I suppose. But you can do things like that very easily if you know a few basic
said commands. And I'm going to link also to the famous said one line page at sourceforge.net.
There's a page called said one line dot text and it has an incredible collection of said one
liners that somebody has put together that has some excellent tricks. So that's one of the ways I
use the virtual keystrokes is to do that kind of manipulation of text. I use this all the time
either to do that kind of correction like a capitalizing things or making everything upper case
or everything lower case. Or I use it also to put various HTML tags around selected blocks of
text since I work quite a lot in HTML. And I have voice commands that will do the same kinds of
things with lot tech formatting like I can speak something like the command latex bold and it will
put the text bf bracket things around the text to make it a bold face in latex or lot tech. I have
to say latex or else it won't understand me. Let's see. So another way that I use virtual keystrokes
is for navigation on websites or even just around my desktop. But for example in Firefox you can
use what they call quick search to find text quickly on a page simply by starting typing. If you're
just on a web page and you are in Firefox start typing some text that you want to find on the
page by preceding it with either a slash or a single quote depending on whether you want to find
any instance of that text or only linked text. So the example that I put in the show notes is for
my voice command go to grades. And this is what I use when I'm on Moodle. That's our course
management system at the university. And I want to view the grades for whatever class I'm looking at.
Now I know that along the left hand column somewhere in the I don't know 50 or 100 links that they
have over on the left side one of them is grades. And so what I do is when I speak that command is
I send a series of virtual keystrokes to my machine and it starts with a single quote
and then the word grades and then a backslash R which is a virtual return key.
And so what it does is it searches for any linked text that matches that grades and presses enter
once it finds it. And that takes me right to the page with grades. This is extremely powerful.
Especially for pages that you visit frequently where you're always having to click on the same links.
And sometimes I also will put together a series of keystrokes using combinations of XDO tool
and XVKBD to navigate to various things. Basically anything that you can get to by a predictable
series of keystrokes can be scripted using these commands. And it's really really wonderful.
Now I normally launch all of these things using voice commands but if you're using
openbox like I am I don't know how many people use openbox anymore but it's it's what I use.
And openbox has a wonderful configuration file called RC.xml and on my system it's located
in my home directory in the .config slash openbox slash RC.xml file. And in there
you can configure keystrokes to launch commands or open programs or basically do whatever kind of
command you want. And so for certain things that I use a lot that I want to be able to launch without
speaking I will set up a key configuration. And I give an example in the show notes of how I
configured the super key plus in as a Nancy to run one of the scripts that I use all the time
on the counterpoint book that I've been working on. So anyway I don't know how much I could say
about this other than what I have. I mean other than just to give more examples but essentially
you would use this kind of thing just for whatever you need. I need it to do all kinds of editing
and text manipulation and navigation around my desktop and on web pages. Other people might
need it for other things but it's really incredible the things that you can do once you are able to
launch your virtual keystrokes on your computer. So I'm going to give it a try. If you want information
about Blather and how to set that up then you might see some of my earlier episodes or my demonstration
video on YouTube. I'm going to put as many links as I can and the show notes on this. I think I was
running up against the character limit but I'm going to put as many links as I can. I have a script
on my paste bin site that will install all of the dependencies and grab the source code
for Blather and build the necessary things and put the configuration files in the right place
on your system if you're running Debian. For other systems I don't know. If you run Arch it's
actually very easy because I think Jes were put together a an Arch package build that will do
everything for you and get you up and running if you wanted to try that kind of thing with the voice
commands. All right I should stop rambling now but anyway I hope you've enjoyed hearing about
XClip XDO tool and XV KBD. I don't know if these things come pre-installed on your system but if
you're on limits you should be able to get them very easily with a command to get them from your
repositories. All right that's it. Take care. Talk to you later.
You've been listening to Hacker Public Radio at Hacker Public Radio. We are a community podcast
network that releases shows every weekday Monday through Friday. Today's show, like all our shows,
was contributed by an HPR listener like yourself. If you ever thought of recording a podcast
then click on our contributing to find out how easy it really is. Hacker Public Radio was found
by the digital dog pound and the infonomicon computer club and it's part of the binary revolution
at binwreff.com. If you have comments on today's show please email the host directly leave a comment
on the website or record a follow-up episode yourself unless otherwise status. Today's show is
released on the creative comments, attribution, share a light 3.0 license.