커서가 깜박임을 멈추는 방법


22

TTY에blinking 있을 때 커서를 멈추려면 어떻게해야 합니까? (또는 다른 곳).

보너스 커서가 거의 모든 곳에서 깜박임을 멈추게하는 하나의 범용 설정을 가리 킵니다 .

답변:


17

커서로 노란색 블록 (깜박이지 않음)이 나타납니다.

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

자세한 정보는 LinuxgazetteEmacsWiki 와 파일 /usr/src/linux/Documentation/VGA-softcursor.txt(시스템에있는 경우)을 참조하십시오.


이것은 vim을 사용할 때까지 작동합니다. 그리고 나서 나가면 커서가 다시 깜박입니다. (
mulllhausen

그리고 이것은 당신에게 깜박이지 않는 흰색 블록을줍니다echo -e '\033[?16;0;224c'
Utku

thx, 나는 마지막 숫자 (224)를 244로 변경하여 흰색 블록 을 얻을 수 있습니다 :)

아치 리눅스에서 bash 5.0.11을 실행하는 시스템에는 영향을 미치지 않습니다
S.Goswami

26

표준 제어 시퀀스 터미널에 깜박이는 커서 해제는.

printf '\033[?12l'

그러나 많은 터미널이이 설정을 구현하지 않으므로 계속 읽으십시오.

높은 가시성, 일반 가시성 및 비 가시성 사이에서 커서 가시성 을 전환하기 위해보다 광범위하게 구현 된 표준 터미널 설정이 있습니다. 일부 터미널은 보통과 높음의 차이를 만들지 않으며, 어느 한쪽이 다른 쪽이 깜박 거릴 것인지 보장하지 않습니다. 에서 의 terminfo 의 방출 cvvis, cnorm또는 civis문자열 (예를 tput cvvis). 해당 TERMCAP의 항목은 vs, ve하고 vi.

