Contenu | Rechercher | Menus

Annonce

Si vous avez des soucis pour rester connecté, déconnectez-vous puis reconnectez-vous depuis ce lien en cochant la case
Me connecter automatiquement lors de mes prochaines visites.

À propos de l'équipe du forum.

#1 Le 16/09/2014, à 04:10

D@mien.

Urxvt: API Perl

Salut
J'utilise une extension pour urxvt qui simuler le scrolling, mais ça occasionne des conflits avec les logiciels qui gère nativement le mulot (comme par exemple vim).

Et donc, je cherche à connaitre à travers l'api le nom du logiciel en question afin d'ignorer l'event selon une liste près définis.

Voilà le script en question,

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

    # XXX arrêter là si c'est _vim_ qui tourne
    
    !$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 ();
}

Merci de votre aide smile
Perl, c'est encore peu trop obscure pour moi et et donc ça m'est pas facile de comprendre le man big_smile


:wq!

Hors ligne