Settings

Theme

Okay, I Like WezTerm

alexplescan.com

488 points by alexpls a year ago · 280 comments

Reader

leblancfg a year ago

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.

  • bramhaag a year ago

    > 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.

    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.

    • godelski a year ago

        > 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
      • _xiaz a year ago

        This 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

        • godelski a year ago

            > 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

      • da39a3ee a year ago

        To be fair the Alacritty author is also really abrasive and unsympathetic to users.

        • godelski a year ago

          I've migrated to Wez already. I actually had issues with them too but wasn't as bad as Kovid. More like what you said "Not our problem, it's X's problem." (Brew devs love to do this too) Leaves a bad taste in my mouth but dismissal is better than dismissal + gaslighting + insulting.

          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)

          [0] https://codeberg.org/dnkl/foot

    • Arnavion a year ago

      >and he's a great programmer

      The people who had to deal with the Calibre setuid binaries fiasco in 2011 would probably disagree :) ( https://lwn.net/Articles/465311/ )

      • Aeolun a year ago

        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.

        • godelski a year ago

          While I mostly agree, it looks like the fair amount of the article is about his attitude.

             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.

      • _xiaz a year ago

        As would anyone that has ever had the displeasure of interacting with him

    • hodapp a year ago

      My story is about the same as yours. Kovid's arrogance pushed me away.

    • twidxuga a year ago

      +1 on the point about humility (or lack thereof), exactly my experience looking at past issues in Kitty.

  • throwanem a year ago

    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.

  • colordrops a year ago

    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.

  • ocodo a year ago

    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.

    • deanishe a year ago

      On the same note, Benny Kjær Nielsen, the developer of MailMate for macOS is absolutely amazing.

      He spent half a day debugging a rather trivial issue with me and even sent me a custom build.

      MailMate: https://freron.com/

    • worthless-trash a year ago

      For those of us wishing to see, what links are you referring to ?

  • saurik a year ago

    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.

    • AdmiralAsshat a year ago

      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

      • gouggoug a year ago

        > he answers questions from newbies and enhancement requests are far more polite and charitable. His ire seems to be reserved for fellow programmers.

        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."

        • imoverclocked a year ago

          > 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.

          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.

          • gouggoug a year ago

            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."

            • thefaux a year ago

              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.

        • AdmiralAsshat a year ago

          > 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.

          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.

      • sva_ a year ago

        > His ire seems to be reserved for fellow programmers

        If it works for Linus Torvalds, it might work for him

      • abhinavk a year ago

        > he answers questions from newbies and enhancement requests are far more polite and charitable. His ire seems to be reserved for fellow programmers.

        Like the old Linus. He also over-reacted but there was atleast some reason behind that.

    • actinium226 a year ago

      I guess this is what people mean when they say a piece of software is "opinionated"?

      • acedTrex a year ago

        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

        • richie_adler a year ago

          Nah, I love Calibre but he has lousy opinions that he has to eat over time (he migrated Calibre to Python 3 after all).

      • II2II a year ago

        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).

      • leblancfg a year ago

        "opinionated" != "jerk"

        • slightwinder a year ago

          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?

    • pmarreck a year ago

      > he doesn't believe in settings

      wait... whut? No thanks, I like to customize things

      • aumerle a year ago

        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/

        • saurik a year ago

          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.

          • aumerle a year ago

            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.

            • saurik a year ago

              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.

              > 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?

              • aumerle a year ago

                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.

          • Aeolun a year ago

            > where the kitty developer is on a vendetta to refuse the historical precedent

            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.

      • mk12 a year ago

        kitty is extremely customizable. That's the main reason I use it.

  • adumer a year ago

    Interestingly enough, the article points out something I had the exact same terse and dismissive experience with kitty - following OS theme.

  • iaresee a year ago

    I'm kitty + tmux and have been for a while now. What kind of problems were you encountering?

    • bibstha a year ago

      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...

  • bee_rider a year ago

    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).

    • fn-mote a year ago

      Try using `kitty --single-instance`.

    • teamspirit a year ago

      Just out of curiosity, what reason do you have to do that? Really curious to hear.

      • bee_rider a year ago

        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.

  • setopt a year ago

    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?

  • gaws a year ago

    > "How do I set up tmux with kitty?"

    What problems were you encountering? It's not hard to run tmux (and use all the keybindings with it) in kitty.

  • KolenCh a year ago

    I concur, a few problems leading me to migrate from kitty to wezterm are related to tmux, color, and ssh.

    • cpuguy83 a year ago

      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.

      • KolenCh a year ago

        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...

  • _xiaz a year ago

    kitty has the rudest maintainer I know in all of open source software

binary132 a year ago

