# 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 ``` ### `update_check` Configures whether or not to automatically check for updates. Defaults to true. ``` update_check = 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" ``` ### `exit_mode` What to do when the escape key is pressed when searching | Value | Behaviour | |------------------------- | --------------- | | return-original (default) | Set the command-line to the value it had before starting search | | return-query | Set the command-line to the search query you have entered so far | Pressing ctrl+c or ctrl+d will always return the original command-line value. ``` exit_mode = "return-query" ``` #### `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`