# General Config

### General

You can customize how Walker behaves and interacts by adjusting it's configuration to your liking.\
\
Default path for configuration file is `~/.config/walker/config.toml`.

Have a look at the default configuration for a reference: <https://github.com/abenz1267/walker/blob/master/resources/config.toml>

### Options

| key                         | type    | default   | description                                                                                                          |
| --------------------------- | ------- | --------- | -------------------------------------------------------------------------------------------------------------------- |
| as\_window                  | boolean | false     | launch walker as a regular window instead of layer shell application                                                 |
| force\_keyboard\_focus      | boolean | false     | force keyboard focus to stay in walker                                                                               |
| close\_when\_open           | boolean | true      | invoking walker while it's already open will close it                                                                |
| click\_to\_close            | boolean | true      | clicking outside of the main walker box will close it                                                                |
| selection\_wrap             | boolean | false     | will wrap the selection                                                                                              |
| global\_argument\_delimiter | string  | `#`       | used to delimit arguments, f.e. `query#arg` means `arg` will be send as an argument to Elephant                      |
| exact\_search\_prefix       | string  | `'`       | can be used to tell Elephant to use exact search instead of fuzzy search                                             |
| theme                       | string  | `default` | theme to use                                                                                                         |
| disable\_mouse              | boolean | false     | disables mouse-interaction with Walker, **except** for drag\&drop from preview pane                                  |
| hide\_quick\_activation     | boolean | false     | hide the quick activation hints globally                                                                             |
| hide\_action\_hints         | boolean | false     | hide the actions keybind hints                                                                                       |
| hide\_return\_action        | boolean | false     | hide actions that are bound to Return                                                                                |
| page\_jump\_items           | number  | 10        | number of items to skip with Page Up/Down                                                                            |
| single\_click\_activation   | boolean | true      | activate items with a single click                                                                                   |
| debug                       | boolean | false     | enables debug printing in order to print various info, f.e. available/implemented actions, currently pressed keybind |
| resume\_last\_query         | boolean | false     | open walker with the last query in place                                                                             |
| actions\_as\_menu           | boolean | false     | show actions in a menu                                                                                               |
| autoplay\_videos            | boolean | false     | auto-play video previews                                                                                             |
| shell.layer                 | string  | "overlay" | layershell layer                                                                                                     |
| shell.anchor\_top           | boolean | false     | anchor for window                                                                                                    |
| shell.anchor\_bottom        | boolean | false     | anchor for window                                                                                                    |
| shell.anchor\_left          | boolean | false     | anchor for window                                                                                                    |
| shell.anchor\_right         | boolean | false     | anchor for window                                                                                                    |

### List Columns

You can define how many columns the list for specific providers has without creating a new theme. F.e.

```toml
[columns]
"symbols" = 3
```

### Placeholders

Placeholders for the input or empty list can be configured as such:

```
[placeholders]
"default" = { input = "Search", list = "No Results" }
"desktopapplications" = { input = "Start", list = "No Application" }
```

If the input placeholder is prefixed with `cmd:`, it will run the command and use the output as the placeholder.

### Providers

#### Global Config

| key                  | type                            | default                                                           | description                                                                                     |
| -------------------- | ------------------------------- | ----------------------------------------------------------------- | ----------------------------------------------------------------------------------------------- |
| `default`            | string list                     | `["desktopapplications", "calc", "runner", "menus", "websearch"]` | all providers that should be queried by default                                                 |
| `empty`              | string list                     | `["desktopapplications"]`                                         | all providers that should be queried when query is empty                                        |
| `ignore_preview`     | string list                     | `[]`                                                              | all providers that should not display a preview.                                                |
| `max_results`        | number                          | `50`                                                              | global max amount of results                                                                    |
| `argument_delimiter` | map, key: string, value: string | \`\`                                                              | used to delimit arguments, f.e. `query#arg` means `arg` will be send as an argument to Elephant |

#### Sets

Walker allows you to configure "sets" that you can launch, overwriting the configuration from above. Example:

```
[providers.sets.omarchy]
default = [
  "menus:omarchy",
  "menus:omarchylearn",
  "menus:omarchytrigger",
  "menus:omarchycapture",
]
empty = ["menus:omarchy"]
```

Running `walker -s omarchy` launches Walker with these specified providers. `default` sets the providers that will be queried, while `empty` defines which ones will display entries, without searching.

#### Emergency Mode

Walker allows you to define static "emergency entries" in case Elephant isn't connected. Example:

```toml
[[emergencies]]
text = "Firefox"
command = "firefox-developer-edition"

[[emergencies]]
text = "uuctl"
command = "uuctl"
```

#### Prefixes

Prefixes can be used to explicitly target a provider, f.e.

```
[[providers.prefixes]]
prefix = ">"
provider = "runner"
```

will allow you to explicitly query the `runner` provider.

#### Amount of displayed results

You can adjust the amount of displayed results per provider, f.e.

```
[providers.max_results_provider] # define max results per provider in here
desktopapplications = 10
```

will show at most 10 entries for the `desktopapplications` provider.

#### Provider-Specific Configuration

**Clipboard**

| key           | type   | default            | description                 |
| ------------- | ------ | ------------------ | --------------------------- |
| `time_format` | string | `"%d.%m. - %H:%M"` | time format of the sub-text |

### Global Keybinds

The following global keybinds can be configured:

* `close`
* `next`
* `left`
* `right`
* `up`
* `down`
* `previous`
* `toggle_exact`
* `resume_last_query`
* `quick_activate`

You can define multiple binds per actions, such as:

```
next = ["Down", "ctrl n", "ctrl j"]
```


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://benz.gitbook.io/walker/customization/general-config.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