In my experience Wez has been shockingly responsive to GitHub issues and usually fixes things (if they’re actually wrong) within a day or two. I’ve only found one or two minor quibbles involving modifier keys over SSH and overall the functionality is basically perfect for my needs. Plus it’s nice and fast.

(Former avid Alacritty user but needed better modifier support for remote emacs.)

  • bbkane a year ago

    Yes!! I opened an issue ( https://github.com/wez/wezterm/issues/4917 ), and not only did he answer it and my side question, he merged the two PRs I made to fix it super quickly!

    • yonatan8070 a year ago

      A bit of a tangent, 3 days ago I opened a small issue with RiMusic, not only did the maintainer reply within a few hours, they implemented the feature I requested and it is already in the F-Droid build running on my device

  • hrez a year ago

    I didn't have as positive experience. Granted I commented on a closed issue. In any case it was closed as "won't do" and my comment was ignored. I didn't feel like opening a new issue for the same that was already dismissed. https://github.com/wez/wezterm/issues/4706

    • eredengrin a year ago

      The way you phrase that makes it sound like you had a negative experience, was that your intention? For all we know he didn't even see it, there's thousands of issues and PRs and it's not like this is his full time job, so missing a message sounds like a pretty expected and neutral interaction to me. There's a reason they used the word "shockingly" to describe his response time, it's because it's amazing that Wez can respond to even a fraction of all the messages as quickly as he does.

      Also in case you wanted to bump up the priority of that bug, he does have github sponsors enabled.

      • hrez a year ago

        The showstopping bug (or misfeature?) reported by others was brushed off, and my comment was ignored. It didn't seem like the path forward would be a pleasant one, so I've uninstalled Wez and gone back to a terminal that works for me. So yes, you could say it was a negative experience. I gave Wez a try as my daily driver, but it just didn’t pan out despite my efforts.

    • naikrovek a year ago

      Yeah Wez is limited by tmux behavior. If tmux breaks up one line into many, wezterm can’t undo that.

      Wes is right about wezterm domains though. The native domains feature and pane support I think will meet the needs of most.

      • hrez a year ago

        It's the same with no tmux. And it's fine with other terminals. See my comment in the issue.

  • nine_k a year ago

    Regarding remote Emacs: WezTerm allows to completely capture and redefine key combinations. There's no good way to send things like C-S-", the terminal protocol just does not support them. So I made WezTerm send "<f12> c s '" instead, and added extra bindings in Emacs. This F12 trick allowed me to send quite complex combos that terminal protocols can't support.

    • binary132 a year ago

      Nifty! Appreciate your sharing that. I’ve managed to work around the few annoyances with remote for the most part but I’ve also accepted mostly that it’s just not going to be quite the same. I guess this is one or two steps closer.

rob74 a year ago

I originally installed WezTerm because I switched from Kubuntu to Ubuntu and wanted some of the features of Konsole (infinite scrollback, searching the scrollback) without actually installing Konsole (I know you can install it under Gnome too, but it just felt... wrong). And yes, it instantly grew on me, although (as I can see from this article) I have barely scratched the surface of its configurability. My only complaint is that its many features are not really discoverable. Sure, the documentation is really good, and the author is very engaged and helpful, but... one example: I looked up how to select large blocks of text using just the keyboard, I did it once, said to myself "I have to remember this!", then promptly forgot it and now I'm back to selecting text with the mouse like an absolute noob because all in all for the few times I do this it's faster than googling that documentation page again...

(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)

  • bbkane a year ago

    I keep my Wezterm config in a dotfiles repo and I keep notes like this in the README ( https://github.com/bbkane/dotfiles/tree/master/wezterm ), precisely to find them easily later!

  • barnabee a year ago

    Quickselect mode is amazing though!

    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).

  • monzool a year ago

    I am to understand that there is a way to do infinite scrollback and live searching the scrollback in WezTerm? I have not really found out how to do this like Konsole, and is the reason of often end up having a Konsole session running also. It is two incredible features when tailing live logs

  • ajaxnet a year ago

    A side question, why switching from Kubuntu ? Because I'm thinking to install it.

vladstudio a year ago

Upvote! I tried Mac Terminal, iTerm2, Kitty, Warp, etc etc, and settled with WezTerm. Easy to configure, fast, looks nice. I created a theme for it too:

https://tiniri.vlad.studio/

linsomniac a year ago

I've been using wezterm for around a year, and sponsoring Wez on github, and it's been a fantastic terminal and he's a great developer. One of the things I love most about it, which the article mentions it is not going into, is the quick copy and other copy modes. I use them All. The. Time. C-S-Space and type the letters that appear next to the item you want to copy.

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.

  • ursuscamp a year ago

    One really cool feature of the quick copy mode is that if you do the uppercase version of the letters it will automatically paste the value back into the terminal prompt.

    • linsomniac a year ago

      Agreed, I use that for probably 80% of my copies. Also works in the regular select, if you "Y" instead of "y" it yanks and pastes.

  • Graziano_M a year ago

    Wow TIL about that QuickSelect. I will be using that a lot.

bdhcuidbebe a year ago

Whats not to like of 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.

  • cbm-vic-20 a year ago

    The one thing I don't like about WezTerm, at least the reason why I stopped using it, is related to how it handles copying wrapped lines into the clipboard. It might just be me, and how I use tmux, but I found that when copying a line that gets wrapped, it includes a newline in the copied text. Very annoying, and I think it has to do with the interaction between WezTerm and tmux.

    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!

  • progbits a year ago

    My main pain point switching between work macbook and personal linux machines is the shortcuts. The macos configuration options are limited and require various hacks, and while I could configure things on linux to match I really don't like the macos shortcuts. So I end up with a weird mix and each time I switch keep pressing the wrong keys all the time...

    Anyone found a good setup that works for them?

    • gaws a year ago

      Look into using Keyboard Maestro and configuring shortcuts exclusive to Wezterm.

  • drdaeman a year ago

    It is not performing well for me, tends to just freeze for a few seconds when switching tabs after some time. No idea why (large scrollback is my only guess, but I'm not sacrificing that) and how to diagnose this.

    I switched to Kitty, and while it has its share of issues, at least it works.

  • Barrin92 a year ago

    that's where the language choices really matter I think. Lua as a programmable configuration language shines because it makes it quite easy to make environment specific changes. Also I think underrated side effect of Rust. A lot of the modern rust tooling has great cross platform support probably because there's a good abstraction layer between language and OS.

    • 0cf8612b2e1e a year ago

      Isn’t that more just any language not C or C++? Go, Rust, Java, Python, etc all abstract away significant OS specifics. There are always going to be some thorny differences, but any modern language makes cross compatibility possible in a way that is more challenging for C.

      • blt a year ago

        It's not just the language/library: build systems are also a big obstacle for x-platform GUI apps in C.

  • hughesjj a year ago

    Also it's well tested on all three. One look at wez' repo vs the rest in terms of GitHub actions, issues, and documentation was all the convincing I needed back in like 2019. Haven't turned back since. Heck it even supports tabbing out of the box!

    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.

  • jasonjayr a year ago

    I used wezterm a long while after switching from urxvt. There was a GPU memory leak or something, becuase after opening a bunch of terminals, I found that Graphics in firefox started lagging and dragging. I switched to kitty (And Microsoft Terminal on windows), but I use tmux inside (apparently much to the authors annoyance).

    I should wezterm another look ...

dmd a year ago

The one thing that keeps me on iTerm2 is Edit->Selection Respects Soft Boundaries.

"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.)

https://github.com/wez/wezterm/issues/596

  • dmd a year ago

    (self-reply) This is basically the Microsoft Word bloat problem. NOBODY needs all the features, but everyone has 10 niche features they want, and nobody wants the same 10. So to get 10 niche features, you accept bloat.

  • yonatan8070 a year ago

    That sounds incredible, is there any terminal that supports it on Linux?

  • nixosbestos a year ago

    Meanwhile zellij just supports this natively if your terminal supports the right OSC thingy. Which it does if you're in this thread.

    edit: rough, my bad. missed the via "in irc" part.

  • jph a year ago

    Yes 100%. This is a superb UI/UX feature once you see it in action.

  • ledauphin a year ago

    i've been using iterm for... years and had never noticed this setting. Which is a killer feature for my use of emacs.

    thanks!

steelbrain a year ago

Going to echo some of the thoughts of sibling posters. I'd been an iTerm2 user since I first started using macOS nearly ten years ago.

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.

  • elashri a year ago

    > 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.

    Let me guess, that's wrap and Tabby or extraterm respectively?

skim a year ago

Wez is coming out with a book too on systems programming in Rust.

https://leanpub.com/sysprog

sodapopcan a year ago

Nice write up, may try out WezTerm though I only just recently switched to Kitty and I don't like hopping around too often. Correction related to Kitty, though. It does not use either YAML or TOML, it has its own simple config DSL and is otherwise fully scriptable via Python.

alberth a year ago

OT: I'm most excited by Ghostty (created by the founder of HashiCorp).

https://hachyderm.io/@mitchellh

  • lytedev a year ago

    What are you excited about concerning Ghostty? I revisit the project every once in a while, because I think Zig has a wonderful and bright future, but I don't think I could ever use a terminal emulator that isn't completely open-source. WezTerm has an _enormous_ leg up over Ghostty in this regard IMO.

  • matricaria a year ago

    I love Ghostty. On my old MacBook, it was by far the fastest terminal emulator (yes, I tried all of them, also WezTerm and Alacritty). Now on my new Mac it is still the most beautiful terminal emulator.

  • lawn a year ago

    It feels like I've been waiting for an invite a long time now. I'm eager to try it out.

    Then again, I should probably try WezTerm first.

bloopernova a year ago

Oh, very cool that it uses Lua for its configuration. That opens up a massive potential for new behaviours and customization.

Emacs uses Lisp in a similar way. What other applications use a programming language for their configuration?

  • lawn a year ago

    Neovim is the obvious example here, also relying on Lua.

    Neovim of course also supports Vimscript, although writing anything more complex is much nicer in Lua.

  • kragen a year ago

    probably the most popular instances of this approach are firefox, chromium, and safari. the unix shell, godot, unity, unreal engine, truetype, and postscript are probably also worth a mention

  • johnmaguire a year ago

    awesome-wm!

  • bbkane a year ago

    NeoVim also uses Lua and I think nginx does too.

  • kccqzy a year ago

    XMonad (a window manager) uses Haskell.

  • awesomelvin a year ago

    Not sure if it counts but the suckless project (e.g. st or dwm) use C (its source code) as config :)

globular-toast a year ago

A problem I have when I see stuff like this with tabbed interfaces, splitting etc. is it's all at the wrong level of abstraction and compensating for a hopelessly deficient window manager. If you use a window manager like sway then you can layout tabs, splits etc. to your heart's content for any type of window you like. You don't need a terminal emulator to do this for you.

Given that I do already use a window manager like sway, is there much else worthwhile compared to any other terminal emulator?

  • eredengrin a year ago

    Wezterm has built in ssh support where if you open a wezterm ssh window to a remote host and then open new tabs/splits within that window, the new tabs/splits are added as part of the existing ssh session automatically. It also allows you to host the session on the remote machine (kind of like tmux) and when you connect you get back all your previous tab/split organizations. From that perspective it can make sense to have the terminal own the layout organization.

kccqzy a year ago

At a previous employer (Google) I really enjoyed using iTerm2, especially its tmux integration (`tmux -CC attach`) and shell integration (the terminal being aware of shell prompts and shell commands and outputs so it can do something intelligent).

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.

terraplura a year ago

Been a long time user of Alacritty but recently switched to WezTerm. Set up was super quick and having graduated control over opacity and blur was brilliant. Also love that it supports Font Ligatures.

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!

  • nebben64 a year ago

    Thanks for sharing! Just curious, what made you switch from Alacrity? (I was also debating it vs. WezTerm)

    • terraplura a year ago

      Apart from the granular blur control. It was mainly the ligatures support, Alacritty’s developer doesn’t seem too keen on it. And it seems to be the only terminal that renders the ANSI blinking escape code properly (although I don’t think it distinguishes rapid and slow blink). I think it’s a cool feature!

      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.

core_dumped a year ago

I’m glad WezTerm is getting the attention it deserves. I just wish he’d change the icon though… it needs a facelift!

  • ObscureMind a year ago
  • michael_michael a year ago

    Yeah. I wish subtle design cues didn't turn folks off from useful software. That said, when I was test driving terminals a few months ago, I saw WezTerm and just skipped it because the main image shows the opacity-enabled terminal with a Cyberpunk image in the background, and that just seemed…amateurish? Dunno.

    This article is convincing me to give it a second look.

andrewfromx a year ago

Things I noticed using it:

!= 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

zoidb a year ago

Nice to see wezterm on the frontpage! For anyone giving it try beware that link detection doesn't work super well for links containing a `)` character which is something you run into frequently on markdown documents. More info in https://github.com/wez/wezterm/pull/4212 which has a workaround.

theusus a year ago

Even though Wezterm has lots of options but it's slow compared to Kitty and maybe even Windows terminal

  • Ringz a year ago

    Yep. Tried Wez and switched back to Kitty because it’s much faster.

    • lambdaba a year ago

      on which platform?

      • Ringz a year ago

        Windows. Didn’t test it on my MacBook M1. Both running nvim with the same config.

      • benfrain a year ago

        macOS for me. Zipping up and down a buffer is noticeably faster (drawing/render wise) in the latest Kitty compared to WezTerm. Using 2019 Intel MBP

sidmitra a year ago

https://wezfurlong.org/wezterm/colorschemes/

^ There's a host of built-in color schemes.

ishaanbahal a year ago

Thank you for this write-up! Going to copy a couple of things to my config. TIL, Wezterm has a command palette.

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.

FL33TW00D a year ago

WezTerm is just so much faster than iTerm2, wish I had switched sooner!

Video demonstrating the speedup: https://x.com/fleetwood___/status/1807772624518316495

  • 1-more a year ago

    Amen. My motivation for switching was that iTerm2 would hang forever after I hit one of my Rectangle/Spectacle shortcuts. Many whole seconds waiting for it to go through one of the transitions in the 1/3 -> 1/2 -> 2/3 screen-size cycle.

  • abhinavk a year ago

    Is it better in typing latency though?

    • rfoo a year ago

      No, and unlike the siblings I can actually feel it.

      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.

    • hughesjj a year ago

      ..you have noticable latency when you type? I'm genuinely sorry, that would infuriate me.

      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.

      • fmajid a year ago

        Dan Luu had studied terminal input latency: https://danluu.com/term-latency/

        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.

        • hughesjj a year ago

          Wow, and that's before plugins.

          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)

