mxtty
Warp
mxtty | Warp | |
---|---|---|
2 | 58 | |
9 | 18,989 | |
- | 2.9% | |
8.9 | 7.4 | |
15 days ago | 12 days ago | |
Go | ||
GNU General Public License v3.0 only | GNU General Public License v3.0 or later |
Stars - the number of stars that a project has on GitHub. Growth - month over month growth in stars.
Activity is a relative number indicating how actively a project is being developed. Recent commits have higher weight than older ones.
For example, an activity of 9.0 indicates that a project is amongst the top 10% of the most actively developed projects that we are tracking.
mxtty
-
Why does the `reset` command include a delay?
> TERM is already used for determining color support.
It's one of many ways to determine colour support. And arguably the worst of all of the ways too.
- $TERM
This isn't intended to contain colour information, yet that's how it's often abused. Meaning a lot of applications are broken in non-xterm terminals if they happen to use the $TERM variable correctly
- ANSI code: CSI 22 c (Send Device Attributes, ANSI color)
This is the correct way to check for a device capability. But it requires more effort and knowledge of terminals than your average developer has. So is rarely supported by console applications.
- $COLORTERM
This is the modern day equivalent to the device capability API. But also isn't used often
- $COLORFGBG
This was the original env var intended to be used like $COLORTERM, but fell out of favour because, well, nobody bothered to read any docs.
- $FORCE_COLOR
This is an often used standard. Christ only knows why this one exists when we already have 3 other env vars being used this way. Another example of nobody bothering to read any docs
- $NO_COLOR
This is intended to do the opposite of the others and tell applications not to use colour. However even this is often ignored.
----
That's 6 different ways to check whether to colour output or not. Only one actual standard method and everything is only partially supported (if at all) in applications. Hence why applications then need a `--color` flag, which even that differs in support and syntax across different command line tools. And the "default" method you described, $TERM, actually breaks applications on alternative terminal emulators and hardware terminals -- that is unless they decide to announce themselves as `xterm` and in that case that environmental variable becomes entirely useless.
----
> Not sure what terminals do without color support with color escape codes.
They ignore them.
ANSI escape codes are a pain in the arse to parse but there is at least a documented standard way to parse them. Anything that is a CSI (Control Sequence Introducer) sequence, and that includes SGR (Select Graphic Rendition) parameters like colour codes, start with `{ESC}[` and terminate with a character in the range of 0x40 to 0x7E. It's actually a little more complicated than that[1] but that's the gist of it.
So you know what to print and what to ignore.
There are other escape sequences too, the other big one being OSC (Operating System Command) and they're terminated `{ESC}\`, which is usually referred to as ST (String Terminator). That is unless you're xterm, and then you terminate OSC sequences with either ST or BELL (char 0x07).
A lot of this makes more sense if you look at code rather than documentation. So I've made an effort to ensure my own terminal emulator's source code is as self-documenting as possible:
https://github.com/lmorg/mxtty/blob/main/virtualterm/ansi_c1...
[1] https://en.wikipedia.org/wiki/ANSI_escape_code#CSI_(Control_...
-
The New Terminal (Beta) Is Now in JetBrains IDEs
The problem with a lot of these tools is that they fight with the shell to provide the UX enhancements (the comments in this thread are littered with people commenting that this new terminal breaks basic feature X, Y or Z. Really what they should be doing is working with the existing command line primitives as a hook for their UX enhancements.
I know those existing primitives are 50 years old and suck in a great many ways. But the alternative is having a terminal that only works some of the time.
This is field I'm actively experimenting in too. And have already had some degree of success despite the project being only a couple of months old: https://github.com/lmorg/mxtty
My point is this: any refinements to the terminal interface shouldn't break support for terminal applications. But all to often (this term included) form is now prioritised over function.
Warp
-
Warp VS Wave Terminal - a user suggested alternative
2 projects | 3 Apr 2024
- Fig Is Sunsetting
-
Linux version of Warp terminal is here
I'm trying out Warp for the first time, and an immediate accessibility issue for me is that the text is simply too small to read for a lot of the UI elements (context menu, side bar, tab bar…). The size should be configurable for all of the elements, not just the terminal view. I think I would also be fine with a setting that just scales the whole UI.
I did notice there is an issue for it already: https://github.com/warpdotdev/Warp/issues/1443
- The New Terminal (Beta) Is Now in JetBrains IDEs
-
How To Change Your Zoom Background With Code
Warp is a Rust-based terminal with AI built in. I like it because it has things like autocompletions, history search, click-to-edit, and theming out-of-the-box. Feels super modern. And if you do want to try it out, use my referral link & get a free theme!)
-
OpenAI Whisper: Transcribe in the Terminal for free
Unless you want to type this every day, I’d recommend creating an alias. In my case, I’m using Warp, so I’ll right-click the command and choose Save as Workflow to save my script as a workflow. Warp AI will even help me autofill the title and description and detect variables.
-
Keystroke timing obfuscation added to SSH(1)
This makes me wonder about newer terminal emulators on maccOS like Warp[1], and if they're for example taking all input locally, and then sending it over the remote host in a single blob or not? I imagine doing so would possibly break any sort of raw-mode input being done on remote host but I'd also imagine that is a detectable situation in which you could switch into a raw keystroke feed as well.
[1]: https://warp.dev
- How Warp's terminal app brings new ideas, AI to the command line
-
AI tools for productivity
Warp - GPT in the terminal - very helpful for debugging
-
Does anyone try the new terminal emulator Warp with Neovim?
You're right, I just found the discussion there (and it's the longest one currently). For now, I just run tmux inside the emulator.
What are some alternatives?
alacritty - A cross-platform, OpenGL terminal emulator.
zsh-autocomplete - 🤖 Real-time type-ahead completion for Zsh. Asynchronous find-as-you-type autocompletion.
hyperterm - A terminal built on web technologies
hyper - An HTTP library for Rust
kitty - Cross-platform, fast, feature-rich, GPU based terminal
wezterm - A GPU-accelerated cross-platform terminal emulator and multiplexer written by @wez and implemented in Rust
Rocket - A web framework for Rust.
neovim - Vim-fork focused on extensibility and usability
axum - Ergonomic and modular web framework built with Tokio, Tower, and Hyper
autocomplete - IDE-style autocomplete for your existing terminal & shell
tokio-tungstenite - Future-based Tungstenite for Tokio. Lightweight stream-based WebSocket implementation
actix-web - Actix Web is a powerful, pragmatic, and extremely fast web framework for Rust.