From f3ce83517d1b4a478b027d4123ce69e5f462396f Mon Sep 17 00:00:00 2001 From: Patrick Fong Date: Tue, 7 Nov 2023 10:09:46 -0800 Subject: [PATCH 01/11] update config section --- README.md | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) diff --git a/README.md b/README.md index fb0e9c3d6..0ca77d33e 100644 --- a/README.md +++ b/README.md @@ -98,10 +98,11 @@ palette = 7=#a89984 palette = 15=#fbf1c7 ``` -The available keys and valid values are not easily documented yet, but they -are easily visible if you're mildly comfortable with Zig. The available keys -are just the keys (verbatim) in the [Config structure](https://github.com/mitchellh/ghostty/blob/main/src/config/Config.zig). -The keys are documented there, too. +While the set of config keys and values are not yet documented, they are +easily discoverable in the [Config structure](https://github.com/mitchellh/ghostty/blob/main/src/config/Config.zig). +The available keys are simply the keys verbatim, and their possible values +are often documented in the comments. You also can search for the [public config files](https://github.com/search?q=path%3Aghostty%2Fconfig&type=code) +of many ghostty users for examples and inspiration. #### Configuration Errors From 5245c4068307678533850c189ff001558ba73a2d Mon Sep 17 00:00:00 2001 From: Patrick Fong Date: Tue, 7 Nov 2023 10:34:41 -0800 Subject: [PATCH 02/11] explain Nix is golden setup in devel section --- README.md | 14 ++++++-------- 1 file changed, 6 insertions(+), 8 deletions(-) diff --git a/README.md b/README.md index 0ca77d33e..ea2c420d3 100644 --- a/README.md +++ b/README.md @@ -102,7 +102,7 @@ While the set of config keys and values are not yet documented, they are easily discoverable in the [Config structure](https://github.com/mitchellh/ghostty/blob/main/src/config/Config.zig). The available keys are simply the keys verbatim, and their possible values are often documented in the comments. You also can search for the [public config files](https://github.com/search?q=path%3Aghostty%2Fconfig&type=code) -of many ghostty users for examples and inspiration. +of many Ghostty users for examples and inspiration. #### Configuration Errors @@ -324,15 +324,13 @@ a work-in-progress. Similar improvements will follow with Linux. ## Developing Ghostty -Ghostty is built using both the [Zig](https://ziglang.org/) programming -language as well as the Zig build system. At a minimum, Zig and Git must be installed. -For [Nix](https://nixos.org/) users, a `shell.nix` is available which includes -all the necessary dependencies pinned to exact versions. +The official "golden setup" for developing Ghostty is managed by Nix in [shell.nix](https://github.com/mitchellh/ghostty/blob/main/shell.nix). +It is the environment in which CI runs tests and builds artifacts. You don't have to use Nix for development, but the +builds produced by your environment mustn't be different from the Nix build; Nix is the source of truth. **Note: Zig nightly is required.** Ghostty is built against the nightly -releases of Zig. I plan on stabilizing on a release version when I get -closer to generally releasing this to ease downstream packagers. During -development, I'm sticking to nightly Zig. You can find binary releases of nightly builds +releases of Zig while it is still in beta. I plan on stabilizing on a release version when I get +closer to generally releasing this to ease downstream packagers. You can find binary releases of nightly builds on the [Zig downloads page](https://ziglang.org/download/). With Zig installed, a binary can be built using `zig build`: From 848694bc292765ea7adef08ecac73145f92fcc50 Mon Sep 17 00:00:00 2001 From: Patrick Fong Date: Tue, 7 Nov 2023 10:40:02 -0800 Subject: [PATCH 03/11] consistently sytlize as Ghostty --- README.md | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/README.md b/README.md index ea2c420d3..a936a92e7 100644 --- a/README.md +++ b/README.md @@ -2,7 +2,7 @@

Logo -
ghostty +
Ghostty

