Bump version to 0.7.0

This commit is contained in:
Joscha 2023-05-14 16:52:04 +02:00
parent 876619454e
commit 02bfd3ed3d
4 changed files with 578 additions and 15 deletions

View file

@ -15,6 +15,8 @@ Procedure when bumping the version number:
## Unreleased ## Unreleased
## v0.7.0 - 2023-05-14
### Added ### Added
- Auto-generated config documentation - Auto-generated config documentation
- in [CONFIG.md](CONFIG.md) - in [CONFIG.md](CONFIG.md)

581
CONFIG.md
View file

@ -1,8 +1,74 @@
# Configuration options # Config file format
Cove's config file uses the [TOML](https://toml.io/) format. Cove's config file uses the [TOML](https://toml.io/) format.
## `data_dir` Here is an example config that changes a few different options:
```toml
measure_widths = true
rooms_sort_order = "importance"
[euph.rooms.welcome]
autojoin = true
[euph.rooms.test]
username = "badingle"
force_username = true
[euph.rooms.private]
password = "foobar"
[keys]
general.abort = ["esc", "ctrl+c"]
general.exit = "ctrl+q"
tree.action.fold_tree = "f"
```
If you want to configure lots of rooms, TOML lets you write this in a more
compact way:
```toml
[euph.rooms]
foo = { autojoin = true }
bar = { autojoin = true }
baz = { autojoin = true }
private = { autojoin = true, password = "foobar" }
```
## Key bindings
Key bindings are specified as strings or lists of strings. Each string specifies
a main key and zero or more modifier keys. The modifier keys (if any) are listed
first, followed by the main key. They are separated by the `+` character and
**no** whitespace.
Examples of key bindings:
- `"ctrl+c"`
- `"X"` (not `"shift+x"`)
- `"space"` or `" "` (both space bar)
- `["g", "home"]`
- `["K", "ctrl+up"]`
- `["f1", "?"]`
- `"ctrl+alt+f3"`
- `["enter", "any+enter"]` (matches `enter` regardless of modifiers)
Available main keys:
- Any single character that can be typed
- `esc`, `enter`, `space`, `tab`, `backtab`
- `backspace`, `delete`, `insert`
- `left`, `right`, `up`, `down`
- `home`, `end`, `pageup`, `pagedown`
- `f1`, `f2`, ...
Available modifiers:
- `shift` (must not be used with single characters)
- `ctrl`
- `alt`
- `any` (matches as long as at least one modifier is pressed)
## Available options
### `data_dir`
**Required:** no **Required:** no
**Type:** path **Type:** path
@ -15,7 +81,7 @@ Relative paths are interpreted relative to the user's home directory.
See also the `--data-dir` command line option. See also the `--data-dir` command line option.
## `ephemeral` ### `ephemeral`
**Required:** yes **Required:** yes
**Type:** boolean **Type:** boolean
@ -28,7 +94,7 @@ any options related to the data dir.
See also the `--ephemeral` command line option. See also the `--ephemeral` command line option.
## `euph.rooms.<room>.autojoin` ### `euph.rooms.<room>.autojoin`
**Required:** yes **Required:** yes
**Type:** boolean **Type:** boolean
@ -36,7 +102,7 @@ See also the `--ephemeral` command line option.
Whether to automatically join this room on startup. Whether to automatically join this room on startup.
## `euph.rooms.<room>.force_username` ### `euph.rooms.<room>.force_username`
**Required:** yes **Required:** yes
**Type:** boolean **Type:** boolean
@ -46,7 +112,7 @@ If `euph.rooms.<room>.username` is set, this will force cove to set the
username even if there is already a different username associated with username even if there is already a different username associated with
the current session. the current session.
## `euph.rooms.<room>.password` ### `euph.rooms.<room>.password`
**Required:** no **Required:** no
**Type:** string **Type:** string
@ -54,7 +120,7 @@ the current session.
If set, cove will try once to use this password to authenticate, should If set, cove will try once to use this password to authenticate, should
the room be password-protected. the room be password-protected.
## `euph.rooms.<room>.username` ### `euph.rooms.<room>.username`
**Required:** no **Required:** no
**Type:** string **Type:** string
@ -62,7 +128,502 @@ the room be password-protected.
If set, cove will set this username upon joining if there is no username If set, cove will set this username upon joining if there is no username
associated with the current session. associated with the current session.
## `offline` ### `keys.cursor.down`
**Required:** yes
**Type:** key binding
**Default:** `["j", "down"]`
Move down.
### `keys.cursor.to_bottom`
**Required:** yes
**Type:** key binding
**Default:** `["G", "end"]`
Move to bottom.
### `keys.cursor.to_top`
**Required:** yes
**Type:** key binding
**Default:** `["g", "home"]`
Move to top.
### `keys.cursor.up`
**Required:** yes
**Type:** key binding
**Default:** `["k", "up"]`
Move up.
### `keys.editor.action.backspace`
**Required:** yes
**Type:** key binding
**Default:** `["ctrl+h", "backspace"]`
Delete before cursor.
### `keys.editor.action.clear`
**Required:** yes
**Type:** key binding
**Default:** `"ctrl+l"`
Clear editor contents.
### `keys.editor.action.delete`
**Required:** yes
**Type:** key binding
**Default:** `["ctrl+d", "delete"]`
Delete after cursor.
### `keys.editor.action.external`
**Required:** yes
**Type:** key binding
**Default:** `["ctrl+x", "alt+e"]`
Edit in external editor.
### `keys.editor.cursor.down`
**Required:** yes
**Type:** key binding
**Default:** `"down"`
Move down.
### `keys.editor.cursor.end`
**Required:** yes
**Type:** key binding
**Default:** `["ctrl+e", "end"]`
Move to end of line.
### `keys.editor.cursor.left`
**Required:** yes
**Type:** key binding
**Default:** `["ctrl+b", "left"]`
Move left.
### `keys.editor.cursor.left_word`
**Required:** yes
**Type:** key binding
**Default:** `["alt+b", "ctrl+left"]`
Move left a word.
### `keys.editor.cursor.right`
**Required:** yes
**Type:** key binding
**Default:** `["ctrl+f", "right"]`
Move right.
### `keys.editor.cursor.right_word`
**Required:** yes
**Type:** key binding
**Default:** `["alt+f", "ctrl+right"]`
Move right a word.
### `keys.editor.cursor.start`
**Required:** yes
**Type:** key binding
**Default:** `["ctrl+a", "home"]`
Move to start of line.
### `keys.editor.cursor.up`
**Required:** yes
**Type:** key binding
**Default:** `"up"`
Move up.
### `keys.general.abort`
**Required:** yes
**Type:** key binding
**Default:** `"esc"`
Abort/close.
### `keys.general.confirm`
**Required:** yes
**Type:** key binding
**Default:** `"enter"`
Confirm.
### `keys.general.exit`
**Required:** yes
**Type:** key binding
**Default:** `"ctrl+c"`
Quit cove.
### `keys.general.focus`
**Required:** yes
**Type:** key binding
**Default:** `"tab"`
Advance focus.
### `keys.general.help`
**Required:** yes
**Type:** key binding
**Default:** `"f1"`
Show this help.
### `keys.general.log`
**Required:** yes
**Type:** key binding
**Default:** `"f12"`
Show log.
### `keys.room.action.account`
**Required:** yes
**Type:** key binding
**Default:** `"A"`
Manage account.
### `keys.room.action.authenticate`
**Required:** yes
**Type:** key binding
**Default:** `"a"`
Authenticate.
### `keys.room.action.more_messages`
**Required:** yes
**Type:** key binding
**Default:** `"m"`
Download more messages.
### `keys.room.action.nick`
**Required:** yes
**Type:** key binding
**Default:** `"n"`
Change nick.
### `keys.room.action.present`
**Required:** yes
**Type:** key binding
**Default:** `"ctrl+p"`
Open room's plugh.de/present page.
### `keys.rooms.action.change_sort_order`
**Required:** yes
**Type:** key binding
**Default:** `"s"`
Change sort order.
### `keys.rooms.action.connect`
**Required:** yes
**Type:** key binding
**Default:** `"c"`
Connect to selected room.
### `keys.rooms.action.connect_all`
**Required:** yes
**Type:** key binding
**Default:** `"C"`
Connect to all rooms.
### `keys.rooms.action.connect_autojoin`
**Required:** yes
**Type:** key binding
**Default:** `"a"`
Connect to all autojoin rooms.
### `keys.rooms.action.delete`
**Required:** yes
**Type:** key binding
**Default:** `"X"`
Delete room.
### `keys.rooms.action.disconnect`
**Required:** yes
**Type:** key binding
**Default:** `"d"`
Disconnect from selected room.
### `keys.rooms.action.disconnect_all`
**Required:** yes
**Type:** key binding
**Default:** `"D"`
Disconnect from all rooms.
### `keys.rooms.action.disconnect_non_autojoin`
**Required:** yes
**Type:** key binding
**Default:** `"A"`
Disconnect from all non-autojoin rooms.
### `keys.rooms.action.new`
**Required:** yes
**Type:** key binding
**Default:** `"n"`
Connect to new room.
### `keys.scroll.center_cursor`
**Required:** yes
**Type:** key binding
**Default:** `"z"`
Center cursor.
### `keys.scroll.down_full`
**Required:** yes
**Type:** key binding
**Default:** `["ctrl+f", "pagedown"]`
Scroll down a full screen.
### `keys.scroll.down_half`
**Required:** yes
**Type:** key binding
**Default:** `"ctrl+d"`
Scroll down half a screen.
### `keys.scroll.down_line`
**Required:** yes
**Type:** key binding
**Default:** `"ctrl+e"`
Scroll down one line.
### `keys.scroll.up_full`
**Required:** yes
**Type:** key binding
**Default:** `["ctrl+b", "pageup"]`
Scroll up a full screen.
### `keys.scroll.up_half`
**Required:** yes
**Type:** key binding
**Default:** `"ctrl+u"`
Scroll up half a screen.
### `keys.scroll.up_line`
**Required:** yes
**Type:** key binding
**Default:** `"ctrl+y"`
Scroll up one line.
### `keys.tree.action.fold_tree`
**Required:** yes
**Type:** key binding
**Default:** `"space"`
Fold current message's subtree.
### `keys.tree.action.inspect`
**Required:** yes
**Type:** key binding
**Default:** `"i"`
Inspect selected element.
### `keys.tree.action.links`
**Required:** yes
**Type:** key binding
**Default:** `"I"`
List links found in message.
### `keys.tree.action.mark_older_seen`
**Required:** yes
**Type:** key binding
**Default:** `"ctrl+s"`
Mark all older messages as seen.
### `keys.tree.action.mark_visible_seen`
**Required:** yes
**Type:** key binding
**Default:** `"S"`
Mark all visible messages as seen.
### `keys.tree.action.new_thread`
**Required:** yes
**Type:** key binding
**Default:** `"t"`
Start a new thread.
### `keys.tree.action.reply`
**Required:** yes
**Type:** key binding
**Default:** `"r"`
Reply to message, inline if possible.
### `keys.tree.action.reply_alternate`
**Required:** yes
**Type:** key binding
**Default:** `"R"`
Reply opposite to normal reply.
### `keys.tree.action.toggle_seen`
**Required:** yes
**Type:** key binding
**Default:** `"s"`
Toggle current message's seen status.
### `keys.tree.cursor.to_above_sibling`
**Required:** yes
**Type:** key binding
**Default:** `["K", "ctrl+up"]`
Move to above sibling.
### `keys.tree.cursor.to_below_sibling`
**Required:** yes
**Type:** key binding
**Default:** `["J", "ctrl+down"]`
Move to below sibling.
### `keys.tree.cursor.to_newer_message`
**Required:** yes
**Type:** key binding
**Default:** `["l", "right"]`
Move to newer message.
### `keys.tree.cursor.to_newer_unseen_message`
**Required:** yes
**Type:** key binding
**Default:** `["L", "ctrl+right"]`
Move to newer unseen message.
### `keys.tree.cursor.to_older_message`
**Required:** yes
**Type:** key binding
**Default:** `["h", "left"]`
Move to older message.
### `keys.tree.cursor.to_older_unseen_message`
**Required:** yes
**Type:** key binding
**Default:** `["H", "ctrl+left"]`
Move to older unseen message.
### `keys.tree.cursor.to_parent`
**Required:** yes
**Type:** key binding
**Default:** `"p"`
Move to parent.
### `keys.tree.cursor.to_root`
**Required:** yes
**Type:** key binding
**Default:** `"P"`
Move to root.
### `measure_widths`
**Required:** yes
**Type:** boolean
**Default:** `false`
Whether to measure the width of characters as displayed by the terminal
emulator instead of guessing the width.
Enabling this makes rendering a bit slower but more accurate. The screen
might also flash when encountering new characters (or, more accurately,
graphemes).
See also the `--measure-graphemes` command line option.
### `offline`
**Required:** yes **Required:** yes
**Type:** boolean **Type:** boolean
@ -76,11 +637,11 @@ pressing `a` in the rooms list.
See also the `--offline` command line option. See also the `--offline` command line option.
## `rooms_sort_order` ### `rooms_sort_order`
**Required:** yes **Required:** yes
**Type:** string **Type:** string
**Values:** `alphabet`, `importance` **Values:** `"alphabet"`, `"importance"`
**Default:** `alphabet` **Default:** `alphabet`
Initial sort order of rooms list. Initial sort order of rooms list.

8
Cargo.lock generated
View file

@ -249,7 +249,7 @@ checksum = "e496a50fda8aacccc86d7529e2c1e0892dbd0f898a6b5645b5561b89c3210efa"
[[package]] [[package]]
name = "cove" name = "cove"
version = "0.6.1" version = "0.7.0"
dependencies = [ dependencies = [
"anyhow", "anyhow",
"async-trait", "async-trait",
@ -279,7 +279,7 @@ dependencies = [
[[package]] [[package]]
name = "cove-config" name = "cove-config"
version = "0.6.1" version = "0.7.0"
dependencies = [ dependencies = [
"cove-input", "cove-input",
"cove-macro", "cove-macro",
@ -290,7 +290,7 @@ dependencies = [
[[package]] [[package]]
name = "cove-input" name = "cove-input"
version = "0.6.1" version = "0.7.0"
dependencies = [ dependencies = [
"cove-macro", "cove-macro",
"crossterm", "crossterm",
@ -304,7 +304,7 @@ dependencies = [
[[package]] [[package]]
name = "cove-macro" name = "cove-macro"
version = "0.6.1" version = "0.7.0"
dependencies = [ dependencies = [
"case", "case",
"proc-macro2", "proc-macro2",

View file

@ -3,7 +3,7 @@ resolver = "2"
members = ["cove", "cove-*"] members = ["cove", "cove-*"]
[workspace.package] [workspace.package]
version = "0.6.1" version = "0.7.0"
edition = "2021" edition = "2021"
[workspace.dependencies] [workspace.dependencies]