selectnull a year ago

Like a few people in this thread, I was a decade long user of iTerm2. Can't really remember what was the reason to research other terminals, but I did and among those I tried, WezTerm was the clear winner.

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?

myst a year ago

Am I a rare one being happy with Terminal.app?

  • Myrmornis a year ago

    It doesn’t support terminal hyperlinks, which are produced by many tools nowadays (rg, fd, ls, delta).

    • myst a year ago

      I have no idea what you are talking about.

      • Myrmornis a year ago

        Ah, OK. Basically many terminal emulators allow you to create text that is clickable, with the click going to an arbitrary URL. That could be a URL on the internet, but there are more interesting possibilities: e.g. you click on a line number in your terminal and it opens in your editor / IDE at that line number.

        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.

  • robinsonrc a year ago

    I was until I started needing things like true colour support and was forced into trying other options. But if you haven’t noticed anything missing or not working with software that you use then Terminal.app is a fine choice

  • abathur a year ago

    I'm pretty happy with it.

    I try alts when they come up since I might like to use the same thing on macOS and Linux, but I've yet to try one that both has the right features and doesn't feel sluggish.

aftbit a year ago

I really _want_ to like WezTerm but the font rendering just looks bad compared to Alacritty. I understand that this is a very personal feeling and plenty of people like the WezTerm way better... but not me.

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://github.com/wez/wezterm/issues/5331

  • spartanatreyu a year ago

    I'd probably try a few fonts first just to see if it's an issue with rendering, or if the font itself is problematic since sometimes it's the font's fault itself when it's being used in a different environment. (font internals are a crazy rabbit hole to dive down)

    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/

  • hughesjj a year ago

    Oh man, fonts are fun. Ironically I moved off of alacrity and on to wezterm for font rendering reasons (p10k+patched nerd fonts), but that was pre pandemic

    • taejavu a year ago

      I’m using patched nerd fonts seemingly without issue on alacritty, were your problems specifically with p10k?

  • duskwuff a year ago

    I gave WezTerm a spin and it had some showstopper bugs rendering my preferred font (including a vertical offset on "b" to the extent it looks like "h"). Something's definitely not right here.

  • taejavu a year ago

    Oh wow I was expecting it to be slightly worse, like the subpixel rendering wasn’t quite right. But that is _bad_, to the extent it looks like a totally different font. Dealbreaker.