GPU-accelerated terminal emulator pushing modern features. @@ -22,18 +22,18 @@ ## About -ghostty is a cross-platform, GPU-accelerated terminal emulator that aims to +Ghostty is a cross-platform, GPU-accelerated terminal emulator that aims to push the boundaries of what is possible with a terminal emulator by exposing modern, opt-in features that enable CLI tool developers to build more feature rich, interactive applications. There are a number of excellent terminal emulator options that exist -today. The unique goal of ghostty is to have a platform for experimenting +today. The unique goal of Ghostty is to have a platform for experimenting with modern, optional, non-standards-compliant features to enhance the capabilities of CLI applications. We aim to be the best in this category, and competitive in the rest. -While aiming for this ambitious goal, ghostty is a fully standards compliant +While aiming for this ambitious goal, Ghostty is a fully standards compliant terminal emulator that aims to remain compatible with all existing shells and software. You can use this as a drop-in replacement for your existing terminal emulator. @@ -359,7 +359,7 @@ Other useful commands: - `zig build run -Dconformance=` runs a conformance test case from the `conformance` directory. The `name` is the name of the file. This runs in the current running terminal emulator so if you want to check the - behavior of this project, you must run this command in ghostty. + behavior of this project, you must run this command in Ghostty. ### Compiling a Release Build From 22bb2444e8f5aa36ec5f5eec2fd818ac7b778889 Mon Sep 17 00:00:00 2001 From: Patrick Fong Date: Tue, 7 Nov 2023 11:34:16 -0800 Subject: [PATCH 04/11] rewrite about --- README.md | 27 +++++++++++---------------- 1 file changed, 11 insertions(+), 16 deletions(-) diff --git a/README.md b/README.md index a936a92e7..4bf4de76a 100644 --- a/README.md +++ b/README.md @@ -22,25 +22,20 @@ ## About -Ghostty is a cross-platform, GPU-accelerated terminal emulator that aims to -push the boundaries of what is possible with a terminal emulator by exposing -modern, opt-in features that enable CLI tool developers to build more feature -rich, interactive applications. +Ghostty is an innovative terminal emulator with very ambitious goals. -There are a number of excellent terminal emulator options that exist -today. The unique goal of Ghostty is to have a platform for experimenting -with modern, optional, non-standards-compliant features to enhance the -capabilities of CLI applications. We aim to be the best in this category, -and competitive in the rest. +- ✅ performance competitive with the fastest GPU-accelerated terminals +- ✅ highly customizable: variable fonts, background blurring, cursor opacity, window themes +- ✅ feature-rich: splits, shell integration, emojis, Kitty graphics protocol support, and more +- ✅ cross-platform with native UI on macOS and Linux (and Windows is on the roadmap) +- 🚧 introduce cutting-edge, opt-in terminal capabilities that CLIs can utilize -While aiming for this ambitious goal, Ghostty is a fully standards compliant -terminal emulator that aims to remain compatible with all existing shells -and software. You can use this as a drop-in replacement for your existing -terminal emulator. +On the last goal, there are many excellent terminal emulators that exist today, but Ghostty is +unique in this. By exposing new [terminal capabilities that CLIs can leverage](https://en.wikipedia.org/wiki/ANSI_escape_code#CSIsection)] +for richer interactivity, Ghostty can push the boundaries of what is possible with a terminal emulator. -**Project Status:** Beta. Ghostty implements most of the baseline features -you'd expect for a terminal you can work in every day. We're still missing -things, but I've been using it full time since April 2022. +**Project Status:** Beta. Ghostty implements most of the features you'd expect for a daily driver. +We're still missing things, but I've been using it full time since April 2022. ## Download From ca961894f288d67b9cb2791524bd69aa3b55b5ce Mon Sep 17 00:00:00 2001 From: Patrick Fong Date: Tue, 7 Nov 2023 11:41:22 -0800 Subject: [PATCH 05/11] link to roadmap and status --- README.md | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/README.md b/README.md index 4bf4de76a..a1a5453d1 100644 --- a/README.md +++ b/README.md @@ -34,8 +34,7 @@ On the last goal, there are many excellent terminal emulators that exist today, unique in this. By exposing new [terminal capabilities that CLIs can leverage](https://en.wikipedia.org/wiki/ANSI_escape_code#CSIsection)] for richer interactivity, Ghostty can push the boundaries of what is possible with a terminal emulator. -**Project Status:** Beta. Ghostty implements most of the features you'd expect for a daily driver. -We're still missing things, but I've been using it full time since April 2022. +**Project Status:** Ghostty is still in beta but implements most of the features you'd expect for a daily driver. See more in [Roadmap and Status](#roadmap-and-status) ## Download From 6fc41695d975a83a4d9704dea7f1d485f0d322c7 Mon Sep 17 00:00:00 2001 From: Patrick Fong Date: Tue, 7 Nov 2023 12:05:00 -0800 Subject: [PATCH 06/11] list terminal inspector as key feature --- README.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/README.md b/README.md index a1a5453d1..22a8ea448 100644 --- a/README.md +++ b/README.md @@ -26,12 +26,12 @@ Ghostty is an innovative terminal emulator with very ambitious goals. - ✅ performance competitive with the fastest GPU-accelerated terminals - ✅ highly customizable: variable fonts, background blurring, cursor opacity, window themes -- ✅ feature-rich: splits, shell integration, emojis, Kitty graphics protocol support, and more +- ✅ feature-rich: splits, shell integration, emojis, [Kitty graphics protocol](https://sw.kovidgoyal.net/kitty/graphics-protocol), terminal inspector - ✅ cross-platform with native UI on macOS and Linux (and Windows is on the roadmap) - 🚧 introduce cutting-edge, opt-in terminal capabilities that CLIs can utilize On the last goal, there are many excellent terminal emulators that exist today, but Ghostty is -unique in this. By exposing new [terminal capabilities that CLIs can leverage](https://en.wikipedia.org/wiki/ANSI_escape_code#CSIsection)] +unique in this. By exposing new [terminal capabilities that CLIs can leverage](https://en.wikipedia.org/wiki/ANSI_escape_code#CSIsection) for richer interactivity, Ghostty can push the boundaries of what is possible with a terminal emulator. **Project Status:** Ghostty is still in beta but implements most of the features you'd expect for a daily driver. See more in [Roadmap and Status](#roadmap-and-status) From e131fefbe57007fc7bff3e66b7619910b54a2082 Mon Sep 17 00:00:00 2001 From: Patrick Fong Date: Tue, 7 Nov 2023 12:05:57 -0800 Subject: [PATCH 07/11] shorten text that is hyperlinked --- README.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/README.md b/README.md index 22a8ea448..0c391682d 100644 --- a/README.md +++ b/README.md @@ -31,10 +31,10 @@ Ghostty is an innovative terminal emulator with very ambitious goals. - 🚧 introduce cutting-edge, opt-in terminal capabilities that CLIs can utilize On the last goal, there are many excellent terminal emulators that exist today, but Ghostty is -unique in this. By exposing new [terminal capabilities that CLIs can leverage](https://en.wikipedia.org/wiki/ANSI_escape_code#CSIsection) +unique in this. By exposing new [terminal capabilities](https://en.wikipedia.org/wiki/ANSI_escape_code#CSIsection) that CLIs can leverage for richer interactivity, Ghostty can push the boundaries of what is possible with a terminal emulator. -**Project Status:** Ghostty is still in beta but implements most of the features you'd expect for a daily driver. See more in [Roadmap and Status](#roadmap-and-status) +**Project Status:** Ghostty is still in beta but implements most of the features you'd expect for a daily driver. See more in [Roadmap and Status](#roadmap-and-status). ## Download From 1f6d35fcb518c243c2904ca56ad16812e3b66afd Mon Sep 17 00:00:00 2001 From: Patrick Fong Date: Tue, 7 Nov 2023 12:09:19 -0800 Subject: [PATCH 08/11] pushes boundaries, not can push boundaries --- README.md | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/README.md b/README.md index 0c391682d..512aa7a73 100644 --- a/README.md +++ b/README.md @@ -30,9 +30,9 @@ Ghostty is an innovative terminal emulator with very ambitious goals. - ✅ cross-platform with native UI on macOS and Linux (and Windows is on the roadmap) - 🚧 introduce cutting-edge, opt-in terminal capabilities that CLIs can utilize -On the last goal, there are many excellent terminal emulators that exist today, but Ghostty is -unique in this. By exposing new [terminal capabilities](https://en.wikipedia.org/wiki/ANSI_escape_code#CSIsection) that CLIs can leverage -for richer interactivity, Ghostty can push the boundaries of what is possible with a terminal emulator. +On the last goal, there are many excellent terminal emulators today, but Ghostty is unique in this. +By exposing new [terminal capabilities](https://en.wikipedia.org/wiki/ANSI_escape_code#CSIsection) that CLIs can +leverage for richer interactivity, Ghostty pushes the boundaries of what is possible with a terminal emulator. **Project Status:** Ghostty is still in beta but implements most of the features you'd expect for a daily driver. See more in [Roadmap and Status](#roadmap-and-status). From cd4e4d9e30669d09dfdcff3354e78ce5ae0748fc Mon Sep 17 00:00:00 2001 From: Patrick Fong Date: Tue, 7 Nov 2023 13:47:11 -0800 Subject: [PATCH 09/11] Prettier version should match Nix's --- README.md | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) diff --git a/README.md b/README.md index 512aa7a73..344e0af37 100644 --- a/README.md +++ b/README.md @@ -453,9 +453,7 @@ modifying anything Prettier will lint, you may want to install it locally and run this from the repo root before you commit: ``` -npm install -g prettier prettier --write . ``` -Or simply install one of the many Prettier extensions out there for your -editor of choice. +Make sure your Prettier version matches the version of in [devshell.nix](https://github.com/mitchellh/ghostty/blob/main/nix/devshell.nix). From 42c6381683d2e147e733c46b8783f4965c656c32 Mon Sep 17 00:00:00 2001 From: Patrick Fong Date: Wed, 8 Nov 2023 09:46:31 -0800 Subject: [PATCH 10/11] reorder goals by order of importance --- README.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/README.md b/README.md index 344e0af37..542de8831 100644 --- a/README.md +++ b/README.md @@ -25,9 +25,9 @@ Ghostty is an innovative terminal emulator with very ambitious goals. - ✅ performance competitive with the fastest GPU-accelerated terminals -- ✅ highly customizable: variable fonts, background blurring, cursor opacity, window themes -- ✅ feature-rich: splits, shell integration, emojis, [Kitty graphics protocol](https://sw.kovidgoyal.net/kitty/graphics-protocol), terminal inspector - ✅ cross-platform with native UI on macOS and Linux (and Windows is on the roadmap) +- ✅ feature-rich: splits, shell integration, emojis, [Kitty graphics protocol](https://sw.kovidgoyal.net/kitty/graphics-protocol), terminal inspector +- ✅ highly customizable: variable fonts, background blurring, cursor opacity, window themes - 🚧 introduce cutting-edge, opt-in terminal capabilities that CLIs can utilize On the last goal, there are many excellent terminal emulators today, but Ghostty is unique in this. From 648a521fb2bea2a338113d154472189c290f0282 Mon Sep 17 00:00:00 2001 From: Mitchell Hashimoto Date: Tue, 14 Nov 2023 09:21:45 -0800 Subject: [PATCH 11/11] slight edits --- README.md | 50 +++++++++++++++++++++++++++++++------------------- 1 file changed, 31 insertions(+), 19 deletions(-) diff --git a/README.md b/README.md index 542de8831..f029d80c2 100644 --- a/README.md +++ b/README.md @@ -22,19 +22,26 @@ ## About -Ghostty is an innovative terminal emulator with very ambitious goals. +Ghostty is a cross-platform, GPU-accelerated terminal emulator that aims to +push the boundaries of what is possible with a terminal emulator by exposing +modern, opt-in features that enable CLI tool developers to build more feature +rich, interactive applications. -- ✅ performance competitive with the fastest GPU-accelerated terminals -- ✅ cross-platform with native UI on macOS and Linux (and Windows is on the roadmap) -- ✅ feature-rich: splits, shell integration, emojis, [Kitty graphics protocol](https://sw.kovidgoyal.net/kitty/graphics-protocol), terminal inspector -- ✅ highly customizable: variable fonts, background blurring, cursor opacity, window themes -- 🚧 introduce cutting-edge, opt-in terminal capabilities that CLIs can utilize +There are a number of excellent terminal emulator options that exist +today. The unique goal of Ghostty is to have a platform for experimenting +with modern, optional, non-standards-compliant features to enhance the +capabilities of CLI applications. We aim to be the best in this category, +and competitive in the rest. -On the last goal, there are many excellent terminal emulators today, but Ghostty is unique in this. -By exposing new [terminal capabilities](https://en.wikipedia.org/wiki/ANSI_escape_code#CSIsection) that CLIs can -leverage for richer interactivity, Ghostty pushes the boundaries of what is possible with a terminal emulator. +While aiming for this ambitious goal, Ghostty is a fully standards compliant +terminal emulator that aims to remain compatible with all existing shells +and software. You can use this as a drop-in replacement for your existing +terminal emulator. -**Project Status:** Ghostty is still in beta but implements most of the features you'd expect for a daily driver. See more in [Roadmap and Status](#roadmap-and-status). +**Project Status:** Ghostty is still in beta but implements most of the +features you'd expect for a daily driver. We currently have hundreds of active +beta users using Ghostty as their primary terminal. See more in +[Roadmap and Status](#roadmap-and-status). ## Download @@ -93,9 +100,10 @@ palette = 15=#fbf1c7 ``` While the set of config keys and values are not yet documented, they are -easily discoverable in the [Config structure](https://github.com/mitchellh/ghostty/blob/main/src/config/Config.zig). -The available keys are simply the keys verbatim, and their possible values -are often documented in the comments. You also can search for the [public config files](https://github.com/search?q=path%3Aghostty%2Fconfig&type=code) +discoverable in the [Config structure](https://github.com/mitchellh/ghostty/blob/main/src/config/Config.zig). +The available keys are the keys verbatim, and their possible values are typically +documented in the comments. You also can search for the +[public config files](https://github.com/search?q=path%3Aghostty%2Fconfig&type=code) of many Ghostty users for examples and inspiration. #### Configuration Errors @@ -318,14 +326,18 @@ a work-in-progress. Similar improvements will follow with Linux. ## Developing Ghostty -The official "golden setup" for developing Ghostty is managed by Nix in [shell.nix](https://github.com/mitchellh/ghostty/blob/main/shell.nix). -It is the environment in which CI runs tests and builds artifacts. You don't have to use Nix for development, but the -builds produced by your environment mustn't be different from the Nix build; Nix is the source of truth. +To build Ghostty, you only need [Zig](https://ziglang.org/) installed. + +The official development environment is defined by Nix. You do not need +to use Nix to develop Ghostty, but the Nix environment is the environment +which runs CI tests and builds release artifacts. Any development work on +Ghostty must pass within these Nix environments. **Note: Zig nightly is required.** Ghostty is built against the nightly -releases of Zig while it is still in beta. I plan on stabilizing on a release version when I get -closer to generally releasing this to ease downstream packagers. You can find binary releases of nightly builds -on the [Zig downloads page](https://ziglang.org/download/). +releases of Zig while it is still in beta. I plan on stabilizing on a release +version when I get closer to generally releasing this to ease downstream +packagers. You can find binary releases of nightly builds on the +[Zig downloads page](https://ziglang.org/download/). With Zig installed, a binary can be built using `zig build`: