माउस व्हील स्क्रॉलिंग कम और विम में urxvt का उपयोग करते हुए


17

मैंने rxvt-unicode (aka urxvt) के साथ काम करना शुरू कर दिया है, लेकिन माउस-व्हील स्क्रॉलिंग के साथ एक समस्या पाई गई, जिसकी तुलना में gnome-terminalऔर konsole। माउस व्हील स्क्रॉलबैक बफर के माध्यम से जाने के लिए ठीक काम करता है, लेकिन यह less/ mostया में स्वचालित स्क्रॉलिंग के लिए काम नहीं करता है vim(हालांकि vim में, सेटिंग mouse=aयह काम करता है, लेकिन बहुत अलग तरीके से, जो मुझे करना नहीं है gnome-terminal/ konsole) है।

वहाँ बनाने के लिए एक रास्ता है urxvtकी तरह व्यवहार gnome-terminalऔर konsoleमें जब lessऔर vimजहां माउस व्हील बस काम करता है?


इसी तरह का एक सवाल कुछ समय के लिए
सर्वरफॉल्ट

1
धन्यवाद, यह मुझे परेशान नहीं कर रहा था जब तक कि आपने इसे इंगित नहीं किया!
काइल स्मिथ

जवाबों:


8

पुराना सवाल है, लेकिन: जबकि यह urxvt में संभव नहीं है, मैंने कुछ बदलाव किए हैं जो वास्तव में ऐसा करने के लिए एक विकल्प (सेकेंडरीव्हील) जोड़ देगा, और इसे VTE- आधारित टर्मिनलों की तरह व्यवहार करेगा।

यह नया विकल्प क्या करता है, बहुत सरल है: माउस व्हील का उपयोग करते समय, यदि आप द्वितीयक स्क्रीन (*) पर हैं तो कोई स्क्रॉलिंग नहीं होगी, और इसके बजाय 3 "नकली" कीस्ट्रोक्स रनिंग एप्लिकेशन को भेजे जाएंगे। तो, एक पहिया ऊपर तीन बार कुंजी दबाने के रूप में एक ही परिणाम होगा, और पहिया नीचे 3 बार नीचे कुंजी दबाने के रूप में एक ही परिणाम होगा।

(*) यह सुनिश्चित नहीं है कि यह "आधिकारिक" शब्द है या नहीं, लेकिन कम से कम यह कैसे urxvt में कहा जाता है।

काफी आसान है, लेकिन यह चाल है: अब जब चल रहा है man, lessया किसी भी अन्य अनुप्रयोग जो माध्यमिक स्क्रीन का उपयोग करता है, तो आप माउस व्हील का उपयोग कर सकते हैं ताकि आप ऊपर (नीचे की चाबियाँ दबाए) या (जो कुछ भी आवेदन करते हैं, वह चारों ओर घूम सकता है)।

यह ध्यान दिया जाना चाहिए कि मुझे यकीन नहीं है कि यह वास्तव में VTE- आधारित टर्मिनलों में कैसे किया जाता है - मैंने कभी जांच नहीं की - लेकिन यह काम करता है, इसलिए यह मेरे लिए काम करता है।

थोड़ी और जानकारी, और आर्क लिनक्स के लिए कोड और PKGBUILD के लिंक वहां पाए जा सकते हैं: http://mywaytoarch.tumblr.com/post/14455320734/scrolling-mouse-wheel-improverments-vte-like-in-urxvt

उम्मीद है कि यह कुछ के लिए उपयोगी हो सकता है!


1
पैच पर कोई अपडेट? क्या इसे शामिल करने का सुझाव दिया गया है?
blueyed

1

अच्छा प्रश्न! कुछ उपयोगी पोस्ट मैं लिनक्स प्रश्न का हवाला दूंगा - "कम" कमांड आउटपुट-मैं इसे स्क्रॉल नहीं कर सकता! और आर्कलिनक्स फोरम - आदमी / कम में माउस व्हील का उपयोग करें

कम की तरह लगता है कि बस कीबोर्ड की घटनाओं को सुन रहे हैं और माउस के लिए समर्थन नहीं है। माउस समर्थन के लिए आकर्षण अनुरोध रेफरी # 272 है

वास्तविक समाधान एक और टर्मिनल या पेजर ( विम्पेजर ) का उपयोग करना है।


कम संस्करण 543 में फिक्स्ड
हायलेक वालिंगा

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

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.