1. Use a line height that's `comfortable` for reading, 1.618. (default)
```json
{
"terminal": {
"line_height": "comfortable"
}
}
```
2. Use a `standard` line height, 1.3. This option is useful for TUIs, particularly if they use box characters
```json
{
"terminal": {
"line_height": "standard"
}
}
```
3. Use a custom line height.
```json
{
"terminal": {
"line_height": {
"custom": 2
}
}
}
```
### Terminal: Option As Meta
- Description: Re-interprets the option keys to act like a 'meta' key, like in Emacs.
- Setting: `option_as_meta`
- Default: `false`
**Options**
`boolean` values
```json
{
"terminal": {
"option_as_meta": true
}
}
```
### Terminal: Shell
- Description: What shell to use when launching the terminal.
- Setting: `shell`
- Default: `system`
**Options**
1. Use the system's default terminal configuration (usually the `/etc/passwd` file).
```json
{
"terminal": {
"shell": "system"
}
}
```
2. A program to launch:
```json
{
"terminal": {
"shell": {
"program": "sh"
}
}
}
```
3. A program with arguments:
```json
{
"terminal": {
"shell": {
"with_arguments": {
"program": "/bin/bash",
"args": ["--login"]
}
}
}
}
```
## Terminal: Detect Virtual Environments {#terminal-detect_venv}
- Description: Activate the [Python Virtual Environment](https://docs.python.org/3/library/venv.html), if one is found, in the terminal's working directory (as resolved by the working_directory and automatically activating the virtual environment.
- Setting: `detect_venv`
- Default:
```json
{
"terminal": {
"detect_venv": {
"on": {
// Default directories to search for virtual environments, relative
// to the current working directory. We recommend overriding this
// in your project's settings, rather than globally.
"directories": [".env", "env", ".venv", "venv"],
// Can also be `csh`, `fish`, and `nushell`
"activate_script": "default"
}
}
}
}
```
Disable with:
```json
{
"terminal": {
"detect_venv": "off"
}
}
```
## Terminal: Toolbar
- Description: Whether or not to show various elements in the terminal toolbar.
- Setting: `toolbar`
- Default:
```json
{
"terminal": {
"toolbar": {
"breadcrumbs": true
}
}
}
```
**Options**
At the moment, only the `breadcrumbs` option is available, it controls displaying of the terminal title that can be changed via `PROMPT_COMMAND`.
If the terminal title is empty, the breadcrumbs won't be shown.
The shell running in the terminal needs to be configured to emit the title.
Example command to set the title: `echo -e "\e]2;New Title\007";`
### Terminal: Button
- Description: Control to show or hide the terminal button in the status bar
- Setting: `button`
- Default: `true`
**Options**
`boolean` values
```json
{
"terminal": {
"button": false
}
}
```
### Terminal: Working Directory
- Description: What working directory to use when launching the terminal.
- Setting: `working_directory`
- Default: `"current_project_directory"`
**Options**
1. Use the current file's project directory. Will Fallback to the first project directory strategy if unsuccessful
```json
{
"terminal": {
"working_directory": "current_project_directory"
}
}
```
2. Use the first project in this workspace's directory. Will fallback to using this platform's home directory.
```json
{
"terminal": {
"working_directory": "first_project_directory"
}
}
```
3. Always use this platform's home directory (if we can find it)
```json
{
"terminal": {
"working_directory": "always_home"
}
}
```
4. Always use a specific directory. This value will be shell expanded. If this path is not a valid directory the terminal will default to this platform's home directory.
```json
{
"terminal": {
"working_directory": {
"always": {
"directory": "~/zed/projects/"
}
}
}
}
```
## Theme