# Jolly
Jolly is a cross between a bookmark manager and an application launcher.
It extends the concept of your browser bookmarking interface, but
allows these bookmarks to access files on your local file system, as
well as run commands in your shell.
https://user-images.githubusercontent.com/1356587/259296825-59452f58-701d-410c-9da3-61f1e2f48e91.mov
# Quick Introduction
To use Jolly, simply run the `jolly` executable.
```bash
# Run Jolly with jolly.toml in the current directory
jolly
```
To use a config file that is not in the current directory, pass its path on the command line:
```bash
# Run Jolly with a custom config file
jolly /path/to/custom/jolly.toml
```
For more details on how Jolly finds its config file, see the
[documentation](docs/file-format.md#locations).
By default, Jolly won't show any results: just tell you how many
entries it has loaded:
![startup page](docs/static/startup.png)
You can search for an entry by typing in text: Jolly will use the
title of the entry and any [tags](docs/file-format.md#tags) associated
with the entry to find results:
![startup page](docs/static/basic-search.png)
To open the entry, you can select it using the arrow and enter keys,
or click it with the mouse.
To learn more about the file format used by Jolly, see the [file-format](docs/file-format.md) page.
To learn more about changing settings for Jolly, including how to
customize the theme, see the [config](docs/config.md) page.
To learn more advanced tips and tricks, see the [advanced](docs/advanced.md) usage page.
# Why Jolly was created
There are a lot of really good full featured launcher programs out
there, for example, consider [launchy](https://www.launchy.net/),
[rofi](https://github.com/davatorium/rofi), or
[alfred](https://www.alfredapp.com/). These launcher programs tend to
be packed with features, allowing you to do tons of different actions:
for example, accessing any installed program or searching for any
document on your computer. This can be quite powerful, but it may be
hard to find the exact entry that you want among all of the other
launcher results.
On the other end of the spectrum are notetaking applications, such as
[onenote](https://www.onenote.com), [obsidian](https://obsidian.md/),
or [org mode](https://orgmode.org/). These are also super powerful,
and solve the "noise" problem that launchers have, by only including
content that is curated by the user. However, they are focused on the
usecase of storing knowledge, not on quickly launching apps and links,
which means it can take a couple of click to open a bookmark, instead
of the nearly instantaneous feedback of a launcher app.
The other obvious option here would be your web browser. And lets be
honest, your web browser's search bar and bookmark interface has
thousands more hours of development time poured into it:
Jolly can't possibly hope to compete. However, web browsers are
focused on web content only, which means that local files and external
programs are annoyingly sandboxed away, hard to use with the bookmark
interface.
Hence Jolly: the curation of notetaking apps, with the instantaneous
gratification of an app launcher, and sharp edges exposed that your
web browser doesn't want you to have.
# Installation
The latest release of Jolly can be found on github [here](https://github.com/apgoetz/jolly/releases/latest)
Alternatively, for rust users, Jolly can be installed via cargo:
```bash
cargo install jolly
```
## Freedesktop based systems
If you want to use Jolly on Linux and BSD based platforms, then icon
support is based on freedesktop.org standards. This means that you
will need the following packages installed:
+ xdg-utils
+ shared-mime-info
In addition, at least one icon theme needs to be installed. The
default icon theme can be customized at build time using the
environment variable `JOLLY_DEFAULT_THEME`, or it can be configured at
runtime in the config file. See [icon
documentation](docs/config#icon) for more details.
## NetBSD
On NetBSD, a pre-compiled binary is available from the official
repositories. To install Jolly, simply run:
```bash
pkgin install jolly
```
Or, if you prefer to build it from source:
```bash
cd /usr/pkgsrc/x11/jolly
make install
```
**Regarding Minimum Supported Rust Version**: Jolly
uses [iced](https://github.com/iced-rs/iced) for its GUI implementation, which
is a fast moving project that generally only targets the latest stable
rustc. Therefore Jolly will also usually target the same MSRV as
`iced`. (Currently 1.70.0)
## macOS
Jolly provides builds for macOS, and Jolly is tested for this
platform, but the builds that Jolly provides are not packaged as an
App Bundle and are unsigned. It might be just easier on macos to use
`cargo install jolly`