roydivision a year ago

I recently changed from Alacritty to WezTerm due to bugs in the former and I don't have any complaints so far. It is part of my daily professional workflow, works well with Tmux, under WSL. Great piece of software.

  • robinsonrc a year ago

    I went in the other direction and use Zellij for multiplexing. It works well for me, and I’ll be keeping an eye out for the Ghostty public beta to see how that compares. Great to have all these good options.

  • CoolCold a year ago

    for myself, I couldn't find good reasons to keep using WezTerm vs Windows Terminal - not saying WezTerm is not capable terminal, of course.

kokada a year ago

I also recently switched to WezTerm because it is the only terminal that seems to work cross-platform that is also well supported in Nix/nixpkgs. Before I was using Kitty in NixOS and iTerm2 in macOS, but having one configuration for both OS is good.

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.

  • Macha a year ago

    Kitty works on macOS too?

    • kokada a year ago

      Yes, but when I did the migration Kitty wasn't supported in macOS in nixpkgs (i.e.: nobody did the package integration). Now looking at the package it looks like it should work, but I now think WezTerm being superior in at least a few things (e.g.: the Lua configuration file is definitely nice).

alskdj21 a year ago

As a neovim user, wezterm's lua config was a welcome surprise. Imo, its best feature is its command palette (Shift+Ctrl+P). Tremendously helps when you're just getting started. It has also a superb font-related configurations. I do hope I could map specific Unicode codepoints to a particular font, as is the case with kitty.

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.

