Mitchell Hashimoto
e2e876bfa1
termio/exec: make sure that process is dead before killing read thread
2023-08-07 21:13:33 -07:00
Mitchell Hashimoto
b5bb3b3739
termio/exec: if read thread gets 0 bytes then break the tight loop
2023-08-07 21:10:11 -07:00
Mitchell Hashimoto
816cad07b9
termio/exec: set pty fd to non-blocking, try to read as long as possible
2023-08-07 20:55:01 -07:00
Mitchell Hashimoto
f40a90e7aa
termio: use a pipe to notify the reader thread to quit
...
Simultaneously reading and closing a fd is UB. We need to ensure that we
quit, then close.
2023-08-07 20:41:34 -07:00
Mitchell Hashimoto
2e98d43a58
apprt/glfw: launch window on startup
2023-08-07 19:28:48 -07:00
Mitchell Hashimoto
60a36ca5cc
apprt/gtk: enable single instance mode
2023-08-07 19:26:57 -07:00
Mitchell Hashimoto
22296b377a
Revert "Merge pull request #244 from mitchellh/alt-as-esc"
...
This reverts commit c139279d479682c17f63d9b57c2d56608d09d16a, reversing
changes made to 4ed21047a734d7c586debe0026e3b6ea90ed1622.
We do want to do this but this broke bindings.
2023-08-07 17:06:40 -07:00
Mitchell Hashimoto
23935c3563
change sentinel value for resources dir, its different on Linux
2023-08-07 16:16:44 -07:00
Mitchell Hashimoto
ebbf42eec6
search for resources dir relative to executing binary on Linux ( #245 )
...
* search for resources dir relative to executing binary on Linux
From Andrew in #241 :
This works in all 3 of the possible scenarios I can think of on Linux:
* `zig build` with default prefix into `zig-out`
* `zig build -p ~/local` (my choice when compiling from source)
* ghostty packaged for a linux distribution into /usr/bin and /share
* update README
2023-08-07 16:08:27 -07:00
Mitchell Hashimoto
c139279d47
Merge pull request #244 from mitchellh/alt-as-esc
...
Make Ghostty aware of left/right modifier keys
2023-08-07 16:01:31 -07:00
Mitchell Hashimoto
274f934e88
key: fix wrong comment
2023-08-07 15:39:08 -07:00
Mitchell Hashimoto
32eb226fa3
non-macos doesn't support directional bindings
2023-08-07 14:52:20 -07:00
Mitchell Hashimoto
47bed51177
bindings can contain directional modifiers: left_shift+a
2023-08-07 14:43:44 -07:00
Mitchell Hashimoto
eca5955e65
apprt/gtk: new input mods format
2023-08-07 14:35:52 -07:00
Mitchell Hashimoto
67cbabd605
make keyboard modifiers left/right-aware throughout core
2023-08-07 14:33:56 -07:00
Mitchell Hashimoto
4ed21047a7
build: update flatpak to point to correct zig version
2023-08-07 11:15:29 -07:00
Mitchell Hashimoto
456d6c6c84
Merge pull request #240 from mitchellh/linux-build
...
Fix some Linux build issues
2023-08-07 11:10:15 -07:00
Mitchell Hashimoto
f631e38b99
Merge pull request #239 from mitchellh/mrn/specify-main-nib-file
...
macOS: explicitly name the NSMainNibFile in plist
2023-08-07 10:58:37 -07:00
Mitchell Hashimoto
c7865f0aad
nix: remove unused libs
2023-08-07 10:55:56 -07:00
Mitchell Hashimoto
a348adf26b
build: dynamic link first (mode_first)
2023-08-07 10:49:50 -07:00
Thorsten Ball
39055ebf40
macOS: explicitly name the NSMainNibFile in plist
...
According to [this answer][0] here and [this blogpost][1], if the
`NSMainNibFile` is not specified in the `*.plist` file, then
`NSApplicationMain` will look through the bundle to get the first nib
file it finds.
I like the explicitness of naming it and it probably also saves a
miniscule amount of CPU/IO when we can skip finding the file.
[0]: https://stackoverflow.com/questions/42886400/how-does-nsapplicationmain-find-the-main-nib-file
[1]: https://jameshfisher.com/2017/03/20/how-is-mainmenu-xib-loaded/
2023-08-07 19:48:04 +02:00
Mitchell Hashimoto
d356d5ea38
build: add libxml2/libbuid for fontconfig dynamic link for CI
2023-08-07 10:33:00 -07:00
Mitchell Hashimoto
68cd53e82d
build: always add /usr/lib/{triple} to search path for Linux
...
This is a common location for dynamic libraries. We already searched it
for Flatpak but we need to do this more generally.
2023-08-07 10:20:20 -07:00
Mitchell Hashimoto
b28c7a5557
Merge pull request #238 from mitchellh/ignore-restore-mode
...
CSI r for top/bot margin must have no intermediates
2023-08-07 09:54:46 -07:00
Mitchell Hashimoto
5e100a3b6b
CSI r for top/bot margin must have no intermediates
...
We were incorrectly interpreting the restore mode CSI (`ESC [ ? r`) as
set top and bottom margin. We need to verify that there are no
intermediates.
2023-08-07 09:45:44 -07:00
Mitchell Hashimoto
24ef5d1b1c
tests for insert mode (4)
2023-08-07 08:07:14 -07:00
Mitchell Hashimoto
1ec395fa4f
Merge pull request #235 from mitchellh/insert-mode
...
terminal: implement insert mode (mode = 4)
2023-08-07 07:45:50 -07:00
Mitchell Hashimoto
5c6d3c7df2
terminal: implement insert mode (mode = 4)
2023-08-07 07:44:13 -07:00
Mitchell Hashimoto
407fc3da24
Merge pull request #233 from mitchellh/mrn/flatpak-fix-icons
...
flatpak: install icon files to `/apps` path
2023-08-06 10:00:26 -07:00
Mitchell Hashimoto
f77b114423
Merge pull request #232 from mitchellh/cursor-vis
...
renderer: hide cursor is state explicit asks for invisible cursor
2023-08-06 09:59:47 -07:00
Mitchell Hashimoto
85e32f9a15
renderer: hide cursor is state explicit asks for invisible cursor
...
This was a regression. The previous logic would always show the cursor
if we were using a non-blinking cursor. But, if the terminal state is
explicitly requesting an invisible cursor (mode 25) then we need to hide
the cursor.
2023-08-06 09:55:13 -07:00
Thorsten Ball
89227a1aac
flatpak: install icon files to /apps
path
...
I couldn't get icons to work for the flatpak version, so I looked at the
reference here: https://docs.flatpak.org/en/latest/freedesktop-quick-reference.html
That says the path format is `share/icons/hicolor/<resolution>/apps/<icon>`.
That also matches what I have on my Ubuntu machines: icons are, for
example, located in these two locations:
- `/usr/share/icons/hicolor/128x128/apps`
- `~/.local/share/icons/hicolor/128x128/apps`
Note the `/apps`.
2023-08-06 18:54:45 +02:00
Mitchell Hashimoto
7178cdc4a5
fix keybind example in README
2023-08-05 22:51:24 -07:00
Mitchell Hashimoto
b9307309fc
Merge pull request #230 from mitchellh/glfw-ctx
...
renderer/opengl: need to release OpenGL context with glfw
2023-08-05 22:43:36 -07:00
Mitchell Hashimoto
2065dd77d7
renderer/opengl: need to release OpenGL context with glfw
2023-08-05 22:33:55 -07:00
Mitchell Hashimoto
178fef7a90
Merge pull request #229 from mitchellh/linux-jump
...
Allow setting "jump_to_prompt" binding in config, bind on Linux, and easier shell integration on Linux
2023-08-05 21:58:36 -07:00
Mitchell Hashimoto
247ddd227d
update README with shell integration instructions
2023-08-05 21:43:51 -07:00
Mitchell Hashimoto
321be2d5ad
termio: respect GHOSTTY_RESOURCES_DIR
2023-08-05 21:38:32 -07:00
Mitchell Hashimoto
2840062ad5
bind shift+<page-up/down> to jump_to_prompt back/forward, respectively
2023-08-05 21:32:30 -07:00
Mitchell Hashimoto
ef5d75e328
input: support assigning integer binding action values
...
This enables jump_to_prompt
2023-08-05 21:31:34 -07:00
Mitchell Hashimoto
5f5a23acc4
macos: help menu goes to the github repo
2023-08-05 15:03:17 -07:00
Mitchell Hashimoto
d9baf5e759
Merge pull request #226 from mitchellh/copy-paste
...
macos: enable copy/paste menu items in "Edit"
2023-08-05 14:53:42 -07:00
Mitchell Hashimoto
d895887361
macos: enable copy/paste menu items in "Edit"
2023-08-05 14:50:18 -07:00
Mitchell Hashimoto
0bb286eeb2
C API for invoking bindings
2023-08-05 14:46:47 -07:00
Mitchell Hashimoto
2f6159b16d
macos: quit menu should say "Ghostty"
2023-08-05 13:04:06 -07:00
Mitchell Hashimoto
e604b9086c
Merge pull request #225 from mitchellh/mrn/readd-edit-menu
...
macos: re-add Edit submenu to main menu
2023-08-05 12:00:28 -07:00
Mitchell Hashimoto
bbe171f314
macos: remove unimplemented menu items
2023-08-05 11:59:57 -07:00
Thorsten Ball
1908895303
macos: re-add Edit submenu to main menu
...
This menu got list in #215 and with it we lost the ability to use the
macOS emoji picker via the `Cmd+Ctrl Space` shortcut, for example.
This adds a standard Edit menu back to the main menu.
2023-08-05 20:51:43 +02:00
Mitchell Hashimoto
a09bfecce5
Merge pull request #224 from mitchellh/quit-without-focus
...
macos: Cmd-Q without any window focus works
2023-08-05 10:46:54 -07:00
Mitchell Hashimoto
2752995ec5
macos: Cmd-Q without any window focus works
...
Previously, this would crash. Once the crash was fixed, it would hang
because we would only show confirmation if the terminal window had
focus.
This introduces some medium complexity logic to work around this:
1. If we are the key window, then show the confirmation dialog. Done.
2. Otherwise, if any other window is a terminal window and is key,
they're going to take it so we do nothing.
3. Otherwise, if we are the first terminal window in the application
windows list, we show it even if we're not focused.
2023-08-05 10:43:56 -07:00