[HN Gopher] How to Obsessively Tune WezTerm
       ___________________________________________________________________
        
       How to Obsessively Tune WezTerm
        
       Author : todsacerdoti
       Score  : 51 points
       Date   : 2025-10-29 19:39 UTC (3 hours ago)
        
 (HTM) web link (rashil2000.me)
 (TXT) w3m dump (rashil2000.me)
        
       | 0cf8612b2e1e wrote:
       | Could someone sell me on one of these alternative terminals
       | (kitty, ghostty, wez, etc)? There is probably something I am
       | missing not using GPU backed rendering, but I don't know what I
       | don't know.
        
         | andai wrote:
         | I tried a few of them and they were all way slower than
         | xfce4-terminal. So I just kept using that.
         | 
         | I don't really dump megabytes of text into the terminal, they
         | might have an edge there? (I found that xterm is much faster
         | than xfce4-terminal for that.)
        
         | corytheboyd wrote:
         | I just recently decided to replace iterm2 with wezterm when I
         | started moving macbook over to nix. iterm2 is about the only
         | one that didn't work well for this, since you can't source
         | control the configuration (import/export doesn't cut it)
         | 
         | Any of the ones you mentioned would probably work good with nix
         | too. I don't really care about the config being scriptable at
         | all, it was just the first terminal that easily let me set all
         | of the keyboard shortcuts I wanted, so I stuck with it.
        
           | jamesgeck0 wrote:
           | iTerm2 does support source control; I've got my settings in a
           | git repo managed by Chezmoi. In the settings dialog, under
           | "General" -> "Settings", there's an "External settings: Load
           | settings from a custom folder or URL" option.
        
             | pksebben wrote:
             | I've also gone wez from iterm2, and you hit upon why. Don't
             | ever make me click on things. I can't script => modify =>
             | export clicking on things. When you make me click on
             | things, you've defined my interface for me, which I did not
             | ask for.
             | 
             | I suppose I'm a bit of an extremist, though.
        
         | lordgroff wrote:
         | Kitty and wez both have the ability to present graphics on the
         | terminal which may sound like a solution in search of a
         | problem, but once you start using the capability, it's hard to
         | live without it.
         | 
         | Wez is also cross platform so I get to use it on my Linux and
         | Mac and my (Ugh) Windows work machine. Configuration being done
         | in Lua is also something I quite like, but your mileage may
         | vary on that one.
        
           | daotoad wrote:
           | I was using Wezterm because of the cross platform and the lua
           | config (let's me reuse my mad lua skilz from keeping my nvim
           | config).
           | 
           | The thing that made me switch to Ghostty was the image
           | support in wez didn't play well with tmux.
           | 
           | After testing wez, kitty, and Ghostty, I ended up going with
           | Ghostty.
           | 
           | I do miss the idea of the whole lua config thing, but since I
           | never did anything with it, I can't treat that as a practical
           | concern.
        
         | rao-v wrote:
         | All I want is terminals to share config across MacOS, Linux and
         | ideally Windows and have great support for SSHing into low end
         | boxes with some minimal persistence solution like tmux on them.
         | In an ideal world I would not have to think about mouse capture
         | and scroll modes, they'd work seamlessly across my device and
         | the devices I'm SSHed into.
         | 
         | It shocked me when I got back into playing with multiple
         | machines after over a decade that this mostly still does not
         | exist.
         | 
         | Instead we're finally doing gpu rendering (which is amazing but
         | ... surprising for this to be the 2025 topic du jour?)
        
         | foobarqux wrote:
         | The main features I use are
         | 
         | 1. quick-select the output in the terminal (select files/paths,
         | urls, etc and either copy or paste them at the cursor). This is
         | very useful as you often don't have the foresight to pipe the
         | command to pipe the output of the command to some selection
         | mechanism and even placing text on the line-editor is not that
         | easy by default.
         | 
         | 2. view images (sixel or kitty protocol). This is pretty useful
         | visual analog to cat that doesn't require opening another
         | program and works over ssh. Also for video.
         | 
         | There are some other nice utilities for doing things like
         | downloading files directly in the terminal (it2dl for iterm and
         | kitten transfer for kitty).
         | 
         | kitty doesn't work out of the box on macos if I remember; you
         | have to set configuration for option/command etc.
        
         | fwip wrote:
         | To be completely honest, the reason I switched was for true-
         | color support in my editor (vim), rather than being limited to
         | just 256 colors.
        
         | prmph wrote:
         | All I know is that on MacOS iTerm2 is unmatched. Every few
         | months I go in search of something similar to it (as a backup),
         | and every single time, after trying countless terminals, I give
         | up. The closest I've found is WezTerm, and even that is a pale
         | shadow of Iterm2
        
           | gsinclair wrote:
           | I switched from iTerm to WezTerm and haven't looked back. It
           | feels faster and it's simpler to configure. I only have a
           | basic use case, though, as tmux does all the heavy work for
           | me. People with an appetite for more features might
           | legitimately prefer iTerm, but I can't endorse the comment
           | "pale shadow of iTerm" for all use cases.
        
         | zeppelin101 wrote:
         | I have a very silly primary reason for preferring the Kitty
         | terminal - I configured it to look very minimalistic and
         | compact. It doesn't even have the customary app titlebar at the
         | top. The other benefit is that it's actually a lot faster to
         | start up than Terminal.app when you first invoke it. I know
         | iTerm2 is really well-liked, but to me, it gave the "Breakin'
         | 2: Electric Boogaloo" vibes.
        
         | tcoff91 wrote:
         | I really love the following things that I can do with kitty:
         | 
         | - Access the scrollback buffer in neovim
         | 
         | - Access the last command output in neovim
         | 
         | - Animated cursor trails. It sounds dumb at first but I find
         | that when sharing my screen, the cursor trails help other
         | people keep track of my cursor when using neovim.
         | 
         | Here are my configs to quickly load @screen_scrollback or
         | @last_cmd_output in neovim
         | 
         | map kitty_mod+z launch --stdin-source=@screen_scrollback
         | --type=overlay /bin/zsh -c "nvim +$ +'nnoremap q ZQ'"
         | 
         | map kitty_mod+v launch --stdin-source=@last_cmd_output
         | --type=overlay /bin/zsh -c "nvim +$ +'nnoremap q ZQ'"
        
         | alwillis wrote:
         | > Could someone sell me on one of these alternative terminals
         | (kitty, ghostty, wez, etc)?
         | 
         | * They're very fast and the scrolling is very smooth,
         | especially on a 120 Mhz (ProMotion) refresh rate on MacBook
         | Pros.
         | 
         | * While TMUX runs on all of them, they have built-in
         | multiplexing, so you terminal sessions without requiring TMUX.
         | 
         | * Super configurable and in some cases programable
         | 
         | * A quality of life issue: you don't have to copy and paste
         | URLs; you just right-click them in the terminal.
        
       | gandreani wrote:
       | I get the error `Your store is blocked` when trying to load the
       | images
        
         | level87 wrote:
         | Same
        
       | semiinfinitely wrote:
       | It is impossible for me to take seriously someone who puts
       | spotify into their command line terminal.
        
       | lawrencegripper wrote:
       | Wezterm is a lot of fun. I played around with notifications and
       | copy/paste which work even through ssh back to the host.
       | 
       | https://blog.gripdev.xyz/2025/01/08/wezterm-easily-copy-text...
        
       | weinzierl wrote:
       | WezTerm is great. When I switched back to Linux from Apple there
       | were very few things I missed. iTerm2 was one of them, but since
       | I found WezTerm I am pretty happy.
       | 
       | I tried to use it on Windows as well but unfortunately the
       | Antivirus freaks out on it. When I looked into it it was because
       | of a small utility `strip-ansi-escapes` which is so simple that
       | even I could see that it is a false positive. I tried to report
       | it to Microsoft and other Antivirus companies with some success
       | but in the end I gave up an this Sisyphus task.
        
         | keithnz wrote:
         | I have zero problem with WezTerm on Windows.
        
       | submeta wrote:
       | WezTerm is an absolute joy to use: Scriptable (in Lua), allows
       | creating your own shortcuts, has a command palette, has something
       | like tmux (called mux) for which I have created lua scripts to
       | setup my workspace for different projects. Something like
       | tmuxinator impelemented in WezTerm. - I still use tmux, but mux
       | is nice as well, and I can use splits and navigation natively in
       | WezTerm, no need for prefix-{command} like in tmux. But can have
       | workspaces in WezTerm.
       | 
       | It allows adding a custom background image, also transparent
       | background, and I can toggle all of that via my custom shortcuts:
       | Transparent on/off, background image on/off/rotate randomly.
       | 
       | It is such a joy to use and so beautiful. That plus neovim, yazi
       | file browser, and lazygit: Dreamteam. Best dev environment I ever
       | had.
        
       | levkk wrote:
       | The only thing I want from WezTerm is a warning when I'm about to
       | close a tab. The tabs are too small and the x is easy to hit by
       | accident... thousand lines of bash history and temp env vars gone
       | in an instant.
       | 
       | Otherwise, it's awesome and my default terminal everywhere.
        
         | keithnz wrote:
         | you can configure that...
        
           | levkk wrote:
           | Please show me where. It only works for tabs that have a
           | running process.
        
             | keithnz wrote:
             | oh, you might be doing it via the UI, I turn off all the UI
             | elements and hotkey everything, if you use hotkeys you can
             | add a thing like :- action = wezterm.action.CloseCurrentTab
             | { confirm = true },
        
       | technojamin wrote:
       | I love WezTerm! In the author's spirit of obsessive tweaking,
       | here's a completely inconsequential configuration change I made.
       | 
       | By default, WezTerm doesn't have a scrollbar, but you can easily
       | enable it with:                 config.enable_scroll_bar = true
       | 
       | But now you _always_ have a scrollbar, just a big line on the
       | side when there 's no scrollback or you're in alternate screen
       | mode. Horrible! So, here's an event handler that will
       | automatically hide the scrollbar when not needed, giving it the
       | same behavior as scrollbars in modern applications:
       | -- Hide the scrollbar when there is no scrollback or alternate
       | screen is active       wezterm.on("update-status",
       | function(window, pane)         local overrides =
       | window:get_config_overrides() or {}         local dimensions =
       | pane:get_dimensions()              overrides.enable_scroll_bar =
       | dimensions.scrollback_rows > dimensions.viewport_rows and not
       | pane:is_alt_screen_active()
       | window:set_config_overrides(overrides)       end)
       | 
       | And that kinda sums up the development philosophy of WezTerm. It
       | has basically all the building blocks you'd ever need with nice
       | APIs. It's set up quite usably by default, but anything that's
       | missing you can probably implement yourself.
        
       | spoaceman7777 wrote:
       | Wezterm was great, but I had to stop using it recently because it
       | keeps crashing immediately (across two different computers) on
       | CachyOS/Arch :/
       | 
       | It's just broken on KDE permanently I guess :/ There have beem
       | tickets about it, and there is an AUR repo with a patch that used
       | to fix it... but :/
       | 
       | Was already worried about the project given that it hasn't seen a
       | new release in quite a long time. Got the feeling that the
       | maintainer has mostly moved on.
        
         | resonious wrote:
         | It's been almost a year for me now but I had also stopped using
         | it due to crashes. And since it shares a process for all your
         | windows, it would close _all my windows_ which just drove me
         | nuts after awhile.
         | 
         | Though for me, I only wanted the absolute bare minimum, which
         | Alacritty covers. I was sad to lose ligatures, but Alacritty is
         | stable and very fast.
        
       ___________________________________________________________________
       (page generated 2025-10-29 23:00 UTC)