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

2358 Commits

Author SHA1 Message Date
Wez Furlong
b00f383f2b Suppress logging about CSI 8 Y ; X t
neovim will try to force the window to resize after suspend/resume.
No other terminal allows this today, so rather than log it as an
unhandled event, explicitly ignore it.
2020-05-16 09:56:43 -07:00
Wez Furlong
a3921a73fa Explicitly ignore focus tracking (dec private mode 1004)
We still don't support it, but we no longer log that we don't
know what the mode is.
2020-05-16 09:31:02 -07:00
Wez Furlong
a1c0cabf18 term: process OSC 110+: ResetDynamicColors
neovim uses these
2020-05-16 09:25:17 -07:00
Wez Furlong
538ce5e110 window: fix shift-tab processing on X11
This was being silently swallowed.  For some reason shift-tab generates
ISO Left Tab rather than regular Tab and we weren't mapping that.
2020-05-16 08:35:25 -07:00
Wez Furlong
2ef985aa18 pty: async example using smol
refs: https://github.com/wez/wezterm/issues/166
2020-05-09 11:24:14 -07:00
Wez Furlong
e2d044bb14 pty: add MasterPty::try_clone_writer 2020-05-09 11:24:14 -07:00
Wez Furlong
c54c64f395 pty: remove experimental awaitable bits 2020-05-09 11:24:14 -07:00
Wez Furlong
65cc7bb286 filedescriptor: probe for pipes between wsl and win32
This is a port of something I found when developing some changes
in watchman.  When doing something like:

`some win32 command | wsl something`

That pipe doesn't look like a normal win32 pipe and we'd end up
treating it like a socket, but it isn't really a socket either.
2020-05-09 10:56:53 -07:00
Wez Furlong
d39c16c406 wezterm: check for new releases
This commit adds some plumbing that will use the github API to
probe the currently released version of wezterm, and if it is
newer than the running version, show a window with some release
information and links to the changelog and download page.

The checks can be disabled in the config (but require a restart
to take effect!) and default to checking every 24 hours.

If running an AppImage on linux, links directly to the appimage
download.  In the future I'd like to have the download button
use zsync to apply the update to the local image.
2020-05-08 22:18:31 -07:00
Wez Furlong
407e4f855c fix build on windows 2020-05-06 20:53:51 -07:00
Wez Furlong
c53ab60940 wezterm: support portable AppImage invocation
https://github.com/AppImage/AppImageKit/issues/368 introduced a way
to maintain configuration alongside an AppImage file stored on a
flash drive:

```
wez@cube-localdomain  /tmp/portable-wezterm
9:06 130 $ ls -al
total 8720
drwxrwxr-x.  4 wez  wez      100 May  6 08:54 ./
drwxrwxrwt. 19 root root     580 May  6 09:05 ../
-rwxr-xr-x.  1 wez  wez  8929256 May  6 08:59 WezTerm-20200505-090057-31c6155f-Fedora31.AppImage*
drwxrwxr-x.  3 wez  wez       60 May  6 08:15 WezTerm-20200505-090057-31c6155f-Fedora31.AppImage.config/
drwxrwxr-x.  2 wez  wez       40 May  6 08:54 WezTerm-20200505-090057-31c6155f-Fedora31.AppImage.home/
```

When launched and these `<IMAGE>.config` and/or `<IMAGE>.home` dirs
exist, the appimage machinery will redirect the HOME and XDG_CONFIG_DIR
env vars to point to those locations instead of the normal place.

