Rotellina del mouse che scorre in meno e vim usando urxvt


17

Ho iniziato a lavorare con rxvt-unicode (aka urxvt) ma ho riscontrato un problema con lo scorrimento della rotellina del mouse, rispetto a gnome-terminale konsole. La rotellina del mouse funziona bene per passare attraverso il buffer di scrollback, ma non funziona per lo scorrimento automatico in less/ mosto vim(anche se in vim, l'impostazione lo mouse=afa funzionare, ma in un modo molto diverso, che non ho a che fare con gnome-terminal/ konsole).

C'è un modo per urxvtcomportarsi come gnome-terminale konsolequando lesse vimdove e la rotellina del mouse funziona?


Una domanda simile è stata su serverfault per un po ', ma non ha ricevuto una risposta positiva: serverfault.com/questions/10308/…
nidi

1
Grazie, questo non mi ha infastidito fino a quando non me lo hai fatto notare!
Kyle Smith,

Risposte:


8

Vecchia domanda, ma: sebbene ciò non sia possibile in urxvt, ho apportato alcune modifiche che aggiungeranno un'opzione (ruota secondaria) per fare esattamente questo, e farlo funzionare come terminali basati su VTE.

Quello che fa questa nuova opzione, è piuttosto semplice: quando si utilizza la rotellina del mouse, se si è nella schermata secondaria (*), non si verificherà alcuno scorrimento e invece verranno inviati 3 tasti "falsi" all'applicazione in esecuzione. Quindi, una ruota su avrà lo stesso risultato della pressione del tasto Su tre volte e la ruota giù farà lo stesso che premere 3 volte il tasto Giù.

(*) non sono sicuro se questo sia il termine "ufficiale" oppure no, ma almeno così si chiama urxvt.

Abbastanza facile, ma questo fa il trucco: ora durante l'esecuzione man, lesso qualsiasi altra applicazione che utilizza lo schermo secondario, puoi usare la rotellina del mouse per spostarti (o qualunque cosa farebbe detta applicazione, se premi i tasti Su / Giù).

Va notato che non sono sicuro che questo sia effettivamente il modo in cui le cose vengono eseguite nei terminali basati su VTE - non ho mai verificato - ma questo fa il lavoro, quindi funziona per me.

Ulteriori informazioni e collegamenti al codice e PKGBUILD per Arch Linux sono disponibili qui: http://mywaytoarch.tumblr.com/post/14455320734/scrolling-mouse-wheel-improvments-vte-like-in-urxvt

Spero che questo possa essere utile per alcuni!


1
Eventuali aggiornamenti sulla patch? È stato suggerito per l'inclusione?
azzurrato il


1

Ho scritto questo per una domanda molto simile, vedere /superuser//a/1356948/900060

Incollalo in $ HOME / .urxvt / ext / vtwheel (crea il file se non esiste):

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

Quindi aggiungi URxvt.perl-ext-common:vtewheelal tuo .Xresources(o .Xdefaults) ed eseguixrdb .Xresources

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

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.