1
1
mirror of https://github.com/wez/wezterm.git synced 2024-12-27 15:37:29 +03:00
wezterm/config/Cargo.toml

50 lines
1.4 KiB
TOML
Raw Normal View History

2020-10-02 21:50:50 +03:00
[package]
name = "config"
version = "0.1.0"
authors = ["Wez Furlong <wez@wezfurlong.org>"]
edition = "2018"
build = "build.rs"
# See more keys and their definitions at https://doc.rust-lang.org/cargo/reference/manifest.html
[dev-dependencies]
pretty_env_logger = "0.4"
2020-10-02 21:50:50 +03:00
[dependencies]
anyhow = "1.0"
battery = "0.7"
2021-08-16 04:21:17 +03:00
bitflags = "1.3"
bstr = "0.2"
chrono = {version="0.4", features=["unstable-locales"]}
2021-09-06 09:27:01 +03:00
colorgrad = "0.5"
dirs-next = "2.0"
enum-display-derive = "0.1"
filenamegen = "0.2"
hostname = "0.3"
2020-10-02 21:50:50 +03:00
lazy_static = "1.4"
2020-10-03 06:51:50 +03:00
libc = "0.2"
2020-10-02 21:50:50 +03:00
log = "0.4"
luahelper = { path = "../luahelper" }
mlua = {version="0.7", features=["vendored", "lua54", "async", "send"]}
2020-10-02 21:50:50 +03:00
# file change notification
notify = "4.0"
open = "2.0"
ordered-float = { version = "2.10", features = ["serde"] }
2020-10-02 21:50:50 +03:00
portable-pty = { path = "../pty", features = ["serde_support"]}
promise = { path = "../promise" }
2020-10-02 21:50:50 +03:00
serde = {version="1.0", features = ["rc", "derive"]}
add window:set_config_overrides lua method This commit expands on the prior commits to introduce the concept of per-window configuration overrides. Each TermWindow maintains json compatible object value holding a map of config key -> config value overrides. When the window notices that the config has changed, the config file is loaded, the CLI overrides (if any) are applied, and then finally the per-window overrides, before attempting to coerce the resultant lua value into a Config object. This mechanism has some important constraints: * Only data can be assigned to the overrides. Closures or special lua userdata object handles are not permitted. This is because the lifetime of those objects is tied to the lua context in which they were parsed, which doesn't really exist in the context of the window. * Only simple keys are supported for the per-window overrides. That means that trying to override a very specific field of a deeply structured value (eg: something like `font_rules[1].italic = false` isn't able to be expressed in this scheme. Instead, you would need to assign the entire `font_rules` key. I don't anticipate this being a common desire at this time; if more advance manipulations are required, then I have some thoughts on an event where arbitrary lua modifications can be applied. The implementation details are fairly straight-forward, but in testing the two examplary use cases I noticed that some hangovers from supporting overrides for a couple of font related options meant that the window-specific config wasn't being honored. I've removed the code that handled those overrides in favor of the newer more general CLI option override support, and threaded the config through to the font code. closes: #469 closes: #329
2021-02-28 01:53:19 +03:00
serde_json = "1.0"
smol = "1.2"
terminfo = "0.7"
termwiz = { path = "../termwiz", features=["use_serde"] }
2020-10-05 10:06:01 +03:00
toml = "0.5"
umask = { path = "../umask" }
unicode-segmentation = "1.8"
bidi: tag Line with bidi mode This commit refines bidi property handling: * experimental_bidi has been split into two new configuration settings; `bidi_enabled` (which controls whether the terminal performs implicit bidi processing) and `bidi_direction` which specifies the base direction and whether auto detection is enabled. * The `Line` type can now store those bidi properties (they are actually split across 3 bits representing enabled, auto-detection and direction) * The terminal now has a concept of active bidi properties and default bidi properties * The default properties are pulled from the wezterm configuration * active bidi properties are potentially set via escape sequences, BDSM (which sets bidi_enabled) and SCP (which sets bidi_direction). We don't support the 2501 temporary dec private mode suggested by the BIDI recommendation doc at this time. * When creating new `Line`'s or clearing from the start of a `Line`, the effective bidi properties are computed (from the active props, falling back to default propr) and applied to the `Line`. * When rendering the line, we now look at its bidi properties instead of just the global config. The default bidi properties are `bidi_enabled: false` and `bidi_direction: LeftToRight` which corresponds to the typical bidi-unaware mode of most terminals. It is possible to live reload the config to change the effective defaults, but note that they apply, by design, to new lines being processed through the terminal. That means existing output is left unaffected by a config reload, but subsequently printed lines will respect it. Pressing CTRL-L or otherwise contriving to have the running application refresh its display should cause the refreshed display to update and apply the new bidi mode. refs: #784
2022-01-30 19:22:17 +03:00
wezterm-bidi = { path = "../bidi", features=["use_serde"] }
wezterm-input-types = { path = "../wezterm-input-types" }
wezterm-ssh = { path = "../wezterm-ssh" }
2020-10-02 21:50:50 +03:00
wezterm-term = { path = "../term", features=["use_serde"] }
2020-10-05 21:57:08 +03:00
[target."cfg(windows)".dependencies]
winapi = { version = "0.3", features = ["winuser"]}