#!/usr/bin/perl -w
use strict;
use Clipboard;
my $browser = $ENV{BROWSER} || 'firefox -remote "openURL(%s,new-tab)"';
$browser .= ' %s' unless $browser =~ /%s/;
system(sprintf $browser, Clipboard->paste);

=head1 NAME

clipbrowse - Load a URL from the clipboard into your browser.

=head1 USAGE

# ...copy something
# (You might want to do a `clipjoin` if the URL text is messy)
$ clipbrowse

Remember that many browsers will load things that don't look like URL's... for
example Firefox does a Google "I'm feeling lucky".  This means you can have
any text in your clipboard and `clipbrowse`.

=head1 MOTIVATION

It saves a couple of seconds every time you run it.  Firefox, for example,
automatically creates a new tab and loads the page when you invoke it from the
command line.  Already we've saved a Ctrl+T and a Shift+Insert.  When you
consider the parallelizing (that your browser will be actively loading the
page while you're Alt+Tabbing to it), you've squeaked out a little more.

Maybe I'm just a freak, but I like shaving out wasted time like that.

=head1 X+FIREFOX MOTIVATION

It seems like Firefox (currently) isn't very smart about the X selections.  If
your data is in the "buffer" or "primary" selection, it will find it every
time.  But if it's in "clipboard" or "secondary", it won't.

When I understand all of this better I might submit some kind of bug report or
patch to Firefox, but for now this script puts the love on me just fine.

=head1 CONFIGURATION

The environment variable C<$BROWSER> will override the default launching
command.  If you have a %s in the line, it will be replaced with the url.  if
not, the url will be appended at the end.

The default is `firefox -remote "openURL(%s,new-tab)"`.

=head1 AUTHOR

Ryan King <rking@sharpsaw.org> 
=head1 COPYRIGHT

Copyright (c) 2005.  Ryan King.  All rights reserved.

This program is free software; you can redistribute it and/or modify it
under the same terms as Perl itself.

See L<http://www.perl.com/perl/misc/Artistic.html>