We weren't respecting XDG_CONFIG_DIR (fixed in this commit), but we also
need to take care: we don't want to re-export those locations to
children of wezterm so we need to load those values and then clean
up the environment.
2020-05-06 09:11:13 -07:00
Wez Furlong
31c6155f2b wezterm: avoid weird argv0 misrepresentation with AppImage 2020-05-05 08:57:31 -07:00
Wez Furlong
e6d9183e5b meant to update the workflows too! 2020-05-05 00:03:07 -07:00
Wez Furlong
3d7fc38bb6 Embed update info into appimage 2020-05-04 23:38:50 -07:00
Wez Furlong
90de55f807 include appstream data in AppImage 2020-05-04 22:55:33 -07:00
Wez Furlong
d740281fde docs: move appimage ahead of other linux instructions 2020-05-04 22:01:12 -07:00
Wez Furlong
21f3591aed CI: add centos 8 builds 2020-05-04 21:55:23 -07:00
Wez Furlong
e74f467c39 correctly fix #173
The real problem was an inconsistency in computing the tab bar
enablement state.  This makes the math the same in both places
and re-enables the `hide_tab_bar_if_only_one_tab` option.
2020-05-04 08:39:55 -07:00
Wez Furlong
921719267f Add Fedora 32 to the CI builds and download docs 2020-05-04 07:38:14 -07:00
Wez Furlong
c207f2b545 prep docs for ubuntu 20 download 2020-05-03 23:10:42 -07:00
Wez Furlong
8e75ed10ff get-deps: add missing dep for ubuntu 2020-05-03 22:45:10 -07:00
Wez Furlong
79e5c0e52d CI: set debconf to non-interactive and unblock ubuntu20
Also using sudo in the CI config if we don't need it.
2020-05-03 22:37:31 -07:00
Wez Furlong
132529cfd5 support Terminal identification sequence
This reports the TERM_PROGRAM and TERM_PROGRAM_VERSION
separated by a space.

See discussion in https://github.com/mintty/mintty/issues/881
with a more concise description of the functionality here in
this VTE issue: https://gitlab.gnome.org/GNOME/vte/-/issues/235

```bash
$ printf '\033[>q'; cat
^[P>|WezTerm 20200503-171512-b13ef15f-4-g0395639a^[\
```
2020-05-03 22:10:38 -07:00
Wez Furlong
0395639ab4 wezterm: export TERM_PROGRAM and TERM_PROGRAM_VERSION
There's some discussion about terminal identification and
there's what looks to be some consensus for adopting these
two environment variables that were pioneered by Apple.

refs: https://github.com/mintty/mintty/issues/881
2020-05-03 21:21:06 -07:00
Wez Furlong
27a7b6b2fd docs: fill in version in place of "nightly" for some newer features 2020-05-03 18:24:55 -07:00
Wez Furlong
3b5ad6140e docs: update changelog for latest release 2020-05-03 18:22:49 -07:00
Wez Furlong
a21a913446 docs: link to new debian/ubuntu packages
flesh out the download docs a bit and link to the new debs
2020-05-03 18:18:55 -07:00
Wez Furlong
b13ef15f28 Revise doc build for recent CI changes 2020-05-03 17:14:46 -07:00
Wez Furlong
7018720d97 docs: centralize doc building logic to ci script 2020-05-03 16:28:12 -07:00
Wez Furlong
ba804589fd Generate builds for more platforms
tweak some container names

fixup container names and regenerate the config

Ensure that curl is installed

the rust toolchain stuff wants curl

run apt update before apt install

centralize updating apt, and install sudo

revise get-deps script for slimmer debian images

more container related tweaks

get-deps: Don't require lsb-release on debianish systems

more get-deps improvements

Explicitly ask GH actions to recursively checkout the repo

Explicitly install git

fetch tags and tweak git build for debian systems

moar adjustments

remove deb8 (its wayland is too old), fixup debian publish

Ensure git build deps are installed always, tidy up sudo usage
2020-05-03 15:11:35 -07:00
Wez Furlong
cec3b457b6 Update changelog to reflect changes since last release 2020-05-03 10:45:43 -07:00
Wez Furlong
d3cb27129c upgrade to latest smithay client toolkit
This version greatly improves the client side decoration handling
under Wayland and allows rendering the window title in the titlebar
(shocker!).
2020-05-03 10:31:30 -07:00
Wez Furlong
fa32457656 cargo fmt 2020-05-02 17:39:45 -07:00
Wez Furlong
94bccf1dfb fix compilation on windows 2020-05-02 17:04:28 -07:00
Wez Furlong
7f131fa406 fix infinite recursion when enable_tab_bar is disabled
We need to gate with the config generation check as update_title
can be called during the configuration reloading process and
the tab bar state may not reflect the config until after the
config is reloaded!

