2012-04-22 1 views
0

이 스크립트를 실행하면 마우스의 위치가 255 열까지 올랐다가 0부터 시작됩니다. 내 단말기가 SGR/mode 1006을 지원하지 않는다는 의미입니까? 모드 (1006)에 전환
(AK2의 대답 때문에 편집) Term :: TermKey : 넓은 마우스를 지원하는 방법?

#!/usr/bin/env perl 
use warnings; 
use 5.12.0; 
use utf8; 
use Term::TermKey qw(FLAG_UTF8 FORMAT_LONGMOD FORMAT_MOUSE_POS); 
my $tk = Term::TermKey->new(\*STDIN); 
binmode STDOUT, ':encoding(UTF-8)' if $tk->get_flags & FLAG_UTF8; 

$|++; 
print "\e[?1003h"; 
print "\e[?1006h"; 

say "Quit with \"q\""; 
while(1) { 
    $tk->waitkey(my $key); 
    say $tk->format_key($key, FORMAT_LONGMOD | FORMAT_MOUSE_POS); 
    last if $tk->format_key($key, 0) eq 'q'; 
} 

print "\e[?1006l"; 
print "\e[?1003l"; 
+0

'libtermkey' 기반 질문이 늘어나고 있기 때문에 태그를 달아야한다고 생각합니다. 나는 새 탭을 만들기 위해 필요한 평판 (1500)이 부족하지만, 아마도 당신이 이것을 유용하다고 생각한다면 당신은 하나를 만들 수있을 것입니다. 그런 다음 모든 질문을 다룰 수 있습니다. Term :: TermKey perl 래퍼가 아닌'libtermkey' 자체에 대한 것이어야하지만 별칭이 될 수 있습니다. – LeoNerd

답변

3

아니, 당신은 아직 위치 실제로 아직 발표하지 않은 아마도 때문에 열 255보다 큰 지원을 매우 최신 libtermkey 라이브러리를 사용하지 않는 것을 의미

)

일단 위치보고에 대한 추가 CSI 캡처 지원과 함께 한 번 알려 드리겠습니다.

기타 : libtermkey 관련 질문이 더있는 경우 알려 주시면 더 직접 알려 드리겠습니다. 예 : 당신이 질문을 올렸다는 것을 알리도록 나를 이메일로 보낼 수 있습니다; 나는 항상 그들을 찾아 다니는 습관을 짓지는 않는다. :)


편집 2012년 4월 26일이 : 지금 위치 보고서 API와 함께, 이러한 열 255 이상을 지원하는 libtermkey 0.15 Term::TermKey 0.14을 발표했습니다.

+0

'Term :: TermKey' 0.14와 KDE의 Konsole을 사용하여 스크립트를 다시 시도했지만 255보다 높은 열을 얻지 못했습니다. –

+0

방금 ​​다시 시도했지만 모두 작동했습니다. 이것이 지금 당신을 위해 일하는가, 아니면 여전히 부서지지 않는가? – LeoNerd

+0

감사합니다. 이제 나에게도 적합합니다. –

1

는 마우스 이벤트 인코딩을 변경하지만 실제로는 마우스보고를 사용하지 않습니다. 이를 위해서는 모드 1000 (클릭하고 놓기 만), 1002 (클릭, 놓기 및 끌기) 또는 1003 (클릭, 놓기 및 마우스 이동)으로 전환해야합니다.

관련 문제