カーソルの点滅を止める方法


22

TTYblinkingでカーソルを停止するにはどうすればよいですか?(または他の場所)。

ほぼすべての場所でカーソルの点滅を止める1つのユニバーサル設定のボーナスポイント

回答:


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に変更して、白いブロックを取得できます:)

Arch Linuxでbash 5.0.11を実行しているシステムでは、この影響はありません
S.Goswami

26

端末でカーソルの点滅をオフにする標準の制御シーケンスがあります。

printf '\033[?12l'

ただし、多くの端末はこの設定を実装していないため、読み進めてください。

カーソルの可視性を高い可視性、通常の可視性、および非可視性の間で切り替えるための、より広く実装された標準端末設定があります。一部の端末は通常と高の違いを生まないため、どちらかが点滅するかどうかは保証されていません。ではterminfoに、放出cvviscnormまたはcivis文字列(例えばtput cvvis)。対応するtermcapエントリはvsveおよび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データベースからtermcap設定を取得します(通常/etc/termcap)。変更is(基本リセット)とrs、例えば、あなたの設定を追加する(フルリセット)配列を:is=\Ec\E[?12l:TERMCAP環境変数を編集された値に設定します(先頭と末尾が:)。

一部の端末およびその他のアプリケーションには、より多くのオプションがあります。

  • xterm場合、カーソルが点滅cursorBlinkリソースがに設定されているtrueか、-bcオプションがコマンドラインに渡されます。まばたきの速度は、cursorOnTimeおよびcursorOffTimeリソースを通じてカスタマイズできます。
  • 他のいくつかのGUI端末エミュレーターは、カーソルを点滅させることができます。設定ダイアログボックスを確認してください。
  • LinuxのPC(VGA)コンソールは、カーソル設定の数を持っています。正確な意味と適用可能性は、基礎となるVGA実装(Linuxフレームバッファーまたはビデオカード)に依存します。デフォルトのカーソルが点滅する場合は、ハードウェアカーソルをオフにして、ソフトウェアカーソルを次のような方法でオンにしてみてくださいprintf '\033[17;127?c'(最初のパラメーター17はハードウェアカーソルのないソフトウェアカーソルを提供し、2番目のパラメーターを127に設定すると本質的に逆のビデオになります)。端末のリセットについては上記を参照してください。
  • Emacsに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.localarch linuxのように、マシンの起動スクリプトに入れました。


5

Linux 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変数に変更すると、点滅が止まります。

例えば:

export 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

著者がそれを説明することを忘れなかった場合、それは素晴らしい解決策であり、おそらく多くの賛成を得ました... :
ピーターはモニカを復活させる14

1
-cursor offまったく求められているものではなく、カーソルを非表示にします... setterm -blink offより有望なようですが、実際のカーソルではなくテキストに影響します。
Mr.spuratic 14年

setterm -cursor off; setterm -cursor onここでは機能しますが、許容できない回避策です
トール

0

置いた

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

/etc/rc.localにあり、オンラインの指示を使用してそのためのsystemdサービスを作成しました。ただし、起動後もカーソルが点滅している場合があります。最新のsystemdシステムで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つの方法は、(ソフトウェアカーソルを使用する代わりに)ハードウェアカーソルを保持し、ハードウェアカーソルの点滅を停止してブロックカーソルにすることです。そうするには:

  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.