Comment by em-bee

1 month ago

all right, a year ago i tried kitty: https://wezterm.org/config/files.html

turns out that the config example for the color scheme conflicts with setting other config values. i need

    config.color_scheme = ...
    return config

 not 

    return { color_scheme = ... }

that could have been explained better.

and finally, how do i switch sessions or tabs? no word about that on the multiplex page. or elsewhere.

fortunately, i found this article which describe an elaborate setup to make wezterm behave somewhat like tmux, with familiar keybindings. maybe i can get this to work: https://mwop.net/blog/2024-07-04-how-i-use-wezterm.html

oh, one last issue: there are no resize handles, or a titlebar, although according to the descriptions they should be there. where did they go?

When I first tried to port my tmux config to wezterm it took about a day to learn about all the wezterm concepts, map them to their tmux equivalents, and reach an mvp. I tend to be on the slower side to pick things up though.

Locally - I far prefer wezterm now. The only issue for me was that getting persistent server side sessions seemed to come at the cost of some weird neovim gui refresh and latency issues which I'm not sure are fully solved yet, so I still use tmux for that. Looking at the issue tracker, maybe I should try again, seems that at least some refresh issues have been addressed since I last checked https://github.com/wezterm/wezterm/issues/4607

  • would you mind sharing your configuration, so i can compare it to what i have now?

    my family keeps me busy enough that learning new tech comes out of my work time, and i can't afford to spend a day to learn how to configure an application just to make it do the things i need just to replace another application that already works. especially not when it is uncertain if what i want is even possible. knowing that it is possible does help though, and the article i found allowed me to get close to the configuration i am looking for (the mvp) without having to spend all that time learning. it doesn't have to be perfect from the start, just mostly usable, so that i can dive in and use it while i learn the few things that i am missing. for a tmux replacement that means it needs to have the interactive ability to create and switch sessions and tabs.

    • Sorry, I don't always see replies immediately. Yeah you can take a look at mine, it's somewhat customized so I'm not sure how useful it will be and I don't have time to add comments, but I've uploaded it to https://pastebin.com/zM2bYHD2

      The big thing this might be missing from your perspective is I don't usually have multiple tmux (or wezterm) sessions going on simultaneously. Not sure if or how that influences the wezterm side of things.

i found the titlebar: https://github.com/wezterm/wezterm/issues/6296

it's ugly as hell. but that's partly gnomes fault for not supporting server side decorations. and, at least they are already working on something nicer.

but now i have two sets of titlebar buttons. one set in the titlebar, and a somewhat nicer looking set in the tabbar. but i found a workaround: if i turn window_decorations off, then i get nothing, but i can turn it back on without restarting and then i only get the integrated buttons in the tabbar without the ugly titlebar. now i only need to find a way to script this...

in the meantime i'll just run it without a titlebar. i figured out how to maximize the terminal on startup: https://stackoverflow.com/questions/78738575/how-to-maximize... , that will do for now. i rarely need to resize or close it anyways.

  • more fun stuff. the terminal bell does not work under wayland. because On Wayland systems, which have no system beep function, it does not produce a sound. which is of course an entire logical solution. blame wayland instead of just playing a sound.

    fortunately, wezterms scriptability allows for a workaround:

        wezterm.on('bell', function(window, pane)
            wezterm.background_child_process({
                '/usr/bin/play', '/usr/share/sounds/gnome/default/alerts/click.ogg'
            })
        end)