Byl vydán Mozilla Firefox 126.0. Přehled novinek v poznámkách k vydání, poznámkách k vydání pro firmy a na stránce věnované vývojářům. Vylepšena byla funkce "Zkopírovat odkaz bez sledovacích prvků". Přidána byla podpora zstd (Zstandard). Řešeny jsou rovněž bezpečnostní chyby. Nový Firefox 126 je již k dispozici také na Flathubu a Snapcraftu.
Grafana (Wikipedie), tj. open source nástroj pro vizualizaci různých metrik a s ní související dotazování, upozorňování a lepší porozumění, byla vydána ve verzi 11.0. Přehled novinek v aktualizované dokumentaci.
Byla vydána nová verze 24.0 linuxové distribuce Manjaro (Wikipedie). Její kódové jméno je Wynsdey. Ke stažení je v edicích GNOME, KDE PLASMA a XFCE.
Byla představena oficiální rozšiřující deska Raspberry Pi M.2 HAT+ pro připojování M.2 periferii jako jsou NVMe disky a AI akcelerátory k Raspberry Pi 5. Cena je 12 dolarů.
V Praze o víkendu proběhla bastlířská událost roku - výstava Maker Fair v Praze. I strahovští bastlíři nelenili a bastly ostatních prozkoumali. Přijďte si proto i vy na Virtuální Bastlírnu popovídat, co Vás nejvíce zaujalo a jaké projekty jste si přinesli! Samozřejmě, nejen českou bastlířskou scénou je člověk živ - takže co se stalo ve světě a o čem mohou strahováci něco říct? Smutnou zprávou může být to, že provozovatel Sigfoxu jde do
… více »Kam asi vede IllllIllIIl.llIlI.lI? Zkracovač URL llIlI.lI.
Společnost OpenAI představila svůj nejnovější AI model GPT-4o (o jako omni, tj. vše). Nově také "vidí" a "slyší". Videoukázky na 𝕏 nebo YouTube.
Ondřej Filip publikoval reportáž z ceremonie podpisu kořenové zóny DNS. Zhlédnout lze také jeho nedávnou přednášku Jak se podepisuje kořenová zóna Internetu v rámci cyklu Fyzikální čtvrtky FEL ČVUT.
Společnost BenQ uvádí na trh novou řadu monitorů RD určenou pro programátory. První z nich je RD240Q.
Byl aktualizován seznam 500 nejvýkonnějších superpočítačů na světě TOP500. Nejvýkonnějším superpočítačem nadále zůstává Frontier od HPE (Cray) s výkonem 1,206 exaFLOPS. Druhá Aurora má oproti loňsku přibližně dvojnásobný počet jader a dvojnásobný výkon: 1,012 exaFLOPS. Novým počítačem v první desítce je na 6. místě Alps. Novým českým počítačem v TOP500 je na 112. místě C24 ve Škoda Auto v Mladé Boleslavi. Ostravská Karolina, GPU
… více »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ů.