Compare commits
2609 Commits
v1.1.0
...
quick-term
Author | SHA1 | Date | |
---|---|---|---|
![]() |
ae48f323d7 | ||
![]() |
a90bf58080 | ||
![]() |
6a78f9c0c0 | ||
![]() |
466fdfffe6 | ||
![]() |
58e7400ea5 | ||
![]() |
0afadeea5f | ||
![]() |
e5ad6603f4 | ||
![]() |
7cc0728fe5 | ||
![]() |
17f7f204e1 | ||
![]() |
63cd424678 | ||
![]() |
5c464e855d | ||
![]() |
4630369f87 | ||
![]() |
5b0801cbc9 | ||
![]() |
3320a081b4 | ||
![]() |
9a56e77937 | ||
![]() |
a471bac782 | ||
![]() |
14a3765916 | ||
![]() |
ca06b95f65 | ||
![]() |
d659bdcfdd | ||
![]() |
754bb4011a | ||
![]() |
11d845ce17 | ||
![]() |
c629ea674c | ||
![]() |
f8d69e5baf | ||
![]() |
c396c25898 | ||
![]() |
e98e868265 | ||
![]() |
52a25e9c69 | ||
![]() |
8aa0b4c92a | ||
![]() |
8a14f21325 | ||
![]() |
5c03ff8165 | ||
![]() |
400576f0b0 | ||
![]() |
c9199f2ba2 | ||
![]() |
48120f8b6c | ||
![]() |
27ed58252d | ||
![]() |
c26323d697 | ||
![]() |
13425b4881 | ||
![]() |
9ff716642e | ||
![]() |
c57a84a6de | ||
![]() |
42b1ff70d1 | ||
![]() |
95bc181c98 | ||
![]() |
a18332828a | ||
![]() |
00e4a90699 | ||
![]() |
7622d2662d | ||
![]() |
e1d4c37996 | ||
![]() |
1b8dd234b0 | ||
![]() |
43e010bf47 | ||
![]() |
062d596c0a | ||
![]() |
a3be474d28 | ||
![]() |
b347585e27 | ||
![]() |
1aa59cf63d | ||
![]() |
bd4e9b96bf | ||
![]() |
59fd366264 | ||
![]() |
78f05ec96c | ||
![]() |
0d536d447c | ||
![]() |
4f4c06967a | ||
![]() |
f6f2a85256 | ||
![]() |
c181fc4fbf | ||
![]() |
d854ecd374 | ||
![]() |
652f6f1deb | ||
![]() |
c014dd79f6 | ||
![]() |
292efec669 | ||
![]() |
0c722b0e3d | ||
![]() |
54f8dff308 | ||
![]() |
60e077b651 | ||
![]() |
50fe12e85c | ||
![]() |
f4abecefe4 | ||
![]() |
db60e981d1 | ||
![]() |
3859f50b88 | ||
![]() |
4fdf0b687e | ||
![]() |
85cba70c2e | ||
![]() |
5bff354e96 | ||
![]() |
6d9cac5ffc | ||
![]() |
6248030426 | ||
![]() |
6708229a7e | ||
![]() |
91f973afdb | ||
![]() |
14f5a879a9 | ||
![]() |
eaa81be051 | ||
![]() |
83b573aed7 | ||
![]() |
c78fb0f895 | ||
![]() |
5441578f08 | ||
![]() |
c142473405 | ||
![]() |
fc1307e939 | ||
![]() |
5836dc4ce6 | ||
![]() |
93c2400bf4 | ||
![]() |
f4009721a1 | ||
![]() |
a479c9b2af | ||
![]() |
298f11166d | ||
![]() |
7d60c7c75b | ||
![]() |
056ccc9818 | ||
![]() |
3ef6de4ffa | ||
![]() |
1ce56a12fa | ||
![]() |
f736ee8865 | ||
![]() |
40105e1c7e | ||
![]() |
c110c0f76d | ||
![]() |
c675896595 | ||
![]() |
53c2f915d8 | ||
![]() |
795c745491 | ||
![]() |
534aa508d6 | ||
![]() |
d725f2346f | ||
![]() |
dcc5aded6e | ||
![]() |
e01ff4093a | ||
![]() |
f9ad061ea8 | ||
![]() |
d20376c1ff | ||
![]() |
f178f4419e | ||
![]() |
f1c68f698b | ||
![]() |
5948bd3f02 | ||
![]() |
29419e7aac | ||
![]() |
66e5081721 | ||
![]() |
e92fe9d9f8 | ||
![]() |
e3e69269e5 | ||
![]() |
82f7cd2133 | ||
![]() |
7bb493e6ac | ||
![]() |
073a8b01d2 | ||
![]() |
36f7e018ae | ||
![]() |
531924e7e7 | ||
![]() |
2ffc61d21e | ||
![]() |
2d0f930e6a | ||
![]() |
7a42c82d18 | ||
![]() |
d66747407d | ||
![]() |
0e81f8d4e2 | ||
![]() |
4cc33b546c | ||
![]() |
793e817d74 | ||
![]() |
96a0b9021c | ||
![]() |
fe5eafac0a | ||
![]() |
6427a21679 | ||
![]() |
d2ac29c919 | ||
![]() |
a57afd41ac | ||
![]() |
566062c0a5 | ||
![]() |
be51f3e729 | ||
![]() |
3ce043123b | ||
![]() |
2cebc225c0 | ||
![]() |
1f7f678745 | ||
![]() |
610ce94f2d | ||
![]() |
4fa7b412d4 | ||
![]() |
fec0defd04 | ||
![]() |
5287b963c9 | ||
![]() |
f1300ec44f | ||
![]() |
42f0c05d7e | ||
![]() |
108260100c | ||
![]() |
6aac8bfc24 | ||
![]() |
131f170f89 | ||
![]() |
b3a80f2e47 | ||
![]() |
f87213c2f6 | ||
![]() |
a909aac252 | ||
![]() |
4171cd64e0 | ||
![]() |
3cce5d26d7 | ||
![]() |
6032732001 | ||
![]() |
b52879b467 | ||
![]() |
aa26f8fd34 | ||
![]() |
e71c23802f | ||
![]() |
7022c79521 | ||
![]() |
b4833c83cc | ||
![]() |
babe923c8c | ||
![]() |
f0acd02558 | ||
![]() |
63ca777e0f | ||
![]() |
1c96870c17 | ||
![]() |
5745f5048c | ||
![]() |
f2de485cae | ||
![]() |
33b1c969d7 | ||
![]() |
54b7e1838c | ||
![]() |
7977b3695a | ||
![]() |
b3f68f6653 | ||
![]() |
b65b42a5fa | ||
![]() |
27c2babae1 | ||
![]() |
f3d8aac1e9 | ||
![]() |
2421132d80 | ||
![]() |
8300512a91 | ||
![]() |
e8a60a375c | ||
![]() |
f430c03ff3 | ||
![]() |
a53ec1e567 | ||
![]() |
ac308b0418 | ||
![]() |
15aa9df051 | ||
![]() |
3fcfc34ef7 | ||
![]() |
c105d70c73 | ||
![]() |
61fc290ad1 | ||
![]() |
6fdaf21b82 | ||
![]() |
6d7982c8ca | ||
![]() |
058a91d217 | ||
![]() |
d8842b933b | ||
![]() |
675ba0e9b8 | ||
![]() |
1693c9a2ac | ||
![]() |
34d10db7ea | ||
![]() |
23b3adedc3 | ||
![]() |
dd072d2e01 | ||
![]() |
f147a89b68 | ||
![]() |
38e69b2e96 | ||
![]() |
936577c581 | ||
![]() |
0f7b559f0f | ||
![]() |
7f8d215955 | ||
![]() |
02a942cf72 | ||
![]() |
2a9ba56cdc | ||
![]() |
324d92ea31 | ||
![]() |
933543a0d2 | ||
![]() |
11d56235f9 | ||
![]() |
0d4e673366 | ||
![]() |
37ebf212d5 | ||
![]() |
4f3553af5b | ||
![]() |
4c4d3cfc3f | ||
![]() |
5d19b24776 | ||
![]() |
ed603b07a5 | ||
![]() |
11ecb516d4 | ||
![]() |
0930b2daff | ||
![]() |
4bcaac50f2 | ||
![]() |
ed9415c659 | ||
![]() |
997e013d7e | ||
![]() |
5b4baee9fa | ||
![]() |
30c95f3bbb | ||
![]() |
9ccc02b131 | ||
![]() |
63869d8e37 | ||
![]() |
4e26bb65ae | ||
![]() |
6b1dd3e441 | ||
![]() |
264dbf9e46 | ||
![]() |
a148adc5e4 | ||
![]() |
b7913f09ad | ||
![]() |
4740242bb9 | ||
![]() |
add7f762a6 | ||
![]() |
d251695fa2 | ||
![]() |
0e3ec24d2c | ||
![]() |
6b690e6b4e | ||
![]() |
31c71c6c5a | ||
![]() |
d66212dcce | ||
![]() |
a10b95f052 | ||
![]() |
96e252872f | ||
![]() |
000efba31c | ||
![]() |
83d1bdcfcb | ||
![]() |
3eda14e2d6 | ||
![]() |
68f337e398 | ||
![]() |
7548dcfe63 | ||
![]() |
76d84ff35c | ||
![]() |
6280bd7a42 | ||
![]() |
3fc33089f3 | ||
![]() |
48a65b05d0 | ||
![]() |
43550c18c0 | ||
![]() |
bd7177a924 | ||
![]() |
57f1033198 | ||
![]() |
0979e6d2e9 | ||
![]() |
b57f1815a4 | ||
![]() |
997d38c362 | ||
![]() |
92d6395a8d | ||
![]() |
1b1264e592 | ||
![]() |
23048dbd33 | ||
![]() |
0d0d3118f4 | ||
![]() |
5e3bd92c57 | ||
![]() |
ad781ee9cd | ||
![]() |
8edc041eaf | ||
![]() |
22fc90fd55 | ||
![]() |
a843929d5a | ||
![]() |
6de98eda04 | ||
![]() |
d8a309c734 | ||
![]() |
3680c8637e | ||
![]() |
d37e3828a2 | ||
![]() |
408ec24165 | ||
![]() |
40427b06c7 | ||
![]() |
f1d55468dd | ||
![]() |
798e872f48 | ||
![]() |
12bc0d7b10 | ||
![]() |
502040c86a | ||
![]() |
aa4cbf444b | ||
![]() |
bede3d8011 | ||
![]() |
f130a724e5 | ||
![]() |
fb846b669c | ||
![]() |
145d1c1739 | ||
![]() |
dfabb8aa4f | ||
![]() |
7bcb190aa8 | ||
![]() |
93da59682f | ||
![]() |
4afd3445c4 | ||
![]() |
8d8812cb6a | ||
![]() |
2bcc2fa4bd | ||
![]() |
5bf632e9cc | ||
![]() |
a94bd8f5c4 | ||
![]() |
5bb88d259c | ||
![]() |
2de0c108ba | ||
![]() |
5c088d10a4 | ||
![]() |
3221421a74 | ||
![]() |
8af1230228 | ||
![]() |
2a5b7aab86 | ||
![]() |
21a9760ff5 | ||
![]() |
9f037a7c23 | ||
![]() |
a21b447c75 | ||
![]() |
43c3150e81 | ||
![]() |
5a01877c77 | ||
![]() |
70d48d03a5 | ||
![]() |
5903d7d10f | ||
![]() |
984435d7ea | ||
![]() |
9f959ea876 | ||
![]() |
b726183981 | ||
![]() |
a9a41aec83 | ||
![]() |
edd73fa0e4 | ||
![]() |
dd983d112d | ||
![]() |
aba5a34335 | ||
![]() |
8c7538e996 | ||
![]() |
e9e32d71e4 | ||
![]() |
897d70982e | ||
![]() |
5383cd9c9c | ||
![]() |
20a9a3a8c2 | ||
![]() |
195cbb6a1c | ||
![]() |
f56219be95 | ||
![]() |
ee445d2915 | ||
![]() |
a8b9dd8dfc | ||
![]() |
ca4e38ff03 | ||
![]() |
441af8389b | ||
![]() |
0aaf80402b | ||
![]() |
46560d0018 | ||
![]() |
c64701e744 | ||
![]() |
b1da644b62 | ||
![]() |
e682e99bf5 | ||
![]() |
aed6a3a343 | ||
![]() |
ec293c1fd0 | ||
![]() |
8232cf33b4 | ||
![]() |
a28d673467 | ||
![]() |
9ad92d2c3d | ||
![]() |
34be4de018 | ||
![]() |
e396d9d78d | ||
![]() |
a3c041bcb4 | ||
![]() |
517f17995c | ||
![]() |
fbe28477ff | ||
![]() |
75dd8e46b5 | ||
![]() |
ae5dc3a4fb | ||
![]() |
4742177daa | ||
![]() |
5bf8f12cf0 | ||
![]() |
8ae72d5f7f | ||
![]() |
8e073505f7 | ||
![]() |
729b8f9c2d | ||
![]() |
17101294aa | ||
![]() |
16e15554da | ||
![]() |
cae60f7c29 | ||
![]() |
0f67282dfa | ||
![]() |
2c0bb894b8 | ||
![]() |
17b4481767 | ||
![]() |
ef817cd267 | ||
![]() |
1f378e6775 | ||
![]() |
a0eb4285b2 | ||
![]() |
4d9d133ebc | ||
![]() |
7663f7d922 | ||
![]() |
23a6d4f276 | ||
![]() |
c659f9c5d2 | ||
![]() |
b5073b34ee | ||
![]() |
4aa12b76e7 | ||
![]() |
326e55c8f8 | ||
![]() |
4a4577cf8a | ||
![]() |
bc731c0ff6 | ||
![]() |
3b4c33afe0 | ||
![]() |
a7865d79ea | ||
![]() |
70b050ebb4 | ||
![]() |
fa08434b28 | ||
![]() |
ad1cfe8347 | ||
![]() |
3e767c166c | ||
![]() |
52e264948d | ||
![]() |
5c30ac0e8e | ||
![]() |
7811c04f9d | ||
![]() |
6238103f21 | ||
![]() |
1158419b7f | ||
![]() |
f0b1b0236c | ||
![]() |
f107b2f910 | ||
![]() |
3b898a9800 | ||
![]() |
8774e88d4e | ||
![]() |
eb96ff0757 | ||
![]() |
1d042f1e71 | ||
![]() |
5fbdb8c459 | ||
![]() |
1ec8188b5c | ||
![]() |
1a74ce1b10 | ||
![]() |
35e3ac8b4c | ||
![]() |
288601e386 | ||
![]() |
7db2ab9863 | ||
![]() |
2b670a8e13 | ||
![]() |
70ec59d566 | ||
![]() |
5c0e15f50f | ||
![]() |
19fde96d30 | ||
![]() |
8022539f82 | ||
![]() |
10a7e39456 | ||
![]() |
cf77897388 | ||
![]() |
6ae333869e | ||
![]() |
a50605c5df | ||
![]() |
c1060d56b3 | ||
![]() |
5cf5f71c72 | ||
![]() |
18c2ff561f | ||
![]() |
ce68a864f0 | ||
![]() |
37bac094c7 | ||
![]() |
8c85bae931 | ||
![]() |
55c68d809d | ||
![]() |
84cb4ce31a | ||
![]() |
ee6d9b3116 | ||
![]() |
1d62f37cbb | ||
![]() |
c8fce8850b | ||
![]() |
41e8f1374b | ||
![]() |
eccff1ea95 | ||
![]() |
42e4a95b64 | ||
![]() |
83063e5527 | ||
![]() |
f0272e5fec | ||
![]() |
4efef78216 | ||
![]() |
f4e434fffd | ||
![]() |
6b57a23273 | ||
![]() |
dbb1096c24 | ||
![]() |
b0ba0a1c8c | ||
![]() |
afdaab9cc6 | ||
![]() |
8e8dc76362 | ||
![]() |
053e3d307b | ||
![]() |
7a7790a212 | ||
![]() |
78f474b143 | ||
![]() |
5078fc5243 | ||
![]() |
7836cc8f31 | ||
![]() |
91254bb6cc | ||
![]() |
bebbeed81d | ||
![]() |
a41cb2c827 | ||
![]() |
e1e525ba3d | ||
![]() |
523799a45f | ||
![]() |
7aa84cd372 | ||
![]() |
084a20c865 | ||
![]() |
c7eee9ee7a | ||
![]() |
469001b7f6 | ||
![]() |
780d4af8bc | ||
![]() |
b99831ce36 | ||
![]() |
1901cbf334 | ||
![]() |
0b9130aba9 | ||
![]() |
cf9943a3dd | ||
![]() |
c2165fc097 | ||
![]() |
d4c825186e | ||
![]() |
6c952d4168 | ||
![]() |
e7ea084cc3 | ||
![]() |
60b859dbf2 | ||
![]() |
e7befe2ed1 | ||
![]() |
7b1092f991 | ||
![]() |
1e721ae567 | ||
![]() |
db2984de6e | ||
![]() |
fde50e0f1c | ||
![]() |
0cc8b6d10f | ||
![]() |
2847aeb181 | ||
![]() |
a5188142ba | ||
![]() |
2d1232878d | ||
![]() |
c78d32074e | ||
![]() |
a705b42899 | ||
![]() |
4fb790ca4c | ||
![]() |
179fa8e5aa | ||
![]() |
8b14ab1221 | ||
![]() |
16bb579bab | ||
![]() |
0da6b2049d | ||
![]() |
ccc8dac0a5 | ||
![]() |
b475cd28d5 | ||
![]() |
0682811107 | ||
![]() |
70010ec50a | ||
![]() |
e4fb46f230 | ||
![]() |
3bb6cdff4e | ||
![]() |
3f440821d9 | ||
![]() |
c0e7b92e91 | ||
![]() |
431a6328dc | ||
![]() |
ed25a57d08 | ||
![]() |
5279badd5b | ||
![]() |
fa45f971f4 | ||
![]() |
775f3dfca3 | ||
![]() |
e768b54d89 | ||
![]() |
bc6cbdc41a | ||
![]() |
d7e42e6614 | ||
![]() |
e7cab27c38 | ||
![]() |
288461fbee | ||
![]() |
92c1f4b0b9 | ||
![]() |
3278507ae8 | ||
![]() |
87bb949a93 | ||
![]() |
a5a09f5ba4 | ||
![]() |
c149ba1907 | ||
![]() |
d474c81b90 | ||
![]() |
96573917a0 | ||
![]() |
4c01d776c5 | ||
![]() |
466aab543f | ||
![]() |
92c004cb25 | ||
![]() |
520ba27bb7 | ||
![]() |
1f710768e9 | ||
![]() |
b5a34f5f3c | ||
![]() |
75d5a519c8 | ||
![]() |
bf61f29f57 | ||
![]() |
c4de001023 | ||
![]() |
b011706aad | ||
![]() |
53c7b8922f | ||
![]() |
ccde429bde | ||
![]() |
487b1d72ab | ||
![]() |
18831374ca | ||
![]() |
b5c1f52ddb | ||
![]() |
fd1db0c8e6 | ||
![]() |
c24aa0e9be | ||
![]() |
b389171476 | ||
![]() |
fcbc58401f | ||
![]() |
bdf14cf29d | ||
![]() |
259266223c | ||
![]() |
ed584e769f | ||
![]() |
858e705973 | ||
![]() |
a8d0a84530 | ||
![]() |
a25a0011ea | ||
![]() |
7d33d39a45 | ||
![]() |
7f2f603fbd | ||
![]() |
20b6d8ad79 | ||
![]() |
5fd7e0814d | ||
![]() |
7f3dda7ea4 | ||
![]() |
6cf8007cf7 | ||
![]() |
95df073455 | ||
![]() |
5b37e86391 | ||
![]() |
f27fd0f550 | ||
![]() |
297e9cb8ab | ||
![]() |
02e6ef7e9b | ||
![]() |
e865535f6e | ||
![]() |
b8dd767fe4 | ||
![]() |
a477921b80 | ||
![]() |
92fa2228e9 | ||
![]() |
abfab82ef7 | ||
![]() |
6af6357949 | ||
![]() |
f390941fd6 | ||
![]() |
33135f19dc | ||
![]() |
9405522dd5 | ||
![]() |
3cdd6f4f5e | ||
![]() |
830d49c185 | ||
![]() |
787960e56d | ||
![]() |
b36b7031a1 | ||
![]() |
6d6b911fad | ||
![]() |
b7f6da7857 | ||
![]() |
0a8e71f862 | ||
![]() |
c0ee4a252a | ||
![]() |
2054a06533 | ||
![]() |
03ea024bc1 | ||
![]() |
8016e0be6d | ||
![]() |
70f6e8b03f | ||
![]() |
00cce91dc4 | ||
![]() |
eb3f3fff83 | ||
![]() |
9a3239ba9f | ||
![]() |
cd664078ad | ||
![]() |
8571bd67f9 | ||
![]() |
3dc45fcd55 | ||
![]() |
e8ab00aa4b | ||
![]() |
f7424c8a76 | ||
![]() |
550d29d930 | ||
![]() |
9ea87ec096 | ||
![]() |
b50c1c4fa0 | ||
![]() |
852eb2e0d5 | ||
![]() |
df57f17be8 | ||
![]() |
010e9199ca | ||
![]() |
2e68f0a4d4 | ||
![]() |
80b72dd6cb | ||
![]() |
eae4124ed8 | ||
![]() |
72220bb69f | ||
![]() |
c979ece916 | ||
![]() |
95ccf3abb2 | ||
![]() |
2544c1fb22 | ||
![]() |
d5995ac45c | ||
![]() |
acc2ea724f | ||
![]() |
c903754b70 | ||
![]() |
04143645f2 | ||
![]() |
2855c44118 | ||
![]() |
5c21d9a123 | ||
![]() |
7e329d3e4c | ||
![]() |
4d39f2728a | ||
![]() |
58a5f3f1f8 | ||
![]() |
a6e0878b11 | ||
![]() |
b11dadafb1 | ||
![]() |
46e395055d | ||
![]() |
222c3c888d | ||
![]() |
a91ed99054 | ||
![]() |
a4f494e2ae | ||
![]() |
c3acbf1a49 | ||
![]() |
49cf8d80a6 | ||
![]() |
cc0a688b5d | ||
![]() |
7eab97653d | ||
![]() |
c194f7a0cd | ||
![]() |
a01a40394a | ||
![]() |
a7b7c10474 | ||
![]() |
d3f40d70e2 | ||
![]() |
820879d2ef | ||
![]() |
8f8f2ebd2d | ||
![]() |
578fd7f7f8 | ||
![]() |
4aaacc04a5 | ||
![]() |
6abb9ec427 | ||
![]() |
66ce764d67 | ||
![]() |
9caf5f5a86 | ||
![]() |
c6abf65dd1 | ||
![]() |
e34248a2ad | ||
![]() |
58ccfb558a | ||
![]() |
7711f6b5b6 | ||
![]() |
55a384e165 | ||
![]() |
2333815b6c | ||
![]() |
ab8717e320 | ||
![]() |
3e83364937 | ||
![]() |
805c8601a9 | ||
![]() |
7e834a1c32 | ||
![]() |
edb5f7c69d | ||
![]() |
e911d53a2e | ||
![]() |
ef686d62aa | ||
![]() |
cd82a610c3 | ||
![]() |
9440c775c7 | ||
![]() |
793e271989 | ||
![]() |
a88689ca75 | ||
![]() |
fb2021bc9f | ||
![]() |
4ffbd93ab5 | ||
![]() |
ecd14a8739 | ||
![]() |
2c6d978ed5 | ||
![]() |
9bdc29e00f | ||
![]() |
98f71d3e7a | ||
![]() |
001dfcf3d6 | ||
![]() |
357dd26cf9 | ||
![]() |
aadb2c05e5 | ||
![]() |
2e9ee16455 | ||
![]() |
aa7cceebe9 | ||
![]() |
8220db8ce1 | ||
![]() |
22b2344f50 | ||
![]() |
1ec4383931 | ||
![]() |
7f0c247767 | ||
![]() |
88b317dba3 | ||
![]() |
a2b473b77f | ||
![]() |
d8c64c0511 | ||
![]() |
6769f3c307 | ||
![]() |
238015c171 | ||
![]() |
5ef36b39c4 | ||
![]() |
c2ddb6eca6 | ||
![]() |
9659b484b5 | ||
![]() |
6f01897907 | ||
![]() |
c23adeef38 | ||
![]() |
1037428813 | ||
![]() |
39f4cf3d19 | ||
![]() |
432fec7065 | ||
![]() |
7c77133a83 | ||
![]() |
f0a0333bc0 | ||
![]() |
2ab5d3cd81 | ||
![]() |
7c9e913ca9 | ||
![]() |
9f2ff0cb9c | ||
![]() |
40818d4f7c | ||
![]() |
d2ec05a102 | ||
![]() |
d924593993 | ||
![]() |
833f7f1142 | ||
![]() |
49ed5bc870 | ||
![]() |
652bae7379 | ||
![]() |
a7c560c159 | ||
![]() |
38f044cd87 | ||
![]() |
2d76c105bf | ||
![]() |
c015a6248d | ||
![]() |
7a60fb2d08 | ||
![]() |
7d99042070 | ||
![]() |
054b7325dc | ||
![]() |
ce507f35df | ||
![]() |
e7d28a85c8 | ||
![]() |
6491ea41fb | ||
![]() |
9b99e41cb2 | ||
![]() |
8556877883 | ||
![]() |
155ddc3f8f | ||
![]() |
3febc7c5ee | ||
![]() |
b2fe9fd7db | ||
![]() |
562bd7e458 | ||
![]() |
cac32fc60d | ||
![]() |
039e248ec9 | ||
![]() |
31c5af74c5 | ||
![]() |
0da47903f4 | ||
![]() |
b253e2efe2 | ||
![]() |
b1aab1e7bf | ||
![]() |
531d4a480e | ||
![]() |
c3ba6e252e | ||
![]() |
897649a3af | ||
![]() |
e76a151b42 | ||
![]() |
0d61b94c10 | ||
![]() |
2695361274 | ||
![]() |
015efcf9e5 | ||
![]() |
426fa8d8f9 | ||
![]() |
50a88dcfe7 | ||
![]() |
faa0c36def | ||
![]() |
bb0ea99d91 | ||
![]() |
3257203b6c | ||
![]() |
bb96388902 | ||
![]() |
ce06eb5f64 | ||
![]() |
ecb77fb8bc | ||
![]() |
9c6cf61cd4 | ||
![]() |
2f9660c02c | ||
![]() |
959b2c8d7f | ||
![]() |
2f2f1df637 | ||
![]() |
2435cee11b | ||
![]() |
f44c24ef88 | ||
![]() |
55a2e73b00 | ||
![]() |
1c4aea1515 | ||
![]() |
0c01c4c4ec | ||
![]() |
34af1feed3 | ||
![]() |
869db0357a | ||
![]() |
15567bfc24 | ||
![]() |
7962651dd8 | ||
![]() |
38a81a7aed | ||
![]() |
c75c4a9685 | ||
![]() |
dd3853abeb | ||
![]() |
f5eb413c31 | ||
![]() |
7d05f4c0c5 | ||
![]() |
361d03b578 | ||
![]() |
58867b0717 | ||
![]() |
81358c8dca | ||
![]() |
72e47cf8bc | ||
![]() |
824185f23e | ||
![]() |
721702fce4 | ||
![]() |
340d190bf0 | ||
![]() |
7845399c00 | ||
![]() |
ca5e361977 | ||
![]() |
02b08e0ec9 | ||
![]() |
37c2c3a4ba | ||
![]() |
355c8a4d16 | ||
![]() |
a40c2c3c16 | ||
![]() |
1a826a1e51 | ||
![]() |
1c0677faab | ||
![]() |
cdfec43b66 | ||
![]() |
b43fa129d6 | ||
![]() |
c61e36b035 | ||
![]() |
ad3f837b36 | ||
![]() |
b5000dcd94 | ||
![]() |
658567bbbd | ||
![]() |
eb9e6614e5 | ||
![]() |
cbdaceb1cb | ||
![]() |
beaf665ea9 | ||
![]() |
e67a62453d | ||
![]() |
5a5e0df574 | ||
![]() |
1abc3ba1da | ||
![]() |
9ee25e8a69 | ||
![]() |
8cea111329 | ||
![]() |
49243db4b3 | ||
![]() |
7fd900647e | ||
![]() |
f24ec13963 | ||
![]() |
bf0659f07b | ||
![]() |
3d89a68fff | ||
![]() |
28c7083876 | ||
![]() |
5219bc51e5 | ||
![]() |
103772ee8f | ||
![]() |
cd9174e7e8 | ||
![]() |
033d8c3099 | ||
![]() |
391290aa4a | ||
![]() |
1ed28d62e6 | ||
![]() |
f91fb5645b | ||
![]() |
c4e10a1ac1 | ||
![]() |
6c0adaed0f | ||
![]() |
991426e84e | ||
![]() |
4aa28988a6 | ||
![]() |
2dce107738 | ||
![]() |
cb3f67e810 | ||
![]() |
cfad2e817b | ||
![]() |
9fa26387ef | ||
![]() |
099a2d7f03 | ||
![]() |
c03942d3c1 | ||
![]() |
9a3a6a8352 | ||
![]() |
01233a48d1 | ||
![]() |
cbb3f6f64f | ||
![]() |
4dc4911ece | ||
![]() |
3d0e29f3ff | ||
![]() |
cc646ecf46 | ||
![]() |
1172332621 | ||
![]() |
c23e3f8586 | ||
![]() |
530785926e | ||
![]() |
36a3a3ffa4 | ||
![]() |
1de35bbcb9 | ||
![]() |
ea4a056d34 | ||
![]() |
68418ecd53 | ||
![]() |
1317a55a9d | ||
![]() |
cc0d7acaef | ||
![]() |
6744e57c68 | ||
![]() |
88736a2ddb | ||
![]() |
5cdfe3d70e | ||
![]() |
d0c5191aef | ||
![]() |
e962e9b517 | ||
![]() |
74b94ef30a | ||
![]() |
a09452bf1b | ||
![]() |
a28b7e9205 | ||
![]() |
b5ff0442d4 | ||
![]() |
99ed984af2 | ||
![]() |
5890826356 | ||
![]() |
c990d35d6d | ||
![]() |
20bb71c627 | ||
![]() |
01b2545d1d | ||
![]() |
d30771ecff | ||
![]() |
b8f5cf9d52 | ||
![]() |
1739418f6f | ||
![]() |
0e8ccc7352 | ||
![]() |
8506637ae6 | ||
![]() |
464dc78172 | ||
![]() |
88d1cdc067 | ||
![]() |
f5f2a4dd20 | ||
![]() |
87579b8594 | ||
![]() |
9818543ebe | ||
![]() |
e522d54d7b | ||
![]() |
9ba9e29843 | ||
![]() |
a1cb52dcd3 | ||
![]() |
5dbef8b47a | ||
![]() |
248acbea5b | ||
![]() |
c9d0bbefc2 | ||
![]() |
e18f16d94d | ||
![]() |
5ef51b8213 | ||
![]() |
86dbfb98d7 | ||
![]() |
d8e7a6634e | ||
![]() |
ffc6fe8686 | ||
![]() |
579b15bef7 | ||
![]() |
e68c1d2cad | ||
![]() |
5a5c9e4387 | ||
![]() |
b915084c38 | ||
![]() |
8ab3010bb8 | ||
![]() |
7cfb026e84 | ||
![]() |
bcb4e624a4 | ||
![]() |
2f4af5eb87 | ||
![]() |
7af3f28e5e | ||
![]() |
94cca0cc17 | ||
![]() |
57fdfe76bb | ||
![]() |
b90deebfb2 | ||
![]() |
13805f7cc5 | ||
![]() |
527dcea266 | ||
![]() |
1a3a03577b | ||
![]() |
f0549e182e | ||
![]() |
68c9ab63b5 | ||
![]() |
b8d5c1cf42 | ||
![]() |
638a31cc8c | ||
![]() |
8b8e0bedad | ||
![]() |
1430660933 | ||
![]() |
f6319efaa1 | ||
![]() |
f95476b181 | ||
![]() |
731da5aea5 | ||
![]() |
a67b8b35f6 | ||
![]() |
740c9c6644 | ||
![]() |
f279937377 | ||
![]() |
26522ab8c2 | ||
![]() |
9d81a5f5ec | ||
![]() |
22edfd2c5d | ||
![]() |
c3b14dff71 | ||
![]() |
5bc41dc694 | ||
![]() |
e0035e153d | ||
![]() |
08db61e27e | ||
![]() |
bcb6ee6db6 | ||
![]() |
c47459b4a2 | ||
![]() |
fb271a67ec | ||
![]() |
4aff16c148 | ||
![]() |
5b1d390379 | ||
![]() |
23cc50b12c | ||
![]() |
e1e2f823ba | ||
![]() |
292d89dbe2 | ||
![]() |
00d1e34957 | ||
![]() |
08fd1688ff | ||
![]() |
d33161ad66 | ||
![]() |
de814d32ef | ||
![]() |
b7ffbf933f | ||
![]() |
db45fab85e | ||
![]() |
fbb1994934 | ||
![]() |
327caf903c | ||
![]() |
db08bf1655 | ||
![]() |
65a7c81c94 | ||
![]() |
d3aece21d8 | ||
![]() |
78e861b50e | ||
![]() |
cbcb0b795c | ||
![]() |
70a2a0afd5 | ||
![]() |
9583ea1b7a | ||
![]() |
b10b0f06c3 | ||
![]() |
3ff11cdd86 | ||
![]() |
185a4ea10b | ||
![]() |
52790fb92c | ||
![]() |
f40c9a4d38 | ||
![]() |
7884872d4e | ||
![]() |
04c5bb2984 | ||
![]() |
c4e2a70010 | ||
![]() |
a0595e07b2 | ||
![]() |
a23b5328a5 | ||
![]() |
871f90e448 | ||
![]() |
c7e65b0c1c | ||
![]() |
3cf56b8af3 | ||
![]() |
8f989f6bfd | ||
![]() |
7de4d569b0 | ||
![]() |
d790b0f60e | ||
![]() |
43083f3af5 | ||
![]() |
b9ef1c9a0d | ||
![]() |
0a1ade0158 | ||
![]() |
eb5694794c | ||
![]() |
48394d0328 | ||
![]() |
d347b0929a | ||
![]() |
9f3f9205d8 | ||
![]() |
64dd10b98f | ||
![]() |
b752ade112 | ||
![]() |
dc18f1a2b9 | ||
![]() |
104a46cfa4 | ||
![]() |
753f3ea72b | ||
![]() |
984d123fe4 | ||
![]() |
8f50c7f269 | ||
![]() |
87f35bd1c1 | ||
![]() |
82cad3cf33 | ||
![]() |
8c3caee15c | ||
![]() |
02d82720d2 | ||
![]() |
fff16bff69 | ||
![]() |
2fca0477bc | ||
![]() |
4b6c461d6f | ||
![]() |
f242c6b5c4 | ||
![]() |
b799462745 | ||
![]() |
9ff77a5622 | ||
![]() |
43404bf4dc | ||
![]() |
d772b2ce39 | ||
![]() |
28b54fe22b | ||
![]() |
390812828a | ||
![]() |
0929f39e89 | ||
![]() |
2d2df4b99f | ||
![]() |
a727b59b2b | ||
![]() |
a22074a85c | ||
![]() |
8653229607 | ||
![]() |
8b44d0b3bb | ||
![]() |
5fc0bbc58f | ||
![]() |
f04a388f00 | ||
![]() |
d223cfce1d | ||
![]() |
1a4b128af3 | ||
![]() |
b8931dd1db | ||
![]() |
0b4a1e2154 | ||
![]() |
a9fc3b6fa0 | ||
![]() |
de3e77570e | ||
![]() |
41ff0b440b | ||
![]() |
91ee75ae4d | ||
![]() |
3793dac313 | ||
![]() |
1ab2603e0f | ||
![]() |
ec20c455c7 | ||
![]() |
f292132762 | ||
![]() |
1a8a048136 | ||
![]() |
5553f7bf68 | ||
![]() |
95c8747ab5 | ||
![]() |
1775b75f2c | ||
![]() |
e441094af0 | ||
![]() |
fb9c52ecf4 | ||
![]() |
7bd90e6ec4 | ||
![]() |
908eb6d156 | ||
![]() |
d4743378cf | ||
![]() |
eea073c97b | ||
![]() |
d8838cff0b | ||
![]() |
887a77fbab | ||
![]() |
95d9b1e627 | ||
![]() |
5ec18f426c | ||
![]() |
1bdcbac96c | ||
![]() |
1213e919d4 | ||
![]() |
e494d94fb3 | ||
![]() |
75c703071a | ||
![]() |
c32f7adb10 | ||
![]() |
e25aa9f424 | ||
![]() |
d751a93ecf | ||
![]() |
c2484f48ef | ||
![]() |
8e14d26275 | ||
![]() |
e1be836283 | ||
![]() |
3e9cfacb7d | ||
![]() |
32764f3a1d | ||
![]() |
465ac5b1b7 | ||
![]() |
ffbba3e460 | ||
![]() |
e87e5e7361 | ||
![]() |
95de198761 | ||
![]() |
9e341a3d60 | ||
![]() |
7bb6d3b728 | ||
![]() |
182f8ddd1a | ||
![]() |
1270e04480 | ||
![]() |
f1f9d5eb4b | ||
![]() |
4d609a884e | ||
![]() |
8ed08aaecf | ||
![]() |
16513e4eb6 | ||
![]() |
5dd1ebb583 | ||
![]() |
1f733c9e7f | ||
![]() |
a91f9ed0e2 | ||
![]() |
2a836b0ab7 | ||
![]() |
776d25b065 | ||
![]() |
d88adb131c | ||
![]() |
d9d884b6e2 | ||
![]() |
cff6860fd9 | ||
![]() |
0cd95a791f | ||
![]() |
2fa4fc8902 | ||
![]() |
ffe06f1ccd | ||
![]() |
c838d3d7d2 | ||
![]() |
190c744a6f | ||
![]() |
ac87154362 | ||
![]() |
5c4a30d85f | ||
![]() |
adace942d0 | ||
![]() |
b4d83e6349 | ||
![]() |
0414e9e281 | ||
![]() |
dd9ca556f9 | ||
![]() |
a4005946e1 | ||
![]() |
fbdaea7456 | ||
![]() |
114c3f5665 | ||
![]() |
eea7088919 | ||
![]() |
7cb7cdf88d | ||
![]() |
f773baa418 | ||
![]() |
95fbeb5b82 | ||
![]() |
a00a727e77 | ||
![]() |
8c5122876f | ||
![]() |
3cf181a670 | ||
![]() |
886e33d7b7 | ||
![]() |
b1f788a768 | ||
![]() |
05eeaddb04 | ||
![]() |
8b6e1fe5b1 | ||
![]() |
61b7dffcaa | ||
![]() |
2084d5f256 | ||
![]() |
e691404a57 | ||
![]() |
4f9d7c565a | ||
![]() |
c96af1b3b1 | ||
![]() |
1377e6d225 | ||
![]() |
9ad4537d03 | ||
![]() |
87df0004c9 | ||
![]() |
4fe3a01f1b | ||
![]() |
0653bcb16e | ||
![]() |
66f73f7133 | ||
![]() |
81cef6e63b | ||
![]() |
f73c90bf5d | ||
![]() |
c00b8740aa | ||
![]() |
ffcd633c01 | ||
![]() |
73ff4b8f74 | ||
![]() |
beb961fb80 | ||
![]() |
2850c3b58a | ||
![]() |
9aa2383e05 | ||
![]() |
6484df9134 | ||
![]() |
e25029eff6 | ||
![]() |
2592286988 | ||
![]() |
747076abbf | ||
![]() |
20c6a6fcf2 | ||
![]() |
098038cf70 | ||
![]() |
a82223259a | ||
![]() |
d0e12cc082 | ||
![]() |
5da461dc35 | ||
![]() |
7106a3d716 | ||
![]() |
046f21f2dc | ||
![]() |
ff599b5cf7 | ||
![]() |
14ba7effcd | ||
![]() |
43a3338491 | ||
![]() |
7f0778bcf2 | ||
![]() |
0d55a1deef | ||
![]() |
ad5ab92333 | ||
![]() |
ef06e3d02c | ||
![]() |
cc2c45ff4e | ||
![]() |
67fe3d418a | ||
![]() |
5ab7ceb589 | ||
![]() |
2f978fbdcf | ||
![]() |
2637400904 | ||
![]() |
d44a6cde2c | ||
![]() |
a219aae7fc | ||
![]() |
84432a7beb | ||
![]() |
5e76606120 | ||
![]() |
4fac5f3749 | ||
![]() |
f6d1c274b9 | ||
![]() |
0973abf9f9 | ||
![]() |
fbe94156f9 | ||
![]() |
ce015899f3 | ||
![]() |
5fa737834b | ||
![]() |
1607f761d2 | ||
![]() |
5364c2d723 | ||
![]() |
3dc4321689 | ||
![]() |
a8cad9831a | ||
![]() |
46b86570f2 | ||
![]() |
33e07c87c9 | ||
![]() |
4ae75cc868 | ||
![]() |
22a624e560 | ||
![]() |
206d41844e | ||
![]() |
138f74524e | ||
![]() |
98b1af8353 | ||
![]() |
591ef0f40f | ||
![]() |
2775792b20 | ||
![]() |
52354b8bec | ||
![]() |
4b5ccf79a5 | ||
![]() |
240c9b8afc | ||
![]() |
331769bc6b | ||
![]() |
83690744b2 | ||
![]() |
1979fb92f4 | ||
![]() |
3c49d87751 | ||
![]() |
c6f23bbb32 | ||
![]() |
070e017b1b | ||
![]() |
937b10b422 | ||
![]() |
979d72056b | ||
![]() |
d6db3013be | ||
![]() |
810ab6a844 | ||
![]() |
6d6dcf863a | ||
![]() |
c12b280782 | ||
![]() |
d92d1cac2a | ||
![]() |
3d01bb43cc | ||
![]() |
b4e81949ee | ||
![]() |
77654eb01c | ||
![]() |
739b691a6d | ||
![]() |
73d5eb928c | ||
![]() |
8a95212197 | ||
![]() |
fa4f420768 | ||
![]() |
eb5a488b57 | ||
![]() |
9c95ce28ae | ||
![]() |
cf561fcc55 | ||
![]() |
b68f9f2321 | ||
![]() |
ddada2fb3f | ||
![]() |
81403f59ce | ||
![]() |
f7ee6b3bda | ||
![]() |
360124ded0 | ||
![]() |
076f742dd4 | ||
![]() |
b5372468e4 | ||
![]() |
eed2006b4d | ||
![]() |
1873add697 | ||
![]() |
e5e2a56c98 | ||
![]() |
59229d7681 | ||
![]() |
931efcd1e3 | ||
![]() |
21d95c42c6 | ||
![]() |
0ccb7cf353 | ||
![]() |
f617c9b3b7 | ||
![]() |
0565ed3954 | ||
![]() |
6789b7fb6e | ||
![]() |
8a2fa6485e | ||
![]() |
bbb02a8392 | ||
![]() |
c8d5e60390 | ||
![]() |
81641e56b1 | ||
![]() |
e73313ed40 | ||
![]() |
ddd3da487e | ||
![]() |
30683979bc | ||
![]() |
f206e76841 | ||
![]() |
69f9976394 | ||
![]() |
4cebee5c8e | ||
![]() |
b6bb9abfbc | ||
![]() |
995fb09813 | ||
![]() |
2ddcf2fffe | ||
![]() |
3319b2b6ed | ||
![]() |
fb8f6c77dd | ||
![]() |
80475e1d17 | ||
![]() |
af28763a34 | ||
![]() |
8fafd5ace1 | ||
![]() |
4206ab1210 | ||
![]() |
050cb3bfec | ||
![]() |
2e9a0e92db | ||
![]() |
b07b3e4608 | ||
![]() |
c70643404c | ||
![]() |
842ced9212 | ||
![]() |
2babdb458f | ||
![]() |
34af3ffbaf | ||
![]() |
8f93d8fe03 | ||
![]() |
142e07c502 | ||
![]() |
fa47db5363 | ||
![]() |
9eec80e038 | ||
![]() |
a8091fedf3 | ||
![]() |
6c2ea8637e | ||
![]() |
5cb175ff63 | ||
![]() |
da46a47726 | ||
![]() |
03bdb92292 | ||
![]() |
ca5f301eb1 | ||
![]() |
dbe6035da0 | ||
![]() |
d419e5c922 | ||
![]() |
832f27596c | ||
![]() |
a5f1413a1c | ||
![]() |
9a5aed51a3 | ||
![]() |
74a03ebd6e | ||
![]() |
f941a2185e | ||
![]() |
00aad86625 | ||
![]() |
820b7e432b | ||
![]() |
93dcb1954d | ||
![]() |
32e61d2a23 | ||
![]() |
977cd530c7 | ||
![]() |
4c3db76733 | ||
![]() |
5f6cdb0c4e | ||
![]() |
3d89fadc85 | ||
![]() |
c12bccc9c5 | ||
![]() |
0b5092bf3a | ||
![]() |
faf9d59160 | ||
![]() |
1688f2576c | ||
![]() |
82859bd844 | ||
![]() |
865ba546a9 | ||
![]() |
b8bc37fb95 | ||
![]() |
f0db524924 | ||
![]() |
1fb5e8691a | ||
![]() |
c465317e4e | ||
![]() |
41ae32814f | ||
![]() |
f5439c860a | ||
![]() |
706a43138e | ||
![]() |
1da40ccbac | ||
![]() |
4c3ab14571 | ||
![]() |
df8dc33ab6 | ||
![]() |
7eb3e813dd | ||
![]() |
4b01cc1d88 | ||
![]() |
373fc6bcbf | ||
![]() |
72fb87b20e | ||
![]() |
3e79c4b7ea | ||
![]() |
471098df30 | ||
![]() |
0721955dde | ||
![]() |
7ca9cd1994 | ||
![]() |
1947afade9 | ||
![]() |
84b1984f08 | ||
![]() |
8573d53fe6 | ||
![]() |
d0ff2452d5 | ||
![]() |
bb576d1340 | ||
![]() |
f07816f188 | ||
![]() |
02e05a85fc | ||
![]() |
f4a2772045 | ||
![]() |
c7a7474be0 | ||
![]() |
5bfdb1b9cf | ||
![]() |
5521af4b2b | ||
![]() |
fece388f58 | ||
![]() |
9d922e1c62 | ||
![]() |
888daca891 | ||
![]() |
097d1ad21e | ||
![]() |
b32b1e7188 | ||
![]() |
8b0de9be4a | ||
![]() |
89b39775e5 | ||
![]() |
43a46d1741 | ||
![]() |
c4d594980a | ||
![]() |
2314d3dbf0 | ||
![]() |
d6b2d0ef2a | ||
![]() |
a209494b43 | ||
![]() |
43b8472ad2 | ||
![]() |
16348549c4 | ||
![]() |
780ee894d8 | ||
![]() |
3e582a6158 | ||
![]() |
4d7a667dd1 | ||
![]() |
451043357d | ||
![]() |
baa41c3291 | ||
![]() |
6e190acf31 | ||
![]() |
8e7e9cb8ec | ||
![]() |
e2937448bb | ||
![]() |
e2f86f03b8 | ||
![]() |
c1830b563d | ||
![]() |
e09657e263 | ||
![]() |
0e75dc899c | ||
![]() |
c1c3f639c5 | ||
![]() |
95ac157bc5 | ||
![]() |
6fe72db0c4 | ||
![]() |
296f340ff4 | ||
![]() |
020976bf88 | ||
![]() |
e4c13cdba8 | ||
![]() |
b6559d0899 | ||
![]() |
647f29bad1 | ||
![]() |
027171bd5d | ||
![]() |
f8bc9b547c | ||
![]() |
e6c24fbf0a | ||
![]() |
2c1e83ba2f | ||
![]() |
f096675eaf | ||
![]() |
0a27aef508 | ||
![]() |
2df301e2fb | ||
![]() |
bc134016f7 | ||
![]() |
4445a9c637 | ||
![]() |
71b6e223af | ||
![]() |
93619ad420 | ||
![]() |
a6074040e7 | ||
![]() |
c904e86883 | ||
![]() |
14e46d0979 | ||
![]() |
5259d0fa55 | ||
![]() |
bbb69c8f27 | ||
![]() |
683b38f62c | ||
![]() |
b8d4463754 | ||
![]() |
e51a93ee7c | ||
![]() |
93f0ee2089 | ||
![]() |
2aa731a64e | ||
![]() |
7ae5018fe8 | ||
![]() |
b249fe0b2c | ||
![]() |
ddf1a5b23d | ||
![]() |
ab926fc842 | ||
![]() |
a802108558 | ||
![]() |
8b9e6641f2 | ||
![]() |
3e7d64b5ce | ||
![]() |
ea7a91e2ba | ||
![]() |
9d00018f8b | ||
![]() |
2f10caec8f | ||
![]() |
6b7d751007 | ||
![]() |
dccbec2283 | ||
![]() |
b9e35c5970 | ||
![]() |
8b23e73d20 | ||
![]() |
e8460e80b2 | ||
![]() |
541bb0d4d9 | ||
![]() |
ea1e507af7 | ||
![]() |
6dc5ae7a00 | ||
![]() |
ac2eef9aeb | ||
![]() |
371d62a82c | ||
![]() |
521872442a | ||
![]() |
7cfc906c60 | ||
![]() |
77c050c156 | ||
![]() |
f40cd3cae3 | ||
![]() |
f55c77bc81 | ||
![]() |
fda08a6999 | ||
![]() |
b89cb59d79 | ||
![]() |
cb991620b9 | ||
![]() |
d0e145292e | ||
![]() |
7d2da23021 | ||
![]() |
5a788bfa90 | ||
![]() |
30a8ba1bf6 | ||
![]() |
559fd92295 | ||
![]() |
51b9fa751a | ||
![]() |
7d01332574 | ||
![]() |
e6c77789d3 | ||
![]() |
676d11fd06 | ||
![]() |
6d283c012e | ||
![]() |
f794693bdc | ||
![]() |
b629f3337a | ||
![]() |
d0f116da35 | ||
![]() |
a2b4a2c0e4 | ||
![]() |
e69c756c89 | ||
![]() |
839d89f2dc | ||
![]() |
e1ee180172 | ||
![]() |
c5f921bb06 | ||
![]() |
b46673e631 | ||
![]() |
be437f5b64 | ||
![]() |
c90eb2e952 | ||
![]() |
4237dad240 | ||
![]() |
57c79fa357 | ||
![]() |
db28ab4340 | ||
![]() |
7cc7f6cb06 | ||
![]() |
9e45da17d0 | ||
![]() |
202020cd7d | ||
![]() |
bfb1daffbe | ||
![]() |
c4a978b07a | ||
![]() |
2f33eee166 | ||
![]() |
22776adc28 | ||
![]() |
5b9f4acbc8 | ||
![]() |
f26dec559a | ||
![]() |
928603c23e | ||
![]() |
1b6142b271 | ||
![]() |
ac4b0dcac0 | ||
![]() |
1388c277d5 | ||
![]() |
8cfc904c0c | ||
![]() |
a7df90ee55 | ||
![]() |
f7f0514b9f | ||
![]() |
59812c3b02 | ||
![]() |
b1b74d3421 | ||
![]() |
00d41239da | ||
![]() |
c1d04a6175 | ||
![]() |
e5c737a423 | ||
![]() |
57392dfcb5 | ||
![]() |
649cca61eb | ||
![]() |
8824d11e1c | ||
![]() |
17ad77b5b0 | ||
![]() |
9d9c451b0a | ||
![]() |
d84c30ce71 | ||
![]() |
5f99670247 | ||
![]() |
6ae8bd737a | ||
![]() |
5c8f1948ce | ||
![]() |
de40e7ce02 | ||
![]() |
658ec2eb6f | ||
![]() |
70029bf82a | ||
![]() |
5877913ab8 | ||
![]() |
fd785f98bb | ||
![]() |
ccfd33022f | ||
![]() |
e5cb33e911 | ||
![]() |
63e56d0402 | ||
![]() |
a804dab288 | ||
![]() |
dfa7a114de | ||
![]() |
3595b2a847 | ||
![]() |
6ce7f612a6 | ||
![]() |
7d02977482 | ||
![]() |
4d33a73fc4 | ||
![]() |
c3d65d3975 | ||
![]() |
31e386afa6 | ||
![]() |
990b6a6b08 | ||
![]() |
76a3612195 | ||
![]() |
3db5b3da75 | ||
![]() |
e5f5e19eef | ||
![]() |
1f340b4b2d | ||
![]() |
8b5cceed3e | ||
![]() |
95a04eebc8 | ||
![]() |
2b9a6a4820 | ||
![]() |
40340e994c | ||
![]() |
c9e6f8bc8d | ||
![]() |
12ad0fa4b6 | ||
![]() |
3d692e46f4 | ||
![]() |
ad4facf8f1 | ||
![]() |
b0e0aadaf3 | ||
![]() |
57cd5ef085 | ||
![]() |
5e77bd6e9b | ||
![]() |
59bc980250 | ||
![]() |
a87c68d49a | ||
![]() |
e25708fc43 | ||
![]() |
e4cd90b8a0 | ||
![]() |
804d270ba1 | ||
![]() |
6e85c2970b | ||
![]() |
26e1dd8f8e | ||
![]() |
3de3f48faf | ||
![]() |
ec043e1386 | ||
![]() |
6ed94b0034 | ||
![]() |
73e5f7e5d6 | ||
![]() |
e4a175d24a | ||
![]() |
7760389ab8 | ||
![]() |
68f48b9911 | ||
![]() |
dfdb588f58 | ||
![]() |
a24d0c9faf | ||
![]() |
bb07e9c026 | ||
![]() |
7a639a7119 | ||
![]() |
e0655a7f75 | ||
![]() |
ffe7f0d8bf | ||
![]() |
64bfaf23f9 | ||
![]() |
b66368b4d6 | ||
![]() |
19ca1bfb1c | ||
![]() |
0e74b8027a | ||
![]() |
3b33813071 | ||
![]() |
e986beb6a7 | ||
![]() |
ba15da4722 | ||
![]() |
990d1cdf37 | ||
![]() |
6f6d493763 | ||
![]() |
6e77a5a6ca | ||
![]() |
537b5101c6 | ||
![]() |
20744f0482 | ||
![]() |
973a2afdde | ||
![]() |
b234cb2014 | ||
![]() |
396e53244d | ||
![]() |
aeede903f5 | ||
![]() |
d92db73f25 | ||
![]() |
636b1fff8a | ||
![]() |
797c10af37 | ||
![]() |
33d128bcff | ||
![]() |
3b77a16b63 | ||
![]() |
5507ec0fc0 | ||
![]() |
966c4f98c7 | ||
![]() |
d2d3852026 | ||
![]() |
49cc88f0d3 | ||
![]() |
3e02c0cbd5 | ||
![]() |
b044f4864a | ||
![]() |
e1847da139 | ||
![]() |
5f74445b14 | ||
![]() |
104cc2adfe | ||
![]() |
f571519157 | ||
![]() |
6d32b01c64 | ||
![]() |
493b1f5350 | ||
![]() |
e70a4682ac | ||
![]() |
41ee578b7a | ||
![]() |
53c2874667 | ||
![]() |
42bafe9d59 | ||
![]() |
ea0766e62b | ||
![]() |
1c7623db81 | ||
![]() |
aab00da242 | ||
![]() |
269d29624b | ||
![]() |
5f6a15abef | ||
![]() |
5b68e49847 | ||
![]() |
70f030e3c2 | ||
![]() |
08101b0bc5 | ||
![]() |
2fae2eb568 | ||
![]() |
c2c267439b | ||
![]() |
045c84acb7 | ||
![]() |
efc1ceab5d | ||
![]() |
a2a3863ad2 | ||
![]() |
6db455eee5 | ||
![]() |
5edf0dffda | ||
![]() |
d4249679e3 | ||
![]() |
2e0a23aa77 | ||
![]() |
9008e21637 | ||
![]() |
c40ac6b785 | ||
![]() |
1966dfdef7 | ||
![]() |
f8e3539b7d | ||
![]() |
01fa87f2ab | ||
![]() |
9474092f77 | ||
![]() |
69c3c359cb | ||
![]() |
5299f10e13 | ||
![]() |
19a9156ae1 | ||
![]() |
6c97e4a59a | ||
![]() |
77458ef308 | ||
![]() |
f1ed07caf4 | ||
![]() |
22819f8a29 | ||
![]() |
8b979d6dce | ||
![]() |
ea1ff438f8 | ||
![]() |
b7c01b5b4a | ||
![]() |
ec7fd94d0f | ||
![]() |
a389926ca7 | ||
![]() |
aef61661a0 | ||
![]() |
7dcfebcd5d | ||
![]() |
0fb58298a7 | ||
![]() |
b84b715ddb | ||
![]() |
d1dce1e372 | ||
![]() |
33d94521ea | ||
![]() |
672d276276 | ||
![]() |
e3bc3422dc | ||
![]() |
1707159441 | ||
![]() |
77479feee6 | ||
![]() |
722629f9fa | ||
![]() |
f383d7b550 | ||
![]() |
2c8d6ba944 | ||
![]() |
037d4732a6 | ||
![]() |
4e39144d39 | ||
![]() |
108fab11a5 | ||
![]() |
d993588263 | ||
![]() |
1183ac8972 | ||
![]() |
58cece07f0 | ||
![]() |
652f551bec | ||
![]() |
aa6c349545 | ||
![]() |
d1f1be8833 | ||
![]() |
957ddd00dd | ||
![]() |
5244f8d6ac | ||
![]() |
232a46d2dc | ||
![]() |
3638916819 | ||
![]() |
12a01c0460 | ||
![]() |
85beda9c49 | ||
![]() |
70a3d9e895 | ||
![]() |
5306e7cf56 | ||
![]() |
1ff9162598 | ||
![]() |
7e85ca3a16 | ||
![]() |
2b9e781933 | ||
![]() |
84aa359984 | ||
![]() |
6e69893f29 | ||
![]() |
dd670f5107 | ||
![]() |
5667b83328 | ||
![]() |
fd7132db71 | ||
![]() |
f99c988b27 | ||
![]() |
9ded668819 | ||
![]() |
157f50e2de | ||
![]() |
34f08a450e | ||
![]() |
445d88346d | ||
![]() |
8be5a78585 | ||
![]() |
bdcbb9fd42 | ||
![]() |
90f431005b | ||
![]() |
2ad86cde69 | ||
![]() |
6959fa8438 | ||
![]() |
dee7c835de | ||
![]() |
71a1ece7e9 | ||
![]() |
6fac355363 | ||
![]() |
4d18c06804 | ||
![]() |
2f88b3bcfa | ||
![]() |
c4088f0c73 | ||
![]() |
9b45638c15 | ||
![]() |
891b23917b | ||
![]() |
c5e5d61438 | ||
![]() |
d94bcda778 | ||
![]() |
0f1860f066 | ||
![]() |
d3cb6d0d41 | ||
![]() |
1104993c94 | ||
![]() |
f0fc82c80f | ||
![]() |
5fb32fd8a0 | ||
![]() |
bcf4d55dad | ||
![]() |
fa03115f01 | ||
![]() |
35384670c4 | ||
![]() |
e0ddc7a2fa | ||
![]() |
f2dfd9f677 | ||
![]() |
bd4d1950ce | ||
![]() |
479fa9f809 | ||
![]() |
397a8b13e0 | ||
![]() |
1d9d253e4d | ||
![]() |
04e8e52171 | ||
![]() |
1288296fdc | ||
![]() |
5bb7492955 | ||
![]() |
5ec1c15ecf | ||
![]() |
9c1abf487e | ||
![]() |
b2f3c7f309 | ||
![]() |
d1501a4925 | ||
![]() |
8a00aa8223 | ||
![]() |
6f7e9d5bea | ||
![]() |
ad632f1068 | ||
![]() |
21c97aa9d6 | ||
![]() |
d72a1511fe | ||
![]() |
ba02f0ae22 | ||
![]() |
6aa84d0e92 | ||
![]() |
4d11673318 | ||
![]() |
ecdac8c8c1 | ||
![]() |
58592d3f65 | ||
![]() |
1ce6544945 | ||
![]() |
04db2f664b | ||
![]() |
6b1b5ca0e9 | ||
![]() |
483cb42088 | ||
![]() |
468bfce091 | ||
![]() |
2384bd69cc | ||
![]() |
2fe2ccdbde | ||
![]() |
2905b47279 | ||
![]() |
695e0b3e57 | ||
![]() |
48b6807ac9 | ||
![]() |
98309e3226 | ||
![]() |
25a708ed98 | ||
![]() |
19db2e2755 | ||
![]() |
3f6c02b49e | ||
![]() |
113c196078 | ||
![]() |
6697dc6642 | ||
![]() |
731d0f0444 | ||
![]() |
0415a65083 | ||
![]() |
b94d2da567 | ||
![]() |
034c1c12ef | ||
![]() |
a8651882a7 | ||
![]() |
cf7e76d8f2 | ||
![]() |
7bf01b97ca | ||
![]() |
26a42fac0e | ||
![]() |
5eb32a3c47 | ||
![]() |
ab25600b2d | ||
![]() |
a2f52b08e5 | ||
![]() |
7dae4d287c | ||
![]() |
9079561300 | ||
![]() |
4a8c3df814 | ||
![]() |
56fb1cbaaf | ||
![]() |
adbf834c36 | ||
![]() |
f1c42c9f8c | ||
![]() |
81647bfae6 | ||
![]() |
4c50a4d487 | ||
![]() |
362d026dba | ||
![]() |
ae095d2262 | ||
![]() |
e2df9fa759 | ||
![]() |
3d2bc3dca1 | ||
![]() |
9ad0e4675b | ||
![]() |
5f3e5afb88 | ||
![]() |
dd5d2c5d0b | ||
![]() |
ac6aa8d395 | ||
![]() |
af293830f3 | ||
![]() |
60d8c42509 | ||
![]() |
6827dc0964 | ||
![]() |
54dbd1990a | ||
![]() |
8a0ca1b573 | ||
![]() |
b1af4a597f | ||
![]() |
a6466c5ca0 | ||
![]() |
2d29fe0494 | ||
![]() |
e1de7a99e8 | ||
![]() |
5826b8b142 | ||
![]() |
ea79fdea11 | ||
![]() |
e2f3b6211f | ||
![]() |
1d0cb1a9b0 | ||
![]() |
ed207514e9 | ||
![]() |
709b0214a0 | ||
![]() |
d6dea79bde | ||
![]() |
f343e1ba46 | ||
![]() |
cc65dfc90e | ||
![]() |
2800e0c99b | ||
![]() |
7293d91f10 | ||
![]() |
91f811bfbf | ||
![]() |
e97dfc2e19 | ||
![]() |
3b013b1174 | ||
![]() |
048e4acb2c | ||
![]() |
f6d56f4f03 | ||
![]() |
9ff43cd345 | ||
![]() |
7ccc181332 | ||
![]() |
55c1ef779f | ||
![]() |
a74e352726 | ||
![]() |
a090e8eeed | ||
![]() |
528814da79 | ||
![]() |
ba08b0cce5 | ||
![]() |
0e8b266662 | ||
![]() |
8d0c3c7b7c | ||
![]() |
6984b1ec48 | ||
![]() |
507e808a7c | ||
![]() |
7dc65adb1f | ||
![]() |
e2daf04cba | ||
![]() |
00829ca2cc | ||
![]() |
ecda5ec327 | ||
![]() |
6723c308be | ||
![]() |
6c6cdf4c4f | ||
![]() |
3f54601df0 | ||
![]() |
8f40d1331e | ||
![]() |
0eebebb75e | ||
![]() |
c4f1c78fcf | ||
![]() |
db1608ff16 | ||
![]() |
ed1194cd75 | ||
![]() |
1752edd9eb | ||
![]() |
ca2ead9647 | ||
![]() |
ebabdb322c | ||
![]() |
a26310e83f | ||
![]() |
293a67cd01 | ||
![]() |
54bd701ba9 | ||
![]() |
5dc88bda6a | ||
![]() |
d015efc87d | ||
![]() |
5962696c3b | ||
![]() |
11a623aa17 | ||
![]() |
cc748305fb | ||
![]() |
1e76222f19 | ||
![]() |
7983e0d62c | ||
![]() |
ffdf86374a | ||
![]() |
b991d36343 | ||
![]() |
24d433333b | ||
![]() |
a3462dd2bd | ||
![]() |
91d15c89bc | ||
![]() |
7f9bb3c0e5 | ||
![]() |
201ea050bd | ||
![]() |
800054874e | ||
![]() |
3043012c1b | ||
![]() |
a8b450f03d | ||
![]() |
bcff488095 | ||
![]() |
9c70f8aee1 | ||
![]() |
73ec7e5f10 | ||
![]() |
69a744b521 | ||
![]() |
0ed4b5d9c6 | ||
![]() |
c36314ca98 | ||
![]() |
5d81a31a49 | ||
![]() |
00a2d54420 | ||
![]() |
362c5cb05f | ||
![]() |
f6bb1f5e34 | ||
![]() |
e8c845b758 | ||
![]() |
35c9d32e69 | ||
![]() |
071531c5c5 | ||
![]() |
eb7368699b | ||
![]() |
2caa8a3fe1 | ||
![]() |
27cdd6d79c | ||
![]() |
5f8a0dc4a0 | ||
![]() |
732500b418 | ||
![]() |
b6f120a749 | ||
![]() |
e5765dfa79 | ||
![]() |
e2a0f439c6 | ||
![]() |
d0a8cb671b | ||
![]() |
9b78917246 | ||
![]() |
a4bd6efcbf | ||
![]() |
9221d392de | ||
![]() |
3c405a591a | ||
![]() |
702c3f58d9 | ||
![]() |
f73f7c805d | ||
![]() |
050e40a29d | ||
![]() |
7ce828253a | ||
![]() |
e2b5bfb5b0 | ||
![]() |
f13d74bcf0 | ||
![]() |
b346f06a51 | ||
![]() |
1bf686d324 | ||
![]() |
ac11ebbb4a | ||
![]() |
ad0d426bba | ||
![]() |
d0b9242f49 | ||
![]() |
f9c1b6b7cf | ||
![]() |
ad16f984cf | ||
![]() |
f84367880b | ||
![]() |
37974dba06 | ||
![]() |
11db0ed8ae | ||
![]() |
8dfa6beb15 | ||
![]() |
431116c9d8 | ||
![]() |
46d3de26fc | ||
![]() |
233ef4f782 | ||
![]() |
050375cbb6 | ||
![]() |
cc95475ae9 | ||
![]() |
1f9a4e6794 | ||
![]() |
0bf168c834 | ||
![]() |
6ffb6207e7 | ||
![]() |
9c2f8d8ad3 | ||
![]() |
51b6925322 | ||
![]() |
41e3c8830f | ||
![]() |
71f52fd198 | ||
![]() |
4d27fc18eb | ||
![]() |
abf5f18598 | ||
![]() |
b6f338065e | ||
![]() |
e174599533 | ||
![]() |
60e1a73c04 | ||
![]() |
10dcf1dfe9 | ||
![]() |
040cdba707 | ||
![]() |
c0f41aba45 | ||
![]() |
464b85b64c | ||
![]() |
b2138eeaf0 | ||
![]() |
5319d38366 | ||
![]() |
cfedd477b2 | ||
![]() |
418c46538c | ||
![]() |
0b5160e9f0 | ||
![]() |
e79bf71f23 | ||
![]() |
6e11d947e7 | ||
![]() |
a6fd499019 | ||
![]() |
f83729ba48 | ||
![]() |
4b3a49a56e | ||
![]() |
0af5a291ac | ||
![]() |
2b4f1f8b84 | ||
![]() |
6f4fe56b93 | ||
![]() |
ff536e34d6 | ||
![]() |
5291292047 | ||
![]() |
b3edc88010 | ||
![]() |
2c1ade763f | ||
![]() |
533354480a | ||
![]() |
87107a7934 | ||
![]() |
4e39756501 | ||
![]() |
9a4419ce85 | ||
![]() |
e5e89bcbe4 | ||
![]() |
13f776d483 | ||
![]() |
42913c7830 | ||
![]() |
7daabdddef | ||
![]() |
99db6b59be | ||
![]() |
f0339d5e5b | ||
![]() |
c7b8fd1354 | ||
![]() |
17441de37f | ||
![]() |
d4acdf44a9 | ||
![]() |
ba5c773f0f | ||
![]() |
b1561112d0 | ||
![]() |
bbbe81efc5 | ||
![]() |
0c8339d2da | ||
![]() |
1ec3e331de | ||
![]() |
12f48419b6 | ||
![]() |
38445dca2a | ||
![]() |
2b4d89e11f | ||
![]() |
77f5fc34f1 | ||
![]() |
334093a9ea | ||
![]() |
1acb1715c3 | ||
![]() |
3827ce9e4c | ||
![]() |
4e91d11a60 | ||
![]() |
f58fba54a0 | ||
![]() |
afd8d10b82 | ||
![]() |
9bfe4544bf | ||
![]() |
f2c798d319 | ||
![]() |
75cc4b29fd | ||
![]() |
ba6ed1f3c5 | ||
![]() |
6bd9e35cd6 | ||
![]() |
b4b2b10328 | ||
![]() |
f5b5a36835 | ||
![]() |
e6c2105a2b | ||
![]() |
946cf5a375 | ||
![]() |
d7256c71c4 | ||
![]() |
3e81006eaa | ||
![]() |
7c1e68293e | ||
![]() |
0473b0c3f4 | ||
![]() |
9de1aadbab | ||
![]() |
3232cfe138 | ||
![]() |
ebc169dbaf | ||
![]() |
17b0bf585d | ||
![]() |
f36729de39 | ||
![]() |
ba67c506f2 | ||
![]() |
74e1c47623 | ||
![]() |
ce987ba56d | ||
![]() |
5427b0b507 | ||
![]() |
3e5fe5de9a | ||
![]() |
28404e946b | ||
![]() |
7ef9c24e3f | ||
![]() |
e5e9d43d52 | ||
![]() |
1c62ddffc4 | ||
![]() |
a732bb272d | ||
![]() |
e33eed0216 | ||
![]() |
3e9b5d491c | ||
![]() |
baad082438 | ||
![]() |
6dad763e69 | ||
![]() |
63b4cb4ead | ||
![]() |
f2fa47bca7 | ||
![]() |
6d2685b5a2 | ||
![]() |
8bd91e7104 | ||
![]() |
afd4ec6de2 | ||
![]() |
0915a7af46 | ||
![]() |
5fab6faf04 | ||
![]() |
8615dfb73d | ||
![]() |
a34134e643 | ||
![]() |
be7fb45e9f | ||
![]() |
40c3dbbb31 | ||
![]() |
9709d934f0 | ||
![]() |
8c02eea48b | ||
![]() |
643c882597 | ||
![]() |
fe3b0e0ef6 | ||
![]() |
7e00f2fb7f | ||
![]() |
7d4dddb94e | ||
![]() |
b13b6465f2 | ||
![]() |
d4525f2c57 | ||
![]() |
160b26708c | ||
![]() |
48cba761b9 | ||
![]() |
b05826ac9d | ||
![]() |
4e10f972df | ||
![]() |
9beaed45f8 | ||
![]() |
31b2ac4b79 | ||
![]() |
14134d61fb | ||
![]() |
410761d4e3 | ||
![]() |
6a876ef8ec | ||
![]() |
e4a37dd383 | ||
![]() |
18d6faf597 | ||
![]() |
edb8616341 | ||
![]() |
65356c25da | ||
![]() |
85268d4f82 | ||
![]() |
793c727986 | ||
![]() |
773506fe82 | ||
![]() |
34ddd3d9e5 | ||
![]() |
03a1c04a6e | ||
![]() |
b63fa7dfa1 | ||
![]() |
9bab900c75 | ||
![]() |
90499f0749 | ||
![]() |
bef0d5d88e | ||
![]() |
ded9be39c0 | ||
![]() |
b3cb38c3fa | ||
![]() |
2bcd76c3d9 | ||
![]() |
cc690eddb5 | ||
![]() |
392aab2e4a | ||
![]() |
b77c5634f0 | ||
![]() |
62af0c0ec0 | ||
![]() |
4aa875bbf6 | ||
![]() |
da6b478fbe | ||
![]() |
8bc91933cd | ||
![]() |
8bab8f7d64 | ||
![]() |
21d09fe2e0 | ||
![]() |
c23b389cf1 | ||
![]() |
d1c15dbf07 | ||
![]() |
453e6590e8 | ||
![]() |
3a973c692a | ||
![]() |
abd7d9202b | ||
![]() |
10a591fba2 | ||
![]() |
a0760cabd6 | ||
![]() |
b932d35526 | ||
![]() |
9d9d781a0b | ||
![]() |
f7394c00c1 | ||
![]() |
6d3f97ec1e | ||
![]() |
6d80388155 | ||
![]() |
66636195f1 | ||
![]() |
f777138590 | ||
![]() |
deed2707a5 | ||
![]() |
dcc2e9eaf8 | ||
![]() |
74b17f68b5 | ||
![]() |
d749e1b87e | ||
![]() |
e30feb3bfb | ||
![]() |
a092d7ae42 | ||
![]() |
9233413126 | ||
![]() |
24847293f2 | ||
![]() |
7e67312c61 | ||
![]() |
11f5797a91 | ||
![]() |
e31c8e09ed | ||
![]() |
f794afe2d8 | ||
![]() |
63ccdf2cff | ||
![]() |
c19f2aa1bc | ||
![]() |
9751f43529 | ||
![]() |
5bbed046f6 | ||
![]() |
a9f9abd615 | ||
![]() |
e5de000895 | ||
![]() |
9cd3d3826a | ||
![]() |
913c6dc7df | ||
![]() |
17b7920f65 | ||
![]() |
14cac67b98 | ||
![]() |
b0b09bf034 | ||
![]() |
059caef118 | ||
![]() |
960fcc275f | ||
![]() |
e415b6db42 | ||
![]() |
cd6a8f6a65 | ||
![]() |
7db64b8e34 | ||
![]() |
e52aad5dea | ||
![]() |
6899e9d984 | ||
![]() |
52ac670913 | ||
![]() |
077ae6a098 | ||
![]() |
0d226d139b | ||
![]() |
d0403021a4 | ||
![]() |
f4054daf0d | ||
![]() |
0d23f7af31 | ||
![]() |
2b0a81d982 | ||
![]() |
91f9fdb1be | ||
![]() |
df5dd1858a | ||
![]() |
444352418c | ||
![]() |
5be4b0de6b | ||
![]() |
ca336f5310 | ||
![]() |
5ca5afb13d | ||
![]() |
930079ca01 | ||
![]() |
1aa16cdf6b | ||
![]() |
e2a8a3243c | ||
![]() |
8d1a57cde3 | ||
![]() |
10a90b5b67 | ||
![]() |
20ef2150de | ||
![]() |
028759e8f6 | ||
![]() |
7adc2954c3 | ||
![]() |
561a0e3897 | ||
![]() |
1222e80eb1 | ||
![]() |
d903cc9827 | ||
![]() |
02bb81ad44 | ||
![]() |
b16324ef0b | ||
![]() |
f0ade53fd2 | ||
![]() |
49a97a589c | ||
![]() |
d7f75b348d | ||
![]() |
d4a5e5f88e | ||
![]() |
722d41a359 | ||
![]() |
046e92865b | ||
![]() |
cb1b447e8c | ||
![]() |
5b4976f6ef | ||
![]() |
b213c157f0 | ||
![]() |
17ba0252e8 | ||
![]() |
dc0b9a703d | ||
![]() |
6d36eeef3c | ||
![]() |
8a446b7776 | ||
![]() |
279a6b6f58 | ||
![]() |
9440dbba1a | ||
![]() |
a6123c0447 | ||
![]() |
92959bc09c | ||
![]() |
b3c61d90f3 | ||
![]() |
f1472362af | ||
![]() |
d3b7fe3473 | ||
![]() |
ddb85ca1b1 | ||
![]() |
c7635d5f41 | ||
![]() |
a8f760c6d2 | ||
![]() |
77f5fe2560 | ||
![]() |
9808c13796 | ||
![]() |
e73970533a | ||
![]() |
b64f49a0d7 | ||
![]() |
df174a74f8 | ||
![]() |
3878e46707 | ||
![]() |
9144f4db58 | ||
![]() |
9643e9c7a6 | ||
![]() |
f6ec39a5d8 | ||
![]() |
6f7977fef1 | ||
![]() |
fe0536aaaf | ||
![]() |
c0eaa4b158 | ||
![]() |
f228933955 | ||
![]() |
60da3cf6a0 | ||
![]() |
17a19e4837 | ||
![]() |
970fcdf671 | ||
![]() |
e19b5a150a | ||
![]() |
af0004eb52 | ||
![]() |
6f1b22aca5 | ||
![]() |
969839acf3 | ||
![]() |
a92e761c09 | ||
![]() |
62bbad96b1 | ||
![]() |
1c73f757df | ||
![]() |
1067cd3d8a | ||
![]() |
9f57a03926 | ||
![]() |
0afb922375 | ||
![]() |
99843cf54d | ||
![]() |
1c3693c383 | ||
![]() |
27978ef4d0 | ||
![]() |
494279419a | ||
![]() |
ae3e92a3fb | ||
![]() |
ed4260b3c2 | ||
![]() |
18cc119ced | ||
![]() |
613857cf7e | ||
![]() |
447a889559 | ||
![]() |
837cdf0556 | ||
![]() |
e96f94d8d7 | ||
![]() |
6f9a362a4d | ||
![]() |
bcff4e18f4 | ||
![]() |
67f47a6e22 | ||
![]() |
416b617de9 | ||
![]() |
6c3accede8 | ||
![]() |
7915ef5661 | ||
![]() |
6e6689d825 | ||
![]() |
5d9bee98e8 | ||
![]() |
bf179207a1 | ||
![]() |
150b7bdad1 | ||
![]() |
20111048a4 | ||
![]() |
36c7fda40b | ||
![]() |
99da99cb9c | ||
![]() |
b8b5882c75 | ||
![]() |
e6b77cf008 | ||
![]() |
90a3719275 | ||
![]() |
c1bf301bc7 | ||
![]() |
7200c87326 | ||
![]() |
89728070e9 | ||
![]() |
c1ef0c0369 | ||
![]() |
8cc5ee39d0 | ||
![]() |
13b94d995c | ||
![]() |
c58fe676ad | ||
![]() |
68b8ba12c7 | ||
![]() |
8aab16b6e6 | ||
![]() |
b722f537e7 | ||
![]() |
9d5ce6e47d | ||
![]() |
36f841ee80 | ||
![]() |
1317e62722 | ||
![]() |
cd6b850758 | ||
![]() |
0caba3e19f | ||
![]() |
36ff70eb7f | ||
![]() |
77dc5c9dd2 | ||
![]() |
314d52ac3a | ||
![]() |
747c43ffa0 | ||
![]() |
f659e70938 | ||
![]() |
4a51643043 | ||
![]() |
9a9bc43a9b | ||
![]() |
1980f9aed4 | ||
![]() |
141b697f9d | ||
![]() |
f31f8bb782 | ||
![]() |
f0080529c4 | ||
![]() |
88ff566e06 | ||
![]() |
75045d92b4 | ||
![]() |
41130ce25f | ||
![]() |
9b3bd146c6 | ||
![]() |
a7a57011f0 | ||
![]() |
d61e53d6d6 | ||
![]() |
9c064216a2 | ||
![]() |
7b8c2232d3 | ||
![]() |
6f84a5d682 | ||
![]() |
bd315c8394 | ||
![]() |
403b3617f7 | ||
![]() |
39d4cc3702 | ||
![]() |
55c221c572 | ||
![]() |
15efb913bf | ||
![]() |
f412237106 | ||
![]() |
cb7180ef77 | ||
![]() |
e93be23f68 | ||
![]() |
bfec219510 | ||
![]() |
e56002e149 | ||
![]() |
907e62aa29 | ||
![]() |
dc21ea9998 | ||
![]() |
c5b1961c6b | ||
![]() |
bd7c5cc95f | ||
![]() |
02bfa946d5 | ||
![]() |
f7999444eb | ||
![]() |
07ec421cd3 | ||
![]() |
648e0a06ab | ||
![]() |
4d0bf303c6 | ||
![]() |
c0f5f913c9 | ||
![]() |
bab8c28c8b | ||
![]() |
69590c80a1 | ||
![]() |
5bf10dce12 | ||
![]() |
0f2f0ab69f | ||
![]() |
946c0c370f | ||
![]() |
ee78a3d345 | ||
![]() |
72017ea4d8 | ||
![]() |
8c0ccfc5b3 | ||
![]() |
a773588c99 | ||
![]() |
73341b052b | ||
![]() |
1ee9c85954 | ||
![]() |
e3fbbe8fe3 | ||
![]() |
d75c5ec038 | ||
![]() |
ee95a5f3e0 | ||
![]() |
742bca713d | ||
![]() |
899ab302e1 | ||
![]() |
590eb60759 | ||
![]() |
daa79c3598 | ||
![]() |
29322535a5 | ||
![]() |
e0fe12cc05 | ||
![]() |
1d040dd17d | ||
![]() |
7f7191dfec | ||
![]() |
a2df8e4b86 | ||
![]() |
c344c320eb | ||
![]() |
291c2f541c | ||
![]() |
f8590ce44f | ||
![]() |
d3424a922a | ||
![]() |
5cd8ebdafd | ||
![]() |
3bc2b02303 | ||
![]() |
ec4d110251 | ||
![]() |
2018a8fd3c | ||
![]() |
4b1d1e0ed4 | ||
![]() |
644acdacdc | ||
![]() |
791d332a25 | ||
![]() |
009b53c45e | ||
![]() |
5ad8ea6b22 | ||
![]() |
f8f9f7041a | ||
![]() |
2e6a2a148f | ||
![]() |
550edd4262 | ||
![]() |
cfea2ea12c | ||
![]() |
234b804872 | ||
![]() |
f37d1fd7ed | ||
![]() |
c2aac45848 | ||
![]() |
b497400be6 | ||
![]() |
ec5066988e | ||
![]() |
4ab3754a59 | ||
![]() |
b9ea32b8ce | ||
![]() |
69dfc8870d | ||
![]() |
09d538b620 | ||
![]() |
07b653bd71 | ||
![]() |
e8101c1136 | ||
![]() |
8eacde92e6 | ||
![]() |
221f905a1c | ||
![]() |
73c7943fff | ||
![]() |
d8497d9b16 | ||
![]() |
ef0ff94c75 | ||
![]() |
572fc8b5d7 | ||
![]() |
1f6b1d75eb | ||
![]() |
aeada3f1a8 | ||
![]() |
f1f9db8b96 | ||
![]() |
a542e63582 | ||
![]() |
bdb66984b6 | ||
![]() |
6613a695f0 | ||
![]() |
b96a5d702b | ||
![]() |
66c83648c8 | ||
![]() |
1dbeba7065 | ||
![]() |
fc21444f2d | ||
![]() |
907ed239a1 | ||
![]() |
b123b14686 | ||
![]() |
99bde549af | ||
![]() |
1f6aa0e90d | ||
![]() |
18084a3e61 | ||
![]() |
816ff8cef0 | ||
![]() |
2e45a4c7a3 | ||
![]() |
3116a1b92c | ||
![]() |
601acf4059 | ||
![]() |
7e9be00924 | ||
![]() |
43467690f3 | ||
![]() |
2408d4c6a9 | ||
![]() |
0f4d2bb237 | ||
![]() |
86d3f18707 | ||
![]() |
2f814b37e8 | ||
![]() |
bd848a27d2 | ||
![]() |
f091a69790 | ||
![]() |
2466de4556 | ||
![]() |
251caeb22a | ||
![]() |
3abbe6d3ba | ||
![]() |
7e2286eb8c | ||
![]() |
95daca616d | ||
![]() |
14b66e93d1 | ||
![]() |
0ecee3ee92 | ||
![]() |
57d0a4d2e7 | ||
![]() |
480b1a9805 | ||
![]() |
ebffe299ce | ||
![]() |
300f4544ef | ||
![]() |
843cc83f42 | ||
![]() |
78f16d040d | ||
![]() |
6767493428 | ||
![]() |
bb3dad1309 | ||
![]() |
d3fd2b02e7 | ||
![]() |
5efa2a6ca1 | ||
![]() |
a0080ddad7 | ||
![]() |
b0b2de01f5 | ||
![]() |
b48fcf33f7 | ||
![]() |
35aab1a302 | ||
![]() |
c67c7da582 | ||
![]() |
9d86bdfe72 | ||
![]() |
abb97fa574 | ||
![]() |
7e268b9a43 | ||
![]() |
d2931b5d8f | ||
![]() |
2ef11fb65f | ||
![]() |
d511b3601d | ||
![]() |
e03e98e106 | ||
![]() |
dcb8440b52 | ||
![]() |
7eddf98269 | ||
![]() |
da731e6caa | ||
![]() |
79a9ddf66f | ||
![]() |
e8a988f6d3 | ||
![]() |
c7681e8fd7 | ||
![]() |
cff092f4c6 | ||
![]() |
3ebd5b839f | ||
![]() |
be839cb681 | ||
![]() |
3c49bc5086 | ||
![]() |
edf619205c | ||
![]() |
238573d42e | ||
![]() |
4cf127a064 | ||
![]() |
e8c20b5501 | ||
![]() |
cb8085ab72 | ||
![]() |
dd95f727ec | ||
![]() |
67488754d5 | ||
![]() |
4a215a9518 | ||
![]() |
b25da6b9c4 | ||
![]() |
3ba4864f6c | ||
![]() |
77e16770cc | ||
![]() |
cd442eb9e2 | ||
![]() |
6c00c36d62 | ||
![]() |
9ed76729ab | ||
![]() |
b4bfdb2c44 | ||
![]() |
23d2d4ec70 | ||
![]() |
40c1140f7d | ||
![]() |
27c4fd76f3 | ||
![]() |
22ed08cfd8 | ||
![]() |
260a90cbf0 | ||
![]() |
e07b6fdf6b | ||
![]() |
44d4990eb2 | ||
![]() |
58b0434092 | ||
![]() |
d6bd7b56b3 | ||
![]() |
8f7425f78c | ||
![]() |
bd617c52e9 | ||
![]() |
f71b294697 | ||
![]() |
7123d4e055 | ||
![]() |
1f695c2646 | ||
![]() |
58adaffcb9 | ||
![]() |
8f62901218 | ||
![]() |
2f65f01fc8 | ||
![]() |
66e8d91957 | ||
![]() |
fd6e4fd615 | ||
![]() |
423bc1971b | ||
![]() |
2c6e6ad680 | ||
![]() |
6373399e59 | ||
![]() |
6b1a017a86 | ||
![]() |
e252932bde | ||
![]() |
9c97084ad0 | ||
![]() |
5851bad4a0 | ||
![]() |
9360afd29f | ||
![]() |
ee8ae196ee | ||
![]() |
a646aee6bd | ||
![]() |
28e20f3015 | ||
![]() |
f93eb0b27f | ||
![]() |
82326508b1 | ||
![]() |
8d395c094b | ||
![]() |
fc893ae7e3 | ||
![]() |
30a49d0458 | ||
![]() |
68a2478317 | ||
![]() |
c1e87e7122 | ||
![]() |
6e751d2d7e | ||
![]() |
dbba3f1a60 | ||
![]() |
34388ab5df | ||
![]() |
8721f2ae51 | ||
![]() |
29447b60b3 | ||
![]() |
e2b5584a8d | ||
![]() |
e7a9d6a81d | ||
![]() |
b342909e10 | ||
![]() |
df62d45b36 | ||
![]() |
5d5a632a89 | ||
![]() |
ed647caa2e | ||
![]() |
a3cd7c6f02 | ||
![]() |
0e6c26bbfe | ||
![]() |
efc1b10bfd | ||
![]() |
17cae57f51 | ||
![]() |
c6485b9fd5 | ||
![]() |
afb154ee5d | ||
![]() |
5accc069fb | ||
![]() |
8838ebf02a | ||
![]() |
f73c1a2c59 | ||
![]() |
9681009650 | ||
![]() |
b0f1f19da0 | ||
![]() |
a85651fe4f | ||
![]() |
1cfe7027e5 | ||
![]() |
744240c009 | ||
![]() |
ef88d1cba9 | ||
![]() |
5a5478abe1 | ||
![]() |
a1437e5579 | ||
![]() |
31df9d5576 | ||
![]() |
ef7f8cb3da | ||
![]() |
63ea1ab32e | ||
![]() |
cdfa028521 | ||
![]() |
c7938af7be | ||
![]() |
78a98e01fc | ||
![]() |
d85ed8275e | ||
![]() |
6581b9cf41 | ||
![]() |
12ba5d89f0 | ||
![]() |
16a61c43dd | ||
![]() |
acbb1d3bd4 | ||
![]() |
dec14f3096 | ||
![]() |
5fdb732798 | ||
![]() |
4e5e4a7c2f | ||
![]() |
c068390634 | ||
![]() |
3cac06a70a | ||
![]() |
62dcddb315 | ||
![]() |
0638eca633 | ||
![]() |
c6b049b12b | ||
![]() |
3f847de964 | ||
![]() |
9972eeb673 | ||
![]() |
166362d349 | ||
![]() |
0b7df7511a | ||
![]() |
df9de1523c | ||
![]() |
22f3e60dcf | ||
![]() |
af2d710000 | ||
![]() |
3d08b1c4aa | ||
![]() |
22d99f2533 | ||
![]() |
8fadb54e65 | ||
![]() |
0321aec68f | ||
![]() |
d284146621 | ||
![]() |
92340f8fb0 | ||
![]() |
b4349d3226 | ||
![]() |
1254c6b981 | ||
![]() |
ce8bfe45ed | ||
![]() |
e1e1539e4f | ||
![]() |
9bcf554139 | ||
![]() |
1dc375dd0e | ||
![]() |
f4f36a9a98 | ||
![]() |
71ae51b4b3 | ||
![]() |
61f41e5c01 | ||
![]() |
2ef042978d | ||
![]() |
a52c603f16 | ||
![]() |
da10269d3f | ||
![]() |
ac7029256a | ||
![]() |
995959dce4 | ||
![]() |
aa4aaa200f | ||
![]() |
bc2acdd060 | ||
![]() |
2f63f840de | ||
![]() |
eaeb6a620f | ||
![]() |
65c65b9c97 | ||
![]() |
dad2cf887b | ||
![]() |
22c506b03e | ||
![]() |
427da79a02 | ||
![]() |
a8b6b96fbd | ||
![]() |
e7cbb7fd16 | ||
![]() |
bdf0f27d1a | ||
![]() |
0af256b57a | ||
![]() |
398add17f1 | ||
![]() |
eec150d4cd | ||
![]() |
573fe7348b | ||
![]() |
f1134640c5 | ||
![]() |
5131f8a71c | ||
![]() |
867982a2ff | ||
![]() |
bde5b963d0 | ||
![]() |
5d80db2ef8 | ||
![]() |
32a62ff862 | ||
![]() |
d4bcac0150 | ||
![]() |
51dc1e2e8c | ||
![]() |
4f3c4037aa | ||
![]() |
7c19dd5a33 | ||
![]() |
8758295647 | ||
![]() |
1ee8dfc99c | ||
![]() |
cd287b4161 | ||
![]() |
454a53b3f1 | ||
![]() |
6189f5d09e | ||
![]() |
dcd17c6ac4 | ||
![]() |
3542778d84 | ||
![]() |
95fc5ad1e9 | ||
![]() |
cc9c45de2a | ||
![]() |
5e9908af27 | ||
![]() |
6b75ca40ca | ||
![]() |
3f715c296a | ||
![]() |
e307f1a373 | ||
![]() |
726ac36612 | ||
![]() |
ce62b5cc5e | ||
![]() |
1b6b029e0d | ||
![]() |
2383e4d90d | ||
![]() |
7c6375f744 | ||
![]() |
6770ad3736 | ||
![]() |
a262da92bf | ||
![]() |
870b74f4da | ||
![]() |
c1fb9a33f7 | ||
![]() |
4291e1c5d7 | ||
![]() |
b5ecd7b6be | ||
![]() |
d532a6e260 | ||
![]() |
2697061e5b | ||
![]() |
d1fa933006 | ||
![]() |
2d5a07c795 | ||
![]() |
b3f994a9d2 | ||
![]() |
38908e0126 | ||
![]() |
8eaa901aec | ||
![]() |
aa2dbe2919 | ||
![]() |
c9f8732e5c | ||
![]() |
da32534e8a | ||
![]() |
3dbbbdee0b | ||
![]() |
16c6903706 | ||
![]() |
3253df3d54 | ||
![]() |
830a117555 | ||
![]() |
768b0a79cb | ||
![]() |
429c8ab277 | ||
![]() |
76bd002aa4 | ||
![]() |
246f4baf7c | ||
![]() |
1013ba63ee | ||
![]() |
b1df97b33f | ||
![]() |
25b93ceb55 | ||
![]() |
497a1b6f8f | ||
![]() |
bf7e9603d2 | ||
![]() |
2e7ed98dfd | ||
![]() |
36e6ed3339 | ||
![]() |
9a5bc65034 | ||
![]() |
8ad2ae6ab4 | ||
![]() |
fe11efff63 | ||
![]() |
b0d68324a6 | ||
![]() |
fb35d10981 | ||
![]() |
191b19f9a5 | ||
![]() |
c7b3cbd397 | ||
![]() |
0ce1342263 | ||
![]() |
6d8db4b380 | ||
![]() |
d7a82f212a | ||
![]() |
aeccbd266a | ||
![]() |
ac9f8ba9b1 | ||
![]() |
baa47ff24e | ||
![]() |
818bc779b3 | ||
![]() |
88a6b542b3 | ||
![]() |
494273cf08 | ||
![]() |
03d1240999 | ||
![]() |
b551e106a8 | ||
![]() |
0c3b873dde | ||
![]() |
d3623393a6 | ||
![]() |
2adee4290a | ||
![]() |
94e2982d4b | ||
![]() |
238b0faf5c | ||
![]() |
927f626d9a | ||
![]() |
bd6a133e95 | ||
![]() |
1c41cf236f | ||
![]() |
a831df903d | ||
![]() |
ff5c1001c6 | ||
![]() |
e4cf81c2ba | ||
![]() |
cb5379ab1d | ||
![]() |
7e5c57a848 | ||
![]() |
5841a4f958 | ||
![]() |
725488e1a2 | ||
![]() |
0acf82bb9c | ||
![]() |
9944fd5958 | ||
![]() |
e7d4daa7c1 | ||
![]() |
5de0e775cb | ||
![]() |
301fdff58f | ||
![]() |
99c7abb43a | ||
![]() |
a85de40710 | ||
![]() |
e174fb2748 | ||
![]() |
403eab2cf0 | ||
![]() |
bdafc2227c | ||
![]() |
c9cafd3051 | ||
![]() |
48f94e6fcc | ||
![]() |
43b2e43a11 | ||
![]() |
8dffe3450c | ||
![]() |
ae953b5f10 | ||
![]() |
c7635201ab | ||
![]() |
c35ca1e87f | ||
![]() |
d06d6796c5 | ||
![]() |
e6c9dc7040 | ||
![]() |
5d0dde57f9 | ||
![]() |
d0108416d0 | ||
![]() |
71297870cf | ||
![]() |
fcde494440 | ||
![]() |
b7bd8444c7 | ||
![]() |
2b2b3c5b3b | ||
![]() |
818c81282b | ||
![]() |
f0842c5599 | ||
![]() |
2d0940f6ae | ||
![]() |
f1f1120749 | ||
![]() |
c1ff382e97 | ||
![]() |
29f25ae474 | ||
![]() |
c7971b562e | ||
![]() |
b7009202ce | ||
![]() |
25c5ecf553 | ||
![]() |
09fbf096d3 | ||
![]() |
b975f1e860 | ||
![]() |
8c4b0f815d | ||
![]() |
4e8e2d9796 | ||
![]() |
90ce5b75f1 | ||
![]() |
fd9cbde3d8 | ||
![]() |
b0edda4b69 | ||
![]() |
bbd279bb4f | ||
![]() |
bdbf30dc96 | ||
![]() |
a111b3f96f | ||
![]() |
f239df59ca | ||
![]() |
c036eb2444 | ||
![]() |
cee189de11 | ||
![]() |
d2f82b2e40 | ||
![]() |
3e669fc4bb | ||
![]() |
1a5b69181f | ||
![]() |
55c5b8b72f | ||
![]() |
5e77a973b2 | ||
![]() |
9c81cd323d | ||
![]() |
78446008c4 | ||
![]() |
e09d8455a1 | ||
![]() |
1dcea3b11f | ||
![]() |
9d62c31f44 | ||
![]() |
0272ad9edb | ||
![]() |
f3829072f3 | ||
![]() |
2b6b7c19d2 | ||
![]() |
3a9d61d6e4 | ||
![]() |
6d8b3973e4 | ||
![]() |
aa4d9809c3 | ||
![]() |
ec8e7d9d86 | ||
![]() |
f1f23e1c7d | ||
![]() |
2e0e8af1ad | ||
![]() |
53f1b4bc15 | ||
![]() |
eae420a241 | ||
![]() |
bf49784b7d | ||
![]() |
b6a3b98828 | ||
![]() |
eb0816c2c4 | ||
![]() |
30fa18390f | ||
![]() |
f51789b17a | ||
![]() |
97b104cf9d | ||
![]() |
a7d1029e5c | ||
![]() |
aed30502bd | ||
![]() |
56efaf0c82 | ||
![]() |
686b6a2971 | ||
![]() |
9cb297202b | ||
![]() |
a0f243691a | ||
![]() |
cdfea4bc7e | ||
![]() |
5c1f85e861 | ||
![]() |
2da7d77feb | ||
![]() |
1121ea9d6c | ||
![]() |
a581955b9b | ||
![]() |
228b4dbd60 | ||
![]() |
8231ebb770 | ||
![]() |
95e6a27393 | ||
![]() |
f32ad5216b | ||
![]() |
56b244973f | ||
![]() |
cdd287c88b | ||
![]() |
315df0ab3f | ||
![]() |
ac7aa757bd | ||
![]() |
52a5069dec | ||
![]() |
ee963f6296 | ||
![]() |
b44b1086d3 | ||
![]() |
9978ea3b9c | ||
![]() |
710ea1c8d9 | ||
![]() |
ed60e07257 | ||
![]() |
1fea8028a3 | ||
![]() |
c481bdf704 | ||
![]() |
5105c52ef7 | ||
![]() |
20dcae876d | ||
![]() |
3104b21758 | ||
![]() |
15e41959eb | ||
![]() |
783f4014f8 | ||
![]() |
2a29f71b2c | ||
![]() |
5919c57527 | ||
![]() |
8b2f9acfb4 | ||
![]() |
6f4716fd60 | ||
![]() |
74f222abec | ||
![]() |
9f6067d899 | ||
![]() |
f72fd32bf0 | ||
![]() |
e396c8538a | ||
![]() |
432beac315 | ||
![]() |
256281c5de | ||
![]() |
f63242f7fb | ||
![]() |
7dac9e02b3 | ||
![]() |
99cbc06292 | ||
![]() |
749bac3d72 | ||
![]() |
1bb87e14a5 | ||
![]() |
9ea29dc508 | ||
![]() |
f2f0c6b4e9 | ||
![]() |
1e3cd89516 | ||
![]() |
019f789819 | ||
![]() |
9bac6ecbff | ||
![]() |
76ab6717c9 | ||
![]() |
b1ae7eea2f | ||
![]() |
c061d06aa1 | ||
![]() |
bf5351ed41 | ||
![]() |
338a07ecad | ||
![]() |
f26c96d51b | ||
![]() |
927cb4e622 | ||
![]() |
cbf562ecb3 | ||
![]() |
69fd438370 | ||
![]() |
57e7565b7f | ||
![]() |
4ad749607a | ||
![]() |
66442cd469 | ||
![]() |
afc42fe891 | ||
![]() |
58ab66f094 | ||
![]() |
1674224c1a | ||
![]() |
4aa452a2c7 | ||
![]() |
56ea6c406c | ||
![]() |
f8b547f92e | ||
![]() |
adb187685b | ||
![]() |
f3d0c7c2ad | ||
![]() |
4b77a1c71e | ||
![]() |
5ad348b23e | ||
![]() |
c627231b0f | ||
![]() |
31273aaabc | ||
![]() |
d1614f6bc4 | ||
![]() |
95ae3642f9 | ||
![]() |
b624cfe262 | ||
![]() |
c6da845f33 | ||
![]() |
869819eb89 | ||
![]() |
f986a32185 | ||
![]() |
0532f67282 | ||
![]() |
3a8c934b19 | ||
![]() |
ab71dac282 | ||
![]() |
fa5fe5d293 | ||
![]() |
d87cf61d26 | ||
![]() |
dd8c795ec6 | ||
![]() |
a1b682d0da | ||
![]() |
e540a79032 | ||
![]() |
1c524238c8 | ||
![]() |
843c714088 | ||
![]() |
03fd9a970b | ||
![]() |
09c76d95c7 | ||
![]() |
a3e462bbba | ||
![]() |
28200fb9e5 | ||
![]() |
2c06ce761b | ||
![]() |
1947ba9c68 | ||
![]() |
f95f636f1f | ||
![]() |
ea16890fd3 | ||
![]() |
c7044b198c | ||
![]() |
5d6c021e26 | ||
![]() |
79d6d26784 | ||
![]() |
76cf58915b | ||
![]() |
cbe0478572 | ||
![]() |
ae25ad4047 | ||
![]() |
1ce23c079e | ||
![]() |
d87bfdff1a | ||
![]() |
4eb5885017 | ||
![]() |
f2db80520a | ||
![]() |
1d7f041f55 | ||
![]() |
fbdee68667 | ||
![]() |
581b87b20c | ||
![]() |
f660ec8bd2 | ||
![]() |
47e50abe24 | ||
![]() |
0c1f3d724d | ||
![]() |
4a95e8e48c | ||
![]() |
f0d276062b | ||
![]() |
7b593b9d7c | ||
![]() |
0538d6db6a | ||
![]() |
8d31f6ce2e | ||
![]() |
fc14c5b070 | ||
![]() |
fe6b46f4e7 | ||
![]() |
c07b1ac2f0 | ||
![]() |
730c6884f7 | ||
![]() |
b7fa8e5947 | ||
![]() |
3fdbd5f7ba | ||
![]() |
7f0d22a31e | ||
![]() |
8607d463ff | ||
![]() |
002cce4e81 | ||
![]() |
8660cdaad5 | ||
![]() |
d61ee46210 | ||
![]() |
4cd49632b2 | ||
![]() |
cdd2099090 | ||
![]() |
f70ba14abd | ||
![]() |
3b3e75c1dc | ||
![]() |
61fd41116a | ||
![]() |
fe085001cb | ||
![]() |
1a1d3db207 | ||
![]() |
79dd3776e2 | ||
![]() |
1bd5ea6f73 | ||
![]() |
fb2516fbf6 | ||
![]() |
bc156266c6 | ||
![]() |
5100f4ff7d | ||
![]() |
660d9dc671 | ||
![]() |
ac582ccf7c | ||
![]() |
c5508e7d19 | ||
![]() |
dda242c96e | ||
![]() |
0016199ec3 | ||
![]() |
8e2c55a5da | ||
![]() |
05fe3e7ec3 | ||
![]() |
1b52365541 | ||
![]() |
8da600a62e |
@@ -1,6 +1,6 @@
|
||||
root = true
|
||||
|
||||
[*.{sh,bash}]
|
||||
[*.{sh,bash,elv}]
|
||||
indent_size = 2
|
||||
indent_style = space
|
||||
|
||||
|
2
.envrc
@@ -4,3 +4,5 @@ if has nix; then
|
||||
watch_file nix/{devShell,package,wraptest}.nix
|
||||
use flake
|
||||
fi
|
||||
|
||||
source_env_if_exists .envrc.local
|
||||
|
6
.gitattributes
vendored
@@ -1,6 +1,12 @@
|
||||
build.zig.zon.nix linguist-generated=true
|
||||
build.zig.zon.txt linguist-generated=true
|
||||
build.zig.zon.json linguist-generated=true
|
||||
vendor/** linguist-vendored
|
||||
website/** linguist-documentation
|
||||
pkg/breakpad/vendor/** linguist-vendored
|
||||
pkg/cimgui/vendor/** linguist-vendored
|
||||
pkg/glfw/wayland-headers/** linguist-vendored
|
||||
pkg/libintl/config.h linguist-generated=true
|
||||
pkg/libintl/libintl.h linguist-generated=true
|
||||
pkg/simdutf/vendor/** linguist-vendored
|
||||
src/terminal/res/** linguist-vendored
|
||||
|
162
.github/DISCUSSION_TEMPLATE/issue-triage.yml
vendored
Normal file
@@ -0,0 +1,162 @@
|
||||
labels: ["needs-confirmation"]
|
||||
body:
|
||||
- type: markdown
|
||||
attributes:
|
||||
value: |
|
||||
> [!IMPORTANT]
|
||||
> Please read through [the Discussion rules](https://github.com/ghostty-org/ghostty/discussions/6937), review [the FAQs](https://ghostty.org/docs/help#common-issues-and-solutions), and check for both existing [Discussions](https://github.com/ghostty-org/ghostty/discussions?discussions_q=) and [Issues](https://github.com/ghostty-org/ghostty/issues?q=sort%3Areactions-desc) prior to opening a new Discussion.
|
||||
- type: markdown
|
||||
attributes:
|
||||
value: "# Issue Details"
|
||||
- type: textarea
|
||||
attributes:
|
||||
label: Issue Description
|
||||
description: |
|
||||
Provide a detailed description of the issue. Include relevant information, such as:
|
||||
- The feature or configuration option you encounter the issue with.
|
||||
- Screenshots, screen recordings, or other supporting media (as needed).
|
||||
- If this is a regression of an existing issue that was closed or resolved, please include the previous item reference (Discussion, Issue, PR, commit) in your description.
|
||||
|
||||
> [!TIP]
|
||||
> **Not sure what information to include?**
|
||||
> Here are some recommendations:
|
||||
> - **Input issues:** include your keyboard layout, a screenshot of logged keystrokes from the terminal inspector's "Keyboard" tab (Linux: <kbd>ctrl</kbd>+<kbd>shift</kbd>+<kbd>i</kbd>; MacOS: <kbd>cmd</kbd>+<kbd>alt</kbd>+<kbd>i</kbd>), input method, Linux input method engine (IBus, Fcitx 5, or none) and its version.
|
||||
> - **Font issues:** include the problematic character(s), the output of `ghostty +show-face` for these character(s), and if they work in other applications.
|
||||
> - **Terminal emulation issues (including image rendering issues):** attach an [asciinema](https://docs.asciinema.org/getting-started/) cast file, shell script, or text file for reproduction.
|
||||
> - **Renderer issues:** (Linux) include your OpenGL version, graphics card, driver version.
|
||||
> - **Crashes:** (macOS) include the [Sentry UUID](https://github.com/ghostty-org/ghostty?tab=readme-ov-file#crash-reports); (Linux) try to reproduce using a debug build and provide the stack trace.
|
||||
placeholder: |
|
||||
When using SSH to connect to my remote Linux machine from my local macOS device in Ghostty, I try to run `clear`, and the screen does not clear. Instead, I see the following error message printed to the terminal: `Error opening terminal: xterm-ghostty.`
|
||||
validations:
|
||||
required: true
|
||||
- type: textarea
|
||||
attributes:
|
||||
label: Expected Behavior
|
||||
description: |
|
||||
Describe how you expect Ghostty to behave in this situation. Include any relevant documentation links.
|
||||
placeholder: |
|
||||
The screen is cleared and the prompt is redrawn at the top of the window.
|
||||
validations:
|
||||
required: true
|
||||
- type: textarea
|
||||
attributes:
|
||||
label: Actual Behavior
|
||||
description: |
|
||||
Describe how Ghostty actually behaves in this situation. If it is not immediately obvious how the actual behavior differs from the expected behavior described above, please be sure to mention the deviation specifically.
|
||||
placeholder: |
|
||||
The screen is not cleared, and an error is printed: `Error opening terminal: xterm-ghostty`.
|
||||
validations:
|
||||
required: true
|
||||
- type: textarea
|
||||
attributes:
|
||||
label: Reproduction Steps
|
||||
description: |
|
||||
Provide a detailed set of step-by-step instructions for reproducing this issue.
|
||||
placeholder: |
|
||||
1. Open Ghostty.
|
||||
2. Connect to a remote server via SSH.
|
||||
3. Try to execute `clear`.
|
||||
4. Observe `xterm-ghostty` error message above.
|
||||
validations:
|
||||
required: true
|
||||
- type: textarea
|
||||
attributes:
|
||||
label: Ghostty Logs
|
||||
description: |
|
||||
Provide any captured Ghostty logs or stacktraces during your issue reproduction in this field. On Linux, logs can be found by running `ghostty` from the command-line; on macOS, logs can be viewed with `sudo log stream --level debug --predicate 'subsystem=="com.mitchellh.ghostty"'` from another terminal emulator.
|
||||
render: text
|
||||
- type: textarea
|
||||
attributes:
|
||||
label: Ghostty Version
|
||||
description: Paste the output of `ghostty +version` here.
|
||||
placeholder: |
|
||||
Ghostty 1.1.3
|
||||
|
||||
Version
|
||||
- version: 1.1.3
|
||||
- channel: stable
|
||||
Build Config
|
||||
- Zig version: 0.13.0
|
||||
- build mode : builtin.OptimizeMode.ReleaseFast
|
||||
- app runtime: apprt.Runtime.none
|
||||
- font engine: font.main.Backend.coretext
|
||||
- renderer : renderer.Metal
|
||||
- libxev : main.Backend.kqueue
|
||||
render: text
|
||||
validations:
|
||||
required: true
|
||||
- type: input
|
||||
attributes:
|
||||
label: OS Version Information
|
||||
description: |
|
||||
Please tell us what operating system (name and version) you are using.
|
||||
placeholder: Ubuntu 24.04.1 (Noble Numbat)
|
||||
validations:
|
||||
required: true
|
||||
- type: dropdown
|
||||
attributes:
|
||||
label: (Linux only) Display Server
|
||||
description: |
|
||||
If you run Linux, please tell us if you use X11 or Wayland. If you aren't sure, you can determine this by running `[ -z "$WAYLAND_DISPLAY" ] && echo X11 || echo Wayland`.
|
||||
options:
|
||||
- X11
|
||||
- Wayland
|
||||
- Other
|
||||
validations:
|
||||
required: false
|
||||
- type: input
|
||||
attributes:
|
||||
label: (Linux only) Desktop Environment/Window Manager
|
||||
description: |
|
||||
If you run Linux, please tell us what Desktop Environment/Window Manager you are using (include the name and version).
|
||||
placeholder: GNOME 47.4
|
||||
validations:
|
||||
required: false
|
||||
- type: textarea
|
||||
attributes:
|
||||
label: Minimal Ghostty Configuration
|
||||
description: |
|
||||
Please provide the **minimum** configuration needed to reproduce this issue. If you can still reproduce the issue with one of the lines removed, do not include that line. If and **only** if you are not able to determine this, paste the contents of your Ghostty configuration file here.
|
||||
placeholder: |
|
||||
font-family = CommitMono Nerd Font
|
||||
font-family-bold = CommitMono Nerd Font
|
||||
font-family-italic = CommitMono Nerd Font
|
||||
font-family-bold-italic = CommitMono Nerd Font
|
||||
font-feature = +cv07
|
||||
font-size = 16
|
||||
font-thicken = true
|
||||
theme = catppuccin-mocha
|
||||
render: ini
|
||||
validations:
|
||||
required: true
|
||||
- type: textarea
|
||||
attributes:
|
||||
label: Additional Relevant Configuration
|
||||
description: |
|
||||
If your issue involves other programs, tools, or applications in addition to Ghostty (e.g. Neovim, tmux, Zellij, etc.), please provide the minimum configuration and versions needed for all relevant programs to reproduce the issue here. If you use custom CSS or shaders for Ghostty, also include them here, if applicable to your issue.
|
||||
placeholder: |
|
||||
#### `tmux.conf` (tmux 3.5a)
|
||||
```
|
||||
set -g default-terminal "tmux-256color"
|
||||
set-option -sa terminal-overrides ",xterm*:Tc"
|
||||
set -g base-index 1
|
||||
setw -g pane-base-index 1
|
||||
```
|
||||
validations:
|
||||
required: false
|
||||
- type: markdown
|
||||
attributes:
|
||||
value: |
|
||||
# User Acknowledgements
|
||||
> [!TIP]
|
||||
> Use these links to review the existing Ghostty [Discussions](https://github.com/ghostty-org/ghostty/discussions?discussions_q=) and [Issues](https://github.com/ghostty-org/ghostty/issues?q=sort%3Areactions-desc).
|
||||
- type: checkboxes
|
||||
attributes:
|
||||
label: "I acknowledge that:"
|
||||
options:
|
||||
- label: I have reviewed the FAQ and confirm that my issue is NOT among them.
|
||||
required: true
|
||||
- label: I have searched the Ghostty repository (both open and closed Discussions and Issues) and confirm this is not a duplicate of an existing issue or discussion.
|
||||
required: true
|
||||
- label: I have checked the "Preview" tab on all text fields to ensure that everything looks right, and have wrapped all configuration and code in code blocks with a group of three backticks (` ``` `) on separate lines.
|
||||
required: true
|
4
.github/pinact.yml
vendored
Normal file
@@ -0,0 +1,4 @@
|
||||
version: 3
|
||||
ignore_actions:
|
||||
- name: "DeterminateSystems/nix-installer-action"
|
||||
ref: "main"
|
14
.github/scripts/check-translations.sh
vendored
Executable file
@@ -0,0 +1,14 @@
|
||||
#!/bin/sh
|
||||
|
||||
old_pot=$(mktemp)
|
||||
cp po/com.mitchellh.ghostty.pot "$old_pot"
|
||||
zig build update-translations
|
||||
|
||||
# Compare previous POT to current POT
|
||||
msgcmp "$old_pot" po/com.mitchellh.ghostty.pot --use-untranslated
|
||||
|
||||
# Compare all other POs to current POT
|
||||
for f in po/*.po; do
|
||||
# Ignore untranslated entries
|
||||
msgcmp --use-untranslated "$f" po/com.mitchellh.ghostty.pot;
|
||||
done
|
2
.github/workflows/clean-artifacts.yml
vendored
@@ -10,7 +10,7 @@ jobs:
|
||||
timeout-minutes: 10
|
||||
steps:
|
||||
- name: Remove old artifacts
|
||||
uses: c-hive/gha-remove-artifacts@v1
|
||||
uses: c-hive/gha-remove-artifacts@44fc7acaf1b3d0987da0e8d4707a989d80e9554b # v1.4.0
|
||||
with:
|
||||
age: "1 week"
|
||||
skip-tags: true
|
||||
|
4
.github/workflows/milestone.yml
vendored
@@ -15,7 +15,7 @@ jobs:
|
||||
name: Milestone Update
|
||||
steps:
|
||||
- name: Set Milestone for PR
|
||||
uses: hustcer/milestone-action@v2
|
||||
uses: hustcer/milestone-action@b57a7e52e9913b6b0cdefb10add762af0398659d # v2.9
|
||||
if: github.event.pull_request.merged == true
|
||||
with:
|
||||
action: bind-pr # `bind-pr` is the default action
|
||||
@@ -24,7 +24,7 @@ jobs:
|
||||
|
||||
# Bind milestone to closed issue that has a merged PR fix
|
||||
- name: Set Milestone for Issue
|
||||
uses: hustcer/milestone-action@v2
|
||||
uses: hustcer/milestone-action@b57a7e52e9913b6b0cdefb10add762af0398659d # v2.9
|
||||
if: github.event.issue.state == 'closed'
|
||||
with:
|
||||
action: bind-issue
|
||||
|
12
.github/workflows/nix.yml
vendored
@@ -34,21 +34,21 @@ jobs:
|
||||
ZIG_GLOBAL_CACHE_DIR: /zig/global-cache
|
||||
steps:
|
||||
- name: Checkout code
|
||||
uses: actions/checkout@v4
|
||||
uses: actions/checkout@08c6903cd8c0fde910a37f88322edcfb5dd907a8 # v5.0.0
|
||||
- name: Setup Cache
|
||||
uses: namespacelabs/nscloud-cache-action@v1.2.0
|
||||
uses: namespacelabs/nscloud-cache-action@305bfa7ea980a858d511af4899414a84847c7991 # v1.2.16
|
||||
with:
|
||||
path: |
|
||||
/nix
|
||||
/zig
|
||||
- name: Setup Nix
|
||||
uses: cachix/install-nix-action@v30
|
||||
uses: cachix/install-nix-action@fc6e360bedc9ee72d75e701397f0bb30dce77568 # v31.5.2
|
||||
with:
|
||||
nix_path: nixpkgs=channel:nixos-unstable
|
||||
- uses: cachix/cachix-action@v15
|
||||
- uses: cachix/cachix-action@0fc020193b5a1fa3ac4575aa3a7d3aa6a35435ad # v16
|
||||
with:
|
||||
name: ghostty
|
||||
authToken: "${{ secrets.CACHIX_AUTH_TOKEN }}"
|
||||
useDaemon: false # sometimes fails on short jobs
|
||||
- name: Check Zig cache hash
|
||||
run: nix develop -c ./nix/build-support/check-zig-cache-hash.sh
|
||||
- name: Check Zig cache
|
||||
run: nix develop -c ./nix/build-support/check-zig-cache.sh
|
||||
|
4
.github/workflows/publish-tag.yml
vendored
@@ -55,7 +55,7 @@ jobs:
|
||||
|
||||
- name: Download Staged Appcast
|
||||
run: |
|
||||
curl -L https://release.files.ghostty.org/${GHOSTTY_VERSION}/appcast-staged.xml
|
||||
curl -L https://release.files.ghostty.org/${GHOSTTY_VERSION}/appcast-staged.xml > appcast-staged.xml
|
||||
mv appcast-staged.xml appcast.xml
|
||||
|
||||
- name: Upload Appcast
|
||||
@@ -64,7 +64,7 @@ jobs:
|
||||
mkdir blob
|
||||
mv appcast.xml blob/appcast.xml
|
||||
- name: Upload Appcast to R2
|
||||
uses: ryand56/r2-upload-action@latest
|
||||
uses: ryand56/r2-upload-action@b801a390acbdeb034c5e684ff5e1361c06639e7c # v1
|
||||
with:
|
||||
r2-account-id: ${{ secrets.CF_R2_RELEASE_ACCOUNT_ID }}
|
||||
r2-access-key-id: ${{ secrets.CF_R2_RELEASE_AWS_KEY }}
|
||||
|
62
.github/workflows/release-pr.yml
vendored
@@ -8,7 +8,7 @@ jobs:
|
||||
runs-on: namespace-profile-ghostty-sm
|
||||
needs: [build-macos-debug]
|
||||
steps:
|
||||
- uses: actions/checkout@v4
|
||||
- uses: actions/checkout@08c6903cd8c0fde910a37f88322edcfb5dd907a8 # v5.0.0
|
||||
|
||||
- name: Install sentry-cli
|
||||
run: |
|
||||
@@ -29,7 +29,7 @@ jobs:
|
||||
runs-on: namespace-profile-ghostty-sm
|
||||
needs: [build-macos]
|
||||
steps:
|
||||
- uses: actions/checkout@v4
|
||||
- uses: actions/checkout@08c6903cd8c0fde910a37f88322edcfb5dd907a8 # v5.0.0
|
||||
|
||||
- name: Install sentry-cli
|
||||
run: |
|
||||
@@ -47,20 +47,20 @@ jobs:
|
||||
sentry-cli dif upload --project ghostty --wait dsym.zip
|
||||
|
||||
build-macos:
|
||||
runs-on: namespace-profile-ghostty-macos
|
||||
runs-on: namespace-profile-ghostty-macos-tahoe
|
||||
timeout-minutes: 90
|
||||
steps:
|
||||
- name: Checkout code
|
||||
uses: actions/checkout@v4
|
||||
uses: actions/checkout@08c6903cd8c0fde910a37f88322edcfb5dd907a8 # v5.0.0
|
||||
with:
|
||||
# Important so that build number generation works
|
||||
fetch-depth: 0
|
||||
|
||||
# Install Nix and use that to run our tests so our environment matches exactly.
|
||||
- uses: cachix/install-nix-action@v30
|
||||
- uses: DeterminateSystems/nix-installer-action@main
|
||||
with:
|
||||
nix_path: nixpkgs=channel:nixos-unstable
|
||||
- uses: cachix/cachix-action@v15
|
||||
determinate: true
|
||||
- uses: cachix/cachix-action@0fc020193b5a1fa3ac4575aa3a7d3aa6a35435ad # v16
|
||||
with:
|
||||
name: ghostty
|
||||
authToken: "${{ secrets.CACHIX_AUTH_TOKEN }}"
|
||||
@@ -68,7 +68,7 @@ jobs:
|
||||
# Setup Sparkle
|
||||
- name: Setup Sparkle
|
||||
env:
|
||||
SPARKLE_VERSION: 2.6.3
|
||||
SPARKLE_VERSION: 2.7.1
|
||||
run: |
|
||||
mkdir -p .action/sparkle
|
||||
cd .action/sparkle
|
||||
@@ -86,7 +86,7 @@ jobs:
|
||||
# GhosttyKit is the framework that is built from Zig for our native
|
||||
# Mac app to access. Build this in release mode.
|
||||
- name: Build GhosttyKit
|
||||
run: nix develop -c zig build -Doptimize=ReleaseSafe
|
||||
run: nix develop -c zig build -Doptimize=ReleaseSafe -Demit-macos-app=false
|
||||
|
||||
# The native app is built with native XCode tooling. This also does
|
||||
# codesigning. IMPORTANT: this must NOT run in a Nix environment.
|
||||
@@ -94,7 +94,8 @@ jobs:
|
||||
- name: Build Ghostty.app
|
||||
run: |
|
||||
cd macos
|
||||
sudo xcode-select -s /Applications/Xcode_16.0.app
|
||||
sudo xcode-select -s /Applications/Xcode_26.0.app
|
||||
xcodebuild -version
|
||||
xcodebuild -target Ghostty -configuration Release
|
||||
|
||||
# We inject the "build number" as simply the number of commits since HEAD.
|
||||
@@ -147,14 +148,16 @@ jobs:
|
||||
|
||||
- name: "Notarize app bundle"
|
||||
env:
|
||||
PROD_MACOS_NOTARIZATION_APPLE_ID: ${{ secrets.PROD_MACOS_NOTARIZATION_APPLE_ID }}
|
||||
PROD_MACOS_NOTARIZATION_TEAM_ID: ${{ secrets.PROD_MACOS_NOTARIZATION_TEAM_ID }}
|
||||
PROD_MACOS_NOTARIZATION_PWD: ${{ secrets.PROD_MACOS_NOTARIZATION_PWD }}
|
||||
APPLE_NOTARIZATION_ISSUER: ${{ secrets.APPLE_NOTARIZATION_ISSUER }}
|
||||
APPLE_NOTARIZATION_KEY_ID: ${{ secrets.APPLE_NOTARIZATION_KEY_ID }}
|
||||
APPLE_NOTARIZATION_KEY: ${{ secrets.APPLE_NOTARIZATION_KEY }}
|
||||
run: |
|
||||
# Store the notarization credentials so that we can prevent a UI password dialog
|
||||
# from blocking the CI
|
||||
echo "Create keychain profile"
|
||||
xcrun notarytool store-credentials "notarytool-profile" --apple-id "$PROD_MACOS_NOTARIZATION_APPLE_ID" --team-id "$PROD_MACOS_NOTARIZATION_TEAM_ID" --password "$PROD_MACOS_NOTARIZATION_PWD"
|
||||
echo "$APPLE_NOTARIZATION_KEY" > notarization_key.p8
|
||||
xcrun notarytool store-credentials "notarytool-profile" --key notarization_key.p8 --key-id "$APPLE_NOTARIZATION_KEY_ID" --issuer "$APPLE_NOTARIZATION_ISSUER"
|
||||
rm notarization_key.p8
|
||||
|
||||
# We can't notarize an app bundle directly, but we need to compress it as an archive.
|
||||
# Therefore, we create a zip file containing our app bundle, so that we can send it to the
|
||||
@@ -189,7 +192,7 @@ jobs:
|
||||
cp ghostty-macos-universal.zip blob/${GHOSTTY_COMMIT_LONG}/ghostty-macos-universal.zip
|
||||
cp ghostty-macos-universal-dsym.zip blob/${GHOSTTY_COMMIT_LONG}/ghostty-macos-universal-dsym.zip
|
||||
- name: Upload to R2
|
||||
uses: ryand56/r2-upload-action@latest
|
||||
uses: ryand56/r2-upload-action@b801a390acbdeb034c5e684ff5e1361c06639e7c # v1.4
|
||||
with:
|
||||
r2-account-id: ${{ secrets.CF_R2_PR_ACCOUNT_ID }}
|
||||
r2-access-key-id: ${{ secrets.CF_R2_PR_AWS_KEY }}
|
||||
@@ -199,20 +202,20 @@ jobs:
|
||||
destination-dir: ./
|
||||
|
||||
build-macos-debug:
|
||||
runs-on: namespace-profile-ghostty-macos
|
||||
runs-on: namespace-profile-ghostty-macos-tahoe
|
||||
timeout-minutes: 90
|
||||
steps:
|
||||
- name: Checkout code
|
||||
uses: actions/checkout@v4
|
||||
uses: actions/checkout@08c6903cd8c0fde910a37f88322edcfb5dd907a8 # v5.0.0
|
||||
with:
|
||||
# Important so that build number generation works
|
||||
fetch-depth: 0
|
||||
|
||||
# Install Nix and use that to run our tests so our environment matches exactly.
|
||||
- uses: cachix/install-nix-action@v30
|
||||
- uses: DeterminateSystems/nix-installer-action@main
|
||||
with:
|
||||
nix_path: nixpkgs=channel:nixos-unstable
|
||||
- uses: cachix/cachix-action@v15
|
||||
determinate: true
|
||||
- uses: cachix/cachix-action@0fc020193b5a1fa3ac4575aa3a7d3aa6a35435ad # v16
|
||||
with:
|
||||
name: ghostty
|
||||
authToken: "${{ secrets.CACHIX_AUTH_TOKEN }}"
|
||||
@@ -220,7 +223,7 @@ jobs:
|
||||
# Setup Sparkle
|
||||
- name: Setup Sparkle
|
||||
env:
|
||||
SPARKLE_VERSION: 2.5.1
|
||||
SPARKLE_VERSION: 2.7.1
|
||||
run: |
|
||||
mkdir -p .action/sparkle
|
||||
cd .action/sparkle
|
||||
@@ -238,7 +241,7 @@ jobs:
|
||||
# GhosttyKit is the framework that is built from Zig for our native
|
||||
# Mac app to access. Build this in release mode.
|
||||
- name: Build GhosttyKit
|
||||
run: nix develop -c zig build -Doptimize=Debug
|
||||
run: nix develop -c zig build -Doptimize=Debug -Demit-macos-app=false
|
||||
|
||||
# The native app is built with native XCode tooling. This also does
|
||||
# codesigning. IMPORTANT: this must NOT run in a Nix environment.
|
||||
@@ -246,7 +249,8 @@ jobs:
|
||||
- name: Build Ghostty.app
|
||||
run: |
|
||||
cd macos
|
||||
sudo xcode-select -s /Applications/Xcode_16.0.app
|
||||
sudo xcode-select -s /Applications/Xcode_26.0.app
|
||||
xcodebuild -version
|
||||
xcodebuild -target Ghostty -configuration Release
|
||||
|
||||
# We inject the "build number" as simply the number of commits since HEAD.
|
||||
@@ -299,14 +303,16 @@ jobs:
|
||||
|
||||
- name: "Notarize app bundle"
|
||||
env:
|
||||
PROD_MACOS_NOTARIZATION_APPLE_ID: ${{ secrets.PROD_MACOS_NOTARIZATION_APPLE_ID }}
|
||||
PROD_MACOS_NOTARIZATION_TEAM_ID: ${{ secrets.PROD_MACOS_NOTARIZATION_TEAM_ID }}
|
||||
PROD_MACOS_NOTARIZATION_PWD: ${{ secrets.PROD_MACOS_NOTARIZATION_PWD }}
|
||||
APPLE_NOTARIZATION_ISSUER: ${{ secrets.APPLE_NOTARIZATION_ISSUER }}
|
||||
APPLE_NOTARIZATION_KEY_ID: ${{ secrets.APPLE_NOTARIZATION_KEY_ID }}
|
||||
APPLE_NOTARIZATION_KEY: ${{ secrets.APPLE_NOTARIZATION_KEY }}
|
||||
run: |
|
||||
# Store the notarization credentials so that we can prevent a UI password dialog
|
||||
# from blocking the CI
|
||||
echo "Create keychain profile"
|
||||
xcrun notarytool store-credentials "notarytool-profile" --apple-id "$PROD_MACOS_NOTARIZATION_APPLE_ID" --team-id "$PROD_MACOS_NOTARIZATION_TEAM_ID" --password "$PROD_MACOS_NOTARIZATION_PWD"
|
||||
echo "$APPLE_NOTARIZATION_KEY" > notarization_key.p8
|
||||
xcrun notarytool store-credentials "notarytool-profile" --key notarization_key.p8 --key-id "$APPLE_NOTARIZATION_KEY_ID" --issuer "$APPLE_NOTARIZATION_ISSUER"
|
||||
rm notarization_key.p8
|
||||
|
||||
# We can't notarize an app bundle directly, but we need to compress it as an archive.
|
||||
# Therefore, we create a zip file containing our app bundle, so that we can send it to the
|
||||
@@ -341,7 +347,7 @@ jobs:
|
||||
cp ghostty-macos-universal-debug.zip blob/${GHOSTTY_COMMIT_LONG}/ghostty-macos-universal-debug.zip
|
||||
cp ghostty-macos-universal-debug-dsym.zip blob/${GHOSTTY_COMMIT_LONG}/ghostty-macos-universal-debug-dsym.zip
|
||||
- name: Upload to R2
|
||||
uses: ryand56/r2-upload-action@latest
|
||||
uses: ryand56/r2-upload-action@b801a390acbdeb034c5e684ff5e1361c06639e7c # v1.4
|
||||
with:
|
||||
r2-account-id: ${{ secrets.CF_R2_PR_ACCOUNT_ID }}
|
||||
r2-access-key-id: ${{ secrets.CF_R2_PR_AWS_KEY }}
|
||||
|
75
.github/workflows/release-tag.yml
vendored
@@ -56,7 +56,7 @@ jobs:
|
||||
fi
|
||||
|
||||
- name: Checkout code
|
||||
uses: actions/checkout@v4
|
||||
uses: actions/checkout@08c6903cd8c0fde910a37f88322edcfb5dd907a8 # v5.0.0
|
||||
with:
|
||||
# Important so that build number generation works
|
||||
fetch-depth: 0
|
||||
@@ -77,22 +77,31 @@ jobs:
|
||||
needs: [setup]
|
||||
env:
|
||||
GHOSTTY_VERSION: ${{ needs.setup.outputs.version }}
|
||||
ZIG_LOCAL_CACHE_DIR: /zig/local-cache
|
||||
ZIG_GLOBAL_CACHE_DIR: /zig/global-cache
|
||||
steps:
|
||||
- uses: actions/checkout@v4
|
||||
- uses: actions/checkout@08c6903cd8c0fde910a37f88322edcfb5dd907a8 # v5.0.0
|
||||
|
||||
- uses: cachix/install-nix-action@v30
|
||||
- name: Setup Cache
|
||||
uses: namespacelabs/nscloud-cache-action@305bfa7ea980a858d511af4899414a84847c7991 # v1.2.16
|
||||
with:
|
||||
path: |
|
||||
/nix
|
||||
/zig
|
||||
|
||||
- uses: cachix/install-nix-action@fc6e360bedc9ee72d75e701397f0bb30dce77568 # v31.5.2
|
||||
with:
|
||||
nix_path: nixpkgs=channel:nixos-unstable
|
||||
|
||||
- uses: cachix/cachix-action@v15
|
||||
- uses: cachix/cachix-action@0fc020193b5a1fa3ac4575aa3a7d3aa6a35435ad # v16
|
||||
with:
|
||||
name: ghostty
|
||||
authToken: "${{ secrets.CACHIX_AUTH_TOKEN }}"
|
||||
|
||||
- name: Create Tarball
|
||||
run: |
|
||||
git archive --format=tgz --prefix="ghostty-${GHOSTTY_VERSION}/" -o "ghostty-${GHOSTTY_VERSION}.tar.gz" HEAD
|
||||
git archive --format=tgz --prefix=ghostty-source/ -o ghostty-source.tar.gz HEAD
|
||||
nix develop -c zig build distcheck
|
||||
cp zig-out/dist/ghostty-${GHOSTTY_VERSION}.tar.gz .
|
||||
|
||||
- name: Sign Tarball
|
||||
run: |
|
||||
@@ -102,18 +111,16 @@ jobs:
|
||||
nix develop -c minisign -S -m "ghostty-source.tar.gz" -s minisign.key < minisign.password
|
||||
|
||||
- name: Upload artifact
|
||||
uses: actions/upload-artifact@v4
|
||||
uses: actions/upload-artifact@ea165f8d65b6e75b540449e92b4886f43607fa02 # v4.6.2
|
||||
with:
|
||||
name: source-tarball
|
||||
path: |-
|
||||
ghostty-${{ env.GHOSTTY_VERSION }}.tar.gz
|
||||
ghostty-${{ env.GHOSTTY_VERSION }}.tar.gz.minisig
|
||||
ghostty-source.tar.gz
|
||||
ghostty-source.tar.gz.minisig
|
||||
|
||||
build-macos:
|
||||
needs: [setup]
|
||||
runs-on: namespace-profile-ghostty-macos
|
||||
runs-on: namespace-profile-ghostty-macos-tahoe
|
||||
timeout-minutes: 90
|
||||
env:
|
||||
GHOSTTY_VERSION: ${{ needs.setup.outputs.version }}
|
||||
@@ -121,22 +128,25 @@ jobs:
|
||||
GHOSTTY_COMMIT: ${{ needs.setup.outputs.commit }}
|
||||
steps:
|
||||
- name: Checkout code
|
||||
uses: actions/checkout@v4
|
||||
uses: actions/checkout@08c6903cd8c0fde910a37f88322edcfb5dd907a8 # v5.0.0
|
||||
|
||||
- uses: cachix/install-nix-action@v30
|
||||
- uses: DeterminateSystems/nix-installer-action@main
|
||||
with:
|
||||
nix_path: nixpkgs=channel:nixos-unstable
|
||||
- uses: cachix/cachix-action@v15
|
||||
determinate: true
|
||||
- uses: cachix/cachix-action@0fc020193b5a1fa3ac4575aa3a7d3aa6a35435ad # v16
|
||||
with:
|
||||
name: ghostty
|
||||
authToken: "${{ secrets.CACHIX_AUTH_TOKEN }}"
|
||||
|
||||
- name: XCode Select
|
||||
run: sudo xcode-select -s /Applications/Xcode_16.0.app
|
||||
run: sudo xcode-select -s /Applications/Xcode_16.4.app
|
||||
|
||||
- name: Xcode Version
|
||||
run: xcodebuild -version
|
||||
|
||||
- name: Setup Sparkle
|
||||
env:
|
||||
SPARKLE_VERSION: 2.6.3
|
||||
SPARKLE_VERSION: 2.7.1
|
||||
run: |
|
||||
mkdir -p .action/sparkle
|
||||
cd .action/sparkle
|
||||
@@ -151,6 +161,7 @@ jobs:
|
||||
nix develop -c \
|
||||
zig build \
|
||||
-Doptimize=ReleaseFast \
|
||||
-Demit-macos-app=false \
|
||||
-Dversion-string=${GHOSTTY_VERSION}
|
||||
|
||||
# The native app is built with native XCode tooling. This also does
|
||||
@@ -221,14 +232,16 @@ jobs:
|
||||
|
||||
- name: "Notarize DMG"
|
||||
env:
|
||||
PROD_MACOS_NOTARIZATION_APPLE_ID: ${{ secrets.PROD_MACOS_NOTARIZATION_APPLE_ID }}
|
||||
PROD_MACOS_NOTARIZATION_TEAM_ID: ${{ secrets.PROD_MACOS_NOTARIZATION_TEAM_ID }}
|
||||
PROD_MACOS_NOTARIZATION_PWD: ${{ secrets.PROD_MACOS_NOTARIZATION_PWD }}
|
||||
APPLE_NOTARIZATION_ISSUER: ${{ secrets.APPLE_NOTARIZATION_ISSUER }}
|
||||
APPLE_NOTARIZATION_KEY_ID: ${{ secrets.APPLE_NOTARIZATION_KEY_ID }}
|
||||
APPLE_NOTARIZATION_KEY: ${{ secrets.APPLE_NOTARIZATION_KEY }}
|
||||
run: |
|
||||
# Store the notarization credentials so that we can prevent a UI password dialog
|
||||
# from blocking the CI
|
||||
echo "Create keychain profile"
|
||||
xcrun notarytool store-credentials "notarytool-profile" --apple-id "$PROD_MACOS_NOTARIZATION_APPLE_ID" --team-id "$PROD_MACOS_NOTARIZATION_TEAM_ID" --password "$PROD_MACOS_NOTARIZATION_PWD"
|
||||
echo "$APPLE_NOTARIZATION_KEY" > notarization_key.p8
|
||||
xcrun notarytool store-credentials "notarytool-profile" --key notarization_key.p8 --key-id "$APPLE_NOTARIZATION_KEY_ID" --issuer "$APPLE_NOTARIZATION_ISSUER"
|
||||
rm notarization_key.p8
|
||||
|
||||
# Here we send the notarization request to the Apple's Notarization service, waiting for the result.
|
||||
# This typically takes a few seconds inside a CI environment, but it might take more depending on the App
|
||||
@@ -252,7 +265,7 @@ jobs:
|
||||
zip -9 -r --symlinks ../../../ghostty-macos-universal-dsym.zip Ghostty.app.dSYM/
|
||||
|
||||
- name: Upload artifact
|
||||
uses: actions/upload-artifact@v4
|
||||
uses: actions/upload-artifact@ea165f8d65b6e75b540449e92b4886f43607fa02 # v4.6.2
|
||||
with:
|
||||
name: macos
|
||||
path: |-
|
||||
@@ -269,7 +282,7 @@ jobs:
|
||||
curl -sL https://sentry.io/get-cli/ | bash
|
||||
|
||||
- name: Download macOS Artifacts
|
||||
uses: actions/download-artifact@v4
|
||||
uses: actions/download-artifact@634f93cb2916e3fdff6788551b99b062d0335ce0 # v5.0.0
|
||||
with:
|
||||
name: macos
|
||||
|
||||
@@ -281,7 +294,7 @@ jobs:
|
||||
|
||||
appcast:
|
||||
needs: [setup, build-macos]
|
||||
runs-on: namespace-profile-ghostty-macos
|
||||
runs-on: namespace-profile-ghostty-macos-tahoe
|
||||
env:
|
||||
GHOSTTY_VERSION: ${{ needs.setup.outputs.version }}
|
||||
GHOSTTY_BUILD: ${{ needs.setup.outputs.build }}
|
||||
@@ -289,16 +302,16 @@ jobs:
|
||||
GHOSTTY_COMMIT_LONG: ${{ needs.setup.outputs.commit_long }}
|
||||
steps:
|
||||
- name: Checkout code
|
||||
uses: actions/checkout@v4
|
||||
uses: actions/checkout@08c6903cd8c0fde910a37f88322edcfb5dd907a8 # v5.0.0
|
||||
|
||||
- name: Download macOS Artifacts
|
||||
uses: actions/download-artifact@v4
|
||||
uses: actions/download-artifact@634f93cb2916e3fdff6788551b99b062d0335ce0 # v5.0.0
|
||||
with:
|
||||
name: macos
|
||||
|
||||
- name: Setup Sparkle
|
||||
env:
|
||||
SPARKLE_VERSION: 2.6.3
|
||||
SPARKLE_VERSION: 2.7.1
|
||||
run: |
|
||||
mkdir -p .action/sparkle
|
||||
cd .action/sparkle
|
||||
@@ -323,7 +336,7 @@ jobs:
|
||||
mv appcast_new.xml appcast.xml
|
||||
|
||||
- name: Upload artifact
|
||||
uses: actions/upload-artifact@v4
|
||||
uses: actions/upload-artifact@ea165f8d65b6e75b540449e92b4886f43607fa02 # v4.6.2
|
||||
with:
|
||||
name: sparkle
|
||||
path: |-
|
||||
@@ -340,17 +353,17 @@ jobs:
|
||||
GHOSTTY_VERSION: ${{ needs.setup.outputs.version }}
|
||||
steps:
|
||||
- name: Download macOS Artifacts
|
||||
uses: actions/download-artifact@v4
|
||||
uses: actions/download-artifact@634f93cb2916e3fdff6788551b99b062d0335ce0 # v5.0.0
|
||||
with:
|
||||
name: macos
|
||||
|
||||
- name: Download Sparkle Artifacts
|
||||
uses: actions/download-artifact@v4
|
||||
uses: actions/download-artifact@634f93cb2916e3fdff6788551b99b062d0335ce0 # v5.0.0
|
||||
with:
|
||||
name: sparkle
|
||||
|
||||
- name: Download Source Tarball Artifacts
|
||||
uses: actions/download-artifact@v4
|
||||
uses: actions/download-artifact@634f93cb2916e3fdff6788551b99b062d0335ce0 # v5.0.0
|
||||
with:
|
||||
name: source-tarball
|
||||
|
||||
@@ -370,7 +383,7 @@ jobs:
|
||||
mv Ghostty.dmg blob/${GHOSTTY_VERSION}/Ghostty.dmg
|
||||
mv appcast.xml blob/${GHOSTTY_VERSION}/appcast-staged.xml
|
||||
- name: Upload to R2
|
||||
uses: ryand56/r2-upload-action@latest
|
||||
uses: ryand56/r2-upload-action@b801a390acbdeb034c5e684ff5e1361c06639e7c # v1.4
|
||||
with:
|
||||
r2-account-id: ${{ secrets.CF_R2_RELEASE_ACCOUNT_ID }}
|
||||
r2-access-key-id: ${{ secrets.CF_R2_RELEASE_AWS_KEY }}
|
||||
|
139
.github/workflows/release-tip.yml
vendored
@@ -19,7 +19,7 @@ jobs:
|
||||
runs-on: namespace-profile-ghostty-sm
|
||||
needs: [build-macos]
|
||||
steps:
|
||||
- uses: actions/checkout@v4
|
||||
- uses: actions/checkout@08c6903cd8c0fde910a37f88322edcfb5dd907a8 # v5.0.0
|
||||
- name: Tip Tag
|
||||
run: |
|
||||
git config user.name "github-actions[bot]"
|
||||
@@ -31,7 +31,7 @@ jobs:
|
||||
runs-on: namespace-profile-ghostty-sm
|
||||
needs: [build-macos-debug-slow]
|
||||
steps:
|
||||
- uses: actions/checkout@v4
|
||||
- uses: actions/checkout@08c6903cd8c0fde910a37f88322edcfb5dd907a8 # v5.0.0
|
||||
|
||||
- name: Install sentry-cli
|
||||
run: |
|
||||
@@ -52,7 +52,7 @@ jobs:
|
||||
runs-on: namespace-profile-ghostty-sm
|
||||
needs: [build-macos-debug-fast]
|
||||
steps:
|
||||
- uses: actions/checkout@v4
|
||||
- uses: actions/checkout@08c6903cd8c0fde910a37f88322edcfb5dd907a8 # v5.0.0
|
||||
|
||||
- name: Install sentry-cli
|
||||
run: |
|
||||
@@ -73,7 +73,7 @@ jobs:
|
||||
runs-on: namespace-profile-ghostty-sm
|
||||
needs: [build-macos]
|
||||
steps:
|
||||
- uses: actions/checkout@v4
|
||||
- uses: actions/checkout@08c6903cd8c0fde910a37f88322edcfb5dd907a8 # v5.0.0
|
||||
|
||||
- name: Install sentry-cli
|
||||
run: |
|
||||
@@ -101,24 +101,38 @@ jobs:
|
||||
)
|
||||
}}
|
||||
runs-on: namespace-profile-ghostty-md
|
||||
env:
|
||||
ZIG_LOCAL_CACHE_DIR: /zig/local-cache
|
||||
ZIG_GLOBAL_CACHE_DIR: /zig/global-cache
|
||||
steps:
|
||||
- uses: actions/checkout@v4
|
||||
- uses: cachix/install-nix-action@v30
|
||||
- uses: actions/checkout@08c6903cd8c0fde910a37f88322edcfb5dd907a8 # v5.0.0
|
||||
- name: Setup Cache
|
||||
uses: namespacelabs/nscloud-cache-action@305bfa7ea980a858d511af4899414a84847c7991 # v1.2.16
|
||||
with:
|
||||
path: |
|
||||
/nix
|
||||
/zig
|
||||
- uses: cachix/install-nix-action@fc6e360bedc9ee72d75e701397f0bb30dce77568 # v31.5.2
|
||||
with:
|
||||
nix_path: nixpkgs=channel:nixos-unstable
|
||||
- uses: cachix/cachix-action@v15
|
||||
- uses: cachix/cachix-action@0fc020193b5a1fa3ac4575aa3a7d3aa6a35435ad # v16
|
||||
with:
|
||||
name: ghostty
|
||||
authToken: "${{ secrets.CACHIX_AUTH_TOKEN }}"
|
||||
- name: Create Tarball
|
||||
run: git archive --format=tgz --prefix=ghostty-source/ -o ghostty-source.tar.gz HEAD
|
||||
run: |
|
||||
rm -rf zig-out/dist
|
||||
nix develop -c zig build distcheck
|
||||
cp zig-out/dist/*.tar.gz ghostty-source.tar.gz
|
||||
|
||||
- name: Sign Tarball
|
||||
run: |
|
||||
echo -n "${{ secrets.MINISIGN_KEY }}" > minisign.key
|
||||
echo -n "${{ secrets.MINISIGN_PASSWORD }}" > minisign.password
|
||||
nix develop -c minisign -S -m ghostty-source.tar.gz -s minisign.key < minisign.password
|
||||
|
||||
- name: Update Release
|
||||
uses: softprops/action-gh-release@v2
|
||||
uses: softprops/action-gh-release@72f2c25fcb47643c292f7107632f7a47c1df5cd8 # v2.3.2
|
||||
with:
|
||||
name: 'Ghostty Tip ("Nightly")'
|
||||
prerelease: true
|
||||
@@ -140,31 +154,34 @@ jobs:
|
||||
)
|
||||
}}
|
||||
|
||||
runs-on: namespace-profile-ghostty-macos
|
||||
runs-on: namespace-profile-ghostty-macos-tahoe
|
||||
timeout-minutes: 90
|
||||
steps:
|
||||
- name: Checkout code
|
||||
uses: actions/checkout@v4
|
||||
uses: actions/checkout@08c6903cd8c0fde910a37f88322edcfb5dd907a8 # v5.0.0
|
||||
with:
|
||||
# Important so that build number generation works
|
||||
fetch-depth: 0
|
||||
|
||||
# Install Nix and use that to run our tests so our environment matches exactly.
|
||||
- uses: cachix/install-nix-action@v30
|
||||
# TODO(tahoe): https://github.com/NixOS/nix/issues/13342
|
||||
- uses: DeterminateSystems/nix-installer-action@main
|
||||
with:
|
||||
nix_path: nixpkgs=channel:nixos-unstable
|
||||
- uses: cachix/cachix-action@v15
|
||||
determinate: true
|
||||
- uses: cachix/cachix-action@0fc020193b5a1fa3ac4575aa3a7d3aa6a35435ad # v16
|
||||
with:
|
||||
name: ghostty
|
||||
authToken: "${{ secrets.CACHIX_AUTH_TOKEN }}"
|
||||
|
||||
- name: XCode Select
|
||||
run: sudo xcode-select -s /Applications/Xcode_16.0.app
|
||||
run: sudo xcode-select -s /Applications/Xcode_26.0.app
|
||||
|
||||
- name: Xcode Version
|
||||
run: xcodebuild -version
|
||||
|
||||
# Setup Sparkle
|
||||
- name: Setup Sparkle
|
||||
env:
|
||||
SPARKLE_VERSION: 2.6.3
|
||||
SPARKLE_VERSION: 2.7.1
|
||||
run: |
|
||||
mkdir -p .action/sparkle
|
||||
cd .action/sparkle
|
||||
@@ -182,7 +199,7 @@ jobs:
|
||||
# GhosttyKit is the framework that is built from Zig for our native
|
||||
# Mac app to access. Build this in release mode.
|
||||
- name: Build GhosttyKit
|
||||
run: nix develop -c zig build -Doptimize=ReleaseFast
|
||||
run: nix develop -c zig build -Doptimize=ReleaseFast -Demit-macos-app=false
|
||||
|
||||
# The native app is built with native XCode tooling. This also does
|
||||
# codesigning. IMPORTANT: this must NOT run in a Nix environment.
|
||||
@@ -253,14 +270,16 @@ jobs:
|
||||
|
||||
- name: "Notarize DMG"
|
||||
env:
|
||||
PROD_MACOS_NOTARIZATION_APPLE_ID: ${{ secrets.PROD_MACOS_NOTARIZATION_APPLE_ID }}
|
||||
PROD_MACOS_NOTARIZATION_TEAM_ID: ${{ secrets.PROD_MACOS_NOTARIZATION_TEAM_ID }}
|
||||
PROD_MACOS_NOTARIZATION_PWD: ${{ secrets.PROD_MACOS_NOTARIZATION_PWD }}
|
||||
APPLE_NOTARIZATION_ISSUER: ${{ secrets.APPLE_NOTARIZATION_ISSUER }}
|
||||
APPLE_NOTARIZATION_KEY_ID: ${{ secrets.APPLE_NOTARIZATION_KEY_ID }}
|
||||
APPLE_NOTARIZATION_KEY: ${{ secrets.APPLE_NOTARIZATION_KEY }}
|
||||
run: |
|
||||
# Store the notarization credentials so that we can prevent a UI password dialog
|
||||
# from blocking the CI
|
||||
echo "Create keychain profile"
|
||||
xcrun notarytool store-credentials "notarytool-profile" --apple-id "$PROD_MACOS_NOTARIZATION_APPLE_ID" --team-id "$PROD_MACOS_NOTARIZATION_TEAM_ID" --password "$PROD_MACOS_NOTARIZATION_PWD"
|
||||
echo "$APPLE_NOTARIZATION_KEY" > notarization_key.p8
|
||||
xcrun notarytool store-credentials "notarytool-profile" --key notarization_key.p8 --key-id "$APPLE_NOTARIZATION_KEY_ID" --issuer "$APPLE_NOTARIZATION_ISSUER"
|
||||
rm notarization_key.p8
|
||||
|
||||
# Here we send the notarization request to the Apple's Notarization service, waiting for the result.
|
||||
# This typically takes a few seconds inside a CI environment, but it might take more depending on the App
|
||||
@@ -285,7 +304,7 @@ jobs:
|
||||
|
||||
# Update Release
|
||||
- name: Release
|
||||
uses: softprops/action-gh-release@v2
|
||||
uses: softprops/action-gh-release@72f2c25fcb47643c292f7107632f7a47c1df5cd8 # v2.3.2
|
||||
with:
|
||||
name: 'Ghostty Tip ("Nightly")'
|
||||
prerelease: true
|
||||
@@ -317,7 +336,7 @@ jobs:
|
||||
cp Ghostty.dmg blob/${GHOSTTY_COMMIT_LONG}/Ghostty.dmg
|
||||
|
||||
- name: Upload to R2
|
||||
uses: ryand56/r2-upload-action@latest
|
||||
uses: ryand56/r2-upload-action@b801a390acbdeb034c5e684ff5e1361c06639e7c # v1.4
|
||||
with:
|
||||
r2-account-id: ${{ secrets.CF_R2_TIP_ACCOUNT_ID }}
|
||||
r2-access-key-id: ${{ secrets.CF_R2_TIP_AWS_KEY }}
|
||||
@@ -335,7 +354,7 @@ jobs:
|
||||
cp appcast_new.xml blob/appcast.xml
|
||||
|
||||
- name: Upload Appcast to R2
|
||||
uses: ryand56/r2-upload-action@latest
|
||||
uses: ryand56/r2-upload-action@b801a390acbdeb034c5e684ff5e1361c06639e7c # v1.4
|
||||
with:
|
||||
r2-account-id: ${{ secrets.CF_R2_TIP_ACCOUNT_ID }}
|
||||
r2-access-key-id: ${{ secrets.CF_R2_TIP_AWS_KEY }}
|
||||
@@ -355,31 +374,34 @@ jobs:
|
||||
)
|
||||
}}
|
||||
|
||||
runs-on: namespace-profile-ghostty-macos
|
||||
runs-on: namespace-profile-ghostty-macos-tahoe
|
||||
timeout-minutes: 90
|
||||
steps:
|
||||
- name: Checkout code
|
||||
uses: actions/checkout@v4
|
||||
uses: actions/checkout@08c6903cd8c0fde910a37f88322edcfb5dd907a8 # v5.0.0
|
||||
with:
|
||||
# Important so that build number generation works
|
||||
fetch-depth: 0
|
||||
|
||||
# Install Nix and use that to run our tests so our environment matches exactly.
|
||||
- uses: cachix/install-nix-action@v30
|
||||
# TODO(tahoe): https://github.com/NixOS/nix/issues/13342
|
||||
- uses: DeterminateSystems/nix-installer-action@main
|
||||
with:
|
||||
nix_path: nixpkgs=channel:nixos-unstable
|
||||
- uses: cachix/cachix-action@v15
|
||||
determinate: true
|
||||
- uses: cachix/cachix-action@0fc020193b5a1fa3ac4575aa3a7d3aa6a35435ad # v16
|
||||
with:
|
||||
name: ghostty
|
||||
authToken: "${{ secrets.CACHIX_AUTH_TOKEN }}"
|
||||
|
||||
- name: XCode Select
|
||||
run: sudo xcode-select -s /Applications/Xcode_16.0.app
|
||||
run: sudo xcode-select -s /Applications/Xcode_26.0.app
|
||||
|
||||
- name: Xcode Version
|
||||
run: xcodebuild -version
|
||||
|
||||
# Setup Sparkle
|
||||
- name: Setup Sparkle
|
||||
env:
|
||||
SPARKLE_VERSION: 2.5.1
|
||||
SPARKLE_VERSION: 2.7.1
|
||||
run: |
|
||||
mkdir -p .action/sparkle
|
||||
cd .action/sparkle
|
||||
@@ -397,7 +419,7 @@ jobs:
|
||||
# GhosttyKit is the framework that is built from Zig for our native
|
||||
# Mac app to access. Build this in release mode.
|
||||
- name: Build GhosttyKit
|
||||
run: nix develop -c zig build -Doptimize=Debug
|
||||
run: nix develop -c zig build -Doptimize=Debug -Demit-macos-app=false
|
||||
|
||||
# The native app is built with native XCode tooling. This also does
|
||||
# codesigning. IMPORTANT: this must NOT run in a Nix environment.
|
||||
@@ -457,14 +479,16 @@ jobs:
|
||||
|
||||
- name: "Notarize app bundle"
|
||||
env:
|
||||
PROD_MACOS_NOTARIZATION_APPLE_ID: ${{ secrets.PROD_MACOS_NOTARIZATION_APPLE_ID }}
|
||||
PROD_MACOS_NOTARIZATION_TEAM_ID: ${{ secrets.PROD_MACOS_NOTARIZATION_TEAM_ID }}
|
||||
PROD_MACOS_NOTARIZATION_PWD: ${{ secrets.PROD_MACOS_NOTARIZATION_PWD }}
|
||||
APPLE_NOTARIZATION_ISSUER: ${{ secrets.APPLE_NOTARIZATION_ISSUER }}
|
||||
APPLE_NOTARIZATION_KEY_ID: ${{ secrets.APPLE_NOTARIZATION_KEY_ID }}
|
||||
APPLE_NOTARIZATION_KEY: ${{ secrets.APPLE_NOTARIZATION_KEY }}
|
||||
run: |
|
||||
# Store the notarization credentials so that we can prevent a UI password dialog
|
||||
# from blocking the CI
|
||||
echo "Create keychain profile"
|
||||
xcrun notarytool store-credentials "notarytool-profile" --apple-id "$PROD_MACOS_NOTARIZATION_APPLE_ID" --team-id "$PROD_MACOS_NOTARIZATION_TEAM_ID" --password "$PROD_MACOS_NOTARIZATION_PWD"
|
||||
echo "$APPLE_NOTARIZATION_KEY" > notarization_key.p8
|
||||
xcrun notarytool store-credentials "notarytool-profile" --key notarization_key.p8 --key-id "$APPLE_NOTARIZATION_KEY_ID" --issuer "$APPLE_NOTARIZATION_ISSUER"
|
||||
rm notarization_key.p8
|
||||
|
||||
# We can't notarize an app bundle directly, but we need to compress it as an archive.
|
||||
# Therefore, we create a zip file containing our app bundle, so that we can send it to the
|
||||
@@ -493,7 +517,7 @@ jobs:
|
||||
|
||||
# Update Release
|
||||
- name: Release
|
||||
uses: softprops/action-gh-release@v2
|
||||
uses: softprops/action-gh-release@72f2c25fcb47643c292f7107632f7a47c1df5cd8 # v2.3.2
|
||||
with:
|
||||
name: 'Ghostty Tip ("Nightly")'
|
||||
prerelease: true
|
||||
@@ -510,7 +534,7 @@ jobs:
|
||||
cp ghostty-macos-universal-debug-slow.zip blob/${GHOSTTY_COMMIT_LONG}/ghostty-macos-universal-debug-slow.zip
|
||||
cp ghostty-macos-universal-debug-slow-dsym.zip blob/${GHOSTTY_COMMIT_LONG}/ghostty-macos-universal-debug-slow-dsym.zip
|
||||
- name: Upload to R2
|
||||
uses: ryand56/r2-upload-action@latest
|
||||
uses: ryand56/r2-upload-action@b801a390acbdeb034c5e684ff5e1361c06639e7c # v1.4
|
||||
with:
|
||||
r2-account-id: ${{ secrets.CF_R2_TIP_ACCOUNT_ID }}
|
||||
r2-access-key-id: ${{ secrets.CF_R2_TIP_AWS_KEY }}
|
||||
@@ -530,31 +554,34 @@ jobs:
|
||||
)
|
||||
}}
|
||||
|
||||
runs-on: namespace-profile-ghostty-macos
|
||||
runs-on: namespace-profile-ghostty-macos-tahoe
|
||||
timeout-minutes: 90
|
||||
steps:
|
||||
- name: Checkout code
|
||||
uses: actions/checkout@v4
|
||||
uses: actions/checkout@08c6903cd8c0fde910a37f88322edcfb5dd907a8 # v5.0.0
|
||||
with:
|
||||
# Important so that build number generation works
|
||||
fetch-depth: 0
|
||||
|
||||
# Install Nix and use that to run our tests so our environment matches exactly.
|
||||
- uses: cachix/install-nix-action@v30
|
||||
# TODO(tahoe): https://github.com/NixOS/nix/issues/13342
|
||||
- uses: DeterminateSystems/nix-installer-action@main
|
||||
with:
|
||||
nix_path: nixpkgs=channel:nixos-unstable
|
||||
- uses: cachix/cachix-action@v15
|
||||
determinate: true
|
||||
- uses: cachix/cachix-action@0fc020193b5a1fa3ac4575aa3a7d3aa6a35435ad # v16
|
||||
with:
|
||||
name: ghostty
|
||||
authToken: "${{ secrets.CACHIX_AUTH_TOKEN }}"
|
||||
|
||||
- name: XCode Select
|
||||
run: sudo xcode-select -s /Applications/Xcode_16.0.app
|
||||
run: sudo xcode-select -s /Applications/Xcode_26.0.app
|
||||
|
||||
- name: Xcode Version
|
||||
run: xcodebuild -version
|
||||
|
||||
# Setup Sparkle
|
||||
- name: Setup Sparkle
|
||||
env:
|
||||
SPARKLE_VERSION: 2.5.1
|
||||
SPARKLE_VERSION: 2.7.1
|
||||
run: |
|
||||
mkdir -p .action/sparkle
|
||||
cd .action/sparkle
|
||||
@@ -572,7 +599,7 @@ jobs:
|
||||
# GhosttyKit is the framework that is built from Zig for our native
|
||||
# Mac app to access. Build this in release mode.
|
||||
- name: Build GhosttyKit
|
||||
run: nix develop -c zig build -Doptimize=ReleaseSafe
|
||||
run: nix develop -c zig build -Doptimize=ReleaseSafe -Demit-macos-app=false
|
||||
|
||||
# The native app is built with native XCode tooling. This also does
|
||||
# codesigning. IMPORTANT: this must NOT run in a Nix environment.
|
||||
@@ -632,14 +659,16 @@ jobs:
|
||||
|
||||
- name: "Notarize app bundle"
|
||||
env:
|
||||
PROD_MACOS_NOTARIZATION_APPLE_ID: ${{ secrets.PROD_MACOS_NOTARIZATION_APPLE_ID }}
|
||||
PROD_MACOS_NOTARIZATION_TEAM_ID: ${{ secrets.PROD_MACOS_NOTARIZATION_TEAM_ID }}
|
||||
PROD_MACOS_NOTARIZATION_PWD: ${{ secrets.PROD_MACOS_NOTARIZATION_PWD }}
|
||||
APPLE_NOTARIZATION_ISSUER: ${{ secrets.APPLE_NOTARIZATION_ISSUER }}
|
||||
APPLE_NOTARIZATION_KEY_ID: ${{ secrets.APPLE_NOTARIZATION_KEY_ID }}
|
||||
APPLE_NOTARIZATION_KEY: ${{ secrets.APPLE_NOTARIZATION_KEY }}
|
||||
run: |
|
||||
# Store the notarization credentials so that we can prevent a UI password dialog
|
||||
# from blocking the CI
|
||||
echo "Create keychain profile"
|
||||
xcrun notarytool store-credentials "notarytool-profile" --apple-id "$PROD_MACOS_NOTARIZATION_APPLE_ID" --team-id "$PROD_MACOS_NOTARIZATION_TEAM_ID" --password "$PROD_MACOS_NOTARIZATION_PWD"
|
||||
echo "$APPLE_NOTARIZATION_KEY" > notarization_key.p8
|
||||
xcrun notarytool store-credentials "notarytool-profile" --key notarization_key.p8 --key-id "$APPLE_NOTARIZATION_KEY_ID" --issuer "$APPLE_NOTARIZATION_ISSUER"
|
||||
rm notarization_key.p8
|
||||
|
||||
# We can't notarize an app bundle directly, but we need to compress it as an archive.
|
||||
# Therefore, we create a zip file containing our app bundle, so that we can send it to the
|
||||
@@ -668,7 +697,7 @@ jobs:
|
||||
|
||||
# Update Release
|
||||
- name: Release
|
||||
uses: softprops/action-gh-release@v2
|
||||
uses: softprops/action-gh-release@72f2c25fcb47643c292f7107632f7a47c1df5cd8 # v2.3.2
|
||||
with:
|
||||
name: 'Ghostty Tip ("Nightly")'
|
||||
prerelease: true
|
||||
@@ -685,7 +714,7 @@ jobs:
|
||||
cp ghostty-macos-universal-debug-fast.zip blob/${GHOSTTY_COMMIT_LONG}/ghostty-macos-universal-debug-fast.zip
|
||||
cp ghostty-macos-universal-debug-fast-dsym.zip blob/${GHOSTTY_COMMIT_LONG}/ghostty-macos-universal-debug-fast-dsym.zip
|
||||
- name: Upload to R2
|
||||
uses: ryand56/r2-upload-action@latest
|
||||
uses: ryand56/r2-upload-action@b801a390acbdeb034c5e684ff5e1361c06639e7c # v1.4
|
||||
with:
|
||||
r2-account-id: ${{ secrets.CF_R2_TIP_ACCOUNT_ID }}
|
||||
r2-access-key-id: ${{ secrets.CF_R2_TIP_AWS_KEY }}
|
||||
|
732
.github/workflows/test.yml
vendored
21
.github/workflows/update-colorschemes.yml
vendored
@@ -17,22 +17,22 @@ jobs:
|
||||
ZIG_GLOBAL_CACHE_DIR: /zig/global-cache
|
||||
steps:
|
||||
- name: Checkout code
|
||||
uses: actions/checkout@v4
|
||||
uses: actions/checkout@08c6903cd8c0fde910a37f88322edcfb5dd907a8 # v5.0.0
|
||||
with:
|
||||
fetch-depth: 0
|
||||
|
||||
- name: Setup Cache
|
||||
uses: namespacelabs/nscloud-cache-action@v1.2.0
|
||||
uses: namespacelabs/nscloud-cache-action@305bfa7ea980a858d511af4899414a84847c7991 # v1.2.16
|
||||
with:
|
||||
path: |
|
||||
/nix
|
||||
/zig
|
||||
|
||||
- name: Setup Nix
|
||||
uses: cachix/install-nix-action@v30
|
||||
uses: cachix/install-nix-action@fc6e360bedc9ee72d75e701397f0bb30dce77568 # v31.5.2
|
||||
with:
|
||||
nix_path: nixpkgs=channel:nixos-unstable
|
||||
- uses: cachix/cachix-action@v15
|
||||
- uses: cachix/cachix-action@0fc020193b5a1fa3ac4575aa3a7d3aa6a35435ad # v16
|
||||
with:
|
||||
name: ghostty
|
||||
authToken: "${{ secrets.CACHIX_AUTH_TOKEN }}"
|
||||
@@ -48,17 +48,17 @@ jobs:
|
||||
run: |
|
||||
# Only proceed if build.zig.zon has changed
|
||||
if ! git diff --exit-code build.zig.zon; then
|
||||
nix develop -c ./nix/build-support/check-zig-cache-hash.sh --update
|
||||
nix develop -c ./nix/build-support/check-zig-cache-hash.sh
|
||||
nix develop -c ./nix/build-support/check-zig-cache.sh --update
|
||||
nix develop -c ./nix/build-support/check-zig-cache.sh
|
||||
fi
|
||||
|
||||
# Verify the build still works. We choose an arbitrary build type
|
||||
# as a canary instead of testing all build types.
|
||||
- name: Test Build
|
||||
run: nix develop -c zig build -Dapp-runtime=gtk -Dgtk-adwaita=true
|
||||
run: nix build .#ghostty
|
||||
|
||||
- name: Create pull request
|
||||
uses: peter-evans/create-pull-request@v7
|
||||
uses: peter-evans/create-pull-request@271a8d0340265f705b14b6d32b9829c1cb33d45e # v7.0.8
|
||||
with:
|
||||
title: Update iTerm2 colorschemes
|
||||
base: main
|
||||
@@ -66,7 +66,10 @@ jobs:
|
||||
commit-message: "deps: Update iTerm2 color schemes"
|
||||
add-paths: |
|
||||
build.zig.zon
|
||||
nix/zigCacheHash.nix
|
||||
build.zig.zon.nix
|
||||
build.zig.zon.txt
|
||||
build.zig.zon.json
|
||||
flatpak/zig-packages.json
|
||||
body: |
|
||||
Upstream revision: https://github.com/mbadolato/iTerm2-Color-Schemes/tree/${{ steps.zig_fetch.outputs.upstream_rev }}
|
||||
labels: dependencies
|
||||
|
5
.gitignore
vendored
@@ -5,6 +5,7 @@
|
||||
.DS_Store
|
||||
.vscode/
|
||||
.direnv/
|
||||
.envrc.local
|
||||
.flatpak-builder/
|
||||
zig-cache/
|
||||
.zig-cache/
|
||||
@@ -13,8 +14,12 @@ zig-out/
|
||||
example/*.wasm
|
||||
test/ghostty
|
||||
test/cases/**/*.actual.png
|
||||
flatpak/builddir/
|
||||
flatpak/repo/
|
||||
|
||||
glad.zip
|
||||
/Box_test.ppm
|
||||
/Box_test_diff.ppm
|
||||
/ghostty.qcow2
|
||||
|
||||
vgcore.*
|
||||
|
@@ -11,6 +11,9 @@ zig-out/
|
||||
# macos is managed by XCode GUI
|
||||
macos/
|
||||
|
||||
# produced by Icon Composer on macOS
|
||||
images/Ghostty.icon/icon.json
|
||||
|
||||
# website dev run
|
||||
website/.next
|
||||
|
||||
|
189
CODEOWNERS
Normal file
@@ -0,0 +1,189 @@
|
||||
# This file documents the subsystem maintainers of the Ghostty project
|
||||
# along with the responsibilities of a maintainer and how one can become
|
||||
# a maintainer.
|
||||
#
|
||||
# Ghostty follows a subsystem maintainer model where distinguished
|
||||
# contributors (with mutual agreement) are designated as maintainers of a
|
||||
# specific subset of the project. A subsystem maintainer has more privileges
|
||||
# and authority over a specific part of the project than a regular
|
||||
# contributor and deference is given to them when making decisions about
|
||||
# their subsystem.
|
||||
#
|
||||
# Ultimately Ghostty has a BDFL (Benevolent Dictator For Life) model
|
||||
# currently with @mitchellh as the BDFL. The BDFL has the final say in all
|
||||
# decisions and may override a maintainer's decision if necessary. I like to
|
||||
# say its a BDFLFN (Benevolent Dictator For Life "For Now") model because
|
||||
# long term I'd like to see the project be more community driven. But for
|
||||
# now, early in its life, we're going with this model.
|
||||
#
|
||||
# ## Privileges
|
||||
#
|
||||
# - Authority to approve or reject pull requests in their subsystem.
|
||||
# - Authority to moderate issues and discussions in their subsystem.
|
||||
# - Authority to make roadmap and design decisions about their subsystem
|
||||
# with input only from other subsystem maintainers.
|
||||
#
|
||||
# In all scenarios, the BDFL doesn't need to be consulted for decisions
|
||||
# but may revert or override decisions if necessary. The expectation is
|
||||
# that maintainers will be trusted to make the right decisions for their
|
||||
# subsystem and this will be rare.
|
||||
#
|
||||
# ## Responsibilities
|
||||
#
|
||||
# Subsystem maintainership is a voluntary role and maintainers are not
|
||||
# expected to dedicate any amount of time to the project. However, if a
|
||||
# maintainer is inactive for a long period of time, they may be removed from
|
||||
# the maintainers list to avoid bitrot or outdated information.
|
||||
#
|
||||
# Maintainers are expected to be exemplary members of the community and
|
||||
# should be respectful, helpful, and professional in all interactions.
|
||||
# This is both in regards to the community at large as well as other
|
||||
# subsystem maintainers as well as @mitchellh.
|
||||
#
|
||||
# As technical leaders, maintainers are expected to be mindful about
|
||||
# breaking changes, performance, user impact, and other technical
|
||||
# considerations in their subsystem. They should be considerate of large
|
||||
# changes and should be able to justify their decisions.
|
||||
#
|
||||
# Notably, maintainers have NO OBLIGATION to review pull requests or issues
|
||||
# in their subsystem. They have full discretion to review or not review
|
||||
# anything they want. This isn't a job! It is a role of trust and authority
|
||||
# and the expectation is that maintainers will use their best judgement.
|
||||
#
|
||||
# ## Becoming a Maintainer
|
||||
#
|
||||
# Maintainer candidates are noticed and proposed by the community. Anyone
|
||||
# may propose themselves or someone else as a maintainer. The BDFL along
|
||||
# with existing maintainers will discuss and decide.
|
||||
#
|
||||
# Generally, we want to see consistent high quality contributions to a
|
||||
# specific subsystem before considering someone as a maintainer. There isn't
|
||||
# an exact number of contributions or time period required but generally
|
||||
# we're looking for an order of a dozen or more contributions over a period of
|
||||
# months, at least.
|
||||
#
|
||||
# # Subsystem List
|
||||
#
|
||||
# The subsystems don't fully cover the entirety of the Ghostty project but
|
||||
# are created organically as experts in certain areas emerge. If you feel
|
||||
# you are an expert in a certain area and would like to be a maintainer,
|
||||
# please reach out to @mitchellh on Discord.
|
||||
#
|
||||
# (Alphabetical order)
|
||||
#
|
||||
# - @ghostty-org/font - All things font related including discovery,
|
||||
# rasterization, shaping, coloring, etc.
|
||||
#
|
||||
# - @ghostty-org/gtk - Anything GTK-related in the project, primarily
|
||||
# the GTK apprt. Also includes X11/Wayland integrations and general
|
||||
# Linux support.
|
||||
#
|
||||
# - @ghostty-org/localization/* - Anything related to localization
|
||||
# for a specific locale.
|
||||
#
|
||||
# - @ghosty-org/localization/manager - Manage all localization tasks
|
||||
# and tooling. They are not responsible for any specific locale but
|
||||
# are responsible for the overall localization process and tooling.
|
||||
#
|
||||
# - @ghostty-org/macos - The Ghostty macOS app and any macOS-specific
|
||||
# features, configurations, etc.
|
||||
#
|
||||
# - @ghostty-org/packaging/snap - Ghostty snap packaging
|
||||
# (https://snapcraft.io/ghostty)
|
||||
#
|
||||
# - @ghostty-org/renderer - Ghostty rendering subsystem, including the
|
||||
# rendering abstractions as well as specific renderers like OpenGL
|
||||
# and Metal.
|
||||
#
|
||||
# - @ghostty-org/shell - Ghostty shell integration, including shell
|
||||
# completions, shell detection, and any other shell interactions.
|
||||
#
|
||||
# - @ghostty-org/terminal - The terminal emulator subsystem, including
|
||||
# subprocess management and pty handling, escape sequence parsing,
|
||||
# key encoding, etc.
|
||||
#
|
||||
# ## Outside of Ghostty
|
||||
#
|
||||
# Other "subsystems" exist outside of Ghostty and will not be represented
|
||||
# in this CODEOWNERS file:
|
||||
#
|
||||
# - @ghostty-org/discord-bot - Maintainers of the Ghostty Discord bot.
|
||||
#
|
||||
# - @ghostty-org/website - Maintainers of the Ghostty website.
|
||||
|
||||
# Font
|
||||
/src/font/ @ghostty-org/font
|
||||
/pkg/fontconfig/ @ghostty-org/font
|
||||
/pkg/freetype/ @ghostty-org/font
|
||||
/pkg/harfbuzz/ @ghostty-org/font
|
||||
|
||||
# GTK
|
||||
/src/apprt/gtk/ @ghostty-org/gtk
|
||||
/src/apprt/gtk-ng/ @ghostty-org/gtk
|
||||
/src/os/cgroup.zig @ghostty-org/gtk
|
||||
/src/os/flatpak.zig @ghostty-org/gtk
|
||||
/dist/linux/ @ghostty-org/gtk
|
||||
|
||||
# macOS
|
||||
#
|
||||
# This includes libghostty because the macOS apprt is built on top of
|
||||
# libghostty and often requires or is impacted by changes to libghostty.
|
||||
# macOS subsystem maintainers are expected to only work on libghostty
|
||||
# insofar as it impacts the macOS apprt.
|
||||
/include/ghostty.h @ghostty-org/macos
|
||||
/src/apprt/embedded.zig @ghostty-org/macos
|
||||
/src/os/cf_release_thread.zig @ghostty-org/macos
|
||||
/src/os/macos.zig @ghostty-org/macos
|
||||
/macos/ @ghostty-org/macos
|
||||
/dist/macos/ @ghostty-org/macos
|
||||
/pkg/apple-sdk/ @ghostty-org/macos
|
||||
/pkg/macos/ @ghostty-org/macos
|
||||
|
||||
# Renderer
|
||||
/src/renderer.zig @ghostty-org/renderer
|
||||
/src/renderer/ @ghostty-org/renderer
|
||||
/pkg/glslang/ @ghostty-org/renderer
|
||||
/pkg/opengl/ @ghostty-org/renderer
|
||||
/pkg/spirv-cross/ @ghostty-org/renderer
|
||||
/pkg/wuffs/ @ghostty-org/renderer
|
||||
|
||||
# Shell
|
||||
/src/shell-integration/ @ghostty-org/shell
|
||||
/src/termio/shell_integration.zig @ghostty-org/shell
|
||||
|
||||
# Terminal
|
||||
/src/simd/ @ghostty-org/terminal
|
||||
/src/input/KeyEncoder.zig @ghostty-org/terminal
|
||||
/src/terminal/ @ghostty-org/terminal
|
||||
/src/terminfo/ @ghostty-org/terminal
|
||||
/src/termio/ @ghostty-org/terminal
|
||||
/src/unicode/ @ghostty-org/terminal
|
||||
/src/Surface.zig @ghostty-org/terminal
|
||||
/src/surface_mouse.zig @ghostty-org/terminal
|
||||
|
||||
# Localization
|
||||
/po/README_TRANSLATORS.md @ghostty-org/localization
|
||||
/po/com.mitchellh.ghostty.pot @ghostty-org/localization
|
||||
/po/ca_ES.UTF-8.po @ghostty-org/ca_ES
|
||||
/po/de_DE.UTF-8.po @ghostty-org/de_DE
|
||||
/po/es_BO.UTF-8.po @ghostty-org/es_BO
|
||||
/po/es_AR.UTF-8.po @ghostty-org/es_AR
|
||||
/po/fr_FR.UTF-8.po @ghostty-org/fr_FR
|
||||
/po/hu_HU.UTF-8.po @ghostty-org/hu_HU
|
||||
/po/id_ID.UTF-8.po @ghostty-org/id_ID
|
||||
/po/ja_JP.UTF-8.po @ghostty-org/ja_JP
|
||||
/po/mk_MK.UTF-8.po @ghostty-org/mk_MK
|
||||
/po/nb_NO.UTF-8.po @ghostty-org/nb_NO
|
||||
/po/nl_NL.UTF-8.po @ghostty-org/nl_NL
|
||||
/po/pl_PL.UTF-8.po @ghostty-org/pl_PL
|
||||
/po/pt_BR.UTF-8.po @ghostty-org/pt_BR
|
||||
/po/ru_RU.UTF-8.po @ghostty-org/ru_RU
|
||||
/po/tr_TR.UTF-8.po @ghostty-org/tr_TR
|
||||
/po/uk_UA.UTF-8.po @ghostty-org/uk_UA
|
||||
/po/zh_CN.UTF-8.po @ghostty-org/zh_CN
|
||||
/po/ga_IE.UTF-8.po @ghostty-org/ga_IE
|
||||
/po/ko_KR.UTF-8.po @ghostty-org/ko_KR
|
||||
/po/he_IL.UTF-8.po @ghostty-org/he_IL
|
||||
|
||||
# Packaging - Snap
|
||||
/snap/ @ghostty-org/snap
|
154
CONTRIBUTING.md
@@ -13,6 +13,40 @@ we can always convert that to an issue later.
|
||||
> time to fixing bugs, maintaining features, and reviewing code, I do kindly
|
||||
> ask you spend a few minutes reading this document. Thank you. ❤️
|
||||
|
||||
## AI Assistance Notice
|
||||
|
||||
> [!IMPORTANT]
|
||||
>
|
||||
> If you are using **any kind of AI assistance** to contribute to Ghostty,
|
||||
> it must be disclosed in the pull request.
|
||||
|
||||
If you are using any kind of AI assistance while contributing to Ghostty,
|
||||
**this must be disclosed in the pull request**, along with the extent to
|
||||
which AI assistance was used (e.g. docs only vs. code generation).
|
||||
If PR responses are being generated by an AI, disclose that as well.
|
||||
As a small exception, trivial tab-completion doesn't need to be disclosed,
|
||||
so long as it is limited to single keywords or short phrases.
|
||||
|
||||
An example disclosure:
|
||||
|
||||
> This PR was written primarily by Claude Code.
|
||||
|
||||
Or a more detailed disclosure:
|
||||
|
||||
> I consulted ChatGPT to understand the codebase but the solution
|
||||
> was fully authored manually by myself.
|
||||
|
||||
Failure to disclose this is first and foremost rude to the human operators
|
||||
on the other end of the pull request, but it also makes it difficult to
|
||||
determine how much scrutiny to apply to the contribution.
|
||||
|
||||
In a perfect world, AI assistance would produce equal or higher quality
|
||||
work than any human. That isn't the world we live in today, and in most cases
|
||||
it's generating slop. I say this despite being a fan of and using them
|
||||
successfully myself (with heavy supervision)!
|
||||
|
||||
Please be respectful to maintainers and disclose AI assistance.
|
||||
|
||||
## Quick Guide
|
||||
|
||||
**I'd like to contribute!**
|
||||
@@ -21,6 +55,15 @@ All issues are actionable. Pick one and start working on it. Thank you.
|
||||
If you need help or guidance, comment on the issue. Issues that are extra
|
||||
friendly to new contributors are tagged with "contributor friendly".
|
||||
|
||||
**I'd like to translate Ghostty to my language!**
|
||||
|
||||
We have written a [Translator's Guide](po/README_TRANSLATORS.md) for
|
||||
everyone interested in contributing translations to Ghostty.
|
||||
Translations usually do not need to go through the process of issue triage
|
||||
and you can submit pull requests directly, although please make sure that
|
||||
our [Style Guide](po/README_TRANSLATORS.md#style-guide) is followed before
|
||||
submission.
|
||||
|
||||
**I have a bug!**
|
||||
|
||||
1. Search the issue tracker and discussions for similar issues.
|
||||
@@ -78,6 +121,115 @@ pull request will be accepted with a high degree of certainty.
|
||||
> not open a WIP pull request to discuss a feature. Instead, use a discussion
|
||||
> and link to your branch.
|
||||
|
||||
# Developer Guide
|
||||
|
||||
> [!NOTE]
|
||||
>
|
||||
> **The remainder of this file is dedicated to developers actively
|
||||
> working on Ghostty.** If you're a user reporting an issue, you can
|
||||
> ignore the rest of this document.
|
||||
|
||||
## Including and Updating Translations
|
||||
|
||||
See the [Contributor's Guide](po/README_CONTRIBUTORS.md) for more details.
|
||||
|
||||
## Checking for Memory Leaks
|
||||
|
||||
While Zig does an amazing job of finding and preventing memory leaks,
|
||||
Ghostty uses many third-party libraries that are written in C. Improper usage
|
||||
of those libraries or bugs in those libraries can cause memory leaks that
|
||||
Zig cannot detect by itself.
|
||||
|
||||
### On Linux
|
||||
|
||||
On Linux the recommended tool to check for memory leaks is Valgrind. The
|
||||
recommended way to run Valgrind is via `zig build`:
|
||||
|
||||
```sh
|
||||
zig build run-valgrind
|
||||
```
|
||||
|
||||
This builds a Ghostty executable with Valgrind support and runs Valgrind
|
||||
with the proper flags to ensure we're suppressing known false positives.
|
||||
|
||||
You can combine the same build args with `run-valgrind` that you can with
|
||||
`run`, such as specifying additional configurations after a trailing `--`.
|
||||
|
||||
## Input Stack Testing
|
||||
|
||||
The input stack is the part of the codebase that starts with a
|
||||
key event and ends with text encoding being sent to the pty (it
|
||||
does not include _rendering_ the text, which is part of the
|
||||
font or rendering stack).
|
||||
|
||||
If you modify any part of the input stack, you must manually verify
|
||||
all the following input cases work properly. We unfortunately do
|
||||
not automate this in any way, but if we can do that one day that'd
|
||||
save a LOT of grief and time.
|
||||
|
||||
Note: this list may not be exhaustive, I'm still working on it.
|
||||
|
||||
### Linux IME
|
||||
|
||||
IME (Input Method Editors) are a common source of bugs in the input stack,
|
||||
especially on Linux since there are multiple different IME systems
|
||||
interacting with different windowing systems and application frameworks
|
||||
all written by different organizations.
|
||||
|
||||
The following matrix should be tested to ensure that all IME input works
|
||||
properly:
|
||||
|
||||
1. Wayland, X11
|
||||
2. ibus, fcitx, none
|
||||
3. Dead key input (e.g. Spanish), CJK (e.g. Japanese), Emoji, Unicode Hex
|
||||
4. ibus versions: 1.5.29, 1.5.30, 1.5.31 (each exhibit slightly different behaviors)
|
||||
|
||||
> [!NOTE]
|
||||
>
|
||||
> This is a **work in progress**. I'm still working on this list and it
|
||||
> is not complete. As I find more test cases, I will add them here.
|
||||
|
||||
#### Dead Key Input
|
||||
|
||||
Set your keyboard layout to "Spanish" (or another layout that uses dead keys).
|
||||
|
||||
1. Launch Ghostty
|
||||
2. Press `'`
|
||||
3. Press `a`
|
||||
4. Verify that `á` is displayed
|
||||
|
||||
Note that the dead key may or may not show a preedit state visually.
|
||||
For ibus and fcitx it does but for the "none" case it does not. Importantly,
|
||||
the text should be correct when it is sent to the pty.
|
||||
|
||||
We should also test canceling dead key input:
|
||||
|
||||
1. Launch Ghostty
|
||||
2. Press `'`
|
||||
3. Press escape
|
||||
4. Press `a`
|
||||
5. Verify that `a` is displayed (no diacritic)
|
||||
|
||||
#### CJK Input
|
||||
|
||||
Configure fcitx or ibus with a keyboard layout like Japanese or Mozc. The
|
||||
exact layout doesn't matter.
|
||||
|
||||
1. Launch Ghostty
|
||||
2. Press `Ctrl+Shift` to switch to "Hiragana"
|
||||
3. On a US physical layout, type: `konn`, you should see `こん` in preedit.
|
||||
4. Press `Enter`
|
||||
5. Verify that `こん` is displayed in the terminal.
|
||||
|
||||
We should also test switching input methods while preedit is active, which
|
||||
should commit the text:
|
||||
|
||||
1. Launch Ghostty
|
||||
2. Press `Ctrl+Shift` to switch to "Hiragana"
|
||||
3. On a US physical layout, type: `konn`, you should see `こん` in preedit.
|
||||
4. Press `Ctrl+Shift` to switch to another layout (any)
|
||||
5. Verify that `こん` is displayed in the terminal as committed text.
|
||||
|
||||
## Nix Virtual Machines
|
||||
|
||||
Several Nix virtual machine definitions are provided by the project for testing
|
||||
@@ -162,7 +314,7 @@ recreated the next time you run the VM.
|
||||
|
||||
We welcome the contribution of new VM definitions, as long as they meet the following criteria:
|
||||
|
||||
1. The should be different enough from existing VM definitions that they represent a distinct
|
||||
1. They should be different enough from existing VM definitions that they represent a distinct
|
||||
user (and developer) experience.
|
||||
2. There's a significant Ghostty user population that uses a similar environment.
|
||||
3. The VMs can be built using only packages from the current stable NixOS release.
|
||||
|
2
LICENSE
@@ -1,6 +1,6 @@
|
||||
MIT License
|
||||
|
||||
Copyright (c) 2024 Mitchell Hashimoto
|
||||
Copyright (c) 2024 Mitchell Hashimoto, Ghostty contributors
|
||||
|
||||
Permission is hereby granted, free of charge, to any person obtaining a copy
|
||||
of this software and associated documentation files (the "Software"), to deal
|
||||
|
41
PACKAGING.md
@@ -4,13 +4,12 @@ Ghostty relies on downstream package maintainers to distribute Ghostty to
|
||||
end-users. This document provides guidance to package maintainers on how to
|
||||
package Ghostty for distribution.
|
||||
|
||||
> [!NOTE]
|
||||
> [!IMPORTANT]
|
||||
>
|
||||
> While Ghostty went through an extensive private beta testing period,
|
||||
> packaging Ghostty is immature and may require additional build script
|
||||
> tweaks and documentation improvement. I'm extremely motivated to work with
|
||||
> package maintainers to improve the packaging process. Please open issues
|
||||
> to discuss any packaging issues you encounter.
|
||||
> This document is only accurate for the Ghostty source alongside it.
|
||||
> **Do not use this document for older or newer versions of Ghostty!** If
|
||||
> you are reading this document in a different version of Ghostty, please
|
||||
> find the `PACKAGING.md` file alongside that version.
|
||||
|
||||
## Source Tarballs
|
||||
|
||||
@@ -23,13 +22,6 @@ https://release.files.ghostty.org/VERSION/ghostty-VERSION.tar.gz
|
||||
https://release.files.ghostty.org/VERSION/ghostty-VERSION.tar.gz.minisig
|
||||
```
|
||||
|
||||
> [!NOTE]
|
||||
>
|
||||
> **Version 1.0.0 the filename is `ghostty-source.tar.gz`.** Future
|
||||
> versions will use the `ghostty-VERSION.tar.gz` format since it is more
|
||||
> typical for source tarballs. But for version 1.0.0, the filename is
|
||||
> `ghostty-source.tar.gz`.
|
||||
|
||||
Signature files are signed with
|
||||
[minisign](https://jedisct1.github.io/minisign/)
|
||||
using the following public key:
|
||||
@@ -44,6 +36,19 @@ Use the `ghostty-source.tar.gz` asset and _not the GitHub auto-generated
|
||||
source tarball_. These tarballs are generated for every commit to
|
||||
the `main` branch and are not associated with a specific version.
|
||||
|
||||
> [!WARNING]
|
||||
>
|
||||
> Source tarballs are _not the same_ as a Git checkout. Source tarballs
|
||||
> contain some preprocessed files that allow building Ghostty with less
|
||||
> dependencies. If you are building Ghostty from a Git checkout, the
|
||||
> steps below are the same but they may require additional dependencies
|
||||
> not listed here. See the `README.md` for more information on building
|
||||
> from a Git checkout.
|
||||
>
|
||||
> For everyone except Ghostty developers, please use the source tarballs.
|
||||
> We generate tip source tarballs for users following the development
|
||||
> branch.
|
||||
|
||||
## Zig Version
|
||||
|
||||
[Zig](https://ziglang.org) is required to build Ghostty. Prior to Zig 1.0,
|
||||
@@ -55,7 +60,7 @@ To find the version of Zig required to build Ghostty, check the `required_zig`
|
||||
constant in `build.zig`. You don't need to know Zig to extract this information.
|
||||
This version will always be an official released version of Zig.
|
||||
|
||||
For example, at the time of writing this document, Ghostty requires Zig 0.13.0.
|
||||
For example, at the time of writing this document, Ghostty requires Zig 0.14.0.
|
||||
|
||||
## Building Ghostty
|
||||
|
||||
@@ -117,11 +122,3 @@ relevant to package maintainers:
|
||||
often necessary for system packages to specify a specific minimum Linux
|
||||
version, glibc, etc. Run `zig targets` to a get a full list of available
|
||||
targets.
|
||||
|
||||
> [!WARNING]
|
||||
>
|
||||
> **The GLFW runtime is not meant for distribution.** The GLFW runtime
|
||||
> (`-Dapp-runtime=glfw`) is meant for development and testing only. It is
|
||||
> missing many features, has known memory leak scenarios, known crashes,
|
||||
> and more. Please do not package the GLFW-based Ghostty runtime for
|
||||
> distribution.
|
||||
|
52
README.md
@@ -188,14 +188,11 @@ SENTRY_DSN=https://e914ee84fd895c4fe324afa3e53dac76@o4507352570920960.ingest.us.
|
||||
## Developing Ghostty
|
||||
|
||||
See the documentation on the Ghostty website for
|
||||
[building Ghostty from source](http://ghostty.org/docs/install/build).
|
||||
For development, omit the `-Doptimize` flag to build a debug build.
|
||||
|
||||
On Linux or macOS, you can use `zig build -Dapp-runtime=glfw run` for a quick
|
||||
GLFW-based app for a faster development cycle while developing core
|
||||
terminal features. Note that this app is missing many features and is also
|
||||
known to crash in certain scenarios, so it is only meant for development
|
||||
tasks.
|
||||
[building Ghostty from a source tarball](http://ghostty.org/docs/install/build).
|
||||
Building Ghostty from a Git checkout is very similar, except you want to
|
||||
omit the `-Doptimize` flag to build a debug build, and you may require
|
||||
additional dependencies since the source tarball includes some processed
|
||||
files that are not in the Git repository.
|
||||
|
||||
Other useful commands:
|
||||
|
||||
@@ -206,6 +203,43 @@ Other useful commands:
|
||||
in the current running terminal emulator so if you want to check the
|
||||
behavior of this project, you must run this command in Ghostty.
|
||||
|
||||
### Extra Dependencies
|
||||
|
||||
Building Ghostty from a Git checkout on Linux requires some additional
|
||||
dependencies:
|
||||
|
||||
- `blueprint-compiler`
|
||||
|
||||
macOS users don't require any additional dependencies.
|
||||
|
||||
> [!NOTE]
|
||||
> This only applies to building from a _Git checkout_. This section does
|
||||
> not apply if you're building from a released _source tarball_. For
|
||||
> source tarballs, see the
|
||||
> [website](http://ghostty.org/docs/install/build).
|
||||
|
||||
### Xcode Version and SDKs
|
||||
|
||||
Building the Ghostty macOS app requires that Xcode, the macOS SDK,
|
||||
and the iOS SDK are all installed.
|
||||
|
||||
A common issue is that the incorrect version of Xcode is either
|
||||
installed or selected. Use the `xcode-select` command to
|
||||
ensure that the correct version of Xcode is selected:
|
||||
|
||||
```shell-session
|
||||
sudo xcode-select --switch /Applications/Xcode-beta.app
|
||||
```
|
||||
|
||||
> [!IMPORTANT]
|
||||
>
|
||||
> Main branch development of Ghostty is preparing for the next major
|
||||
> macOS release, Tahoe (macOS 26). Therefore, the main branch requires
|
||||
> **Xcode 26 and the macOS 26 SDK**.
|
||||
>
|
||||
> You do not need to be running on macOS 26 to build Ghostty, you can
|
||||
> still use Xcode 26 beta on macOS 15 stable.
|
||||
|
||||
### Linting
|
||||
|
||||
#### Prettier
|
||||
@@ -233,7 +267,7 @@ nix develop -c prettier --write .
|
||||
Nix modules are formatted with [Alejandra](https://github.com/kamadorueda/alejandra/). An Alejandra CI check
|
||||
will fail builds with improper formatting.
|
||||
|
||||
Nix users can use the following command to format with Alejanda:
|
||||
Nix users can use the following command to format with Alejandra:
|
||||
|
||||
```
|
||||
nix develop -c alejandra .
|
||||
|
21
TODO.md
@@ -1,21 +0,0 @@
|
||||
Performance:
|
||||
|
||||
- Loading fonts on startups should probably happen in multiple threads
|
||||
|
||||
Correctness:
|
||||
|
||||
- test wrap against wraptest: https://github.com/mattiase/wraptest
|
||||
- automate this in some way
|
||||
- Charsets: UTF-8 vs. ASCII mode
|
||||
- we only support UTF-8 input right now
|
||||
- need fallback glyphs if they're not supported
|
||||
- can effect a crash using `vttest` menu `3 10` since it tries to parse
|
||||
ASCII as UTF-8.
|
||||
|
||||
Mac:
|
||||
|
||||
- Preferences window
|
||||
|
||||
Major Features:
|
||||
|
||||
- Bell
|
272
build.zig
@@ -1,106 +1,260 @@
|
||||
const std = @import("std");
|
||||
const assert = std.debug.assert;
|
||||
const builtin = @import("builtin");
|
||||
const buildpkg = @import("src/build/main.zig");
|
||||
|
||||
comptime {
|
||||
buildpkg.requireZig("0.13.0");
|
||||
buildpkg.requireZig("0.14.0");
|
||||
}
|
||||
|
||||
pub fn build(b: *std.Build) !void {
|
||||
// This defines all the available build options (e.g. `-D`).
|
||||
const config = try buildpkg.Config.init(b);
|
||||
const test_filter = b.option(
|
||||
[]const u8,
|
||||
"test-filter",
|
||||
"Filter for test. Only applies to Zig tests.",
|
||||
);
|
||||
|
||||
// All our steps which we'll hook up later. The steps are shown
|
||||
// up here just so that they are more self-documenting.
|
||||
const run_step = b.step("run", "Run the app");
|
||||
const run_valgrind_step = b.step(
|
||||
"run-valgrind",
|
||||
"Run the app under valgrind",
|
||||
);
|
||||
const test_step = b.step("test", "Run tests");
|
||||
const test_valgrind_step = b.step(
|
||||
"test-valgrind",
|
||||
"Run tests under valgrind",
|
||||
);
|
||||
const translations_step = b.step(
|
||||
"update-translations",
|
||||
"Update translation files",
|
||||
);
|
||||
|
||||
// Ghostty resources like terminfo, shell integration, themes, etc.
|
||||
const resources = try buildpkg.GhosttyResources.init(b, &config);
|
||||
const i18n = if (config.i18n) try buildpkg.GhosttyI18n.init(b, &config) else null;
|
||||
|
||||
// Ghostty dependencies used by many artifacts.
|
||||
const deps = try buildpkg.SharedDeps.init(b, &config);
|
||||
const exe = try buildpkg.GhosttyExe.init(b, &config, &deps);
|
||||
if (config.emit_helpgen) deps.help_strings.install();
|
||||
|
||||
// Ghostty executable, the actual runnable Ghostty program.
|
||||
const exe = try buildpkg.GhosttyExe.init(b, &config, &deps);
|
||||
|
||||
// Ghostty docs
|
||||
const docs = try buildpkg.GhosttyDocs.init(b, &deps);
|
||||
if (config.emit_docs) {
|
||||
const docs = try buildpkg.GhosttyDocs.init(b, &deps);
|
||||
docs.install();
|
||||
} else if (config.target.result.os.tag.isDarwin()) {
|
||||
// If we aren't emitting docs we need to emit a placeholder so
|
||||
// our macOS xcodeproject builds since it expects the `share/man`
|
||||
// directory to exist to copy into the app bundle.
|
||||
docs.installDummy(b.getInstallStep());
|
||||
}
|
||||
|
||||
// Ghostty webdata
|
||||
if (config.emit_webdata) {
|
||||
const webdata = try buildpkg.GhosttyWebdata.init(b, &deps);
|
||||
webdata.install();
|
||||
}
|
||||
const webdata = try buildpkg.GhosttyWebdata.init(b, &deps);
|
||||
if (config.emit_webdata) webdata.install();
|
||||
|
||||
// Ghostty bench tools
|
||||
if (config.emit_bench) {
|
||||
const bench = try buildpkg.GhosttyBench.init(b, &deps);
|
||||
bench.install();
|
||||
const bench = try buildpkg.GhosttyBench.init(b, &deps);
|
||||
if (config.emit_bench) bench.install();
|
||||
|
||||
// Ghostty dist tarball
|
||||
const dist = try buildpkg.GhosttyDist.init(b, &config);
|
||||
{
|
||||
const step = b.step("dist", "Build the dist tarball");
|
||||
step.dependOn(dist.install_step);
|
||||
const check_step = b.step("distcheck", "Install and validate the dist tarball");
|
||||
check_step.dependOn(dist.check_step);
|
||||
check_step.dependOn(dist.install_step);
|
||||
}
|
||||
|
||||
// If we're not building libghostty, then install the exe and resources.
|
||||
// libghostty
|
||||
const libghostty_shared = try buildpkg.GhosttyLib.initShared(
|
||||
b,
|
||||
&deps,
|
||||
);
|
||||
const libghostty_static = try buildpkg.GhosttyLib.initStatic(
|
||||
b,
|
||||
&deps,
|
||||
);
|
||||
|
||||
// Runtime "none" is libghostty, anything else is an executable.
|
||||
if (config.app_runtime != .none) {
|
||||
exe.install();
|
||||
resources.install();
|
||||
}
|
||||
|
||||
// Libghostty
|
||||
//
|
||||
// Note: libghostty is not stable for general purpose use. It is used
|
||||
// heavily by Ghostty on macOS but it isn't built to be reusable yet.
|
||||
// As such, these build steps are lacking. For example, the Darwin
|
||||
// build only produces an xcframework.
|
||||
if (config.app_runtime == .none) {
|
||||
if (config.target.result.isDarwin()) darwin: {
|
||||
if (!config.emit_xcframework) break :darwin;
|
||||
|
||||
// Build the xcframework
|
||||
const xcframework = try buildpkg.GhosttyXCFramework.init(b, &deps);
|
||||
xcframework.install();
|
||||
|
||||
// The xcframework build always installs resources because our
|
||||
// macOS xcode project contains references to them.
|
||||
if (config.emit_exe) {
|
||||
exe.install();
|
||||
resources.install();
|
||||
if (i18n) |v| v.install();
|
||||
}
|
||||
} else {
|
||||
// Libghostty
|
||||
//
|
||||
// Note: libghostty is not stable for general purpose use. It is used
|
||||
// heavily by Ghostty on macOS but it isn't built to be reusable yet.
|
||||
// As such, these build steps are lacking. For example, the Darwin
|
||||
// build only produces an xcframework.
|
||||
|
||||
// If we aren't emitting docs we need to emit a placeholder so
|
||||
// our macOS xcodeproject builds.
|
||||
if (!config.emit_docs) {
|
||||
var wf = b.addWriteFiles();
|
||||
const path = "share/man/.placeholder";
|
||||
const placeholder = wf.add(path, "emit-docs not true so no man pages");
|
||||
b.getInstallStep().dependOn(&b.addInstallFile(placeholder, path).step);
|
||||
}
|
||||
} else {
|
||||
const libghostty_shared = try buildpkg.GhosttyLib.initShared(b, &deps);
|
||||
const libghostty_static = try buildpkg.GhosttyLib.initStatic(b, &deps);
|
||||
// We shouldn't have this guard but we don't currently
|
||||
// build on macOS this way ironically so we need to fix that.
|
||||
if (!config.target.result.os.tag.isDarwin()) {
|
||||
libghostty_shared.installHeader(); // Only need one header
|
||||
libghostty_shared.install("libghostty.so");
|
||||
libghostty_static.install("libghostty.a");
|
||||
}
|
||||
}
|
||||
|
||||
// Run runs the Ghostty exe
|
||||
{
|
||||
const run_cmd = b.addRunArtifact(exe.exe);
|
||||
// macOS only artifacts. These will error if they're initialized for
|
||||
// other targets.
|
||||
if (config.target.result.os.tag.isDarwin()) {
|
||||
// Ghostty xcframework
|
||||
const xcframework = try buildpkg.GhosttyXCFramework.init(
|
||||
b,
|
||||
&deps,
|
||||
config.xcframework_target,
|
||||
);
|
||||
if (config.emit_xcframework) {
|
||||
xcframework.install();
|
||||
|
||||
// The xcframework build always installs resources because our
|
||||
// macOS xcode project contains references to them.
|
||||
resources.install();
|
||||
if (i18n) |v| v.install();
|
||||
}
|
||||
|
||||
// Ghostty macOS app
|
||||
const macos_app = try buildpkg.GhosttyXcodebuild.init(
|
||||
b,
|
||||
&config,
|
||||
.{
|
||||
.xcframework = &xcframework,
|
||||
.docs = &docs,
|
||||
.i18n = if (i18n) |v| &v else null,
|
||||
.resources = &resources,
|
||||
},
|
||||
);
|
||||
if (config.emit_macos_app) {
|
||||
macos_app.install();
|
||||
}
|
||||
}
|
||||
|
||||
// Run step
|
||||
run: {
|
||||
if (config.app_runtime != .none) {
|
||||
const run_cmd = b.addRunArtifact(exe.exe);
|
||||
if (b.args) |args| run_cmd.addArgs(args);
|
||||
|
||||
// Set the proper resources dir so things like shell integration
|
||||
// work correctly. If we're running `zig build run` in Ghostty,
|
||||
// this also ensures it overwrites the release one with our debug
|
||||
// build.
|
||||
run_cmd.setEnvironmentVariable(
|
||||
"GHOSTTY_RESOURCES_DIR",
|
||||
b.getInstallPath(.prefix, "share/ghostty"),
|
||||
);
|
||||
|
||||
run_step.dependOn(&run_cmd.step);
|
||||
break :run;
|
||||
}
|
||||
|
||||
assert(config.app_runtime == .none);
|
||||
|
||||
// On macOS we can run the macOS app. For "run" we always force
|
||||
// a native-only build so that we can run as quickly as possible.
|
||||
if (config.target.result.os.tag.isDarwin()) {
|
||||
const xcframework_native = try buildpkg.GhosttyXCFramework.init(
|
||||
b,
|
||||
&deps,
|
||||
.native,
|
||||
);
|
||||
const macos_app_native_only = try buildpkg.GhosttyXcodebuild.init(
|
||||
b,
|
||||
&config,
|
||||
.{
|
||||
.xcframework = &xcframework_native,
|
||||
.docs = &docs,
|
||||
.i18n = if (i18n) |v| &v else null,
|
||||
.resources = &resources,
|
||||
},
|
||||
);
|
||||
|
||||
// Run uses the native macOS app
|
||||
run_step.dependOn(&macos_app_native_only.open.step);
|
||||
|
||||
// If we have no test filters, install the tests too
|
||||
if (test_filter == null) {
|
||||
macos_app_native_only.addTestStepDependencies(test_step);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
// Valgrind
|
||||
if (config.app_runtime != .none) {
|
||||
// We need to rebuild Ghostty with a baseline CPU target.
|
||||
const valgrind_exe = exe: {
|
||||
var valgrind_config = config;
|
||||
valgrind_config.target = valgrind_config.baselineTarget();
|
||||
break :exe try buildpkg.GhosttyExe.init(
|
||||
b,
|
||||
&valgrind_config,
|
||||
&deps,
|
||||
);
|
||||
};
|
||||
|
||||
const run_cmd = b.addSystemCommand(&.{
|
||||
"valgrind",
|
||||
"--leak-check=full",
|
||||
"--num-callers=50",
|
||||
b.fmt("--suppressions={s}", .{b.pathFromRoot("valgrind.supp")}),
|
||||
"--gen-suppressions=all",
|
||||
});
|
||||
run_cmd.addArtifactArg(valgrind_exe.exe);
|
||||
if (b.args) |args| run_cmd.addArgs(args);
|
||||
const run_step = b.step("run", "Run the app");
|
||||
run_step.dependOn(&run_cmd.step);
|
||||
run_valgrind_step.dependOn(&run_cmd.step);
|
||||
}
|
||||
|
||||
// Tests
|
||||
{
|
||||
const test_step = b.step("test", "Run all tests");
|
||||
const test_filter = b.option([]const u8, "test-filter", "Filter for test");
|
||||
|
||||
const test_exe = b.addTest(.{
|
||||
.name = "ghostty-test",
|
||||
.root_source_file = b.path("src/main.zig"),
|
||||
.target = config.target,
|
||||
.filter = test_filter,
|
||||
.filters = if (test_filter) |v| &.{v} else &.{},
|
||||
.root_module = b.createModule(.{
|
||||
.root_source_file = b.path("src/main.zig"),
|
||||
.target = config.baselineTarget(),
|
||||
.optimize = .Debug,
|
||||
.strip = false,
|
||||
.omit_frame_pointer = false,
|
||||
.unwind_tables = .sync,
|
||||
}),
|
||||
});
|
||||
|
||||
{
|
||||
if (config.emit_test_exe) b.installArtifact(test_exe);
|
||||
_ = try deps.add(test_exe);
|
||||
const test_run = b.addRunArtifact(test_exe);
|
||||
test_step.dependOn(&test_run.step);
|
||||
}
|
||||
if (config.emit_test_exe) b.installArtifact(test_exe);
|
||||
_ = try deps.add(test_exe);
|
||||
|
||||
// Normal test running
|
||||
const test_run = b.addRunArtifact(test_exe);
|
||||
test_step.dependOn(&test_run.step);
|
||||
|
||||
// Valgrind test running
|
||||
const valgrind_run = b.addSystemCommand(&.{
|
||||
"valgrind",
|
||||
"--leak-check=full",
|
||||
"--num-callers=50",
|
||||
b.fmt("--suppressions={s}", .{b.pathFromRoot("valgrind.supp")}),
|
||||
"--gen-suppressions=all",
|
||||
});
|
||||
valgrind_run.addArtifactArg(test_exe);
|
||||
test_valgrind_step.dependOn(&valgrind_run.step);
|
||||
}
|
||||
|
||||
// update-translations does what it sounds like and updates the "pot"
|
||||
// files. These should be committed to the repo.
|
||||
if (i18n) |v| {
|
||||
translations_step.dependOn(v.update_step);
|
||||
} else {
|
||||
try translations_step.addError("cannot update translations when i18n is disabled", .{});
|
||||
}
|
||||
}
|
||||
|
120
build.zig.zon
@@ -1,86 +1,120 @@
|
||||
.{
|
||||
.name = "ghostty",
|
||||
.version = "1.1.0",
|
||||
.name = .ghostty,
|
||||
.version = "1.1.4",
|
||||
.paths = .{""},
|
||||
.fingerprint = 0x64407a2a0b4147e5,
|
||||
.dependencies = .{
|
||||
// Zig libs
|
||||
|
||||
.libxev = .{
|
||||
.url = "https://github.com/mitchellh/libxev/archive/31eed4e337fed7b0149319e5cdbb62b848c24fbd.tar.gz",
|
||||
.hash = "1220ebf88622c4d502dc59e71347e4d28c47e033f11b59aff774ae5787565c40999c",
|
||||
},
|
||||
.mach_glfw = .{
|
||||
.url = "https://github.com/mitchellh/mach-glfw/archive/37c2995f31abcf7e8378fba68ddcf4a3faa02de0.tar.gz",
|
||||
.hash = "12206ed982e709e565d536ce930701a8c07edfd2cfdce428683f3f2a601d37696a62",
|
||||
// mitchellh/libxev
|
||||
.url = "https://github.com/mitchellh/libxev/archive/7f803181b158a10fec8619f793e3b4df515566cb.tar.gz",
|
||||
.hash = "libxev-0.0.0-86vtc2UaEwDfiTKX3iBI-s_hdzfzWQUarT3MUrmUQl-Q",
|
||||
.lazy = true,
|
||||
},
|
||||
.vaxis = .{
|
||||
.url = "git+https://github.com/rockorager/libvaxis/?ref=main#6d729a2dc3b934818dffe06d2ba3ce02841ed74b",
|
||||
.hash = "12200df4ebeaed45de26cb2c9f3b6f3746d8013b604e035dae658f86f586c8c91d2f",
|
||||
// rockorager/libvaxis
|
||||
.url = "git+https://github.com/rockorager/libvaxis#1f41c121e8fc153d9ce8c6eb64b2bbab68ad7d23",
|
||||
.hash = "vaxis-0.1.0-BWNV_FUICQAFZnTCL11TUvnUr1Y0_ZdqtXHhd51d76Rn",
|
||||
.lazy = true,
|
||||
},
|
||||
.z2d = .{
|
||||
.url = "git+https://github.com/vancluever/z2d?ref=v0.4.0#4638bb02a9dc41cc2fb811f092811f6a951c752a",
|
||||
.hash = "12201f0d542e7541cf492a001d4d0d0155c92f58212fbcb0d224e95edeba06b5416a",
|
||||
// vancluever/z2d
|
||||
.url = "https://github.com/vancluever/z2d/archive/refs/tags/v0.7.2.tar.gz",
|
||||
.hash = "z2d-0.7.2-j5P_Hm1oDQDQsWpGfSCMARhowBnuTHlQ_sBfij6TuG7l",
|
||||
.lazy = true,
|
||||
},
|
||||
.zig_objc = .{
|
||||
.url = "https://github.com/mitchellh/zig-objc/archive/9b8ba849b0f58fe207ecd6ab7c147af55b17556e.tar.gz",
|
||||
.hash = "1220e17e64ef0ef561b3e4b9f3a96a2494285f2ec31c097721bf8c8677ec4415c634",
|
||||
// mitchellh/zig-objc
|
||||
.url = "https://github.com/mitchellh/zig-objc/archive/c9e917a4e15a983b672ca779c7985d738a2d517c.tar.gz",
|
||||
.hash = "zig_objc-0.0.0-Ir_SpwsPAQBJgi9YRm2ubJMfdoysSq5gKpsIj3izQ8Zk",
|
||||
.lazy = true,
|
||||
},
|
||||
.zig_js = .{
|
||||
.url = "https://github.com/mitchellh/zig-js/archive/d0b8b0a57c52fbc89f9d9fecba75ca29da7dd7d1.tar.gz",
|
||||
.hash = "12205a66d423259567764fa0fc60c82be35365c21aeb76c5a7dc99698401f4f6fefc",
|
||||
// mitchellh/zig-js
|
||||
.url = "https://deps.files.ghostty.org/zig_js-12205a66d423259567764fa0fc60c82be35365c21aeb76c5a7dc99698401f4f6fefc.tar.gz",
|
||||
.hash = "N-V-__8AAB9YCQBaZtQjJZVndk-g_GDIK-NTZcIa63bFp9yZ",
|
||||
.lazy = true,
|
||||
},
|
||||
.ziglyph = .{
|
||||
.url = "https://deps.files.ghostty.org/ziglyph-b89d43d1e3fb01b6074bc1f7fc980324b04d26a5.tar.gz",
|
||||
.hash = "12207831bce7d4abce57b5a98e8f3635811cfefd160bca022eb91fe905d36a02cf25",
|
||||
.hash = "ziglyph-0.11.2-AAAAAHPtHwB4Mbzn1KvOV7Wpjo82NYEc_v0WC8oCLrkf",
|
||||
.lazy = true,
|
||||
},
|
||||
.zig_wayland = .{
|
||||
.url = "https://codeberg.org/ifreund/zig-wayland/archive/fbfe3b4ac0b472a27b1f1a67405436c58cbee12d.tar.gz",
|
||||
.hash = "12209ca054cb1919fa276e328967f10b253f7537c4136eb48f3332b0f7cf661cad38",
|
||||
// codeberg ifreund/zig-wayland
|
||||
.url = "https://codeberg.org/ifreund/zig-wayland/archive/f3c5d503e540ada8cbcb056420de240af0c094f7.tar.gz",
|
||||
.hash = "wayland-0.4.0-dev-lQa1kjfIAQCmhhQu3xF0KH-94-TzeMXOqfnP0-Dg6Wyy",
|
||||
},
|
||||
.zf = .{
|
||||
.url = "git+https://github.com/natecraddock/zf/?ref=main#ed99ca18b02dda052e20ba467e90b623c04690dd",
|
||||
.hash = "1220edc3b8d8bedbb50555947987e5e8e2f93871ca3c8e8d4cc8f1377c15b5dd35e8",
|
||||
// natecraddock/zf
|
||||
.url = "https://github.com/natecraddock/zf/archive/7aacbe6d155d64d15937ca95ca6c014905eb531f.tar.gz",
|
||||
.hash = "zf-0.10.3-OIRy8aiIAACLrBllz0zjxaH0aOe5oNm3KtEMyCntST-9",
|
||||
.lazy = true,
|
||||
},
|
||||
.gobject = .{
|
||||
// https://github.com/jcollie/ghostty-gobject based on zig_gobject
|
||||
// Temporary until we generate them at build time automatically.
|
||||
.url = "https://github.com/jcollie/ghostty-gobject/releases/download/0.14.1-2025-08-09-37-1/ghostty-gobject-0.14.1-2025-08-09-37-1.tar.zst",
|
||||
.hash = "gobject-0.3.0-Skun7AngnABC2BPiaoobs6YSSzSgMuEIcjb2rYrRyaAM",
|
||||
.lazy = true,
|
||||
},
|
||||
|
||||
// C libs
|
||||
.cimgui = .{ .path = "./pkg/cimgui" },
|
||||
.fontconfig = .{ .path = "./pkg/fontconfig" },
|
||||
.freetype = .{ .path = "./pkg/freetype" },
|
||||
.harfbuzz = .{ .path = "./pkg/harfbuzz" },
|
||||
.highway = .{ .path = "./pkg/highway" },
|
||||
.libpng = .{ .path = "./pkg/libpng" },
|
||||
.macos = .{ .path = "./pkg/macos" },
|
||||
.oniguruma = .{ .path = "./pkg/oniguruma" },
|
||||
.opengl = .{ .path = "./pkg/opengl" },
|
||||
.sentry = .{ .path = "./pkg/sentry" },
|
||||
.simdutf = .{ .path = "./pkg/simdutf" },
|
||||
.utfcpp = .{ .path = "./pkg/utfcpp" },
|
||||
.wuffs = .{ .path = "./pkg/wuffs" },
|
||||
.zlib = .{ .path = "./pkg/zlib" },
|
||||
.cimgui = .{ .path = "./pkg/cimgui", .lazy = true },
|
||||
.fontconfig = .{ .path = "./pkg/fontconfig", .lazy = true },
|
||||
.freetype = .{ .path = "./pkg/freetype", .lazy = true },
|
||||
.gtk4_layer_shell = .{ .path = "./pkg/gtk4-layer-shell", .lazy = true },
|
||||
.harfbuzz = .{ .path = "./pkg/harfbuzz", .lazy = true },
|
||||
.highway = .{ .path = "./pkg/highway", .lazy = true },
|
||||
.libintl = .{ .path = "./pkg/libintl", .lazy = true },
|
||||
.libpng = .{ .path = "./pkg/libpng", .lazy = true },
|
||||
.macos = .{ .path = "./pkg/macos", .lazy = true },
|
||||
.oniguruma = .{ .path = "./pkg/oniguruma", .lazy = true },
|
||||
.opengl = .{ .path = "./pkg/opengl", .lazy = true },
|
||||
.sentry = .{ .path = "./pkg/sentry", .lazy = true },
|
||||
.simdutf = .{ .path = "./pkg/simdutf", .lazy = true },
|
||||
.utfcpp = .{ .path = "./pkg/utfcpp", .lazy = true },
|
||||
.wuffs = .{ .path = "./pkg/wuffs", .lazy = true },
|
||||
.zlib = .{ .path = "./pkg/zlib", .lazy = true },
|
||||
|
||||
// Shader translation
|
||||
.glslang = .{ .path = "./pkg/glslang" },
|
||||
.spirv_cross = .{ .path = "./pkg/spirv-cross" },
|
||||
.glslang = .{ .path = "./pkg/glslang", .lazy = true },
|
||||
.spirv_cross = .{ .path = "./pkg/spirv-cross", .lazy = true },
|
||||
|
||||
// Wayland
|
||||
.wayland = .{
|
||||
.url = "https://deps.files.ghostty.org/wayland-9cb3d7aa9dc995ffafdbdef7ab86a949d0fb0e7d.tar.gz",
|
||||
.hash = "12202cdac858abc52413a6c6711d5026d2d3c8e13f95ca2c327eade0736298bb021f",
|
||||
.hash = "N-V-__8AAKrHGAAs2shYq8UkE6bGcR1QJtLTyOE_lcosMn6t",
|
||||
.lazy = true,
|
||||
},
|
||||
.wayland_protocols = .{
|
||||
.url = "https://deps.files.ghostty.org/wayland-protocols-258d8f88f2c8c25a830c6316f87d23ce1a0f12d9.tar.gz",
|
||||
.hash = "12201a57c6ce0001aa034fa80fba3e1cd2253c560a45748f4f4dd21ff23b491cddef",
|
||||
.hash = "N-V-__8AAKw-DAAaV8bOAAGqA0-oD7o-HNIlPFYKRXSPT03S",
|
||||
.lazy = true,
|
||||
},
|
||||
.plasma_wayland_protocols = .{
|
||||
.url = "git+https://github.com/KDE/plasma-wayland-protocols?ref=main#db525e8f9da548cffa2ac77618dd0fbe7f511b86",
|
||||
.hash = "12207e0851c12acdeee0991e893e0132fc87bb763969a585dc16ecca33e88334c566",
|
||||
.url = "https://deps.files.ghostty.org/plasma_wayland_protocols-12207e0851c12acdeee0991e893e0132fc87bb763969a585dc16ecca33e88334c566.tar.gz",
|
||||
.hash = "N-V-__8AAKYZBAB-CFHBKs3u4JkeiT4BMvyHu3Y5aaWF3Bbs",
|
||||
.lazy = true,
|
||||
},
|
||||
|
||||
// Fonts
|
||||
.jetbrains_mono = .{
|
||||
.url = "https://deps.files.ghostty.org/JetBrainsMono-2.304.tar.gz",
|
||||
.hash = "N-V-__8AAIC5lwAVPJJzxnCAahSvZTIlG-HhtOvnM1uh-66x",
|
||||
},
|
||||
.nerd_fonts_symbols_only = .{
|
||||
.url = "https://deps.files.ghostty.org/NerdFontsSymbolsOnly-3.4.0.tar.gz",
|
||||
.hash = "N-V-__8AAMVLTABmYkLqhZPLXnMl-KyN38R8UVYqGrxqO26s",
|
||||
},
|
||||
|
||||
// Other
|
||||
.apple_sdk = .{ .path = "./pkg/apple-sdk" },
|
||||
.iterm2_themes = .{
|
||||
.url = "https://github.com/mbadolato/iTerm2-Color-Schemes/archive/0e23daf59234fc892cba949562d7bf69204594bb.tar.gz",
|
||||
.hash = "12204fc99743d8232e691ac22e058519bfc6ea92de4a11c6dba59b117531c847cd6a",
|
||||
.url = "https://github.com/mbadolato/iTerm2-Color-Schemes/archive/e4c0090a654e081e953b63d0fa50dee075726023.tar.gz",
|
||||
.hash = "N-V-__8AADBlXwQadkTTsE4iezfphTwqGtFpvJbzMub5lpri",
|
||||
.lazy = true,
|
||||
},
|
||||
},
|
||||
}
|
||||
|
177
build.zig.zon.json
generated
Normal file
@@ -0,0 +1,177 @@
|
||||
{
|
||||
"N-V-__8AALw2uwF_03u4JRkZwRLc3Y9hakkYV7NKRR9-RIZJ": {
|
||||
"name": "breakpad",
|
||||
"url": "https://deps.files.ghostty.org/breakpad-b99f444ba5f6b98cac261cbb391d8766b34a5918.tar.gz",
|
||||
"hash": "sha256-bMqYlD0amQdmzvYQd8Ca/1k4Bj/heh7+EijlQSttatk="
|
||||
},
|
||||
"N-V-__8AAIrfdwARSa-zMmxWwFuwpXf1T3asIN7s5jqi9c1v": {
|
||||
"name": "fontconfig",
|
||||
"url": "https://deps.files.ghostty.org/fontconfig-2.14.2.tar.gz",
|
||||
"hash": "sha256-O6LdkhWHGKzsXKrxpxYEO1qgVcJ7CB2RSvPMtA3OilU="
|
||||
},
|
||||
"N-V-__8AAKLKpwC4H27Ps_0iL3bPkQb-z6ZVSrB-x_3EEkub": {
|
||||
"name": "freetype",
|
||||
"url": "https://deps.files.ghostty.org/freetype-1220b81f6ecfb3fd222f76cf9106fecfa6554ab07ec7fdc4124b9bb063ae2adf969d.tar.gz",
|
||||
"hash": "sha256-QnIB9dUVFnDQXB9bRb713aHy592XHvVPD+qqf/0quQw="
|
||||
},
|
||||
"N-V-__8AADcZkgn4cMhTUpIz6mShCKyqqB-NBtf_S2bHaTC-": {
|
||||
"name": "gettext",
|
||||
"url": "https://deps.files.ghostty.org/gettext-0.24.tar.gz",
|
||||
"hash": "sha256-yRhQPVk9cNr0hE0XWhPYFq+stmfAb7oeydzVACwVGLc="
|
||||
},
|
||||
"N-V-__8AABzkUgISeKGgXAzgtutgJsZc0-kkeqBBscJgMkvy": {
|
||||
"name": "glslang",
|
||||
"url": "https://deps.files.ghostty.org/glslang-12201278a1a05c0ce0b6eb6026c65cd3e9247aa041b1c260324bf29cee559dd23ba1.tar.gz",
|
||||
"hash": "sha256-FKLtu1Ccs+UamlPj9eQ12/WXFgS0uDPmPmB26MCpl7U="
|
||||
},
|
||||
"gobject-0.3.0-Skun7AngnABC2BPiaoobs6YSSzSgMuEIcjb2rYrRyaAM": {
|
||||
"name": "gobject",
|
||||
"url": "https://github.com/jcollie/ghostty-gobject/releases/download/0.14.1-2025-08-09-37-1/ghostty-gobject-0.14.1-2025-08-09-37-1.tar.zst",
|
||||
"hash": "sha256-B0ziLzKud+kdKu5T1BTE9GMh8EPM/KhhhoNJlys5QPI="
|
||||
},
|
||||
"N-V-__8AALiNBAA-_0gprYr92CjrMj1I5bqNu0TSJOnjFNSr": {
|
||||
"name": "gtk4_layer_shell",
|
||||
"url": "https://deps.files.ghostty.org/gtk4-layer-shell-1.1.0.tar.gz",
|
||||
"hash": "sha256-mChCgSYKXu9bT2OlXxbEv2p4ihAgptsDfssPcfozaYg="
|
||||
},
|
||||
"N-V-__8AAG02ugUcWec-Ndp-i7JTsJ0dgF8nnJRUInkGLG7G": {
|
||||
"name": "harfbuzz",
|
||||
"url": "https://deps.files.ghostty.org/harfbuzz-11.0.0.tar.xz",
|
||||
"hash": "sha256-8WNRuv4hRyX+LB1bWfDZPkmQWkskeJn7kNcM/5U6K5s="
|
||||
},
|
||||
"N-V-__8AAGmZhABbsPJLfbqrh6JTHsXhY6qCaLAQyx25e0XE": {
|
||||
"name": "highway",
|
||||
"url": "https://deps.files.ghostty.org/highway-66486a10623fa0d72fe91260f96c892e41aceb06.tar.gz",
|
||||
"hash": "sha256-h9T4iT704I8iSXNgj/6/lCaKgTgLp5wS6IQZaMgKohI="
|
||||
},
|
||||
"N-V-__8AAH0GaQC8a52s6vfIxg88OZgFgEW6DFxfSK4lX_l3": {
|
||||
"name": "imgui",
|
||||
"url": "https://deps.files.ghostty.org/imgui-1220bc6b9daceaf7c8c60f3c3998058045ba0c5c5f48ae255ff97776d9cd8bfc6402.tar.gz",
|
||||
"hash": "sha256-oF/QHgTPEat4Hig4fGIdLkIPHmBEyOJ6JeYD6pnveGA="
|
||||
},
|
||||
"N-V-__8AADBlXwQadkTTsE4iezfphTwqGtFpvJbzMub5lpri": {
|
||||
"name": "iterm2_themes",
|
||||
"url": "https://github.com/mbadolato/iTerm2-Color-Schemes/archive/e4c0090a654e081e953b63d0fa50dee075726023.tar.gz",
|
||||
"hash": "sha256-LQIa9siNICX5zzajvrJNKBmgDqAlBDY7QEmHihs65d0="
|
||||
},
|
||||
"N-V-__8AAIC5lwAVPJJzxnCAahSvZTIlG-HhtOvnM1uh-66x": {
|
||||
"name": "jetbrains_mono",
|
||||
"url": "https://deps.files.ghostty.org/JetBrainsMono-2.304.tar.gz",
|
||||
"hash": "sha256-xXppHouCrQmLWWPzlZAy5AOPORCHr3cViFulkEYQXMQ="
|
||||
},
|
||||
"N-V-__8AAJrvXQCqAT8Mg9o_tk6m0yf5Fz-gCNEOKLyTSerD": {
|
||||
"name": "libpng",
|
||||
"url": "https://deps.files.ghostty.org/libpng-1220aa013f0c83da3fb64ea6d327f9173fa008d10e28bc9349eac3463457723b1c66.tar.gz",
|
||||
"hash": "sha256-/syVtGzwXo4/yKQUdQ4LparQDYnp/fF16U/wQcrxoDo="
|
||||
},
|
||||
"libxev-0.0.0-86vtc2UaEwDfiTKX3iBI-s_hdzfzWQUarT3MUrmUQl-Q": {
|
||||
"name": "libxev",
|
||||
"url": "https://github.com/mitchellh/libxev/archive/7f803181b158a10fec8619f793e3b4df515566cb.tar.gz",
|
||||
"hash": "sha256-KaozYKEhhT/6sInef7/8O/60LDBJN+8QmdLuNY1Gkmc="
|
||||
},
|
||||
"N-V-__8AAG3RoQEyRC2Vw7Qoro5SYBf62IHn3HjqtNVY6aWK": {
|
||||
"name": "libxml2",
|
||||
"url": "https://deps.files.ghostty.org/libxml2-2.11.5.tar.gz",
|
||||
"hash": "sha256-bCgFni4+60K1tLFkieORamNGwQladP7jvGXNxdiaYhU="
|
||||
},
|
||||
"N-V-__8AAMVLTABmYkLqhZPLXnMl-KyN38R8UVYqGrxqO26s": {
|
||||
"name": "nerd_fonts_symbols_only",
|
||||
"url": "https://deps.files.ghostty.org/NerdFontsSymbolsOnly-3.4.0.tar.gz",
|
||||
"hash": "sha256-EWTRuVbUveJI17LwmYxDzJT1ICQxoVZKeTiVsec7DQQ="
|
||||
},
|
||||
"N-V-__8AAHjwMQDBXnLq3Q2QhaivE0kE2aD138vtX2Bq1g7c": {
|
||||
"name": "oniguruma",
|
||||
"url": "https://deps.files.ghostty.org/oniguruma-1220c15e72eadd0d9085a8af134904d9a0f5dfcbed5f606ad60edc60ebeccd9706bb.tar.gz",
|
||||
"hash": "sha256-ABqhIC54RI9MC/GkjHblVodrNvFtks4yB+zP1h2Z8qA="
|
||||
},
|
||||
"N-V-__8AADYiAAB_80AWnH1AxXC0tql9thT-R-DYO1gBqTLc": {
|
||||
"name": "pixels",
|
||||
"url": "https://deps.files.ghostty.org/pixels-12207ff340169c7d40c570b4b6a97db614fe47e0d83b5801a932dcd44917424c8806.tar.gz",
|
||||
"hash": "sha256-Veg7FtCRCCUCvxSb9FfzH0IJLFmCZQ4/+657SIcb8Ro="
|
||||
},
|
||||
"N-V-__8AAKYZBAB-CFHBKs3u4JkeiT4BMvyHu3Y5aaWF3Bbs": {
|
||||
"name": "plasma_wayland_protocols",
|
||||
"url": "https://deps.files.ghostty.org/plasma_wayland_protocols-12207e0851c12acdeee0991e893e0132fc87bb763969a585dc16ecca33e88334c566.tar.gz",
|
||||
"hash": "sha256-XFi6IUrNjmvKNCbcCLAixGqN2Zeymhs+KLrfccIN9EE="
|
||||
},
|
||||
"N-V-__8AAPlZGwBEa-gxrcypGBZ2R8Bse4JYSfo_ul8i2jlG": {
|
||||
"name": "sentry",
|
||||
"url": "https://deps.files.ghostty.org/sentry-1220446be831adcca918167647c06c7b825849fa3fba5f22da394667974537a9c77e.tar.gz",
|
||||
"hash": "sha256-KsZJfMjWGo0xCT5HrduMmyxFsWsHBbszSoNbZCPDGN8="
|
||||
},
|
||||
"N-V-__8AANb6pwD7O1WG6L5nvD_rNMvnSc9Cpg1ijSlTYywv": {
|
||||
"name": "spirv_cross",
|
||||
"url": "https://deps.files.ghostty.org/spirv_cross-1220fb3b5586e8be67bc3feb34cbe749cf42a60d628d2953632c2f8141302748c8da.tar.gz",
|
||||
"hash": "sha256-tStvz8Ref6abHwahNiwVVHNETizAmZVVaxVsU7pmV+M="
|
||||
},
|
||||
"N-V-__8AAHffAgDU0YQmynL8K35WzkcnMUmBVQHQ0jlcKpjH": {
|
||||
"name": "utfcpp",
|
||||
"url": "https://deps.files.ghostty.org/utfcpp-1220d4d18426ca72fc2b7e56ce47273149815501d0d2395c2a98c726b31ba931e641.tar.gz",
|
||||
"hash": "sha256-/8ZooxDndgfTk/PBizJxXyI9oerExNbgV5oR345rWc8="
|
||||
},
|
||||
"vaxis-0.1.0-BWNV_FUICQAFZnTCL11TUvnUr1Y0_ZdqtXHhd51d76Rn": {
|
||||
"name": "vaxis",
|
||||
"url": "git+https://github.com/rockorager/libvaxis#1f41c121e8fc153d9ce8c6eb64b2bbab68ad7d23",
|
||||
"hash": "sha256-bNZ3oveT6vPChjimPJ/GGfcdivlAeJdl/xfWM+S/MHY="
|
||||
},
|
||||
"N-V-__8AAKrHGAAs2shYq8UkE6bGcR1QJtLTyOE_lcosMn6t": {
|
||||
"name": "wayland",
|
||||
"url": "https://deps.files.ghostty.org/wayland-9cb3d7aa9dc995ffafdbdef7ab86a949d0fb0e7d.tar.gz",
|
||||
"hash": "sha256-6kGR1o5DdnflHzqs3ieCmBAUTpMdOXoyfcYDXiw5xQ0="
|
||||
},
|
||||
"N-V-__8AAKw-DAAaV8bOAAGqA0-oD7o-HNIlPFYKRXSPT03S": {
|
||||
"name": "wayland_protocols",
|
||||
"url": "https://deps.files.ghostty.org/wayland-protocols-258d8f88f2c8c25a830c6316f87d23ce1a0f12d9.tar.gz",
|
||||
"hash": "sha256-XO3K3egbdeYPI+XoO13SuOtO+5+Peb16NH0UiusFMPg="
|
||||
},
|
||||
"N-V-__8AAAzZywE3s51XfsLbP9eyEw57ae9swYB9aGB6fCMs": {
|
||||
"name": "wuffs",
|
||||
"url": "https://deps.files.ghostty.org/wuffs-122037b39d577ec2db3fd7b2130e7b69ef6cc1807d68607a7c232c958315d381b5cd.tar.gz",
|
||||
"hash": "sha256-nkzSCr6W5sTG7enDBXEIhgEm574uLD41UVR2wlC+HBM="
|
||||
},
|
||||
"z2d-0.7.2-j5P_Hm1oDQDQsWpGfSCMARhowBnuTHlQ_sBfij6TuG7l": {
|
||||
"name": "z2d",
|
||||
"url": "https://github.com/vancluever/z2d/archive/refs/tags/v0.7.2.tar.gz",
|
||||
"hash": "sha256-tWrLlEOU4/0ZOlzgGOXB08fW7sqfyAFf3rlv0wl9b/c="
|
||||
},
|
||||
"zf-0.10.3-OIRy8aiIAACLrBllz0zjxaH0aOe5oNm3KtEMyCntST-9": {
|
||||
"name": "zf",
|
||||
"url": "https://github.com/natecraddock/zf/archive/7aacbe6d155d64d15937ca95ca6c014905eb531f.tar.gz",
|
||||
"hash": "sha256-3nulNQd/4rZ4paeXJYXwAliNNyRNsIOX/q3z1JB8C7I="
|
||||
},
|
||||
"zg-0.13.4-AAAAAGiZ7QLz4pvECFa_wG4O4TP4FLABHHbemH2KakWM": {
|
||||
"name": "zg",
|
||||
"url": "git+https://codeberg.org/atman/zg#4a002763419a34d61dcbb1f415821b83b9bf8ddc",
|
||||
"hash": "sha256-fo3l6cjkrr/godElTGnQzalBsasN7J73IDIRmw7v1gA="
|
||||
},
|
||||
"N-V-__8AAB9YCQBaZtQjJZVndk-g_GDIK-NTZcIa63bFp9yZ": {
|
||||
"name": "zig_js",
|
||||
"url": "https://deps.files.ghostty.org/zig_js-12205a66d423259567764fa0fc60c82be35365c21aeb76c5a7dc99698401f4f6fefc.tar.gz",
|
||||
"hash": "sha256-fyNeCVbC9UAaKJY6JhAZlT0A479M/AKYMPIWEZbDWD0="
|
||||
},
|
||||
"zig_objc-0.0.0-Ir_SpwsPAQBJgi9YRm2ubJMfdoysSq5gKpsIj3izQ8Zk": {
|
||||
"name": "zig_objc",
|
||||
"url": "https://github.com/mitchellh/zig-objc/archive/c9e917a4e15a983b672ca779c7985d738a2d517c.tar.gz",
|
||||
"hash": "sha256-o3vl7qfkSi0bKXa6JWuF92qMEGP8Af/shcip5nRo5Nw="
|
||||
},
|
||||
"wayland-0.4.0-dev-lQa1kjfIAQCmhhQu3xF0KH-94-TzeMXOqfnP0-Dg6Wyy": {
|
||||
"name": "zig_wayland",
|
||||
"url": "https://codeberg.org/ifreund/zig-wayland/archive/f3c5d503e540ada8cbcb056420de240af0c094f7.tar.gz",
|
||||
"hash": "sha256-E77GZ15APYbbO1WzmuJi8eG9/iQFbc2CgkNBxjCLUhk="
|
||||
},
|
||||
"zigimg-0.1.0-lly-O6N2EABOxke8dqyzCwhtUCAafqP35zC7wsZ4Ddxj": {
|
||||
"name": "zigimg",
|
||||
"url": "git+https://github.com/TUSF/zigimg#31268548fe3276c0e95f318a6c0d2ab10565b58d",
|
||||
"hash": "sha256-oblfr2FIzuqq0FLo/RrzCwUX1NJJuT53EwD3nP3KwN0="
|
||||
},
|
||||
"ziglyph-0.11.2-AAAAAHPtHwB4Mbzn1KvOV7Wpjo82NYEc_v0WC8oCLrkf": {
|
||||
"name": "ziglyph",
|
||||
"url": "https://deps.files.ghostty.org/ziglyph-b89d43d1e3fb01b6074bc1f7fc980324b04d26a5.tar.gz",
|
||||
"hash": "sha256-cse98+Ft8QUjX+P88yyYfaxJOJGQ9M7Ymw7jFxDz89k="
|
||||
},
|
||||
"N-V-__8AAB0eQwD-0MdOEBmz7intriBReIsIDNlukNVoNu6o": {
|
||||
"name": "zlib",
|
||||
"url": "https://deps.files.ghostty.org/zlib-1220fed0c74e1019b3ee29edae2051788b080cd96e90d56836eea857b0b966742efb.tar.gz",
|
||||
"hash": "sha256-F+iIY/NgBnKrSRgvIXKBtvxNPHYr3jYZNeQ2qVIU0Fw="
|
||||
}
|
||||
}
|
365
build.zig.zon.nix
generated
Normal file
@@ -0,0 +1,365 @@
|
||||
# generated by zon2nix (https://github.com/jcollie/zon2nix)
|
||||
{
|
||||
lib,
|
||||
linkFarm,
|
||||
fetchurl,
|
||||
fetchgit,
|
||||
runCommandLocal,
|
||||
zig_0_14,
|
||||
name ? "zig-packages",
|
||||
}: let
|
||||
unpackZigArtifact = {
|
||||
name,
|
||||
artifact,
|
||||
}:
|
||||
runCommandLocal name
|
||||
{
|
||||
nativeBuildInputs = [zig_0_14];
|
||||
}
|
||||
''
|
||||
hash="$(zig fetch --global-cache-dir "$TMPDIR" ${artifact})"
|
||||
mv "$TMPDIR/p/$hash" "$out"
|
||||
chmod 755 "$out"
|
||||
'';
|
||||
|
||||
fetchZig = {
|
||||
name,
|
||||
url,
|
||||
hash,
|
||||
}: let
|
||||
artifact = fetchurl {inherit url hash;};
|
||||
in
|
||||
unpackZigArtifact {inherit name artifact;};
|
||||
|
||||
fetchGitZig = {
|
||||
name,
|
||||
url,
|
||||
hash,
|
||||
}: let
|
||||
parts = lib.splitString "#" url;
|
||||
url_base = builtins.elemAt parts 0;
|
||||
url_without_query = builtins.elemAt (lib.splitString "?" url_base) 0;
|
||||
rev_base = builtins.elemAt parts 1;
|
||||
rev =
|
||||
if builtins.match "^[a-fA-F0-9]{40}$" rev_base != null
|
||||
then rev_base
|
||||
else "refs/heads/${rev_base}";
|
||||
in
|
||||
fetchgit {
|
||||
inherit name rev hash;
|
||||
url = url_without_query;
|
||||
deepClone = false;
|
||||
fetchSubmodules = false;
|
||||
};
|
||||
|
||||
fetchZigArtifact = {
|
||||
name,
|
||||
url,
|
||||
hash,
|
||||
}: let
|
||||
parts = lib.splitString "://" url;
|
||||
proto = builtins.elemAt parts 0;
|
||||
path = builtins.elemAt parts 1;
|
||||
fetcher = {
|
||||
"git+http" = fetchGitZig {
|
||||
inherit name hash;
|
||||
url = "http://${path}";
|
||||
};
|
||||
"git+https" = fetchGitZig {
|
||||
inherit name hash;
|
||||
url = "https://${path}";
|
||||
};
|
||||
http = fetchZig {
|
||||
inherit name hash;
|
||||
url = "http://${path}";
|
||||
};
|
||||
https = fetchZig {
|
||||
inherit name hash;
|
||||
url = "https://${path}";
|
||||
};
|
||||
};
|
||||
in
|
||||
fetcher.${proto};
|
||||
in
|
||||
linkFarm name [
|
||||
{
|
||||
name = "N-V-__8AALw2uwF_03u4JRkZwRLc3Y9hakkYV7NKRR9-RIZJ";
|
||||
path = fetchZigArtifact {
|
||||
name = "breakpad";
|
||||
url = "https://deps.files.ghostty.org/breakpad-b99f444ba5f6b98cac261cbb391d8766b34a5918.tar.gz";
|
||||
hash = "sha256-bMqYlD0amQdmzvYQd8Ca/1k4Bj/heh7+EijlQSttatk=";
|
||||
};
|
||||
}
|
||||
{
|
||||
name = "N-V-__8AAIrfdwARSa-zMmxWwFuwpXf1T3asIN7s5jqi9c1v";
|
||||
path = fetchZigArtifact {
|
||||
name = "fontconfig";
|
||||
url = "https://deps.files.ghostty.org/fontconfig-2.14.2.tar.gz";
|
||||
hash = "sha256-O6LdkhWHGKzsXKrxpxYEO1qgVcJ7CB2RSvPMtA3OilU=";
|
||||
};
|
||||
}
|
||||
{
|
||||
name = "N-V-__8AAKLKpwC4H27Ps_0iL3bPkQb-z6ZVSrB-x_3EEkub";
|
||||
path = fetchZigArtifact {
|
||||
name = "freetype";
|
||||
url = "https://deps.files.ghostty.org/freetype-1220b81f6ecfb3fd222f76cf9106fecfa6554ab07ec7fdc4124b9bb063ae2adf969d.tar.gz";
|
||||
hash = "sha256-QnIB9dUVFnDQXB9bRb713aHy592XHvVPD+qqf/0quQw=";
|
||||
};
|
||||
}
|
||||
{
|
||||
name = "N-V-__8AADcZkgn4cMhTUpIz6mShCKyqqB-NBtf_S2bHaTC-";
|
||||
path = fetchZigArtifact {
|
||||
name = "gettext";
|
||||
url = "https://deps.files.ghostty.org/gettext-0.24.tar.gz";
|
||||
hash = "sha256-yRhQPVk9cNr0hE0XWhPYFq+stmfAb7oeydzVACwVGLc=";
|
||||
};
|
||||
}
|
||||
{
|
||||
name = "N-V-__8AABzkUgISeKGgXAzgtutgJsZc0-kkeqBBscJgMkvy";
|
||||
path = fetchZigArtifact {
|
||||
name = "glslang";
|
||||
url = "https://deps.files.ghostty.org/glslang-12201278a1a05c0ce0b6eb6026c65cd3e9247aa041b1c260324bf29cee559dd23ba1.tar.gz";
|
||||
hash = "sha256-FKLtu1Ccs+UamlPj9eQ12/WXFgS0uDPmPmB26MCpl7U=";
|
||||
};
|
||||
}
|
||||
{
|
||||
name = "gobject-0.3.0-Skun7AngnABC2BPiaoobs6YSSzSgMuEIcjb2rYrRyaAM";
|
||||
path = fetchZigArtifact {
|
||||
name = "gobject";
|
||||
url = "https://github.com/jcollie/ghostty-gobject/releases/download/0.14.1-2025-08-09-37-1/ghostty-gobject-0.14.1-2025-08-09-37-1.tar.zst";
|
||||
hash = "sha256-B0ziLzKud+kdKu5T1BTE9GMh8EPM/KhhhoNJlys5QPI=";
|
||||
};
|
||||
}
|
||||
{
|
||||
name = "N-V-__8AALiNBAA-_0gprYr92CjrMj1I5bqNu0TSJOnjFNSr";
|
||||
path = fetchZigArtifact {
|
||||
name = "gtk4_layer_shell";
|
||||
url = "https://deps.files.ghostty.org/gtk4-layer-shell-1.1.0.tar.gz";
|
||||
hash = "sha256-mChCgSYKXu9bT2OlXxbEv2p4ihAgptsDfssPcfozaYg=";
|
||||
};
|
||||
}
|
||||
{
|
||||
name = "N-V-__8AAG02ugUcWec-Ndp-i7JTsJ0dgF8nnJRUInkGLG7G";
|
||||
path = fetchZigArtifact {
|
||||
name = "harfbuzz";
|
||||
url = "https://deps.files.ghostty.org/harfbuzz-11.0.0.tar.xz";
|
||||
hash = "sha256-8WNRuv4hRyX+LB1bWfDZPkmQWkskeJn7kNcM/5U6K5s=";
|
||||
};
|
||||
}
|
||||
{
|
||||
name = "N-V-__8AAGmZhABbsPJLfbqrh6JTHsXhY6qCaLAQyx25e0XE";
|
||||
path = fetchZigArtifact {
|
||||
name = "highway";
|
||||
url = "https://deps.files.ghostty.org/highway-66486a10623fa0d72fe91260f96c892e41aceb06.tar.gz";
|
||||
hash = "sha256-h9T4iT704I8iSXNgj/6/lCaKgTgLp5wS6IQZaMgKohI=";
|
||||
};
|
||||
}
|
||||
{
|
||||
name = "N-V-__8AAH0GaQC8a52s6vfIxg88OZgFgEW6DFxfSK4lX_l3";
|
||||
path = fetchZigArtifact {
|
||||
name = "imgui";
|
||||
url = "https://deps.files.ghostty.org/imgui-1220bc6b9daceaf7c8c60f3c3998058045ba0c5c5f48ae255ff97776d9cd8bfc6402.tar.gz";
|
||||
hash = "sha256-oF/QHgTPEat4Hig4fGIdLkIPHmBEyOJ6JeYD6pnveGA=";
|
||||
};
|
||||
}
|
||||
{
|
||||
name = "N-V-__8AADBlXwQadkTTsE4iezfphTwqGtFpvJbzMub5lpri";
|
||||
path = fetchZigArtifact {
|
||||
name = "iterm2_themes";
|
||||
url = "https://github.com/mbadolato/iTerm2-Color-Schemes/archive/e4c0090a654e081e953b63d0fa50dee075726023.tar.gz";
|
||||
hash = "sha256-LQIa9siNICX5zzajvrJNKBmgDqAlBDY7QEmHihs65d0=";
|
||||
};
|
||||
}
|
||||
{
|
||||
name = "N-V-__8AAIC5lwAVPJJzxnCAahSvZTIlG-HhtOvnM1uh-66x";
|
||||
path = fetchZigArtifact {
|
||||
name = "jetbrains_mono";
|
||||
url = "https://deps.files.ghostty.org/JetBrainsMono-2.304.tar.gz";
|
||||
hash = "sha256-xXppHouCrQmLWWPzlZAy5AOPORCHr3cViFulkEYQXMQ=";
|
||||
};
|
||||
}
|
||||
{
|
||||
name = "N-V-__8AAJrvXQCqAT8Mg9o_tk6m0yf5Fz-gCNEOKLyTSerD";
|
||||
path = fetchZigArtifact {
|
||||
name = "libpng";
|
||||
url = "https://deps.files.ghostty.org/libpng-1220aa013f0c83da3fb64ea6d327f9173fa008d10e28bc9349eac3463457723b1c66.tar.gz";
|
||||
hash = "sha256-/syVtGzwXo4/yKQUdQ4LparQDYnp/fF16U/wQcrxoDo=";
|
||||
};
|
||||
}
|
||||
{
|
||||
name = "libxev-0.0.0-86vtc2UaEwDfiTKX3iBI-s_hdzfzWQUarT3MUrmUQl-Q";
|
||||
path = fetchZigArtifact {
|
||||
name = "libxev";
|
||||
url = "https://github.com/mitchellh/libxev/archive/7f803181b158a10fec8619f793e3b4df515566cb.tar.gz";
|
||||
hash = "sha256-KaozYKEhhT/6sInef7/8O/60LDBJN+8QmdLuNY1Gkmc=";
|
||||
};
|
||||
}
|
||||
{
|
||||
name = "N-V-__8AAG3RoQEyRC2Vw7Qoro5SYBf62IHn3HjqtNVY6aWK";
|
||||
path = fetchZigArtifact {
|
||||
name = "libxml2";
|
||||
url = "https://deps.files.ghostty.org/libxml2-2.11.5.tar.gz";
|
||||
hash = "sha256-bCgFni4+60K1tLFkieORamNGwQladP7jvGXNxdiaYhU=";
|
||||
};
|
||||
}
|
||||
{
|
||||
name = "N-V-__8AAMVLTABmYkLqhZPLXnMl-KyN38R8UVYqGrxqO26s";
|
||||
path = fetchZigArtifact {
|
||||
name = "nerd_fonts_symbols_only";
|
||||
url = "https://deps.files.ghostty.org/NerdFontsSymbolsOnly-3.4.0.tar.gz";
|
||||
hash = "sha256-EWTRuVbUveJI17LwmYxDzJT1ICQxoVZKeTiVsec7DQQ=";
|
||||
};
|
||||
}
|
||||
{
|
||||
name = "N-V-__8AAHjwMQDBXnLq3Q2QhaivE0kE2aD138vtX2Bq1g7c";
|
||||
path = fetchZigArtifact {
|
||||
name = "oniguruma";
|
||||
url = "https://deps.files.ghostty.org/oniguruma-1220c15e72eadd0d9085a8af134904d9a0f5dfcbed5f606ad60edc60ebeccd9706bb.tar.gz";
|
||||
hash = "sha256-ABqhIC54RI9MC/GkjHblVodrNvFtks4yB+zP1h2Z8qA=";
|
||||
};
|
||||
}
|
||||
{
|
||||
name = "N-V-__8AADYiAAB_80AWnH1AxXC0tql9thT-R-DYO1gBqTLc";
|
||||
path = fetchZigArtifact {
|
||||
name = "pixels";
|
||||
url = "https://deps.files.ghostty.org/pixels-12207ff340169c7d40c570b4b6a97db614fe47e0d83b5801a932dcd44917424c8806.tar.gz";
|
||||
hash = "sha256-Veg7FtCRCCUCvxSb9FfzH0IJLFmCZQ4/+657SIcb8Ro=";
|
||||
};
|
||||
}
|
||||
{
|
||||
name = "N-V-__8AAKYZBAB-CFHBKs3u4JkeiT4BMvyHu3Y5aaWF3Bbs";
|
||||
path = fetchZigArtifact {
|
||||
name = "plasma_wayland_protocols";
|
||||
url = "https://deps.files.ghostty.org/plasma_wayland_protocols-12207e0851c12acdeee0991e893e0132fc87bb763969a585dc16ecca33e88334c566.tar.gz";
|
||||
hash = "sha256-XFi6IUrNjmvKNCbcCLAixGqN2Zeymhs+KLrfccIN9EE=";
|
||||
};
|
||||
}
|
||||
{
|
||||
name = "N-V-__8AAPlZGwBEa-gxrcypGBZ2R8Bse4JYSfo_ul8i2jlG";
|
||||
path = fetchZigArtifact {
|
||||
name = "sentry";
|
||||
url = "https://deps.files.ghostty.org/sentry-1220446be831adcca918167647c06c7b825849fa3fba5f22da394667974537a9c77e.tar.gz";
|
||||
hash = "sha256-KsZJfMjWGo0xCT5HrduMmyxFsWsHBbszSoNbZCPDGN8=";
|
||||
};
|
||||
}
|
||||
{
|
||||
name = "N-V-__8AANb6pwD7O1WG6L5nvD_rNMvnSc9Cpg1ijSlTYywv";
|
||||
path = fetchZigArtifact {
|
||||
name = "spirv_cross";
|
||||
url = "https://deps.files.ghostty.org/spirv_cross-1220fb3b5586e8be67bc3feb34cbe749cf42a60d628d2953632c2f8141302748c8da.tar.gz";
|
||||
hash = "sha256-tStvz8Ref6abHwahNiwVVHNETizAmZVVaxVsU7pmV+M=";
|
||||
};
|
||||
}
|
||||
{
|
||||
name = "N-V-__8AAHffAgDU0YQmynL8K35WzkcnMUmBVQHQ0jlcKpjH";
|
||||
path = fetchZigArtifact {
|
||||
name = "utfcpp";
|
||||
url = "https://deps.files.ghostty.org/utfcpp-1220d4d18426ca72fc2b7e56ce47273149815501d0d2395c2a98c726b31ba931e641.tar.gz";
|
||||
hash = "sha256-/8ZooxDndgfTk/PBizJxXyI9oerExNbgV5oR345rWc8=";
|
||||
};
|
||||
}
|
||||
{
|
||||
name = "vaxis-0.1.0-BWNV_FUICQAFZnTCL11TUvnUr1Y0_ZdqtXHhd51d76Rn";
|
||||
path = fetchZigArtifact {
|
||||
name = "vaxis";
|
||||
url = "git+https://github.com/rockorager/libvaxis#1f41c121e8fc153d9ce8c6eb64b2bbab68ad7d23";
|
||||
hash = "sha256-bNZ3oveT6vPChjimPJ/GGfcdivlAeJdl/xfWM+S/MHY=";
|
||||
};
|
||||
}
|
||||
{
|
||||
name = "N-V-__8AAKrHGAAs2shYq8UkE6bGcR1QJtLTyOE_lcosMn6t";
|
||||
path = fetchZigArtifact {
|
||||
name = "wayland";
|
||||
url = "https://deps.files.ghostty.org/wayland-9cb3d7aa9dc995ffafdbdef7ab86a949d0fb0e7d.tar.gz";
|
||||
hash = "sha256-6kGR1o5DdnflHzqs3ieCmBAUTpMdOXoyfcYDXiw5xQ0=";
|
||||
};
|
||||
}
|
||||
{
|
||||
name = "N-V-__8AAKw-DAAaV8bOAAGqA0-oD7o-HNIlPFYKRXSPT03S";
|
||||
path = fetchZigArtifact {
|
||||
name = "wayland_protocols";
|
||||
url = "https://deps.files.ghostty.org/wayland-protocols-258d8f88f2c8c25a830c6316f87d23ce1a0f12d9.tar.gz";
|
||||
hash = "sha256-XO3K3egbdeYPI+XoO13SuOtO+5+Peb16NH0UiusFMPg=";
|
||||
};
|
||||
}
|
||||
{
|
||||
name = "N-V-__8AAAzZywE3s51XfsLbP9eyEw57ae9swYB9aGB6fCMs";
|
||||
path = fetchZigArtifact {
|
||||
name = "wuffs";
|
||||
url = "https://deps.files.ghostty.org/wuffs-122037b39d577ec2db3fd7b2130e7b69ef6cc1807d68607a7c232c958315d381b5cd.tar.gz";
|
||||
hash = "sha256-nkzSCr6W5sTG7enDBXEIhgEm574uLD41UVR2wlC+HBM=";
|
||||
};
|
||||
}
|
||||
{
|
||||
name = "z2d-0.7.2-j5P_Hm1oDQDQsWpGfSCMARhowBnuTHlQ_sBfij6TuG7l";
|
||||
path = fetchZigArtifact {
|
||||
name = "z2d";
|
||||
url = "https://github.com/vancluever/z2d/archive/refs/tags/v0.7.2.tar.gz";
|
||||
hash = "sha256-tWrLlEOU4/0ZOlzgGOXB08fW7sqfyAFf3rlv0wl9b/c=";
|
||||
};
|
||||
}
|
||||
{
|
||||
name = "zf-0.10.3-OIRy8aiIAACLrBllz0zjxaH0aOe5oNm3KtEMyCntST-9";
|
||||
path = fetchZigArtifact {
|
||||
name = "zf";
|
||||
url = "https://github.com/natecraddock/zf/archive/7aacbe6d155d64d15937ca95ca6c014905eb531f.tar.gz";
|
||||
hash = "sha256-3nulNQd/4rZ4paeXJYXwAliNNyRNsIOX/q3z1JB8C7I=";
|
||||
};
|
||||
}
|
||||
{
|
||||
name = "zg-0.13.4-AAAAAGiZ7QLz4pvECFa_wG4O4TP4FLABHHbemH2KakWM";
|
||||
path = fetchZigArtifact {
|
||||
name = "zg";
|
||||
url = "git+https://codeberg.org/atman/zg#4a002763419a34d61dcbb1f415821b83b9bf8ddc";
|
||||
hash = "sha256-fo3l6cjkrr/godElTGnQzalBsasN7J73IDIRmw7v1gA=";
|
||||
};
|
||||
}
|
||||
{
|
||||
name = "N-V-__8AAB9YCQBaZtQjJZVndk-g_GDIK-NTZcIa63bFp9yZ";
|
||||
path = fetchZigArtifact {
|
||||
name = "zig_js";
|
||||
url = "https://deps.files.ghostty.org/zig_js-12205a66d423259567764fa0fc60c82be35365c21aeb76c5a7dc99698401f4f6fefc.tar.gz";
|
||||
hash = "sha256-fyNeCVbC9UAaKJY6JhAZlT0A479M/AKYMPIWEZbDWD0=";
|
||||
};
|
||||
}
|
||||
{
|
||||
name = "zig_objc-0.0.0-Ir_SpwsPAQBJgi9YRm2ubJMfdoysSq5gKpsIj3izQ8Zk";
|
||||
path = fetchZigArtifact {
|
||||
name = "zig_objc";
|
||||
url = "https://github.com/mitchellh/zig-objc/archive/c9e917a4e15a983b672ca779c7985d738a2d517c.tar.gz";
|
||||
hash = "sha256-o3vl7qfkSi0bKXa6JWuF92qMEGP8Af/shcip5nRo5Nw=";
|
||||
};
|
||||
}
|
||||
{
|
||||
name = "wayland-0.4.0-dev-lQa1kjfIAQCmhhQu3xF0KH-94-TzeMXOqfnP0-Dg6Wyy";
|
||||
path = fetchZigArtifact {
|
||||
name = "zig_wayland";
|
||||
url = "https://codeberg.org/ifreund/zig-wayland/archive/f3c5d503e540ada8cbcb056420de240af0c094f7.tar.gz";
|
||||
hash = "sha256-E77GZ15APYbbO1WzmuJi8eG9/iQFbc2CgkNBxjCLUhk=";
|
||||
};
|
||||
}
|
||||
{
|
||||
name = "zigimg-0.1.0-lly-O6N2EABOxke8dqyzCwhtUCAafqP35zC7wsZ4Ddxj";
|
||||
path = fetchZigArtifact {
|
||||
name = "zigimg";
|
||||
url = "git+https://github.com/TUSF/zigimg#31268548fe3276c0e95f318a6c0d2ab10565b58d";
|
||||
hash = "sha256-oblfr2FIzuqq0FLo/RrzCwUX1NJJuT53EwD3nP3KwN0=";
|
||||
};
|
||||
}
|
||||
{
|
||||
name = "ziglyph-0.11.2-AAAAAHPtHwB4Mbzn1KvOV7Wpjo82NYEc_v0WC8oCLrkf";
|
||||
path = fetchZigArtifact {
|
||||
name = "ziglyph";
|
||||
url = "https://deps.files.ghostty.org/ziglyph-b89d43d1e3fb01b6074bc1f7fc980324b04d26a5.tar.gz";
|
||||
hash = "sha256-cse98+Ft8QUjX+P88yyYfaxJOJGQ9M7Ymw7jFxDz89k=";
|
||||
};
|
||||
}
|
||||
{
|
||||
name = "N-V-__8AAB0eQwD-0MdOEBmz7intriBReIsIDNlukNVoNu6o";
|
||||
path = fetchZigArtifact {
|
||||
name = "zlib";
|
||||
url = "https://deps.files.ghostty.org/zlib-1220fed0c74e1019b3ee29edae2051788b080cd96e90d56836eea857b0b966742efb.tar.gz";
|
||||
hash = "sha256-F+iIY/NgBnKrSRgvIXKBtvxNPHYr3jYZNeQ2qVIU0Fw=";
|
||||
};
|
||||
}
|
||||
]
|
35
build.zig.zon.txt
generated
Normal file
@@ -0,0 +1,35 @@
|
||||
git+https://codeberg.org/atman/zg#4a002763419a34d61dcbb1f415821b83b9bf8ddc
|
||||
git+https://github.com/TUSF/zigimg#31268548fe3276c0e95f318a6c0d2ab10565b58d
|
||||
git+https://github.com/rockorager/libvaxis#1f41c121e8fc153d9ce8c6eb64b2bbab68ad7d23
|
||||
https://codeberg.org/ifreund/zig-wayland/archive/f3c5d503e540ada8cbcb056420de240af0c094f7.tar.gz
|
||||
https://deps.files.ghostty.org/JetBrainsMono-2.304.tar.gz
|
||||
https://deps.files.ghostty.org/NerdFontsSymbolsOnly-3.4.0.tar.gz
|
||||
https://deps.files.ghostty.org/breakpad-b99f444ba5f6b98cac261cbb391d8766b34a5918.tar.gz
|
||||
https://deps.files.ghostty.org/fontconfig-2.14.2.tar.gz
|
||||
https://deps.files.ghostty.org/freetype-1220b81f6ecfb3fd222f76cf9106fecfa6554ab07ec7fdc4124b9bb063ae2adf969d.tar.gz
|
||||
https://deps.files.ghostty.org/gettext-0.24.tar.gz
|
||||
https://deps.files.ghostty.org/glslang-12201278a1a05c0ce0b6eb6026c65cd3e9247aa041b1c260324bf29cee559dd23ba1.tar.gz
|
||||
https://deps.files.ghostty.org/gtk4-layer-shell-1.1.0.tar.gz
|
||||
https://deps.files.ghostty.org/harfbuzz-11.0.0.tar.xz
|
||||
https://deps.files.ghostty.org/highway-66486a10623fa0d72fe91260f96c892e41aceb06.tar.gz
|
||||
https://deps.files.ghostty.org/imgui-1220bc6b9daceaf7c8c60f3c3998058045ba0c5c5f48ae255ff97776d9cd8bfc6402.tar.gz
|
||||
https://deps.files.ghostty.org/libpng-1220aa013f0c83da3fb64ea6d327f9173fa008d10e28bc9349eac3463457723b1c66.tar.gz
|
||||
https://deps.files.ghostty.org/libxml2-2.11.5.tar.gz
|
||||
https://deps.files.ghostty.org/oniguruma-1220c15e72eadd0d9085a8af134904d9a0f5dfcbed5f606ad60edc60ebeccd9706bb.tar.gz
|
||||
https://deps.files.ghostty.org/pixels-12207ff340169c7d40c570b4b6a97db614fe47e0d83b5801a932dcd44917424c8806.tar.gz
|
||||
https://deps.files.ghostty.org/plasma_wayland_protocols-12207e0851c12acdeee0991e893e0132fc87bb763969a585dc16ecca33e88334c566.tar.gz
|
||||
https://deps.files.ghostty.org/sentry-1220446be831adcca918167647c06c7b825849fa3fba5f22da394667974537a9c77e.tar.gz
|
||||
https://deps.files.ghostty.org/spirv_cross-1220fb3b5586e8be67bc3feb34cbe749cf42a60d628d2953632c2f8141302748c8da.tar.gz
|
||||
https://deps.files.ghostty.org/utfcpp-1220d4d18426ca72fc2b7e56ce47273149815501d0d2395c2a98c726b31ba931e641.tar.gz
|
||||
https://deps.files.ghostty.org/wayland-9cb3d7aa9dc995ffafdbdef7ab86a949d0fb0e7d.tar.gz
|
||||
https://deps.files.ghostty.org/wayland-protocols-258d8f88f2c8c25a830c6316f87d23ce1a0f12d9.tar.gz
|
||||
https://deps.files.ghostty.org/wuffs-122037b39d577ec2db3fd7b2130e7b69ef6cc1807d68607a7c232c958315d381b5cd.tar.gz
|
||||
https://deps.files.ghostty.org/zig_js-12205a66d423259567764fa0fc60c82be35365c21aeb76c5a7dc99698401f4f6fefc.tar.gz
|
||||
https://deps.files.ghostty.org/ziglyph-b89d43d1e3fb01b6074bc1f7fc980324b04d26a5.tar.gz
|
||||
https://deps.files.ghostty.org/zlib-1220fed0c74e1019b3ee29edae2051788b080cd96e90d56836eea857b0b966742efb.tar.gz
|
||||
https://github.com/jcollie/ghostty-gobject/releases/download/0.14.1-2025-08-09-37-1/ghostty-gobject-0.14.1-2025-08-09-37-1.tar.zst
|
||||
https://github.com/mbadolato/iTerm2-Color-Schemes/archive/e4c0090a654e081e953b63d0fa50dee075726023.tar.gz
|
||||
https://github.com/mitchellh/libxev/archive/7f803181b158a10fec8619f793e3b4df515566cb.tar.gz
|
||||
https://github.com/mitchellh/zig-objc/archive/c9e917a4e15a983b672ca779c7985d738a2d517c.tar.gz
|
||||
https://github.com/natecraddock/zf/archive/7aacbe6d155d64d15937ca95ca6c014905eb531f.tar.gz
|
||||
https://github.com/vancluever/z2d/archive/refs/tags/v0.7.2.tar.gz
|
@@ -1,59 +0,0 @@
|
||||
# Note: the flatpak build is likely broken right now and is not actively
|
||||
# maintained. We may completely remove this file in the future. For now,
|
||||
# we want to keep _trying_ but its something with known issues.
|
||||
app-id: com.mitchellh.ghostty
|
||||
runtime: org.gnome.Platform
|
||||
runtime-version: "43"
|
||||
sdk: org.gnome.Sdk
|
||||
default-branch: tip
|
||||
command: ghostty
|
||||
build-options:
|
||||
append-path: /app/tmp/zig
|
||||
strip: false
|
||||
no-debuginfo: true
|
||||
# Note: we have to use cleanup-commands because flatpak-builder doesn't
|
||||
# run "cleanup" on its own: https://github.com/flatpak/flatpak-builder/issues/14
|
||||
cleanup-commands:
|
||||
- "rm -rf /app/tmp"
|
||||
finish-args:
|
||||
# 3D rendering
|
||||
- --device=dri
|
||||
# Windowing
|
||||
- --share=ipc
|
||||
- --socket=x11
|
||||
- --socket=wayland
|
||||
# Files (we are a terminal so we need all of them)
|
||||
- --filesystem=host
|
||||
# So we can escape the sandbox
|
||||
- --talk-name=org.freedesktop.Flatpak
|
||||
modules:
|
||||
# Note: this should be kept in sync with our flake.nix. Over time this
|
||||
# should stabilize to being a release version and not a nightly.
|
||||
- name: zig
|
||||
buildsystem: simple
|
||||
build-commands:
|
||||
- mkdir -p /app/tmp/zig
|
||||
- cp -r ./* /app/tmp/zig
|
||||
sources:
|
||||
- type: archive
|
||||
url: https://ziglang.org/builds/zig-linux-x86_64-0.12.0-dev.141+ddf5859c2.tar.xz
|
||||
sha256: eaf519b1ec3cb0f3c9bcbc47ead5f50610f9c106279a35b9feb09bed8afc628b
|
||||
only-arches:
|
||||
- x86_64
|
||||
- type: archive
|
||||
url: https://ziglang.org/builds/zig-linux-aarch64-0.12.0-dev.141+ddf5859c2.tar.xz
|
||||
sha256: 4f918ae185a5dc281b5d30be92cd4c36ebd77b8665729c5e2c47a8eeccd243e8
|
||||
only-arches:
|
||||
- aarch64
|
||||
|
||||
- name: ghostty
|
||||
buildsystem: simple
|
||||
build-commands:
|
||||
- MACH_SDK_PATH="$(pwd)/vendor/mach-sdk" zig build -Doptimize=ReleaseSafe -Dcpu=baseline -Dflatpak=true -Dapp-runtime=gtk --prefix /app
|
||||
sources:
|
||||
- type: dir
|
||||
path: .
|
||||
skip:
|
||||
- .flatpak-builder
|
||||
- zig-cache
|
||||
- zig-out
|
@@ -1,13 +1,15 @@
|
||||
[Desktop Entry]
|
||||
Name=Ghostty
|
||||
Version=1.0
|
||||
Name=@NAME@
|
||||
Type=Application
|
||||
Comment=A terminal emulator
|
||||
Exec=ghostty
|
||||
TryExec=@GHOSTTY@
|
||||
Exec=@GHOSTTY@ --launched-from=desktop
|
||||
Icon=com.mitchellh.ghostty
|
||||
Categories=System;TerminalEmulator;
|
||||
Keywords=terminal;tty;pty;
|
||||
StartupNotify=true
|
||||
StartupWMClass=com.mitchellh.ghostty
|
||||
StartupWMClass=@APPID@
|
||||
Terminal=false
|
||||
Actions=new-window;
|
||||
X-GNOME-UsesNotifications=true
|
||||
@@ -16,7 +18,9 @@ X-TerminalArgTitle=--title=
|
||||
X-TerminalArgAppId=--class=
|
||||
X-TerminalArgDir=--working-directory=
|
||||
X-TerminalArgHold=--wait-after-command
|
||||
DBusActivatable=true
|
||||
X-KDE-Shortcuts=Ctrl+Alt+T
|
||||
|
||||
[Desktop Action new-window]
|
||||
Name=New Window
|
||||
Exec=ghostty
|
||||
Exec=@GHOSTTY@ --launched-from=desktop
|
59
dist/linux/com.mitchellh.ghostty.metainfo.xml.in
vendored
Normal file
@@ -0,0 +1,59 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<component type="desktop-application">
|
||||
<id>@APPID@</id>
|
||||
<launchable type="desktop-id">@APPID@.desktop</launchable>
|
||||
<name>@NAME@</name>
|
||||
<url type="homepage">https://ghostty.org</url>
|
||||
<url type="help">https://ghostty.org/docs</url>
|
||||
<url type="bugtracker">https://github.com/ghostty-org/ghostty/discussions</url>
|
||||
<url type="contact">https://ghostty.org/docs/help</url>
|
||||
<url type="contribute">https://github.com/ghostty-org/ghostty/blob/main/CONTRIBUTING.md</url>
|
||||
<url type="translate">https://github.com/ghostty-org/ghostty/blob/main/po/README_TRANSLATORS.md</url>
|
||||
<url type="vcs-browser">https://github.com/ghostty-org/ghostty</url>
|
||||
<summary>Ghostty is a fast, feature-rich, and cross-platform terminal emulator</summary>
|
||||
<metadata_license>MIT</metadata_license>
|
||||
<project_license>MIT</project_license>
|
||||
<content_rating type="oars-1.1" />
|
||||
<developer id="com.mitchellh">
|
||||
<name>Mitchell Hashimoto</name>
|
||||
</developer>
|
||||
<update_contact>m@mitchellh.com</update_contact>
|
||||
<description>
|
||||
<p>
|
||||
Ghostty is a terminal emulator that differentiates itself by being fast,
|
||||
feature-rich, and native. While there are many excellent terminal
|
||||
emulators available, they all force you to choose between speed,
|
||||
features, or native UIs. Ghostty provides all three.
|
||||
</p>
|
||||
</description>
|
||||
<recommends>
|
||||
<control>keyboard</control>
|
||||
<control>pointing</control>
|
||||
</recommends>
|
||||
<requires>
|
||||
<!--
|
||||
Mobile/tablet AND desktop supported
|
||||
|
||||
Ref: https://docs.flathub.org/docs/for-app-authors/metainfo-guidelines#display-size
|
||||
-->
|
||||
<display_length compare="ge">360</display_length>
|
||||
</requires>
|
||||
<translation type="gettext">com.mitchellh.ghostty</translation>
|
||||
|
||||
<!--
|
||||
TODO: Generate manifest location data.
|
||||
|
||||
Ref: https://docs.flathub.org/docs/for-app-authors/metainfo-guidelines#manifest-location
|
||||
|
||||
<custom>
|
||||
<value key="flathub::manifest">https://github.com/ghostty-org/ghostty/blob/<hash>/flatpak/com.mitchellh.ghostty.yml</value>
|
||||
</custom>
|
||||
-->
|
||||
|
||||
<releases>
|
||||
<!-- TODO: Generate this automatically -->
|
||||
<release version="1.0.1" date="2024-12-31">
|
||||
<url type="details">https://ghostty.org/docs/install/release-notes/1-0-1</url>
|
||||
</release>
|
||||
</releases>
|
||||
</component>
|
3
dist/linux/dbus.service.flatpak.in
vendored
Normal file
@@ -0,0 +1,3 @@
|
||||
[D-BUS Service]
|
||||
Name=@APPID@
|
||||
Exec=@GHOSTTY@ --launched-from=dbus
|
4
dist/linux/dbus.service.in
vendored
Normal file
@@ -0,0 +1,4 @@
|
||||
[D-BUS Service]
|
||||
Name=@APPID@
|
||||
SystemdService=app-@APPID@.service
|
||||
Exec=@GHOSTTY@ --launched-from=dbus
|
14
dist/linux/systemd.service.in
vendored
Normal file
@@ -0,0 +1,14 @@
|
||||
[Unit]
|
||||
Description=@NAME@
|
||||
After=graphical-session.target
|
||||
After=dbus.socket
|
||||
Requires=dbus.socket
|
||||
|
||||
[Service]
|
||||
Type=notify-reload
|
||||
ReloadSignal=SIGUSR2
|
||||
BusName=@APPID@
|
||||
ExecStart=@GHOSTTY@ --launched-from=systemd
|
||||
|
||||
[Install]
|
||||
WantedBy=graphical-session.target
|
BIN
dist/macos/Ghostty.icns
vendored
17
dist/macos/Info.plist
vendored
@@ -1,17 +0,0 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
|
||||
<plist version="1.0">
|
||||
<dict>
|
||||
<key>CFBundleExecutable</key>
|
||||
<string>ghostty</string>
|
||||
<key>CFBundleIdentifier</key>
|
||||
<string>com.mitchellh.ghostty</string>
|
||||
<key>CFBundleName</key>
|
||||
<string>Ghostty</string>
|
||||
<key>CFBundleDisplayName</key>
|
||||
<string>Ghostty</string>
|
||||
<key>CFBundleIconFile</key>
|
||||
<string>Ghostty.icns</string>
|
||||
</dict>
|
||||
</plist>
|
||||
|
95
flake.lock
generated
@@ -3,11 +3,11 @@
|
||||
"flake-compat": {
|
||||
"flake": false,
|
||||
"locked": {
|
||||
"lastModified": 1696426674,
|
||||
"narHash": "sha256-kvjfFW7WAETZlt09AgDn1MrtKzP7t90Vf7vypd3OL1U=",
|
||||
"lastModified": 1747046372,
|
||||
"narHash": "sha256-CIVLLkVgvHYbgI2UpXvIIBJ12HWgX+fjA8Xf8PUmqCY=",
|
||||
"owner": "edolstra",
|
||||
"repo": "flake-compat",
|
||||
"rev": "0f9255e01c2351cc7d116c072cb317785dd33b33",
|
||||
"rev": "9100a0f413b0c601e0533d1d94ffd501ce2e7885",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
@@ -21,11 +21,11 @@
|
||||
"systems": "systems"
|
||||
},
|
||||
"locked": {
|
||||
"lastModified": 1705309234,
|
||||
"narHash": "sha256-uNRRNRKmJyCRC/8y1RqBkqWBLM034y4qN7EprSdmgyA=",
|
||||
"lastModified": 1731533236,
|
||||
"narHash": "sha256-l0KFg5HjrsfsO/JpG+r7fRrqm12kzFHyUHqHCVpMMbI=",
|
||||
"owner": "numtide",
|
||||
"repo": "flake-utils",
|
||||
"rev": "1ef2e671c3b0c19053962c07dbda38332dcebf26",
|
||||
"rev": "11707dc2f618dd54ca8739b309ec4fc024de578b",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
@@ -34,44 +34,39 @@
|
||||
"type": "github"
|
||||
}
|
||||
},
|
||||
"nixpkgs-stable": {
|
||||
"nixpkgs": {
|
||||
"locked": {
|
||||
"lastModified": 1733423277,
|
||||
"narHash": "sha256-TxabjxEgkNbCGFRHgM/b9yZWlBj60gUOUnRT/wbVQR8=",
|
||||
"owner": "nixos",
|
||||
"repo": "nixpkgs",
|
||||
"rev": "e36963a147267afc055f7cf65225958633e536bf",
|
||||
"type": "github"
|
||||
"lastModified": 1748189127,
|
||||
"narHash": "sha256-zRDR+EbbeObu4V2X5QCd2Bk5eltfDlCr5yvhBwUT6pY=",
|
||||
"rev": "7c43f080a7f28b2774f3b3f43234ca11661bf334",
|
||||
"type": "tarball",
|
||||
"url": "https://releases.nixos.org/nixos/25.05/nixos-25.05.802491.7c43f080a7f2/nixexprs.tar.xz"
|
||||
},
|
||||
"original": {
|
||||
"owner": "nixos",
|
||||
"ref": "release-24.11",
|
||||
"repo": "nixpkgs",
|
||||
"type": "github"
|
||||
"type": "tarball",
|
||||
"url": "https://channels.nixos.org/nixos-25.05/nixexprs.tar.xz"
|
||||
}
|
||||
},
|
||||
"nixpkgs-unstable": {
|
||||
"nixpkgs_2": {
|
||||
"locked": {
|
||||
"lastModified": 1733229606,
|
||||
"narHash": "sha256-FLYY5M0rpa5C2QAE3CKLYAM6TwbKicdRK6qNrSHlNrE=",
|
||||
"owner": "nixos",
|
||||
"repo": "nixpkgs",
|
||||
"rev": "566e53c2ad750c84f6d31f9ccb9d00f823165550",
|
||||
"type": "github"
|
||||
"lastModified": 1755972213,
|
||||
"narHash": "sha256-VYK7aDAv8H1enXn1ECRHmGbeY6RqLnNwUJkOwloIsko=",
|
||||
"rev": "73e96df7cff5783f45e21342a75a1540c4eddce4",
|
||||
"type": "tarball",
|
||||
"url": "https://releases.nixos.org/nixos/unstable-small/nixos-25.11pre850642.73e96df7cff5/nixexprs.tar.xz"
|
||||
},
|
||||
"original": {
|
||||
"owner": "nixos",
|
||||
"ref": "nixpkgs-unstable",
|
||||
"repo": "nixpkgs",
|
||||
"type": "github"
|
||||
"type": "tarball",
|
||||
"url": "https://channels.nixos.org/nixos-unstable-small/nixexprs.tar.xz"
|
||||
}
|
||||
},
|
||||
"root": {
|
||||
"inputs": {
|
||||
"flake-compat": "flake-compat",
|
||||
"nixpkgs-stable": "nixpkgs-stable",
|
||||
"nixpkgs-unstable": "nixpkgs-unstable",
|
||||
"zig": "zig"
|
||||
"flake-utils": "flake-utils",
|
||||
"nixpkgs": "nixpkgs",
|
||||
"zig": "zig",
|
||||
"zon2nix": "zon2nix"
|
||||
}
|
||||
},
|
||||
"systems": {
|
||||
@@ -91,18 +86,22 @@
|
||||
},
|
||||
"zig": {
|
||||
"inputs": {
|
||||
"flake-compat": [],
|
||||
"flake-utils": "flake-utils",
|
||||
"flake-compat": [
|
||||
"flake-compat"
|
||||
],
|
||||
"flake-utils": [
|
||||
"flake-utils"
|
||||
],
|
||||
"nixpkgs": [
|
||||
"nixpkgs-stable"
|
||||
"nixpkgs"
|
||||
]
|
||||
},
|
||||
"locked": {
|
||||
"lastModified": 1717848532,
|
||||
"narHash": "sha256-d+xIUvSTreHl8pAmU1fnmkfDTGQYCn2Rb/zOwByxS2M=",
|
||||
"lastModified": 1748261582,
|
||||
"narHash": "sha256-3i0IL3s18hdDlbsf0/E+5kyPRkZwGPbSFngq5eToiAA=",
|
||||
"owner": "mitchellh",
|
||||
"repo": "zig-overlay",
|
||||
"rev": "02fc5cc555fc14fda40c42d7c3250efa43812b43",
|
||||
"rev": "aafb1b093fb838f7a02613b719e85ec912914221",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
@@ -110,6 +109,28 @@
|
||||
"repo": "zig-overlay",
|
||||
"type": "github"
|
||||
}
|
||||
},
|
||||
"zon2nix": {
|
||||
"inputs": {
|
||||
"flake-utils": [
|
||||
"flake-utils"
|
||||
],
|
||||
"nixpkgs": "nixpkgs_2"
|
||||
},
|
||||
"locked": {
|
||||
"lastModified": 1756000480,
|
||||
"narHash": "sha256-fR5pdcjO0II5MNdCzqvyokyuFkmff7/FyBAjUS6sMfA=",
|
||||
"owner": "jcollie",
|
||||
"repo": "zon2nix",
|
||||
"rev": "d9dc9ef1ab9ae45b5c9d80c6a747cc9968ee0c60",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
"owner": "jcollie",
|
||||
"repo": "zon2nix",
|
||||
"rev": "d9dc9ef1ab9ae45b5c9d80c6a747cc9968ee0c60",
|
||||
"type": "github"
|
||||
}
|
||||
}
|
||||
},
|
||||
"root": "root",
|
||||
|
53
flake.nix
@@ -2,12 +2,11 @@
|
||||
description = "👻";
|
||||
|
||||
inputs = {
|
||||
nixpkgs-unstable.url = "github:nixos/nixpkgs/nixpkgs-unstable";
|
||||
|
||||
# We want to stay as up to date as possible but need to be careful that the
|
||||
# glibc versions used by our dependencies from Nix are compatible with the
|
||||
# system glibc that the user is building for.
|
||||
nixpkgs-stable.url = "github:nixos/nixpkgs/release-24.11";
|
||||
nixpkgs.url = "https://channels.nixos.org/nixos-25.05/nixexprs.tar.xz";
|
||||
flake-utils.url = "github:numtide/flake-utils";
|
||||
|
||||
# Used for shell.nix
|
||||
flake-compat = {
|
||||
@@ -18,28 +17,40 @@
|
||||
zig = {
|
||||
url = "github:mitchellh/zig-overlay";
|
||||
inputs = {
|
||||
nixpkgs.follows = "nixpkgs-stable";
|
||||
flake-compat.follows = "";
|
||||
nixpkgs.follows = "nixpkgs";
|
||||
flake-utils.follows = "flake-utils";
|
||||
flake-compat.follows = "flake-compat";
|
||||
};
|
||||
};
|
||||
|
||||
zon2nix = {
|
||||
url = "github:jcollie/zon2nix?rev=d9dc9ef1ab9ae45b5c9d80c6a747cc9968ee0c60";
|
||||
inputs = {
|
||||
# Don't override nixpkgs until Zig 0.15 is available in the Nix branch
|
||||
# we are using for "normal" builds.
|
||||
#
|
||||
# nixpkgs.follows = "nixpkgs";
|
||||
flake-utils.follows = "flake-utils";
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
outputs = {
|
||||
self,
|
||||
nixpkgs-unstable,
|
||||
nixpkgs-stable,
|
||||
nixpkgs,
|
||||
zig,
|
||||
zon2nix,
|
||||
...
|
||||
}:
|
||||
builtins.foldl' nixpkgs-stable.lib.recursiveUpdate {} (
|
||||
builtins.foldl' nixpkgs.lib.recursiveUpdate {} (
|
||||
builtins.map (
|
||||
system: let
|
||||
pkgs-stable = nixpkgs-stable.legacyPackages.${system};
|
||||
pkgs-unstable = nixpkgs-unstable.legacyPackages.${system};
|
||||
pkgs = nixpkgs.legacyPackages.${system};
|
||||
in {
|
||||
devShell.${system} = pkgs-stable.callPackage ./nix/devShell.nix {
|
||||
zig = zig.packages.${system}."0.13.0";
|
||||
wraptest = pkgs-stable.callPackage ./nix/wraptest.nix {};
|
||||
devShell.${system} = pkgs.callPackage ./nix/devShell.nix {
|
||||
zig = zig.packages.${system}."0.14.1";
|
||||
wraptest = pkgs.callPackage ./nix/wraptest.nix {};
|
||||
zon2nix = zon2nix;
|
||||
};
|
||||
|
||||
packages.${system} = let
|
||||
@@ -49,29 +60,29 @@
|
||||
revision = self.shortRev or self.dirtyShortRev or "dirty";
|
||||
};
|
||||
in rec {
|
||||
ghostty-debug = pkgs-stable.callPackage ./nix/package.nix (mkArgs "Debug");
|
||||
ghostty-releasesafe = pkgs-stable.callPackage ./nix/package.nix (mkArgs "ReleaseSafe");
|
||||
ghostty-releasefast = pkgs-stable.callPackage ./nix/package.nix (mkArgs "ReleaseFast");
|
||||
deps = pkgs.callPackage ./build.zig.zon.nix {};
|
||||
ghostty-debug = pkgs.callPackage ./nix/package.nix (mkArgs "Debug");
|
||||
ghostty-releasesafe = pkgs.callPackage ./nix/package.nix (mkArgs "ReleaseSafe");
|
||||
ghostty-releasefast = pkgs.callPackage ./nix/package.nix (mkArgs "ReleaseFast");
|
||||
|
||||
ghostty = ghostty-releasefast;
|
||||
default = ghostty;
|
||||
};
|
||||
|
||||
formatter.${system} = pkgs-stable.alejandra;
|
||||
formatter.${system} = pkgs.alejandra;
|
||||
|
||||
apps.${system} = let
|
||||
runVM = (
|
||||
module: let
|
||||
vm = import ./nix/vm/create.nix {
|
||||
inherit system module;
|
||||
nixpkgs = nixpkgs-stable;
|
||||
inherit system module nixpkgs;
|
||||
overlay = self.overlays.debug;
|
||||
};
|
||||
program = pkgs-stable.writeShellScript "run-ghostty-vm" ''
|
||||
program = pkgs.writeShellScript "run-ghostty-vm" ''
|
||||
SHARED_DIR=$(pwd)
|
||||
export SHARED_DIR
|
||||
|
||||
${pkgs-stable.lib.getExe vm.config.system.build.vm} "$@"
|
||||
${pkgs.lib.getExe vm.config.system.build.vm} "$@"
|
||||
'';
|
||||
in {
|
||||
type = "app";
|
||||
|
59
flatpak/com.mitchellh.ghostty-debug.yml
Normal file
@@ -0,0 +1,59 @@
|
||||
app-id: com.mitchellh.ghostty-debug
|
||||
runtime: org.gnome.Platform
|
||||
runtime-version: "48"
|
||||
sdk: org.gnome.Sdk
|
||||
default-branch: tip
|
||||
command: ghostty
|
||||
rename-icon: com.mitchellh.ghostty
|
||||
finish-args:
|
||||
# 3D rendering
|
||||
- --device=dri
|
||||
# use host PTS namespace
|
||||
- --device=all
|
||||
# Windowing
|
||||
- --share=ipc
|
||||
- --socket=fallback-x11
|
||||
- --socket=wayland
|
||||
# Allow user to specify additional config files in home by default
|
||||
- --filesystem=home:ro
|
||||
# So we can escape the sandbox
|
||||
- --talk-name=org.freedesktop.Flatpak
|
||||
cleanup:
|
||||
- /include
|
||||
- /lib/girepository-1.0
|
||||
- /lib/pkgconfig
|
||||
- /share/gir-1.0
|
||||
- /share/pkgconfig
|
||||
- /share/vala
|
||||
- "*.la"
|
||||
- "*.a"
|
||||
- "*.so"
|
||||
|
||||
modules:
|
||||
- dependencies.yml
|
||||
|
||||
- name: ghostty
|
||||
buildsystem: simple
|
||||
build-options:
|
||||
append-path: /app/zig
|
||||
build-commands:
|
||||
- zig build
|
||||
-Doptimize=Debug
|
||||
-Dcpu=baseline
|
||||
-Dflatpak=true
|
||||
-Dstrip=false
|
||||
-fno-sys=oniguruma
|
||||
--prefix /app
|
||||
--search-prefix /app
|
||||
--system $PWD/vendor/p
|
||||
sources:
|
||||
- type: dir
|
||||
path: ..
|
||||
skip:
|
||||
- flatpak/.flatpak-builder
|
||||
- flatpak/builddir
|
||||
- flatpak/repo
|
||||
- zig-cache
|
||||
- zig-out
|
||||
|
||||
- zig-packages.json
|
58
flatpak/com.mitchellh.ghostty.yml
Normal file
@@ -0,0 +1,58 @@
|
||||
app-id: com.mitchellh.ghostty
|
||||
runtime: org.gnome.Platform
|
||||
runtime-version: "48"
|
||||
sdk: org.gnome.Sdk
|
||||
default-branch: tip
|
||||
command: ghostty
|
||||
finish-args:
|
||||
# 3D rendering
|
||||
- --device=dri
|
||||
# use host PTS namespace
|
||||
- --device=all
|
||||
# Windowing
|
||||
- --share=ipc
|
||||
- --socket=fallback-x11
|
||||
- --socket=wayland
|
||||
# Allow user to specify additional config files in home by default
|
||||
- --filesystem=home:ro
|
||||
# So we can escape the sandbox
|
||||
- --talk-name=org.freedesktop.Flatpak
|
||||
cleanup:
|
||||
- /include
|
||||
- /lib/girepository-1.0
|
||||
- /lib/pkgconfig
|
||||
- /share/gir-1.0
|
||||
- /share/pkgconfig
|
||||
- /share/vala
|
||||
- "*.la"
|
||||
- "*.a"
|
||||
- "*.so"
|
||||
|
||||
modules:
|
||||
- dependencies.yml
|
||||
|
||||
- name: ghostty
|
||||
buildsystem: simple
|
||||
build-options:
|
||||
append-path: /app/zig
|
||||
build-commands:
|
||||
- zig build
|
||||
-Doptimize=ReleaseFast
|
||||
-Dcpu=baseline
|
||||
-Dflatpak=true
|
||||
-Dstrip=false
|
||||
-fno-sys=oniguruma
|
||||
--prefix /app
|
||||
--search-prefix /app
|
||||
--system $PWD/vendor/p
|
||||
sources:
|
||||
- type: dir
|
||||
path: ..
|
||||
skip:
|
||||
- flatpak/.flatpak-builder
|
||||
- flatpak/builddir
|
||||
- flatpak/repo
|
||||
- zig-cache
|
||||
- zig-out
|
||||
|
||||
- zig-packages.json
|
84
flatpak/dependencies.yml
Normal file
@@ -0,0 +1,84 @@
|
||||
name: dependencies-meta
|
||||
buildsystem: simple
|
||||
build-commands:
|
||||
- true
|
||||
modules:
|
||||
- name: zig
|
||||
buildsystem: simple
|
||||
cleanup:
|
||||
- "*"
|
||||
build-commands:
|
||||
- mkdir -p /app/zig
|
||||
- cp -r ./* /app/zig
|
||||
- chmod a+x /app/zig/zig
|
||||
sources:
|
||||
- type: archive
|
||||
sha256: 24aeeec8af16c381934a6cd7d95c807a8cb2cf7df9fa40d359aa884195c4716c
|
||||
url: https://ziglang.org/download/0.14.1/zig-x86_64-linux-0.14.1.tar.xz
|
||||
only-arches: [x86_64]
|
||||
- type: archive
|
||||
sha256: f7a654acc967864f7a050ddacfaa778c7504a0eca8d2b678839c21eea47c992b
|
||||
url: https://ziglang.org/download/0.14.1/zig-aarch64-linux-0.14.1.tar.xz
|
||||
only-arches: [aarch64]
|
||||
|
||||
- name: bzip2-redirect
|
||||
buildsystem: simple
|
||||
build-commands:
|
||||
- install -Dm644 libbzip2.so /app/lib/libbzip2.so
|
||||
sources:
|
||||
- type: inline
|
||||
contents: INPUT(libbz2.so)
|
||||
dest-filename: libbzip2.so
|
||||
|
||||
- name: blueprint-compiler
|
||||
buildsystem: meson
|
||||
cleanup:
|
||||
- "*"
|
||||
sources:
|
||||
- type: git
|
||||
url: https://gitlab.gnome.org/jwestman/blueprint-compiler.git
|
||||
tag: v0.16.0
|
||||
commit: 04ef0944db56ab01307a29aaa7303df6067cb3c0
|
||||
x-checker-data:
|
||||
type: git
|
||||
tag-pattern: ^v([\d.]+)$
|
||||
|
||||
- name: gtk4-layer-shell
|
||||
buildsystem: meson
|
||||
sources:
|
||||
# no x-checker-data since this should be synchronized with Nix
|
||||
#
|
||||
# TODO: Automate this with check-zig-cache.sh
|
||||
- type: archive
|
||||
url: https://github.com/wmww/gtk4-layer-shell/archive/refs/tags/v1.1.0.tar.gz
|
||||
sha256: 98284281260a5eef5b4f63a55f16c4bf6a788a1020a6db037ecb0f71fa336988
|
||||
|
||||
- name: pandoc
|
||||
buildsystem: simple
|
||||
cleanup:
|
||||
- "*"
|
||||
build-commands:
|
||||
- install -Dm755 bin/pandoc /app/bin/pandoc
|
||||
sources:
|
||||
- type: archive
|
||||
sha256: d04c95c138202f87d6b00ac19aa3dd874c681f60a9feb3b55c74f764d6d1a17d
|
||||
url: https://github.com/jgm/pandoc/releases/download/3.6.3/pandoc-3.6.3-linux-amd64.tar.gz
|
||||
only-arches: [x86_64]
|
||||
x-checker-data:
|
||||
type: json
|
||||
url: https://api.github.com/repos/jgm/pandoc/releases/latest
|
||||
url-query:
|
||||
.assets[] | select(.name=="pandoc-" + $version + "-linux-amd64.tar.gz")
|
||||
| .browser_download_url
|
||||
version-query: .tag_name
|
||||
- type: archive
|
||||
sha256: 4e774cb1bdb6e56bc55b8eb79200bd9aa6a39905a04ecda7267f5149116f0881
|
||||
url: https://github.com/jgm/pandoc/releases/download/3.6.3/pandoc-3.6.3-linux-arm64.tar.gz
|
||||
only-arches: [aarch64]
|
||||
x-checker-data:
|
||||
type: json
|
||||
url: https://api.github.com/repos/jgm/pandoc/releases/latest
|
||||
url-query:
|
||||
.assets[] | select(.name=="pandoc-" + $version + "-linux-arm64.tar.gz")
|
||||
| .browser_download_url
|
||||
version-query: .tag_name
|
3
flatpak/exceptions.json
Normal file
@@ -0,0 +1,3 @@
|
||||
{
|
||||
"com.mitchellh.ghostty": ["finish-args-flatpak-spawn-access"]
|
||||
}
|
212
flatpak/zig-packages.json
Normal file
@@ -0,0 +1,212 @@
|
||||
[
|
||||
{
|
||||
"type": "archive",
|
||||
"url": "https://deps.files.ghostty.org/breakpad-b99f444ba5f6b98cac261cbb391d8766b34a5918.tar.gz",
|
||||
"dest": "vendor/p/N-V-__8AALw2uwF_03u4JRkZwRLc3Y9hakkYV7NKRR9-RIZJ",
|
||||
"sha256": "6cca98943d1a990766cef61077c09aff5938063fe17a1efe1228e5412b6d6ad9"
|
||||
},
|
||||
{
|
||||
"type": "archive",
|
||||
"url": "https://deps.files.ghostty.org/fontconfig-2.14.2.tar.gz",
|
||||
"dest": "vendor/p/N-V-__8AAIrfdwARSa-zMmxWwFuwpXf1T3asIN7s5jqi9c1v",
|
||||
"sha256": "3ba2dd92158718acec5caaf1a716043b5aa055c27b081d914af3ccb40dce8a55"
|
||||
},
|
||||
{
|
||||
"type": "archive",
|
||||
"url": "https://deps.files.ghostty.org/freetype-1220b81f6ecfb3fd222f76cf9106fecfa6554ab07ec7fdc4124b9bb063ae2adf969d.tar.gz",
|
||||
"dest": "vendor/p/N-V-__8AAKLKpwC4H27Ps_0iL3bPkQb-z6ZVSrB-x_3EEkub",
|
||||
"sha256": "427201f5d5151670d05c1f5b45bef5dda1f2e7dd971ef54f0feaaa7ffd2ab90c"
|
||||
},
|
||||
{
|
||||
"type": "archive",
|
||||
"url": "https://deps.files.ghostty.org/gettext-0.24.tar.gz",
|
||||
"dest": "vendor/p/N-V-__8AADcZkgn4cMhTUpIz6mShCKyqqB-NBtf_S2bHaTC-",
|
||||
"sha256": "c918503d593d70daf4844d175a13d816afacb667c06fba1ec9dcd5002c1518b7"
|
||||
},
|
||||
{
|
||||
"type": "archive",
|
||||
"url": "https://deps.files.ghostty.org/glslang-12201278a1a05c0ce0b6eb6026c65cd3e9247aa041b1c260324bf29cee559dd23ba1.tar.gz",
|
||||
"dest": "vendor/p/N-V-__8AABzkUgISeKGgXAzgtutgJsZc0-kkeqBBscJgMkvy",
|
||||
"sha256": "14a2edbb509cb3e51a9a53e3f5e435dbf5971604b4b833e63e6076e8c0a997b5"
|
||||
},
|
||||
{
|
||||
"type": "archive",
|
||||
"url": "https://github.com/jcollie/ghostty-gobject/releases/download/0.14.1-2025-08-09-37-1/ghostty-gobject-0.14.1-2025-08-09-37-1.tar.zst",
|
||||
"dest": "vendor/p/gobject-0.3.0-Skun7AngnABC2BPiaoobs6YSSzSgMuEIcjb2rYrRyaAM",
|
||||
"sha256": "074ce22f32ae77e91d2aee53d414c4f46321f043ccfca861868349972b3940f2"
|
||||
},
|
||||
{
|
||||
"type": "archive",
|
||||
"url": "https://deps.files.ghostty.org/gtk4-layer-shell-1.1.0.tar.gz",
|
||||
"dest": "vendor/p/N-V-__8AALiNBAA-_0gprYr92CjrMj1I5bqNu0TSJOnjFNSr",
|
||||
"sha256": "98284281260a5eef5b4f63a55f16c4bf6a788a1020a6db037ecb0f71fa336988"
|
||||
},
|
||||
{
|
||||
"type": "archive",
|
||||
"url": "https://deps.files.ghostty.org/harfbuzz-11.0.0.tar.xz",
|
||||
"dest": "vendor/p/N-V-__8AAG02ugUcWec-Ndp-i7JTsJ0dgF8nnJRUInkGLG7G",
|
||||
"sha256": "f16351bafe214725fe2c1d5b59f0d93e49905a4b247899fb90d70cff953a2b9b"
|
||||
},
|
||||
{
|
||||
"type": "archive",
|
||||
"url": "https://deps.files.ghostty.org/highway-66486a10623fa0d72fe91260f96c892e41aceb06.tar.gz",
|
||||
"dest": "vendor/p/N-V-__8AAGmZhABbsPJLfbqrh6JTHsXhY6qCaLAQyx25e0XE",
|
||||
"sha256": "87d4f8893ef4e08f224973608ffebf94268a81380ba79c12e8841968c80aa212"
|
||||
},
|
||||
{
|
||||
"type": "archive",
|
||||
"url": "https://deps.files.ghostty.org/imgui-1220bc6b9daceaf7c8c60f3c3998058045ba0c5c5f48ae255ff97776d9cd8bfc6402.tar.gz",
|
||||
"dest": "vendor/p/N-V-__8AAH0GaQC8a52s6vfIxg88OZgFgEW6DFxfSK4lX_l3",
|
||||
"sha256": "a05fd01e04cf11ab781e28387c621d2e420f1e6044c8e27a25e603ea99ef7860"
|
||||
},
|
||||
{
|
||||
"type": "archive",
|
||||
"url": "https://github.com/mbadolato/iTerm2-Color-Schemes/archive/e4c0090a654e081e953b63d0fa50dee075726023.tar.gz",
|
||||
"dest": "vendor/p/N-V-__8AADBlXwQadkTTsE4iezfphTwqGtFpvJbzMub5lpri",
|
||||
"sha256": "2d021af6c88d2025f9cf36a3beb24d2819a00ea02504363b4049878a1b3ae5dd"
|
||||
},
|
||||
{
|
||||
"type": "archive",
|
||||
"url": "https://deps.files.ghostty.org/JetBrainsMono-2.304.tar.gz",
|
||||
"dest": "vendor/p/N-V-__8AAIC5lwAVPJJzxnCAahSvZTIlG-HhtOvnM1uh-66x",
|
||||
"sha256": "c57a691e8b82ad098b5963f3959032e4038f391087af7715885ba59046105cc4"
|
||||
},
|
||||
{
|
||||
"type": "archive",
|
||||
"url": "https://deps.files.ghostty.org/libpng-1220aa013f0c83da3fb64ea6d327f9173fa008d10e28bc9349eac3463457723b1c66.tar.gz",
|
||||
"dest": "vendor/p/N-V-__8AAJrvXQCqAT8Mg9o_tk6m0yf5Fz-gCNEOKLyTSerD",
|
||||
"sha256": "fecc95b46cf05e8e3fc8a414750e0ba5aad00d89e9fdf175e94ff041caf1a03a"
|
||||
},
|
||||
{
|
||||
"type": "archive",
|
||||
"url": "https://github.com/mitchellh/libxev/archive/7f803181b158a10fec8619f793e3b4df515566cb.tar.gz",
|
||||
"dest": "vendor/p/libxev-0.0.0-86vtc2UaEwDfiTKX3iBI-s_hdzfzWQUarT3MUrmUQl-Q",
|
||||
"sha256": "29aa3360a121853ffab089de7fbffc3bfeb42c304937ef1099d2ee358d469267"
|
||||
},
|
||||
{
|
||||
"type": "archive",
|
||||
"url": "https://deps.files.ghostty.org/libxml2-2.11.5.tar.gz",
|
||||
"dest": "vendor/p/N-V-__8AAG3RoQEyRC2Vw7Qoro5SYBf62IHn3HjqtNVY6aWK",
|
||||
"sha256": "6c28059e2e3eeb42b5b4b16489e3916a6346c1095a74fee3bc65cdc5d89a6215"
|
||||
},
|
||||
{
|
||||
"type": "archive",
|
||||
"url": "https://deps.files.ghostty.org/NerdFontsSymbolsOnly-3.4.0.tar.gz",
|
||||
"dest": "vendor/p/N-V-__8AAMVLTABmYkLqhZPLXnMl-KyN38R8UVYqGrxqO26s",
|
||||
"sha256": "1164d1b956d4bde248d7b2f0998c43cc94f5202431a1564a793895b1e73b0d04"
|
||||
},
|
||||
{
|
||||
"type": "archive",
|
||||
"url": "https://deps.files.ghostty.org/oniguruma-1220c15e72eadd0d9085a8af134904d9a0f5dfcbed5f606ad60edc60ebeccd9706bb.tar.gz",
|
||||
"dest": "vendor/p/N-V-__8AAHjwMQDBXnLq3Q2QhaivE0kE2aD138vtX2Bq1g7c",
|
||||
"sha256": "001aa1202e78448f4c0bf1a48c76e556876b36f16d92ce3207eccfd61d99f2a0"
|
||||
},
|
||||
{
|
||||
"type": "archive",
|
||||
"url": "https://deps.files.ghostty.org/pixels-12207ff340169c7d40c570b4b6a97db614fe47e0d83b5801a932dcd44917424c8806.tar.gz",
|
||||
"dest": "vendor/p/N-V-__8AADYiAAB_80AWnH1AxXC0tql9thT-R-DYO1gBqTLc",
|
||||
"sha256": "55e83b16d091082502bf149bf457f31f42092c5982650e3ffbae7b48871bf11a"
|
||||
},
|
||||
{
|
||||
"type": "archive",
|
||||
"url": "https://deps.files.ghostty.org/plasma_wayland_protocols-12207e0851c12acdeee0991e893e0132fc87bb763969a585dc16ecca33e88334c566.tar.gz",
|
||||
"dest": "vendor/p/N-V-__8AAKYZBAB-CFHBKs3u4JkeiT4BMvyHu3Y5aaWF3Bbs",
|
||||
"sha256": "5c58ba214acd8e6bca3426dc08b022c46a8dd997b29a1b3e28badf71c20df441"
|
||||
},
|
||||
{
|
||||
"type": "archive",
|
||||
"url": "https://deps.files.ghostty.org/sentry-1220446be831adcca918167647c06c7b825849fa3fba5f22da394667974537a9c77e.tar.gz",
|
||||
"dest": "vendor/p/N-V-__8AAPlZGwBEa-gxrcypGBZ2R8Bse4JYSfo_ul8i2jlG",
|
||||
"sha256": "2ac6497cc8d61a8d31093e47addb8c9b2c45b16b0705bb334a835b6423c318df"
|
||||
},
|
||||
{
|
||||
"type": "archive",
|
||||
"url": "https://deps.files.ghostty.org/spirv_cross-1220fb3b5586e8be67bc3feb34cbe749cf42a60d628d2953632c2f8141302748c8da.tar.gz",
|
||||
"dest": "vendor/p/N-V-__8AANb6pwD7O1WG6L5nvD_rNMvnSc9Cpg1ijSlTYywv",
|
||||
"sha256": "b52b6fcfc45e7fa69b1f06a1362c155473444e2cc09995556b156c53ba6657e3"
|
||||
},
|
||||
{
|
||||
"type": "archive",
|
||||
"url": "https://deps.files.ghostty.org/utfcpp-1220d4d18426ca72fc2b7e56ce47273149815501d0d2395c2a98c726b31ba931e641.tar.gz",
|
||||
"dest": "vendor/p/N-V-__8AAHffAgDU0YQmynL8K35WzkcnMUmBVQHQ0jlcKpjH",
|
||||
"sha256": "ffc668a310e77607d393f3c18b32715f223da1eac4c4d6e0579a11df8e6b59cf"
|
||||
},
|
||||
{
|
||||
"type": "git",
|
||||
"url": "https://github.com/rockorager/libvaxis",
|
||||
"commit": "1f41c121e8fc153d9ce8c6eb64b2bbab68ad7d23",
|
||||
"dest": "vendor/p/vaxis-0.1.0-BWNV_FUICQAFZnTCL11TUvnUr1Y0_ZdqtXHhd51d76Rn"
|
||||
},
|
||||
{
|
||||
"type": "archive",
|
||||
"url": "https://deps.files.ghostty.org/wayland-9cb3d7aa9dc995ffafdbdef7ab86a949d0fb0e7d.tar.gz",
|
||||
"dest": "vendor/p/N-V-__8AAKrHGAAs2shYq8UkE6bGcR1QJtLTyOE_lcosMn6t",
|
||||
"sha256": "ea4191d68e437677e51f3aacde27829810144e931d397a327dc6035e2c39c50d"
|
||||
},
|
||||
{
|
||||
"type": "archive",
|
||||
"url": "https://deps.files.ghostty.org/wayland-protocols-258d8f88f2c8c25a830c6316f87d23ce1a0f12d9.tar.gz",
|
||||
"dest": "vendor/p/N-V-__8AAKw-DAAaV8bOAAGqA0-oD7o-HNIlPFYKRXSPT03S",
|
||||
"sha256": "5cedcadde81b75e60f23e5e83b5dd2b8eb4efb9f8f79bd7a347d148aeb0530f8"
|
||||
},
|
||||
{
|
||||
"type": "archive",
|
||||
"url": "https://deps.files.ghostty.org/wuffs-122037b39d577ec2db3fd7b2130e7b69ef6cc1807d68607a7c232c958315d381b5cd.tar.gz",
|
||||
"dest": "vendor/p/N-V-__8AAAzZywE3s51XfsLbP9eyEw57ae9swYB9aGB6fCMs",
|
||||
"sha256": "9e4cd20abe96e6c4c6ede9c3057108860126e7be2e2c3e35515476c250be1c13"
|
||||
},
|
||||
{
|
||||
"type": "archive",
|
||||
"url": "https://github.com/vancluever/z2d/archive/refs/tags/v0.7.2.tar.gz",
|
||||
"dest": "vendor/p/z2d-0.7.2-j5P_Hm1oDQDQsWpGfSCMARhowBnuTHlQ_sBfij6TuG7l",
|
||||
"sha256": "b56acb944394e3fd193a5ce018e5c1d3c7d6eeca9fc8015fdeb96fd3097d6ff7"
|
||||
},
|
||||
{
|
||||
"type": "archive",
|
||||
"url": "https://github.com/natecraddock/zf/archive/7aacbe6d155d64d15937ca95ca6c014905eb531f.tar.gz",
|
||||
"dest": "vendor/p/zf-0.10.3-OIRy8aiIAACLrBllz0zjxaH0aOe5oNm3KtEMyCntST-9",
|
||||
"sha256": "de7ba535077fe2b678a5a7972585f002588d37244db08397feadf3d4907c0bb2"
|
||||
},
|
||||
{
|
||||
"type": "git",
|
||||
"url": "https://codeberg.org/atman/zg",
|
||||
"commit": "4a002763419a34d61dcbb1f415821b83b9bf8ddc",
|
||||
"dest": "vendor/p/zg-0.13.4-AAAAAGiZ7QLz4pvECFa_wG4O4TP4FLABHHbemH2KakWM"
|
||||
},
|
||||
{
|
||||
"type": "archive",
|
||||
"url": "https://deps.files.ghostty.org/zig_js-12205a66d423259567764fa0fc60c82be35365c21aeb76c5a7dc99698401f4f6fefc.tar.gz",
|
||||
"dest": "vendor/p/N-V-__8AAB9YCQBaZtQjJZVndk-g_GDIK-NTZcIa63bFp9yZ",
|
||||
"sha256": "7f235e0956c2f5401a28963a261019953d00e3bf4cfc029830f2161196c3583d"
|
||||
},
|
||||
{
|
||||
"type": "archive",
|
||||
"url": "https://github.com/mitchellh/zig-objc/archive/c9e917a4e15a983b672ca779c7985d738a2d517c.tar.gz",
|
||||
"dest": "vendor/p/zig_objc-0.0.0-Ir_SpwsPAQBJgi9YRm2ubJMfdoysSq5gKpsIj3izQ8Zk",
|
||||
"sha256": "a37be5eea7e44a2d1b2976ba256b85f76a8c1063fc01ffec85c8a9e67468e4dc"
|
||||
},
|
||||
{
|
||||
"type": "archive",
|
||||
"url": "https://codeberg.org/ifreund/zig-wayland/archive/f3c5d503e540ada8cbcb056420de240af0c094f7.tar.gz",
|
||||
"dest": "vendor/p/wayland-0.4.0-dev-lQa1kjfIAQCmhhQu3xF0KH-94-TzeMXOqfnP0-Dg6Wyy",
|
||||
"sha256": "13bec6675e403d86db3b55b39ae262f1e1bdfe24056dcd82824341c6308b5219"
|
||||
},
|
||||
{
|
||||
"type": "git",
|
||||
"url": "https://github.com/TUSF/zigimg",
|
||||
"commit": "31268548fe3276c0e95f318a6c0d2ab10565b58d",
|
||||
"dest": "vendor/p/zigimg-0.1.0-lly-O6N2EABOxke8dqyzCwhtUCAafqP35zC7wsZ4Ddxj"
|
||||
},
|
||||
{
|
||||
"type": "archive",
|
||||
"url": "https://deps.files.ghostty.org/ziglyph-b89d43d1e3fb01b6074bc1f7fc980324b04d26a5.tar.gz",
|
||||
"dest": "vendor/p/ziglyph-0.11.2-AAAAAHPtHwB4Mbzn1KvOV7Wpjo82NYEc_v0WC8oCLrkf",
|
||||
"sha256": "72c7bdf3e16df105235fe3fcf32c987dac49389190f4ced89b0ee31710f3f3d9"
|
||||
},
|
||||
{
|
||||
"type": "archive",
|
||||
"url": "https://deps.files.ghostty.org/zlib-1220fed0c74e1019b3ee29edae2051788b080cd96e90d56836eea857b0b966742efb.tar.gz",
|
||||
"dest": "vendor/p/N-V-__8AAB0eQwD-0MdOEBmz7intriBReIsIDNlukNVoNu6o",
|
||||
"sha256": "17e88863f3600672ab49182f217281b6fc4d3c762bde361935e436a95214d05c"
|
||||
}
|
||||
]
|
BIN
images/Ghostty.icon/Assets/Ghostty.png
Normal file
After Width: | Height: | Size: 104 KiB |
BIN
images/Ghostty.icon/Assets/Inner Bevel 6px.png
Normal file
After Width: | Height: | Size: 426 KiB |
BIN
images/Ghostty.icon/Assets/Screen Effects.png
Normal file
After Width: | Height: | Size: 90 KiB |
BIN
images/Ghostty.icon/Assets/Screen.png
Normal file
After Width: | Height: | Size: 140 KiB |
BIN
images/Ghostty.icon/Assets/gloss.png
Normal file
After Width: | Height: | Size: 3.3 KiB |
170
images/Ghostty.icon/icon.json
Normal file
@@ -0,0 +1,170 @@
|
||||
{
|
||||
"color-space-for-untagged-svg-colors" : "display-p3",
|
||||
"fill" : {
|
||||
"linear-gradient" : [
|
||||
"display-p3:0.87945,0.87945,0.87945,1.00000",
|
||||
"display-p3:0.40000,0.40000,0.40392,1.00000"
|
||||
]
|
||||
},
|
||||
"groups" : [
|
||||
{
|
||||
"blend-mode" : "normal",
|
||||
"layers" : [
|
||||
{
|
||||
"blend-mode" : "overlay",
|
||||
"fill" : {
|
||||
"linear-gradient" : [
|
||||
"srgb:1.00000,1.00000,1.00000,1.00000",
|
||||
"srgb:0.00000,0.00000,0.00000,1.00000"
|
||||
]
|
||||
},
|
||||
"hidden" : false,
|
||||
"image-name" : "gloss.png",
|
||||
"name" : "GlossTop",
|
||||
"opacity" : 0.25,
|
||||
"position" : {
|
||||
"scale" : 0.98,
|
||||
"translation-in-points" : [
|
||||
0.90625,
|
||||
-236.4609375
|
||||
]
|
||||
}
|
||||
},
|
||||
{
|
||||
"blend-mode" : "normal",
|
||||
"fill" : "automatic",
|
||||
"hidden" : false,
|
||||
"image-name" : "gloss.png",
|
||||
"name" : "gloss",
|
||||
"position" : {
|
||||
"scale" : 0.98,
|
||||
"translation-in-points" : [
|
||||
0.90625,
|
||||
-236.4609375
|
||||
]
|
||||
}
|
||||
}
|
||||
],
|
||||
"lighting" : "individual",
|
||||
"name" : "Group 4",
|
||||
"shadow" : {
|
||||
"kind" : "neutral",
|
||||
"opacity" : 0.5
|
||||
},
|
||||
"translucency" : {
|
||||
"enabled" : true,
|
||||
"value" : 0.5
|
||||
}
|
||||
},
|
||||
{
|
||||
"blend-mode" : "overlay",
|
||||
"layers" : [
|
||||
{
|
||||
"blend-mode" : "overlay",
|
||||
"fill" : "automatic",
|
||||
"glass" : false,
|
||||
"hidden" : false,
|
||||
"image-name" : "Screen Effects.png",
|
||||
"name" : "Screen Effects"
|
||||
},
|
||||
{
|
||||
"blend-mode" : "overlay",
|
||||
"fill" : "automatic",
|
||||
"glass" : true,
|
||||
"hidden" : false,
|
||||
"image-name" : "Screen Effects.png",
|
||||
"name" : "Screen Effects"
|
||||
}
|
||||
],
|
||||
"lighting" : "individual",
|
||||
"name" : "Group 3",
|
||||
"shadow" : {
|
||||
"kind" : "neutral",
|
||||
"opacity" : 0.5
|
||||
},
|
||||
"translucency" : {
|
||||
"enabled" : false,
|
||||
"value" : 0.5
|
||||
}
|
||||
},
|
||||
{
|
||||
"blur-material" : null,
|
||||
"layers" : [
|
||||
{
|
||||
"blend-mode" : "normal",
|
||||
"fill" : "automatic",
|
||||
"hidden" : false,
|
||||
"image-name" : "Ghostty.png",
|
||||
"name" : "Ghostty",
|
||||
"position" : {
|
||||
"scale" : 1,
|
||||
"translation-in-points" : [
|
||||
-185.015625,
|
||||
-143.8359375
|
||||
]
|
||||
}
|
||||
},
|
||||
{
|
||||
"blend-mode" : "normal",
|
||||
"fill" : {
|
||||
"solid" : "extended-srgb:0.00000,0.47843,1.00000,1.00000"
|
||||
},
|
||||
"glass" : true,
|
||||
"hidden" : false,
|
||||
"image-name" : "Ghostty.png",
|
||||
"name" : "GhosttyBlur",
|
||||
"position" : {
|
||||
"scale" : 1,
|
||||
"translation-in-points" : [
|
||||
-186.59375,
|
||||
-143.8359375
|
||||
]
|
||||
}
|
||||
},
|
||||
{
|
||||
"hidden" : false,
|
||||
"image-name" : "Screen.png",
|
||||
"name" : "Screen"
|
||||
}
|
||||
],
|
||||
"lighting" : "individual",
|
||||
"name" : "Group 2",
|
||||
"shadow" : {
|
||||
"kind" : "neutral",
|
||||
"opacity" : 0.5
|
||||
},
|
||||
"translucency" : {
|
||||
"enabled" : false,
|
||||
"value" : 0.5
|
||||
}
|
||||
},
|
||||
{
|
||||
"blend-mode" : "normal",
|
||||
"blur-material" : null,
|
||||
"hidden" : false,
|
||||
"layers" : [
|
||||
{
|
||||
"image-name" : "Inner Bevel 6px.png",
|
||||
"name" : "Inner Bevel 6px"
|
||||
}
|
||||
],
|
||||
"lighting" : "individual",
|
||||
"name" : "Group 1",
|
||||
"shadow" : {
|
||||
"kind" : "layer-color",
|
||||
"opacity" : 0.2
|
||||
},
|
||||
"specular" : false,
|
||||
"translucency" : {
|
||||
"enabled" : false,
|
||||
"value" : 0.5
|
||||
}
|
||||
}
|
||||
],
|
||||
"supported-platforms" : {
|
||||
"circles" : [
|
||||
"watchOS"
|
||||
],
|
||||
"squares" : "shared"
|
||||
}
|
||||
}
|
BIN
images/gnome/1024.png
Normal file
After Width: | Height: | Size: 298 KiB |
BIN
images/gnome/128.png
Normal file
After Width: | Height: | Size: 15 KiB |
BIN
images/gnome/16.png
Normal file
After Width: | Height: | Size: 572 B |
BIN
images/gnome/2048.png
Normal file
After Width: | Height: | Size: 802 KiB |
BIN
images/gnome/256.png
Normal file
After Width: | Height: | Size: 46 KiB |
BIN
images/gnome/32.png
Normal file
After Width: | Height: | Size: 1.8 KiB |
BIN
images/gnome/512.png
Normal file
After Width: | Height: | Size: 117 KiB |
BIN
images/gnome/64.png
Normal file
After Width: | Height: | Size: 4.3 KiB |
BIN
images/gnome/nightly-1024.png
Normal file
After Width: | Height: | Size: 211 KiB |
BIN
images/gnome/nightly-128.png
Normal file
After Width: | Height: | Size: 13 KiB |
BIN
images/gnome/nightly-16.png
Normal file
After Width: | Height: | Size: 653 B |
BIN
images/gnome/nightly-2048.png
Normal file
After Width: | Height: | Size: 496 KiB |
BIN
images/gnome/nightly-256.png
Normal file
After Width: | Height: | Size: 37 KiB |
BIN
images/gnome/nightly-32.png
Normal file
After Width: | Height: | Size: 1.8 KiB |
BIN
images/gnome/nightly-512.png
Normal file
After Width: | Height: | Size: 208 KiB |
BIN
images/gnome/nightly-64.png
Normal file
After Width: | Height: | Size: 4.0 KiB |
Before Width: | Height: | Size: 454 KiB After Width: | Height: | Size: 2.3 MiB |
BIN
images/icons/icon_1024@2x.png
Normal file
After Width: | Height: | Size: 2.3 MiB |
Before Width: | Height: | Size: 15 KiB After Width: | Height: | Size: 15 KiB |
Before Width: | Height: | Size: 67 KiB After Width: | Height: | Size: 232 KiB |
Before Width: | Height: | Size: 216 KiB After Width: | Height: | Size: 232 KiB |
Before Width: | Height: | Size: 216 KiB After Width: | Height: | Size: 652 KiB |
BIN
images/icons/icon_512@2x.png
Normal file
After Width: | Height: | Size: 652 KiB |
@@ -103,10 +103,30 @@ typedef enum {
|
||||
GHOSTTY_ACTION_REPEAT,
|
||||
} ghostty_input_action_e;
|
||||
|
||||
// Based on: https://www.w3.org/TR/uievents-code/
|
||||
typedef enum {
|
||||
GHOSTTY_KEY_INVALID,
|
||||
GHOSTTY_KEY_UNIDENTIFIED,
|
||||
|
||||
// a-z
|
||||
// "Writing System Keys" § 3.1.1
|
||||
GHOSTTY_KEY_BACKQUOTE,
|
||||
GHOSTTY_KEY_BACKSLASH,
|
||||
GHOSTTY_KEY_BRACKET_LEFT,
|
||||
GHOSTTY_KEY_BRACKET_RIGHT,
|
||||
GHOSTTY_KEY_COMMA,
|
||||
GHOSTTY_KEY_DIGIT_0,
|
||||
GHOSTTY_KEY_DIGIT_1,
|
||||
GHOSTTY_KEY_DIGIT_2,
|
||||
GHOSTTY_KEY_DIGIT_3,
|
||||
GHOSTTY_KEY_DIGIT_4,
|
||||
GHOSTTY_KEY_DIGIT_5,
|
||||
GHOSTTY_KEY_DIGIT_6,
|
||||
GHOSTTY_KEY_DIGIT_7,
|
||||
GHOSTTY_KEY_DIGIT_8,
|
||||
GHOSTTY_KEY_DIGIT_9,
|
||||
GHOSTTY_KEY_EQUAL,
|
||||
GHOSTTY_KEY_INTL_BACKSLASH,
|
||||
GHOSTTY_KEY_INTL_RO,
|
||||
GHOSTTY_KEY_INTL_YEN,
|
||||
GHOSTTY_KEY_A,
|
||||
GHOSTTY_KEY_B,
|
||||
GHOSTTY_KEY_C,
|
||||
@@ -133,56 +153,91 @@ typedef enum {
|
||||
GHOSTTY_KEY_X,
|
||||
GHOSTTY_KEY_Y,
|
||||
GHOSTTY_KEY_Z,
|
||||
|
||||
// numbers
|
||||
GHOSTTY_KEY_ZERO,
|
||||
GHOSTTY_KEY_ONE,
|
||||
GHOSTTY_KEY_TWO,
|
||||
GHOSTTY_KEY_THREE,
|
||||
GHOSTTY_KEY_FOUR,
|
||||
GHOSTTY_KEY_FIVE,
|
||||
GHOSTTY_KEY_SIX,
|
||||
GHOSTTY_KEY_SEVEN,
|
||||
GHOSTTY_KEY_EIGHT,
|
||||
GHOSTTY_KEY_NINE,
|
||||
|
||||
// puncuation
|
||||
GHOSTTY_KEY_SEMICOLON,
|
||||
GHOSTTY_KEY_SPACE,
|
||||
GHOSTTY_KEY_APOSTROPHE,
|
||||
GHOSTTY_KEY_COMMA,
|
||||
GHOSTTY_KEY_GRAVE_ACCENT, // `
|
||||
GHOSTTY_KEY_PERIOD,
|
||||
GHOSTTY_KEY_SLASH,
|
||||
GHOSTTY_KEY_MINUS,
|
||||
GHOSTTY_KEY_PLUS,
|
||||
GHOSTTY_KEY_EQUAL,
|
||||
GHOSTTY_KEY_LEFT_BRACKET, // [
|
||||
GHOSTTY_KEY_RIGHT_BRACKET, // ]
|
||||
GHOSTTY_KEY_BACKSLASH, // \
|
||||
GHOSTTY_KEY_PERIOD,
|
||||
GHOSTTY_KEY_QUOTE,
|
||||
GHOSTTY_KEY_SEMICOLON,
|
||||
GHOSTTY_KEY_SLASH,
|
||||
|
||||
// control
|
||||
GHOSTTY_KEY_UP,
|
||||
GHOSTTY_KEY_DOWN,
|
||||
GHOSTTY_KEY_RIGHT,
|
||||
GHOSTTY_KEY_LEFT,
|
||||
GHOSTTY_KEY_HOME,
|
||||
GHOSTTY_KEY_END,
|
||||
GHOSTTY_KEY_INSERT,
|
||||
GHOSTTY_KEY_DELETE,
|
||||
GHOSTTY_KEY_CAPS_LOCK,
|
||||
GHOSTTY_KEY_SCROLL_LOCK,
|
||||
GHOSTTY_KEY_NUM_LOCK,
|
||||
GHOSTTY_KEY_PAGE_UP,
|
||||
GHOSTTY_KEY_PAGE_DOWN,
|
||||
GHOSTTY_KEY_ESCAPE,
|
||||
GHOSTTY_KEY_ENTER,
|
||||
GHOSTTY_KEY_TAB,
|
||||
// "Functional Keys" § 3.1.2
|
||||
GHOSTTY_KEY_ALT_LEFT,
|
||||
GHOSTTY_KEY_ALT_RIGHT,
|
||||
GHOSTTY_KEY_BACKSPACE,
|
||||
GHOSTTY_KEY_PRINT_SCREEN,
|
||||
GHOSTTY_KEY_PAUSE,
|
||||
GHOSTTY_KEY_CAPS_LOCK,
|
||||
GHOSTTY_KEY_CONTEXT_MENU,
|
||||
GHOSTTY_KEY_CONTROL_LEFT,
|
||||
GHOSTTY_KEY_CONTROL_RIGHT,
|
||||
GHOSTTY_KEY_ENTER,
|
||||
GHOSTTY_KEY_META_LEFT,
|
||||
GHOSTTY_KEY_META_RIGHT,
|
||||
GHOSTTY_KEY_SHIFT_LEFT,
|
||||
GHOSTTY_KEY_SHIFT_RIGHT,
|
||||
GHOSTTY_KEY_SPACE,
|
||||
GHOSTTY_KEY_TAB,
|
||||
GHOSTTY_KEY_CONVERT,
|
||||
GHOSTTY_KEY_KANA_MODE,
|
||||
GHOSTTY_KEY_NON_CONVERT,
|
||||
|
||||
// function keys
|
||||
// "Control Pad Section" § 3.2
|
||||
GHOSTTY_KEY_DELETE,
|
||||
GHOSTTY_KEY_END,
|
||||
GHOSTTY_KEY_HELP,
|
||||
GHOSTTY_KEY_HOME,
|
||||
GHOSTTY_KEY_INSERT,
|
||||
GHOSTTY_KEY_PAGE_DOWN,
|
||||
GHOSTTY_KEY_PAGE_UP,
|
||||
|
||||
// "Arrow Pad Section" § 3.3
|
||||
GHOSTTY_KEY_ARROW_DOWN,
|
||||
GHOSTTY_KEY_ARROW_LEFT,
|
||||
GHOSTTY_KEY_ARROW_RIGHT,
|
||||
GHOSTTY_KEY_ARROW_UP,
|
||||
|
||||
// "Numpad Section" § 3.4
|
||||
GHOSTTY_KEY_NUM_LOCK,
|
||||
GHOSTTY_KEY_NUMPAD_0,
|
||||
GHOSTTY_KEY_NUMPAD_1,
|
||||
GHOSTTY_KEY_NUMPAD_2,
|
||||
GHOSTTY_KEY_NUMPAD_3,
|
||||
GHOSTTY_KEY_NUMPAD_4,
|
||||
GHOSTTY_KEY_NUMPAD_5,
|
||||
GHOSTTY_KEY_NUMPAD_6,
|
||||
GHOSTTY_KEY_NUMPAD_7,
|
||||
GHOSTTY_KEY_NUMPAD_8,
|
||||
GHOSTTY_KEY_NUMPAD_9,
|
||||
GHOSTTY_KEY_NUMPAD_ADD,
|
||||
GHOSTTY_KEY_NUMPAD_BACKSPACE,
|
||||
GHOSTTY_KEY_NUMPAD_CLEAR,
|
||||
GHOSTTY_KEY_NUMPAD_CLEAR_ENTRY,
|
||||
GHOSTTY_KEY_NUMPAD_COMMA,
|
||||
GHOSTTY_KEY_NUMPAD_DECIMAL,
|
||||
GHOSTTY_KEY_NUMPAD_DIVIDE,
|
||||
GHOSTTY_KEY_NUMPAD_ENTER,
|
||||
GHOSTTY_KEY_NUMPAD_EQUAL,
|
||||
GHOSTTY_KEY_NUMPAD_MEMORY_ADD,
|
||||
GHOSTTY_KEY_NUMPAD_MEMORY_CLEAR,
|
||||
GHOSTTY_KEY_NUMPAD_MEMORY_RECALL,
|
||||
GHOSTTY_KEY_NUMPAD_MEMORY_STORE,
|
||||
GHOSTTY_KEY_NUMPAD_MEMORY_SUBTRACT,
|
||||
GHOSTTY_KEY_NUMPAD_MULTIPLY,
|
||||
GHOSTTY_KEY_NUMPAD_PAREN_LEFT,
|
||||
GHOSTTY_KEY_NUMPAD_PAREN_RIGHT,
|
||||
GHOSTTY_KEY_NUMPAD_SUBTRACT,
|
||||
GHOSTTY_KEY_NUMPAD_SEPARATOR,
|
||||
GHOSTTY_KEY_NUMPAD_UP,
|
||||
GHOSTTY_KEY_NUMPAD_DOWN,
|
||||
GHOSTTY_KEY_NUMPAD_RIGHT,
|
||||
GHOSTTY_KEY_NUMPAD_LEFT,
|
||||
GHOSTTY_KEY_NUMPAD_BEGIN,
|
||||
GHOSTTY_KEY_NUMPAD_HOME,
|
||||
GHOSTTY_KEY_NUMPAD_END,
|
||||
GHOSTTY_KEY_NUMPAD_INSERT,
|
||||
GHOSTTY_KEY_NUMPAD_DELETE,
|
||||
GHOSTTY_KEY_NUMPAD_PAGE_UP,
|
||||
GHOSTTY_KEY_NUMPAD_PAGE_DOWN,
|
||||
|
||||
// "Function Section" § 3.5
|
||||
GHOSTTY_KEY_ESCAPE,
|
||||
GHOSTTY_KEY_F1,
|
||||
GHOSTTY_KEY_F2,
|
||||
GHOSTTY_KEY_F3,
|
||||
@@ -208,59 +263,53 @@ typedef enum {
|
||||
GHOSTTY_KEY_F23,
|
||||
GHOSTTY_KEY_F24,
|
||||
GHOSTTY_KEY_F25,
|
||||
GHOSTTY_KEY_FN,
|
||||
GHOSTTY_KEY_FN_LOCK,
|
||||
GHOSTTY_KEY_PRINT_SCREEN,
|
||||
GHOSTTY_KEY_SCROLL_LOCK,
|
||||
GHOSTTY_KEY_PAUSE,
|
||||
|
||||
// keypad
|
||||
GHOSTTY_KEY_KP_0,
|
||||
GHOSTTY_KEY_KP_1,
|
||||
GHOSTTY_KEY_KP_2,
|
||||
GHOSTTY_KEY_KP_3,
|
||||
GHOSTTY_KEY_KP_4,
|
||||
GHOSTTY_KEY_KP_5,
|
||||
GHOSTTY_KEY_KP_6,
|
||||
GHOSTTY_KEY_KP_7,
|
||||
GHOSTTY_KEY_KP_8,
|
||||
GHOSTTY_KEY_KP_9,
|
||||
GHOSTTY_KEY_KP_DECIMAL,
|
||||
GHOSTTY_KEY_KP_DIVIDE,
|
||||
GHOSTTY_KEY_KP_MULTIPLY,
|
||||
GHOSTTY_KEY_KP_SUBTRACT,
|
||||
GHOSTTY_KEY_KP_ADD,
|
||||
GHOSTTY_KEY_KP_ENTER,
|
||||
GHOSTTY_KEY_KP_EQUAL,
|
||||
GHOSTTY_KEY_KP_SEPARATOR,
|
||||
GHOSTTY_KEY_KP_LEFT,
|
||||
GHOSTTY_KEY_KP_RIGHT,
|
||||
GHOSTTY_KEY_KP_UP,
|
||||
GHOSTTY_KEY_KP_DOWN,
|
||||
GHOSTTY_KEY_KP_PAGE_UP,
|
||||
GHOSTTY_KEY_KP_PAGE_DOWN,
|
||||
GHOSTTY_KEY_KP_HOME,
|
||||
GHOSTTY_KEY_KP_END,
|
||||
GHOSTTY_KEY_KP_INSERT,
|
||||
GHOSTTY_KEY_KP_DELETE,
|
||||
GHOSTTY_KEY_KP_BEGIN,
|
||||
// "Media Keys" § 3.6
|
||||
GHOSTTY_KEY_BROWSER_BACK,
|
||||
GHOSTTY_KEY_BROWSER_FAVORITES,
|
||||
GHOSTTY_KEY_BROWSER_FORWARD,
|
||||
GHOSTTY_KEY_BROWSER_HOME,
|
||||
GHOSTTY_KEY_BROWSER_REFRESH,
|
||||
GHOSTTY_KEY_BROWSER_SEARCH,
|
||||
GHOSTTY_KEY_BROWSER_STOP,
|
||||
GHOSTTY_KEY_EJECT,
|
||||
GHOSTTY_KEY_LAUNCH_APP_1,
|
||||
GHOSTTY_KEY_LAUNCH_APP_2,
|
||||
GHOSTTY_KEY_LAUNCH_MAIL,
|
||||
GHOSTTY_KEY_MEDIA_PLAY_PAUSE,
|
||||
GHOSTTY_KEY_MEDIA_SELECT,
|
||||
GHOSTTY_KEY_MEDIA_STOP,
|
||||
GHOSTTY_KEY_MEDIA_TRACK_NEXT,
|
||||
GHOSTTY_KEY_MEDIA_TRACK_PREVIOUS,
|
||||
GHOSTTY_KEY_POWER,
|
||||
GHOSTTY_KEY_SLEEP,
|
||||
GHOSTTY_KEY_AUDIO_VOLUME_DOWN,
|
||||
GHOSTTY_KEY_AUDIO_VOLUME_MUTE,
|
||||
GHOSTTY_KEY_AUDIO_VOLUME_UP,
|
||||
GHOSTTY_KEY_WAKE_UP,
|
||||
|
||||
// modifiers
|
||||
GHOSTTY_KEY_LEFT_SHIFT,
|
||||
GHOSTTY_KEY_LEFT_CONTROL,
|
||||
GHOSTTY_KEY_LEFT_ALT,
|
||||
GHOSTTY_KEY_LEFT_SUPER,
|
||||
GHOSTTY_KEY_RIGHT_SHIFT,
|
||||
GHOSTTY_KEY_RIGHT_CONTROL,
|
||||
GHOSTTY_KEY_RIGHT_ALT,
|
||||
GHOSTTY_KEY_RIGHT_SUPER,
|
||||
// "Legacy, Non-standard, and Special Keys" § 3.7
|
||||
GHOSTTY_KEY_COPY,
|
||||
GHOSTTY_KEY_CUT,
|
||||
GHOSTTY_KEY_PASTE,
|
||||
} ghostty_input_key_e;
|
||||
|
||||
typedef struct {
|
||||
ghostty_input_action_e action;
|
||||
ghostty_input_mods_e mods;
|
||||
ghostty_input_mods_e consumed_mods;
|
||||
uint32_t keycode;
|
||||
const char* text;
|
||||
uint32_t unshifted_codepoint;
|
||||
bool composing;
|
||||
} ghostty_input_key_s;
|
||||
|
||||
typedef enum {
|
||||
GHOSTTY_TRIGGER_TRANSLATED,
|
||||
GHOSTTY_TRIGGER_PHYSICAL,
|
||||
GHOSTTY_TRIGGER_UNICODE,
|
||||
} ghostty_input_trigger_tag_e;
|
||||
@@ -277,6 +326,13 @@ typedef struct {
|
||||
ghostty_input_mods_e mods;
|
||||
} ghostty_input_trigger_s;
|
||||
|
||||
typedef struct {
|
||||
const char* action_key;
|
||||
const char* action;
|
||||
const char* title;
|
||||
const char* description;
|
||||
} ghostty_command_s;
|
||||
|
||||
typedef enum {
|
||||
GHOSTTY_BUILD_MODE_DEBUG,
|
||||
GHOSTTY_BUILD_MODE_RELEASE_SAFE,
|
||||
@@ -294,13 +350,51 @@ typedef struct {
|
||||
const char* message;
|
||||
} ghostty_diagnostic_s;
|
||||
|
||||
typedef struct {
|
||||
const char* ptr;
|
||||
uintptr_t len;
|
||||
} ghostty_string_s;
|
||||
|
||||
typedef struct {
|
||||
double tl_px_x;
|
||||
double tl_px_y;
|
||||
uint32_t offset_start;
|
||||
uint32_t offset_len;
|
||||
const char* text;
|
||||
uintptr_t text_len;
|
||||
} ghostty_text_s;
|
||||
|
||||
typedef enum {
|
||||
GHOSTTY_POINT_ACTIVE,
|
||||
GHOSTTY_POINT_VIEWPORT,
|
||||
GHOSTTY_POINT_SCREEN,
|
||||
GHOSTTY_POINT_SURFACE,
|
||||
} ghostty_point_tag_e;
|
||||
|
||||
typedef enum {
|
||||
GHOSTTY_POINT_COORD_EXACT,
|
||||
GHOSTTY_POINT_COORD_TOP_LEFT,
|
||||
GHOSTTY_POINT_COORD_BOTTOM_RIGHT,
|
||||
} ghostty_point_coord_e;
|
||||
|
||||
typedef struct {
|
||||
ghostty_point_tag_e tag;
|
||||
ghostty_point_coord_e coord;
|
||||
uint32_t x;
|
||||
uint32_t y;
|
||||
} ghostty_point_s;
|
||||
|
||||
typedef struct {
|
||||
ghostty_point_s top_left;
|
||||
ghostty_point_s bottom_right;
|
||||
bool rectangle;
|
||||
} ghostty_selection_s;
|
||||
|
||||
typedef struct {
|
||||
const char* key;
|
||||
const char* value;
|
||||
} ghostty_env_var_s;
|
||||
|
||||
typedef struct {
|
||||
void* nsview;
|
||||
} ghostty_platform_macos_s;
|
||||
@@ -322,6 +416,9 @@ typedef struct {
|
||||
float font_size;
|
||||
const char* working_directory;
|
||||
const char* command;
|
||||
ghostty_env_var_s* env_vars;
|
||||
size_t env_var_count;
|
||||
const char* initial_input;
|
||||
} ghostty_surface_config_s;
|
||||
|
||||
typedef struct {
|
||||
@@ -348,6 +445,33 @@ typedef struct {
|
||||
size_t len;
|
||||
} ghostty_config_color_list_s;
|
||||
|
||||
// config.Palette
|
||||
typedef struct {
|
||||
ghostty_config_color_s colors[256];
|
||||
} ghostty_config_palette_s;
|
||||
|
||||
// config.QuickTerminalSize
|
||||
typedef enum {
|
||||
GHOSTTY_QUICK_TERMINAL_SIZE_NONE,
|
||||
GHOSTTY_QUICK_TERMINAL_SIZE_PERCENTAGE,
|
||||
GHOSTTY_QUICK_TERMINAL_SIZE_PIXELS,
|
||||
} ghostty_quick_terminal_size_tag_e;
|
||||
|
||||
typedef union {
|
||||
float percentage;
|
||||
uint32_t pixels;
|
||||
} ghostty_quick_terminal_size_value_u;
|
||||
|
||||
typedef struct {
|
||||
ghostty_quick_terminal_size_tag_e tag;
|
||||
ghostty_quick_terminal_size_value_u value;
|
||||
} ghostty_quick_terminal_size_s;
|
||||
|
||||
typedef struct {
|
||||
ghostty_quick_terminal_size_s primary;
|
||||
ghostty_quick_terminal_size_s secondary;
|
||||
} ghostty_config_quick_terminal_size_s;
|
||||
|
||||
// apprt.Target.Key
|
||||
typedef enum {
|
||||
GHOSTTY_TARGET_APP,
|
||||
@@ -412,8 +536,16 @@ typedef enum {
|
||||
GHOSTTY_FULLSCREEN_NATIVE,
|
||||
GHOSTTY_FULLSCREEN_NON_NATIVE,
|
||||
GHOSTTY_FULLSCREEN_NON_NATIVE_VISIBLE_MENU,
|
||||
GHOSTTY_FULLSCREEN_NON_NATIVE_PADDED_NOTCH,
|
||||
} ghostty_action_fullscreen_e;
|
||||
|
||||
// apprt.action.FloatWindow
|
||||
typedef enum {
|
||||
GHOSTTY_FLOAT_WINDOW_ON,
|
||||
GHOSTTY_FLOAT_WINDOW_OFF,
|
||||
GHOSTTY_FLOAT_WINDOW_TOGGLE,
|
||||
} ghostty_action_float_window_e;
|
||||
|
||||
// apprt.action.SecureInput
|
||||
typedef enum {
|
||||
GHOSTTY_SECURE_INPUT_ON,
|
||||
@@ -557,6 +689,48 @@ typedef struct {
|
||||
bool soft;
|
||||
} ghostty_action_reload_config_s;
|
||||
|
||||
// apprt.action.OpenUrlKind
|
||||
typedef enum {
|
||||
GHOSTTY_ACTION_OPEN_URL_KIND_UNKNOWN,
|
||||
GHOSTTY_ACTION_OPEN_URL_KIND_TEXT,
|
||||
} ghostty_action_open_url_kind_e;
|
||||
|
||||
// apprt.action.OpenUrl.C
|
||||
typedef struct {
|
||||
ghostty_action_open_url_kind_e kind;
|
||||
const char* url;
|
||||
uintptr_t len;
|
||||
} ghostty_action_open_url_s;
|
||||
|
||||
// apprt.action.CloseTabMode
|
||||
typedef enum {
|
||||
GHOSTTY_ACTION_CLOSE_TAB_MODE_THIS,
|
||||
GHOSTTY_ACTION_CLOSE_TAB_MODE_OTHER,
|
||||
} ghostty_action_close_tab_mode_e;
|
||||
|
||||
// apprt.surface.Message.ChildExited
|
||||
typedef struct {
|
||||
uint32_t exit_code;
|
||||
uint64_t timetime_ms;
|
||||
} ghostty_surface_message_childexited_s;
|
||||
|
||||
// terminal.osc.Command.ProgressReport.State
|
||||
typedef enum {
|
||||
GHOSTTY_PROGRESS_STATE_REMOVE,
|
||||
GHOSTTY_PROGRESS_STATE_SET,
|
||||
GHOSTTY_PROGRESS_STATE_ERROR,
|
||||
GHOSTTY_PROGRESS_STATE_INDETERMINATE,
|
||||
GHOSTTY_PROGRESS_STATE_PAUSE,
|
||||
} ghostty_terminal_osc_command_progressreport_state_e;
|
||||
|
||||
// terminal.osc.Command.ProgressReport.C
|
||||
typedef struct {
|
||||
ghostty_terminal_osc_command_progressreport_state_e state;
|
||||
// -1 if no progress was reported, otherwise 0-100 indicating percent
|
||||
// completeness.
|
||||
int8_t progress;
|
||||
} ghostty_terminal_osc_command_progressreport_s;
|
||||
|
||||
// apprt.Action.Key
|
||||
typedef enum {
|
||||
GHOSTTY_ACTION_QUIT,
|
||||
@@ -570,6 +744,7 @@ typedef enum {
|
||||
GHOSTTY_ACTION_TOGGLE_TAB_OVERVIEW,
|
||||
GHOSTTY_ACTION_TOGGLE_WINDOW_DECORATIONS,
|
||||
GHOSTTY_ACTION_TOGGLE_QUICK_TERMINAL,
|
||||
GHOSTTY_ACTION_TOGGLE_COMMAND_PALETTE,
|
||||
GHOSTTY_ACTION_TOGGLE_VISIBILITY,
|
||||
GHOSTTY_ACTION_MOVE_TAB,
|
||||
GHOSTTY_ACTION_GOTO_TAB,
|
||||
@@ -579,12 +754,16 @@ typedef enum {
|
||||
GHOSTTY_ACTION_TOGGLE_SPLIT_ZOOM,
|
||||
GHOSTTY_ACTION_PRESENT_TERMINAL,
|
||||
GHOSTTY_ACTION_SIZE_LIMIT,
|
||||
GHOSTTY_ACTION_RESET_WINDOW_SIZE,
|
||||
GHOSTTY_ACTION_INITIAL_SIZE,
|
||||
GHOSTTY_ACTION_CELL_SIZE,
|
||||
GHOSTTY_ACTION_RENDER,
|
||||
GHOSTTY_ACTION_INSPECTOR,
|
||||
GHOSTTY_ACTION_SHOW_GTK_INSPECTOR,
|
||||
GHOSTTY_ACTION_RENDER_INSPECTOR,
|
||||
GHOSTTY_ACTION_DESKTOP_NOTIFICATION,
|
||||
GHOSTTY_ACTION_SET_TITLE,
|
||||
GHOSTTY_ACTION_PROMPT_TITLE,
|
||||
GHOSTTY_ACTION_PWD,
|
||||
GHOSTTY_ACTION_MOUSE_SHAPE,
|
||||
GHOSTTY_ACTION_MOUSE_VISIBILITY,
|
||||
@@ -592,11 +771,21 @@ typedef enum {
|
||||
GHOSTTY_ACTION_RENDERER_HEALTH,
|
||||
GHOSTTY_ACTION_OPEN_CONFIG,
|
||||
GHOSTTY_ACTION_QUIT_TIMER,
|
||||
GHOSTTY_ACTION_FLOAT_WINDOW,
|
||||
GHOSTTY_ACTION_SECURE_INPUT,
|
||||
GHOSTTY_ACTION_KEY_SEQUENCE,
|
||||
GHOSTTY_ACTION_COLOR_CHANGE,
|
||||
GHOSTTY_ACTION_RELOAD_CONFIG,
|
||||
GHOSTTY_ACTION_CONFIG_CHANGE,
|
||||
GHOSTTY_ACTION_CLOSE_WINDOW,
|
||||
GHOSTTY_ACTION_RING_BELL,
|
||||
GHOSTTY_ACTION_UNDO,
|
||||
GHOSTTY_ACTION_REDO,
|
||||
GHOSTTY_ACTION_CHECK_FOR_UPDATES,
|
||||
GHOSTTY_ACTION_OPEN_URL,
|
||||
GHOSTTY_ACTION_SHOW_CHILD_EXITED,
|
||||
GHOSTTY_ACTION_PROGRESS_REPORT,
|
||||
GHOSTTY_ACTION_SHOW_ON_SCREEN_KEYBOARD,
|
||||
} ghostty_action_tag_e;
|
||||
|
||||
typedef union {
|
||||
@@ -618,11 +807,16 @@ typedef union {
|
||||
ghostty_action_mouse_over_link_s mouse_over_link;
|
||||
ghostty_action_renderer_health_e renderer_health;
|
||||
ghostty_action_quit_timer_e quit_timer;
|
||||
ghostty_action_float_window_e float_window;
|
||||
ghostty_action_secure_input_e secure_input;
|
||||
ghostty_action_key_sequence_s key_sequence;
|
||||
ghostty_action_color_change_s color_change;
|
||||
ghostty_action_reload_config_s reload_config;
|
||||
ghostty_action_config_change_s config_change;
|
||||
ghostty_action_open_url_s open_url;
|
||||
ghostty_action_close_tab_mode_e close_tab_mode;
|
||||
ghostty_surface_message_childexited_s child_exited;
|
||||
ghostty_terminal_osc_command_progressreport_s progress_report;
|
||||
} ghostty_action_u;
|
||||
|
||||
typedef struct {
|
||||
@@ -644,7 +838,7 @@ typedef void (*ghostty_runtime_write_clipboard_cb)(void*,
|
||||
ghostty_clipboard_e,
|
||||
bool);
|
||||
typedef void (*ghostty_runtime_close_surface_cb)(void*, bool);
|
||||
typedef void (*ghostty_runtime_action_cb)(ghostty_app_t,
|
||||
typedef bool (*ghostty_runtime_action_cb)(ghostty_app_t,
|
||||
ghostty_target_s,
|
||||
ghostty_action_s);
|
||||
|
||||
@@ -659,12 +853,44 @@ typedef struct {
|
||||
ghostty_runtime_close_surface_cb close_surface_cb;
|
||||
} ghostty_runtime_config_s;
|
||||
|
||||
// apprt.ipc.Target.Key
|
||||
typedef enum {
|
||||
GHOSTTY_IPC_TARGET_CLASS,
|
||||
GHOSTTY_IPC_TARGET_DETECT,
|
||||
} ghostty_ipc_target_tag_e;
|
||||
|
||||
typedef union {
|
||||
char *klass;
|
||||
} ghostty_ipc_target_u;
|
||||
|
||||
typedef struct {
|
||||
ghostty_ipc_target_tag_e tag;
|
||||
ghostty_ipc_target_u target;
|
||||
} chostty_ipc_target_s;
|
||||
|
||||
// apprt.ipc.Action.NewWindow
|
||||
typedef struct {
|
||||
// This should be a null terminated list of strings.
|
||||
const char **arguments;
|
||||
} ghostty_ipc_action_new_window_s;
|
||||
|
||||
typedef union {
|
||||
ghostty_ipc_action_new_window_s new_window;
|
||||
} ghostty_ipc_action_u;
|
||||
|
||||
// apprt.ipc.Action.Key
|
||||
typedef enum {
|
||||
GHOSTTY_IPC_ACTION_NEW_WINDOW,
|
||||
} ghostty_ipc_action_tag_e;
|
||||
|
||||
//-------------------------------------------------------------------
|
||||
// Published API
|
||||
|
||||
int ghostty_init(void);
|
||||
void ghostty_cli_main(uintptr_t, char**);
|
||||
int ghostty_init(uintptr_t, char**);
|
||||
void ghostty_cli_try_action(void);
|
||||
ghostty_info_s ghostty_info(void);
|
||||
const char* ghostty_translate(const char*);
|
||||
void ghostty_string_free(ghostty_string_s);
|
||||
|
||||
ghostty_config_t ghostty_config_new();
|
||||
void ghostty_config_free(ghostty_config_t);
|
||||
@@ -679,7 +905,7 @@ ghostty_input_trigger_s ghostty_config_trigger(ghostty_config_t,
|
||||
uintptr_t);
|
||||
uint32_t ghostty_config_diagnostics_count(ghostty_config_t);
|
||||
ghostty_diagnostic_s ghostty_config_get_diagnostic(ghostty_config_t, uint32_t);
|
||||
void ghostty_config_open();
|
||||
ghostty_string_s ghostty_config_open_path(void);
|
||||
|
||||
ghostty_app_t ghostty_app_new(const ghostty_runtime_config_s*,
|
||||
ghostty_config_t);
|
||||
@@ -698,13 +924,15 @@ void ghostty_app_set_color_scheme(ghostty_app_t, ghostty_color_scheme_e);
|
||||
|
||||
ghostty_surface_config_s ghostty_surface_config_new();
|
||||
|
||||
ghostty_surface_t ghostty_surface_new(ghostty_app_t, ghostty_surface_config_s*);
|
||||
ghostty_surface_t ghostty_surface_new(ghostty_app_t,
|
||||
const ghostty_surface_config_s*);
|
||||
void ghostty_surface_free(ghostty_surface_t);
|
||||
void* ghostty_surface_userdata(ghostty_surface_t);
|
||||
ghostty_app_t ghostty_surface_app(ghostty_surface_t);
|
||||
ghostty_surface_config_s ghostty_surface_inherited_config(ghostty_surface_t);
|
||||
void ghostty_surface_update_config(ghostty_surface_t, ghostty_config_t);
|
||||
bool ghostty_surface_needs_confirm_quit(ghostty_surface_t);
|
||||
bool ghostty_surface_process_exited(ghostty_surface_t);
|
||||
void ghostty_surface_refresh(ghostty_surface_t);
|
||||
void ghostty_surface_draw(ghostty_surface_t);
|
||||
void ghostty_surface_set_content_scale(ghostty_surface_t, double, double);
|
||||
@@ -716,9 +944,11 @@ void ghostty_surface_set_color_scheme(ghostty_surface_t,
|
||||
ghostty_color_scheme_e);
|
||||
ghostty_input_mods_e ghostty_surface_key_translation_mods(ghostty_surface_t,
|
||||
ghostty_input_mods_e);
|
||||
void ghostty_surface_commands(ghostty_surface_t, ghostty_command_s**, size_t*);
|
||||
bool ghostty_surface_key(ghostty_surface_t, ghostty_input_key_s);
|
||||
bool ghostty_surface_key_is_binding(ghostty_surface_t, ghostty_input_key_s);
|
||||
void ghostty_surface_text(ghostty_surface_t, const char*, uintptr_t);
|
||||
void ghostty_surface_preedit(ghostty_surface_t, const char*, uintptr_t);
|
||||
bool ghostty_surface_mouse_captured(ghostty_surface_t);
|
||||
bool ghostty_surface_mouse_button(ghostty_surface_t,
|
||||
ghostty_input_mouse_state_e,
|
||||
@@ -748,16 +978,16 @@ void ghostty_surface_complete_clipboard_request(ghostty_surface_t,
|
||||
void*,
|
||||
bool);
|
||||
bool ghostty_surface_has_selection(ghostty_surface_t);
|
||||
uintptr_t ghostty_surface_selection(ghostty_surface_t, char*, uintptr_t);
|
||||
bool ghostty_surface_read_selection(ghostty_surface_t, ghostty_text_s*);
|
||||
bool ghostty_surface_read_text(ghostty_surface_t,
|
||||
ghostty_selection_s,
|
||||
ghostty_text_s*);
|
||||
void ghostty_surface_free_text(ghostty_surface_t, ghostty_text_s*);
|
||||
|
||||
#ifdef __APPLE__
|
||||
void ghostty_surface_set_display_id(ghostty_surface_t, uint32_t);
|
||||
void* ghostty_surface_quicklook_font(ghostty_surface_t);
|
||||
uintptr_t ghostty_surface_quicklook_word(ghostty_surface_t,
|
||||
char*,
|
||||
uintptr_t,
|
||||
ghostty_selection_s*);
|
||||
bool ghostty_surface_selection_info(ghostty_surface_t, ghostty_selection_s*);
|
||||
bool ghostty_surface_quicklook_word(ghostty_surface_t, ghostty_text_s*);
|
||||
#endif
|
||||
|
||||
ghostty_inspector_t ghostty_surface_inspector(ghostty_surface_t);
|
||||
@@ -790,6 +1020,9 @@ bool ghostty_inspector_metal_shutdown(ghostty_inspector_t);
|
||||
// Don't use these unless you know what you're doing.
|
||||
void ghostty_set_window_background_blur(ghostty_app_t, void*);
|
||||
|
||||
// Benchmark API, if available.
|
||||
bool ghostty_benchmark_cli(const char*, const char*);
|
||||
|
||||
#ifdef __cplusplus
|
||||
}
|
||||
#endif
|
||||
|
12
macos/Assets.xcassets/Alternate Icons/BlueprintImage.imageset/Contents.json
vendored
Normal file
@@ -0,0 +1,12 @@
|
||||
{
|
||||
"images" : [
|
||||
{
|
||||
"filename" : "macOS-AppIcon-1024px.png",
|
||||
"idiom" : "universal"
|
||||
}
|
||||
],
|
||||
"info" : {
|
||||
"author" : "xcode",
|
||||
"version" : 1
|
||||
}
|
||||
}
|
BIN
macos/Assets.xcassets/Alternate Icons/BlueprintImage.imageset/macOS-AppIcon-1024px.png
vendored
Normal file
After Width: | Height: | Size: 434 KiB |
12
macos/Assets.xcassets/Alternate Icons/ChalkboardImage.imageset/Contents.json
vendored
Normal file
@@ -0,0 +1,12 @@
|
||||
{
|
||||
"images" : [
|
||||
{
|
||||
"filename" : "macOS-AppIcon-1024px.png",
|
||||
"idiom" : "universal"
|
||||
}
|
||||
],
|
||||
"info" : {
|
||||
"author" : "xcode",
|
||||
"version" : 1
|
||||
}
|
||||
}
|
BIN
macos/Assets.xcassets/Alternate Icons/ChalkboardImage.imageset/macOS-AppIcon-1024px.png
vendored
Normal file
After Width: | Height: | Size: 576 KiB |
6
macos/Assets.xcassets/Alternate Icons/Contents.json
Normal file
@@ -0,0 +1,6 @@
|
||||
{
|
||||
"info" : {
|
||||
"author" : "xcode",
|
||||
"version" : 1
|
||||
}
|
||||
}
|
12
macos/Assets.xcassets/Alternate Icons/GlassImage.imageset/Contents.json
vendored
Normal file
@@ -0,0 +1,12 @@
|
||||
{
|
||||
"images" : [
|
||||
{
|
||||
"filename" : "macOS-AppIcon-1024px.png",
|
||||
"idiom" : "universal"
|
||||
}
|
||||
],
|
||||
"info" : {
|
||||
"author" : "xcode",
|
||||
"version" : 1
|
||||
}
|
||||
}
|
BIN
macos/Assets.xcassets/Alternate Icons/GlassImage.imageset/macOS-AppIcon-1024px.png
vendored
Normal file
After Width: | Height: | Size: 515 KiB |
12
macos/Assets.xcassets/Alternate Icons/HolographicImage.imageset/Contents.json
vendored
Normal file
@@ -0,0 +1,12 @@
|
||||
{
|
||||
"images" : [
|
||||
{
|
||||
"filename" : "macOS-AppIcon-1024px.png",
|
||||
"idiom" : "universal"
|
||||
}
|
||||
],
|
||||
"info" : {
|
||||
"author" : "xcode",
|
||||
"version" : 1
|
||||
}
|
||||
}
|
BIN
macos/Assets.xcassets/Alternate Icons/HolographicImage.imageset/macOS-AppIcon-1024px.png
vendored
Normal file
After Width: | Height: | Size: 588 KiB |
12
macos/Assets.xcassets/Alternate Icons/MicrochipImage.imageset/Contents.json
vendored
Normal file
@@ -0,0 +1,12 @@
|
||||
{
|
||||
"images" : [
|
||||
{
|
||||
"filename" : "macOS-AppIcon-1024px.png",
|
||||
"idiom" : "universal"
|
||||
}
|
||||
],
|
||||
"info" : {
|
||||
"author" : "xcode",
|
||||
"version" : 1
|
||||
}
|
||||
}
|
BIN
macos/Assets.xcassets/Alternate Icons/MicrochipImage.imageset/macOS-AppIcon-1024px.png
vendored
Normal file
After Width: | Height: | Size: 630 KiB |
12
macos/Assets.xcassets/Alternate Icons/PaperImage.imageset/Contents.json
vendored
Normal file
@@ -0,0 +1,12 @@
|
||||
{
|
||||
"images" : [
|
||||
{
|
||||
"filename" : "macOS-AppIcon-1024px.png",
|
||||
"idiom" : "universal"
|
||||
}
|
||||
],
|
||||
"info" : {
|
||||
"author" : "xcode",
|
||||
"version" : 1
|
||||
}
|
||||
}
|
BIN
macos/Assets.xcassets/Alternate Icons/PaperImage.imageset/macOS-AppIcon-1024px.png
vendored
Normal file
After Width: | Height: | Size: 335 KiB |
12
macos/Assets.xcassets/Alternate Icons/RetroImage.imageset/Contents.json
vendored
Normal file
@@ -0,0 +1,12 @@
|
||||
{
|
||||
"images" : [
|
||||
{
|
||||
"filename" : "macOS-AppIcon-1024px.png",
|
||||
"idiom" : "universal"
|
||||
}
|
||||
],
|
||||
"info" : {
|
||||
"author" : "xcode",
|
||||
"version" : 1
|
||||
}
|
||||
}
|
BIN
macos/Assets.xcassets/Alternate Icons/RetroImage.imageset/macOS-AppIcon-1024px.png
vendored
Normal file
After Width: | Height: | Size: 1.0 MiB |
12
macos/Assets.xcassets/Alternate Icons/XrayImage.imageset/Contents.json
vendored
Normal file
@@ -0,0 +1,12 @@
|
||||
{
|
||||
"images" : [
|
||||
{
|
||||
"filename" : "macOS-AppIcon-1024px.png",
|
||||
"idiom" : "universal"
|
||||
}
|
||||
],
|
||||
"info" : {
|
||||
"author" : "xcode",
|
||||
"version" : 1
|
||||
}
|
||||
}
|
BIN
macos/Assets.xcassets/Alternate Icons/XrayImage.imageset/macOS-AppIcon-1024px.png
vendored
Normal file
After Width: | Height: | Size: 443 KiB |
@@ -1,74 +0,0 @@
|
||||
{
|
||||
"images" : [
|
||||
{
|
||||
"filename" : "macOS-AppIcon-1024px.png",
|
||||
"idiom" : "universal",
|
||||
"platform" : "ios",
|
||||
"size" : "1024x1024"
|
||||
},
|
||||
{
|
||||
"filename" : "macOS-AppIcon-16px-16pt@1x.png",
|
||||
"idiom" : "mac",
|
||||
"scale" : "1x",
|
||||
"size" : "16x16"
|
||||
},
|
||||
{
|
||||
"filename" : "macOS-AppIcon-32px-16pt@2x.png",
|
||||
"idiom" : "mac",
|
||||
"scale" : "2x",
|
||||
"size" : "16x16"
|
||||
},
|
||||
{
|
||||
"filename" : "macOS-AppIcon-32px-32pt@1x.png",
|
||||
"idiom" : "mac",
|
||||
"scale" : "1x",
|
||||
"size" : "32x32"
|
||||
},
|
||||
{
|
||||
"filename" : "macOS-AppIcon-64px-32pt@2x.png",
|
||||
"idiom" : "mac",
|
||||
"scale" : "2x",
|
||||
"size" : "32x32"
|
||||
},
|
||||
{
|
||||
"filename" : "macOS-AppIcon-128px-128pt@1x.png",
|
||||
"idiom" : "mac",
|
||||
"scale" : "1x",
|
||||
"size" : "128x128"
|
||||
},
|
||||
{
|
||||
"filename" : "macOS-AppIcon-256px-128pt@2x.png",
|
||||
"idiom" : "mac",
|
||||
"scale" : "2x",
|
||||
"size" : "128x128"
|
||||
},
|
||||
{
|
||||
"filename" : "macOS-AppIcon-256px-128pt@2x 1.png",
|
||||
"idiom" : "mac",
|
||||
"scale" : "1x",
|
||||
"size" : "256x256"
|
||||
},
|
||||
{
|
||||
"filename" : "macOS-AppIcon-512px-256pt@2x.png",
|
||||
"idiom" : "mac",
|
||||
"scale" : "2x",
|
||||
"size" : "256x256"
|
||||
},
|
||||
{
|
||||
"filename" : "macOS-AppIcon-512px.png",
|
||||
"idiom" : "mac",
|
||||
"scale" : "1x",
|
||||
"size" : "512x512"
|
||||
},
|
||||
{
|
||||
"filename" : "macOS-AppIcon-1024px 1.png",
|
||||
"idiom" : "mac",
|
||||
"scale" : "2x",
|
||||
"size" : "512x512"
|
||||
}
|
||||
],
|
||||
"info" : {
|
||||
"author" : "xcode",
|
||||
"version" : 1
|
||||
}
|
||||
}
|
Before Width: | Height: | Size: 454 KiB |
Before Width: | Height: | Size: 454 KiB |
Before Width: | Height: | Size: 15 KiB |
Before Width: | Height: | Size: 666 B |
Before Width: | Height: | Size: 67 KiB |
Before Width: | Height: | Size: 67 KiB |
Before Width: | Height: | Size: 1.5 KiB |
Before Width: | Height: | Size: 1.5 KiB |
Before Width: | Height: | Size: 216 KiB |