web-dev-qa-db-fra.com

Comment arrêter le curseur de clignoter

Comment faire l'arrêt du curseur blinking quand dans un TTY ? (ou ailleurs).

points bonus Pour un réglage universel qui arrête le curseur clignotant presque partout.

22
Stefan

Cela vous donne un bloc jaune solide (non-kinking) comme un curseur:

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

Pour plus d'informations, vérifiez ces références: Linuxgazette et Emacswiki ainsi que le fichier /usr/src/linux/Documentation/VGA-softcursor.txt (si présent sur votre système)

17
tante

Il y a un Séquence de contrôle standard Pour désactiver le curseur clignotant sur les bornes.

printf '\033[?12l'

Cependant, de nombreux terminaux ne mettent pas en œuvre ce paramètre, alors lus.

Il existe un réglage de terminal standard plus largement mis en œuvre pour la commutation Visibilité du curseur entre une visibilité élevée, une visibilité normale et une invisibilité. Certains terminaux ne font pas une différence entre la normale et la haute, et rien ne garantit que l'un ou l'autre volonté ou ne clignotera pas. In Terminfo , émettez le cvvis, cnorm ou civis (E.G. tput cvvis). Les entrées correspondantes termcap Les entrées sont vs, ve et vi.

Ces paramètres ne survivront pas à un terminal réinitialiser. Vous constaterez donc que cela ne survivra pas au lancement de nombreuses applications en plein écran. Vous pouvez surmonter cette difficulté en ajoutant la séquence de changement de configuration du curseur sur la chaîne de réinitialisation de votre terminal.

  • Sur un système TermInfo à l'aide de NCurses, enregistrez les paramètres TerminFo de votre terminal dans un fichier avec infocmp >>~/etc/terminfo.txt. Modifiez la description pour modifier la séquence rs1 (Réinitialisation de base), par ex. Remplacez rs1=\Ec par rs1=\Ec\E[?12l. Avec certains programmes et réglages, vous devrez peut-être modifier le rs2 (réinitialisation complète) également. Ensuite, compilez la description TerminFo avec tic ~/etc/terminfo.txt (ceci écrit sous le répertoire $TERMINFO ou ~/.terminfo si non défini).
  • Sur un système basé sur TermCap, saisissez les paramètres TermCap de votre base de données TermCap (typiquement /etc/termcap). Changer le is (réinitialisation de base) et rs (réinitialisation complète) des séquences pour ajouter vos paramètres, par exemple. :is=\Ec\E[?12l:. Définissez la variable d'environnement TERMCAP à la valeur éditée (début et fin avec :).

Certains terminaux et autres applications vous donnent plus d'options:

  • Le xterm curseur clignote si la ressource cursorBlink est définie sur true ou l'option -bc option est transmise sur la ligne de commande. Le taux de clignotement est personnalisable via les ressources cursorOnTime et cursorOffTime ressources.
  • Certains autres émulateurs de terminaux d'interface graphique peuvent clignoter le curseur; Vérifiez leur boîte de dialogue de configuration.
  • Le Console Linux PC (VGA) a un certain nombre de paramètres de curseur; Leur sens exact et leur applicabilité dépend de la mise en œuvre de VGA sous-jacente (Linux Framebuffer ou carte vidéo). Si votre curseur par défaut clignote, essayez de désactiver le curseur du matériel et du curseur de logiciel sur quelque chose comme printf '\033[17;127?c' (le premier paramètre 17 vous donne le curseur logiciel sans curseur de matériel et le deuxième paramètre défini sur 127. il est essentiellement une vidéo inverse). Voir ci-dessus concernant les réinitialisations terminales.
  • Dans Emacs, M-x blink-cursor-mode tondre le clignotant du curseur. Mettez (blink-cursor-mode 0) dans votre ~/.emacs pour l'éteindre. Ceci est un paramètre global et ne s'applique pas dans un terminal de texte.

Voir aussi Juri Linkov (Jurta) 'S No clignotant Page pour savoir comment éteindre le clignotant dans la moissonneuse, TK, GTK (GNOME), QT (KDE), Firefox , et plus.

J'ai trouvé que cela plus facile si vous avez des autorisations racines:

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

Je le mets dans le script de démarrage de la machine comme /etc/rc.local pour archigno Linux.

14
duraid

Mettre

\ 033 [? 17; 0; 127C

à votre variable PS1 et vous arrêterez de clignoter constamment.

PAR EXEMPLE:

export PS1 = '\ 033 [? 17; 0; 127C\U:\w\$' '

3
mru

Je mets

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

dans /etc/rc.local et créé un service SystemD pour celui-ci en utilisant des instructions en ligne. Cependant, j'ai remarqué que parfois après le démarrage, le curseur clignote toujours. Il serait bon de connaître la bonne façon de désactiver définitivement le curseur clignotant via SYSFS sur un système SystemD moderne, est-ce que quelqu'un a des conseils? Certaines distributions ont /etc/sysfs.conf, mais je suis en train d'exécuter une arche et je ne trouve pas ce fichier dans Sysfsutils ou ailleurs.

En tant que solution temporaire, j'ai dirigé la commande suivante

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

Certaines expérimentations ont montré que le "255c" à la fin fonctionne mieux que "127c" énumérés ci-dessus, il produit un curseur blanc plutôt que gris.

0
Metamorphic

Cela cache complètement le curseur.

tput civis

Restaurer:

tput cnorm
0
NVRM
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
0
David Svanberg

Pour la console Linux:

Alternative 1

Ajouter -I "\033[?17;0;255c" Option à getty lignes dans votre /etc/inittab déposer. Faire cela:

  1. Ouvrez le /etc/inittab Fichier avec un éditeur de texte. Il devrait y avoir des lignes contenant getty ou agetty ou similaire. Un exemple est:

    tty1::respawn:/sbin/getty 38400 tty1
    
  2. Ajouter -I "\033[?17;0;255c" à chaque ligne getty. À titre d'exemple, après avoir ajouté -I "\033[?17;0;255c", la ligne getty la ligne ci-dessus serait la suivante:

    tty1::respawn:/sbin/getty -I "\033[?17;0;255c" 38400 tty1
    
  3. Redémarrez le système, ou alternativement, tuez tous les processus getty.

Alternative 2

Une meilleure alternative est de mettre ESC[?17;0;255c dans /etc/issue, au lieu de la mettre à getty lignes. Faire cela en utilisant vi est le suivant:

  1. Ouvert /etc/issue utiliser vi.
  2. Partout où le /etc/issue Fichier, entrez le mode insertion.
  3. Pendant que vous êtes en mode insertion, appuyez sur ^V (C'est, Ctrlv), puis appuyez Esc. Le caractère d'échappement devrait maintenant être inséré.
  4. Maintenant, insérez les caractères restants, qui sont [?17;0;255c.

Alternative 3

Une autre alternative consiste à maintenir le curseur matériel (au lieu d'utiliser un curseur de logiciel) et à cesser de clignoter le curseur du matériel et à en faire un curseur de bloc. Faire cela:

  1. Ajoutez ce qui suit à /etc/inittab:

    # Stop cursor blink on Linux console
    ::sysinit:/bin/sh -c "echo 0 > /sys/class/graphics/fbcon/cursor_blink"
    
  2. Ajouter ESC[?8c à /etc/issue. Reportez-vous à la section "Alternative 2" pour obtenir des instructions pour ce faire.

Cependant, avec cette option, le curseur ne devient pas blanc brillant. Je suppose que cela n'est possible qu'avec l'utilisation du curseur logiciel.

Après avoir suivi l'une de ces alternatives, vous obtiendrez un curseur bloqué blanc, non clignotant.

Informations complémentaires

0
Utku