kelsey98765431 a year ago

I will literally switch OS to anything that can implement iTerm2's tmux integration.

  • E39M5S62 a year ago

    I wrote https://github.com/zdykstra/tmuxc as an alternative implementation of iTerm2's tmux integration. It's terminal agnostic; it just runs a command for each terminal. Depending on the terminal you use, you could probably make it spawn each tmux pane into a dedicated tab.

    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.

  • jonhohle a year ago

    I only use tmux on remote machines (because Terminal has all of the features I want and don’t need session management locally). Does anything integrate with remote tmux? It would be great to get native tabs for remote tmux windows.

    • kelsey98765431 a year ago

      Yes, i literally sometimes need to manage dozens of machines at once, all with various tmux sessions monitoring tasks etc. being able to use the same keybinds for split pane, move between pane, smooth scrolling WITHOUT entering tmux curses based scrolling mode, and local buffering... number one reason i main macos after using linux for decades.

      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.

    • galkk a year ago

      Iterm2, as parent mentioned.

      Run tmux -CC on your remote server in your iterm2 and you’ll get native windows for tmux panels

maztaim a year ago

I'm a long time tmux fan, but I've been dealing with odd issues related to mouse actions. This is somewhere in alacritty, *vim or tmux. So I futzed with all of them, tried different terminals, all while telling myself it couldn't be tmux. So I just ignored it for over a year. I finally went back and gave wezterm a serious try just a few weeks ago and I am very happy to have switched. The mouse issues I was seeing go away. Splitting panes and resizing lots of panes is fast and responsive. It's built in so copying from a vertical split pane doesn't include the other pane like in tmux.

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.

  • hypnotist a year ago

    I use tmux daily. tried to like wezterm but issues with clipboard and resizing made look for another option. Very happy with Tilix now. https://gnunn1.github.io/tilix-web/

    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.

  • bdhcuidbebe a year ago

    for tmux replacement, check out zellij for a modern take.

    https://zellij.dev/

    • maztaim a year ago

      Thanks for the link. I've tried this in the past. I feel no reason to try this with wezterm as what I need is already included.

