A blazingly fast, highly extendable and easily integrated command line read-only interface for firefox's bookmarks and history.
- 🧾 Free software under the GPL-3.0 licence.
- 🔗 Built with the Unix philosophy in mind.
- 💪 Written in the Rust programming language.
- 🚫 windows is not supported.
For every new release a Github workflow will build a binary in Github servers and will upload it as a release asset in Github releases.
You can find the latest Github release here or the releases page here.
yay -Sa foxmarksparu -Sa foxmarksNote
You need to have cargo installed in you system.
git clone https://github.com/zefr0x/foxmarks.git
cd foxmarks
# Checkout to a release tag e.g. v1.0.1
git checkout vx.x.x
cargo build --releaseYou will find the binary in ./target/release/foxmarks
It's simple, for a list of your bookmarks run:
foxmarks bookmarksFor the browsing history:
foxmarks historyBy default it will try to fetch the data from the default profile of firefox-release, but if you have firefox-esr or firefox-dev installed, you can specify a type:
foxmarks -t Esr bookmarksRelease: firefox-release
Esr: firefox-esr
Dev: firefox-dev
If you are using a custom profile as your default one or you are using the flatpak version of firefox, then you need to use
profile-pathoption to specify the profile you want to read from.
For more options and details read the long help:
foxmarks --helpSince it's a simple tool that do one thing will, you should consider compining it with another tools.
Pipe the output to the column command to display the results in columns, so you can read them easily.
foxmarks bookmarks | column -t -s ";"You can pipe them again to the less command:
foxmarks bookmarks | column -t -s ";" | lessYou can integrate the tool with your favorate launcher, for example here is a script for the rofi launcher:
#!/usr/bin/bash
if [[ $ROFI_RETV = 0 ]];
then
foxmarks bookmarks | {
while read -r line;
do
IFS=";"
read -r title url <<< $line
printf "%s\0icon\x1fbookmarks\x1fmeta\x1f%s\x1finfo\x1f%s\x1f\n" $title $url $url
done
}
elif [[ $ROFI_RETV = 1 ]];
then
xdg-open $ROFI_INFO
fiWarning
You might use another language like Python for better and faster implementaion.
The default options might not fit your needs, so you can change them via a config file.
The config file is $XDG_CONFIG_HOME/foxmarks/config or by default ~/.config/foxmarks/config.
Just create it and specify the options you need with the ini format:
[database]
firefox_type = Release
firefox_home_path = ~/.mozilla/firefox/
profile_path = xxxxxxxx.default-release
[output]
column_delimiter = |
row_delimiter = ;