Terminal pogryzł człowieka: pastel
Pastel to narzędzie wyjątkowo nietypowe. Bo ile osób zawraca sobie głowę generowaniem palety kolorów w terminalu?
Pastel to polecenie tekstowe, które umożliwia generowanie kolorów oraz ich analizowanie, konwertowanie i manipulowanie nimi. Program wyczynia te wszystkie akrobacje w obrębie przestrzeni barw RGB (sRGB), HSL, CIELAB, CIELCh i ANSI 8/24-bit. Kolory możemy definiować podając ich nazwy, wartości składowe (np. rgb lub hsl), procent udziału lub po prostu hex. Użytkownik ma pełną kontrolę co zrobić z kolorem – rozjaśnić, czy zmiksować z innym, poprawić niektóre parametry, a może wygenerować całą listę kolorów od do i wybrać ten właściwy. Myli się jednak ten, kto sądzi, że Pastel traktuję całą sprawę algorytmicznie i bezdusznie. Nawet jeżeli i to nie przemawia nikomu do wyobraźni, wystarczy spojrzeć na listę poleceń jakie oferuje program.
~$ pastel help pastel 0.5.3 A command-line tool to generate, analyze, convert and manipulate colors USAGE: pastel <SUBCOMMAND> OPTIONS: -m, --color-mode <mode> Specify the terminal color mode: 24bit, 8bit, off, *auto* -h, --help Prints help information -V, --version Prints version information SUBCOMMANDS: color Display information about the given color list Show a list of available color names random Generate a list of random colors distinct Generate a set of visually distinct colors sort-by Sort colors by the given property pick Interactively pick a color from the screen (pipette) format Convert a color to the given format paint Print colored text using ANSI escape sequences gradient Generate an interpolating sequence of colors mix Mix two colors in the given colorspace saturate Increase color saturation by a specified amount desaturate Decrease color saturation by a specified amount lighten Lighten color by a specified amount darken Darken color by a specified amount rotate Rotate the hue channel by the specified angle complement Get the complementary color (hue rotated by 180°) gray Create a gray tone from a given lightness to-gray Completely desaturate a color (preserving luminance) textcolor Get a readable text color for the given background color help Prints this message or the help of the given subcommand(s)
Jak tego wszystkiego używać? Wystarczy zdecydować się czy chcemy stworzyć listę kolorów (distinct), gradient (gradient) a może wybrać jeden z listy (pick – wymaga zainstalowania gpick lub innej pipety). Mając listę możemy teraz wybrać interesującą nas barwę i dokonać jednej z dostępnych transformacji. Mix, saturate, desaturate, lighten, darken i tak dalej.
~$ pastel lighten 0.2 orchid orange lawngreen
Jeżeli posiadamy zainstalowane narzędzie gpick lub podobne, kolor który ma zostać zaprezentowany możemy pobrać bezpośrednio z ekranu (pick). Jeżeli natomiast nie jesteśmy przekonani o jaki kolor nam chodzi, program podpowie nam paletę (random), posortuje, wyświetli w formacie jaki jest nam potrzebny.
~$ pastel random -n 20 | pastel sort-by hue | pastel format hex
To niezwykle poręczne narzędzie zostało popełnione w języku Rust. Jednak autorzy zadbali o paczki deb dla Ubuntu i Minta. Natomiast użytkownicy Arch Linuksa i Manjaro sięgają do zasobów AUR:
yaourt -S pastel