seth: aktuelle farben des terminals eruieren

Beitrag lesen

gudn tach!

So 'funzt' das zumindest unter Win2k: [...]

ah, fein! ohne dein beispiel haette ich das manual zu Win32::Console wohl nicht kapiert. wer vermutet schon, dass mit "attributes" nur die farben gemeint sind...

jetzt wusste ich nur noch gern, wie das gleiche unter linux geht. schade, dass es da nicht ein modul fuer beides gleichzeitig zu geben scheint.

noch ein paar anmerkungen zu deinem beispiel:

my $default_dec = ($console->Info())[4];

etwas uebersichtlicher waere wohl
  $console->Attr()
was afais das gleiche ist.

my $default_hex = sprintf "%02X", $default_dec;
my @color = split //, $default_hex;
[...]
Das eklige dabei ist, dass als Attributwert eine Dezimalzahl geliefert wird, die du erst noch nach hexadezimal umwandeln musst, bevor du die Hexwerte mit dem Farb-Hash abgleichen kannst.

hmm, muss man aber nicht explizit umwandeln. man koennte einfach von vornherein binaer rechnen:

my $fg = $default_dec & 0xf; # oder halt & 0b1111
  my $bg = $default_dec>>4 & 0xf;

und das color-array (oder hash, ist hier egal) koennte man ueber die variablen ($FG_BLACK, ...) fuellen.

was jetzt uebersichtlicher ist, darueber laesst sich nur streiten.

prost
seth