## November 12, 2006

### A somewhat useful bash script

I am one of those weird people who like to run a full screen X11 in OS X - its just me. This means of course I run into certain problems when I need to copy-n-paste between Aqua and X11.

Copying from Aqua into X11 works fine, but not the other way around. This means its extremely trouble some when I need to open a URL from IRC since I use irssi for IRC, running inside screen over ssh.

And thus the following bash script was born to let me select some text, press a key combination in fluxbox and open up safari with the selection, or to perform a search on wikipedia or google.

#!/bin/bashMAX_LEN=32;NON_URL_BUTTONS="google:1,wiki:2,define:3,cancel:99";URL_BUTTONS="safari:0,cancel:99";sel=/Users/steve/usr/bin/xsel;if [ ${#sel} -eq 0 ]; then xmessage -buttons ok -default ok -nearmouse "Empty selection!"; exit;fihasurl=expr "$sel" : '.*http://.*';if [ $hasurl -gt 0 ]; then sel=${sel#*http://};    sel=${sel%% *}; sel="http://$sel";    buttons=$URL_BUTTONS;else buttons=$NON_URL_BUTTONS;fiif [ ${#sel} -gt$MAX_LEN ]; then    label="${sel:0:$MAX_LEN}...";else    label=$sel;fixmessage -buttons$buttons -default     expr "$buttons" : '$^[a-z]*$' -nearmouse "$label";case $? in 0) url="${sel}";        ;;    1)        url="http://www.google.com/search?q=${sel}"; ;; 2) url="http://en.wikipedia.org/wiki/${sel}";        ;;    3)         url="http://www.google.com/search?q=define:${sel}"; ;; 99) exit ;;esacurl=${url// /%20};echo "$url"open /Applications/Safari.app/ "$url"

xsel used here is by Conrad Parker, and you may change xmessage to gmessage if that is more appealing to you.

Cheers,
Steve