diff --git a/CHANGELOG.md b/CHANGELOG.md index 881ebae..8c6b37f 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -7,10 +7,11 @@ Procedure when bumping the version number: 1. Update dependencies in a separate commit 2. Set version number in `Cargo.toml` 3. Add new section in this changelog -4. Commit with message `Bump version to X.Y.Z` -5. Create tag named `vX.Y.Z` -6. Fast-forward branch `latest` -7. Push `master`, `latest` and the new tag +4. Run `cargo run help-config > CONFIG.md` +5. Commit with message `Bump version to X.Y.Z` +6. Create tag named `vX.Y.Z` +7. Fast-forward branch `latest` +8. Push `master`, `latest` and the new tag ## Unreleased diff --git a/CONFIG.md b/CONFIG.md new file mode 100644 index 0000000..4f2a456 --- /dev/null +++ b/CONFIG.md @@ -0,0 +1,95 @@ +# Configuration options + +Cove's config file uses the [TOML](https://toml.io/) format. + +## `data_dir` + +**Required:** no +**Type:** path +**Default:** platform-dependent + +The directory that cove stores its data in when not running in ephemeral +mode. + +Relative paths are interpreted relative to the user's home directory. + +See also the `--data-dir` command line option. + +## `ephemeral` + +**Required:** yes +**Type:** boolean +**Default:** `false` + +Whether to start in ephemeral mode. + +In ephemeral mode, cove doesn't store any data. It completely ignores +any options related to the data dir. + +See also the `--ephemeral` command line option. + +## `euph.rooms..autojoin` + +**Required:** yes +**Type:** boolean +**Default:** `false` + +Whether to automatically join this room on startup. + +## `euph.rooms..force_username` + +**Required:** yes +**Type:** boolean +**Default:** `false` + +If `euph.rooms..username` is set, this will force cove to set the +username even if there is already a different username associated with +the current session. + +## `euph.rooms..password` + +**Required:** no +**Type:** string + +If set, cove will try once to use this password to authenticate, should +the room be password-protected. + +## `euph.rooms..username` + +**Required:** no +**Type:** string + +If set, cove will set this username upon joining if there is no username +associated with the current session. + +## `offline` + +**Required:** yes +**Type:** boolean +**Default:** `false` + +Whether to start in offline mode. + +In offline mode, cove won't automatically join rooms marked via the +`autojoin` option on startup. You can still join those rooms manually by +pressing `a` in the rooms list. + +See also the `--offline` command line option. + +## `rooms_sort_order` + +**Required:** yes +**Type:** string +**Values:** `alphabet`, `importance` +**Default:** `alphabet` + +Initial sort order of rooms list. + +`alphabet` sorts rooms in alphabetic order. + +`importance` sorts rooms by the following criteria (in descending order +of priority): + +1. connected rooms before unconnected rooms +2. rooms with unread messages before rooms without +3. alphabetic order diff --git a/README.md b/README.md index 4659f61..e5ee2c8 100644 --- a/README.md +++ b/README.md @@ -5,7 +5,7 @@ real-time chat platform. ![A very meta screenshot](screenshot.png) -It runs on Linux, Windows and macOS. +It runs on Linux, Windows, and macOS. ## Using cove @@ -18,6 +18,15 @@ things in) won't automatically shrink. If it takes up too much space, try running `cove gc` and waiting for it to finish. This isn't done automatically because it can take quite a while. +## Configuring cove + +A complete list of config options is available in the [CONFIG.md](CONFIG.md) +file or via `cove help-config`. + +When launched, cove prints the location it is loading its config file from. To +configure cove, create a config file at that location. This location can be +changed via the `--config` command line option. + ## Installation At this point, cove is not available via any package manager. @@ -75,99 +84,3 @@ in the full version you want to install: ```bash $ cargo install --force --git https://github.com/Garmelon/cove --tag v0.1.0 ``` - -## Config file - -Cove's config file uses the [TOML](https://toml.io/) format. - -When launched, cove prints the location it is loading its config file from. To -configure cove, create a config file at that location. This location can be -changed via the `--config` command line option. - -The following is a complete list of available options. If a command line option -with the same purpose exists, it takes precedence over the option specified in -the config file. - -### `data_dir` - -**Type:** String (representing path) -**Default:** Platform dependent - -The directory that cove stores its data in when not running in ephemeral mode. - -Relative paths are interpreted relative to the user's home directory. - -See also the `--data-dir` command line option. - -### `ephemeral` - -**Type:** Boolean -**Default:** `false` - -Whether to start in ephemeral mode. - -In ephemeral mode, cove doesn't store any data. It completely ignores any -options related to the data dir. - -See also the `--ephemeral` command line option. - -### `offline` - -**Type:** Boolean -**Default:** `false` - -Whether to start in offline mode. - -In offline mode, cove won't automatically join rooms marked via the `autojoin` -option on startup. You can still join those rooms manually by pressing `a` in -the rooms list. - -See also the `--offline` command line option. - -### `rooms_sort_order` - -**Type:** String, one of `alphabetic`, `importance` -**Default:** `alphabetic` - -Initial sort order of rooms list. - -`alphabetic` sorts rooms in alphabetic order. - -`importance` sorts rooms by the following criteria (in descending order of -priority): - -1. connected rooms before unconnected rooms -2. rooms with unread messages before rooms without -3. alphabetic order - -### `euph.rooms..autojoin` - -**Type:** Boolean -**Default:** `false` - -Whether to automatically join this room on startup. - -### `euph.rooms..username` - -**Type:** String -**Default:** Not set - -If set, cove will set this username upon joining if there is no username -associated with the current session. - -### `euph.rooms..force_username` - -**Type:** Boolean -**Default:** `false` - -If `euph.rooms..username` is set, this will force cove to set the username -even if there is already a different username associated with the current -session. - -### `euph.rooms..password` - -**Type:** String -**Default:** Not set - -If set, cove will try once to use this password to authenticate, should the room -be password-protected.