Farben im Terminal unter X

Clas

Well-Known Member
Hi, habe ich gerade etwas ein schlechtes Gewissen weil ich hier soviel nachfrage. Aber hier ist einfach die
meiste Kompetenz versammelt in Sachen BSDs. Und diesmal möchte ich das wirklich mal durchziehen mit
NetBSD mind 1. Jahr und dann ein Fazit ziehen. Einige Klenigkeiten noch aber ich denke noch lösbar.

Die Terminals die ich verwende unter sind :

"st" von suckless.org und zwar mit Patches aus diesen Repo: https://github.com/siduck/st

"xterm" und

"urxvt"

ich möchte hier nicht alles mit ScreenShots zu müllen. Aber so richitg funktioniert das mit den
Farben noch nicht. Als shell bin ich aktuell ausschließlich auf Bash unterwegs mit Addons hiervon:

https://github.com/ohmybash/oh-my-bash + NerdFonts

Die Fonts funktionieren und usw. Alles gut aber die Farben. MidnightCommander sieht seltsam
aus im Default. Und generell werden Farben nicht angezeigt. Irgendwie muss ich glaube ich
wscons.conf anpassen damit "tput" usw. alles richtig funktionieren und die Farben korrekt
angezeigt werden.

seltsamer Weise läuft Exa (https://the.exa.website/) korrekt und mit allen Farben wunderbar.
Habe ich halt einfach mit Cargo installiert.

Also was muss ich einstellen um in meinen Terminals richtiges Verhalten in Sachen Farbdarstellung
zu haben.

gruss,
clas
 
Hiermit funktioniert unter OpenBSD xterm mit 24bit Farbtiefe. Hier in meiner ~/.Xdefaults, allerdings mit hellem Hintergrund:

Code:
Xft.dpi:96
Xft.antialias:true
Xft.hinting:true
Xft.rgba:rgb
Xft.autohint:false
Xft.hintstyle:hintslight
Xft.lcdfilter:lcddefault

XTerm*background:#f8f4e8
XTerm*cursorColor:#181408
XTerm*faceName:DejaVu Sans Mono:size=14
XTerm*foreground:#181408
XTerm*geometry:80x24
XTerm*internalBorder:8
XTerm*loginShell:true
XTerm*metaSendsEscape:true
XTerm*scrollBar:false
!XTerm*termName:xterm-256color
XTerm*termName:xterm-direct

Wichtig ist hierbei xterm-direct. Einen Versuch unter NetBSD waere es mal wert, ob das dort auch so funktioniert. Auch Emacs mit seinen ganzen Themes werden so im xterm korrekt dargestellt.

Genauso unter tmux in der .tmux.conf:

Code:
...
set -g default-terminal "xterm-direct"
set -ag terminal-overrides ",xterm-direct:RGB"
...

Allerdings scheinen remote-hosts Probleme mit xterm-direct zu haben. Daher habe ich das hier in meiner ~/.ssh/config eingetragen:

Code:
Host *
    ControlMaster auto
    ControlPath ~/.ssh/sockets/%r@%h-%p
    ControlPersist 600
    SetEnv TERM=xterm-256color
 
also das hier hat leider nichts gebracht:

export TERM=wsvt25
export TERMCMD="urxvt"
export TERMINAL="urxvt -e"
export COLORTERM=truecolor
 
ich gerade etwas ein schlechtes Gewissen weil ich hier soviel nachfrage.
Also ich finde das gut. Da schnappt nämlich hier und da mal so nebenbei was auf, was man für sich selbst evtl. mal gebrauchen kann.
Insofern lasse Dich nicht durch Dein Gewissen abschrecken. :-)
 
Da Du scheinbar solarized light in deinem Void Linux Video nutzt:

Hier die entsprechenden Farben fuer ~/.Xdefaults, ich ich persoenlich auch nutze und etwas gedimmt sind:

Code:
! solarized (light)

! black
*.color0:           FG
*.color8:           #333333

! red
*.color1:           #dc322f
*.color9:           #cb4b16

! green
*.color2:           #859900
*.color10:          #93a1a1

! yellow
*.color3:           #b58900
*.color11:          #839496

! blue
*.color4:           #268bd2
*.color12:          #657b83

! magenta
*.color5:           #d33682
*.color13:          #6c71c4

! cyan
*.color6:           #2aa198
*.color14:          #586e75

! white (gray)
*.color7:           #d9d7cc
*.color15:          #e5e5e5
 
!XTerm*termName:xterm-256color
XTerm*termName:xterm-direct
[/CODE]
Also habe ich geändert und wenn ich in mc dann z.B. skin "sand256" auswähle dann bekomme ich eine rote Box mit der
Fehermeldung

