कर्सर को पलक झपकने से कैसे रोकें


22

TTYblinking में होने पर मैं कर्सर को कैसे रोकूँ ? (या कहीं और)।

एक सार्वभौमिक सेटिंग के लिए बोनस अंक जो कर्सर को लगभग हर जगह ब्लिंक करता है।

जवाबों:


17

यह आपको एक कर्सर के रूप में एक ठोस पीला ब्लॉक (नॉनब्लिंकिंग) देता है:

echo -n -e '\e[?17;14;224c'

अधिक जानकारी के लिए इन संदर्भों की जाँच करें: Linuxgazette और EmacsWiki साथ ही फ़ाइल /usr/src/linux/Documentation/VGA-softcursor.txt(यदि आपके सिस्टम पर मौजूद है)


यह मेरे लिए तब तक काम करता है जब तक मैं विम का उपयोग नहीं करता हूं, तब जब मैं कर्सर से बाहर निकलता हूं तो पलक
झपकते हैं

और यह आपको एक गैर-ब्लिंकिंग सफ़ेद ब्लॉक देता हैecho -e '\033[?16;0;224c'
Utku

thx, मैं एक ठोस सफेद ब्लॉक पाने के लिए अंतिम संख्या (224) को 244 में बदल सकता हूं :)

मेरे सिस्टम पर इसका कोई प्रभाव नहीं है, जो कि आर्क लिनक्स पर
एस 5.0 गोस्वामी

26

टर्मिनलों पर पलक झपकते कर्सर को बंद करने के लिए एक मानक नियंत्रण अनुक्रम है।

printf '\033[?12l'

हालाँकि कई टर्मिनल इस सेटिंग को लागू नहीं करते हैं, इसलिए इसे पढ़ें।

उच्च दृश्यता, सामान्य दृश्यता और अदर्शन के बीच कर्सर दृश्यता को बदलने के लिए अधिक व्यापक रूप से कार्यान्वित मानक टर्मिनल सेटिंग है । कुछ टर्मिनलों में सामान्य और उच्च के बीच कोई अंतर नहीं होता है, और इस बात की कोई गारंटी नहीं है कि एक या दूसरे पलक झपकेंगे या नहीं। में terminfo , फेंकना cvvis, cnormया civisस्ट्रिंग (उदाहरण के लिए tput cvvis)। इसी termcap प्रविष्टियां होती हैं vs, veऔर vi

