8161 Commits

Author SHA1 Message Date
Mitchell Hashimoto
83b027d20b Merge pull request #2669 from ghostty-org/push-tmluvvwsqqot
terminal: parse CSI t 22/23 for push/pop title
2024-11-13 20:00:05 -08:00
Mitchell Hashimoto
039f9231de terminal: parse CSI 22/23 for push/pop title
Related to #2668

This just implements the VT stream parsing. The actual handling of these
events still needs to be done.
2024-11-13 19:49:45 -08:00
Mitchell Hashimoto
edb0ed88bd Merge pull request #2663 from ghostty-org/push-kpnoznzynyuv
terminal: OSC7 with empty URL resets the pwd to nil
2024-11-13 13:47:36 -08:00
Mitchell Hashimoto
e225eb9eff terminal: OSC7 with empty URL resets the pwd to nil
When an empty string is given to OSC7, the pwd is reset to nil (as if
the terminal never received a pwd report to begin with). This is
analogous to how OSC0/2 reset the title to nil when given an empty
string.

This is practically useful for macOS because it allows our proxy icon to
also be reset instead of being stuck on the last known path.

This breaks from any known terminal behavior. As far as I can find, this
is totally unspecified so we're somewhat free to do what we want. I
don't think any terminal programs depend on this behavior, so I think
it's safe to change it.
2024-11-13 13:43:49 -08:00
Mitchell Hashimoto
edfef1c8df Merge pull request #2662 from ghostty-org/push-zzpqurznxmlq
pwd changed apprt action, macOS app sets proxy icon based on this
2024-11-13 13:37:04 -08:00
Mitchell Hashimoto
4d00babbea ios surface view needs pwd field 2024-11-13 13:26:32 -08:00
Mitchell Hashimoto
4d9143f634 macos: use the pwd apprt action to set the proxy icon URL 2024-11-13 13:11:32 -08:00
Mitchell Hashimoto
e0a733584e libghostty: remove the pwd function 2024-11-13 13:11:24 -08:00
Mitchell Hashimoto
e724c46c64 termio: fix some mild memory corruption 2024-11-13 12:56:02 -08:00
Mitchell Hashimoto
1af0e6260c Merge pull request #2658 from ghostty-org/push-sstnrxoppstv
termio: handle empty titles (OSC 0/2)
2024-11-13 12:35:01 -08:00
Mitchell Hashimoto
3ca246ceb9 apprt: support a pwd change action 2024-11-13 12:29:30 -08:00
Mitchell Hashimoto
067a36d67c termio: handle empty titles (OSC 0/2)
Fixes #2651

First, our OSC parser didn't allow blank OSC 0 or 2 requests. This
should be allowed and this fixes that with a test.

Second, it seems many terminals (iTerm2, Kitty) treat setting a blank
title as resetting to whatever the default title is rather than
explicitly setting it as blank. If a program wants a title to be blank
they should send a single space. This commit follows this behavior.
2024-11-13 12:12:43 -08:00
Mitchell Hashimoto
523e3a6ae3 deps: update iterm2 color themes 2024-11-12 19:49:53 -08:00
Mitchell Hashimoto
c8e92eeae8 Merge pull request #2648 from rockorager/update-libvaxis
deps: update libvaxis to v0.5.1
2024-11-12 19:25:25 -08:00
Mitchell Hashimoto
bb60190630 update zf api 2024-11-12 19:15:25 -08:00
Mitchell Hashimoto
b26ff0a41b deps: update zf and nix hash 2024-11-12 19:07:07 -08:00
Tim Culverhouse
e0755b0a74 deps: update libvaxis to v0.5.1
Update libvaxis to v0.5.1, which contains the new URL for the zg
dependency. The previous URL is now defunct, as zg has been transfered
to Sam Atman.
2024-11-12 09:43:30 -06:00
Mitchell Hashimoto
2661792cf7 Merge pull request #2647 from ghostty-org/push-vsytqoyrvsvv
build.zig: add -Dpie option for position independent executables
2024-11-11 19:28:05 -08:00
Mitchell Hashimoto
dfe33dc9bb build.zig: add -Dpie option for position independent executables
This is required by some packaging ecosytems.
2024-11-11 19:24:02 -08:00
Mitchell Hashimoto
70b984ebaf Merge pull request #2646 from ghostty-org/push-xnylkvxuuroq
macos: allow additional modifiers through for ctrl+enter
2024-11-11 10:50:56 -08:00
Mitchell Hashimoto
f6ea15dd21 macos: allow additional modifiers through for ctrl+enter
The bug: ctrl+shift+enter on macOS 15 shows a context menu and doesn't
encode to the terminal.

This avoids a system-wide keybind that shows a context menu in macOS
15+. In general Ghostty doesn't try to override system-wide keybinds
but this one is particularly annoying and not useful to terminal users.