"Unable to use 'sand256' skin with 256 colors support on non -256 colors terminal. Default skin has been loaded"

mein Eintrag

!UXTerm
UXTerm.termName: xterm-direct
UXTerm.vt100.metaSendsEscape: true
UXTerm.vt100.BorderColor: #d0d0d0
UXTerm.vt100.internalBorder: 6
UXTerm.vt100.faceName: xft:FantasqueSansM Nerd Font Mono:size=18:antialias=true:style=Regular
UXTerm.vt100.boldFont: xft:FantasqueSansM Nerd Font Mono:size=18:antialias=true:style=Bold
UXTerm.vt100.geometry: 100x30
UXTerm.vt100.background: #FFFFE7
UXTerm.vt100.foreground: #586e75
UXTerm.vt100.scaleHeight: 1.04
UXTerm.vt100.locale: false
UXTerm.vt100.utf8: true
UXTerm.vt100.backarrowKey: false
UXTerm.selectToClipboard: true
UXTerm.ttyModes: erase ^?
UXTerm.XftFont: Segoe UI:size=10:antialias=true:style=Regular
UXTerm.shapeStyle: Rectangle
UXTerm.beNiceToColormap: false
UXTerm.relief: None
UXTerm.highlightThickness: 0
UXTerm.scrollTtyOutput: false
UXTerm.scrollKey: true
UXTerm.scrollBar: false
UXTerm.eightBitInput: false
UXTerm.cursorBlink: true
UXTerm.allowMouseOps: false
UXTerm.allowTitleOps: false
UXTerm.allowFontOps: false
UXTerm.pointerColor: white
UXTerm.pointerColorBackground: black
UXTerm.pointerShape: left_ptr
UXTerm.highlightSelection: true
UXTerm.BorderColor: #ffffff
UXTerm.BorderWidth: 3
UXTerm.omitTranslation: popup-menu
UXTerm.VT100.Translations: #override \
Ctrl Shift <Key>V: insert-selection(CLIPBOARD) \n\
Ctrl Shift <Key>C: copy-selection(CLIPBOARD)


env sieht so aus für TERM:

|~❱ env | g TERM
COLORTERM=truecolor
XTERM_VERSION=XTerm(390)
XTERM_SHELL=/usr/pkg/bin/bash
TERMINAL=urxvt -e
XTERM_LOCALE=en_US.UTF-8
TERM=xterm-direct
TERMCMD=urxvt
|~❱ ids

ist ein wenig unschön wei wenn ich dann mit grep/ripgrep oder silversearcher etwas raussuche dann werden die Stellen nicht nicht farblich angezeigt.
 
ich denke irgendetwas habe ich grundsätzlich noch falch eingestellt weil

das hier funktioniert

awk -v term_cols="${width:-$(tput cols || echo 80)}" 'BEGIN{
s="/\\";
for (colnum = 0; colnum<term_cols; colnum++) {
r = 255-(colnum*255/term_cols);
g = (colnum*510/term_cols);
b = (colnum*255/term_cols);
if (g>255) g = 510-g;
printf "\033[48;2;%d;%d;%dm", r,g,b;
printf "\033[38;2;%d;%d;%dm", 255-r,255-g,255-b;
printf "%s\033[0m", substr(s,colnum%2+1,1);
}
printf "\n";
}'

von https://unix.stackexchange.com/questions/404414/print-true-color-24-bit-test-pattern

Und zwar in allen 3 Terminal st,urxvt,xterm

Warum sagt dann mc ne 256Color Skin geht nicht .
 
Auch die Farben aus meine Theme für oh-my-bash werden nicht angezeigt

#! bash oh-my-bash.module

function getGitInfo(){
#NerdFontHexValue for GitSymbol
#gitSymbol=$(printf '')
gitSymbol=$(printf '\ue725')
isGit=$(git -C $(pwd) rev-parse 2>/dev/null; echo $?)
if [ $isGit -eq 0 ]
then
if [ -n "$(git status --porcelain)" ]; then
echo "[\[$(tput setaf 196)\]$gitSymbol\[$(tput sgr0)\]]"
else
echo "[\[$(tput setaf 28)\]$gitSymbol\[$(tput sgr0)\]]"
fi
else
echo ""
fi
}

function getPythonVirtualEnv(){
if [[ -n "$VIRTUAL_ENV" ]]; then
venv="${VIRTUAL_ENV##*/}"
else
venv=''
fi
[[ -n "$venv" ]] && echo "[\[$(tput bold setaf 10)\]$venv\[$(tput sgr0)\]]"
}