dgacmu a year ago

Ah, rats. It looks nice but to save others a bit of searching, if broadcasting to multiple panes is a requirement for you (something I use often in iterm2), it's not yet supported and not planned for support: https://github.com/wez/wezterm/issues/2658

  • eredengrin a year ago

    Wez left the issue open and said "I personally have no plans to implement this any time soon.", so I have to imagine he's open to PRs. He just has other things to spend his own time on.

monzool a year ago

I’ve have been using wezterm for a couple of years now i guess. I am super satisfied with it, and show my appreciation by being a github sponsor. One thing that I really appreciate is, that when I at $work have to use MacOS, I can bring my configuration with me and have the same experience as on my linux box. Other projects do provide that also of course. I did try Alacritty, but that was way to unstable. Kitty have a lot of good stuff going on as well, but it was indeed the lua configuration options that made me pick wezterm. I think the only things I’m missing from Konsole is the infinite scroll buffer and the regex search overlay (continuous search without entering a special copy/search mode)…

el_memorioso a year ago

I used WezTerm for a while and loved it, but then I discovered it had some strange interactions with other programs that use the GPU or OpenGL. In my case, when running WezTerm, the robotics simulation tool Gazebo Classic [0] would only launch properly 1/3 to 1/2 of the time. The rest of the time the simulation appeared to start, but no display ever came up and the program eventually segfalted. I thought this was a Gazebo problem, since it is a bit touchy, but switching to another GPU-accelerated terminal like Kitty or Alacritty solved the problem. I guess the lesson being, if your GL program is misbehaving when launching from WezTerm, try another terminal to see if that doesn't solve the problem.

[0] https://classic.gazebosim.org/

javierhonduco a year ago

Haven’t had the chance to play with WezTerm just yet but wanted to share that the author is an incredibly smart, friendly, and humble.

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.

WD-42 a year ago

It’s a great terminal but still a bit warty on Linux/wayland. Unfortunately Wez is on OSX, I assume.

enricozb a year ago

One thing I was looking for just yesterday was a way to dump my terminal's (alacrity) scrollback - escape sequences and all - to stdout. I wanted to pipe it to my text editor to search. Alacrity doesn't seem to have this unfortunately, but wezterm does with get-text.

  • saurik a year ago

    Have you tried xterm? It takes a bit longer to configure, as its defaults are universally horrible, but I've found the result to be worth the effort. FWIW, it has this feature you are talking about as part of it's "print" functionality. I bound ctrl-shift-P to print-everything() and then set printerCommand to `xterm -class modal -e sh -c 'vim +"setlocal buftype=nofile" +"g/^$/d" +"normal G$" - <&3' 3<&` (which might be crazy; I didn't think through it for very long). You can use printAttributes to tell it to include the format escape sequences, though (personally) I have that turned off for this purpose (as I find it makes it more difficult to search in my editor; but, again: I didn't spend much time on the editor side of this arrangement).

    • enricozb a year ago

      Hmm I'll have to look into this. After some basic playing around with this feature it might be workable. In my head I had my editor taking over the current program in the terminal, and after exiting it would return to the previous program, but that involves some backgrounding and job manipulation that I haven't given too much thought. Thanks for the tip.

