atuin/docs/config.md

163 lines
3.9 KiB
Markdown
Raw Normal View History

# Config
Atuin maintains two configuration files, stored in `~/.config/atuin/`. We store
data in `~/.local/share/atuin` (unless overridden by XDG\_\*).
You can also change the path to the configuration directory by setting
`ATUIN_CONFIG_DIR`. For example
```
export ATUIN_CONFIG_DIR = /home/ellie/.atuin
```
## Client config
```
~/.config/atuin/config.toml
```
The client runs on a user's machine, and unless you're running a server, this
is what you care about.
See [config.toml](../atuin-client/config.toml) for an example
### `dialect`
This configures how the [stats](stats.md) command parses dates. It has two
possible values
```
dialect = "uk"
```
or
```
dialect = "us"
```
and defaults to "us".
### `auto_sync`
Configures whether or not to automatically sync, when logged in. Defaults to
true
```
auto_sync = true/false
```
### `sync_address`
The address of the server to sync with! Defaults to `https://api.atuin.sh`.
```
sync_address = "https://api.atuin.sh"
```
### `sync_frequency`
How often to automatically sync with the server. This can be given in a
"human-readable" format. For example, `10s`, `20m`, `1h`, etc. Defaults to `1h`.
If set to `0`, Atuin will sync after every command. Some servers may potentially
rate limit, which won't cause any issues.
```
sync_frequency = "1h"
```
### `db_path`
The path to the Atuin SQlite database. Defaults to
`~/.local/share/atuin/history.db`.
```
db_path = "~/.history.db"
```
### `key_path`
The path to the Atuin encryption key. Defaults to
`~/.local/share/atuin/key`.
```
key = "~/.atuin-key"
```
### `session_path`
The path to the Atuin server session file. Defaults to
`~/.local/share/atuin/session`. This is essentially just an API token
```
key = "~/.atuin-session"
```
### `search_mode`
Which search mode to use. Atuin supports "prefix", fulltext and "fuzzy" search
modes. The prefix searches for "query\*", fulltext "\*query\*", and fuzzy applies
the search syntax [described below](#fuzzy-search-syntax).
Defaults to "prefix"
### `style`
Which style to use. Possible values: `auto`, `full` and `compact`.
- `compact`:
![image](https://user-images.githubusercontent.com/1710904/161623659-4fec047f-ea4b-471c-9581-861d2eb701a9.png)
- `full`:
![image](https://user-images.githubusercontent.com/1710904/161623547-42afbfa7-a3ef-4820-bacd-fcaf1e324969.png)
Defaults to `auto`.
### `filter_mode`
The default filter to use when searching
| Column1 | Column2 |
|--------------- | --------------- |
| global (default) | Search history from all hosts, all sessions, all directories |
| host | Search history just from this host |
| session | Search history just from the current session |
| directory | Search history just from the current directory|
Filter modes can still be toggled via ctrl-r
```
search_mode = "fulltext"
```
#### `fuzzy` search syntax
The "fuzzy" search syntax is based on the
[fzf search syntax](https://github.com/junegunn/fzf#search-syntax).
| Token | Match type | Description |
| --------- | -------------------------- | ------------------------------------ |
| `sbtrkt` | fuzzy-match | Items that match `sbtrkt` |
| `'wild` | exact-match (quoted) | Items that include `wild` |
| `^music` | prefix-exact-match | Items that start with `music` |
| `.mp3$` | suffix-exact-match | Items that end with `.mp3` |
| `!fire` | inverse-exact-match | Items that do not include `fire` |
| `!^music` | inverse-prefix-exact-match | Items that do not start with `music` |
| `!.mp3$` | inverse-suffix-exact-match | Items that do not end with `.mp3` |
A single bar character term acts as an OR operator. For example, the following
query matches entries that start with `core` and end with either `go`, `rb`,
or `py`.
```
^core go$ | rb$ | py$
```
## Server config
`// TODO`