이 설정은 터미널 재설정 후에도 유지되지 않으므로 많은 전체 화면 응용 프로그램을 시작해도 살아남지 못할 수 있습니다. 커서 구성 변경 순서를 터미널의 재설정 문자열에 추가하여이 어려움을 극복 할 수 있습니다.

  • ncurses를 사용하는 terminfo 기반 시스템에서을 사용하여 터미널의 terminfo 설정을 파일에 저장하십시오 infocmp >>~/etc/terminfo.txt. 설명을 편집하여 rs1(기본 재설정) 순서 를 변경하십시오 (예 :로 교체 rs1=\Ec) rs1=\Ec\E[?12l. 일부 프로그램 및 설정에서는 rs2(전체 재설정)도 변경해야 할 수도 있습니다. 그런 다음 terminfo 설명을 다음과 같이 컴파일하십시오 tic ~/etc/terminfo.txt(디렉토리 아래에 작성 $TERMINFO되거나 ~/.terminfo설정되지 않은 경우).
  • termcap 기반 시스템에서 termcap 데이터베이스 (일반적으로 /etc/termcap) 에서 termcap 설정을 가져옵니다 . 변경 is(기본 리셋)와 rs, 예를 설정을 추가 할 (전체 재설정) 시퀀스를 :is=\Ec\E[?12l:. 설정 TERMCAP편집 된 값으로 환경 변수를 (시작과 함께 끝 :).

일부 터미널 및 기타 응용 프로그램은 더 많은 옵션을 제공합니다.

  • 의 xterm 커서가 깜박은 경우 cursorBlink자원으로 설정 true또는 -bc옵션은 명령 행에 전달됩니다. 깜박임 속도는 cursorOnTimecursorOffTime리소스를 통해 사용자 지정할 수 있습니다.
  • 다른 GUI 터미널 에뮬레이터는 커서를 깜박일 수 있습니다. 구성 대화 상자를 확인하십시오.
  • 리눅스 PC (VGA) 콘솔 커서 설정을 가지고 있습니다; 정확한 의미와 적용 가능성은 기본 VGA 구현 (Linux 프레임 버퍼 또는 비디오 카드)에 따라 다릅니다. 기본 커서가 깜박이면 하드웨어 커서를 끄고 소프트웨어 커서를 켜십시오 printf '\033[17;127?c'(첫 번째 매개 변수 17은 하드웨어 커서없이 소프트웨어 커서를 제공하고 127로 설정된 두 번째 매개 변수는 본질적으로 비디오를 반전시킵니다). 터미널 리셋에 대해서는 위를 참조하십시오.
  • 에서 이맥스 , M-x blink-cursor-mode커서의 깜박임을 전환합니다. 넣어 (blink-cursor-mode 0)당신의 ~/.emacs기능을 해제 할 수 있습니다. 이것은 전역 설정이며 텍스트 터미널에는 적용되지 않습니다.

Lesstif, Tk, Gtk (Gnome), Qt (KDE), Firefox 등에서 깜박임을 끄는 방법에 대해서는 Juri Linkov (Jurta)의 깜박임 없음 페이지참조하십시오 .


14

루트 권한이 있으면 더 쉽다는 것을 알았습니다.

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

나는 /etc/rc.local아치 리눅스 와 같은 컴퓨터 시작 스크립트에 넣었다 .


5

리눅스 tty에서는 이스케이프 시퀀스 "\e[?48;0;64"또는 원하는 것을 사용할 수 있지만 tmux / vim에서는 작동하지 않습니다. Tmux / Vim은 시작시 "cnorm"명령을 실행하는데 기본적으로 "\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

마지막 명령은 ~/.terminfotmux server / vim을 다시 시작할 때 자동으로 선택해야하는 새 terminfo를 생성합니다 .


3

놓다

\ 033 [? 17; 0; 127c

PS1 변수에 연결하면 깜박임이 멈 춥니 다.

EG :

내보내기 PS1 = '\ 033 [? 17; 0; 127c \ u : \ w \ $'


1
이렇게하면 (적어도 나를 위해) 터미널 라인 중단이 발생합니다 (온라인 오버플로). 이스케이프 처리 된 대괄호 사용 : 예를 들어 BLUEBOXNOBLINK="\033[?17;0;60c"다음PS1="\[$BLUEBOXNOBLINK\]\[$BROWN\]\u \[$CYAN\]\W: \[$NC\]"
Emanuel Berg

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

그것은 훌륭한 솔루션이며 저자가 그것을 설명하는 것을 잊지 않았 으면, 아마 upvotes을 많이 가지고 ... :-)
peterh는 분석 재개 모니카 말한다

1
-cursor off전혀 요구 되지 않는 것은 커서를 사라지게합니다 ... setterm -blink off더 유망한 것처럼 보이지만 실제 커서가 아닌 텍스트에 영향을 미칩니다.
mr.spuratic

setterm -cursor off; setterm -cursor on여기서 작동하지만 허용되지 않는 해결 방법입니다
Thor

0

나는 넣어

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

/etc/rc.local에서 온라인 지시 사항을 사용하여 시스템화 된 서비스를 작성했습니다. 그러나 부팅 후 때때로 커서가 여전히 깜박이는 것을 알았습니다. 최신 시스템 시스템에서 sysfs를 통해 커서 깜박임을 영구적으로 끄는 올바른 방법을 아는 것이 좋습니다. 일부 배포판에는 /etc/sysfs.conf가 있지만 Arch를 실행 중이며 sysfsutils 또는 다른 곳에서이 파일을 찾을 수 없습니다.

임시 수정으로 다음 명령을 실행했습니다.

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

일부 실험에 따르면 끝에있는 '255c'는 위에 나열된 '127c'보다 잘 작동하며 회색 커서보다는 흰색을 생성합니다.


0

Linux 콘솔의 경우 :

대안 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/issue대신에 넣는, getty라인. 이것을 사용하는 vi것은 다음과 같습니다.

  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
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.