HackerTrans
TopNewTrendsCommentsPastAskShowJobs

ethanpailes

no profile record

Submissions

Show HN: Shpool, a Lightweight Tmux Alternative

github.com
323 points·by ethanpailes·2 ปีที่แล้ว·184 comments

comments

ethanpailes
·16 วันที่ผ่านมา·discuss
A lot of the reason Chinese goods are cheap has to do with their technical competence, low labor costs and a streamlined industrial system, but they also use a lot of subsidies, currency manipulation and forced investment so you can’t really say that just letting in Chinese goods is in accordance with free market principles without considering their domestic situation.
ethanpailes
·เดือนที่แล้ว·discuss
https://github.com/wayland-transpositor/wprs
ethanpailes
·2 เดือนที่ผ่านมา·discuss
In the Haskell community I’ve seen the second kind called “space leaks.” I don’t see it used much outside that community but I like the term and use it when talking about other languages as well.
ethanpailes
·5 เดือนที่ผ่านมา·discuss
Server costs actually matter quite a bit at the scales of the incumbents in this space. Also, speed can be an important part of UX. Scaling horizontally won’t help if the engine itself is slow enough that there is noticeable lag even with just a single document getting edited by a dozen people.
ethanpailes
·6 เดือนที่ผ่านมา·discuss
> I do like being able to use X over the nextwork but that is a problem that can be solved.

And in fact has been: https://github.com/wayland-transpositor/wprs
ethanpailes
·9 เดือนที่ผ่านมา·discuss
I will absolutely eat a whole bag of oranges in a sitting.
ethanpailes
·9 เดือนที่ผ่านมา·discuss
Sperm whales arguably farm by always dedicating at the top of the water column and measurably increasing the fertility of the seas they swim in. It seems possible that is deliberate given how much of their time they spend in the depths.
ethanpailes
·11 เดือนที่ผ่านมา·discuss
China turning the corner on emissions has far more to do with their desire to get out from under the possibility of an oil blockade locking up their economy than green pressure from the west. They also organically have an environmental movement, though not one that they are willing to kowtow to at the cost of growth.
ethanpailes
·ปีที่แล้ว·discuss
TPUs do give Google a unique structural advantage on inference cost though.
ethanpailes
·2 ปีที่แล้ว·discuss
Since the financial crisis the US economy has kept on trucking, while the EU has stagnated. This isn’t all because of the euro, but it’s definitely a disaster and I think it is reasonable to hold the euro at least partially responsible.
ethanpailes
·2 ปีที่แล้ว·discuss
Since the pandemic, enforcement of traffic laws has fallen off a cliff, with a corresponding increase in traffic deaths. That is the result of a specific policy choice. Women who get pregnant experience potentially fatal complications somewhat randomly, just like victims of driving accidents are killed somewhat randomly. You probably can’t eliminate either category of death entirely with policy, but it is clear that there are policy levers that could reduce deaths in both categories. They actually seem almost exactly equivalent.
ethanpailes
·2 ปีที่แล้ว·discuss
Yeah reconnecting from different terminals is a pretty tricky problem to solve (and in fact can't be solved in general because of potential skew between the terminfo db on the client machine and the remote machine). The big problem is that once you launch a shell, there is no great way to change environment variables from outside that shell, so you can't change the value of TERM for a running shell. I have thought about trying some LD_PRELOAD tricks to try to be able to call setenv() from within the shell process itself, but this always struck me as something that would require a pretty big hack.
ethanpailes
·2 ปีที่แล้ว·discuss
Yeah I was expecting a lot of that, which is why I found that survey data so surprising.
ethanpailes
·2 ปีที่แล้ว·discuss
Not trying to be a window manager is pretty much the reason it exists!
ethanpailes
·2 ปีที่แล้ว·discuss
If you’re using a tiling window manager your window switch keybindings necessarily conflict between the manager and tmux, since if you configure the same one and then press it while focused on a tmux window, the tiling window manager will override tmux and claim the event.

Scrollback and copy paste cannot always be configured as you want. I’ve shared some specifics elsewhere in this thread.
ethanpailes
·2 ปีที่แล้ว·discuss
Well potentially some, but definitely not tiling and screen splitting.
ethanpailes
·2 ปีที่แล้ว·discuss
You can definitely use it in production, it is deployed internally at Google and we have a bunch of users. It doesn’t currently work on MacOS, but one of my colleagues is currently working on a port to Mac.
ethanpailes
·2 ปีที่แล้ว·discuss
Oh, thanks for catching this. I'll clean it up https://github.com/shell-pool/shpool/pull/43
ethanpailes
·2 ปีที่แล้ว·discuss
It's definitely not a complete alternative, but a surprising number of tmux users are only in it for the session persistence. We did a little internal (criminally underpowered and confounded) survey of some tmux users at google and found that half of them were only really using it for session persistence. I was really surprised by this and thought more people would be using all the slick tiling features that tmux has.
ethanpailes
·2 ปีที่แล้ว·discuss
You definitely don't need the in-memory terminal emulator to handle resizes or allow attaching with multiple local terminal emulators, since dtach does both and does not have an in-memory terminal emulator.

> I'm actually confused about why they'd go to the effort of implementing a VT100 emulator, write the code to redraw the screen from it

Well, we kinda cheated here. shpool_vt100 is just the already existing vt100 crate with a single critical bug fixed, so it actually wasn't much work :). Turns out having a nice package manager for a systems language comes with some benefits.

I'm actually open to adding a feature to allow multiple simultaneous connections to a single session. I never really had a usecase for it personally so I haven't prioritized it, but it is something that similar tools support and people keep bringing up. Since this isn't the first time I've heard people talking about it, I just made https://github.com/shell-pool/shpool/issues/40 to track work adding the ability to attach multiple clients to the same session.

> This feels like it sits in a weird place between simple, crude tools like dtach, and tools like tmux; shpool has done most of the work to implement tmux-style behavior, and then decides to cut weird corners.

I'm not aware of any tool that does internal rendering and subsetting handling scrollback and copy-paste in a way that I personally find usable, so these decisions were very much intentional.

I think tmux is a great tool for a lot of people, and I tried to get into it for years, but I could just never get over the weird scrollback and copy-paste issues or the fact that it meant that I couldn't use my normal `i3`/`sway` bindings to switch between terminals inside a tmux session. If tmux works for someone, I think that's great and they should keep using it. shpool is meant for people like me who aren't very good with computers :).