Monday, January 09, 2006

lab 51 - plumbing from firefox


lab 51 - plumbing from firefox


I often want to copy and paste text from the firefox browser into my Acme session. Copy and paste isn't implemented for hosted Inferno. It could be implemented easily enough, but not in a general way for all hosted environments, and there might be more interesting ideas to explore especially when including plumber in the mix.

To solve my particular problem, getting text from the browser to Acme, I created a bookmarklet that opens a window on a URL that I serve from my Inferno session. The URL http://localhost/magic/plumb is a shell script that calls the plumb command to open the query string in Acme.

plumb -d edit -a action showdata 
 -a filename /httpd/plumb $"msg >[2=1]

I have a modified httpd that calls shell scripts and sets environment variables to the cgi data from the query string. In this case msg is a query parameter.

I install a plumb bookmarket (drag it to toolbar), then I can select text in Firefox, click on the plumb and the text pops up in Acme.

I also go the otherway by having a file /services/httpd/root/snarf.txt which I plumb to firefox by right-clicking http://localhost/snarf.txt in Acme.

I'll finish this off with a few other tricks for users running Inferno on Windows. The winstart/winplumb scripts from Plan 9 work for Inferno too. These allow you to plumb messages from Inferno to Plan 9 and have the Windows shell launch programs. I've included both in the files for this lab. See the 9fans archives for more info. I've also included my current plumbing rules that use winstart. But basically, the windows shell usually knows what program handles a file or URL. So just calling winstart will open the URL in your default browser. Or winstart file.pdf will open Acrobat reader, for example. The plumbing rules for files local to the inferno namespace then need to be mapped to the Host namespace, which I talk about in an earlier lab.


No comments: