Po roce vývoje od vydání verze 1.24.0 byla vydána nová stabilní verze 1.26.0 webového serveru a reverzní proxy nginx (Wikipedie). Nová verze přináší řadu novinek. Podrobný přehled v souboru CHANGES-1.26.
Byla vydána nová verze 6.2 živé linuxové distribuce Tails (The Amnesic Incognito Live System), jež klade důraz na ochranu soukromí uživatelů a anonymitu. Přehled změn v příslušném seznamu. Tor Browser byl povýšen na verzi 13.0.14.
Byla vydána nová verze 30.0.0 frameworku pro vývoj multiplatformních desktopových aplikací pomocí JavaScriptu, HTML a CSS Electron (Wikipedie, GitHub). Chromium bylo aktualizováno na verzi 124.0.6367.49, V8 na verzi 12.4 a Node.js na verzi 20.11.1. Electron byl původně vyvíjen pro editor Atom pod názvem Atom Shell. Dnes je na Electronu postavena celá řada dalších aplikací.
Byla vydána nová verze 9.0.0 otevřeného emulátoru procesorů a virtualizačního nástroje QEMU (Wikipedie). Přispělo 220 vývojářů. Provedeno bylo více než 2 700 commitů. Přehled úprav a nových vlastností v seznamu změn.
Evropský parlament dnes přijal směrnici týkající se tzv. práva spotřebitele na opravu. Poslanci ji podpořili 584 hlasy (3 bylo proti a 14 se zdrželo hlasování). Směrnice ujasňuje povinnosti výrobců opravovat zboží a motivovat spotřebitele k tomu, aby si výrobky nechávali opravit a prodloužili tak jejich životnost.
Bylo oznámeno (cs) vydání Fedora Linuxu 40. Přehled novinek ve Fedora Workstation 40 a Fedora KDE 40 na stránkách Fedora Magazinu. Současně byl oznámen notebook Slimbook Fedora 2.
ČTK (Česká tisková kancelář) upozorňuje (X), že na jejím zpravodajském webu České noviny byly dnes dopoledne neznámým útočníkem umístěny dva smyšlené texty, které nepocházejí z její produkce. Jde o text s titulkem „BIS zabránila pokusu o atentát na nově zvoleného slovenského prezidenta Petra Pelligriniho“ a o údajné mimořádné prohlášení ministra Lipavského k témuž. Tyto dezinformace byly útočníky zveřejněny i s příslušnými notifikacemi v mobilní aplikaci Českých novin. ČTK ve svém zpravodajském servisu žádnou informaci v tomto znění nevydala.
Byla založena nadace Open Home Foundation zastřešující více než 240 projektů, standardů, ovladačů a knihoven (Home Assistant, ESPHome, Zigpy, Piper, Improv Wi-Fi, Wyoming, …) pro otevřenou chytrou domácnost s důrazem na soukromí, možnost výběru a udržitelnost.
Společnost Meta otevírá svůj operační systém Meta Horizon OS pro headsety pro virtuální a rozšířenou realitu. Vedle Meta Quest se bude používat i v připravovaných headsetech od Asusu a Lenova.
Společnost Espressif (ESP8266, ESP32, …) získala většinový podíl ve společnosti M5Stack, čímž posiluje ekosystém AIoT.
Většina un*xových emulátorů terminálu podporuje řídící (escape) sekvence ANSI, které slouží (mimo jiné) k formátování výstupu na textových terminálech.
Nejdříve si povíme něco k teorii a pak si ukážeme ukázky kódu v různých programovacích jazycích. Tato záležitost není multiplatformní a na Windows je třeba postupovat trochu jinak než na Linuxu a jiných unixových systémech. Ne každý emulátor terminálu má implementovánu podporu všech standardizovaných vlastností a aby toho nebylo málo, některé vlastnosti dokonce v různých terminálech dělají různé věci. To vám doufám postačí jako pádný důvod k tomu, abyste v případě, že použijete formátování ve svém programu, nezapomněli i na možnost formátování úplně vypnout.
Snad jsem vás ještě neodradil. V praxi to není až tak hrozné. Většinou budete chtít zřejmě používat jen základní možnosti formátování textu a s těmi není žádný problém na hojně používaných emulátorech terminálu.
Takže jak na to? Escapovací sekvence se tomu neříká jen tak pro nic za nic, escape je totiž znak, který tyto řídící sekvence zahajuje. Tedy ještě spolu se znakem „[“, který jej musí následovat. Této sekvenci znaků se říká zkratkou CSI, a to znamená Control Sequence Introducer/Initiator – česky iniciátor řídící sekvence. Za touto sekvencí následuje samotný příkaz. My se v tomto článku budeme zabývat pouze příkazem ovlivňujícím zobrazení textu na terminálu. Jeho předpis vypadá takto:
CSI a [;b] m
Mezery jsou v předpisu pouze pro přehlednost a hranatá závorka značí volitelnost. A co to znamená? CSI je zmiňovaná zahajovací sekvence, tedy ESC+[
. Písmena „a“ a „b“ jsou parametry, které nahradíme za čísla. Za jaká? To záleží na tom, co od příkazu očekáváte. Možnosti jsou vypsané v tabulce níže. Za parametry je třeba dát písmeno „m“ tak, jak je.
A teď když konečně prozradím, jak napsat znak escape, tak si to budeme moci předvést. Máte tři možnosti, jak napsat escape, buď \033
(umístění znaku escape v ASCII tabulce zapsáno v osmičkové soustavě je 33), \x1b
(umístění znaku v ASCII tabulce zapsáno v šestnáctkové soustavě je 1B) nebo \e
(styl jazyka C), což je nestandardní (a někde nepodporovaný), ale poměrně rozšířený zápis (dostupný nejen v C).
\033[31mAhoj barevný světe!\033[0m
^^ ^- vypne formátování
`- zahájí výpis v červené barvě
Jak je vidět, v tomto případě používáme pouze parametr „a“ (z předpisu výše). Když použijeme zároveň i parametr „b“, můžeme nastavit dvě atributy najednou stylem „a;b“, takže to pak celé vypadá takto: \033[a;bm
, přičemž za „a“ a „b“ dosadíme číselné hodnoty. Následuje výběr ze seznamu možných hodnot parametrů:
U výše zmíněných rozsahů hodnot není jasné, která hodnota náleží které barvě. Proto následuje tabulka barev:
číslo | 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 |
barva | černá | červená | zelená | žlutá | modrá | purpurová | tyrkysová | bílá |
Přidám ještě několik ukázkových parametrů, abyste si mohli ověřit, že to celé chápete správně:
Ukázkové sekvence s oběma parametry:
\033[31;42m
– červený text (31) na zeleném pozadí (42)\033[42;31m
– totéž\x1b[32;1m
– tučný (1) zelený text (32)\x1b[34;4m
– podtržený (4) modrý text (34)\e[101;34m
– světle červené pozadí (101), modrý text (34)\e[44;1m
– modré pozadí (44), tučný text (1)Poznámka: Nikdy nezapomínejte ukončovat formátování pomocí \033[0m
.
Nyní přejdeme k ukázkám z praxe.
V Bashi lze barevný text vypisovat pomocí příkazu echo s přepínačem -e.
echo -e "\033[31mAhoj barevný světe!\033[0m" for((i = 0; i <= 7; i++)) do echo -e "(3$i) \033[3${i}mBarevný text\033[0m a (4${i}) \033[4${i}mbarevné pozadí…\033[0m" done
V Pythonu můžete použít funkci print().
print("\033[32mZelený text\033[0m") YELLOW = '\033[93m' END = '\033[0m' print(YELLOW + "Žlutý text!" + END)
V Perlu lze také použít funkci print().
my @colors = ("cerna", "cervena", "zelena", "zluta", "modra", "purpurova", "tyrkysova", "bila"); do { my $number = 37 – $#colors; my $color = shift @colors; print "\033[${number}m${color}, \033[1mtucna ${color}\033[0m\n"; } while (@colors);
PuTTY na Symbianu je ukázkou toho, že ne všude všechny atributy fungují. (Tučný text se zobrazí jako normální.)
Lze použít funkce printf() z C nebo std::cout z C++.
/* C nebo C++ */ #include <stdio.h> void vypis_tucne(const char* text) { printf("\x1b[1m%s\x1b[0m\n", text); } /* C++ */ #include <iostream> void vypis_tucne_cpp(std::string text) { std::cout << "\e[1m" << text << "\e[0m\n"; }
Nástroje: Tisk bez diskuse
Tiskni Sdílej:
8 - rudá
, která je na černé lépe vidět. Škoda že není i v xterm
.
"\033[1;31m"
je IMHO videt vsude dobre.
http://www.abclinuxu.cz/blog/idea/2008/7/ansi-ridici-sekvence
echo $TERM
a zamyslet se, co to asi znamená
Jistě zajímavá perlička, ale prosím prosím, opravdu to takhle nikdy v programech nedělejte.Uzasny nazor. Protoze to nekde nefunguje, tak to nebudu vubec pouzivat
less
se dá donutit, aby barvičky zachoval: less -R
\E[0;1;4;5;7;8m^N
by používal jen blázen, když tu jsou nové a lepší terminfo \E[0%?%p1%p6%|%t;1%;%?%p2%t;4%;%?%p1%p3%|%t;7%;%?%p4%t;5%;%?%p7%t;8%;m%?%p9%t\016%e\017%;,
. Jen žertuji :)
Nevím ale když je v shellu něco jako "Ahoj ${cred}lidi${cnorm}" tak mi to až tak "plné divokých nečitelných sekvencí" nepřipadá.
termcap_set_attr(TERMCAP_RED | TERMCAP_BOLD); /*...*/ termcap_set_attr(TERMCAP_PLAIN);
. Existuje to?
echo -e '\033[32;40m'
ale tučným písmem...
echo -e '\033[32;40m\033[1mXXX\033[0m'
man tput man terminfonapriklad:
echo "$(tput setaf 1) Red Text $(tput sgr0)"Jinak barev muze byt daleko vice, napriklad xterm nema problem s 256 barvama,
export TERM=xterm-256colornebo
xterm -tn xterm-256color
Vůbec se nerozčiluji a autor doufám taky ne. Prostě se mu snažím předat svoji zkušenost.Tak to má bejt; diskuse má být o tom, co jsem zapomněl, atp. Pak je užitečná.
$ cat bin/prompt #!/bin/bash ########## # prompt # ########## # prompt is a template-like program designed to simplify the process of colourizing one's prompt. # By analyzing the variables, it is easy to identify what ANSI colour sequences match up with which colour. # Thus, modifying one's bash prompt is a simple matter of going through the variables and inserting the colour of choice. # # When the script is modified to your liking, you should place it a useful place (like ~/bin/). # Then replace PS1="..." in your bootup file (~/.bashrc or ~/.bash_profile) with PS1=`~/bin/prompt` (those are backticks!) # # Only known to work as expected with bash # # No licensing or copyright is placed on this script. Do with it as you wish. ################################################ # THERE SHOULD BE NO NEED TO EDIT THIS SECTION # ################################################ #$normal will reset the colour to the default, use it to stop using a certain colour (see "prompt parts") normal="\[\e[0m\]" # # # # # # # #BACKGROUNDS # # # # # # # blackbg=";40m\]" redbg=";41m\]" greenbg=";42m\]" brownbg=";43m\]" bluebg=";44m\]" purplebg=";45m\]" cyanbg=";46m\]" greybg=";47m\]" ############################################################################################ # THERE SHOULD BE NO NEED TO EDIT THIS SECTION (UNLESS YOU DO NOT WANT A BLACK BACKGROUND) # ############################################################################################ # # # # # # # #FOREGROUNDS # # # # # # # black="\[\e[0;30$blackbg" redfaint="\[\e[0;31$blackbg" greenfaint="\[\e[0;32$blackbg" brownfaint="\[\e[0;33$blackbg" bluefaint="\[\e[0;34$blackbg" purplefaint="\[\e[0;35$blackbg" cyanfaint="\[\e[0;36$blackbg" greyfaint="\[\e[0;37$blackbg" grey="\[\e[1;30$blackbg" red="\[\e[1;31$blackbg" green="\[\e[1;32$blackbg" yellow="\[\e[1;33$blackbg" blue="\[\e[1;34$blackbg" pink="\[\e[1;35$blackbg" cyan="\[\e[1;36$blackbg" white="\[\e[1;37$blackbg" ################################## # EDIT THIS STUFF TO YOUR LIKING # ################################## # # # # # # # #PROMPT PARTS # # # # # # # prompt_opening_brace="$yellow[$normal" prompt_closing_brace="$yellow]$normal" prompt_date="\d" prompt_hostname_short="$blue\h$normal" prompt_hostname_long="\H" prompt_jobs="\j" prompt_terminal="\l" prompt_shellname="\s" prompt_time_24="\t" prompt_time_12="\T" prompt_time_12_am_pm="\@" prompt_username="$green\u$normal" prompt_version="\v" prompt_version_patchlevel="\V" prompt_pwd_long="\w" prompt_pwd_short="$red\W$normal" prompt_history_number="\!" prompt_session_number="\#" prompt_usertype_sign="\\$" prompt_git_branch="$white\$(__git_ps1)$normal" # # # # # # # # #FINAL PROMPT # # # # # # # # echo -n "$prompt_opening_brace$prompt_time_24 $prompt_username@$prompt_hostname_short $prompt_pwd_short$prompt_git_branch$prompt_closing_brace$prompt_usertype_sign "
transparentbg="m\]"
ESC[ [i];a[;b]m
, kde A (30-37) a B (40-47) su farby popredia a pozadia tak ako popisuje clanok. Intenzita farby I (0-8) sa zapisuje ako prvy nepovinny parameter. Clanok ale uvadza, ze hodnoty 0-8 by mohli byt zapisane do parametra A. Resp. ak sa do A zapise intenzita a potom do B farba popredia, clanok nespomina moznost tretieho parametra kam sa zada farba pozadia. Ako to teda je?
\e[A;Bm\e[Cm tradáá \e[0m
# 3x to samý \e[1;33;43m \x1b[33;1;43m \033[43;1;33mEvidentně tam lze zadat libovolný množství parametrů.