Como posso ativar a rolagem do cursor via mousewheel no emacs com urxvt?

1

o modo roda do mouse está ativado no emacs, mas o cursor não rola como em outros emuladores de terminal, em outras distros. Eu fiz muita escavação e não consigo encontrar a resposta. Novamente, estou usando urxvt e rolando para cima e para baixo do texto na janela, digamos, a saída de log de um aplicativo em execução ocorre quando eu movo a roda do mouse. No emacs nada acontece com a roda do mouse, e eu acredito que há uma maneira que a roda de rolagem pode causar o mesmo resultado que pressionar a seta para cima / para baixo.

    
por rabbitfeetz 25.11.2015 / 19:04

1 resposta

1

Ainda não testei isso especificamente para o emacs, mas isso permite a rolagem do mouse ao usar vim , less , man , etc. Cole isto em $ HOME / .urxvt / ext / vtwheel (crie o arquivo se ele não existir):

#! 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 ();
}

Em seguida, adicione URxvt.perl-ext-common:vtewheel ao seu .Xresources (ou .Xdefaults ) e execute xrdb .Xresources

Fonte: link

    
por 10.09.2018 / 18:11