^ There's a host of built-in color schemes.
^ There's a host of built-in color schemes.
The Lua configuration is very intuitive as well.
I do get some indirect crashes when Xwayland crashes, which is rare. I had to disable Wayland support in wezterm because the window decorations aren't great yet.
Yeah, iTerm2 has a lot of other fancy features, but I just rarely or never used them, so don't really feel like I miss anything.
But the straw that broke my back with using kitty was, I'd end up encountering issues or trying to recreate some of iTerm2's features, only to end up time and again on kitty's maintainer's terse and dismissive comments.
e.g. IIRC his answer to "How do I set up tmux with kitty?" was something like "Don't, tmux is dumb" and closing it. Eventually I gave up.
Curious what sort of features and other things you look for when looking or comparing terminals like WezTerm and the like?
What are your deal breakers and must haves of a terminal emulator?
That doesn't make it perfect. Mouse themes are applied inconsistently as I use Gnome on Wayland. It also seems to be a problem when using neovim, but I can't prove it clearly enough to want to file a bug with anyone. Besides, everything I need to do still works and I rarely use the mouse unless I am copying random gobs of text.
I am sticking with wezterm for the moment. I have no reason to leave it at this point and it helped me reduce the complexity of my stack a teeny bit.
My window manager (Sway) already requires enough wild incantations. If any, I really appreciate simple integration in the terminal.
A little more than 'foot' but not a lot. Tabs/panes, like you say. It gives some more granularity to the organization without a lot of new buttons to push.
I've taken most of the Tilix defaults through several! Currently Kitty... though I may try WezTerm.
My favorite and often overlooked feature is that wezterm is fully cross os, so if you work like me in Linux, macOS and Windows, then you can just learn wezterm and be done. I even share large parts of my terminal config across os:es.
I had really started to feel it slow down lately. It hit the breaking point when I was cmd-tab-ing and found myself waiting for more than a second just for the terminal to appear.
Looked around, evaluated a couple alternatives and none of them quite fit my taste. One terminal required an account/login to operate, which is a big no IMO, another was written in {Java,Type}Script so simple commands like `yes` would break it due to the async nature of streams in node.js.
I really like WezTerm so far. It's quite fast, very much configurable and comes with the theme I was configuring with iTerm2 out of the box (OneDark (base16)).
My only trouble with it was in the beginning when I had to add the configs for cmd-left and cmd-right in lua config, I really hoped they'd be in there with the defaults.
Wezterm with Zellij becomes amazing with how it just simply gets out of the way, even lets you remove window decorations entirely. I've heard Wezterm has a multiplexer too, but just haven't tried it.
Given that I do already use a window manager like sway, is there much else worthwhile compared to any other terminal emulator?
(Former avid Alacritty user but needed better modifier support for remote emacs.)
Let me guess, that's wrap and Tabby or extraterm respectively?
I left iTerm because I couldn't configure it to my liking, although there are certainly ways to do it, i just couldn't. iTerm2 is certainly a good enough terminal, wezterm just somehow suits my needs better.
(in case you're wondering, the page I mean is https://wezfurlong.org/wezterm/copymode.html, not https://wezfurlong.org/wezterm/quickselect.html, which sounds like what I was looking for, but is something completely different - also very handy and a great idea, but not what I was after)
Video demonstrating the speedup: https://x.com/fleetwood___/status/1807772624518316495
Emacs uses Lisp in a similar way. What other applications use a programming language for their configuration?
I should wezterm another look ...
One big use case I have is: mosh+tmux-like functionality from my macos laptop to my work Linux machine. I always have a session running so I can do things on my work machine from my Mac. It gives a re-connectable session plus panes and tabs so I can do work when I'm away from my desk. It's top notch.
maybe less fancy/modern but absolutely rock solid every time.
environment: fedora/wayland/gnome
just throwing this out if anyone wants to test an alternative it out.
"When enabled, vertical lines of pipe characters | will be interpreted as pane dividers (as in vim or emacs) and selection will wrap at them."
(For me, it's selecting text in irc.)
edit: rough, my bad. missed the via "in irc" part.
I try not to knock the guy, given that kitty and calibre in particular are amazing programs, but I still think you've gotta keep that in mind when engaging.
FWIW, his conduct on the MobileRead forums where he answers questions from newbies and enhancement requests are far more polite and charitable. His ire seems to be reserved for fellow programmers.
!= goes to weird ≠ utf8 char. I like != better!
Command-K clears the scroll back but NOT the screen.
Updates:
config.harfbuzz_features = {"calt=0", "clig=0", "liga=0"}
Command-L
P.S.: I am temporary back to Kitty in NixOS because I recently switched from Sway to Hyprland and the current release of WezTerm seems to be having some issues in Hyprland. But will switch back once this issue is solved, I know it is fixed in the main branch for example, but I would prefer to use nixpkgs cache instead of building it from source.
EDIT: the command is `tmux -uCC a` to connect to a tmux session, works locally and works over ssh. spawn the tmux session normally, disconnect, then connect via command mode for best results. you can still spawn a new one with just `tmux -uCC` but i have found i can get some issues when i spawn it in command mode vs attach in command mode.
Like the old Linus. He also over-reacted but there was atleast some reason behind that.
In terms of use-case, I just disable all its keybindings and use it as a tmux terminal. I admit I didn't look for solutions, but I just can't go away from tmux's session restoration capabilities.
I vaguely remember my main requirement was being able to configure CMD+D and CMD+SHIFT+D as split panes vertically and horizontally as I wasn't willing to retrain my fingers to learn new keystrokes for that. Within a version of two after I switched (back then, those were weeks or less apart), all my complaints were resolved and I never looked back.
My config is fairly minimal, but perfect for my needs. What else can one want?
I spend a lot of time in a terminal and just use whatever’s there. Terminal.app or gnome-terminal. Before that it was xterm. Perhaps the only customization is modifier key on Mac as meta.
After switching employers I no longer have a Mac to run iTerm2 in. So I decided to simply reduce the number of apps I require by running my terminal inside Emacs. The emacs-libvterm project is excellent. These days I no longer need a terminal emulator app.
For those unfamiliar, that's a window tied to a show/hide keybinding which when shown floats above all other windows, making a terminal instantly available everywhere - a feature I could live without, but don't care to. I'd love to switch for all of WezTerm's other features, but without that it's simply a nonstarter for me.
Btw one gotcha on macOS during setup is that the left Option/Alt key does not emit the usual special character mappings, but the right Option key does. You can configure that too!
Cheers Wez!
Some programmers (like myself) have little patience for people they consider should know better and are wasting their time. These same programmers are far more charitable to newbies because they know newbies are still learning.
> Remember that this is the guy who said he would personally maintain python 2 because he didn't want to rewrite calibre for python 3 [0].
I read his "I am perfectly capable of maintaining python 2 myself." as "I am perfectly capable of maintaining [calibre running on] python2 myself", which is completely different.
I'm sure some people might also find his answer quite terse and dismissive ("No, it doesn't."), but I read it as a simple statement of facts, using the same tone as the original bug report, which itself is quite terse and imperative "Python 2 is retiring in thirty months. Calibre needs to convert to Python 3."
While I don't know why Goyal takes the approach he does, I would imagine that a lot of demands are placed on him simply because his software is so powerful (and, in the case of calibre, pretty much the only program in its domain that goes beyond serving basic needs).
I mostly like kitty but I’ve noticed that it takes a couple seconds to start up when I put my cpu down to 400Mhz. (Which might seem like an odd thing to do, but xterm handles it fine and, hey, why do we need billions of clock cycles to start up a terminal? That’s ridiculous).
It's useful out of the box but the superpower is that you can customise the regexes it matches. I've added one that finds all the filenames output by 'eza --icons' (\p{Co} matches the icon) so I can instantly type (by using shift+the quickselect letters) any filename after doing an ls (aliased to eza).
I don't have enough evidence to create a good bug report, and I WezTerm has its own terminal multiplexing server ("ssh domains"), so it's probably not important enough to fix anyway. I don't want to install the WezTerm multiplexing server everywhere, and tmux is pretty much on all of the places that I ssh into already.
Other than that, WezTerm is great!
Some programmers are life-long learners and know a very different subset of things. It’s important to remember that just because something is obvious to you doesn’t make it right and doesn’t make it obvious to others.
They wouldn't, for example, just barge in an oss project with arguably low value statements like "Python 2 is retiring in thirty months. Calibre needs to convert to Python 3."
I don't have a keybinding to hide, but you could easily achieve that by inspecting the active window with `hs.window.focusedWindow()`/`hs.window.frontmostWindow()` and making the behavior conditional based on the application: https://www.hammerspoon.org/docs/hs.window.html#focusedWindo...
In WezTerm, you can control whether the terminal is always on top with the `ToggleAlwaysOnTop` action: https://wezfurlong.org/wezterm/config/lua/keyassignment/Togg...
---
[0] "old" because there's a new kid in town: wayland.
I use the Embark color theme, which I don't see represented on the wezterm themes page: https://github.com/dmshvetsov/wezterm-embark-theme
I also like a slowly-blinking block cursor, a specific font, ligatures etc. Feel free to raid my config: https://github.com/pmarreck/dotconfig/blob/yolo/wezterm/wezt...
I love that I can use the same config on macOS and Linux as I use both machines often.
For example, I recently reduced my terminal startup time to 1/3 what it was by putting in some optimizations. I'll be able to benefit from that for basically forever.
... Ah, you develop on Windows? This tracks, then... All productivity, no aesthetics >..<
EDIT: Just installed in on my Mac and here, I can't notice any difference between kitty (my current input latency baseline) and WezTerm. Good stuff! Not sure how Windows fares nowadays, though.
I have an OLED screen and mostly use black background terminals, so I can get some pretty decent battery life out of it, especially at night when I dim the screen.
Dim/red shift/slow CPU is a nice low-distraction night time mode IMO.
Plus it is keeps my palms comfortable even if I accidentally run a computationally intensive code.
This article is convincing me to give it a second look.
I looked at WezTerm a long while ago, didn't even realize I'd already had it starred. Will try it out again soon. It's just another one of those things, that I prefer to use the same applications (if I can) on all the platforms I use.
That doesn't make sense to me in context. Presumably he was already maintaining calibre on python2 at the time, so what additional information is he adding?
It seems more like he was saying "I am perfectly capable of maintaining my own fork of python2 for however-much-python-I-need to continue developing calibre." Which, granted, is not as grandiose as "I will become the maintainer for the abandoned python2 language for the internet at large to use", but it is still a rather tall order.
The iTerm2 hotkey window, is a floating window, which for example also works in a space with another Fullscreen window/app opened (without moving to another space.)
For me, I've found Kitty quite configurable enough to have everything except the remote server thing. I used this as my guide: https://www.reddit.com/r/KittyTerminal/comments/z2p2sh/ditch...
The author is not interested in trying to fix this issue, which is totally fine, as they point out font rendering is very subjective, but I'm also not willing to use a terminal that looks worse, even though I like many other things about it better.
https://wezfurlong.org/wezterm/multiplexing.html
Thanks for posting
I switched to Kitty, and while it has its share of issues, at least it works.
Heh, I switched from Kitty to Wezterm due to the exact same types of comments from the maintainer. It's his project of course, and he's a great programmer, but some humility wouldn't hurt.
Anyone found a good setup that works for them?
I did some searching and it looks like the issue might be fixed in latest nightly. See https://github.com/wez/wezterm/pull/5396
It's the first terminal to truly replace urxvt for me in terms of support and speed. Before I was running termite and kept urxvt as a backup for some odd situations where termite got buggy.
Personally I don't notice any typing latency in wezterm. I have p10k as a zsh theme and not really any 'plugins' beyond git for the terminal and use neovim+ also pretty much just got and CoC for an editor. I don't notice any latency when typing and, while not instant, still sub 200ms startup latency.
It's very much designed and built for my specific needs on my specific desktop environments, so there's no promises that it'll work for you well ... or at all.
I happened to have stumbled upon here to compare those terminals on this site: https://terminaltrove.com/terminals/
Looks pretty useful to me or anyone else that wants to compare terminals.
But I hit a snag. On macOS, it's standard that in any text window, to select everything for copying, you hit Command-a.
But Command-a in wezterm just printed an "a" character. What?
I spent a while looking in the docs and issues, but couldn't figure out how to Select All.
I don't think I should have to justify it, but in case someone's wondering - it's useful if you want to search or parse an entire Terminal session using some other process (eg, grep), or edit it, or just persist it for example.
Regardless of why, "Select All" is such a standard function it felt quite strange it wasn't suported out of the box.
(FWIW, the setting in question with respect to make menuconfig is "use bold as bright", where the kitty developer is on a vendetta to refuse the historical precedent. He is very adamant that he knows better than most everyone else on this point.)
Either way, I have never claimed to have talked to the kitty developer: I -- as well as multiple others on this thread -- are saying we've read how he handles arguing about terminals, and we don't like it.
Regardless, I do happen to be curled into a ball, and I do happen to look like I am crying... but it is merely because I am sick: I use xterm and I am very happy with the software and like the author.
Had the opportunity to work on a project together at work some years back and I can only aspire to be 1/10th as good of an engineer as him. A true hacker.
I have never seen a maintainer go so far above and beyond to condescend and insult people asking questions -- not making demands like your example. In my case, I asked a question about something that wasn't working as I expected in the github discussions and he repeatedly insulted my intellect (while simultaneously blaming another program when it was in fact a kitty misconfiguration that was causing my issue). He did eventually leave enough breadcrumbs that I was able to solve my problem but rarely have I had such a negative experience with asking an (IMO) not stupid question.
The people who had to deal with the Calibre setuid binaries fiasco in 2011 would probably disagree :) ( https://lwn.net/Articles/465311/ )
https://sw.kovidgoyal.net/kitty/faq/#i-get-errors-about-the-...
https://github.com/kovidgoyal/kitty/discussions/3873
Basically it is how it presents itself as xterm-kitty and then how to make others recognize that. Installing terminfo on the remote is an option, lying and claim it to be xterm-256color is another (with caveats.)
As in other issues with kitty, the author is probably right. But for many people that they have many different kinds of remotes to log into where they don’t have control over, getting around with these issues is tedious.
Making kitty works is possible, and I learnt how to deal with these issues one by one, but hearing comments here on HN points me to wezterm and once I migrated I never looked back. For the simple stuffs wezterm gets out of the way. And there’s some interesting advanced stuffs to pick up, such as multiplexing with ssh: https://wezfurlong.org/wezterm/multiplexing.html?h=ssh#ssh-d...
Wes is right about wezterm domains though. The native domains feature and pane support I think will meet the needs of most.
I mean, he's not wrong. Everyone else should update their shit to be proper so that he doesn't have to deal with all this legacy nonsense. It's just annoying as hell for people using it right now.
https://www.reddit.com/r/NixOS/comments/14clrjh/how_is_nixos...
Except, when I started using WezTerm at the start of this year... omg, this guy is absolutely fantastic.
I have read scores of his posts and he's struck the perfect tone in every single one. Love this guy, really, he's awesome.
I just went through and started looking at recently closed issues on GitHub. I got through four before I found an example of what I think is the problem, and while this is a fairly benign one it is also clearly awkward enough that it shouldn't happen this often and is more than sufficient to clarify the complaint.
In this one, someone carefully points out an issue with a common script for emacs designed to implement the kitty-specific protocol (the one that kovid insisted everyone get on board with, as opposed to the prior art that already had traction, so now we have two competing ones; but that's my complaint, not the poster's).
https://github.com/kovidgoyal/kitty/issues/7711
Kovid then decides to pick a fight by being abrupt and a bit snarky in his response. Again: the issue was just technical and is good enough that I can probably debug the issue... I dream of getting bug reports like this, so this isn't the kind of response I would expect.
> I'm afraid I have zero interest in debugging emacs and kkp.el.
This is just downright mean-spirited. You can say something similar in a way that isn't grating in the same way, but Kovid prefers being grating, and clearly the person in the issue also took it this way and they get snarky back:
> If you aren't interested that's okay, of course.
> OTOH, I have zero interest in debugging Kitty. I'll just use Alacritty or iTerm :-)
Given Kovid's comment, I think this is in some sense a leveled response: Kovid is demonstrating he has little interest in being collaborative or helpful, even in an ecosystem that he created. I certainly don't act like that, even when people would use tools I actively disagreed with, I still would always help them debug it.
Kovid, of course, escalates this one further and leaves the thread in a pretty demoralizing place.
> Excellent! Don't let the door hit you on the way out.
Damn :/. That is what I am talking about. He isn't just grating in the way Linus was grating -- though Linus, to be clear, was also an asshole who, at some point, started to realize just how much of a problem he was being and is a lot better today -- and I also don't think he is just grating in the way that people who moralize (I am guilty of this one) do... he's just kind of mean, even when it makes no sense, and the result is that many issue threads with him get this "edge" about them where everyone is slowly escalating the burn until they just drop out of the thread entirely for their mental health.
(Part of me actually wants to now debug this specific issue, but I'd be doing it out of spite, and I do not want to be dragged into that. I only commented on this at all as I didn't want the person further upthread of me to feel alone in commenting on the problem with Kovid, and so I think it is reasonable that I get some of the flak here as I'm willing to bring the receipts.)
So, no: I simply don't think it is fair to say I am being dishonest, and the specific thing you quoted from me about him not liking settings is obviously not the point and wasn't something I delved into, as it didn't matter why: the issue was how... FWIW, in a thread where a bunch of people are all agreeing that Kovid turned them away from using kitty, maybe at least some of us have a point?
You can also use Is It Snappy? from the App Store to test typing latency. It was made by Chad Austin who had problems similar to us.
https://gist.github.com/spartanatreyu/850788a0441e1c5565668a...
Besides, if you're trying another terminal it's also a great excuse to try other things too!
I'm a fan of tools like these where you compare a series of option pairs (in this case font pairs) in succession until it spits out your most preferred option: https://www.codingfont.com/
e.g. I want to `cat` a file to make sure i've got the right one, but I accidentally cat a full 1gb sql backup rather than the tiny 50 line script I was expecting. Sometime later, I try to select all, copy, switch application, paste for some reason but now I'm stuck waiting for 1gb to copy over
Personally I'm a bit more cautious about copying from a terminal.
Either way if that's what you really want to do, you can check the repo to see how other people scripted it into wezterm:
1) kitty has a template for issue reporting that the person that reported that issue didn't use, which means it isn't a carefully constructed report.
2) The issue is probably with kkp.el. I don't know about you, but I don't expect maintainers of open source projects to debug all issues in their own projects let alone unrelated ones. Kovid went out of his way to tell the OP exactly how to provide useful debug information. And he did so within a few minutes of the issue being opened.
3) The part you complain about is him saying he has zero interest in debugging kkp.el and emacs. Which is perfectly reasonable, again, why should he have an interest in it. He provided the OP with the means to give him information that he would be interested in debugging instead.
4) He then gets told that the OP would rather use some other terminal rather than provide the debug information he was asked for. Do you have any conception of how rude it is to go to some projects issue tracker and then state you are going to use a competitors product.
5) You tried again to insert an unjustified swipe at Kovid, with "the keyboard protocol he insists everyone get on board with". In reality that keyboard protocol is completely optional, an no one has to use it. The fact that everyone does actually use it, is testament to its being light years ahead of any of the alternatives and represents weeks of hard work on the part of Kovid to finally bring sanity to this corner of the terminal ecosystem. An effort he made for the good of the community. And an effort that has succeeded, since pretty much all modern/maintained terminal software support the protocol as it is clearly superior to the alternatives.
6) You were at best mistaken in making your claim that he doesnt like settings, but given you clearly have an agenda against someone who has done nothing to you other than provide the world free software, I think the default assumption is malice not incompetence on your part.
And yes by all means dont use kitty, I have a strong feeling that Kovid, who has been providing software used by millions of people for decades has reached a point in his life where he recognizes that some users cost way more than others. He is likely very happy that you and people like you give his work a miss.
A position I greatly sympathise with. People that report issues to open source projects need to remember they are asking for help, it behoves them to put in the maximum effort they can to reduce the burden of the free help they are NOT entitled too.
https://gist.github.com/spartanatreyu/fe6d045c3113f27acaa509...
I added back the familiar option/cmd + arrow key navigation and cmd + click hyperlink behaviour.
There's also some tweaking to make it more similar to iterm's default behaviours (e.g. don't hide the mouse when you start typing).
And finally some personal visual tweaks which you can throw out and replace with your own.
Also in case you wanted to bump up the priority of that bug, he does have github sponsors enabled.
> the exact same types of comments from the maintainer.
Kovid really bugs me and is a reason I turned away from kitty too. I saw his character when looking up tmux issues. He's brash like Linus, but at least while Linus is calling you an idiot he'll tell you a better way to solve your problem. Kovid seems to think tmux is really about splitting panes and peoples' main draw to it isn't about persistence...Oh, and kitty phones home
If you want drama:
tmux:
- https://github.com/kovidgoyal/kitty/issues/391
Phone Home: - https://github.com/kovidgoyal/kitty/pull/3544
- https://github.com/kovidgoyal/kitty/issues/2481
On a side note: I really don't trust devs who reply to issues and close them. I get wanting to remove the issue from the task list, but just set up an action for stale issues (which has an added advantage of pinging the user who may have just lost the message). Otherwise let the user close because they might have follow-up questions. It's just disrespectful and always a red flag. I know lots of users are dumb (I literally just got an issue on a research project with someone asking how they fine tune our model...), but noobs are wizards in training. You don't have to be nice, but don't be mean either. Plus, you'll just piss off people who could end up helping you. And if you don't want help, I expect your project to decay when you get bored. Definitely not what I want from a terminal Something that was a bit surprising was the combative tone that Calibre's lead developer Kovid Goyal took in the comments on the bug. Rather than working with Donenfeld to see what the problems were, he dismissed most of the bugs as invalid. Even after Donenfeld tried to further point out the problems, Goyal was rather sarcastic in response:
You mean that a program designed to let an unprivileged user mount/unmount/eject anything he wants has a security flaw because it allows him to mount/unmount/eject anything he wants? I'm shocked.
This does not appear to have changed if you look at his responses to issues. I linked the tmux stuff in a different comment (same root).Both skills and personality can chance a lot over a decade and I'm glad you're not quick to jump the gun. We need more people like that. But given brash comments over the past few years, it does not seem like this part has changed. He's been working on kitty for 8 years and has only accepted minor PRs and is dismissive of user issues.
Unlike OP, I hardly use WezTerms features. I have hidden the tabs away and just use the old vim+tmux combo. So my config is just 25 lines. There was no weird colour interaction issue that alacrity+vim+tmux had (and there is a famous gist for). All which is to say I didn’t have to dive deep to migrate.
"Are you sure you want to close this window", meant to only trigger in interactive scenarios like ssh or htop, triggered on the regular shell sometimes. Not even consistently
I’ve tried Kitty a few times, since it has a few features I miss in iTerm2 (e.g. the “i3-gaps” aesthetics if you set the right flags, a plaintext config that is easier to sync, and its graphics and keyboard protocols have a wider ecosystem than iTerm2’s comparable features, and the “layout” feature).
But… I generally find that iTerm2 “just works” and requires little fiddling to get all the everyday stuff to work as I want, but I’ve been down many rabbit holes with my Kitty config. For now I’ve therefore stuck with iTerm2, but imagine that a well-configured Kitty might be nicer.
Is WezTerm a good middle ground?
Thank you.
... Yep. It's exactly as s/he said it. Once you grok it, you literally want it on EVERY COMPUTER YOU OWN.
IMHO it still needs to get more user-friendly, or at least have another layer that is more user-friendly, as well as have ramp-up materials that are consolidated and good, before it will be more widely adopted
Ideally fuzzy search of just the commands I’ve entered and not the full scroll history as some results take many hundreds of lines.
Is there a wezterm community where I can ask this and similar questions?
That being said, wezterm is about the only terminal I can use now (besides putty). I'm on a cursed setup, Windows with a Linux VM and whatever terminal I use it has to be able to directly ssh into the VM (NOT via ssh.exe), otherwise there's much worse latency/quirks due to stupid Windows conpty issues.
Currently it does not annoy me too much, but when I finally have time I think I'd try to fix it.
It looks nice just as a basic setup (key = value type stuff), but you can do really complex dynamic configurations with it (like the dark-mode config in the linked article).
Hammerspoon is another, you can do so many things with it - I replicated most of Rectangle/Manget with Hammerspoon+Lua myself and now I can do the minor tweaks I couldn't do with the pre-packaged apps.
He spent half a day debugging a rather trivial issue with me and even sent me a custom build.
MailMate: https://freron.com/
> It breaks nothing.
OOFFF yeah, that is out of touch.Reminds me of something Linus said
> The gcc people have a BAD attitude. When the meaning of "inline" changed (from a "inline this" to "hey, it's a hint"), the gcc people never EVER said "sorry". They effectively said "screw you".
> Comparing it to the kernel is ludicrous. We care about user-space interfaces to an insane degree. We go to extreme lengths to maintain even badly designed or unintentional interfaces. Breaking user programs simply isn't acceptable. We're _not_ like the gcc developers. We know that people use old binaries for years and years, and that making a new release doesn't mean that you can just throw that out. You can trust us.
Which I think is an important lesson here. About how when you build tools, people build around you and what they have to work with. But I'm surprised this attitude is not more common, because I don't know a single person who is unfazed when changes happen that break their programs/workflow. It's reasonable for someone to be upset. And not a single person is ever like "no worries, I'll go read the commits first, no need for documentation." (Don't get me started on "my code is so clear it doesn't need documentation" people...).I think one big issue with all this is that costs are outsourced either to time or someone who isn't you, and this naively makes people believe that there is no cost (and sometimes fight to reject claims of cost. There is always a cost. There's a cost to everything). I wonder how much time and money would be saved if we recognized this. I just don't know how to motivate solving this, as it's non-obvious.
https://yarchive.net/comp/linux/gcc_vs_kernel_stability.html
iTerm2 was shockingly bad, for instance, at 44ms vs 6ms for Apple's default Terminal.app. That right there is a deal-killer as far as I am concerned.
Plus, Alacritty just hasn't been a great editor. (I wish foot would build a cross platform version[0]. But I'm not entitled enough to expect someone write code for me, though I might ask)
I remember being so frustrated with a Mac because of the animations. It would take like a full half second to maximize etc. I tried disabling them but then it would just do a cross fade or something and still be unresponsive when I tried to type/click on the focused window.
That plus cmd+space doing nbsp and Ruby (required by our IaC framework at the time) treating such differently than other whitespace was the end of my experiment, back to Linux lol
(I have no problems with Mac users and get the love for them, but I definitely prefer Ubuntu)
The standard link that started it is https://gist.github.com/egmontkob/eb114294efbcd5adb1944c9f3c..., but if you do internet searches for terms like `terminal hyperlinks ripgrep` or `terminal hyperlinks ls` or `terminal hyperlinks delta` you'll find more.
You could probably even use Hammerspoon to initiate the keyboard shortcut if you didn't want to mark the window manually.
It's described here: https://github.com/wez/wezterm/issues/1751#issuecomment-1973...