Jawaban:
Ini memberi Anda blok kuning solid (nonblinking) sebagai kursor:
echo -n -e '\e[?17;14;224c'
Untuk info lebih lanjut, periksa referensi ini: Linuxgazette dan EmacsWiki serta file /usr/src/linux/Documentation/VGA-softcursor.txt
(jika ada di sistem Anda)
echo -e '\033[?16;0;224c'
Ada urutan kontrol standar untuk mematikan kursor yang berkedip pada terminal.
printf '\033[?12l'
Namun banyak terminal tidak menerapkan pengaturan ini, jadi baca terus.
Ada pengaturan terminal standar yang lebih banyak diterapkan untuk mengalihkan visibilitas kursor antara visibilitas tinggi, visibilitas normal, dan invisibilitas. Beberapa terminal tidak membuat perbedaan antara normal dan tinggi, dan tidak ada jaminan bahwa satu atau yang lain akan atau tidak akan berkedip. Dalam terminfo , memancarkan cvvis
, cnorm
atau civis
tali (misalnya tput cvvis
). Entri termcap yang sesuai adalah vs
, ve
dan vi
.
Pengaturan ini tidak akan bertahan dari reset terminal , sehingga Anda mungkin menemukan bahwa itu tidak selamat dari peluncuran banyak aplikasi layar penuh. Anda dapat mengatasi kesulitan ini dengan menambahkan urutan perubahan konfigurasi kursor ke string reset terminal Anda.
infocmp >>~/etc/terminfo.txt
. Edit deskripsi untuk mengubah urutan rs1
(reset dasar), misalnya ganti rs1=\Ec
dengan rs1=\Ec\E[?12l
. Dengan beberapa program dan pengaturan, Anda mungkin perlu mengubah rs2
(reset penuh) juga. Kemudian kompilasi deskripsi terminfo dengan tic ~/etc/terminfo.txt
(ini menulis di bawah direktori $TERMINFO
, atau ~/.terminfo
jika tidak disetel)./etc/termcap
). Ubah urutan is
(reset dasar) dan rs
(reset penuh) untuk menambahkan pengaturan Anda, misalnya :is=\Ec\E[?12l:
. Setel TERMCAP
variabel lingkungan ke nilai yang diedit (dimulai dan diakhiri dengan :
).Beberapa terminal dan aplikasi lain memberi Anda lebih banyak opsi:
cursorBlink
sumber daya diatur ke true
atau -bc
opsi dilewatkan pada baris perintah. Tingkat kedipan dapat disesuaikan melalui cursorOnTime
dan cursorOffTime
sumber daya.printf '\033[17;127?c'
(parameter pertama 17 memberi Anda kursor perangkat lunak tanpa kursor perangkat keras, dan parameter kedua yang diatur ke 127 membuatnya pada dasarnya membalikkan video). Lihat di atas tentang pengaturan ulang terminal.M-x blink-cursor-mode
matikan kursor yang berkedip. Masukkan (blink-cursor-mode 0)
Anda ~/.emacs
untuk mematikannya. Ini adalah pengaturan global dan tidak berlaku di terminal teks.Lihat juga halaman No Blinking Juri Linkov (Jurta) untuk cara mematikan blinking di Lesstif, Tk, Gtk (Gnome), Qt (KDE), Firefox, dan banyak lagi.
Di linux tty Anda dapat menggunakan urutan escape "\e[?48;0;64"
atau apa pun yang Anda suka tetapi ini tidak bekerja di tmux / vim. Tmux / Vim mengeluarkan perintah "cnorm" saat startup yang secara default berisi a "\e[?0c"
. Anda dapat melihat bahwa ini membatalkan efek pengaturan di atas. Anda perlu mengubah cnorm ke urutan di atas agar aplikasi TUI mengatur ulang kursor ke preferensi Anda. Info lebih lanjut tentang ini oleh Gilles tetapi jika Anda mencari perbaikan cepat coba ini:
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
Perintah terakhir akan menghasilkan terminfo baru di ~/.terminfo
mana harus diambil secara otomatis jika Anda me-restart server tmux / vim.
Taruh
\ 033 [? 17; 0; 127c
ke variabel PS1 Anda dan Anda akan berhenti berkedip terus-menerus.
MISALNYA:
ekspor PS1 = '\ 033 [? 17; 0; 127c \ u: \ w \ $'
BLUEBOXNOBLINK="\033[?17;0;60c"
, makaPS1="\[$BLUEBOXNOBLINK\]\[$BROWN\]\u \[$CYAN\]\W: \[$NC\]"
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
-cursor off
tidak cukup apa yang diminta sama sekali, itu membuat kursor menghilang ... setterm -blink off
tampaknya lebih menjanjikan, tetapi itu mempengaruhi teks, bukan kursor yang sebenarnya.
setterm -cursor off; setterm -cursor on
tidak bekerja di sini, tetapi ini adalah solusi yang tidak dapat diterima
Saya menempatkan
echo 0 > /sys/class/graphics/fbcon/cursor_blink
di /etc/rc.local dan buat layanan systemd untuknya menggunakan instruksi online. Namun, saya perhatikan bahwa kadang-kadang setelah booting kursor masih berkedip. Akan lebih baik untuk mengetahui cara yang benar untuk mematikan kursor yang berkedip secara permanen melalui sysfs pada sistem systemd modern, apakah ada yang punya tips? Beberapa distribusi memiliki /etc/sysfs.conf tetapi saya menjalankan Arch dan tidak menemukan file ini di sysfsutils atau di tempat lain.
Sebagai perbaikan sementara saya menjalankan perintah berikut
sudo zsh -c 'echo -n "\033[?17;0;255c" >> /etc/issue'
Beberapa percobaan menunjukkan bahwa '255c' pada akhirnya berfungsi lebih baik daripada '127c' yang tercantum di atas, menghasilkan kursor putih daripada abu-abu.
Untuk konsol Linux:
Tambahkan -I "\033[?17;0;255c"
opsi ke getty
baris di /etc/inittab
file Anda . Untuk melakukannya:
Buka /etc/inittab
file dengan editor teks. Harus ada garis yang berisi getty
atau agetty
atau serupa. Contohnya adalah:
tty1::respawn:/sbin/getty 38400 tty1
Tambahkan -I "\033[?17;0;255c"
ke setiap getty
baris. Sebagai contoh, setelah menambahkan -I "\033[?17;0;255c"
, getty
baris di atas akan terlihat sebagai berikut:
tty1::respawn:/sbin/getty -I "\033[?17;0;255c" 38400 tty1
Mulai ulang sistem, atau jika tidak, bunuh semua getty
proses.
Alternatif yang lebih baik adalah dengan menempatkan ESC[?17;0;255c
di /etc/issue
, bukannya menempatkan ke getty
jalur. Melakukan ini menggunakan vi
adalah sebagai berikut:
/etc/issue
menggunakan vi
./etc/issue
file, masukkan mode insert^V
(yaitu, Ctrlv), lalu tekan Esc. Karakter pelarian sekarang harus dimasukkan.[?17;0;255c
.Alternatif lain adalah menjaga kursor perangkat keras (alih-alih menggunakan kursor perangkat lunak) dan berhenti berkedip dari kursor perangkat keras dan menjadikannya sebagai kursor blok. Untuk melakukannya:
Tambahkan yang berikut ke /etc/inittab
:
# Stop cursor blink on Linux console
::sysinit:/bin/sh -c "echo 0 > /sys/class/graphics/fbcon/cursor_blink"
Tambahkan ESC[?8c
ke /etc/issue
. Lihat "Alternatif 2" untuk instruksi melakukan hal ini.
Namun, dengan opsi ini, kursor tidak menjadi putih terang. Saya kira ini hanya mungkin dengan menggunakan kursor perangkat lunak.
Setelah mengikuti salah satu dari alternatif ini, Anda akan mendapatkan kursor blok putih, tidak berkedip.