Câu trả lời:
Điều này cung cấp cho bạn một khối màu vàng đặc (không nhấp nháy) dưới dạng con trỏ:
echo -n -e '\e[?17;14;224c'
Để biết thêm thông tin, hãy kiểm tra các tài liệu tham khảo này: Linuxgazette và EmacsWiki cũng như tệp /usr/src/linux/Documentation/VGA-softcursor.txt
(nếu có trên hệ thống của bạn)
echo -e '\033[?16;0;224c'
Có một chuỗi điều khiển tiêu chuẩn để tắt con trỏ nhấp nháy trên các thiết bị đầu cuối.
printf '\033[?12l'
Tuy nhiên, nhiều thiết bị đầu cuối không thực hiện cài đặt này, vì vậy hãy đọc tiếp.
Có một thiết lập thiết bị đầu cuối tiêu chuẩn được triển khai rộng rãi hơn để chuyển đổi khả năng hiển thị của con trỏ giữa khả năng hiển thị cao, khả năng hiển thị bình thường và tàng hình. Một số thiết bị đầu cuối không tạo ra sự khác biệt giữa bình thường và cao, và không có gì đảm bảo rằng cái này hay cái kia sẽ không nhấp nháy. Trong terminfo , phát ra cvvis
, cnorm
hoặc civis
chuỗi (ví dụ tput cvvis
). Các mục termcap tương ứng là vs
, ve
và vi
.
Các cài đặt này sẽ không tồn tại trong thiết lập lại thiết bị đầu cuối , vì vậy bạn có thể thấy rằng nó không tồn tại khi khởi chạy nhiều ứng dụng toàn màn hình. Bạn có thể khắc phục khó khăn này bằng cách thêm chuỗi thay đổi cấu hình con trỏ vào chuỗi đặt lại của thiết bị đầu cuối.
infocmp >>~/etc/terminfo.txt
. Chỉnh sửa mô tả để thay đổi trình tự rs1
(thiết lập lại cơ bản), ví dụ thay thế rs1=\Ec
bằng rs1=\Ec\E[?12l
. Với một số chương trình và cài đặt, bạn cũng có thể cần phải thay đổi rs2
(thiết lập lại toàn bộ). Sau đó biên dịch mô tả terminfo với tic ~/etc/terminfo.txt
(phần này ghi trong thư mục $TERMINFO
hoặc ~/.terminfo
nếu không được đặt)./etc/termcap
). Thay đổi is
(thiết lập lại cơ bản) và rs
(full reset) trình tự để nối thêm các thiết lập của bạn, ví dụ :is=\Ec\E[?12l:
. Đặt TERMCAP
biến môi trường thành giá trị được chỉnh sửa (bắt đầu và kết thúc bằng :
).Một số thiết bị đầu cuối và các ứng dụng khác cung cấp cho bạn nhiều tùy chọn hơn:
cursorBlink
tài nguyên được đặt thành true
hoặc -bc
tùy chọn được truyền trên dòng lệnh. Tỷ lệ chớp mắt có thể tùy chỉnh thông qua cursorOnTime
và cursorOffTime
tài nguyên.printf '\033[17;127?c'
(tham số đầu tiên 17 cung cấp cho bạn con trỏ phần mềm không có con trỏ phần cứng và tham số thứ hai được đặt thành 127 làm cho video về cơ bản nghịch đảo). Xem ở trên liên quan đến thiết lập lại thiết bị đầu cuối.M-x blink-cursor-mode
bật tắt con trỏ nhấp nháy. Đặt (blink-cursor-mode 0)
trong của bạn ~/.emacs
để tắt nó. Đây là cài đặt toàn cục và không áp dụng trong thiết bị đầu cuối văn bản.Xem thêm trang Không nhấp nháy của Juri Linkov (Jurta) để biết cách tắt nhấp nháy trong Lesstif, Tk, Gtk (Gnome), Qt (KDE), Firefox, v.v.
Trong linux tty, bạn có thể sử dụng chuỗi thoát "\e[?48;0;64"
hoặc bất cứ thứ gì bạn thích nhưng điều này không hoạt động trong tmux / vim. Tmux / Vim ban hành lệnh "cnorm" khi khởi động mà theo mặc định có chứa a "\e[?0c"
. Bạn có thể thấy rằng điều này hoàn tác các hiệu ứng của cài đặt ở trên. Bạn cần thay đổi cnorm thành chuỗi trên để các ứng dụng TUI đặt lại con trỏ theo sở thích của bạn. Thông tin thêm về điều này của Gilles nhưng nếu bạn đang tìm cách khắc phục nhanh hãy thử điều này:
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
Lệnh cuối cùng sẽ tạo ra terminfo mới, theo ~/.terminfo
đó sẽ được chọn tự động nếu bạn khởi động lại máy chủ tmux / vim.
Đặt
\ 033 [? 17; 0; 127c
đến biến PS1 của bạn và bạn sẽ ngừng nhấp nháy liên tục.
VÍ DỤ:
xuất PS1 = '\ 033 [? 17; 0; 127c \ u: \ w \ $'
BLUEBOXNOBLINK="\033[?17;0;60c"
sau đóPS1="\[$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
hoàn toàn không phải là những gì được yêu cầu, nó làm cho con trỏ biến mất ... setterm -blink off
có vẻ hứa hẹn hơn, nhưng nó ảnh hưởng đến văn bản, chứ không phải con trỏ thực tế.
setterm -cursor off; setterm -cursor on
không hoạt động ở đây, nhưng đó là một cách giải quyết không thể chấp nhận được
tôi đặt
echo 0 > /sys/class/graphics/fbcon/cursor_blink
trong /etc/rc.local và tạo một dịch vụ systemd cho nó bằng các hướng dẫn trực tuyến. Tuy nhiên, tôi nhận thấy rằng đôi khi sau khi khởi động, con trỏ vẫn nhấp nháy. Sẽ rất tốt nếu biết cách chính xác để tắt vĩnh viễn con trỏ nhấp nháy thông qua sysfs trên một hệ thống systemd hiện đại, có ai có bất cứ lời khuyên nào không? Một số bản phân phối có /etc/sysfs.conf nhưng tôi đang chạy Arch và không tìm thấy tệp này trong sysfsutils hoặc các nơi khác.
Để khắc phục tạm thời, tôi đã chạy lệnh sau
sudo zsh -c 'echo -n "\033[?17;0;255c" >> /etc/issue'
Một số thử nghiệm cho thấy '255c' ở cuối hoạt động tốt hơn '127c' được liệt kê ở trên, nó tạo ra một con trỏ màu trắng thay vì màu xám.
Đối với bảng điều khiển Linux:
Thêm -I "\033[?17;0;255c"
tùy chọn cho getty
các dòng trong /etc/inittab
tập tin của bạn . Làm như vậy:
Mở /etc/inittab
tệp bằng trình soạn thảo văn bản. Nên có dòng có chứa getty
hoặc agetty
hoặc tương đương. Một ví dụ là:
tty1::respawn:/sbin/getty 38400 tty1
Thêm -I "\033[?17;0;255c"
vào mỗi getty
dòng. Ví dụ, sau khi thêm -I "\033[?17;0;255c"
, getty
dòng trên sẽ như sau:
tty1::respawn:/sbin/getty -I "\033[?17;0;255c" 38400 tty1
Khởi động lại hệ thống, hoặc cách khác, giết tất cả các getty
quy trình.
Một thay thế tốt hơn là đưa ESC[?17;0;255c
vào /etc/issue
, thay vì đặt nó vào getty
dòng. Làm điều này bằng cách sử dụng vi
như sau:
/etc/issue
bằng vi
./etc/issue
tập tin, nhập chế độ chèn.^V
(nghĩa là Ctrlv), sau đó nhấn Esc. Các ký tự thoát bây giờ nên được chèn.[?17;0;255c
.Một cách khác là giữ con trỏ phần cứng (thay vì sử dụng con trỏ phần mềm) và dừng nhấp nháy con trỏ phần cứng và biến nó thành con trỏ khối. Làm như vậy:
Thêm vào như sau /etc/inittab
:
# Stop cursor blink on Linux console
::sysinit:/bin/sh -c "echo 0 > /sys/class/graphics/fbcon/cursor_blink"
Thêm ESC[?8c
vào /etc/issue
. Tham khảo "Phương án 2" để được hướng dẫn thực hiện việc này.
Tuy nhiên, với tùy chọn này, con trỏ không trở thành màu trắng sáng. Tôi đoán điều này chỉ có thể khi sử dụng con trỏ phần mềm.
Sau khi làm theo bất kỳ giải pháp thay thế nào trong số này, bạn sẽ có được một con trỏ khối màu trắng, không nhấp nháy.