[gelöst] Keine Farben bei inxi in motd?

Du hast Probleme mit Deinem eMail-Programm, Webbrowser oder Textprogramm? Dein Lieblingsprogramm streikt?
Antworten
reox
Beiträge: 2459
Registriert: 06.06.2006 22:09:47
Lizenz eigener Beiträge: MIT Lizenz

[gelöst] Keine Farben bei inxi in motd?

Beitrag von reox » 30.11.2018 14:06:59

Ich habe Debianinxi in die motd eingebaut:

Code: Alles auswählen

$ cat /etc/update-motd.d/10-uname
#!/bin/bash
inxi -CDNnMmS
allerdings schaut die MOTD dann beim einloggen so aus:

Code: Alles auswählen

12System:    12Host myhostname 12Kernel 4.9.0-8-amd64 x86_64 (64 bit) 12Console tty
12           12Distro Debian GNU/Linux 9 (stretch)
12Machine:   12Device desktop 12Mobo Gigabyte 12model EP45-DS4 12v x.x 12BIOS Award 12v F10b 12date 09/28/2009
12CPU:       12Quad core Intel Core2 Quad Q9400 (-MCP-) 12cache 3072 KB
12           12clock speeds 12max 2667 MHz 121 2000 MHz 122 2000 MHz 123 2000 MHz 124 2000 MHz
12Memory:    12Used/Total 367.4/3954.4MB
12           12Array-1 capacity 4 GB 12devices 4 12EC None
12           12Device-1 A0 12size 1 GB 12speed 800 MHz 12type N/A
12           12Device-2 A1 12size 1 GB 12speed 800 MHz 12type N/A
12           12Device-3 A2 12size 1 GB 12speed 800 MHz 12type N/A
12           12Device-4 A3 12size 1 GB 12speed 800 MHz 12type N/A
12Network:   12Card-1 Realtek RTL8111/8168/8411 PCI Express Gigabit Ethernet Controller 12driver r8169
12           12IF enp3s0 12state up 12speed 1000 Mbps 12duplex full 12mac <filter>
12           12Card-2 Realtek RTL8111/8168/8411 PCI Express Gigabit Ethernet Controller 12driver r8169
12           12IF enp4s0 12state down 12mac <filter>
12Drives:    12HDD Total Size 400.1GB (3.5% used)
12           12ID-1 /dev/sda 12model ST3400633AS 12size 400.1GB
Wenn ich die Farben ausschalte (per -c 0), dann sind die ganzen 12er weg, aber auch keine farben mehr da.
Ich habe auch anstatt inxi Debianneofetch probiert und das zeigt die farben an. Also grundsätzlich müsste es gehen nur eben bei inxi geht es wohl nicht.
Wenn ich inxi auf der shell so ausführe, zeigt er mir ja auch alles richtig an.
Ich habe probiert $TERM=xterm-256color zu setzen, allerdings ohne erfolg. Vor allem scheinen ja Farben grundsätzlich zu funktionieren...
Jemand einen Rat?
Zuletzt geändert von reox am 11.12.2018 20:56:41, insgesamt 1-mal geändert.

reox
Beiträge: 2459
Registriert: 06.06.2006 22:09:47
Lizenz eigener Beiträge: MIT Lizenz

Re: Keine Farben bei inxi in motd?

Beitrag von reox » 06.12.2018 14:04:30

Ich hab mal versucht das zu verfolgen. /etc/update-motd.d wird wohl per run-parts ausgeführt und der Inhalt davon nach /run/motd.dynamic gegeben. Von dort holt sich PAM dann die Daten.
Irgendwo dazwischen muss der Fehler passieren.
zB:

Code: Alles auswählen

# inxi -CDNnMmSZ | hd | head
00000000  1b 5b 31 3b 33 34 6d 53  79 73 74 65 6d 3a 20 20  |.[1;34mSystem:  |
00000010  20 1b 5b 30 3b 33 37 6d  20 1b 5b 31 3b 33 34 6d  | .[0;37m .[1;34m|

# hd /run/motd.dynamic | head
00000000  0a 03 31 32 53 79 73 74  65 6d 3a 20 20 20 03 20  |..12System:   . |
Die Newline kommt aus dem script was ich ausführe, passt also.
An run-parts kann es nicht liegen, wenn ich das manuell auf /etc/update-motd.d ausführe kommt der selbe output raus wie wenn ich inxi direkt starte.

Mit neofetch bleiben die Steuerzeichen aber erhalten:

Code: Alles auswählen

# hd /run/motd.dynamic | head
00000000  0a 1b 5b 3f 32 35 6c 1b  5b 3f 37 6c 1b 5b 30 6d  |..[?25l.[?7l.[0m|
00000010  1b 5b 31 6d 20 20 20 20  20 20 20 5f 2c 6d 65 74  |.[1m       _,met|
Ich habe auch noch was anderes interessantes herausgefunden. Wenn man inxi nach inxi piped oder grundsätzlich irgendwas nach inxi piped bekomme ich auch die 12er:

Code: Alles auswählen

$ inxi | inxi
12CPU~Quad core Intel Core2 Quad Q9400 (-MCP-) 12speed/max~2336/2670 MHz 12Kernel~4.9.0-7-amd64 x86_64 12Up~120 days 12Mem~4765.5/7987.3MB 12HDD~2000.4GB(35.7% used) 12Procs~292 12Client~Shell wrapper 12inxi~2.3.5
$ inxi < somefile
12CPU~Quad core Intel Core2 Quad Q9400 (-MCP-) 12speed/max~2336/2670 MHz 12Kernel~4.9.0-7-amd64 x86_64 12Up~120 days 12Mem~4765.5/7987.3MB 12HDD~2000.4GB(35.7% used) 12Procs~292 12Client~Shell wrapper 12inxi~2.3.5
$ echo hello | inxi
12CPU~Quad core Intel Core2 Quad Q9400 (-MCP-) 12speed/max~2336/2670 MHz 12Kernel~4.9.0-7-amd64 x86_64 12Up~120 days 12Mem~4765.5/7987.3MB 12HDD~2000.4GB(35.7% used) 12Procs~292 12Client~Shell wrapper 12inxi~2.3.5
Gibts da vllt ein problem mit stdout bei inxi?

reox
Beiträge: 2459
Registriert: 06.06.2006 22:09:47
Lizenz eigener Beiträge: MIT Lizenz

Re: Keine Farben bei inxi in motd?

Beitrag von reox » 11.12.2018 20:56:31

Ich hab das mal upstream reported (https://github.com/smxi/inxi/issues/170) und es scheint ein Problem mit der Erkennung der Shell zu sein. Wenn inxi keine shell erkennt, geht es davon aus im IRC zu laufen - das sind dann die escape codes mit den 12ern.
Die Lösung ist derzeit, dass man inxi manuell sagt, dass es in einem tty rennt und die Farben einschaltet:

Code: Alles auswählen

$ inxi --tty -c 2
liefert dann das gewünschte Ergebnis, auch in der MOTD!

Antworten