robxorb a year ago

Just tried it. I liked how easy it was to set up colours/fonts etc, using the config file.

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.

  • spartanatreyu a year ago

    Select all seems a bit risky in a terminal because it could contain way more information than you'd expect.

    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:

    https://github.com/wez/wezterm/discussions/2026

pmarreck a year ago

Nice! I've been using Wezterm for a couple years.

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.

anothername12 a year ago

What are you all doing that requires such fine grain selection of a terminal?

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.

CafeRacer a year ago

I have work to do! I won't drop everything right now to check it...

Okay, maybe for just a few minutes.

eigenvalue a year ago

I'm looking forward to the eventual release of the new terminal that Mitchell Hashimoto has been working on for fun for a few year, Ghostty. From what he has shared online so far, it looks really awesome and well designed.

eviks a year ago

> My favourite WezTerm feature is its use of Lua for defining config.

That's indeed one of its best features (despite the warts of the language) as you're not as limited in what you can do vs. the data serialization alternative

jpeeler a year ago

Can lazy internet help me replicate kitty's word selection (https://sw.kovidgoyal.net/kitty/kittens/hints/) in WezTerm? I believe one would just have to adjust the config for "quick select": https://wezfurlong.org/wezterm/config/lua/config/quick_selec...

mianos a year ago

It seems great but it's unusable to me as it does not support any port forwarding and my connections always go through a few jump boxes.

The built in multiplexing is like magic.

theshrike79 a year ago

I really seem to like software that's configured with Lua.

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.

benreesman a year ago

Hardware accelerated ligatures. QED.

adem a year ago

