# RBMenu
Rust Bookmark (d)Menu is a dmenu/ncurses based interface to manage bookmarks independently of your web browser. It also supports file/folder bookmarks
Find a TUI version of RBMenu [here](https://github.com/DevHyperCoder/rbmenu-tui)
## Features
- Insert Bookmark
- List Bookmark(s) \[With coloured output]
- Remove Bookmark
- Edit Bookmarks
- Copy to clipboard (Available on [rbmenu-tui](https://github.com/DevHyperCoder/rbmenu-tui))
## FAQ
**Location of Bookmark file ?**
The Bookmark file for `rbmenu` is stored in `~/.local/share/rbmenu/`
**File format of the file ?**
The Bookmark file is stored in `json` format.
**More features ?**
Yes, more features are on the way. Some planned ones are, groups for bookmarks
## Installation
`rbmenu` is available on [crates.io](https://crates.io/crates/rbmenu)
**Arch Linux** : Available on AUR, `rbmenu` for manual compilation from release and `rbmenu-bin` for precompiled binary
**Manual Installation**
- Install the rust toolchain. `cargo` should be on the `$PATH`
- Clone the repo: `git clone https://github.com/DevHyperCoder/rbmenu.git`. Change directory (`cd`) into the `rbmenu` folder
- Build the code: `cargo build --release`
- Copy the binary to a location on $PATH. Binary is in `./target/release/rbmenu`
- For operation with cargo, `cargo run -- <options>`.
## CLI - Options
| `-h` `--help` | Prints help information |
| `-V` | Prints version information |
| `-n` `--name` | Name of the bookmark |
| `-i` `--id` | Id of the bookmark |
| `-u` `--url` | Url of the bookmark |
| `-l` `--show-link` | Show link of the bookmark |
## CLI - Subcommands
| `insert` | Add new bookmark |
| `update` | Update bookmarks |
| `remove` | List all bookmarks |
## Examples
> Scripts working with `dmenu` or `rofi` would be published soon.
**Insert a new bookmark**
- `-n` is the name of the bookmark. (Not required as if not provided, the domain name is used)
- `-u` is the link of the bookmark.
`rbmenu insert -u "https://domain.com" -n "Name"`
**List bookmarks**
Without the name option, `rbmenu list` displays all the available bookmarks. Give a regex string to the `-n` flag to filter out the bookmarks
- `-n` is the name of the bookmark.
- `-i` is the id of the bookmark.
`rbmenu list -n "git*"`
To just get the link of a bookmark, use the `-l` option.
`rbmenu list -n "git*" -l` will return just the links of the bookmarks.
**Remove Bookmark**
- `-n` is the name of the bookmark.
- `-i` is the id of the bookmark.
**Update Bookmark**
- `-n` is the name of the bookmark.
- `-u` is the link of the bookmark.
- `-i` is the id of the bookmark. REQUIRED
## License
RBMenu is licensed under the GPL-3 license.