it-swarm.com.de

Bash beibehalten Sofortige Farben beim Starten einer Bildschirmsitzung

Wenn ich in eine Ubuntu Lucid-Box gehe, ist die Eingabeaufforderung hübsch und voller Farben. Soweit ich weiß, ist alles die Standardeinstellung. Hier ist mein $ PS1-Außenbildschirm:

\[\e]0;\[email protected]\h: \w\a\]${debian_chroot:+($debian_chroot)}\[\033[01;32m\]\[email protected]\[\033[00m\]:\[\033[01;34m\]\w\[\033[00m\]\$

Before connecting with screen

Aber sobald ich den Bildschirm starte, verschwinden die Farben. Alles andere ist in Ordnung und mein Bildschirm kann Farben unterstützen (beachten Sie, dass der . und der .. in diesem ls -al blau sind), die Eingabeaufforderung jedoch nicht. Theoretisch sollte alles genau gleich sein. $ PS1 im Bildschirm:

${debian_chroot:+($debian_chroot)}\[email protected]:\w\$

after screening in

BEARBEITEN: Dies ist nur ein normaler Vanille-Bildschirm.

8
chmullig

Sie können die folgende Zeile in Ihrer .bashrc-Datei bearbeiten (es ist die Nummer 39 in meiner .bashrc-Datei):

#force_color_Prompt=yes

Ändern:

force_color_Prompt=yes

Dies könnte möglicherweise ärgerlich sein, wenn Sie sich von einem Ort aus anmelden, an dem keine Farben unterstützt werden, aber ich finde, dass dies höchst unwahrscheinlich ist.

13
LasseValentini

Die .screenrc -Datei ist mir ein Rätsel. Meins ist ein Blödsinn, den ich aus dem Internet kopiert habe. Ich sehe jedoch einige Zeilen, die für Ihr Problem relevant erscheinen:

# terminfo and termcap for Nice 256 color terminal
# allow bold colors - necessary for some reason
attrcolor b ".I" 
# tell screen how to set colors. AB = background, AF=foreground
termcapinfo xterm 'Co#256:AB=\E[48;5;%dm:AF=\E[38;5;%dm'

Ich denke, wenn du die obigen Linien zu deinen hinzufügst, wirst du Farbe bekommen. Hier ist mein ganzer .screenrc als Referenz:

[email protected]:~$ cat .screenrc 
startup_message off # skip splash screen
vbell off # Kill the annoying dog

# Voodoo
hardstatus alwayslastline
hardstatus string '%{= wk}%-Lw%{= KW}%50>%n%f* %t%{= dK}%+Lw%<'

# terminfo and termcap for Nice 256 color terminal
# allow bold colors - necessary for some reason
attrcolor b ".I" 
# tell screen how to set colors. AB = background, AF=foreground
termcapinfo xterm 'Co#256:AB=\E[48;5;%dm:AF=\E[38;5;%dm'
# erase background with current bg color 
defbce "on"
3
djeikyb

Ihre Einstellung PS1 sollte in .bashrc und nicht in .bash_profile platziert werden.

Wenn dies nicht das Problem ist, bearbeiten Sie Ihre Frage so, dass sie die Zeile enthält, für die Sie PS1 festgelegt haben.

Sie können auch versuchen, diese auszuführen:

echo "$TERM"                                 # will probably print "screen"
tput setaf 2 | cat -vte                      # should print "^[[32m"
echo "$(tput setaf 2)"green"$(tput sgr0)"    # should print "green" in green
2
Mikel

Screen verwendet normalerweise einen speziellen Terminaltyp, z. B. "screen", oder "screen-256color", wenn Sie diesen in Ihrem .screenrc festlegen.

Suchen Sie in Ihrer .bashrc-Datei nach der Anweisung für den Fall der Farberkennung und fügen Sie der Liste einen Bildschirm hinzu.

Zum Beispiel so etwas:

case "$TERM" in
    xterm)
        color_Prompt=yes
        ;;
    screen)
        color_Prompt=yes
        ;;
    *256*) 
        color_Prompt=yes
        ;;
esac

Ich verwende Terminaltypen mit 256 Farben, daher brauche ich nur die case-Anweisung 256, da sie xterm-256color, gnome-256color und screen-256color erfasst. Ihr Kilometerstand kann variieren. ????

2
m0j0

Fügen Sie dies zu Ihrem ~/.screenrc hinzu

Shell -$Shell
1
Cam

Das Aufrufen von screen mit -T xterm funktioniert für mich ganz einfach:

screen -T xterm

Sie müssen keine Dateien ändern.

0
twildfarmer