Recently switched to WezTerm and I'm very happy. Was using kitty before that – loved the set up and simplicity coming from iTerm2. WezTerm is leaps and bounds better in terms of what comes out-of-the-box. My terminal config is short enough to sit all in one screen on my editor. After that, the terminal just... gets out of the way and I don't need to think about it.
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.
Yeah: the kitty developer is definitely the sort who believes that he not only knows better than everyone else how to use a terminal, but that everyone else's opinions are fundamentally invalid. That his terminal fails to correctly render such stalwarts as the Linux "make menuconfig" UI and there are no settings to fix it as he doesn't believe in settings is, to me, telling. I then find reading his posts on issue trackers not just insulting, but even "activating" in a way that is really unhealthy, as it results in me feeling a need to "defend" some random bit of terminal usage with just as much vigor, lest he get away with making everyone else sound like THEY are crazy... it really isn't healthy. I can't know for sure--as we don't live in this reality--but I'd like to think that, even if he and I agreed on literally everything there is to do with terminals, that I'd still have the same mindset that I'd rather write my own terminal than ever use his.
wait... whut? No thanks, I like to customize things
You shouldn't believe things you read in hacker news comments. saurik is lying, probably because he once requested some feature that the kitty maintainer didnt like and refused with good reasons, which made saurik want to curl up into a ball and cry. To say kitty has no configuration options is the exact opposite of the truth. Proof: https://sw.kovidgoyal.net/kitty/conf/
I mean I might be "lying"... or I might be confusing him with the Gnome Terminal developers, with respect to that one specific tiny quote about "not liking settings".
(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.
OK so you are not lying, you are just wrong. Now that you have reduced the scope of your personal attack from he doesn't like settings to he doesn't agree with me about one thing, perhaps you should exercise your new found honesty a bit more and link to the issue where he refused to implement bold as bright and gave his reasons, which are perfectly sensible, namely that having that option means that the developers of terminal programs cannot rely on having a bold font face. Terminals are already limited to using only a single font size, you want to take away the ability to use bold faces as well. And you are trying to sell this as the kitty developer being unreasonable. Shame on you.
Look: my issue is that the kitty developer clearly thinks of himself as "God's gift to terminals". I pointed at one specific issue that I think is "telling" of an attitude of "I know better than everyone else", but I am not at all relying on that issue.
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.
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:
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.
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?
Let's discuss the parts you left out in your carefully constructed attempts at character assassination.
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.
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.
kitty is extremely customizable. That's the main reason I use it.
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 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.
[0] https://bugs.launchpad.net/calibre/+bug/1714107
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.
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."
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.
Totally agree. Though, usually these programmers know how to properly ask a question, make a bug report and/or feature request.
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 am guessing you haven't interacted with the developer of kitty. It is astounding how needlessly rude he is. No matter our expertise, we all have areas of ignorance and it is precisely due to that ignorance that we may not have the language to "properly" frame our question. If we had that knowledge, we wouldn't be asking the question in the first place.
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.
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.
If it works for Linus Torvalds, it might work for him
Like the old Linus. He also over-reacted but there was atleast some reason behind that.
I guess this is what people mean when they say a piece of software is "opinionated"?
"opinionated" != "jerk"
How is the dev a jerk when they don't want to invest time into patching their app for the quirks of another app? Especially when kitty seems to have tmux-abilities out-of-the-box. I mean, you can like their solution or not, but calling them a jerk for not supporting your way?
yep, it is his project. Those that like his opinions will like his software. those that do not will look elsewhere. The beauty of open source
Nah, I love Calibre but he has lousy opinions that he has to eat over time (he migrated Calibre to Python 3 after all).
It depends upon what you mean by opinionated. There is software that expects users to behave in certain ways and there is software where the developer is quite firm about what they will and will not implement. I would say that calibre and kitty fit into the latter category. These applications offer a lot of features and are very configurable, yet they also don't try to be everything to everyone.
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).
Does WezTerm support an equivalent of iTerm's "hotkey window"?
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.
If you use X, you can use tdrop to do this with any window. I have it set up with kitty, pcmanfm, and emacs client.
X?
X11, the "old" [0] Linux graphics server.
---
[0] "old" because there's a new kid in town: wayland.
And a middle-age'd man named XFree86 lol.
https://github.com/noctuid/tdrop is really rather interesting.
Thank you.
Not out of the box, but I use Hammerspoon to implement a global hotkey to show WezTerm: https://github.com/jaminthorns/environment/blob/a609e81f3f41...
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...
I was unfamiliar with Hammerspoon; to those like me, https://www.hammerspoon.org/
I use it to add window snapping to macos:
https://gist.github.com/spartanatreyu/850788a0441e1c5565668a...
Note that this does only the “show/hide’ the window part;
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.)
Is the setting you're talking about the one under Settings>General>Startup>Window Restoration Policy>Only Restore Hotkey Window, or something else?
That's related to it, but the feature per se is more like a specially handled variety of iTerm's profiles. See https://iterm2.com/documentation-hotkey.html, section "Dedicated Hotkey Windows".
That is the first thing I configure in iTerm. To have it slide down like Quake terminal, and hide it from the dock
Yakuake is usually the first app I install on a fresh KDE system.
You can set this up very easily with Hammerspoon, and have it work with whichever terminal or app you want.
I do it using https://gist.github.com/meowtochondria/8b99b8fbf364eec41ef66... on my Debian based machine running X11. I've bound this script to a key as a global shortcut using OS provided facilities. See the comment on gist if you have a different setup and want to adapt it to your needs. Algo: 1. Find path to wezterm binary by looking at desktop file 2. Use pgrep to get pid of running binary from previous step. 3. If no window is running, launch desktop file using gio 4. If window is running, bring it to front using wmctrl
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.
The people who had to deal with the Calibre setuid binaries fiasco in 2011 would probably disagree :) ( https://lwn.net/Articles/465311/ )
I think that's far enough ago that we can't really draw any conclusions from that to today.
It's like someone deciding my current skill based on how good I was when I left university.
While I mostly agree, it looks like the fair amount of the article is about his attitude.
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.
As would anyone that has ever had the displeasure of interacting with him
Oh, and kitty phones home
If you want drama:
tmux:
Phone Home: 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 terminalThis one is the straw that broke the camels back for me: https://github.com/kovidgoyal/kitty/issues/4965
"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
My story is about the same as yours. Kovid's arrogance pushed me away.
I'm kitty + tmux and have been for a while now. What kind of problems were you encountering?
I recently moved from Kitty+Tmux to Tmux only setup. I think the maintainer has implemented most of the features in tmux like split panes, switching, changing layouts etc and is probably why says what he says.
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...
Do you mean Kitty only setup?
I've been a long tmux user, but I've migrated to Kitty only setup. To make my muscle memory feel at home, I configured Kitty with nearly the same keybindings as tmux. Here is my setup https://blog.funcer.xyz/blog/kitty-terminal/
I appreciate his efforts, but tmux from my cold, dead hands. kitty is nice and fast, but tmux is in my blood (and on remote servers where kitty isn't).
How are start-up times?
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).
Just out of curiosity, what reason do you have to do that? Really curious to hear.
400 is a bit extreme, it is as low as my clock will go. But I often go down to 1200 or 800.
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.
Try using `kitty --single-instance`.
I concur, a few problems leading me to migrate from kitty to wezterm are related to tmux, color, and ssh.
Somewhat fresh kitty user (a few weeks now). What's your ssh issue?
Also saw Wezterm pop up last week and definitely decided I'll give it a go here soon.
The first two top results:
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...
While I see nothing particularly egregious about Kitty's maintainer, other than being a bit of a dick, it's not really the job of a maintainer to be your pal.
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.
For those of us wishing to see, what links are you referring to ?
How is WezTerm compared to iTerm2, since you’ve used both?
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?
kitty has the rudest maintainer I know in all of open source software
What problems were you encountering? It's not hard to run tmux (and use all the keybindings with it) in kitty.
As I get older, overly opinionated and dismissive maintainers are perhaps the biggest red flag for avoiding a project now. They often have what looks like the best product out there, but once you get embedded in the product you get stuck in their choices and have nowhere to turn.
Interestingly enough, the article points out something I had the exact same terse and dismissive experience with kitty - following OS theme.