function getPathHighlight() {
local folder=$(pwd)
echo $folder
}

function getCurrentPathInfoPreparedHighlight() {
local highPath=$(getPathHighlight)
local realPath="${highPath/#$HOME/\~}"
if [ "$realPath" = "~" ]; then
echo "\[$(tput bold)\]$realPath"
elif [ "$realPath" = "/" ]; then
echo "\[$(tput bold)\]$realPath"
else
indexOf=$( awk -F/ '{print length($0) - length($NF)}' <<< "${realPath}")
realPath="${realPath:0:indexOf}\[$(tput bold)\]${realPath:indexOf}"
echo "$realPath"
fi
}

function getCurrentPathInfo() {
echo "\[$(tput setaf 95)\]$(getCurrentPathInfoPreparedHighlight)\[$(tput sgr0)\]"
}

function getColoredReturnValue() {
local lastExitCode=$?
if [ $lastExitCode -ne 0 ]
then
echo "\[$(tput setaf 196)\]$lastExitCode\[$(tput sgr0)\]"
else
echo "\[$(tput setaf 28)\]$lastExitCode\[$(tput sgr0)\]"
fi
}

function _omb_theme_PROMPT_COMMAND() {
# PS1="[\h][$(getColoredReturnValue)]$(getPythonVirtualEnv)$(getGitInfo)$(getCurrentPathInfo)\[$(tput setaf 45)\]❯ "
PS1="\[$(tput setaf 105)\]|\[$(tput sgr0)\]$(getCurrentPathInfo)\[$(tput setaf 105)\]❱ \[$(tput sgr0)\]"
}

_omb_util_add_prompt_command _omb_theme_PROMPT_COMMAND
|~/.oh-my-bash/custom/themes/clex❱
 
kann es sein das die SLANG lib womit der MC unter NetBSD kompiliert ist keine 256 Farben kann?
 
weiß nicht, ob das was zu sagen hat und erinnere mich nicht mehr, was es gerade überhaupt macht, aber ich rufe seit langer Zeit aus einer Autostart heraus auf:
Code:
/usr/local/bin/xrdb -merge /usr/home/pit/.Xresources &
In meinem Kommentar dazu schrieb ich auf, dass damit etwa die Farben des xcalc funktionieren.

In der .Xresources habe ich nur einige Einstellungen für das xterm, das ich aber im Grunde niemals nutze.
 
Sieht soweit ok fuer mich aus.

Was sagt denn $ tput colors?

Ansonsten versuchs mal mit UXTerm*termName:xterm-256color in deiner ~/.Xdefaults.

Also ich bin verwirrt:

tput colors gibt aus:

Terminal | Colors |
st | 16777216 |
urxvt | 16777216 |
uxterm | 16777216 |


Also TrueColor

dann muss das doch wohl an den Apps wie mc usw. liegen?

ich werde mal die neueste Verison von mc das Repo auschecken und nicht mit SLANG sondern mit ncurses
bauen. mal sehen ob das hilft
 
Für solche Sachen gibt es übrigens Code-Tags (auch bequem im Posting-Editor erreichbar).
Dann bleiben etwaige Einrückungen erhalten, man hat ne Monospaced-Schriftart für die Darstellung und ggf. Syntax-highlighting.
Kurzum: Ist besser zu lesen.


Ja genau. Am bequemsten geht es mit backticks, wie auch auf github.com

Code in einfachen backticks eingeschlossen erzeugt inline Code.

In dreifachen backticks eingeschlossen werden Codebloecke erzeugt, siehe auch https://docs.github.com/en/get-star...matting/creating-and-highlighting-code-blocks
 
Kannst Du mal folgendes versuchen:

$ mc --skin=sand256

dann kommt wieder die gleiche Meldung "Unable to use 'sand256' skin with 256 colors on non-256 colors terminal...."

die Version von mc ist:

|~❱ mc --version
GNU Midnight Commander 4.8.28
Built with GLib 2.78.4
Built with S-Lang 2.2.4 with terminfo database
With builtin Editor
With subshell support as default
With support for background operations
With mouse support on xterm
With internationalization support
With multiple codepages support
Virtual File Systems:
cpiofs, tarfs, sfs, extfs, ftpfs, fish
Data types:
char: 8; int: 32; long: 64; void *: 64; size_t: 64; off_t: 64;
|~❱
 
ja ich das baue heute Abend später. Auf jeden Fall Vielen Dank für die bisherige Hilfe
 
Zurück
Oben