1
1
mirror of https://github.com/wez/wezterm.git synced 2024-12-26 14:54:16 +03:00
Commit Graph

1182 Commits

Author SHA1 Message Date
Wez Furlong
8bad7dee58 wezterm.format: accept "ResetAttributes" to reset attributes 2022-07-09 16:19:30 -07:00
Wez Furlong
af5938d414 gui: fix padding color when there are splits
refs: https://github.com/wez/wezterm/issues/2210
2022-07-09 14:53:21 -07:00
Wez Furlong
39e727db58 tab bar: invalidate on resize to avoid gaps on the RHS 2022-07-09 10:45:43 -07:00
Wez Furlong
268ff59a9f docs: fixup changelog for https://github.com/wez/wezterm/issues/1620
I copied and pasted the wrong issue into 5913783d1e
2022-07-09 10:32:34 -07:00
Wez Furlong
5913783d1e wayland: fix transparent gap under tab bar
Not sure why this only really showed up with Wayland, because the
issue was that the computed tab bar height ended up being 1 or 2
pixels shorter than the area we had allotted.

This commit resolves it by forcing the height to match, and
then aligning the content to the bottom of that region to avoid
having an undesirable line under the tab.

refs: #1256
2022-07-09 10:29:46 -07:00
Wez Furlong
e2b748a0d4 wayland: initial support for zwp_text_input_v3 / IME
refs: #1772
2022-07-09 09:44:08 -07:00
Wez Furlong
520a8e306f invalid tab bar on scaling changes
refs: #2208
2022-07-09 07:17:03 -07:00
Wez Furlong
dd27e790c8 docs: add wezterm.gui.screens() to changelog 2022-07-09 06:54:55 -07:00
Wez Furlong
29b7524b9d docs: wrap some text 2022-07-08 23:37:28 -07:00
Wez Furlong
95229d3334 add docs for ExecDomain
refs: https://github.com/wez/wezterm/issues/1776
2022-07-08 23:25:42 -07:00
Wez Furlong
b103cc3ebb docs: fix typo and copy pasta 2022-07-08 22:12:16 -07:00
Wez Furlong
c97e8e564e fonts: allow setting assume_emoji_presentation per font
This allows the user to specify what happens if they have an emoji
font that doesn't match our built-in heuristics.
2022-07-08 21:14:16 -07:00
Wez Furlong
f9cfde3b98 docs: changelog for https://github.com/wez/wezterm/pull/2233 2022-07-08 20:51:56 -07:00
Wez Furlong
93c5a9b3fb docs: note about wezterm.format in launcher menu labels 2022-07-08 20:26:01 -07:00
Wez Furlong
d78cc6edb8 new: exec_domains
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
2022-07-07 16:38:14 -07:00
Wez Furlong
6485fae873 docs: window:maximize(), window:restore() and gui-startup 2022-07-07 06:35:15 -07:00
Wez Furlong
dbc2c85361 add window:toggle_fullscreen()
You can start a window in full screen mode using something like:

```lua
local wezterm = require 'wezterm'

local mux = wezterm.mux

wezterm.on("gui-startup", function()
  local tab, pane, window = mux.spawn_window{}
  window:gui_window():toggle_fullscreen()
end)

return {
}
```

refs: #177
refs: #284
2022-07-06 23:57:32 -07:00
Wez Furlong
3e01d44ece add window:set_position window:set_inner_size 2022-07-06 18:49:39 -07:00
Wez Furlong
61fb3dffe4 docs: window:gui_window, wezterm.gui.screens() and friends 2022-07-06 16:33:47 -07:00
Wez Furlong
df596da4ea docs: add mux_window:gui_window() 2022-07-06 16:10:17 -07:00
Wez Furlong
30a2223524 docs: split MuxWindow.md into multiple pages 2022-07-06 16:02:29 -07:00
Wez Furlong
d130164fb9 docs: fix typo and copypasta in window:copy_to_clipboard 2022-07-06 15:15:55 -07:00
Wez Furlong
dc9e6ad3ef docs: changelog for #2225 #2226 2022-07-05 22:13:43 -07:00
Wez Furlong
00fb0c58f3 Add window:get_selection_escapes_for_pane()
This method extracts the selected text in a form that includes
escape sequences.

refs: https://github.com/wez/wezterm/issues/2223
2022-07-05 22:01:16 -07:00
Wez Furlong
741cd37bd4 lua: add window:copy_to_clipboard method
refs: https://github.com/wez/wezterm/issues/2223
2022-07-05 21:59:00 -07:00
Wez Furlong
21fa4b7407 docs: remove "bad" rgb spec from docs
`#XYZ` is parsed by `XParseColor` and it requires that the
hex nybbles are present in multiples of 3, and it has different
padding rules for under- or over-specified nybbles.

refs: https://github.com/wez/wezterm/issues/2209
2022-07-05 08:36:38 -07:00
Wez Furlong
7d77316fd7 docs: changelog for https://github.com/wez/wezterm/issues/2204 2022-07-05 06:59:33 -07:00
Wez Furlong
c667224674 ci: drop support for building on debian 9
The toolchain has problems compiling harfbuzz 4.4.1 and I don't feel
like troubleshooting it.
2022-07-04 15:44:44 -07:00
Wez Furlong
8fb1c091ae update harfbuzz to 4.4.1 2022-07-04 15:26:42 -07:00
Wez Furlong
51406cfe6f docs: clarify when set_environment_variables is consulted
refs: #2211
2022-07-04 06:39:08 -07:00
Okan Esen
8a03782778 Fix documentation typo in AdjustPaneSize 2022-07-01 07:20:52 -07:00
Wez Furlong
1e85e79fc7 keys: add ActivateKeyTable::until_unknown=true
This will implicitly pop key table entries if they don't match keys.

