Làm cách nào để thay đổi hình dạng con trỏ, màu sắc và nhấp nháy của Bảng điều khiển Linux?


23

Tôi biết rằng tôi có thể thay đổi một số cài đặt cơ bản của bảng điều khiển Linux, ví dụ như phông chữ dpkg-reconfigure console-setup.

Nhưng tôi muốn thay đổi những thứ như nhấp nháy, màu sắc và hình dạng (tôi muốn con trỏ của mình luôn là một khối). Tôi đã thấy mọi người thực hiện điều này. Tôi chỉ không bao giờ có cơ hội để hỏi những người đó làm thế nào để làm điều đó.

Tôi không có nghĩa là cửa sổ giả lập thiết bị đầu cuối, ý tôi là bảng điều khiển văn bản Linux, bạn tiếp cận với Ctrl+ Alt+F-key

Hiện tại tôi đang sử dụng Linux Mint, đây là một sản phẩm phái sinh Debian. Dù vậy, tôi cũng muốn biết làm thế nào để làm điều đó ở Fedora.


Chỉnh sửa: Tôi có thể vào một cái gì đó

Tôi đã học được từ trang web này , làm thế nào để thực hiện những thay đổi tôi cần. Nhưng tôi chưa hoàn thành.

Tôi đã quyết định sử dụng echo -e "\e[?16;0;200c"ngay bây giờ, nhưng tôi gặp một vấn đề: khi chạy các ứng dụng như vimhoặc irssi, hoặc đính kèm một phiên màn hình, con trỏ trở lại trạng thái nhấp nháy màu xám nhấp nháy.

Và tất nhiên, nó chỉ hoạt động trên cái này ttytất cả các bảng điều khiển văn bản khác không bị ảnh hưởng.

Vậy làm thế nào tôi có thể thực hiện những thay đổi đó vĩnh viễn? Làm thế nào tôi có thể đưa chúng vào bảng điều khiển khác?


1
Bạn có thể muốn kiểm tra setterm(1)set(1P).

@htor và chính xác như thế nào? Tôi sử dụng settermđể tắt tiếng bíp điều khiển, nhưng tôi nên đặt hình dạng con trỏ như thế nào? Trong thực tế, settermlà nơi đầu tiên tôi nhìn trước khi tìm thấy chuỗi thoát.
Polemon

Tôi chỉ muốn một cách nhanh chóng để khôi phục một thiết bị đầu cuối bị bỏ hoang. Nhận xét của @ user13742 đã làm việc cho tôi: setterm -coder on
qneill

Câu trả lời:


12

GitHub Gist: Cách thay đổi hình dạng con trỏ, màu sắc và nhấp nháy của Bảng điều khiển Linux

Tôi xác định các cài đặt định dạng con trỏ sau trong .bashrctệp của mình (hoặc /etc/bashrc):

##############
# pretty prompt and font colors
##############

# alter the default colors to make them a bit prettier
echo -en "\e]P0000000" #black
echo -en "\e]P1D75F5F" #darkred
echo -en "\e]P287AF5F" #darkgreen
echo -en "\e]P3D7AF87" #brown
echo -en "\e]P48787AF" #darkblue
echo -en "\e]P5BD53A5" #darkmagenta
echo -en "\e]P65FAFAF" #darkcyan
echo -en "\e]P7E5E5E5" #lightgrey
echo -en "\e]P82B2B2B" #darkgrey
echo -en "\e]P9E33636" #red
echo -en "\e]PA98E34D" #green
echo -en "\e]PBFFD75F" #yellow
echo -en "\e]PC7373C9" #blue
echo -en "\e]PDD633B2" #magenta
echo -en "\e]PE44C9C9" #cyan
echo -en "\e]PFFFFFFF" #white
clear #for background artifacting

# set the default text color. this only works in tty (eg $TERM == "linux"), not pts (eg $TERM == "xterm")
setterm -background black -foreground green -store

# http://linuxgazette.net/137/anonymous.html
cursor_style_default=0 # hardware cursor (blinking)
cursor_style_invisible=1 # hardware cursor (blinking)
cursor_style_underscore=2 # hardware cursor (blinking)
cursor_style_lower_third=3 # hardware cursor (blinking)
cursor_style_lower_half=4 # hardware cursor (blinking)
cursor_style_two_thirds=5 # hardware cursor (blinking)
cursor_style_full_block_blinking=6 # hardware cursor (blinking)
cursor_style_full_block=16 # software cursor (non-blinking)

cursor_background_black=0 # same color 0-15 and 128-infinity
cursor_background_blue=16 # same color 16-31
cursor_background_green=32 # same color 32-47
cursor_background_cyan=48 # same color 48-63
cursor_background_red=64 # same color 64-79
cursor_background_magenta=80 # same color 80-95
cursor_background_yellow=96 # same color 96-111
cursor_background_white=112 # same color 112-127

