Comments (7)
I'm sorry to hear this. it looks like this is an issue in the notty library -- and I don't have a system to test this with the macOS terminal. maybe @pqwy has an idea what could be the issue.
from jackline.
I further noticed that sometimes using key repetition in a macOS terminal using jackline on a remote server, e.g. scrolling up and down through the user roster, there is "~5" and "~6" shown as an output.
from jackline.
@LIX ah, interesting. It does indeed sound like notty
doesn't handle repeat_char
aka rep
aka rp
from your client.
Could you provide the output of these commands:
echo "$TERM"
infocmp -I
tput rep 65 8 | xxd
from jackline.
Hi @cfcs
user@host:~$ echo "$TERM"
xterm-256color
user@host:~$ infocmp -I
# Reconstructed via infocmp from file: /lib/terminfo/x/xterm-256color
xterm-256color|xterm with 256 colors,
am, bce, ccc, xenl, km, mir, msgr, npc, mc5i,
cols#80, it#8, lines#24, colors#256, pairs#32767,
acsc=``aaffggiijjkkllmmnnooppqqrrssttuuvvwwxxyyzz{{||}}~~,
cbt=\E[Z, bel=^G, cr=^M, csr=\E[%i%p1%d;%p2%dr, tbc=\E[3g,
clear=\E[H\E[2J, el1=\E[1K, el=\E[K, ed=\E[J,
hpa=\E[%i%p1%dG, cup=\E[%i%p1%d;%p2%dH, cud1=^J,
home=\E[H, civis=\E[?25l, cub1=^H, cnorm=\E[?12l\E[?25h,
cuf1=\E[C, cuu1=\E[A, cvvis=\E[?12;25h, dch1=\E[P,
dl1=\E[M, smacs=\E(0, smam=\E[?7h, blink=\E[5m, bold=\E[1m,
smcup=\E[?1049h, dim=\E[2m, smir=\E[4h, sitm=\E[3m,
rev=\E[7m, invis=\E[8m, smso=\E[7m, smul=\E[4m,
ech=\E[%p1%dX, rmacs=\E(B, rmam=\E[?7l, sgr0=\E(B\E[m,
rmcup=\E[?1049l, rmir=\E[4l, ritm=\E[23m, rmso=\E[27m,
rmul=\E[24m, flash=\E[?5h$<100/>\E[?5l,
is2=\E[!p\E[?3;4l\E[4l\E>,
initc=\E]4;%p1%d;rgb\:%p2%{255}%*%{1000}%/%2.2X/%p3%{255}%*%{1000}%/%2.2X/%p4%{255}%*%{1000}%/%2.2X\E\\,
il1=\E[L, kb2=\EOE, kbs=\177, kcbt=\E[Z, kdch1=\E[3~,
kcud1=\EOB, kend=\EOF, kent=\EOM, kf1=\EOP, kf10=\E[21~,
kf11=\E[23~, kf12=\E[24~, kf13=\E[1;2P, kf14=\E[1;2Q,
kf15=\E[1;2R, kf16=\E[1;2S, kf17=\E[15;2~, kf18=\E[17;2~,
kf19=\E[18;2~, kf2=\EOQ, kf20=\E[19;2~, kf21=\E[20;2~,
kf22=\E[21;2~, kf23=\E[23;2~, kf24=\E[24;2~,
kf25=\E[1;5P, kf26=\E[1;5Q, kf27=\E[1;5R, kf28=\E[1;5S,
kf29=\E[15;5~, kf3=\EOR, kf30=\E[17;5~, kf31=\E[18;5~,
kf32=\E[19;5~, kf33=\E[20;5~, kf34=\E[21;5~,
kf35=\E[23;5~, kf36=\E[24;5~, kf37=\E[1;6P, kf38=\E[1;6Q,a
kf39=\E[1;6R, kf4=\EOS, kf40=\E[1;6S, kf41=\E[15;6~,
kf42=\E[17;6~, kf43=\E[18;6~, kf44=\E[19;6~,
kf45=\E[20;6~, kf46=\E[21;6~, kf47=\E[23;6~,
kf48=\E[24;6~, kf49=\E[1;3P, kf5=\E[15~, kf50=\E[1;3Q,
kf51=\E[1;3R, kf52=\E[1;3S, kf53=\E[15;3~, kf54=\E[17;3~,
kf55=\E[18;3~, kf56=\E[19;3~, kf57=\E[20;3~,
kf58=\E[21;3~, kf59=\E[23;3~, kf6=\E[17~, kf60=\E[24;3~,
kf61=\E[1;4P, kf62=\E[1;4Q, kf63=\E[1;4R, kf7=\E[18~,
kf8=\E[19~, kf9=\E[20~, khome=\EOH, kich1=\E[2~,
kcub1=\EOD, kmous=\E[M, knp=\E[6~, kpp=\E[5~, kcuf1=\EOC,
kDC=\E[3;2~, kEND=\E[1;2F, kind=\E[1;2B, kHOM=\E[1;2H,
kIC=\E[2;2~, kLFT=\E[1;2D, kNXT=\E[6;2~, kPRV=\E[5;2~,
kri=\E[1;2A, kRIT=\E[1;2C, kcuu1=\EOA, rmkx=\E[?1l\E>,
smkx=\E[?1h\E=, meml=\El, memu=\Em, oc=\E]104\007,
op=\E[39;49m, dch=\E[%p1%dP, dl=\E[%p1%dM, cud=\E[%p1%dB,
ich=\E[%p1%d@, indn=\E[%p1%dS, il=\E[%p1%dL,
cub=\E[%p1%dD, cuf=\E[%p1%dC, rin=\E[%p1%dT,
cuu=\E[%p1%dA, mc0=\E[i, mc4=\E[4i, mc5=\E[5i,
rs1=\Ec\E]104\007, rs2=\E[!p\E[?3;4l\E[4l\E>, rc=\E8,
vpa=\E[%i%p1%dd, sc=\E7, ind=^J, ri=\EM,
setab=\E[%?%p1%{8}%<%t4%p1%d%e%p1%{16}%<%t10%p1%{8}%-%d%e48;5;%p1%d%;m,
setaf=\E[%?%p1%{8}%<%t3%p1%d%e%p1%{16}%<%t9%p1%{8}%-%d%e38;5;%p1%d%;m,
sgr=%?%p9%t\E(0%e\E(B%;\E[0%?%p6%t;1%;%?%p5%t;2%;%?%p2%t;4%;%?%p1%p3%|%t;7%;%?%p4%t;5%;%?%p7%t;8%;m,
hts=\EH, ht=^I, u6=\E[%i%d;%dR, u7=\E[6n, u8=\E[?1;2c,
u9=\E[c,
user@host:~$ tput rep 65 8 | xxd
user@host:~$
from jackline.
I checked the code for notty, the let csi
function does not parse the xterm
repeat_char, and for osx it seems to not be defined, which makes me wonder what generates it in this case.
I wonder what the repeat_char
that your machine ends up sending out looks like. When you see the ~5
and ~6
and so on, are they followed by b
? like ~5b
?
Maybe you can trigger it by ssh'ing to a machine, running xxd > foo.txt
and holding down a button for a while, then pressing control + d
to end the input.
Anyway, to conclude, this is definitely in notty
land and not a jackline issue. In the C world all this stuff would be handled in ncurses
. Too bad notty is not maintained anymore.
from jackline.
Thanks for investigating on it, @cfcs
I have no strange output in xxd
when repeating a key. Just within Jackline. Btw. it also occurs sometimes when I paste something into Jackline.
from jackline.
@Iix Pasting should be handled by notty
, at least it works pretty well for me on Linux.
I'm sorry, it's tricky for me to investigate, but I'll try to look into it next time I see someone who's got a mac.
But if someone finds this at a latter point, the issue seems to be a mix of:
notty
seems to ignore termcap/terminfo for the purpose of ignoring escapes it doesn't knownotty
does not implementrepeat_char
akarep
akarp
, which seems easy enough to add, but would require buffering the last char somewhere.- OSX seems to have its own incompatible termcap definition of
xterm-256color
which lies about its capabilities. This is not causing the bug here, but it does mean that it won't work to use the OS termcap database in a potential fix.
from jackline.
Related Issues (20)
- should /clear also erase input history? HOT 3
- Compiling fails after upgrade to tls 0.9.0 HOT 3
- Paste confirmation
- XEPs and RFCs support page with version
- XEP-0479: XMPP Compliance Suites 2023 HOT 1
- inconsistent names for contacts HOT 1
- no echo after quitting jackline in macOS HOT 6
- feature request: sort by recently used
- Re connect loop HOT 3
- Link to aspcud is 404 HOT 4
- Compilation fails on macOS HOT 2
- Build error using opam on FreeBSD HOT 2
- Buddylist does not display proper status of contacts when JID contains unicode HOT 1
- Build fails on MacOS Mojave HOT 2
- DNS resolver issues HOT 2
- .ocamlinit for development environment no longer works HOT 1
- IPv6 address support HOT 7
- Can't remove unauthorized roster entry of non-existing jid HOT 1
- allow to avoid presence notifications, but keep buddies in buddy list HOT 3
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from jackline.