it-swarm-ja.tech

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

[〜#〜] tty [〜#〜]のときにカーソルをblinkingで停止させるにはどうすればよいですか? (または他の場所)。

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

22
Stefan

これにより、カーソルとして黄色のブロック(点滅なし)が表示されます。

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

詳細については、次の参照を確認してください: Linuxgazette および EmacsWiki とファイル/usr/src/linux/Documentation/VGA-softcursor.txt(システムに存在する場合)

17
tante

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

printf '\033[?12l'

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

カーソルの可視性を高可視性、通常の可視性、非可視性の間で切り替えるためのより広く実装された標準端末設定があります。一部の端末では、正常と高の違いがありません。また、どちらかが点滅するかどうかは保証されません。 terminfo で、cvviscnormまたはcivis文字列(例:tput cvvis)を発行します。対応する termcap エントリはvsveおよびviです。

これらの設定は、端末resetには対応していません。そのため、多くのフルスクリーンアプリケーションの起動に対応できない場合があります。端末のリセット文字列にカーソル設定変更シーケンスを追加することで、この問題を克服できます。

  • Ncursesを使用したterminfoベースのシステムでは、端末のterminfo設定をinfocmp >>~/etc/terminfo.txtのファイルに保存します。説明を編集して、rs1(基本リセット)シーケンスを変更します。 rs1=\Ecrs1=\Ec\E[?12lに置き換えます。一部のプログラムと設定では、rs2(フルリセット)も変更する必要がある場合があります。次に、tic ~/etc/terminfo.txtを使用してterminfoの説明をコンパイルします(これは、$TERMINFO、または設定されていない場合は~/.terminfoの下に書き込みます)。
  • Termcapベースのシステムでは、termcapデータベースからtermcap設定を取得します(通常は/etc/termcap)。 is(基本リセット)およびrs(完全リセット)シーケンスを変更して、設定を追加します。 :is=\Ec\E[?12l:TERMCAP環境変数を編集した値に設定します(:で開始および終了)。

端末やその他のアプリケーションによっては、さらに多くのオプションが用意されています。

  • xterm カーソルは、cursorBlinkリソースがtrueに設定されているか、-bcオプションがコマンドラインで渡されます。点滅速度は、cursorOnTimeおよびcursorOffTimeリソースを通じてカスタマイズできます。
  • 他の一部のGUI端末エミュレーターは、カーソルを点滅させることができます。構成ダイアログボックスを確認してください。
  • Linux PC(VGA)console にはいくつかのカーソル設定があります。それらの正確な意味と適用性は、基盤となる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)で点滅をオフにする方法については、 Juri Linkov (Jurta) 's No Blinking page も参照してください。 )、Firefoxなど。

Root権限を持っていると、これが簡単になることがわかりました。

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

Arch Linuxの/etc/rc.localのように、マシンの起動スクリプトに入れます。

14
duraid

Linux ttyでは、エスケープシーケンス"\e[?48;0;64"または好きなものを使用できますが、これはtmux/vimでは機能しません。 Tmux/Vimは、起動時にデフォルトで"\e[?0c"を含む「cnorm」コマンドを発行します。これにより、上記の設定の効果が取り消されることがわかります。 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の下に新しいterminfoを生成します。これは、tmux server/vimを再起動すると自動的に取得されます。

5
ypsu

置く

\ 033 [?17; 0; 127c

pS1変数に設定すると、点滅が止まります。

例えば:

エクスポートPS1 = '\ 033 [?17; 0; 127c\u:\ w\$'

3
mru

置いた

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
Metamorphic

これにより、カーソルが完全に非表示になります。

tput civis

やり直すには:

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

Linuxコンソールの場合:

代替案1

-I "\033[?17;0;255c"オプションを/etc/inittabファイルのgetty行に追加します。そうするために:

  1. テキストエディタで/etc/inittabファイルを開きます。 gettyまたはagettyまたは類似の行が含まれている必要があります。例は次のとおりです。

    tty1::respawn:/sbin/getty 38400 tty1
    
  2. getty行に-I "\033[?17;0;255c"を追加します。例として、-I "\033[?17;0;255c"を追加すると、上記のgetty行は次のようになります。

    tty1::respawn:/sbin/getty -I "\033[?17;0;255c" 38400 tty1
    
  3. システムを再起動するか、代わりにすべてのgettyプロセスを終了します。

代替案2

より良い代替策は、getty行に配置する代わりに、ESC[?17;0;255c/etc/issueに配置することです。 viを使用してこれを行うと、次のようになります。

  1. viを使用して/etc/issueを開きます。
  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
Utku