cursor_foreground_default=0 # same color as the other terminal text
cursor_foreground_cyan=1
cursor_foreground_black=2
cursor_foreground_grey=3
cursor_foreground_lightyellow=4
cursor_foreground_white=5
cursor_foreground_lightred=6
cursor_foreground_magenta=7
cursor_foreground_green=8
cursor_foreground_darkgreen=9
cursor_foreground_darkblue=10
cursor_foreground_purple=11
cursor_foreground_yellow=12
cursor_foreground_white=13
cursor_foreground_red=14
cursor_foreground_pink=15

cursor_styles="\e[?${cursor_style_full_block};${cursor_foreground_black};${cursor_background_green};c" # only seems to work in tty

# http://www.bashguru.com/2010/01/shell-colors-colorizing-shell-scripts.html
prompt_foreground_black=30
prompt_foreground_red=31
prompt_foreground_green=32
prompt_foreground_yellow=33
prompt_foreground_blue=34
prompt_foreground_magenta=35
prompt_foreground_cyan=36
prompt_foreground_white=37

prompt_background_black=40
prompt_background_red=41
prompt_background_green=42
prompt_background_yellow=43
prompt_background_blue=44
prompt_background_magenta=45
prompt_background_cyan=46
prompt_background_white=47

prompt_chars_normal=0
prompt_chars_bold=1
prompt_chars_underlined=4 # doesn't seem to work in tty
prompt_chars_blinking=5 # doesn't seem to work in tty
prompt_chars_reverse=7

prompt_reset=0

#start_prompt_coloring="\e[${prompt_chars_bold};${prompt_foreground_black};${prompt_background_green}m"
start_prompt_styles="\e[${prompt_chars_bold}m" # just use default background and foreground colors
end_prompt_styles="\e[${prompt_reset}m"

PS1="${start_prompt_styles}[\u@\h \W] \$${end_prompt_styles}${cursor_styles} "

##############
# end pretty prompt and font colors
##############

2
+1 cho tôi thực sự chờ đợi nhiều năm trước khi ai đó nghĩ ra điều đó. Cảm ơn người đàn ông!
Polemon

1
Trong trường hợp của tôi màu xanh là 32, màu xanh lá cây 64và màu đỏ là 128. Để có được các màu khác, bạn chỉ cần thêm chúng lên. Ví dụ: màu lục lam = xanh lam + xanh lục. Do đó, để có được màu lục lam 32 + 64 = 96, do đó, bạn cần phải viết 96. Trắng = đỏ + xanh + xanh. Do đó, trong trường hợp của tôi, màu trắng là 32 + 64 + 128 = 224.
Utku

-bash: setterm: command not foundlỗi trên macOS Mojave 10.14.2 ?
Dut A.

7

Hầu hết các ứng dụng sử dụng khả năng cnorm để đặt con trỏ trở về trạng thái "bình thường". Theo mặc định, đây là gạch chân nhấp nháy. Nhưng bạn có thể ghi đè lên điều này trong terminfo của bạn. Điều này sẽ sửa hầu hết các ứng dụng (vim, tmux, v.v.). Ban hành các lệnh này:

infocmp -A /usr/share/terminfo linux > linux
patch -lp1 <<EOF
--- a/linux
+++ b/linux
@@ -4,7 +4,7 @@ linux|linux console,
    colors#8, it#8, ncv#18, pairs#64,
    acsc=+\020\,\021-\030.^Y0\333\`\004a\261f\370g\361h\260i\316j\331k\277l\332m\300n\305o~p\304q\304r\304s_t\303u\264v\301w\302x\263y\363z\362{\343|\330}\234~\376,
    bel=^G, blink=\E[5m, bold=\E[1m, civis=\E[?25l\E[?1c,
-   clear=\E[H\E[J, cnorm=\E[?25h\E[?0c, cr=^M,
+   clear=\E[H\E[J, cnorm=\E[?25h\E[?48;0;32c, cr=^M,
    csr=\E[%i%p1%d;%p2%dr, cub=\E[%p1%dD, cub1=^H,
    cud=\E[%p1%dB, cud1=^J, cuf=\E[%p1%dC, cuf1=\E[C,
    cup=\E[%i%p1%d;%p2%dH, cuu=\E[%p1%dA, cuu1=\E[A,
EOF
tic linux
rm linux

Sửa đổi các bản vá trên cho nhu cầu của bạn. Điều này sẽ tạo ra ~ / .terminfo / l / linux, thứ sẽ được hầu hết các ứng dụng đầu cuối chọn.


3

Nếu bạn sử dụng bash, bạn có thể sử dụng PROMPT_COMMAND sẽ thực thi một lệnh sau mỗi lệnh. Đặt phần sau vào .bashrc của bạn

PROMPT_COMMAND='echo -e "\e[?16;0;200c"'

Tôi đã gần như giải quyết một cái gì đó như thế, nhưng tôi khá chắc chắn rằng tôi có thể thực hiện những gì tôi muốn với một cái gì đó như tùy chọn kernel hoặc bất cứ điều gì.
Polemon

Hoặc đặt PROMPT_COMMAND='echo -e "\033[?16;0;224c"'nếu bạn muốn một khối màu trắng không nhấp nháy, thay vì một khối màu cam.
Utku
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.