I wrote surfsticker
so that I can have a browser window on my desktop that
is reasonably sticky. What I did not want was the default behavior of surf
,
where every invocation opens a new window.
Instead, I wrap surf
in surfsticker
, with an optional -sticker
flag.
surfsticker
creates a surf
window with an extra XProperty on it named
_STICKER
. Without an explicitly chosen -sticker
flag, it will set the
value to "default".
Once a surf
window has been started by surfsticker
with a particular
_STICKER
, further invocations of surfsticker
will re-use the existing
window to visit a chosen URL.
Each _STICKER
is tied to a stylesheet in ~/.surf/styles
.
I have a custom surf
stylesheet that I like to use with godoc
so that its
brightness doesn't melt my eyes. To invoke it, I put the following in my
.vimrc
:
let g:go_play_browser_command = 'surfsticker -sticker godoc %URL% &'
This opens a surf window labeled with the godoc
_STICKER
that uses
the following stylesheet: ~/.surf/styles/godoc.css
. So long as that window
stays open, it will be reused every time I
surfsticker -sticker godoc https://example.com
.
So long as the go
toolchain is available and you've added ~/go/bin
to your
regular path, surfsticker
should install and be usable by invoking
go install ./...
in its root.
surfsticker
uses the Linux inotify
API.