mirror of
https://github.com/alacritty/alacritty.git
synced 2024-11-18 13:55:23 -05:00
Add TERM config entry
This commit is contained in:
parent
24c32dc400
commit
c49d4a9365
4 changed files with 39 additions and 1 deletions
|
@ -1,4 +1,17 @@
|
||||||
# Configuration for Alacritty, the GPU enhanced terminal emulator
|
# Configuration for Alacritty, the GPU enhanced terminal emulator
|
||||||
|
|
||||||
|
|
||||||
|
# Any items in the `env` entry below will be added as
|
||||||
|
# environment variables. Some entries may override variables
|
||||||
|
# set by alacritty it self.
|
||||||
|
env:
|
||||||
|
# TERM env customization. Default is xterm-256color
|
||||||
|
# Note: the default TERM value `xterm-256color` does not
|
||||||
|
# specify all features alacritty supports. This does pose
|
||||||
|
# a few issues with programs relying on terminfo and the
|
||||||
|
# `tput` command
|
||||||
|
TERM: xterm-256color
|
||||||
|
|
||||||
# Window dimensions in character columns and lines
|
# Window dimensions in character columns and lines
|
||||||
# (changes require restart)
|
# (changes require restart)
|
||||||
dimensions:
|
dimensions:
|
||||||
|
|
|
@ -1,4 +1,16 @@
|
||||||
# Configuration for Alacritty, the GPU enhanced terminal emulator
|
# Configuration for Alacritty, the GPU enhanced terminal emulator
|
||||||
|
|
||||||
|
# Any items in the `env` entry below will be added as
|
||||||
|
# environment variables. Some entries may override variables
|
||||||
|
# set by alacritty it self.
|
||||||
|
env:
|
||||||
|
# TERM env customization. Default is xterm-256color
|
||||||
|
# Note: the default TERM value `xterm-256color` does not
|
||||||
|
# specify all features alacritty supports. This does pose
|
||||||
|
# a few issues with programs relying on terminfo and the
|
||||||
|
# `tput` command
|
||||||
|
TERM: xterm-256color
|
||||||
|
|
||||||
# Window dimensions in character columns and lines
|
# Window dimensions in character columns and lines
|
||||||
# (changes require restart)
|
# (changes require restart)
|
||||||
dimensions:
|
dimensions:
|
||||||
|
|
|
@ -11,6 +11,7 @@ use std::path::{Path, PathBuf};
|
||||||
use std::str::FromStr;
|
use std::str::FromStr;
|
||||||
use std::sync::mpsc;
|
use std::sync::mpsc;
|
||||||
use std::time::Duration;
|
use std::time::Duration;
|
||||||
|
use std::collections::HashMap;
|
||||||
|
|
||||||
use ::Rgb;
|
use ::Rgb;
|
||||||
use font::Size;
|
use font::Size;
|
||||||
|
@ -171,6 +172,10 @@ impl<'a> Shell<'a> {
|
||||||
/// Top-level config type
|
/// Top-level config type
|
||||||
#[derive(Debug, Deserialize)]
|
#[derive(Debug, Deserialize)]
|
||||||
pub struct Config {
|
pub struct Config {
|
||||||
|
/// TERM env variable
|
||||||
|
#[serde(default)]
|
||||||
|
env: HashMap<String, String>,
|
||||||
|
|
||||||
/// Initial dimensions
|
/// Initial dimensions
|
||||||
#[serde(default)]
|
#[serde(default)]
|
||||||
dimensions: Dimensions,
|
dimensions: Dimensions,
|
||||||
|
@ -267,6 +272,7 @@ impl Default for Config {
|
||||||
shell: None,
|
shell: None,
|
||||||
config_path: None,
|
config_path: None,
|
||||||
visual_bell: Default::default(),
|
visual_bell: Default::default(),
|
||||||
|
env: Default::default(),
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -998,6 +1004,10 @@ impl Config {
|
||||||
self.shell.as_ref()
|
self.shell.as_ref()
|
||||||
}
|
}
|
||||||
|
|
||||||
|
pub fn env(&self) -> &HashMap<String, String> {
|
||||||
|
&self.env
|
||||||
|
}
|
||||||
|
|
||||||
fn load_from<P: Into<PathBuf>>(path: P) -> Result<Config> {
|
fn load_from<P: Into<PathBuf>>(path: P) -> Result<Config> {
|
||||||
let path = path.into();
|
let path = path.into();
|
||||||
let raw = Config::read_file(path.as_path())?;
|
let raw = Config::read_file(path.as_path())?;
|
||||||
|
|
|
@ -207,7 +207,10 @@ pub fn new<T: ToWinsize>(config: &Config, options: &Options, size: T) -> Pty {
|
||||||
builder.env("USER", pw.name);
|
builder.env("USER", pw.name);
|
||||||
builder.env("SHELL", shell.program());
|
builder.env("SHELL", shell.program());
|
||||||
builder.env("HOME", pw.dir);
|
builder.env("HOME", pw.dir);
|
||||||
builder.env("TERM", "xterm-256color"); // sigh
|
builder.env("TERM", "xterm-256color"); // default term until we can supply our own
|
||||||
|
for (key, value) in config.env().iter() {
|
||||||
|
builder.env(key, value);
|
||||||
|
}
|
||||||
|
|
||||||
builder.before_exec(move || {
|
builder.before_exec(move || {
|
||||||
// Create a new process group
|
// Create a new process group
|
||||||
|
|
Loading…
Reference in a new issue