[HN Gopher] Using tree data structures to implement terminal spl...
___________________________________________________________________
Using tree data structures to implement terminal split panes
Author : lukastyrychtr
Score : 37 points
Date : 2022-01-28 21:54 UTC (2 days ago)
(HTM) web link (blog.warp.dev)
(TXT) w3m dump (blog.warp.dev)
| zevv wrote:
| Xmonad has been using the the Zipper for this for decades:
| https://wiki.haskell.org/Zipper
| sfvisser wrote:
| But a zipper on a tree I assume.
| jitl wrote:
| There's a very handy implementation of this splitting model for
| React called react-mosaic: https://github.com/nomcopter/react-
| mosaic
| colordrops wrote:
| A tree makes more sense than a two dimensional array for
| representing panes, but not for the reasons stated in the
| article. Sparseness and performance will not be issues with the
| low number of panes that will ever be used. The main reason to
| use trees is just that they are a closer representation of the
| abstraction, and will be easier to reason about and code.
|
| On a side note, I wasn't able to figure out what problem this
| company is trying to solve. I've been using nvim+tmux+kitty and
| it does all the things they sell, while being open source.
| lupire wrote:
| Its a vanity project for retured Googlers.
|
| The blog author thinks copying a smaller than 10x10 array of
| pointers, less than once per minute, is a memory-intensive,
| performance-sensitive operation, so it's pretty clear that they
| don't know what they are doing.
| traceroute66 wrote:
| I've still yet to read an honest account of why I need a 60fps
| GPU-accelerated terminal for SSH-ing or vim'ing.
|
| Its always smelt to me as a "we can, so we will" rather than a
| genuine need.
| quag wrote:
| We don't need 60fps gpu accelerated terminals. What we do need
| is terminals with low latency between pressing a key and seeing
| the result.
|
| I find the longer the lag, the harder I press the keys, and the
| more it hurts my hands. So lower latency helps me a lot and I
| immediately notice lag.
| Per_Bothner wrote:
| DomTerm (https://domterm.org) uses the Golden Layout library
| (https://github.com/golden-layout/golden-layout). As far as I can
| tell, this does everything mentioned in the article. It also
| supports tabs, and you can also reposition terminal windows by
| dragging, neither of which I saw mentioned in the article. (I'm
| currently working on being able to drag between top-level
| windows. It sort-of-works, but only at the proof-of-concept
| level.)
___________________________________________________________________
(page generated 2022-01-30 23:01 UTC)