3741 Commits

Author SHA1 Message Date
Mitchell Hashimoto
0e92f68228 renderer: separate update frame data from draw 2023-11-17 21:50:34 -08:00
Mitchell Hashimoto
0230222c0d pkg/macos: add CoreVide for DisplayLink 2023-11-17 21:50:34 -08:00
Mitchell Hashimoto
67dce5ce0e update zig-objc 2023-11-17 21:50:34 -08:00
Mitchell Hashimoto
abe2400ed9 Merge pull request #901 from Raiden1411/invert-fg-bg
renderer: add config option to invert fg and bg of cell when selected
2023-11-17 21:49:35 -08:00
Mitchell Hashimoto
45dfbfe53c renderer: address issue with inverted cells 2023-11-17 21:47:24 -08:00
Mitchell Hashimoto
54d4aed762 Merge pull request #899 from Raiden1411/select-all
core: implement select all binding
2023-11-17 21:37:57 -08:00
Mitchell Hashimoto
cb0cfab438 comments 2023-11-17 21:37:37 -08:00
Raiden1411
fd444b6d05 renderer: add support for metal 2023-11-18 01:08:18 +00:00
Raiden1411
7a239835d2 core: add config option to invert fg and bg of cell when selected 2023-11-18 01:04:14 +00:00
Raiden1411
e3b83249d6 core: implement select all binding 2023-11-17 18:01:39 +00:00
Mitchell Hashimoto
818001956f Merge pull request #898 from der-teufel-programming/const-vars
change unmodified `var`s to `const`s in anticipation of zig changes
2023-11-17 07:46:58 -08:00
Krzysztof Wolicki
44a48f62f1 change unmodified vars to consts in anticipation of zig changes 2023-11-17 15:46:46 +01:00
Mitchell Hashimoto
7a4e167ab3 Merge pull request #897 from gpanders/primary-clipboard
clipboard: add Clipboard variant for primary clipboard
2023-11-16 21:45:01 -08:00
Gregory Anders
5290070be9 clipboard: add Clipboard variant for primary clipboard
In practice, the primary and selection clipboards are treated exactly
the same, but this allows OSC 52 sequences to use either 's' or 'p' as
the clipboard target.
2023-11-16 16:35:48 -06:00
Mitchell Hashimoto
b5bf7e9d3b Merge pull request #890 from mitchellh/faint-bg
renderer: faint should not be applied to bg alpha
2023-11-15 11:41:35 -08:00
Mitchell Hashimoto
556900a747 Merge pull request #888 from mitchellh/asian-input
Japanese input, handle multi-code point preedit states
2023-11-15 11:39:40 -08:00
Mitchell Hashimoto
ed3e3764d9 renderer: faint should not be applied to bg alpha
Fixes #889
2023-11-15 11:38:16 -08:00
Mitchell Hashimoto
df99c6e8e0 core: comment out log statements 2023-11-15 10:57:51 -08:00
Mitchell Hashimoto
ad24e5e687 renderer/opengl: use new preedit format 2023-11-15 09:59:08 -08:00
Mitchell Hashimoto
7457b40a45 renderer/metal: handle preedit wider than our screen 2023-11-15 09:53:51 -08:00
Mitchell Hashimoto
50f0aaf26b renderer/metal: support multi-codepoint preedit text 2023-11-15 09:49:28 -08:00
Mitchell Hashimoto
4cff8d972c input: do not encode enter with utf8 as pc style key
If the enter key has utf-8 attach, we assume its a dead key state being
committed so we don't process it.
2023-11-15 08:58:12 -08:00
Mitchell Hashimoto
1deafe34fb Merge pull request #881 from mitchellh/unknown-cmd
termio/exec: fall back to default command if specified command not found
2023-11-14 17:17:58 -08:00
Mitchell Hashimoto
83eff4e330 config: clarify that command can only be a single binary 2023-11-14 17:03:47 -08:00
Mitchell Hashimoto
822c67b3e0 termio/exec: fall back to default command if specified command not found
Fixes #880

If a command is specified but it can't be found, then we try to fallback
to a default command like "sh" and log the issue. This prevents Ghostty
from simply exiting.
2023-11-14 16:58:27 -08:00
Mitchell Hashimoto
903838881a Merge pull request #879 from mitchellh/update-zig
update zig
2023-11-14 09:24:43 -08:00
Mitchell Hashimoto
256e146453 Merge pull request #836 from mitchellh/pf/docs
Revise key sections of docs
2023-11-14 09:23:32 -08:00
Mitchell Hashimoto
648a521fb2 slight edits 2023-11-14 09:21:45 -08:00
Mitchell Hashimoto
d3f3d10b2f update zig 2023-11-14 09:01:37 -08:00
Mitchell Hashimoto
76353415a3 ci: release-tip only works on this repository 2023-11-14 08:41:59 -08:00
Mitchell Hashimoto
7012fdb0f6 Merge pull request #878 from mitchellh/adwaita-runtime
apprt/gtk: gtk-adwaita runtime config to configure libadwaita
2023-11-14 08:36:11 -08:00
Mitchell Hashimoto
36c3b1b3d1 apprt/gtk: gtk-adwaita runtime config to configure libadwaita
Fixes #874
2023-11-14 08:33:55 -08:00
Mitchell Hashimoto
ab948f6f8f macos: reuse original event if translation mods changes nothing
Fixes #766 (again)

