bm
open bookmarks and queries from the command line
https://github.com/ExtremaIS/bm-haskell#readme
LTS Haskell 23.0: | 0.2.0.0@rev:5 |
Stackage Nightly 2024-12-18: | 0.2.0.0@rev:5 |
Latest on Hackage: | 0.2.0.0@rev:5 |
bm-0.2.0.0@sha256:d6d9e884d3a102d7adcb3dbf72c6f6bf3bcc82d467f63d84d2b9eb8133316935,2677
Module documentation for 0.2.0.0
bm
Overview
bm
is a utility for opening bookmarks and queries from the command line.
The bookmarks and queries are configured hierarchically in YAML, and they are
referenced using keyword prefixes. It allows you to quickly open bookmarks
and perform search queries in your browser using only your keyboard.
CLI
Requirements
bm
is designed to work on any operating system, but it has only been tested
on Linux.
Installation
.deb
Package Installation
Check the Releases page for .deb
packages.
.rpm
Package Installation
Check the Releases page for .rpm
packages.
Installation From Hackage
Install bm
from Hackage using Cabal as follows:
$ cabal v2-install bm
Installation From Stackage
Install bm
from Stackage using Stack as follows:
$ stack install bm
Usage
Bookmarks and search queries are configured using a hierarchy of keywords in a
YAML configuration file. They are selected using keyword prefixes as
command-line arguments. Command-line completion is available for Bash. See
the bm
man page for details.
Note that the command used to open bookmarks and queries can be customized in the configuration file. Specifying the command for your specific browser can make links open considerably faster than with the default (generic) command.
Examples
An example configuration file is available in the config
directory on
GitHub (example for the latest release: bm.yaml). The following are
example commands using this configuration file.
Open a bookmark link by specifying keywords. The Nix homepage can be opened with the following command:
$ bm nix
The nixpkgs
manual can be opened using the following command:
$ bm nix pkgs manual
Keyword prefixes can also be used. The following command also opens the
nixpkgs
manual:
$ bm n p m
When more than one keyword has the same prefix, the first is selected. If a selected bookmark does not specify a URL, the first child is processed.
The /
keyword defines a bookmark with a URL as well as a query. When no
query is specified, the URL is opened, allowing you to search with suggestions
using the search field. Open a query by specifying keywords followed by the
query.
$ bm / LinearTypes
When multiple query arguments are provided, they are joined with a space.
Project
Links
- Hackage: https://hackage.haskell.org/package/bm
- Stackage: https://www.stackage.org/package/bm
- Flora: https://flora.pm/packages/@hackage/bm
- GitHub: https://github.com/ExtremaIS/bm-haskell
- GitHub Actions CI: https://github.com/ExtremaIS/bm-haskell/actions
Branches
The main
branch is reserved for releases. It may be considered stable, and
HEAD
is always the latest release.
The develop
branch is the primary development branch. It contains changes
that have not yet been released, and it is not necessarily stable.
Hackage revisions are made for metadata changes, such as relaxation of
constraints when new versions of dependencies are released. The bm.cabal
metadata in the main
branch may therefore not match that of Hackage. The
bm.cabal
metadata in the develop
branch may match, unless work is being
done on a new release that contains other changes.
Tags
All releases are tagged in the main
branch. Release tags are signed using
the [email protected]
GPG key.
Contribution
Issues and feature requests are tracked on GitHub: https://github.com/ExtremaIS/bm-haskell/issues
Issues may also be submitted via email to [email protected].
License
This project is released under the MIT License as specified in the
LICENSE
file.
Changes
bm-haskell
Changelog
This project follows the Haskell package versioning policy, with
versions in A.B.C.D
format. A
may be incremented arbitrarily for
non-technical reasons, but semantic versioning is otherwise
followed, where A.B
is the major version, C
is the minor version, and D
is the patch version. Initial development uses versions 0.0.0.D
, for which
every version is considered breaking.
The format of this changelog is based on Keep a Changelog, with the following conventions:
- Level-two heading
Unreleased
is used to track changes that have not been released. - Other level-two headings specify the release in
A.B.C.D (YYYY-MM-DD)
format, with newer versions above older versions. - Level-three headings are used to categorize changes as follows:
- Breaking
- Non-Breaking
- Changes are listed in arbitrary order and present tense.
0.2.0.0 (2023-05-28)
Breaking
- Add support for
optparse-applicative
0.18
Non-Breaking
- Bump
ansi-wl-pprint
dependency version upper bound
0.1.1.0 (2023-04-23)
Non-Breaking
- Bump
aeson
dependency version upper bound - Bump
transformers
dependency version upper bound - Bump
vector
dependency version upper bound - Adjust dependency constraints to match tested versions
0.1.0.2 (2022-03-02)
Non-Breaking
- Bump
text
dependency version upper bound - Bump
optparse-applicative
dependency version upper bound
0.1.0.1 (2021-10-10)
Non-Breaking
- Add dependency bounds
0.1.0.0 (2021-07-02)
Breaking
- Initial release