refs: https://github.com/wez/wezterm/issues/2178
2022-06-30 07:14:22 -07:00
Wez Furlong
556a6b855a docs: tweak changelog text 2022-06-29 16:15:02 -07:00
Wez Furlong
ad42f1d7c4 lua: we now watch require'd files in addition to the main config file
Finally got around to https://github.com/wez/wezterm/discussions/914#discussioncomment-960983
2022-06-29 15:13:37 -07:00
Wez Furlong
eb50c68228 config: allow reloading after config errors detected
This commit adjusts the config loading code so that we can return
information about the paths the should be watched for a subsequent
reload even in the more common error cases.

refs: #1174
2022-06-29 14:34:28 -07:00
Wez Furlong
de564f9018 docs: changelog for https://github.com/wez/wezterm/issues/2198 2022-06-29 06:06:32 -07:00
Wez Furlong
a10dc25e0c fix colors.indexed in toml file
refs: https://github.com/wez/wezterm/issues/2197
2022-06-28 06:22:31 -07:00
Wez Furlong
f1c53495e7 lua: add window:mux_window() and pane:mux_window() methods
These allow converting the gui versions of these objects
to the mux versions.

refs: https://github.com/wez/wezterm/issues/225
2022-06-27 20:28:26 -07:00
Wez Furlong
fb1a659c4c fix wezterm connect sshdomain when password auth is needed
We need the mux window builder to notify in order for the ConnectionUI
to show up, but we wouldn't trigger the notify (which happens on drop)
until we'd awaited the connection ui completing password auth.

Force it to drop earlier to unblock.

refs: https://github.com/wez/wezterm/issues/2194
2022-06-27 16:49:05 -07:00
Martijn
7adb5ace1c Fix install docs for Ubuntu 22
The asset linked to for Ubuntu 22 is the Ubuntu 20 package. This commit fixes that by refering to the correct Ubuntu 22 asset instead.
2022-06-27 14:44:14 -07:00
Wez Furlong
2e9fe87e34 lua: expand mux api
Allow iterating all windows at the mux layer.
windows allow iterating tabs.
Tabs allow iterating panes.

Versions of iteration that report additional information (like index,
active and positioning) are also added.

Panes can now reference their containing tab and window objects.
Tabs can now reference their containing window object.

refs: https://github.com/wez/wezterm/issues/1598 (sort of)
refs: https://github.com/wez/wezterm/issues/225
2022-06-27 13:19:03 -07:00
Wez Furlong
a282d07776 mux: add titles to mux window and tab objects
Previously, the mux layer had no internal understanding of titles other
than the Pane::get_title method to return state from a pane.

Users have asked for ways to explicitly set titles on windows and tabs,
so this commit is a step towards that.

The mux window and tab objects now store a title string.

The terminal layer now emits Alert::WindowTitleChanged when the window
title is changed via eg: OSC 0 or OSC 2.

The mux layer will respond to Alert::WindowTitleChanged by resolving the
window that corresponds to the source pane and amending its title.

The MuxWindow and MuxTab objects now provide accessor methods for the
title.

TabInformation (as used by format-tab-title and format-window-title) now
exposes the underlying window_id as well as tab_title and window_title.

The tab title can be changed via the lua MuxTab type, but there is not
currently an escape sequence associated with this.

The defaults for format-tab-title and format-window-title don't
currently consider these new title strings.

refs: https://github.com/wez/wezterm/issues/1598
2022-06-27 12:01:40 -07:00
Wez Furlong
9076bb312b docs: https://github.com/wez/wezterm/issues/2185 2022-06-26 17:05:02 -07:00
Wez Furlong
f2627bc39e ActivateKeyTable replace_current wasn't actually optional
The issue here was that the from_dynamic impl derived for a struct
that was inlined in an enum didn't respect the the field properties
defined for the struct.

Refactor to reuse the same field_info helper used by the struct
code.

Update docs to clarify what the default value actually is.

refs: https://github.com/wez/wezterm/issues/2179
2022-06-25 19:38:39 -07:00
Benoit de Chezelles
cf4d5de854 docs: Use new wezterm.action.Action syntax in rest of the docs 2022-06-25 18:51:55 -07:00
Benoit de Chezelles
5638abaa98 docs: Improve clarity of wezterm.on wrt. callback params and example
Co-authored-by: Wez Furlong <wez@wezfurlong.org>
2022-06-25 11:52:57 -07:00
Wez Furlong
1f9f5c9fc0 docs: update keyassignment reference for more ergnomic wezterm.action syntax 2022-06-25 06:58:10 -07:00
Wez Furlong
3556c15f35 docs: wezterm.action ergnomics
I forgot about this! This is in the most recent release.

refs: https://github.com/wez/wezterm/issues/1150
2022-06-25 06:10:41 -07:00
Wez Furlong
035ade89b7 docs: update for newly available stable binary downloads 2022-06-24 15:11:42 -07:00
Wez Furlong
fc14ac87fc docs: update for release 2022-06-24 14:59:19 -07:00