This is a repeat fix of 766 after fixing a number of other regressions
from the original fix. See the comment for reasons.
2023-11-14 08:14:24 -08:00
Mitchell Hashimoto
19bd4965aa Merge pull request #875 from mitchellh/macos-alt-2
macos: ignore alt key with other modifiers set
2023-11-13 19:25:48 -08:00
Mitchell Hashimoto
35e78939e5 macos: ignore alt key with other modifiers set
This enables shifted alt-prefixed keys, such as `shift+alt+.` on
US standard becoming `M->`. To do this, we needed to fix a few bugs:

  (1) translation mods should strip alt even if other mods are set
  (2) AppKit translation event needs to construct new characters with
      the translation mods.
  (3) Alt-prefix handling in KeyEncoder needs to allow ASCII utf8
      translations even for macOS.
2023-11-13 19:21:51 -08:00
Mitchell Hashimoto
ae112f48b9 Merge pull request #873 from mitchellh/macos-alt
macOS: filter option-as-alt properly at AppKit layer
2023-11-13 14:05:52 -08:00
Mitchell Hashimoto
63e106390f input: fix failing test on Linux 2023-11-13 13:58:41 -08:00
Mitchell Hashimoto
b4d393fdcf input: process alt-prefix even if utf8 text doesn't exist 2023-11-13 13:50:00 -08:00
Mitchell Hashimoto
5001e2c60c macos: filter option in AppKit when option-as-alt set
Fixes #872

In #867 we fixed macos-option-as-alt, but unfortunately AppKit ALSO does
some translation so some behaviors were not working correctly.
Specifically, when you had macos-option-as-alt set, option+e would
properly send `esc+e` to the pty but it would ALSO set the dead key
state for "`" since AppKit was still translating the option key.

This commit introduces a function to strip alt when necessary from the
translation modifiers used at the AppKit layer, preventing this
behavior.
2023-11-13 13:26:37 -08:00
Mitchell Hashimoto
a8e82b13ce Merge pull request #868 from der-teufel-programming/win-noxdg
os/xdg: Add `LOCALAPPDATA` as a fallback for `XDG_CONFIG_HOME` on Windows
2023-11-12 22:23:00 -08:00
Mitchell Hashimoto
f3c4c87ffd Merge pull request #870 from mitchellh/xt
xterm audit: DEC mode 3 (DECCOLM), 4 (DECSCLM), 40 (132COLS)
2023-11-12 22:21:36 -08:00
Mitchell Hashimoto
3192b13546 terminal: our mode size changed 2023-11-12 22:20:28 -08:00
Mitchell Hashimoto
df800fb0b3 xterm audit: reverse video (DECSCNM) 2023-11-12 22:18:53 -08:00
Mitchell Hashimoto
8783f6c925 xterm audit: slow scroll (DECSCLM) 2023-11-12 22:11:11 -08:00
Mitchell Hashimoto
f00c87e805 xterm audit: DECCOLM and 132COLS 2023-11-12 22:05:26 -08:00
Krzysztof Wolicki
0822e99a56 os/xdg: Add LOCALAPPDATA as a fallback for XDG_CONFIG_HOME on Windows 2023-11-13 02:05:29 +01:00
Mitchell Hashimoto
8d0404066f Merge pull request #867 from mitchellh/option-as-alt
macos-option-as-alt works again
2023-11-12 15:31:28 -08:00
Mitchell Hashimoto
86fbc6a85b macos-option-as-alt works again
This regressed sometime -- I can't find the exact commit -- but in any
case I've moved this handling directly into the KeyEncoder so we can
unit test it and prevent future regressions.
2023-11-12 15:26:55 -08:00
Mitchell Hashimoto
cfdd99691f Merge pull request #866 from mitchellh/termio-deadlock
termio: Fix deadlock when writer mailbox is full
2023-11-12 09:11:58 -08:00
Mitchell Hashimoto
c8ffc903be termio: Fix deadlock when writer mailbox is full
Fixes #865
Related to #861

In #861, we fixed a deadlock that could happen if the writer mailbox was
full from the reader thread by waking up the writer thread for
processing.

Unfortunately, the writer thread ALSO handles messages that require the
terminal lock (i.e. resizing, focus state, etc.). If the mailbox
contains these messages, it cannot make forward progress on the writes
(which do not require a lock). This makes it possible still under heavy
write scenarios to fully deadlock the read/write threads.

This commit modifies the behavior so that while we are attempting to
queue a writer message after it fails, we release the lock. This is a
very slow path since we are releasing/acquiring locks under heavy
contention. We can improve it in the future but for now its okay because
this is also a rare situation that only happens under the heaviest loads
that also produce heavy writes.
2023-11-12 09:09:39 -08:00