mirror of
https://github.com/wez/wezterm.git
synced 2024-12-26 14:54:16 +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
545 B
545 B
ExtendSelectionToMouseCursor
Extends the current text selection to the current mouse cursor position.
The mode argument can be one of Cell
, Word
or Line
to control
the scope of the selection.
Since: 20220624-141144-bd1b7c5d
The mode argument can also be "Block"
to enable a rectangular block selection.
local wezterm = require "wezterm"
return {
mouse_bindings = {
{
event={Up={streak=1, button="Left"}},
mods="SHIFT",
action=wezterm.action.ExtendSelectionToMouseCursor("Word"),
},
}
}