İmleç şeklini, rengini ve Linux Konsolu'nu nasıl değiştirebilirim?


23

Örneğin, Linux konsolunun bazı temel ayarlarını, örneğin font gibi değiştirebileceğimi biliyorum dpkg-reconfigure console-setup.

Ancak göz kırpma, renk ve şekil gibi şeyleri değiştirmek istiyorum (imlecimin her zaman blok olmasını istiyorum). Bunu yapan insanları gördüm. Bu insanlara bunu nasıl yapacaklarını sorma fırsatım olmadı.

Terminal emülatör pencerelerini kastetmiyorum, Linux metin konsolu demek istiyorum, Ctrl+ Alt+F-key

Şu anda bir Debian türevi olan Linux Mint kullanıyorum. Yine de bunu Fedora'da nasıl yapacağımı bilmek istiyorum.


Düzenleme: Bir şeye bağlı olabilirim

Bu web sitesinden ihtiyacım olan değişiklikleri nasıl yapacağımı öğrendim . Ama henüz bitmedi.

echo -e "\e[?16;0;200c"Şimdilik kullanmaya karar verdim , ancak bir sorunum var: vimveya gibi bir uygulamayı çalıştırırken irssiveya bir ekran oturumu eklerken, imleç yanıp sönen gri bir alt çizgi olmaya geri döner.

Ve tabii ki, sadece bu konuda çalışır, ttydiğer tüm metin konsolları etkilenmez.

Peki bu değişiklikleri nasıl kalıcı yapabilirim? Onları diğer konsollara nasıl yerleştirebilirim?


1
Sen kontrol etmek isteyebilirsiniz setterm(1)ve set(1P).

@htor ve tam olarak nasıl? settermKonsol sesini kapatmak için kullanıyorum , ancak imleç şekillerini nasıl ayarlamalıyım? Aslında settermkaçış sırasını bulmadan önce ilk baktığım yerdi.
polemon

Sadece kötü bir terminali geri yüklemek için hızlı bir yol istedim. @ user13742 adlı kullanıcının yorumu benim için çalıştı: setterm -cursor on
qneill 21

Yanıtlar:


12

GitHub Gist: İmleç şeklini, rengini ve Linux Konsolunun göz kırpma şeklini değiştirme

Dosyamda .bashrc(veya /etc/bashrc) aşağıdaki imleç biçimlendirme ayarlarını tanımlarım :

##############
# 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
Kelimenin tam anlamıyla beni gelmeden önce yıllarca beklettiğim için +1. Teşekkürler dostum!
polemon,

1
Benim durumumda mavi 32, yeşil 64ve kırmızıydı 128. Diğer renkleri elde etmek için, sadece onları ekleyin. Örneğin, mavi = mavi + yeşil. Bu nedenle, camgöbeği almak için 32 + 64 = 96, dolayısıyla yazmanız gerekir 96. Beyaz = kırmızı + yeşil + mavi. Bu nedenle, benim durumumda, beyaz 32 + 64 + 128 = 224.
Utku

-bash: setterm: command not foundmacOS Mojave 10.14.2'de hata mı var?
Dut A.,

7

Çoğu uygulama, imleci "normal" duruma getirmek için cnorm özelliğini kullanır. Varsayılan olarak bu yanıp sönen altı çizilidir. Ama bunu terminfo'da geçersiz kılabilirsin. Bu, çoğu uygulamayı düzeltmelidir (vim, tmux, vs.). Bu komutları verin:

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

İhtiyaçlarınız için yukarıdaki yamayı değiştirin. Bu, uçbirim uygulamalarının çoğu tarafından seçilmesi gereken ~ / .terminfo / l / linux öğesini oluşturmalıdır.


3

Bash kullanıyorsanız, her komuttan sonra bir komutu yürütecek olan PROMPT_COMMAND kullanabilirsiniz. Aşağıdaki .bashrc içine yerleştirin

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

Neredeyse böyle bir şeye odaklanıyordum, ancak bir çekirdek seçeneği ya da her neyse istediğim şeyi başarabildiğimden eminim.
polemon

Ya da PROMPT_COMMAND='echo -e "\033[?16;0;224c"'turuncu bir blok yerine yanıp sönmeyen, düz beyaz bir blok istiyorsanız koyun .
Utku
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.