7126 Commits

Author SHA1 Message Date
Justin Su
b27667fcfc Don't run GitHub workflows on forks 2024-09-02 02:27:22 -04:00
Mitchell Hashimoto
d8fc54d1bf Merge pull request #2177 from jcollie/kitty-graphics-local-more
kitty graphics: fix usage of "m" key for local-only transmission mediums
2024-09-01 21:19:05 -07:00
Jeffrey C. Ollie
5e925db521 kitty graphics: fix usage of "m" key for local-only transmission mediums
If the transmission medium is a local-only medium, ignore the "m"
key. The Kitty graphics protocol specification does not explicitly
call out this behavior (although the "m" key is only mentioned in
connection with remote clients) but that's how it's implemented in
Kitty and at least one client (mpv) relies on this behavior when
using the shared memory transmission medium.

https://sw.kovidgoyal.net/kitty/graphics-protocol/#the-transmission-medium
ccc3bee9af/kitty/graphics.c (L547-L592)
2024-09-01 21:10:08 -07:00
Mitchell Hashimoto
5d476135c5 terminal: do not run page integrity checks unless slow runtime safety 2024-09-01 21:02:44 -07:00
Mitchell Hashimoto
5ade197f91 Merge pull request #2175 from qwerasd205/pagelist-fix
fix(terminal/PageList): update self.cols at start of resizeCols
2024-09-01 09:58:39 -07:00
Qwerasd
7fb2bd16a9 fix(terminal/PageList): update self.cols at start of resizeCols
It's possible for `self.grow` to be called within the body of the
function, and `self.grow` uses `self.cols` to create a new page if
there's no more room in the current one.
2024-09-01 09:55:00 -07:00
Mitchell Hashimoto
a947e20826 Merge pull request #2174 from ghostty-org/release-safe
Build ReleaseSafe builds for testing, make them more usable
2024-08-31 21:50:03 -07:00
Mitchell Hashimoto
0ab3d964dd apprt/gtk: show debug warning whenever runtime safety is on 2024-08-31 21:38:02 -07:00
Mitchell Hashimoto
6cf61f4d7b macos: show debug build warning even with releasesafe for now 2024-08-31 21:37:22 -07:00
Mitchell Hashimoto
9043ca470b ci: release-pr only on dispatch 2024-08-31 21:32:54 -07:00
Mitchell Hashimoto
ac2a0a04d4 ci: build releasesafe builds for macOS 2024-08-31 21:32:45 -07:00
Mitchell Hashimoto
6aab430caf terminal: disable slow safety tests in releasesafe 2024-08-31 21:14:12 -07:00
Mitchell Hashimoto
9ce789cc85 Merge pull request #2060 from jcollie/gtk-compatibility
Conditional compilation against different GTK versions
2024-08-31 20:04:49 -07:00
Jeffrey C. Ollie
bbb204ac85 rename gtkVersionMinimum->gtkVersionAtLeast for consistency 2024-08-31 19:16:43 -07:00
Jeffrey C. Ollie
b6c943386c Conditional compilation against different GTK versions
Adds a comptime function to enable conditional compilation against
different GTK versions that have added new API calls in newer versions
of GTK.

Use this function to get fractional scaling information for GTK
surfaces, which is only available with GTK 4.12+.
2024-08-31 19:15:24 -07:00
Mitchell Hashimoto
f1aea10a84 cli/version: don't parse any args
Fixes #2166
2024-08-31 10:39:22 -07:00
Mitchell Hashimoto
f7d1fb8ba0 Merge pull request #2167 from qwerasd205/insert-delete-lines-fix
Fix `insertLines` and `deleteLines`
2024-08-31 10:36:09 -07:00
Mitchell Hashimoto
9d08ed32ee terminal: make error sets more explicit, capture explicit errors 2024-08-31 10:31:38 -07:00
Mitchell Hashimoto
42e3582f1f Merge pull request #2172 from ghostty-org/push-kpnkvvmzysom
build: build without Git, tag version as dev with 0 SHA
2024-08-31 09:59:15 -07:00
Mitchell Hashimoto
17db317916 build: build without Git, tag version as dev with 0 SHA
Fixes #2170

Example now: `info: ghostty version=0.1.0-dev+0000000`
2024-08-31 09:43:30 -07:00
Qwerasd
3807ee34c1 terminal: handle clonePartialRowFrom errors in insert/deleteLines
Handle `clonePartialRowFrom` errors in `insertLines` and `deleteLines`
by adjusting page capacity. To do this, I've rewritten both functions
with a new way of iterating rows by moving a tracked pin up/down.

Benchmarks seem to indicate that this has no effect on performance.
2024-08-30 13:45:18 -04:00
Qwerasd
daa1755793 terminal/page: discriminate cloneFrom errors
Doing this makes it possible to appropriately handle a failed cloneFrom
operation by adjusting the correct part of the page capacity accordingly
2024-08-30 13:45:18 -04:00
Qwerasd
3bc2dbfa72 RefCountedSet: make lookup public 2024-08-30 13:30:40 -04:00
Mitchell Hashimoto
602bf6ba1e Merge pull request #2165 from ghostty-org/push-otsyrmzktntn
macos: get updated surface size metrics immediately on resize
2024-08-29 15:05:32 -07:00
Mitchell Hashimoto
90d24f9e82 macos: get updated surface size metrics immediately on resize
Fixes #2149

Previously, the way we were getting the updated surface size would use
outdated (previous) values because the resize event was not processed by
the surface before the SwiftUI view processed the resize overlay. And
since the property we used wasn't `@Published`, we didn't get notified
when we got that updated value.
2024-08-29 14:56:30 -07:00
Mitchell Hashimoto
fcb8b04049 Merge pull request #2162 from ghostty-org/dsym
macOS: save dSYM files
2024-08-28 21:42:36 -07:00
Mitchell Hashimoto
3ba0787ec2 macOS: save dSYM files
The focus of this commit is to store the dSYM files associated with
official macOS builds. dSYM files allow us to map crash reports to
source.

