Demo video on my personal site
Rollerball is a bookmark manager inspired by the excellent, feature rich buku. I didn't really use all the features in Buku, and wanted to use Xata as the data store. The rollerball Fish shell script wraps some Node scripts and allows you to search against the Xata database using an FZF CLI.
Rollerball handles data entry through your local $EDTIOR
. For me that's Neovim
Rollerball is pretty specific and assumes you're running Fish on a Linux desktop of some sort.
- Fish
- Awk
- Node
- Xata
- Clone the repo, install Xata
- cd into the directory
- Run
xata init --codegen=xata.ts
picking TypeScript - Run
xata schema upload schema.json
and thenxata pull main
- Set up a way to invoke Rollerball. Here are two ways you could do it.
- Make a fish alias:
alias rollerball "~/path/to/rollerball.fish"
- Set up a symlink:
ln -s /path/to/rollerball.fish /usr/local/bin/rollerball
- Make a fish alias:
Now you should be able to run rollerball -e
to create your first bookmark.
By default running rollerball
will search through existing bookmarks through FZF. Passing a parameter to the default command will pre-search results using xata. For example rollerball design
will search all fields for "design".
One search is loaded you can hit CTRL-e
to edit the currently focused bookmark.
Running rollerball -e
will launch your editor and allow you to add a new bookmark. Passing it the bookmark's id (it's incremental number) rollerball -e 2
will allow you to edit that specific bookmark.
The primary purpose of this tool is to get data into a Xata database. At this point you can access your links from anywhere and build more specific tools.
You might find it usefull to make key commands to load up and then close rollerball quickly at a global level. In gnome I do this by setting a custom shortcut (found in settings / keyboard) using the command alacritty -e fish -c "rollerball"
. Different Desktops handle key commands differently, but typically you need to open the terminal, and call rollerball from it.