3 command-line tools that save me hundreds of keystrokes a day.
Hosted by Jon Kulp on 2015-04-17 is flagged as Clean and is released under a CC-BY-SA license.
Listen in ogg, spx, or mp3 format. | Comments (8)
Shows about tearing down the barriers for our fellow hackers.
Type the words "foo bar" with
xvkbd -xsendevent -secure -text 'foo bar'
Types out the entire contents of the file "foobar.txt" with
xvkbd -xsendevent -secure -file "foobar.txt"
Send text to the clipboard:
Send clipboard contents to standard output:
Ctrl+C key combination with
xdotool key Control+c
Save this complicated command as an environment variable—then the variable "$KEYPRESS" expands to this command.
export KEYPRESS="xvkbd -xsendevent -secure -text"
With virtual keystrokes and CLI access to the clipboard, you're limited only by your imagination and scripting ability. Here are some examples of how I use them, both for the manipulation of text and for navigation. The words in bold-face are the voice commands I use to launch the written commands.
Capitalize this. Copies selected text to the clipboard, pipes it through
sed and back into the clipboard, then types fixed text back into my document:
xdotool key Control+c && xclip -o \
| sed 's/\(.*\)/\L\1/' \
| sed -r 's/\<./\U&/g' \
| xclip -i && $KEYPRESS "$(xclip -o)"
Go to grades. This example takes advantage of Firefox "quick search." I start with a single quote to match the linked text "grades" and press the Return key (
\r) to follow the link:
First Inbox. From any location within Thunderbird I can run this command and it executes the keystrokes to take me to the first inbox and put focus on the first message:
xdotool key Control+k && $KEYPRESS "\[Tab]\[Home]\[Left]\[Right]\[Down]" && sleep .2 && xdotool key Tab
single ex staff. Type out an entire Lilypond template into an empty text editor window:
xvkbd -xsendevent -secure -file "/path/to/single_ex_staff.ly"
Paragraph Tags. Puts HTML paragraph tags around selected text:
KEYPRESS='xvkbd -xsendevent -secure -text'
xdotool key Control+c
xdotool key Control+v
Launching commands with keystrokes in Openbox
I normally use blather voice commands to launch the scripts and keystroke commands, but I have a handful of frequently-used commands that I launch using keystroke combos configured in the Openbox config file (
~/.config/openbox/rc.xml on my system). This block configures the
super+n key combo to launch my
Subscribe to the comments RSS feed.
Comment #1 posted on 2015-04-17T19:45:26Z by Jon Kulp
I find now that I can streamline the "capitalize this" command by cutting out the last couple of xclip things, like this:
xdotool key Control+c && $KEYPRESS "$(xclip -o | sed 's/\(.*\)/\L\1/' | sed -r 's/\<./\U&/g')"
Comment #2 posted on 2015-04-21T10:41:50Z by Dave Morriss
This was very interesting. I'm impressed at how much you can do with such tools and Blather.
I wondered, is there any particular reason why you don't define KEYPRESS as an alias. I think that's what I would have done. I'd have added it to ~/.bash_aliases which I source in my ~/.bashrc.
I'm not sure that it adds a great deal since aliases are just shortcuts and don't offer much else in the way of features. Just wondering.
The sed tricks link makes good reading by the way.
Comment #3 posted on 2015-04-21T15:26:30Z by Mike Ray
This was a great podcast. 19 minutes of inspiration. John's podcasts are always worth a listen but this was particularly good. I will definitely be having a go at some of this and investigating how I can make life easier with these tools
Comment #4 posted on 2015-04-22T00:59:18Z by Jon Kulp
Thanks Mike; Response to Dave
Thanks, Mike! So glad to hear you enjoyed podcast.
Dave, I don't really know why I didn't try using a bash alias for this. I have a bash alias file with something like 200 lines in it so I definitely know how to do it. Somehow it seemed like creating an environment variable in my blather launch script was the right way to go, and since that worked I never tried doing a different way.
Comment #5 posted on 2015-04-22T11:54:47Z by Jon Kulp
Mike: ping me for help
Mike, If you're going to try to get blather up and running, let me know if I can help in any way. The script I wrote for Debian normally will get you to the "hello world" stage in one command, but it's possible that something could go wrong. If there's anything I can do to help you get started, let me know.
Comment #6 posted on 2015-04-23T08:45:47Z by Mike Ray
Blather and xvkbd as shortcuts in Debian
Will do John. I've just installed Debian Jessie RC3 on a laptop and I'm setting up some keyboard shortcuts so I will possibly try to get Blather up and running with the x tools to do the same job
Comment #7 posted on 2015-09-27T12:29:01Z by Rob Blaine
Blather works great!
Just a word of thanks for all your scripts and debian installation script for Blather. I'm a musician making use of Blather to reduce the number of hours spent using my hands on a keyboard and trackball. I also have a repetitive injury called hand dystonia, so I can definitely empathise with RSI sufferers. Your scripts are great help! - Best regards Rob.
Comment #8 posted on 2015-09-27T22:40:51Z by Jon Kulp
Hi Rob, thanks for the message, it's so great to hear about someone else using Blather to make life easier, although I'm very sorry to hear about your injury. If it's any consolation, one of my colleagues here at the University suffered from focal dystonia and seems to have made a complete recovery and is performing again all the time on the violin.
Comment #9 posted on 2015-09-28T19:35:10Z by Rob Blaine
Blather and RSI
Hi Jon, seems as though not enough people recognize the potential for programs like Blather. Thanks for the encouragement - I discovered some years ago via the net that retraining was the key to recovery (despite neurologists claiming I'd never perform again) ........a very slow process, but definitely worth my while. I hope your surgery / injury improves with time, though I can imagine an amount of wrist pain is inevitable. Keep up the good work with Blather.......Thanks again!