boomboxnation has quit [Read error: Connection reset by peer]
boomboxnation has joined #foot
orahcio has quit [Changing host]
orahcio has joined #foot
jmcantrell has joined #foot
jmcantrell has quit [Ping timeout: 244 seconds]
jmcantrell has joined #foot
boomboxnation has quit [Read error: Connection reset by peer]
boomboxnation has joined #foot
orahcio has quit [Ping timeout: 252 seconds]
jmcantrell has quit [Ping timeout: 248 seconds]
jmcantrell has joined #foot
boomboxnation has quit [Read error: Connection reset by peer]
boomboxnation has joined #foot
xenrox has quit [Remote host closed the connection]
xenrox has joined #foot
boomboxnation has quit [Read error: Connection reset by peer]
boomboxnation has joined #foot
jmcantrell has quit [Quit: WeeChat 4.5.2]
boomboxnation has quit [Read error: Connection reset by peer]
boomboxnation has joined #foot
boomboxnation has quit [Read error: Connection reset by peer]
boomboxnation has joined #foot
boomboxnation has quit [Read error: Connection reset by peer]
boomboxnation has joined #foot
mtm has quit [Ping timeout: 244 seconds]
mtm has joined #foot
Biolunar has quit [Quit: brb]
boomboxnation has quit [Read error: Connection reset by peer]
boomboxnation has joined #foot
<ovf>
okay, i now realise that foot is absolutely horrible, the worst terminal emulator ever. it's just way faster/less janky than everything else! i did most of my readline development in foot, where everything works (almost) perfectly, and now testing with others i see a lot of slowdowns and general jank.
<ovf>
(and those are the ones marketed as "modern"/"fast" -- sure maybe they can blit glyphs quick enough, but they're terminal emulators, not layout engines, so they also gotta do actual terminal emulator stuff fast, and it looks like only foot does)
<dnkl>
😂 thanks, and sorry to hear
<dnkl>
I believe what most terminals mean when they say "fast" us throughput. I try to make foot both fast (in that sense) while still keeping it low-latency
danyal has joined #foot
Biolunar has joined #foot
boomboxnation has quit [Read error: Connection reset by peer]
boomboxnation has joined #foot
<delthas>
lol
boomboxnation has quit [Read error: Connection reset by peer]
<ovf>
yep, what i did is definitely very latency sensitive (it basically redraws everything in full lock-step). but still i didn't expect to get to unusable slowdowns _before_ ssh enters the picture. :-)
<ovf>
(and i'm talking about tens of characters on the screen, not gigabytes)
boomboxnation has joined #foot
orahcio has joined #foot
wael has quit [Ping timeout: 260 seconds]
wael has joined #foot
boomboxnation has quit [Read error: Connection reset by peer]
<ovf>
dnkl: i _think_ i've found another clustering-related bug, and this time even with a non-flag emoji. but i'm struggling with minimising the reproducer. i've got it down to a 70byte string, sorry! 6161f09fa7910d1b5b32431b5b304bf09fa791f09f8fbe0d1b5b32431b5b304bf09fa791f09f8fbee2808d0d1b5b32431b5b304bf09fa791f09f8fbee2808de29da41b5b366e
<ovf>
at the end of this foot reports position 4, which i think is wrong. e.g. ghostty says 5
<dnkl>
can you convert that to a printf string I can copy?
<ovf>
context: this is a simulation of the beginning of my readline writing 🧑🏾❤️💋🧑🏻 (reportedly the longest unicode grapheme cluster at 10 codepoints)
<ovf>
this happens specifically if there is some stuff to the left and nothing to the right
fitrh has joined #foot
jmcantrell has joined #foot
<dnkl>
ovf: haven't looked at it much, but why do you expect 5? You're writing two 'a', and then the beginning of the emoji?
<dnkl>
oh, and that would make the cursor position 5, since it's 1-based
<dnkl>
got you
<ovf>
dnkl: the shorter prefixes (which are in the middle of the string here) all report 5. probably shouldn't have taken out those requests when minimising. the basic idea of what that line is doing is: i iteratively go to the space after the two 'a's, wipe everything to the right, and write a prefix of that emoji. i get 5 on the first two codepoints, but then something gets funky in foot's state and i get 4 on the third iteration
<ovf>
perhaps i'm not clearing the state correctly with \e[0K?
<dnkl>
the issue is that after printing the ZWJ, you move the cursor *2* spaces to the right (after CR)
<dnkl>
it looks like an issue in foot, as you said
<ovf>
yep, two spaces to the right is just after the second 'a', correct?
<ovf>
also perhaps i shouldn't do absolute positioning with \r + move right?
<ovf>
*absolute horizontal positioning
jmcantrell has quit [Ping timeout: 260 seconds]
boomboxnation has quit [Read error: Connection reset by peer]
jmcantrell has joined #foot
<dnkl>
ovf: need to spend a bit more time, but I suspect the issue is that the clustering state isn't reset when you move the cursor. At some point, this causes the start of the long emoji to be considered part of the *previous* cell (i.e. cell 1)
<dnkl>
we should probably reset the clustering state on *all* cursor movements
boomboxnation has joined #foot
<ovf>
yep, that seems to match what i'm seeing. thanks!
fitrh has quit [Ping timeout: 240 seconds]
boomboxnation-1 has joined #foot
boomboxnation-1 has quit [Ping timeout: 252 seconds]
boomboxnation-1 has joined #foot
boomboxnation has quit [Read error: Connection reset by peer]