1
1
mirror of https://github.com/wez/wezterm.git synced 2024-09-21 03:39:16 +03:00
Commit Graph

312 Commits

Author SHA1 Message Date
Wez Furlong
ab54d1f897 Updates for building on Fedora 33 2020-11-29 10:26:11 -08:00
Wez Furlong
9d2df980e7 More fun with actions-rs/toolchain
I don't think that https://github.com/actions-rs/toolchain/issues/124
is 100% fixed, but this should fix our CI in the meantime.
2020-11-17 12:03:24 -08:00
Wez Furlong
8b9f6aed65
speculative fix for CI (#333)
* speculative fix for CI

GitHub made a breaking change, and this may get us through
until this action is updated.

refs: https://github.com/actions-rs/toolchain/pull/114
refs: https://github.com/actions-rs/toolchain/issues/124
2020-11-16 17:28:37 -08:00
Wez Furlong
25bbac4171 wezterm: fixup centos packaging 2020-11-14 09:24:21 -08:00
Wez Furlong
eb22808761 wezterm: add shell integration for bash and zsh
This commit provides a shell script that hooks into bash and zsh
to enable OSC 7 and semantic zones.

The packaging for Fedora and Debian deploys that script to
/etc/profile.d.
2020-11-14 09:07:56 -08:00
Jeremy Fitzhardinge
cb6b1496bf Don't hard-code architecture in debian package 2020-11-11 20:31:18 -08:00
Wez Furlong
a725dd3050 ci: add mux-server to brew tap install 2020-10-30 22:20:02 -07:00
Wez Furlong
0547fbb549 ci: set release as pre-release when tagging
also looks like I missed updating the source tarball
generation step in a prior adjustment.
2020-10-30 22:09:58 -07:00
Wez Furlong
89257c73bb wezterm: a few more wezterm-gui fixups
These parts of packaging are likely sensitive to the change also
2020-10-24 17:17:45 -07:00
Wez Furlong
2ec12b5426 wezterm: fixup packaging for wezterm-gui split
refs: #301
2020-10-24 16:54:36 -07:00
Wez Furlong
7e8c5a06bb split gui into wezterm-gui executable
This commit moves a bunch of stuff around such that `wezterm` is now a
lighter-weight executable that knows how to spawn the gui, talk to
the mux or emit some escape sequences for imgcat.

The gui portion has been moved into `wezterm-gui`, a separate executable
that doesn't know about the CLI or imgcat functionality.

Importantly, `wezterm.exe` is no longer a window subsystem executable
on windows, which makes interactions such as `wezterm -h` feel more
natural when spawned from `cmd`, and should allow
`type foo.png | wezterm imgcat` to work as expected.

That said, I've only tested this on linux so far, and there's a good
chance that something mac or windows specific is broken by this
change and will need fixing up.

refs: #301
2020-10-24 16:40:15 -07:00
Wez Furlong
9e53462348 docs: adjust screenshots to include cursor color
Make sure the window is active when capturing all the screenshots.
2020-10-20 09:55:32 -07:00
Wez Furlong
83c52ef27a docs: format and wording tweak for color schemes 2020-10-20 00:55:35 -07:00
Wez Furlong
2c5275142a docs: another tweak for color schemes linkage 2020-10-20 00:52:42 -07:00
Wez Furlong
df1206fc37 docs: fixup case of title 2020-10-20 00:46:12 -07:00
Wez Furlong
30fc374ad8 docs: add colorschemes + screenshots
This includes a script to generate a screenshot from a wezterm
running the default config under X11.

It expects the iTerm2-Color-Schemes to be checked out alongside
the wezterm repo as it uses the dynamic color schemes scripts
to activate the schemes one by one and capture the display.
2020-10-20 00:40:25 -07:00
Wez Furlong
b7e303f39c Windows: prefer to use Direct3D11 via ANGLE
This is similar in spirit to the work in 4d71a7913a
but for Windows.

This commit adds ANGLE binaries built from
07ea804e62
to the repo.  The build and packaging will copy those into the same
directory as wezterm.exe so that they can be resolved at runtime.

By default, `prefer_egl = true`, which will cause the window
crate to first try to load an EGL implementation.  If that fails,
or if `prefer_egl = false`, then the window crate will perform
the usual WGL initialization.

The practical effect of this change is that Direct3D11 is used for the
underlying render, which avoids problematic OpenGL drivers and means
that the process can survive graphics drivers being updated.

It may also increase the chances that the GPU will really be used
in an RDP session rather than the pessimised use of the software
renderer.

The one downside that I've noticed is that the resize behavior feels a
little janky in comparison to WGL (frames can render with mismatched
surface/window sizes which makes the window contents feel like they're
zooming/rippling slightly as the window is live resized). I think this
is specific to the ANGLE D3D implementation as EGL on other platforms
feels more solid.

I'm a little on the fence about making this the default; I think
it makes sense to prefer something that won't quit unexpectedly
while a software update is in progress, so that's a strong plus
in favor of EGL as the default, but I'm not sure how much the
resize wobble is going to set people off.

If you prefer WGL and are fine with the risk of a drive update
killing wezterm, then you can set this in your config:

```lua
return {
  prefer_egl = false,
}
```

refs: https://github.com/wez/wezterm/issues/265
closes: https://github.com/wez/wezterm/issues/156
2020-10-17 19:08:16 -07:00
Wez Furlong
d33647dd97 ci: move source archive to run only for appimage build
The nightly builds seem to often trip over each other when
uploading the source tarball from ubuntu20.

Restrict it to being built only on the appimage build (ubuntu16).
2020-10-10 17:14:06 -07:00
Wez Furlong
46651caaf8 ci: disable cache on macos 2020-10-10 12:00:18 -07:00
Wez Furlong
6c12e2e981 docs: more pane related docs 2020-10-10 10:49:36 -07:00
Wez Furlong
bfe87b6bec ci: more messing around with cache on macos
Something seems to poison the cargo cache between the PR
and continuous builds.  Turn off caches for continuous builds.
2020-10-10 09:25:11 -07:00
Wez Furlong
ba9b98cd28 docs: fixup generated index page links 2020-10-10 09:07:56 -07:00
Wez Furlong
809bb53387 docs: split out the KeyAssignment enum variants
This makes the individual functions a bit easier to discover,
and a lot easier to link to.
2020-10-10 08:45:13 -07:00
Wez Furlong
7af4152275 docs: add a bit of exposition for the module/object sections 2020-10-10 08:00:08 -07:00
Wez Furlong
2463510a88 ci: more adjustments for actions/cache@v2 2020-10-10 07:36:34 -07:00
Wez Furlong
4c639c1d54 ci: invalid github caches
The mac builds started to fail with a crate resolution issue that I
can't reproduce locally shortly after I updated the cache action.  Let's
tweak the cache key to see if that clears things up.
2020-10-09 23:53:58 -07:00
Wez Furlong
b009e8c0d4 docs: add docs for the window object
refs: #225
2020-10-09 23:34:35 -07:00
Wez Furlong
850fdf40de docs: add docs for the Pane object
refs: #225
2020-10-09 23:22:52 -07:00
Wez Furlong
6e0836d11a docs: Make it easier to split out docs into multiple pages 2020-10-09 22:03:59 -07:00
Wez Furlong
22b6123624 ci: update to actions/cache@v2 2020-10-09 21:02:00 -07:00
Wez Furlong
8ce2d2ba04 ci: remove deprecated and unused azure setenv 2020-10-09 21:01:17 -07:00
Wez Furlong
ecdc321ab8 ci: update PKGBUILD.template for license file addition
refs: #290
2020-10-06 13:24:35 -07:00
Wez Furlong
d40e502fab adjust packaging to include wezterm-mux-server 2020-10-03 11:15:57 -07:00
Wez Furlong
e6a858664f windows: Software frontend is now mesa llvmpipe
This is a bit of a switch-up, see this comment for more background:
refs: https://github.com/wez/wezterm/issues/265#issuecomment-701882933

This commit:

* Adds a pre-compiled mesa3d opengl32.dll replacement
* The mesa dll is deployed to `<appdir>/mesa/opengl32.dll` which by
  default is ignored.
* When the frontend is set to `Software` then the `mesa` directory
  is added to the dll search path, causing the llvmpipe renderer
  to be enabled.
* The old software renderer implementation is available using the
  `OldSoftware` frontend name

I'm not a huge fan of the subdirectory for the opengl32.dll, but
I couldn't get it to work under a different dll name; the code
thought that everything was initialized, but the window just rendered
a white rectangle.
2020-10-01 18:31:57 -07:00
Wez Furlong
b10a33684e wezterm: fixup rpm build 2020-09-10 22:01:47 -07:00
Wez Furlong
94fb5094a4 wezterm: compile in default color schemes
Rather than scanning directories and reading in ~230 files on startup,
do the scan at build time so that we're parsing from memory rather
than local storage.

This should shave a bit of time off the startup, although I
haven't measured this, and I've only run this on a remote
linux system thus far.

refs: https://github.com/wez/wezterm/issues/264
2020-09-10 21:46:45 -07:00
Wez Furlong
38d18ac6db fix colorscheme install in the release AUR
refs: https://github.com/wez/wezterm/issues/259
2020-09-08 21:07:35 -07:00
Wez Furlong
573f2435c8 Automate updating linuxbrew tap
refs: https://github.com/wez/wezterm/issues/239
2020-07-05 09:40:52 -07:00
Wez Furlong
28eda7663e ci: take another pass at updating apt 2020-06-19 21:46:33 -07:00
Wez Furlong
99e736605e ci: run apt update on all apt based systems
GitHub actions ubuntu runs have been broken for the last day and
a half, so insert this to see if it will help.
2020-06-19 21:28:05 -07:00
Wez Furlong
3fb3a61a99 ci: fix sed usage when updating homebrew 2020-06-08 11:09:16 -07:00
Wez Furlong
d979a63e1a ci: hopefully last tweak for pushing macos homebrew tap 2020-06-08 10:16:43 -07:00
Wez Furlong
c5a6862b48 ci: maybe fix tagging -> homebrew tap 2020-06-08 09:18:03 -07:00
Wez Furlong
9d6594869d ci: whoops, fixup path for homebrew tap update 2020-06-07 14:26:06 -07:00
Wez Furlong
a909047ee0 ci: include escape sequence stripper in macos homebrew tap 2020-06-07 13:05:23 -07:00
Wez Furlong
cb5aed126c ci: maybe automate updating homebrew tap
refs: https://github.com/wez/wezterm/issues/208
2020-06-07 12:48:41 -07:00
Wez Furlong
52aa395bea ci: apply black to generate-workflows.py 2020-06-07 12:20:56 -07:00
Wez Furlong
d755c270e4 ci: add automation to update the wezterm-bin AUR at tag time
This is untested beyond eyeballing the locally generated file.
Will need to make a couple of tags to test this for sure.

refs: https://github.com/wez/wezterm/issues/209
2020-06-07 12:19:41 -07:00
Wez Furlong
1049e92ce6 wezterm: fixup open wezterm here for drive letters
Drives need a single extra trailing \ to work, whereas other paths
seem to need two!
2020-06-03 21:40:36 -07:00
Wez Furlong
845a196b04 ci: change git download URL
looks like the SSL cert for kernel.org expired today, breaking some
of our CI flows.

Let's try switching to github's mirror for git.
2020-05-30 10:31:35 -07:00
Wez Furlong
d6a5d1c835 docs: split install page into pages by platform 2020-05-30 10:30:32 -07:00
Wez Furlong
71d98d84ca wezterm: windows installer: add Open WezTerm here context menu to explorer
When installed by the installer, we add registry entries to configure
directory context entries in explorer.exe that enable "Open WezTerm
here" to function.

This works by running your default program with the current working
directory set to the one specified.

I plan to only enable this when installed by the installer so that
these can be deleted/updated by the installer later on.

If you want wezterm to run a different program by default, then
you can change the default_prog config in the wezterm configuration;
I don't plan on adding lot of context menu entries for this.

Note that attempting to open in the `C:\` root doesn't always seem
to work for me.  I haven't had a chance to understand what's going
on there.

refs: https://github.com/wez/wezterm/issues/155
2020-05-28 09:13:52 -07:00
Wez Furlong
f57338edc7 docs: update for setup.exe installer 2020-05-25 12:52:06 -07:00
Wez Furlong
07386e446b Windows: Add Inno Setup based installer
closes: https://github.com/wez/wezterm/pull/193
2020-05-25 11:48:58 -07:00
Wez Furlong
845d990304 add strip-ansi-escape utility to wezterm package
I've been meaning to do this for a while: the intended purpose
is to use this to filter ansi escape sequences out of the prompt
in the shell pre-command hook.
2020-05-17 21:51: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
21f3591aed CI: add centos 8 builds 2020-05-04 21:55:23 -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
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
b13ef15f28 Revise doc build for recent CI changes 2020-05-03 17:14:46 -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
ae5cfec1f4 docs: enable syntax highlighting for lua
This is a bit gross, but it works!
2020-04-06 17:39:57 -07:00
Wez Furlong
61e3545c68 pty: windows: allow loading a newer conpty dll
This commit allows loading the console functions from `conpty.dll`
instead of `kernel32.dll` which means that we can update and
track newer features than have been deployed to Windows.

In practical terms this means that we can now unlock mouse input
reporting in eg: VIM running under WSL.
refs: https://github.com/microsoft/terminal/issues/376

We're jumping the gun on this issue, which is tracking making
a proper supportable way to deploy this sort of update:
refs: https://github.com/microsoft/terminal/issues/1130

For now it seems easier just for us to bundle our own copy of
these bits.

This includes a speculative change to include those in our
Windows downloads also.

The binaries were built from
4f8acb4b9f
2020-04-06 12:48:54 -07:00
Wez Furlong
89bed12551 ci: point to a version that has node_modules 2020-02-14 15:53:32 -08:00
Wez Furlong
8f81029718 ci: maybe fix some flakeyness 2020-02-14 13:17:28 -08:00
Wez Furlong
0d352f296c docs: update for centos rpm downloads 2020-02-12 19:20:36 -08:00
Wez Furlong
c95215b057 ci: rename <target>pr to just <target> 2020-02-12 13:36:31 -08:00
Wez Furlong
5d2d5222cd ci: forgot to set the release tag for nightly builds 2020-02-12 13:32:05 -08:00
Wez Furlong
d96a942421 ci: black format generate-workflows 2020-02-12 13:20:11 -08:00
Wez Furlong
b6673db39a CI: disambiguate fedora and centos nightly rpms 2020-02-12 13:16:13 -08:00
Wez Furlong
98984ec3a5 CI: take a stab at generating workflows 2020-02-12 13:05:21 -08:00
Wez Furlong
d5f467513a CI: build rpms for centos 7 2020-02-12 08:30:41 -08:00
Wez Furlong
df98af9243 Allow building an RPM on CentOS 2020-02-10 19:22:38 -08:00
Wez Furlong
1fee3c11bb documentation update 2020-01-26 12:46:15 -08:00
Wez Furlong
ae2bcb0207 adjust appimage filename for nightly builds
They shouldn't have the hash in the nightly build
2020-01-20 23:34:50 -08:00
Wez Furlong
cb89ec73e3
First pass at building an AppImage (#125)
refs: https://github.com/wez/wezterm/issues/124
2020-01-20 23:11:38 -08:00
Wez Furlong
d644a78699
take a stab at fixing the windows CI to generate 64-bit (#120)
* take a stab at fixing the windows CI to generate 64-bit

* use actions-rs/toolchain more broadly

* fixup target dir for deploy script

* cut over to the rust action for installing rust
2020-01-19 15:38:24 -08:00
Wez Furlong
edd773c5a7 packaging: include the color schemes in the various packages
we don't yet know how to load them, but this puts them there in
readiness.
2020-01-12 20:51:14 -08:00
Wez Furlong
d199178dd7 docs: avoid occasional page build failure
Sometimes we race with the nightly build while it is deleting
and uploading artifacts.

Since they have stable names, just hard code those in the the
markdown.
2020-01-11 09:49:17 -08:00
Wez Furlong
b722dd178f add debug output for the pages builder
This sometimes fails and I think it is because of a race with
one of the jobs that uploads an artifact
2020-01-10 07:11:59 -08:00
Wez Furlong
db1d6b3085 remove dead script 2020-01-08 22:16:57 -08:00
Wez Furlong
d3c4e8e8b6 docs: tweak download page and add source tarball info 2019-12-29 23:06:29 -08:00
Wez Furlong
4681436bd1 docs: code generation for release info 2019-12-29 21:24:08 -08:00
Wez Furlong
c6a918922f Label the package as github for GitHub Actions 2019-12-29 19:12:00 -08:00
Wez Furlong
8964ebd795 Add ability to build an rpm on Fedora
ci/deploy.sh can now emit an rpm to your `~/rpmbuild/RPMS` dir.
2019-12-29 13:09:53 -08:00
Wez Furlong
db2194d793 Remove some bulky artifacts from the source tarball
* harfbuzz includes some ttf fixtures.
* libpng has some test images
* the wezterm web page has some movie files(!)

None of these are required to be in the source tarball, so strip them
out to save ~40MB and bring the tarball down to <5MB.

Refs: https://github.com/wez/wezterm/issues/46
2019-12-24 13:13:41 -08:00
Wez Furlong
11b79827de Add script that can produce a full source tarball
Full means "including git submodules" and makes it easier for folks to
download and build a release without sucking down large repos from
various locations, especially for folks with bandwidth constraints.

Upload the source tarball to the associated release.

Refs: https://github.com/wez/wezterm/issues/81
Refs: https://github.com/wez/wezterm/pull/46
Refs: https://github.com/wez/wezterm/pull/48
2019-12-24 09:41:15 -08:00
Wez Furlong
cdc77840b7 Add wezterm.desktop file to the debian package
This makes it a bit more convenient to launch wezterm, especially
on eg: a chromebook
2019-11-20 06:37:32 +00:00
lilydjwg
d14be5c482 linux binary: strip and add a tarball 2019-10-24 23:52:41 -07:00
Wez Furlong
2ad7f7084d tweak nightly build
I want to avoid creating/updating so many git tags for nightly builds,
so let's try restructuring things a bit.
2019-06-27 07:03:37 -07:00
Wez Furlong
4627b2e798 try to avoid a loop when doing nightlys, fixup linux nightly 2019-06-26 16:05:24 -07:00
Wez Furlong
e63ca622ff RIP: travis CI
It takes ~30 minutes to schedule a release build that takes just
over 50 minutes to run.  Travis kills builds that take 50 minutes,
so this is completely useless.

Meanwhile: azure is able to build and deploy all platforms within
the first 15-20 minutes.
2019-06-23 11:01:35 -07:00
Wez Furlong
6999f15204 really fix ' issue, schedule a nightly pre-release 2019-06-23 09:20:40 -07:00
Wez Furlong
c2a4ea163d adjust how the tag name is set for the packager 2019-06-23 07:53:11 -07:00
Wez Furlong
ee898dfce6 refactor azure bits into jobs 2019-06-23 06:47:35 -07:00
Wez Furlong
cd93f287fd Ask travis to build and publish a .deb to a github release 2019-03-24 17:49:28 -07:00
Wez Furlong
f7c3743247 maybe teach appveyor how to deploy windows builds 2019-03-24 13:55:08 -07:00
Wez Furlong
0d4a6d9a6d maybe package up windows 2019-03-24 10:42:20 -07:00
Wez Furlong
45c1f5b4f3 cleanup travis config, re-enable cargo test --all
Streamline the travis deploy builds; when TRAVIS_TAG is set
we'll run `--release` builds.

Don't error out in fontconfig/build.rs if fontconfig is not
installed.  This makes it possible to `cargo test --all` again
on the mac at the cost of potentially making it harder to troubleshoot
problems with not having fontconfig installed on linux.
However: the get-deps script is responsible for installing that.
2019-03-24 08:45:28 -07:00
Wez Furlong
fec3a6f0ab refine deploy scripts/config 2019-03-24 00:26:53 -07:00
Wez Furlong
c57ab9a942 Embed tag in the zip file name 2019-03-23 23:59:08 -07:00
Wez Furlong
c7739865f9 scripts for tagging 2019-03-23 22:58:23 -07:00
Wez Furlong
778b389283 Maybe configure github deployment for macOS 2019-03-23 22:53:20 -07:00
Wez Furlong
c93f967bc4 remove esctest 2019-03-23 14:30:54 -07:00
Wez Furlong
27cb18f8ae Build our own freetype, harfbuzz
This is primarily for macos where the default freetype
installation is unable to render color emoji, but should also
help make things more consistent across the various platforms.

It's a little bit awkward on linux because the font-loader crate
pulls in the now-conflicting servo-font* crates.  I've disabled
font-loader on linux systems; it's just calling fontconfig under
the covers anyway.
2019-03-23 09:28:40 -07:00
Wez Furlong
6cbb3ba432 impl IRM insert mode and improve esctest conformance
I've had mixed results with esctest; the IRM and cursor save/restore
tests fail for me in terminal.app, iterm2 and xterm, and fail in the
same way on wezterm, so I'm not sure if I'm not running those tests
correctly.  However, they did encourage the discovery of some other
real issues in the wezterm emulation.
2019-03-22 20:41:50 -07:00
Wez Furlong
9702d1cf5a Add plumbing for running esctest 2019-03-22 20:41:50 -07:00
Wez Furlong
11b22f8407 skip building harfbuz on macos 2019-02-19 08:59:39 -08:00
Wez Furlong
ca9e9c60c7 maybe build harfbuzz on travis 2018-02-22 21:48:49 -08:00
Wez Furlong
8d6364fa80 unbundle the generated harfbuzz rust bindings 2018-02-22 21:10:50 -08:00