I tried WezTerm on Windows because I was looking for a terminal with ligature support and lower input latency than Windows Terminal. Unfortunately, it still had higher input latency than cmd.exe. The only terminal with ligature support that comes close in terms of input latency is contour (https://contour-terminal.org/).

  • eviks a year ago

    did you measure latency? Curious as to how big the difference is

    • adem a year ago

      I can't provide you with numbers but back when I used Windows on my work machine, I recorded my screen + microphone input using OBS to compare they recorded keystroke sound and appearance of the character on my screen. I was able to confirm my suspicion in that WezTerm yielded higher input latency. This was especially noticeable when using helix inside of WSL - movement in normal mode would always sort of lag behind the keystrokes.

      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.

alexcaza a year ago

As a fellow iTerm2 to Wezterm convert this hit home. There’s loads of useful stuff in here, too! Thanks for the write up. I particularly like the projects setup. I built Weztermocil to achieve something similar that uses itermocil’s configs since that’s what we use at work.

https://github.com/alexcaza/weztermocil

auditor_3d a year ago

I have tried so many I can't count. I have settled on one that seems to be not as well known but should be. Black Box Terminal. It checks all kinds of great boxes for me, I love it.

https://github.com/yonasBSD/blackbox-terminal

gtirloni a year ago

The main feature for me is splitting panes. I used to that in tilix and got western working exactly the same (can't stand tmux , sorry).

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.

  • abhinavk a year ago

    Same. Panes and tabs are must in a modern terminal emulator. I like tmux but not on my workstation.

    • bravetraveler a year ago

      I'm with you! tmux is pretty much a non-starter for me beyond a remote job manager.

      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.

andrei_says_ a year ago

I’ve been using western but unable to search my command line history or find the relevant documentation.

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?

greazy a year ago

I've been using wezterm for more than a year. The defaults are very good.

I need to look into all the advanced features.

tambourine_man a year ago

This looks very interesting. I’ll have to look at it closer later.

https://wezfurlong.org/wezterm/multiplexing.html

Thanks for posting

replete a year ago

iTerm's quake-style visor mode bound to a hotkey is too good to give up...

  • lambdaba a year ago

    On macOS you can easily set this up with Hammerspoon, and it'll be independent of the app being toggled, as it should.

  • eviks a year ago

    dont think you need to give it up, there is a description on how to do that in https://github.com/wez/wezterm/issues/1751

  • BiteCode_dev a year ago

    Often you hear it should be the desktop job to do this, but given most of them don't, it's moot.

    • replete a year ago

      I wish I could bind applications to slide out from left and right, I use slidepad on Mac which is a slide out web browser, and TotalFinder which has a visor feature for the bottom. Little things like this keep me on Mac to be honest

    • rekoil a year ago

      I'm not saying you're wrong, but I want the feature.

      I have it in iTerm, and I don't in WezTerm.

      We can blame Apple if we want, but they are not going to implement this feature for us.

  • lkuty a year ago

    "quake-style visor mode" what is that feature? I am currently using iTerm2.

    • replete a year ago

      In Quake, the video game, a console would slide down from the top of the screen when you pressed tilde. Combined with splitting terminals its incredibly convenient to have 4 or 5 terminals toggle on a hotkey

  • marliechiller a year ago

    This the the one feature keeping me from jumping. Its so handy!

colesantiago a year ago

There are so many terminals out there.

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?

  • ishaanbahal a year ago

    For me, speed, simplicity in configuration, and no AI is more or less a good start. I moved from iTerm to Warp recently, before switching to wezterm, and the only reason i dropped Warp (despite signing in) was that it comes in your way a lot, the click to focus on blocks becomes a hindrance for me (I hardly care for the previous blocks), the constant reminders in Red to update and obviously the AI prompting, albeit to the side, they keep trying to find a way for me to use it, but I'd rather stick with CTRL+R or quick google search than write a coherent sentence explaining things to a LLM.

    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.

nopcode a year ago

Why do people mod their terminal prompt to display the current date/time?

It feels like one of these "ricer" things like opening 9 terminals just to run cmatrix and screenfetch.

KingOfCoders a year ago

Would like to switch from Tabby on Windows to WezTerm, but would wish the Win installer would setup WSL2 so it just works. For now I don't want to get into learning a Lua config.

xrisk a year ago

You can dump iterm2s config into a file and sync it to other machines.

Granted it’s not meant to be edited directly but rather via the GUI, but yeah it’s possible to persist it if you want.

  • kamikaz1k a year ago

    Every time I’ve tried to do that, it doesn’t carry over.

    Does it support all the configurations?

WuxiFingerHold a year ago

I had a bit FOMO not using TMUX. But WezTerm and a handful of keybindings for creating tabs, panes, new windows and moving around solved that for me.

weinzierl a year ago

So many comments from people coming from iTerm. What do you have in your WezTerm config to make it more like iTerm?

  • spartanatreyu a year ago

    As a fellow iterm2 refuge, here's my config:

    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.

snapplebobapple a year ago

serious question: why aren't you guys doing all the extra feature stuff in zellij and not having to care so much about what term you are using?

throwaway1194 a year ago

Does anyone know what the default colorscheme is on wezterm?

test1235 a year ago

I've been using wezterm on windows for a while and still not managed to work out how to close a split pane. Is this a bug?

tracker1 a year ago

I'll need to look at it again. Mostly been using Tabby lately, which I like aspects of, but it can be sluggish. I really like the new Microsoft Terminal for Windows, but it's Windows only, unfortunately and I mostly use Linux and Mac.

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.

rdtsc a year ago

I like it too, and have switched from iTerm2 to WezTerm recently. I tried some others, but WezTerm has window splitting which I use quite a bit so settled on it. Lua config is nice, although I am a minimal config kind of a person, so only have a few settings in there.

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.

  • replete a year ago

    ITerm has window splitting btw

    • rdtsc a year ago

      I know that’s why looked for something that also has it. Alacrity didn’t from what I could see.

throwaway1194 a year ago

Try it on Asahi next.

junon a year ago

Big Wezterm fanboy here.

vijucat a year ago

If I'm fiddling with the terminal or the font, I know it's because I'm procrastinating. I've trained myself to quickly recognize such side-quests and feel a quick punch of hormonal urgency, which helps me get back to work (with mintty and Consolas). You don't need the bells and whistles.

  • pmarreck a year ago

    That's correct if it's always or very often your M.O., but if you rarely mess with it? How about if you spend some time fixing any annoyances that have accrued over time thanks to "involuntary unpaid vacation time"?

    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 >..<

    • vijucat a year ago

      As an aside, I'm surprised how Apple fans think they're the one with the aesthetics advantage when their Lord and Master allowed them to change the color of their menu bar in...2023? :)

      • pmarreck a year ago

        That's why I'm a NixOS guy now. Mostly. ;)

        The main thing holding me back is the Apple ecosystem integration with my other iOS devices.

        • vijucat a year ago

          That's hardcore. I admire people who work on Linux (I just use WSL 2 Ubuntu on Windows). Apparently, NixOS has it's fans! See:

          https://www.reddit.com/r/NixOS/comments/14clrjh/how_is_nixos...

          • pmarreck a year ago

            yeah man, I remember reading stuff like that before I was sold on it and eventually it got to me (probably after another borked Arch install) and I was like "fuck it, I am diving into this mess come hell or high water" and...

            ... 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

  • qweqwe14 a year ago

    This, unironically, is entirely correct. Some people spend way too much time configuring stuff that doesn't matter.

    "If you've never spent hours ricing your OS, you have no heart. If you still do, you have no brain."

Keyboard Shortcuts

j
Next item
k
Previous item
o / Enter
Open selected item
?
Show this help
Esc
Close modal / clear selection