urxvt를 사용하여 마우스 휠이 덜 스크롤됩니다.


17

rxvt-unicode (일명 urxvt) 작업을 시작 했지만 gnome-terminaland와 비교할 때 마우스 휠 스크롤 문제를 발견했습니다 konsole. 마우스 휠은 스크롤 백 버퍼를 통과하는 데는 잘 작동 하지만 less/ most또는 자동 스크롤에서는 작동하지 않습니다 vim(vim에서는 설정 mouse=a이 작동하지만 매우 다른 방식으로 작동하지는 않습니다) gnome-terminal/ konsole).

만들 수있는 방법이 urxvt처럼 행동 gnome-terminalkonsole의 때를 less하고 vim마우스 휠 그냥 작품?


비슷한 질문이 한동안 serverfault에 있었지만 긍정적 인 답변을받지 못했습니다 : serverfault.com/questions/10308/…
nidi

1
고마워요, 당신이 지적 할 때까지 이것은 귀찮지 않았습니다!
Kyle Smith

답변:


8

오래된 질문이지만 urxvt에서는 이것이 가능하지 않지만 정확히 수행하기 위해 옵션 (secondaryWheel)을 추가하고 VTE 기반 터미널처럼 작동하도록 변경했습니다.

이 새로운 옵션의 기능은 매우 간단합니다. 마우스 휠을 사용할 때 보조 화면 (*)을 사용하는 경우 스크롤이 발생하지 않고 대신 3 개의 "가짜"키 입력이 실행중인 응용 프로그램으로 전송됩니다. 따라서 휠 업은 Up 키를 세 번 누르는 것과 같은 결과를 가져 오며 휠 다운은 Down 키를 세 번 누르는 것과 같습니다.

(*) 이것이 "공식적인"용어인지 아닌지는 확실하지 않지만 적어도 그것이 urxvt에서 호출되는 방식입니다.

쉬운 충분하지만, 트릭을 수행한다 : 실행할 때 지금 man, less또는 보조 화면을 사용하는 다른 응용 프로그램은, 당신이 (당신이 위 / 아래 키를 누를 경우 또는 응용 프로그램이 할 것이라고 말했다 무엇이든) 이동할 마우스 휠을 사용할 수 있습니다.

실제로 이것이 VTE 기반 터미널에서 실제로 수행되는 방법인지 확실하지 않습니다. 확인하지는 않았지만이 작업을 수행하므로 나에게 효과적입니다.

조금 더 자세한 정보와 아치 리눅스 용 코드 및 PKGBUILD에 대한 링크는 여기에서 찾을 수 있습니다 : http://mywaytoarch.tumblr.com/post/14455320734/scrolling-mouse-wheel-improvments-vte-like-in-urxvt

잘하면 이것은 일부에게 도움이 될 수 있습니다!


1
패치에 대한 업데이트가 있습니까? 포함하도록 제안 되었습니까?
blueyed December

1

좋은 질문! 리눅스 질문을 인용 할 유용한 게시물 - "less"명령 출력-스크롤 할 수 없습니다! 그리고 Archlinux Forum-man / less에서 Mouse Wheel을 사용하십시오 .

키보드 이벤트 만 듣고 마우스를 지원하지 않는 것 같습니다. 마우스 지원에 대한 마법 부여 요청은 공개 참조 # 272 입니다.

실제 해결책은 다른 터미널이나 호출기 ( Vimpager )를 사용하는 것입니다.


543 이하 버전에서 수정
Hielke Walinga

1

나는 매우 비슷한 질문에 이것을 썼다 : /superuser//a/1356948/900060 참조

$ HOME / .urxvt / ext / vtwheel에 붙여 넣습니다 (없는 경우 파일을 만듭니다).

#! perl

# Implements a scrollwheel just like in good old vt100's mices

sub simulate_keypress {
    my ($self, $type) = @_; #type: 0:up, 1:down

    my $keycode_up = 111;
    my $keycode_down = 116;

    my $numlines = 3;

    my $keycode = 0;
    if ($type eq 0) {
        $keycode = $keycode_up;
    } elsif ($type eq 1) {
        $keycode = $keycode_down;
    } else {
        return;
    }

    for (my $i = 0 ; $i ne $numlines ; $i++) {
        $self->key_press(0,$keycode);
        $self->key_release(0,$keycode);
    }
}

sub on_button_release {
    my ($self, $event) = @_;

    #my $res_ss = $self->resource("secondaryScroll");
    #warn("ressource ss is <$res_ss>");

    !$self->current_screen and return ();

    #warn("foo, event: <$event->{button}>\n");
    if ($event->{button} eq "4") { # scroll up
        $self->simulate_keypress(0);
        return 1;
    } elsif ($event->{button} eq "5") { # scroll down
        $self->simulate_keypress(1);
        return 1;
    }

    return ();
}

그런 다음 추가 URxvt.perl-ext-common:vtewheel사용자에 .Xresources(또는 .Xdefaults) 및 실행xrdb .Xresources

출처 : https://aur.archlinux.org/cgit/aur.git/tree/vtwheel?h=urxvt-vtwheel

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.