We've discussed making this logic configurable for all system level
keybinds but for now this is a quick fix specifically for
ctrl+shift+enter.
2024-11-11 10:13:31 -08:00
Mitchell Hashimoto
72659d48ac Merge pull request #2637 from jcollie/core-list-valid-enums
core: list valid options if an invalid value is detected parsing an enum
2024-11-09 11:57:10 -08:00
Mitchell Hashimoto
8b2980284d Merge pull request #2636 from jcollie/unifi-adwaita
core/gtk: unify libadwaita/adwaita options in the code
2024-11-09 11:56:58 -08:00
Mitchell Hashimoto
b76dc9e68b Merge pull request #2626 from nfejzic/freetype-load-flags
feat: implement configurable freetype load flags
2024-11-09 11:31:26 -08:00
Mitchell Hashimoto
3ee6577154 some tweaks 2024-11-09 11:03:02 -08:00
Jeffrey C. Ollie
3eef6d205e core: address review comments
- break formatting values out into a function so that we can
  catch errors and never fail
- eliminate the use of toOwnedSentinelSlice since we are using
  an arena to clean up memory
2024-11-09 12:49:40 -06:00
Jeffrey C. Ollie
783852ff48 ci: fix adwaita build 2024-11-09 12:24:25 -06:00
Mitchell Hashimoto
799877a436 Merge pull request #2608 from Pangoraw/toggle_split_zoom
gtk: implement toggle_split_zoom
2024-11-09 09:59:29 -08:00
Mitchell Hashimoto
ca2bf04daa Merge pull request #2639 from eljobe/fix/list-themes
Fix copying the theme name
2024-11-09 09:39:35 -08:00
Nadir Fejzic
4def80ce16 refactor: use if expression instead of switch 2024-11-09 13:09:15 +01:00
Nadir Fejzic
67966cb091 refactor: add default value for `freetype_load_flags' 2024-11-09 13:06:36 +01:00
Nadir Fejzic
69aa579ee3 fix: use ternary if expression and correct types 2024-11-09 12:51:28 +01:00
Nadir Fejzic
4c08688275 refactor: remove unused imports 2024-11-09 12:50:51 +01:00
Nadir Fejzic
08720a6d23 chore: fix typo 2024-11-09 12:49:53 +01:00
Nadir Fejzic
0e0751ad5b docs: write documentation for freetype_load_flags field 2024-11-09 12:34:45 +01:00
Nadir Fejzic
83c4d0077b refactor: define FreetypeLoadFlags struct and default in font.face 2024-11-09 12:34:39 +01:00
Pepper Lebeck-Jobe
3c493f2d0d Fix copying the theme name
Prior to this change both C and c would copy the path to the theme even though
the help screen claimed that c would copy the theme name.

There is a bug in libvaxis that results in both of these matches matching c:
  `key.matches('c', .{})`
	`key.matches('c', .{ .shift = true })`

Tested:
  Before the change: 'c' copies path and 'C' copies path
  After the change: 'c' copies the name and 'C' copies the path
2024-11-09 10:10:29 +01:00
Jeffrey C. Ollie
ca844ca3c0 core: list valid options if an invalid value is detected parsing an enum 2024-11-08 22:32:14 -06:00
Jeffrey C. Ollie
b353ddf46d core/gtk: unify libadwaita/adwaita options in the code
Fixes #2574
2024-11-08 22:19:04 -06:00
Nadir Fejzic
e7f286d83f docs: describe load_flags field in Face struct 2024-11-09 01:40:39 +01:00
Nadir Fejzic
c0b24ee60d refactor: make freetype flags void for non-freetype backend
This is an attempt to use `void` as type for Freetype Load Flags when
backend does not use these flags.
2024-11-09 01:39:10 +01:00
Nadir Fejzic
290857a871 chore: remove unused import 2024-11-09 00:44:19 +01:00
Nadir Fejzic
945a715b08 refactor: handle freetype load flags in face instead of renderer 2024-11-09 00:42:18 +01:00
Nadir Fejzic
74bda5a6eb feat: implement configurable freetype load flags 2024-11-08 20:38:38 +01:00
Mitchell Hashimoto
75fe0b2dfb Merge pull request #2617 from ghostty-org/pagelist-wip
chore: rename fields in PageList, move data structures to package, move PageList to intrusive linked list
2024-11-07 15:49:08 -08:00
Mitchell Hashimoto
20961e31e2 Merge pull request #2616 from reykjalin/fix-hostname-validation-for-sub-10-ports
Fix hostname as mac address handling when last section starts with '0'
2024-11-07 15:31:28 -08:00
Kristófer R
84707932d2 os/hostname: fix mac address handling when last section starts with '0'
I hit an edge case when using Private Wi-Fi addressing on macOS where
the last section of the randomized mac address starts with a '0'. The
hostname parsing for the shell integration didn't handle this case, so
issue #2512 reappeared.

This fixes that by explicitly handling port numbers < 10.
2024-11-07 18:17:51 -05:00
Mitchell Hashimoto
1335af3e4a terminal: change pagelist linked list to an intrusive linked list 2024-11-07 15:12:54 -08:00
Mitchell Hashimoto
3aff43b2e8 datastruct: add intrusive doubly linked list 2024-11-07 14:57:55 -08:00
Mitchell Hashimoto
a436bd0af6 move datastructures to dedicated "datastruct" package 2024-11-07 14:39:10 -08:00