mirror of
https://github.com/wez/wezterm.git
synced 2024-12-26 23:04:49 +03:00
d78cc6edb8
An ExecDomain is a variation on WslDomain with the key difference being that you can control how to map the command that would be executed. The idea is that the user can define eg: a domain for a docker container, or a domain that chooses to run every command in its own cgroup. The example below shows a really crappy implementation as a demonstration: ``` local wezterm = require 'wezterm' return { exec_domains = { -- Commands executed in the woot domain have "WOOT" echoed -- first and are then run via bash. -- `cmd` is a SpawnCommand wezterm.exec_domain("woot", function(cmd) if cmd.args then cmd.args = { "bash", "-c", "echo WOOT && " .. wezterm.shell_join_args(cmd.args) } end -- you must return the SpawnCommand that will be run return cmd end), }, default_domain = "woot", } ``` This commit unfortunately does more than should go into a single commit, but I'm a bit too lazy to wrangle splitting it up. * Reverts the nil/null stuff from #2177 and makes the `ExtendSelectionToMouseCursor` parameter mandatory to dodge a whole load of urgh around nil in table values. That is necessary because SpawnCommand uses optional fields and the userdata proxy was making that a PITA. * Adds some shell quoting helper functions * Adds ExecDomain itself, which is really just a way to to run a callback to fixup the command that will be run. That command is converted to a SpawnCommand for the callback to process in lua and return an adjusted version of it, then converted back to a command builder for execution. refs: https://github.com/wez/wezterm/issues/1776 |
||
---|---|---|
.. | ||
examples | ||
src | ||
Cargo.toml |