I'm continuing my journey to optimize ratpoison. My latest tweak: binding keys that bring up specific programs. For example Windows + e now pops emacs front and center.
I accomplished this by enhancing the rpwin script I'd previously created. Here's the latest version:
#!/bin/bash
## A shell script for capturing / switching / deleting / etc.
## ratpoison window configurations
RATPOISON=ratpoison
RP_SNAPSHOT=$HOME/.rp.snapshot
usage() {
echo "Usage: `basename $0` {capture|restore|goto}"
exit 1
}
rp_cmd() {
$RATPOISON -c "$@"
}
case "$1" in
capture)
if [ -n "$2" ] ; then
loc=$2
else
loc='default'
fi
touch $RP_SNAPSHOT.$loc
rp_cmd sfdump > $RP_SNAPSHOT.$loc
;;
restore)
if [ -n "$2" ] ; then
loc=$2
else
loc='default'
fi
if [ -s $RP_SNAPSHOT.$loc ] ; then
rp_cmd "sfrestore `cat $RP_SNAPSHOT.$loc`"
else
echo "Refusing to restore an empty snapshot"
exit
fi
;;
goto)
win=`rp_cmd windows | grep -i "$2" | sed 's/[^0-9].*//' | head -1`
if [ -n "$win" ]; then
rp_cmd "select $win"
fi
;;
*)
usage
;;
esac
The above script includes a new sub command: goto. To use this new command, I added the following bindings to my .ratpoisonrc:
definekey top s-o exec rpwin goto Gimp definekey top s-e exec rpwin goto emacs
And just like that Windows + o pops up Gimp and Windows + e pops up emacs. I'm loving the ability to quickly save and restore window configurations, and I find that this new 'goto' capability works well with it. The standard configurations cover most cases and the quick jump lets me get to programs I use less frequently (like Gimp) or need more often (like emacs).
No comments:
Post a Comment