The dSYM files are primarily uploaded to our official blob storage where
all releases are also stored. We also upload the dSYM files to Sentry
since I'm experimenting with using that for crash reproting (note:
manual crash reporting, no automatic network traffic).

This commit also changes our blob URLs for releases to use the full
Git SHA rather than a build number. This is much easier to trace back.
2024-08-28 21:33:32 -07:00
Mitchell Hashimoto
fa440b718e Merge pull request #2160 from erf/regex-avoid-escape-chars
regex: avoid escape characters by using a multiline string
2024-08-28 15:55:05 -07:00
Erlend Lind Madsen
e3881c4ffc avoid escape characters by using a multiline string
lets concat url_scheme in combo with a multiline (thanks @qwerasd205)

regex: url_scheme -> url_schemes
2024-08-28 23:13:13 +02:00
Mitchell Hashimoto
19c9039494 Merge pull request #2159 from cryptocode/cc-colorpicker-hex
Inspector: change color picker to use hex values
2024-08-28 10:01:41 -07:00
Mitchell Hashimoto
42a23f2d3d Merge pull request #2156 from qwerasd205/hyperlink-fixes
Various fixes for hyperlink instability
2024-08-28 10:01:19 -07:00
Mitchell Hashimoto
df09a37597 terminal: tests for same page clone with hyperlinks 2024-08-28 09:58:36 -07:00
Mitchell Hashimoto
6a2d57edfd terminal: cursorCopy has option to not copy hyperlink 2024-08-28 09:41:57 -07:00
cryptocode
dbe6d6c29c Inspector: change color picker to use hex values
The inspector currently show colors as decimal r,g,b values. With this change,
the hex format is used instead.

The motivation for this is that references to color typically use the hex format. One example
is the palette definitions in a color scheme. Using the inspector/cell picker to help
create and debug color themes should be more convenient after this change.

If there's a usecase for the decimal format, we could add a config option or maybe a switch
in the inspector UI.
2024-08-28 17:55:59 +02:00
Mitchell Hashimoto
7540a015a3 Merge pull request #2157 from injust/patch-1
config: document left/right values for `macos-option-as-alt`
2024-08-28 07:44:11 -07:00
Justin Su
f8f289e8b9 config: document left/right values for macos-option-as-alt 2024-08-27 20:36:29 -04:00
Mitchell Hashimoto
89e16ebef5 Revert "Merge pull request #2153 from ghostty-org/metal-cursor"
This reverts commit ee3eb8fe3db53b8896def28cb79c8637cd9ad1fc, reversing
changes made to 3746fed0b92a8bf69862f4832840597a4bf2ffd8.
2024-08-27 09:31:12 -07:00
Qwerasd
a3fb96f543 this should be a doc comment 2024-08-27 01:23:29 -04:00
Qwerasd
ff0c1141da renderer: add updateFrame critical region timings for dev benchmark 2024-08-27 01:23:29 -04:00
Qwerasd
5714c2feed PageList: refactor clone to avoid excess work
Also avoids leaving content in out-of-bounds rows, since it doesn't copy
the content to them in the first place. Over all, just a lot cleaner.
2024-08-27 01:23:29 -04:00
Qwerasd
38bb9b40a6 Terminal: release hyperlink before copying cursor when switching screen
To avoid an unnecessary copy.
2024-08-27 01:07:29 -04:00
Qwerasd
170f55aa84 Screen: update cursorCopy to handle hyperlink state 2024-08-27 01:07:29 -04:00
Qwerasd
cb1cb3526a test(Screen): add failing tests for cursorCopy hyperlink handling 2024-08-27 01:07:29 -04:00
Qwerasd
d43d5b26ee fix(terminal): avoid trying to clone bad managed memory in reflow
If we call `moveLastRowToNewPage` at any point because we failed to copy
some managed memory, it tries to copy managed memory that hasn't been
cloned yet when moving our progress to a new page.

Avoid this by setting our content tag, hyperlink flag, and style id to
indicate no managed memory is present on the cell.
2024-08-27 01:01:31 -04:00
Qwerasd
a6992baa30 fix(terminal): don't MOVE hyperlinks in clonePartialRowFrom 2024-08-27 01:01:31 -04:00
Qwerasd
30bba9bf06 terminal: move refcount responsibility out of setHyperlink
avoids double counting in several places
2024-08-27 01:01:31 -04:00
Mitchell Hashimoto
23c924140a Merge pull request #2154 from ghostty-org/synth
config: font-synthetic-style to enable/disable synthetic styles
2024-08-26 20:56:21 -07:00
Mitchell Hashimoto
bdcc21942d config: font-synthetic-style to enable/disable synthetic styles
This adds a new configuration "font-synthetic-style" to enable or
disable synthetic styles. This is different from "font-style-*" which
specifies a named style or disables a style completely.

Instead, "font-synthetic-style" will disable only the creation of
synthetic styles in the case a font does not support a given style.
This is useful for users who want to obviously know when a font doesn't
support a given style or a user who wants to explicitly only use the
styles that were designed by the font designer.

The default value is to enable all synthetic styles.
2024-08-26 20:52:34 -07:00
Mitchell Hashimoto
80327402b8 Merge pull request #2120 from edmz/last_tab
macos: jump to last_tab
2024-08-26 20:22:52 -07:00
Mitchell Hashimoto
ee3eb8fe3d Merge pull request #2153 from ghostty-org/metal-cursor
renderer/metal: cursor should be drawn on top of fg cells
2024-08-26 20:19:01 -07:00