refs: https://github.com/wez/wezterm/issues/173
2020-05-02 16:04:34 -07:00
Wez Furlong
a32cc31bc9 cargo update 2020-05-02 12:13:10 -07:00
Wez Furlong
14c73f7122 window: linux: set window icon
Teach the window layer about window icons and implement the
plumbing for this on X11.

For Wayland there is no direct way to specify the icon; instead
the application ID is used to locate an appropriate .desktop filename.
We set the app id from the classname but that didn't match the installed
name for our desktop file which is namespaced under my domain, so change
the window class to match that and enable the window icon on Wayland.

refs: https://github.com/wez/wezterm/issues/172#issuecomment-619938047
2020-05-02 12:07:34 -07:00
Wez Furlong
8511bda6cf window: Adjust some debug logging
https://github.com/wez/wezterm/issues/172#issuecomment-619935565
interpreted these as errors but they're really just informational
messages.
2020-05-02 09:32:08 -07:00
Wez Furlong
ea401e1f58 term: add implicit SGR reset when switching alt screen
This was a bit of a pain to track down because this behavior
isn't specified anywhere or called out explicitly.

The issue is that if you use a true color escape sequence such as

```bash
printf "\x1b[38;2;255;100;0mTRUECOLOR\n"
```

the active color would remain active when switching between the
primary and the alt screen until something (eg: `ls --color`) changed
it again.

I hadn't run into this because in my prompt, many many years ago, I had
it set to perform an SGR reset (`\x1b[0m`) as the first thing to ensure
that the shell is in a saner state.

For users that don't do this they end up with a weird looking color
bleed effect.

refs: https://github.com/wez/wezterm/issues/169
2020-04-18 19:26:54 -07:00
Wez Furlong
c634f35b05 cargo update 2020-04-15 08:24:11 -07:00
Wez Furlong
92035e7704 tabout: bump version for termwiz bump 2020-04-15 08:24:11 -07:00
Wez Furlong
b9b0b2b4b0 docs: add wezterm start -- vim ~/.wezterm.lua example
Refs: https://github.com/wez/wezterm/issues/168
2020-04-12 15:10:11 -07:00
Wez Furlong
f1192471fb wezterm: lua: run_child_process CREATE_NO_WINDOW
On windows, prevent console subsystem processes spawned by
lua (such as the `wsl -l` example configuration) from momentarily
popping up and stealing the focus.  This was happening too fast
to see in most cases, but could cause the wezterm window to momentarily
repaint its title bar with lose focus before regaining it.
2020-04-12 10:49:17 -07:00
Wez Furlong
bb9504d626 wezterm: make config error window a singleton
This fixes an annoyance with the configuration error window;
previously we would spawn a new window for each error that
was discovered in the config, which cluttered up the screen
and felt irritating when iterating on the config file.

This commit reuses the connection status UI infra to make a
single persistent error log window.
2020-04-12 10:33:31 -07:00
Wez Furlong
785d41e140 launch menu: add fancy example for windows
This commit adds some helper functions that make it possible to
dynamically discover and add WSL distributions to the launcher
menu.

refs: https://github.com/wez/wezterm/issues/159
2020-04-12 08:51:11 -07:00
Wez Furlong
4858194ef4 wezterm: lua: add glob and read_dir
These functions are useful when dynamically constructing configuration.
2020-04-11 19:21:52 -07:00
Wez Furlong
2ddf73bdda docs: font size and dpi are floating point
TOML didn't care about this, but lua does.  Fixup docs.
2020-04-11 17:32:48 -07:00
Wez Furlong
065e6e7742 add launch_menu section to the configuration
refs: https://github.com/wez/wezterm/issues/159
2020-04-11 17:31:55 -07:00
Wez Furlong
b3a57f0d1c termwiz: line editor: fix a couple of bugs
* ctrl-R to find a line and then hit enter would cause the search
  text rather than the match text to be returned and run!
* When exiting the editor, clear to end of screen to make sure
  that we clean up any UI from the incremental search status
2020-04-10 21:10:42 -07:00
Wez Furlong
d4df39f793 termwiz: line editor: add ChangeSequence helper
This helps us keep track of the extent and cursor position that
we render for the line editor, making it easier to make the editor
rendering more fancy.
2020-04-10 20:42:02 -07:00