ये सेटिंग एक टर्मिनल रीसेट से नहीं बचेगी , इसलिए आप पा सकते हैं कि यह कई पूर्ण-स्क्रीन अनुप्रयोगों के लॉन्च से नहीं बचता है। आप अपने टर्मिनल के रीसेट स्ट्रिंग में कर्सर विन्यास परिवर्तन अनुक्रम जोड़कर इस कठिनाई को दूर कर सकते हैं।

  • Ncurses का उपयोग करते हुए एक टर्म-बेस्ड सिस्टम पर, अपने टर्मिनल की टर्मऑफ़ सेटिंग्स को फ़ाइल के साथ सहेजें infocmp >>~/etc/terminfo.txt। बदलने के लिए वर्णन संपादित करें rs1(बुनियादी रीसेट) अनुक्रम, जैसे की जगह rs1=\Ecसे rs1=\Ec\E[?12l। कुछ कार्यक्रमों और सेटिंग्स के साथ, आपको rs2(पूर्ण रीसेट) भी बदलना पड़ सकता है । फिर tic ~/etc/terminfo.txt(यह निर्देशिका के तहत लिखता है $TERMINFO, या ~/.terminfoअगर परेशान) के साथ टर्मो विवरण का संकलन करें ।
  • एक टर्मकैप-आधारित सिस्टम पर, अपने टर्मकैप डेटाबेस (आमतौर पर /etc/termcap) से टर्मकैप सेटिंग्स को पकड़ो । अपनी सेटिंग्स को बढ़ाने के लिए is(मूल रीसेट) और rs(पूर्ण रीसेट) क्रमों को बदलें, जैसे :is=\Ec\E[?12l:TERMCAPपर्यावरण वैरिएबल को संपादित मान (शुरुआत और अंत :) के साथ सेट करें ।

कुछ टर्मिनल और अन्य एप्लिकेशन आपको अधिक विकल्प देते हैं:

  • टर्म कर्सर ब्लिंक करता है, तो cursorBlinkसंसाधन के लिए सेट है trueया -bcविकल्प कमांड लाइन पर पारित कर दिया है। पलक की दर संसाधनों cursorOnTimeऔर cursorOffTimeसंसाधनों के माध्यम से अनुकूलन योग्य है ।
  • कुछ अन्य जीयूआई टर्मिनल एमुलेटर कर्सर को झपका सकते हैं; उनके कॉन्फ़िगरेशन संवाद बॉक्स की जाँच करें।
  • लिनक्स पीसी (VGA) सांत्वना कर्सर सेटिंग्स की एक संख्या है; उनका सटीक अर्थ और प्रयोज्यता अंतर्निहित वीजीए कार्यान्वयन (लिनक्स फ्रेमबफ़र या वीडियो कार्ड) पर निर्भर करता है। यदि आपका डिफ़ॉल्ट कर्सर ब्लिंक करता है, तो हार्डवेयर कर्सर को बंद करने का प्रयास करें और सॉफ़्टवेयर कर्सर कुछ इस तरह से हो printf '\033[17;127?c'(पहला पैरामीटर 17 आपको हार्डवेयर कर्सर के बिना सॉफ़्टवेयर कर्सर देता है, और 127 पर सेट दूसरा पैरामीटर इसे अनिवार्य रूप से उलटा वीडियो बनाता है)। टर्मिनल रीसेट के बारे में ऊपर देखें।
  • में Emacs , M-x blink-cursor-modeकर्सर के निमिष टॉगल करता है। इसे बंद करने के लिए (blink-cursor-mode 0)अपने अंदर रखें ~/.emacs। यह एक वैश्विक सेटिंग है और पाठ टर्मिनल में लागू नहीं होती है।

Lesstif, Tk, Gtk (Gnome), Qt (KDE), फ़ायरफ़ॉक्स, आदि में ब्लिंकिंग को कैसे बंद करें, इसके लिए Juri Linkov (Jurta) का कोई ब्लिंकिंग पेज भी देखें ।


14

यदि आपके पास रूट अनुमतियां हैं तो मुझे यह आसान लग रहा है:

~$ echo 0 > /sys/class/graphics/fbcon/cursor_blink

मैंने इसे /etc/rc.localआर्च लिनेक्स की तरह मशीन स्टार्टअप स्क्रिप्ट में डाल दिया ।


5

Linux tty में आप भागने के क्रम का उपयोग कर सकते हैं "\e[?48;0;64"या जो भी आपको पसंद है लेकिन यह tmux / vim में काम नहीं करता है। Tmux / Vim स्टार्टअप पर "cnorm" कमांड जारी करता है जिसमें डिफ़ॉल्ट रूप से a "\e[?0c"। आप देख सकते हैं कि यह उपरोक्त सेटिंग के प्रभावों को कम करता है। कर्सर को अपनी वरीयता के लिए रीसेट करने के लिए आपको TUI अनुप्रयोगों के लिए उपरोक्त क्रम में cnorm को बदलना होगा। Gilles द्वारा इस पर अधिक जानकारी लेकिन अगर आप एक त्वरित सुधार के लिए देख रहे हैं यह कोशिश:

infocmp linux > /tmp/linux-terminfo
# Replace the last escape sequence here with your colors and settings
sed -i 's/cnorm=\\E\[?25h\\E\[?0c/cnorm=\\E[?25h\\E?48;0;64c/' /tmp/linux-terminfo
tic /tmp/linux-terminfo

~/.terminfoयदि आप tmux सर्वर / विम को रीस्टार्ट करते हैं तो अंतिम कमांड नया टर्मऑफ जनरेट करेगा, जिसके तहत स्वचालित रूप से उठाया जाना चाहिए।


3

रखना

\ 033 [17;? 0; 127c

आपके PS1 चर के लिए और आप लगातार ब्लिंक करना बंद कर देंगे।

ईजी:

निर्यात PS1 = '\ 033 [? 17; 0; 127c \ u: \ w \ $'


1
यह (कम से कम मेरे लिए) टर्मिनल लाइन ब्रेक (लाइन ओवरफ्लो पर) को पेंच करेगा। वर्ग कोष्ठक का उपयोग करें, बच गया: उदाहरण के लिए BLUEBOXNOBLINK="\033[?17;0;60c", तबPS1="\[$BLUEBOXNOBLINK\]\[$BROWN\]\u \[$CYAN\]\W: \[$NC\]"
इमानुएल बर्ग

0
sudo cp /etc/issue /etc/issue.tmp
setterm -cursor off | sudo tee /etc/issue
cat /etc/issue.tmp | sudo tee --append /etc/issue
sudo rm /etc/issue.tmp
sudo reboot

यह एक अद्भुत समाधान है और संभवत: यह बहुत अधिक अपवित्र है, अगर लेखक इसे स्पष्ट करना नहीं भूलता ... :-)
पीटर ने कहा कि मोनिका

1
-cursor offनहीं काफी बिल्कुल के लिए क्या कहा जाता है, यह कर्सर गायब बनाता है ... setterm -blink offऔर अधिक का वादा लगता है, लेकिन यह पाठ, न कि वास्तविक कर्सर को प्रभावित करता है।
mr.spuratic

setterm -cursor off; setterm -cursor onयहाँ काम करता है, लेकिन यह एक अस्वीकार्य समाधान है
थॉर

0

मैंने डाला

echo 0 > /sys/class/graphics/fbcon/cursor_blink

in /etc/rc.local और ऑनलाइन निर्देशों का उपयोग करके इसके लिए एक सिस्टमड सेवा बनाई। हालाँकि, मैंने देखा कि कभी-कभी बूट के बाद भी कर्सर ब्लिंक होता है। आधुनिक सिस्टम सिस्टम पर sysfs के माध्यम से ब्लिंकिंग कर्सर को स्थायी रूप से बंद करने का सही तरीका जानना अच्छा होगा, क्या किसी को कोई सुझाव नहीं है? कुछ वितरण में /etc/sysfs.conf है, लेकिन मैं आर्क चला रहा हूं और इस फाइल को sysfsutils या अन्य जगहों पर नहीं ढूंढता।

एक अस्थायी फिक्स के रूप में मैंने निम्नलिखित कमांड को चलाया

sudo zsh -c 'echo -n "\033[?17;0;255c" >> /etc/issue'

कुछ प्रयोग से पता चला है कि अंत में '255c' ऊपर सूचीबद्ध '127c' से बेहतर काम करता है, यह ग्रे कर्सर के बजाय एक सफेद उत्पादन करता है।


0

लिनक्स कंसोल के लिए:

वैकल्पिक 1

अपनी फ़ाइल में लाइनों में -I "\033[?17;0;255c"विकल्प जोड़ें । ऐसा करने के लिए:getty/etc/inittab

  1. /etc/inittabफ़ाइल को टेक्स्ट एडिटर से खोलें । वहाँ लाइनों, जिनमें शामिल है होना चाहिए gettyया agettyया इसी तरह की। एक उदाहरण है:

    tty1::respawn:/sbin/getty 38400 tty1
    
  2. -I "\033[?17;0;255c"प्रत्येक gettyपंक्ति में जोड़ें । एक उदाहरण के रूप में, जोड़ने के बाद -I "\033[?17;0;255c", gettyऊपर की रेखा निम्नानुसार दिखाई देगी:

    tty1::respawn:/sbin/getty -I "\033[?17;0;255c" 38400 tty1
    
  3. सिस्टम को रिबूट करें, या वैकल्पिक रूप से, सभी gettyप्रक्रियाओं को मार दें ।

वैकल्पिक 2

एक बेहतर विकल्प यह है कि इसे लाइनों में लगाने के बजाय ESC[?17;0;255cअंदर रखा जाए । इसका उपयोग करना इस प्रकार है:/etc/issuegettyvi

  1. /etc/issueका उपयोग कर खोलें vi
  2. /etc/issueफ़ाइल के किसी भी भाग पर , इन्सर्ट मोड डालें।
  3. आप डालने मोड, प्रेस में होने के दौरान ^V(जो है, Ctrlv), तो प्रेस Esc। बच चरित्र अब डाला जाना चाहिए।
  4. अब, शेष वर्ण डालें, जो हैं [?17;0;255c

वैकल्पिक 3

एक अन्य विकल्प हार्डवेयर कर्सर (एक सॉफ्टवेयर कर्सर का उपयोग करने के बजाय) रख रहा है और हार्डवेयर कर्सर को ब्लिंक करना बंद कर देता है और इसे ब्लॉक कर्सर बनाता है। ऐसा करने के लिए:

  1. निम्नलिखित को इसमें जोड़ें /etc/inittab:

    # Stop cursor blink on Linux console
    ::sysinit:/bin/sh -c "echo 0 > /sys/class/graphics/fbcon/cursor_blink"
    
  2. जोड़े ESC[?8cको /etc/issue। ऐसा करने के निर्देशों के लिए "वैकल्पिक 2" का संदर्भ लें।

हालांकि, इस विकल्प के साथ, कर्सर उज्ज्वल सफेद नहीं बनता है। मुझे लगता है कि यह केवल सॉफ्टवेयर कर्सर के उपयोग से संभव है।

इनमें से किसी भी विकल्प का पालन करने के बाद, आप एक सफेद, गैर-ब्लिंकिंग, ब्लॉक कर्सर प्राप्त करेंगे।

अग्रिम जानकारी


0

यह पूरी तरह से कर्सर को छुपाता है।

tput civis

रिटायर होने के लिए:

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