1
1
mirror of https://github.com/wez/wezterm.git synced 2024-12-25 22:33:52 +03:00
Commit Graph

396 Commits

Author SHA1 Message Date
Wez Furlong
295e0c444f
ci: potentially fixup flakey pages build
It has been failing sporadically due to GH API rate limiting.
Use the gh CLI if available, to pick up our access token.
2022-12-22 10:54:17 -07:00
Wez Furlong
0da36a40fd
ci: refine error reporting in doc build 2022-12-19 22:11:01 -07:00
Wez Furlong
758a09f55f
ci: add debug output when building docs
This step is flaking out often in CI and I'd like to get a better sense
of why.
2022-12-19 11:45:29 -07:00
cgrigis
fcace3d5e3
Remove Source entry in Debian control file (#2828)
Remove `Source` entry in final Debian control file
2022-12-04 08:53:37 -07:00
Xeysz Matrasx
c55cecaee5 Allow windows installer to run on arm64 emulating x64 2022-11-15 08:41:18 -08:00
Wez Furlong
287a633a98 ci: maybe fix suse CI
looks like lsb-release is no longer a valid package in suse
2022-10-21 21:47:09 -07:00
Wez Furlong
cff0e5f2a3 macos: add camera entitlement
refs: https://github.com/wez/wezterm/issues/2551
2022-09-24 19:14:55 -07:00
Wez Furlong
cf989fb9da docs: update for MuxPane/Pane merger 2022-09-11 07:21:54 -07:00
Orhun Parmaksız
77024fa109 ci: correctly set the tag for release description
While using here-doc, lines are not expanded for parameter expansion if
a part of starting _word_ (_EOT_ in this case) is quoted. This results
in '$name' parameter appearing in auto-generated link without expansion.
This commit removes the single quotes from here-doc thus sets the
correct tag which is retrieved by '$1'.

Signed-off-by: Orhun Parmaksız <orhunparmaksiz@gmail.com>
2022-09-06 07:13:55 -07:00
Wez Furlong
ee436437b4 ci: expand auto-generated release description 2022-09-04 08:31:57 -07:00
Wez Furlong
9d6b4a3e17 docs: CopyMode assignments now have their own individual pages
refs: https://github.com/wez/wezterm/issues/2346
2022-08-21 11:05:56 -07:00
Wez Furlong
3602a839eb docs: add stable download links for suse and alpine 2022-08-11 08:27:11 -07:00
Wez Furlong
c496f1ce97 fix fedora download links
I think I may have inadvertently changed whether the arch portion
was included in the filename for stable releases.

Allow for that in the regex.

Remove debian 9 which is no longer supported.

closes: https://github.com/wez/wezterm/issues/2382
2022-08-09 09:05:29 -07:00
Wez Furlong
8b8d8f61e6 add content rating and release info to appdata
Required for flathub submission

refs: https://github.com/flathub/flathub/pull/3398
2022-08-08 06:44:22 -07:00
Wez Furlong
c2fee76638 ci: nth time's the charm for winget tag pr thing 2022-08-07 11:31:46 -07:00
Wez Furlong
608750d5e0 ci: format with black 2022-08-07 10:52:16 -07:00
Wez Furlong
306da9d448 ci: tweak winget pr stuff a bit more 2022-08-07 10:51:56 -07:00
Wez Furlong
56aa71331e ci: maybe fixup winget pr submission when tagging a release 2022-08-07 09:38:23 -07:00
Wez Furlong
3f7443f4c1 showkeys/docs: generate copy_mode defaults from the code
Uses `wezterm show-keys --lua --key-table copy_mode` to dump the
actual copy mode key table.  Include that in the docs.

Same for search_mode.
2022-08-04 06:28:32 -07:00
Wez Furlong
c0ebd2d131 flatpak: refine build; install more executables in image 2022-08-03 07:04:31 -07:00
Wez Furlong
404d742c14 Teach wezterm how to spawn programs when running in flatpak
This commit allows wezterm to spawn programs into the host rather
than in the container environment.

It feels weird that it is so trivial to "break out" of the container
sandbox, but I'm not complaining.

There are some unfortunate consequences:

* there is no `wezterm` installed on the host, so no ability to `wezterm
  cli` to control it from other apps
* The unix domain socket is scoped inside the sandbox, so there's "no
  way" for `wezterm cli` to reach inside anyway.

But: with this, it is at least usable to start a flatpak and open a
shell.

refs: https://github.com/wez/wezterm/issues/2229
2022-08-03 07:04:31 -07:00
Wez Furlong
3379a2b285 flatpak builder
Run `ci/flatpak.sh` to build a flatpak of just the gui.
Run it via flatpak run org.wezfurlong.wezterm

refs: https://github.com/wez/wezterm/issues/2229

Thanks to: @Imxset21
2022-08-03 07:04:31 -07:00
Wez Furlong
119c2f1d0b macos: add bluetooth entitlement
refs: https://github.com/wez/wezterm/issues/2330
2022-08-01 21:26:27 -07:00
Wez Furlong
360b3f3479 ci: try uploading sha256 files alongside release assets
refs: #2114
2022-07-25 08:39:24 -07:00
Wez Furlong
397bddbf6b deploy: don't try to strip a shell script 2022-07-21 22:57:55 -07:00
Wez Furlong
60d7d214c1 Add open-wezterm-here script
The .deb package registers that script as the alternative for
a terminal emulator in the hope that various "open terminal here..."
functions in other tools will use that to detect wezterm and run
thing in the cwd.

refs: https://github.com/wez/wezterm/issues/2103
2022-07-21 22:34:54 -07:00
Wez Furlong
50d5f94ab0 color schemes: add alias concept
Various color schemes have been duplicated as they have been added to
different scheme collections.  They don't always have identical names
(eg: some remove spaces) and sometimes they have very different names
(eg: _bash vs. nightfox, or Miu vs. Blazer).

We already detected duplicates from different collections but previously
we would omit those dupes.

This commit allows us to track those duplicates by recording their
aliases.

When we write out our data, we only include "interesting" alias names;
those where the name isn't trivially identical.

Some scheme collections (eg: iterm2 color schemes) have duplicates
(eg: zenbones and zenbones_light are identical) and we have previously
shipped with both of those names, so we special case to emit dupes
for which we have prior version information in order to avoid
breaking backwards compatibility for our users.

In the doc generation we can generate links to the aliases if we
included them, but also note about the other names and how we don't
include them.  That is so that someone searching the docs for say
"_bash" can discover that it is actually a duplicate of "nightfox" and
use nightfox instead.
2022-07-20 07:32:46 -07:00
Wez Furlong
98dd864df1 docs: split MuxPane 2022-07-19 07:20:11 -07:00
Wez Furlong
713450156c docs: only try to format tracked files
Don't format generated docs; their inputs should be formatted instead.

refs: https://github.com/wez/wezterm/pull/2273
refs: https://github.com/wez/wezterm/issues/2253
2022-07-19 06:58:22 -07:00
azzamsa
be929db374 docs: reformat lua code
refs: https://github.com/wez/wezterm/pull/2273
refs: https://github.com/wez/wezterm/issues/2253
2022-07-19 06:27:33 -07:00
Wez Furlong
112feb3374 add MuxTab:set_zoomed and SetPaneZoomState keyassignment
refs: #2284
2022-07-19 05:52:38 -07:00
Wez Furlong
85fb78d788 lua: add wezterm.time and Time object
Includes a method for determining sunrise/sunset.
2022-07-17 11:38:02 -07:00
Wez Furlong
5e60743519 lua: add wezterm.procinfo module 2022-07-16 08:49:58 -07:00
Wez Furlong
73993a60b4 macos: Add com.apple.security.automation.apple-events entitlement
This is necessary for applications spawned via wezterm to be able to
generate apple events.

wezterm already had the text for the authorization prompt in its plist,
but because it was code signed with the default set of entitlements,
macOS didn't bother to prompt.

This commit introduces an explicit set of entitlements and uses those
when signing the executable.

I test this by manually codesigning on my laptop and confirmed that I
could run bbedit from inside wezterm.

I can't directly test the CI version of that flow on my laptop as it may
destroy my keychain if I got something wrong.

We'll have to see if the CI generated build works out!

refs: https://github.com/wez/wezterm/issues/2242

h/t to https://github.com/microsoft/vscode/issues/119787 for
clearly documenting what was needed.
2022-07-15 19:33:30 -07:00
Wez Furlong
f9ab69950a color schemes: add version metadata
Record the version in which we first saw a color scheme.
For schemes from iterm2-color-schemes, we just assume that
we've had them forever as it isn't easy to reverse engineer
that metadata.

Everything else is tagged as 'nightly builds only' and I'll update
that to match the version number in the next release.

Newly discovered items will be added with 'nightly builds only'
from this point onwards.
2022-07-14 08:45:29 -07:00
Wez Furlong
d4d33369f2 color schemes: import all official base16 schemes 2022-07-12 11:51:19 -07:00
Wez Furlong
aa697c72ba color: refactor docs, add a couple more methods
Moved the gradient function into the color module, but kept an alias
under the old name.

Gradients now return color objects.

Converting colors to string now uses rgba format when alpha is not 100%.
2022-07-12 07:45:08 -07:00
Wez Furlong
463ca2fa29 add wezterm.color module for working with colors
wezterm.color.parse() returns a color object that can be assigned in the
wezterm color config, and that can be used to adjust hue, saturation and
lightness, as well as calculate harmonizing colors (complements, triads,
squares) from the RGB/HSL color wheel.
2022-07-10 23:41:18 -07:00
Wez Furlong
5939bacf14 Import terminal.sexy themes 2022-07-10 14:33:31 -07:00
Wez Furlong
e866e9390a colorschemes: expand to include Gogh color schemes
This commit expands the toml file definition to include
metadata for the origin url, author and name.

A new sync utility fills out that metadata when it pulls from the iterm2
color schemes repo.

The utility also pulls down the scheme data json maintained by
the Gogh project: https://gogh-co.github.io/Gogh/ and converts
it to wezterm's format.

About 50% of Gogh overlaps with iterm2; we take the iterm2 versions
of those schemes by default because the iterm2 data has more info
about things like cursor and selection colors.

The sync utility is responsible for compiling the de-duplicated
set of scheme data into a form that is used by wezterm and its
docs.
2022-07-10 13:32:17 -07:00
Wez Furlong
ffe76bae3a docs: make color scheme dirs as needed 2022-07-09 23:07:31 -07:00
Wez Furlong
6cc01251dc docs: even more robust idents for colorschemes 2022-07-09 22:59:15 -07:00
Wez Furlong
85d2cb3cfb docs: more robust ident generation for asciinema player 2022-07-09 22:48:57 -07:00
Wez Furlong
1202d7d594 docs: show the number of color schemes 2022-07-09 22:41:26 -07:00
Wez Furlong
d5060ec3c1 docs: use asciinema's web player for screenshots
I've wanted to avoid checking in all the screenshot pics as the png
files change every time I run the generation script, and it bloats
the repo over time.

This commit changes the doc generation step to use the asciinema
web player with the equivalent contents.

Really, it's only a smallish step to go from this to just emitting
the html directly in the doc pages, but I think I might use
the player for some examples in the future.

I think this is still a fine step for now in any case.

While comparing this with the existing screenshots, I noticed the
the Alabaster screen shot png has the wrong color for its rightmost
column: there's an issue in wezterm in parsing the dynamic color
escapes that causes it to pick up the wrong color.

Loading the scheme by name has the correct color and matches
how it is shown as of this commit.
2022-07-09 18:59:44 -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
61fb3dffe4 docs: window:gui_window, wezterm.gui.screens() and friends 2022-07-06 16:33:47 -07:00
Wez Furlong
30a2223524 docs: split MuxWindow.md into multiple pages 2022-07-06 16:02:29 -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
241e19babf ci: pre-fill release info, switch away from creating as a draft 2022-06-28 12:43:45 -07:00
Wez Furlong
40d346b58f ci: automate updating winget during release time
A slightly simpler alternative to https://github.com/wez/wezterm/pull/2199
2022-06-28 11:47:11 -07:00
Wez Furlong
ce89e33f01 ci: make deterministic again!
dc728b3895 introduced some non-determinism
by mutating the global TARGETS list.

The result is, depending on iteration order, the generated jobs
may inherit the env from earlier jobs.

Notably, if the tag job inherit the schedule reason from a continuous
job, they'll upload assets with an incorrect filename.

This commit restores the determinism by forcing each iteration
of the generation loop to make a deep copy of the statically
defined information in TARGETS.

While we're at it, ensure that the list of env vars is sorted
to avoid non-determinism there as well.

refs: https://github.com/wez/wezterm/issues/2176
2022-06-25 11:40:47 -07:00
Wez Furlong
c29a513a44 ci: revise release info mapping for adjusted rpm names
Adopt regex to simplify the categorization list a lot,
and teach it about the adjusted names of rpms.
2022-06-24 17:19:39 -07:00
Wez Furlong
ef11060e52 ci: distroid - to _ 2022-06-24 16:40:50 -07:00
Wez Furlong
7a1e087b00 ci: refine distroid 2022-06-24 16:20:06 -07:00
Wez Furlong
256afbecfd ci: revise rpm filenames
I noticed that the opensuse rpms didn't show up in the latest release,
and traced it to the spec file not setting anything in the filename
to distinguish the rpm files.

This commit replaces the redhat-ish short suffix with one of our
own derived from the os info.

subst-release-info.py will need to be updated to reflect this
change, but I want to see what names are produced for the various
platforms first.
2022-06-24 15:47:10 -07:00
Wez Furlong
0261f96341 docs: add show-keys command 2022-06-24 10:42:07 -07:00
Wez Furlong
55e63d867b docs: keyboard encoding
refs: https://github.com/wez/wezterm/issues/2152
2022-06-21 09:36:59 -07:00
Wez Furlong
e35a59132f docs: remove screenshot width/height calc
It seems "off" in the latest round of updates.
2022-06-19 08:00:09 -07:00
Wez Furlong
dbcc0cb22a sync color schemes
closes: https://github.com/wez/wezterm/pull/2137
2022-06-19 07:35:48 -07:00
Wez Furlong
4c03df884b docs: gui-startup, mux-startup and wezterm.mux
refs: #1949
refs: #674
2022-06-17 16:57:52 -07:00
Wez Furlong
21fc8916f6 docs: move some inline text into files 2022-06-17 15:52:24 -07:00
Wez Furlong
479b1384bb Add docs for wezterm cli
refs: #1253
2022-06-16 07:53:34 -07:00
Wez Furlong
84842aaadc fix wezterm bash completion install path in .debs 2022-05-28 21:29:40 -07:00
Wez Furlong
bc95d88227 Install bash and zsh completions in rpm and deb packages 2022-05-28 12:47:18 -07:00
Wez Furlong
46ca0679b1 add pane:get_foreground_process_info()
Returns all known information about the foreground process in the pane.

refs: #1987
2022-05-14 09:14:35 -07:00
Wez Furlong
b2dad7fa32 docs: add Fedora 36 to install page 2022-05-11 21:29:02 -07:00
Wez Furlong
566b58a64b ci: add Fedora 36 2022-05-11 18:25:51 -07:00
Wez Furlong
7e460c3784 ci: restore centos7
It was removed in be1b54ba33 citing
difficulties with GH CLI, but I think I subsequently solved
that by not running it in the container.

refs: https://github.com/wez/wezterm/issues/1947
refs: https://github.com/wez/wezterm/issues/1948
2022-05-10 23:12:11 -07:00
Wez Furlong
156b0ae44c ci: skip full build when updating just the .markdown docs 2022-05-09 21:57:18 -07:00
Wez Furlong
f56345cba4 appimage: exclude libwayland-client.so
It seems to be preventing EGL from working

refs: https://github.com/wez/wezterm/issues/1956
2022-05-06 07:54:05 -07:00
xpufx
b0e91a6bbb adding opensuse packages to docs 2022-04-26 06:25:18 -07:00
Wez Furlong
7dd6de77c6 ci: run black on generate-workflows.py 2022-04-25 21:11:00 -07:00
gimbles
981f1e678d Add 22.04 release info 2022-04-25 20:28:59 -07:00
gimbles
7f956e9f97 feat: Add Ubuntu 22.04 target 2022-04-25 20:28:59 -07:00
xpufx
9f6d2db154
Add opensuse packages to build/release workflows (#1916)
* added opensuse packaging

* change deploy.sh rpm spec for opensuse

* added missing opensuse openssh install logic

* push generated workflows

* fix typo in func name - yum vs zypper

* Update ci/generate-workflows.py

merge run steps

Co-authored-by: Sandro <sandro.jaeckel@gmail.com>

* fix libxcb-* packages for opensuse

Co-authored-by: Sandro <sandro.jaeckel@gmail.com>
2022-04-25 13:27:56 -07:00
Wez Furlong
39d2726e5a ci: another stab at apk sed stuff 2022-04-25 07:10:18 -07:00
Wez Furlong
1e11895600 ci: fixup sed usage for APKs
Part of the directory structure is `/wezterm/something/wezterm-`
Take care not to rewrite that earlier wezterm directory to something
bogus.
2022-04-24 16:17:32 -07:00
Wez Furlong
55174056b9 ci: don't rebuild everything when changing no-response config 2022-04-21 08:00:24 -07:00
Wez Furlong
44925978bc docs: add alpine to downloads 2022-04-19 23:35:21 -07:00
Wez Furlong
6152bc0e41 ci: disambiguate the different alpine artifact versions
We were uploading all the packages as `wezterm-20220419.075038-r0.apk`
regardless of the alpine version.

Also, what we upload to the nightly release must not include a version
number, otherwise the release will hold an unbounded number of versions!
2022-04-19 21:18:36 -07:00
Wez Furlong
24e71b801b ci: moar alpine urgh 2022-04-19 07:50:38 -07:00
Wez Furlong
6a0ce5f038 ci: one more go at alpine
almost there!
2022-04-19 06:57:55 -07:00
Wez Furlong
62b7b60012 ci: more alpine urgh 2022-04-19 06:35:28 -07:00
Wez Furlong
87e2afa4db ci: more grubbing about with alpine 2022-04-19 06:19:59 -07:00
Wez Furlong
422e0f3d56 ci: more alpine tweaks 2022-04-18 22:58:27 -07:00
Wez Furlong
6753bfe764 ci: tweak apk patterns/uploads/artifacts 2022-04-18 22:18:22 -07:00
Jakub Panek
dc728b3895 feat: use global/job level env, add alpine
Signed-off-by: Jakub Panek <me@panekj.dev>
2022-04-18 21:34:34 -07:00
Jakub Panek
acd15611d0 feat: add alpine
Signed-off-by: Jakub Panek <me@panekj.dev>
2022-04-18 21:34:34 -07:00
Jakub Panek
a3ba5d3299 refactor: simplify rust version check
Signed-off-by: Jakub Panek <me@panekj.dev>
2022-04-18 21:34:34 -07:00
xpufx
cadc5f7d1c
add update-alternatives hooks for deb packages (#1883)
* add update-alternatives hooks for deb packages

Tested on ubuntu 20.04/21.10 and Linux Mint 20.3

* Apply suggestions from code review

Co-authored-by: Wez Furlong <wez@wezfurlong.org>
2022-04-17 11:02:50 -07:00
Wez Furlong
88601f6841 docs: fixup regex for raw linux binary downloads 2022-04-14 10:59:36 -07:00
Wez Furlong
8235736ac0 ci: take a stab at working around https://github.com/actions/checkout/issues/760 2022-04-12 20:11:18 -07:00
Wez Furlong
4cf74e3d77 ci: revert b95f453ede
checkout seems to be failing for ubuntu 20 recently:

```
Deleting the contents of '/__w/wezterm/wezterm'
Initializing the repository
  /usr/bin/git init /__w/wezterm/wezterm
  Initialized empty Git repository in /__w/wezterm/wezterm/.git/
  /usr/bin/git remote add origin https://github.com/wez/wezterm
  Error: fatal: unsafe repository ('/__w/wezterm/wezterm' is owned by someone else)
  To add an exception for this directory, call:

  	git config --global --add safe.directory /__w/wezterm/wezterm
  Error: The process '/usr/bin/git' failed with exit code 128
```

Try reverting this as a workaround.
2022-04-12 18:14:41 -07:00
Wez Furlong
1d908457ae ci: (up|down)load-artifact v2 -> v3 2022-04-10 18:36:34 -07:00
Wez Furlong
a7cdd46720 logging: use our own custom logger
I wanted to use the Target::Pipe feature of env_logger so that we could
log to a log file as well as stderr, but it just doesn't work
(https://github.com/env-logger-rs/env_logger/issues/208).

Since we were already composing over the top of the logger in order
to capture data for our ringlog, this commit embraces that and makes
our logger responsible for both stderr and log file printing.

Thankfully, we can use the filter parsing code from env_logger to
avoid having to get too crazy with this.

Logs are stored in the runtime directory and look something like:

/run/user/1000/wezterm/wezterm-gui-log-596324.txt

Logs are collected on all platforms.

There isn't currently a thing to clean up logs.
2022-04-07 09:51:00 -07:00
Wez Furlong
27217992f2 docs: update colorschemes screenshots
I really want to replace these with simple html to avoid bloating
the repo too much over time.
2022-04-05 08:18:01 -07:00
Wez Furlong
327984d1d1 docs: add info about key tables. break key binding apart
The keys section was way too big; this splits it up into more
manageable pieces, adds a nice flow chart to show how key events
are processed and adds an example of using the new key tables feature.
2022-04-04 09:30:04 -07:00
Wez Furlong
2a8ff9ca75 docs: adopt mermaid-js for flowchart
This is a bit more compact and easier to edit.

A downside is that the search engine highlight can break the diagram and
cause it to emit a syntax error.
2022-04-03 22:09:17 -07:00
Wez Furlong
1cf0a76f3f deps: actions/cache -> v3
closes: https://github.com/wez/wezterm/pull/1782
2022-03-27 19:48:06 -07:00