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