←back to thread

Introducing tmux-rs

(richardscollin.github.io)
857 points Jtsummers | 10 comments | | HN request time: 0.413s | source | bottom
Show context
mbreese ◴[] No.44455951[source]
> You might be asking: why did you rewrite tmux in Rust? And yeah, I don’t really have a good reason. It’s a hobby project. Like gardening, but with more segfaults.

I love this attitude. We don’t necessarily need a reason to build new things. Who knows what will come out of a hobby project. Thanks to the author for the great write up!

Also, my gardening is full of segfaults, coding a new project is definitely safer to my yard.

replies(15): >>44456003 #>>44456205 #>>44456799 #>>44457023 #>>44457048 #>>44457108 #>>44457783 #>>44458165 #>>44458298 #>>44458461 #>>44459018 #>>44459396 #>>44459476 #>>44459885 #>>44463066 #
1vuio0pswjnm7 ◴[] No.44459476[source]
"We don't necessarily need a reason to build new things."

But tmux isn't new

Is a reason necessarily needed to rewrite software in other languages

replies(1): >>44459486 #
1. fragmede ◴[] No.44459486[source]
GNU screen would like a word.
replies(2): >>44459946 #>>44464601 #
2. magarnicle ◴[] No.44459946[source]
I really don't know how tmux got so much mindshare over screen. It just isn't obviously better in any way. Maybe screen is just poorly named?
replies(3): >>44460431 #>>44461072 #>>44512955 #
3. usef- ◴[] No.44460431[source]
I think a lot of it is that tmux had friendler, sane defaults and clearer command design (eg. status bar out of the box). And, I suspect, people not already knowing screen.

The latter reason is why Helix is slow in doing similar to vim, I think, despite being far more consistently designed and saner defaults. Everyone knows vim exists.

I've still never switched from screen, personally, though I'm only a light user.

replies(1): >>44460811 #
4. quotemstr ◴[] No.44460811{3}[source]
> status bar out of the box

Software packages win over other packages for the silliest reasons.

replies(2): >>44461752 #>>44462538 #
5. telotortium ◴[] No.44461072[source]
Screen couldn’t do vertical splits for the longest time. That started to be a bigger problem when screens got bigger and wider. I believe that’s why I started using tmux. Tmux also has more facilities for automation. Nowadays, screen is primarily in maintenance mode, and I’m used to tmux, so no reason to switch back.
replies(1): >>44461217 #
6. unixhero ◴[] No.44461217{3}[source]
Tmux for a lot of things, including scripts

Screen for when I need things ti behave and work a certain way

7. vaylian ◴[] No.44461752{4}[source]
Defaults matter. I've had my screenrc with a status line but I still ended up preferring tmux in the end, because not needing a config file was a small but pleasant advantage when working with different machines. I also didn't like ctrl+a as the leader combination, because it conflicts with "go to the beginning of the line" in bash. ctrl+b is a much nicer default.
8. Mawr ◴[] No.44462538{4}[source]
The status bar displays key information to the user. Do you think people would prefer a video player with no play/pause, volume, seekbar or one with them? The interface is the most important part of any application.
9. lproven ◴[] No.44464601[source]
> GNU screen would like a word.

Screen, tmux, byobu, dvtm, mtm, Twin, and most of all Zellij, which is basically "tmux but redone in Rust".

I tried to compare them all a month ago:

https://www.theregister.com/2025/06/24/tiling_multiplexers_s...

10. tremon ◴[] No.44512955[source]
There's two things that made me switch from tmux to screen:

- persistence of layouts. Screen doesn't remember if you had a split view open, it always opens the current terminal in full screen.

- screen's default hotkey ^A clashes with ssh's escape key. Yes, these are configurable but having to re-populate the same config file is like a papercut every time to access a new system.

Defaults matter, especially if you work across many different systems (and from different customers). At some point, it just becomes easier to learn the defaults than to (over-)optimize to your ideal workflow.