- Лучшие иконки для Ubuntu
- Лучшие наборы иконок для Ubuntu
- 1. Candy Icons
- 2. Buuf
- 3. Torque Red & Green
- 4. Lila Ubuntu
- 5. CopperDeck EX Icon Set
- 6. Vamox
- 7. Macaron
- 8. Cream Folder
- 9. Noia
- 10. Black
- Как добавить набор иконок в Ubuntu 20.04
- Выводы
- Файлы ярлыков приложений («.desktop») и их меню
- Дубликаты не найдены
- GNU/Linux
- Правила сообщества
- Архивация и компрессия файлов. Часть 2
- Архивация и компрессия файлов. Часть 1
- Шрифты в Linux
Лучшие иконки для Ubuntu
Операционная система должна быть не только функциональной, но и иметь приятный взгляду интерфейс. И если c возможностями у Ubuntu всё не так уж плохо, то о красоте разработчики явно не позаботились. Стандартные наборы иконок, кочующие из версии в версию, способны повергнуть в депрессию даже эмоционально стойких пользователей.
Разнообразить внешний вид рабочего стола можно, установив в систему дизайнерские иконки. Их количество измеряется сотнями, а подобрать желаемый вариант легче всего на сайтах deviantart.com и gnome-look.org. Ну а в этой статье вашему вниманию представлены 10 лучших (по мнению автора) наборов иконок для Ubuntu.
Лучшие наборы иконок для Ubuntu
1. Candy Icons
Радужные иконки, чем-то напоминающие конфеты-леденцы. Несмотря на то, что нарисованы они в стиле «плоской» графики, смотрятся вполне стильно и современно. Могут использоваться как с тёмной, так и со светлой темой оформления. Их преимущество — наличие пиктограмм для большого количества приложений.
2. Buuf
Эти иконки для Ubuntu напоминают интерфейс компьютерной игры. Так как они не очень хорошо видны на тёмном фоне, лучше использовать их со светлыми темами. Набор включает пиктограммы лишь для самых популярных программ, причем, они имеют мало сходства со стандартными значками, поэтому придётся запоминать что есть что.
3. Torque Red & Green
Иконки в техно-стиле. Существуют в двух цветовых вариантах — красном и зелёном. Их минус — малое количество пиктограмм для приложений, но зато они неплохо видны на чёрном фоне и могут быть установлены вместе с тёмной темой. У этого же автора есть аналогичный набор иконок, окрашенных в синий цвет.
4. Lila Ubuntu
Простые иконки в мультипликационном стиле, нарисованные нарочито небрежно и раскрашенные в разные оттенки сиреневого. Смотрятся легко и ненавязчиво, отлично контрастируют с любым цветом фона. Набор содержит огромное количество эмблем, пиктограмм и значков, в том числе для отображения погоды, устройств, программ, мультимедиа и навигации.
5. CopperDeck EX Icon Set
«Металлические» иконки, хорошо различимые на любом фоне. Набор включает в себя пиктограммы для популярного ПО, значки файлов и даже несколько десятков смайликов. При увеличении до максимального размера некоторые элементы выглядят размытыми, поэтому не рекомендуется выставлять величину больше 50%.
6. Vamox
Современные и стильные, яркие иконки для Ubuntu. Распространяются в небесно-голубом и апельсиново-оранжевом оттенках. Подходят для использования с тёмными и светлыми темами оформления. Их единственный минус — небольшое количество пиктограмм для приложений; учтены лишь наиболее популярные браузеры, программы для работы с файловой системой, графические и текстовые редакторы.
7. Macaron
Набор плоских иконок с круглыми пиктограммами приложений и стандартными папками. Выполнен в пастельных оттенках голубого и персикового цвета. Разработчики постарались, сделав значки для огромного числа программ, даже таких как Stellarium, Wireshark и пасьянс Aisleriot.
8. Cream Folder
Красивый набор иконок, в котором тесно переплетается современность и прошлое. Гораздо лучше смотрится в сочетании со светлым фоном, чем с тёмным. Его особенность — отсутствие единого стиля у пиктограмм для приложений. Не обошлось и без недостатков — в максимальном размере некоторые значки кажутся размытыми.
9. Noia
Светлые и лёгкие иконки с небольшим количеством элементов в наборе. К загрузке доступны в двух вариантах: розово-золотистом и сине-серебристом. Отличаются также значки папок — в первом случае они сделаны в виде ракушек, а во-втором — в форме сердец. Все изображения прорисованы очень чётко и качественно. Отлично смотрятся с любыми темами оформления.
10. Black
Эти чёрные иконки — самые красивые изо всех монохромных вариантов. В них есть всё, что нужно пользователю: безупречная векторная графика, универсальность (несмотря на тёмный цвет, они прекрасно сочетаются с такими же тёмными обоями и темами оформления), огромное количество пиктограмм, эмблем и значков на все случаи жизни.
Как добавить набор иконок в Ubuntu 20.04
Чтобы воспользоваться понравившимися иконками, загрузите архив в память компьютера и распакуйте его в папку .icons, которая в свою очередь расположена в Домашней папке. Если папка .icons отсутствует, создайте её собственноручно.
Обратите внимание на то, что после распаковки архива в папке .icons должна оказаться только папка, содержащая упорядоченную подборку иконок и сопутствующие файлы (index.theme, readme.txt и другие). Разработчики нередко злоупотребляют множественным вложением, пряча папку с основным содержимым еще в несколько папок либо помещая внутрь одного архива другой. Всегда проверяйте распакованный архив на наличие рекурсии и освобождайте основную папку от ненужной «шелухи», иначе ваша система не сможет распознать новый набор иконок.
Однако, добавить иконки в Ubuntu — это лишь половина дела. Чтобы они начали отображаться в графическом интерфейсе, нужно их активировать. Стандартные настройки не дают такой возможности, поэтому вам потребуется установить программу Tweaks (Доп. настройки GNOME) и перейти в раздел Внешний вид, после чего в строке Значки выбрать желаемый набор иконок.
Выводы
Установить дополнительные наборы иконок в Ubuntu 20.04 и сделать графический интерфейс своей ОС более приятным совсем не сложно. А вам нравятся стандартные иконки или вы предпочитаете дизайнерские? Расскажите об этом в комментариях!
Источник
Файлы ярлыков приложений («.desktop») и их меню
В Linux значки и описания программ (приложений) хранятся отдельно от исполняемых файлов. Для GUI-программ составляют «файлы рабочего стола» (desktop files), схожие по назначению с ярлыками в Windows. Более удобного имени нет, поэтому пусть и здесь будут ярлыками.
Расширение — «.desktop»; имя любое. Формат ярлыков схож с форматом файлов «.ini» в Windows. То есть это структурированный текст, разделённый на группы; имя группы в квадратных скобках; в группах заданы строки-параметры вида «ключ=значение»; строка-комментарий начинается с #.
Общие ярлыки приложений хранят в /usr/share/applications; свои — в
/.local/share/applications. Для примера — сценарий оболочки и его ярлык.
# Хранить следует здесь:
# Сделать исполняемым: chmod u+x
# Десять самых жадных до процессора процессов/потоков.
# Процессы отсортированы по убыванию жадности.
/usr/bin/watch -p -n 1 \
«ps k -%cpu -eL -o pid,comm,%cpu | head»
# Завершить — Ctrl C.
# Общее название группы для всех файлов «.desktop».
# Строка [Desktop Entry] — первая; прочие — в любом порядке.
# Какой версии спецификации соответствует сам этот файл.
# Свежая — 1.1. Не обязательно.
# Кодировка самого файла. Обычно — UTF-8.
# Списки есть, например, у iconv. Не обязательно (устарело).
# Тип объекта: Application — приложение;
# Directory — категория; Link — ссылка на ресурс Интернета.
# «Категория» здесь — это заголовок подменю
# в общем меню приложений. Здесь не переводится.
# В значении может быть несколько частей,
# их отделять символом ;.
# И в конце строки рекомендуется поставить символ ;.
# Если символ ; используется сам по себе — экранировать: \;.
# Команда для запуска. Желательно указать полный путь.
# Можно короткое имя, если программа доступна через $PATH.
# Если нужно запустить с правами суперпользователя,
# то нужно начинать команду, например, с gksudo -gk.
# Понадобится установить программу gksudo или kdesudo.
# Рабочий каталог. Не обязательно.
# Нужно ли сначала открыть окно эмулятора терминала,
# а потом запустить в нём значение Exec.
# «Да» — true; «нет» — false. Обычно «нет».
# Файл значка. Обычно указывают короткое имя без расширения.
# Стандартные форматы файлов: PNG, SVG (SVGZ).
# Значки обычно хранят в /usr/share/icons.
# Нужно ли оповещать о запуске: помигать указателем мыши
# или аплетом списка задач и тому подобное. Обычно «да».
# Название ярлыка, видимое как подпись к значку или
# как имя пункта в меню. Здесь на английском.
Name=Top 10 greedy threads
# Желательно перевести. Список условных обозначений
# языков есть, например, у locale.
Name[ru]=Десять самых жадных потоков
# Описание, обычно видимое как всплывающая подсказка.
Comment=Shows Top 10 cpu eating processes/threads
Comment[ru]=Показывает 10 самых жрущих ЦПУ процессов/потоков
# Не показывать в меню. Обычно «нет».
# Файловые ассоциации, если есть, будут работать.
# Не показывать в меню, убрать из файловых ассоциаций.
# И вообще сделать вид, что приложения не существует.
# Показывать только в указанной рабочей среде:
# GNOME, KDE, Xfce, ещё какие-нибудь через ;.
# Не показывать в указанных рабочих средах.
# В файле должен быть только один из параметров:
# либо OnlyShowIn, либо NotShowIn.
Такие файлы можно помещать на Рабочий стол по необходимости: перетаскиванием; или же копированием/ссылкой файла в
/Рабочий стол (англоязычный —
/Desktop). Расположение каталога рабочего стола может быть указано в файле
/.config/user-dirs.dirs. Его читает программа xdg-user-dirs-update, создавая указанные каталоги.
Проверить синтаксическую корректность ярлыка можно программой desktop-file-validate.
Если нужно на Рабочий стол добавить каталог, то может быть достаточно символьной ссылки. Или составить ярлык, где в Exec будет имя диспетчера файлов либо xdg-open, а потом аргумент — путь к каталогу:
В среде GNOME разработчики пытаются запретить размещение файлов на Рабочем столе. Может понадобиться специальное расширение для GNOME Shell.
Ярлык для адреса Интернета имеет другое значение Type и вместо ключа Exec содержит URL:
Адрес будет открыт браузером по умолчанию. Если нужен другой браузер, следует сделать обычный ярлык с Type=Application, далее в Exec задать имя браузера с аргументом-URL.
Есть сколько-то общепринятых категорий в спецификации к файлам меню: Audio, Education, Graphics, System и другие. Файлы категорий синтаксически аналогичны файлам ярлыков. Расширение — «.directory». Хранят их обычно в /usr/share/desktop-directories. Свои — в
/.local/share/desktop-directories. Пример файла для категории «Система» (условное имя файла — system.directory). Не используйте его как есть.
Comment=System tools and utilities
Comment[ru]=Средства администрирования системы
Графическая среда обычно автоматически при запуске каждого сеанса пересобирает меню из имеющихся ярлыков и категорий для каждого пользователя.
Формат файлов меню — XML. Расширение — «.menu». Только пример, без пояснений. Не используйте его как есть.
Проверить синтаксическую корректность меню можно программой xmllint. Все меню не проходят валидацию (не находится DTD), вероятно, из-за беспорядка на сайте FreeDesktop.org.
Редакторы меню для GUI: KMenuEdit для KDE; LXMenuEditor (lxmed) для LXDE, требует Java; MenuLibre для GNOME, XFCE; Mozo для Mate.
Свои меню хранят в
/.config/menus. Точнее, в $XDG_CONFIG_DIRS/menus/$
Своё меню вроде как должно перекрывать (заменять собой) автоматическое. Добавочные (не перекрывание, а слияние) меню хранят в $XDG_CONFIG_DIRS/menus/applications-merged/.
Документация: ярлыки; меню. Для семейства программ xdg-* и desktop-* есть man-страницы. XDG (X Desktop Group) — старое название сообщества FreeDesktop.org.
У Debian (и производных) есть своя система меню, отличающаяся от XDG. Эти меню применяют в разных небольших диспетчерах окон: awesome, fvwm, openbox и других. Документация — в пакете menu.
Дубликаты не найдены
GNU/Linux
697 постов 13.1K подписчик
Правила сообщества
Все дистрибутивы хороши.
Полезно. Много не знал.
Добавлю от себя — не уверен что так везде, но у меня в дебиане на рабочем столе *.desktop файлы не функционируют если не давать им права на исполнение. (chmod +x *.desktop)
помню удалил кнопку отвечающая за вызов меню завершения работы. Пришлось по инструкции делать свою )
А просто восстоновить меню в редакторе не легче ли было .
В среде GNOME разработчики пытаются запретить размещение файлов на Рабочем столе. Может понадобиться специальное расширение для GNOME Shell.
Что б засрать рабстол ярлыками
Ага, а нахрена он тогда еще нужен?
Спасибо! Готовая справка по .desktop!
Где ж ты был два дня назад?)
Это как взять какую-нибудь книгу, открыть на середине и сделать пост этой страницы
Спасибо @balaev84av, вроде и много времени прошло, а я нашёл в этой не большой статье ответ на свой вопрос, плюс чуть-чуть нового узнал.
P.S. Ответ был в строке
Тема Actions не раскрыта!
[Desktop Action 10-NewWindow]
Name=Open a New Window
Name[ru]=Открыть в новом окне
также не раскрыта тема с формированием gnome-control-centr меню и что локальные не работают.
А и еще bamf соответствие и что такое параметр WMClass
Ну и утилиты которыми собирать и проверять.
т.к. не работают относительные пути в ярлыке .desktop XFCE (Xubuntu)
для запуска портативных программ вместо такой строки:
Иконка отображается только так:
если картинку закинуть в /usr/share/picmaxs или $HOME/.local/share/picmax
то картинка будет работать так Icon=doublecmd.png вроде можно даже без расширения
если приложение надодится в env PATH то не надо указывать прямой путь для Exec=
также можно положить его в $HOME/.local/bin/ и не надо также указывать прямой путь
правда надо понимать что локальные файлы в приоритете над глобальными!
у ярлыков еще есть мараметр обработки для всяких gnome-control-centr и вот эта дрянь работает только глобально
Архивация и компрессия файлов. Часть 2
Многие файлы содержат сколь-нибудь повторяющуюся, лишнюю информацию. Поэтому технически возможно преобразовывать её так, чтобы уменьшить общий размер. Это и есть компрЕссия (compression, «компрЕшэн»), или сжатие, данных.
Сжатие не следует воспринимать как «удаление ненужных частей». Важно, чтобы восстановленный файл имел точно такое же содержимое, что исходный (совпадения размеров файлов — не достаточно).
Есть много алгоритмов компрессии и много форматов сжатых файлов. В UNIX и Linux популярны форматы сжатия Bzip2, Gzip (традиционный), LZMA, XZ. Для примера — те же три файла:
Компрессор gzip для формата Gzip обычно удаляет файл-операнд; иначе нужна опция -k (от keep):
Шаблоны имён здесь раскрывает оболочка. Расширение имени здесь добавляется, а не заменяет исходное.
Понятие «степень сжатия» (compression ratio) толкуется по-разному: 1) «какую долю от размера исходного файла составляет размер сжатого файла» либо 2) «какую долю удалось убрать». Обычно выражается в процентах.
Выше видно, что нулевой файл имеет степень сжатия (1) в четыре процента (то есть сжат в 25 раз), случайный файл — 104% (то есть лучше было бы его вовсе не сжимать), текстовый файл — 32% (то есть примерно втрое уменьшился).
Вот вывод компрессором информации об архиве, в том числе степени сжатия в смысле (2):
$ gzip -l file3.txt.gz | column -t
compressed uncompressed ratio uncompressed_name
29806 102400 70.9% file3.txt
В выводе не учтены внутренние вспомогательные данные формата, здесь — около 3 КиБ: 100 — 71 = 29; 32 — 29 = 3.
Нередко алгоритм допускает несколько степеней сжатия. По умолчанию программа обычно выбирает нечто среднее. За более сильное сжатие (меньше размер) приходится платить увеличенными временем упаковки и расходом оперативной памяти. Нередко выигрыш в степени сжатия оказывается незначителен. Скорость распаковки остаётся прежней.
file2.rnd: -0.0% — replaced with file2.rnd.gz
file3.txt: 70.9% — replaced with file3.txt.gz
В данном случае — никакой разницы.
Опция -f — принудительное выполнение (от force), то есть здесь — заменить (replace) уже существующий сжатый файл новым. Опция —best — сжать наилучшим доступным алгоритмом (с параметрами, нацеленными на наиболее сильное сжатие).
Можно попробовать другой компрессор/формат, например bzip2 (Bzip2, «.bz2»):
$ bzip2 -k file3.txt
Здесь есть небольшой выигрыш: 32 — 28 = 4.
Нет простого способа узнать, насколько сильным будет сжатие. Тексты часто сжимаются со степенью (1) ниже 50%. Хуже всего сжимаются хаотичные (случайные, шум) данные.
Для удобства можно считать, что для файлов средних размеров сжатие уместно, если степень (1) составляет 60% и ниже (то есть сэкономлено 40% места и больше). Если файл большой (1 ГиБ и выше), то даже небольшая экономия при сжатии может быть уместна. Уже сжатый файл обычно бесполезно сжимать ещё раз. Файлы размером ниже 3 КиБ сжимать тоже бесполезно.
Для «декомпрессии» (распаковки, извлечения оригинала) сжатого файла часто есть не только опция компрессора, но и отдельная программа-распаковщик. Или сам компрессор может быть запущен под другим именем файла (например, с жёсткой ссылкой) для распаковки — это зависит от программиста.
$ gzip -d -kf file2.rnd.gz
$ gunzip -kf file2.rnd.gz
Здесь или опция -d, или программа gunzip. Опции -k, -f — с прежним смыслом. Аналогично с BZip2:
$ bzip2 -d -kf file3.txt.bz2
$ bunzip2 -kf file3.txt.bz2
$ diff -qs /bin/bunzip2 /bin/bzip2
Файлы /bin/bunzip2 и /bin/bzip2 идентичны
Чтобы задействовать содержимое оригинального (несжатого файла), обычно нужно явным способом распаковать сжатый. На это тратится процессорное время; в мобильном компьютере может быть повышенный расход заряда аккумулятора. Кроме того, степень сжатия непредсказуема или даже (1) выше 100%, поэтому при массовых правках файлов свободное место на диске может внезапно закончиться.
Чтобы задействовать содержимое оригинального (несжатого файла), обычно нужно явным способом распаковать сжатый. На это тратится процессорное время; в мобильном компьютере может быть повышенный расход заряда аккумулятора. Кроме того, степень сжатия непредсказуема или даже (1) выше 100%, поэтому при массовых правках файлов свободное место на диске может внезапно закончиться.
Есть несколько форматов файловых систем, где файлы сжимаются/распаковываются автоматически (говорят: «на лету» (on-the-fly) или «прозрачная (transparent) распаковка»).
Есть аналоги привычных утилит с именами, начинающимися на bz (для BZip2), xz или z (GZip): bzcat, bzless, bzgrep и другие. Делают то же, что оригиналы, но со сжатыми файлами.
Midnight Commander, подобные ему двухпанельные диспетчеры файлов, некоторые другие диспетчеры — могут открывать/распаковывать архивы/сжатые файлы. Иногда есть возможность имитировать монтирование архива как каталога (только на чтение, иногда ещё и на запись). В таких случаях программе может понадобиться предварительно распаковать файлы во временный каталог (обычно куда-то в /tmp/). Это заметно как зависание программы при работе с большим (несколько десятков МиБ и выше) архивом.
В UNIX и Linux компрессия традиционно является операцией над одиночным файлом. То есть для компрессии каталога с содержимым — нужно сначала создать архив, а потом его сжимать (либо, реже, — сжать каждый файл, а потом заархивировать всё).
Архиватор tar может задействовать какой-либо компрессор, если тот воспринимает просто имя файла как сигнал к сжатию либо воспринимает опцию -d как сигнал к распаковке (декомпрессии). Опции tar для внешних компрессоров: -z для gzip, -j для bzip2, -J для xz. Для остальных компрессоров — опция -I (заглавная i, после которой указать имя программы). Примеры:
# Архив tar внутри сжатого файла Gzip одной командой.
$ tar -cvz -f archive.tar.gz «old»
$ du -s archive.tar.gz
archive.tar.gz: gzip compressed data
# Архив tar внутри сжатого файла Bzip2 одной командой.
$ tar -cj -f archive.tar.bz2 «old»
$ du -s archive.tar.bz2
archive.tar.bz2: bzip2 compressed data, block size = 900k
# Архив tar внутри сжатого файла LZMA одной командой.
$ tar -c -I lzma -f archive.tar.lzma «old»
$ du -s archive.tar.lzma
archive.tar.lzma: LZMA compressed data, streamed
Вместо множественных расширений вида «.tar.gz» могут попадаться одиночные: «.tgz», «.tbz», «.txz» и другие — по традиции или при необходимости соблюдать ограничения на длину имени. Устаревший компрессор — compress; расширение «.Z»; в tar есть опция -Z.
# Примеры распаковки сжатых архивов одной командой:
$ tar -xj -f archive.tar.bz2
$ tar -x -I lzma -f archive.tar.lzma
Чтобы изменить содержимое сжатого архива, программе приходится его предварительно распаковывать, а после внесения изменений — заново упаковывать обратно. Это затраты времени, оперативной памяти и, возможно, пространства на диске для временного хранения. Может оказаться удобнее — упаковать файлы в поддереве по отдельности, не создавая архива. У gzip/gunzip есть опция -r (от recursive). Для других программ можно задействовать find (и, если нужно, xargs).
В семействе Windows привыкли воспринимать архивацию и компрессию как единую, неделимую операцию. Часто говорят «заархивировать» в смысле «получить сжатый архив»; «разархивировать» — «выполнить и декомпрессию, и извлечение из архива». Или: «упаковать» и «распаковать» файлы. И сжатые файлы называют «архивами». Для большинства пользователей важно именно сжатие данных, а архивация подразумевается сама собой.
Популярные в Windows форматы сжатых файлов с возможностью хранения файлового поддерева (архива): ZIP, RAR. Соответственно программы: для командной строки — zip.exe, rar.exe; для GUI — WinZip, WinRAR. Диспетчер файлов системы Windows — Проводник (Explorer) может смонтировать архив ZIP как подкаталог там, где находится сам файл архива. Есть и другие программы, в том числе поддерживающие много форматов, например: 7-Zip, PeaZip (и вышеуказанные WinZip, WinRAR).
Набор программ p7zip (в том числе 7z, 7za) является вариантом 7-Zip для командной строки UNIX и Linux. Формат 7z может давать более сильное сжатие, чем Gzip и Bzip2.
В Linux может быть проблема с форматом ZIP для файловых имён, содержащих не-латиницу. У ZIP есть свой внутренний формат хранения имён. Если создать архив в Windows, а потом попытаться распаковать в Linux, имена превратятся в наборы кракозябров. В последнее время дистрибутивы обычно поставляют исправленные программы unzip и zip. Или придётся пробовать перекодировать имена программой iconv или convmv.
Возможные (ненадёжно) варианты перекодировки имени (предполагаемый в примере файл сохранил расширение «.pdf» на латинице, поэтому файл можно как-то задействовать через шаблон оболочки):
$ N=$(ls *.pdf | iconv -f cp1252 -t cp850 | iconv -f cp866)
# Или другой вариант:
$ N=$(ls *.pdf | iconv -t iso8859-1 | iconv -f cp866)
# После каждого варианта просмотреть
# содержимое переменной N для перекодированного имени.
# И если имя выглядит разумно, то:
Программы для Windows часто поставляются в виде особых архивов, в том числе формата Microsoft Cabinet («.cab»). Такие архивы по лицензионным соглашениям запрещено распаковывать вручную. Для Linux есть программа cabextract.
Иногда в России встречаются старые форматы архивов с внутренней компрессией: ARJ, HA, LHA и другие. Для Linux могут найтись программы: arj, ha, unar. Иначе может понадобиться устанавливать FreeDOS/Wine или иную среду выполнения DOS/Windows-программ, а потом искать соответствующие декомпрессоры.
В Windows нередко создают «самораспаковывающиеся» (self-extracting) архивы: это программа-распаковщик, к которой присоединён собственно архив. Как и обычная программа для Windows, имеют расширение «.exe». Предназначены для пользователей, у которых нет своей копии распаковщика. Иногда такой архив можно распаковать и в Linux (зависит от формата архива и наличия программ, например 7-zip). Нежелательны к применению, потому что могут содержать программы-вирусы. Не следует запускать напрямую, а лучше — открыть отдельным распаковщиком. В Linux иногда делают сценарии оболочки, состоящие из команды на распаковку и присоединённого к сценарию архива; программы: makeself, shar (sharutils).
В некоторых форматах архивов и/или сжатых файлов предусмотрено шифрование с паролем: 7z, RAR, ZIP и другие.
Компрессия данных может встретиться и на системном уровне. Например, в некоторых файловых системах нулевые фрагменты (пустые блоки) внутри файлов не хранятся и не копируются (это называется «разреженные файлы», sparse files).
Программы для GUI: Archive Manager (File Roller) для GNOME, Ark для KDE, Engrampa для MATE, PeaZip, Xarchiver. Они отображают содержимое архивов, подобно тому как диспетчеры файлов отображают содержимое каталогов; предоставляют меню команд создания/распаковки архивов. Но сами не содержат программного кода архиваторов/компрессоров, поэтому требуют установки библиотек (libarchive, liblzma, unrar и других) и самих архиваторов/компрессоров для командной строки.
В файлах мультимедиа (изображения, звук, видео) часто применяют алгоритмы «несимметричного» сжатия, то есть с частичной потерей информации. Это позволяет сжать данные ещё сильнее (в десятки или больше раз). Некоторые потери в деталях изображений или в звуковых волнах уместны, если средний человек эти оттенки/детали/шумы и прочее не различает. Такие алгоритмы обычно имеют широкий набор настроек, поэтому нужно следить за тем, чтобы качество мультимедиа не стало плохим, явно заметным.
Архивация и компрессия файлов. Часть 1
(НЕ является руководством по резервному копированию. Во второй части используется тот же тестовый каталог с теми же файлами.)
«АрхИв» (archive, «Акайв») в компьютерном смысле — набор файлов, подготовленный для длительного хранения. Предполагается, что файлами из архива какое-то время не будут пользоваться — подобно тому, как лишние вещи складывают в коробку и убирают в кладовку или ещё куда-то.
Цели архивАции файлов: иметь запасные копии; переслать несколько файлов/каталогов одной операцией; если нужно/возможно — сэкономить/высвободить место на диске. Для экономии места лишние файлы удаляют или «сжимают» (синонимы: «упаковывают», «подвергают компрессии»).
Форматы архивов по сути — контейнеры: содержат «слепок» (snapshot) или «образ» (image) некоторой части дерева файловой системы или всего дерева (или даже больше). Важно, чтобы из архива можно было «разархивИровать» (извлечь) не только содержимое файлов, но и их имена/пути, даты, права и остальные нужные метаданные.
Традиционные и/или стандартные сейчас либо ранее (в POSIX) программы-архиваторы: cpio, pax, tar. Менее известные: dar, star.
Наиболее популярна — tar. Имя означает «tape archiver». Слово «tape» означает здесь — «[магнитная] лента». Устройства хранения на кассетах с магнитными лентами есть и сейчас, в основном в крупных организациях. Такое устройство называют «стрИмером» (streamer), а кассету — «кАртриджем» (cartridge). В отличие от магнитного диска, для операций чтения/записи ленту нужно перематывать; и создавать на ленте полноценную файловую систему (форматировать) обычно нецелесообразно. Поэтому здесь не достаточно простого копирования, а нужен формат-контейнер, файл которого пишется в символьный файл-устройство стримера сплошным потоком, хотя и условно разделён на блоки.
Примеры действий с архивами tar:
# Создать тестовый каталог с содержимым.
$ fallocate -l 100KiB works/old/file1.000
# Файл из случайно сгенерированных байтов.
$ dd if=/dev/urandom bs=1k count=100 of=works/old/file2.rnd
# Текстовый файл. Аргумент iflag=fullblock нужен,
# чтобы dd дождалась достаточного объёма данных от col,
# не завершаясь раньше этого.
$ man bash | col -b \
| dd bs=1k count=100 iflag=fullblock \
# Вот итоговый вид поддерева works от программы tree.
# (Она не стандартная, устанавливают отдельно.)
(Редактор постов, как обычно, съел несколько пробелов, поэтому вместо них — звёздочки. Должно быть, разработчик редактора — любитель Пакмана.)
Предполагается заархивировать старые файлы, т. е. в old/.
-c — создать архив;
-v — выводить список обрабатываемых файлов;
-f — архив не на ленте, а в указанном файле.
Всё остальное — архивируемые файлы/каталоги; для архивации поддерева будет достаточным указать только родительский каталог.
# Кавычки — просто выделение того, что именно идёт в архив.
$ tar -c -v -f archive.tar «old»
# Посмотреть свойства архива:
archive.tar: POSIX tar archive (GNU)
# Содержимое (список файлов).
$ tar -t -f archive.tar
$ du -k archive.tar
# Освободить место, занятое старыми файлами.
# Извлечь содержимое архива.
# Сам архив останется прежним.
# Однобуквенные опции можно набрать слитно с общим дефисом.
$ tar -xvf archive.tar
Опция -x — извлечь (скопировать) файлы из архива. Буква x — от extract. Если нужны только некоторые файлы, укажите их пути точно в том виде, в каком они записаны в архиве. В командном выражении пути файлов, извлекаемых из архива, указывают там, где при создании архива были указаны файлы, идущие в архив (то есть в конце).
Можно попробовать указать шаблоны имён с символами * и ?, но дополнительно нужна опция —wildcards, например:
$ tar -xv —wildcards -f archive.tar ‘*file. ‘
Файлы извлекаются вместе с путями, так что каталог old со всем содержимым мог быть восстановлен в любом другом подходящем рабочем каталоге.
Архив можно пополнить. Пополнение архивов бывает «добавлением» (append) или «обновлением» (update).
Если нужно добавить какие-то ещё файлы — опция -r вместо -c; и опять указать пути к файлам в конце командного выражения.
Если в том же каталоге появились новые файлы или поправлены старые, то это обновление (замена старых файлов на новые); вместо опции -c указать -u. Программа tar сама обнаружит и добавит в архив новые/исправленные файлы.
$ mv today/file3.txt old/
$ tar -uvf archive.tar «old»
$ tar -tf archive.tar
Опция —delete — удалить файлы из архива (только если архив не на ленте):
# Всё равно этот файл состоял только из нулей.
# Здесь путь к файлу не выводится.
$ tar —delete -v -f archive.tar «old/file1.000»
$ tar -tf archive.tar
В архивах tar можно хранить несколько файлов с одинаковым путём. Выполняется повторными действиями добавления и обновления. В списке по -t очередь идёт снизу вверх, то есть сверху — архивированные последними. Опция —occurence=3 — выполнить действие над третьим по очереди добавления файлом из тех, что с одинаковым путём (нумерация начинается с единицы).
И ещё много разных опций, например:
-k — не извлекать файлы, если они уже есть в целевом каталоге;
—keep-newer-files — почти то же, но с уточнением, если уже имеющиеся в целевом каталоге файлы — более новые (по метаданным даты и времени), чем в архиве;
-p — метаданные о правах на файлы тоже восстанавливать из архива при извлечении;
—same-owner — восстанавливать имя владельца и группы;
-w — просить подтверждения на каждое действие.
Документация: man tar, info tar.
Благодаря сохранению метаданных, архиваторы иногда применяют для аккуратного копирования по конвейеру, например:
$ find . -depth -print0 | cpio —null -pvd ../old
Программа find часто служит генератором списка имён для архивации или иных массовых действий над файлами. Архиватор cpio всегда требует перенаправления: или |. Опции -print0 и —null — для корректной обработки путей, содержащих кириллицу, пробелы и иные символы за пределами правила «8.3» и подобных ему ограничений.
Следите за тем, чтобы правильно строить пути (чтобы, например, не получилось в итоге works/old/today/file3.txt вместо works/old/file3.txt). Для начала стоит запустить только find.
Формат tar имеет проблемы с хранением специальных файлов, со скоростью поиска файла в архиве, с хранением некоторых метаданных. Если это критично, то следует применять архиватор dar.
Шрифты в Linux
(НЕ является инструкцией по руссификации интерфейса.)
Что такое шрифт
Файл шрифта (font file) содержит наборы изображений (рисунков) символов и соответствующие символам коды. Технически шрифты могут быть растровыми (bitmap fonts) или векторными (outline/vector fonts).
Растровые шрифты обычно применяют для текстового интерфейса. Рисунок символа (глиф) здесь — прямоугольный набор точек. Например, если размер текстового экрана 640×480 пикселов, а терминал настроен в режиме 80×30 (80 символов в 30 строках), то подойдёт шрифт, в котором ширина глифа — 8 пикселов, а высота — 16 (16×8).
Пример того, как может выглядеть буква А в растровом шрифте с глифами размером 16×8 точек. Пустые/фоновые пикселы показаны символом
Пустое место сверху можно оставить, чтобы строки не сливались, снизу — чтобы уместить, например, буквы р или у.
Отрисовка растровых глифов на экране — относительно простая операция отображения уже готовых наборов точек на пикселы дисплея. Но растровые шрифты обычно содержат глифы только одного размера. В GUI нередко требуется отрисовывать символы разных размеров (разного кегля) одновременно, поэтому применяют векторные шрифты. Как и прочие векторные изображения, глифы таких шрифтов содержат наборы параметров для математических фигур; при использовании шрифта программа «растеризУет» глифы (создаёт набор точек). Готовые растеризованные глифы называют «кэшем шрифта» (font cache).
Высоту заглавных символов называют «кеглем» (font size). Есть несколько шкал кегля; можно условно считать, что одна единица высоты примерно равна 0,3-0,4 мм. Например, «сделать двенадцатым кеглем» означает, что высота заглавных символов будет примерно 3,6-4,8 мм; «шрифт высотой десять» — 3-4 мм. Предполагается, что на разных мониторах растровые шрифты одинакового размера (в текстовом интерфейсе) выглядят различно; но векторные шрифты одного кегля (в GUI) должны выглядеть одинаково.
На не очень новых мониторах с разрешением около 100 dpi кегль 5 и ниже — неразборчиво мал; для виджетов обычно выбирают кегль 10 или 12.
Шрифты бывают моноширинными (monospace) и пропорциональными (proportional или не указано). «Моноширинный» означает, что все глифы одинаковой ширины, занимают одинаковое место по горизонтали; хотя между соседними символами в линии может быть видно немного свободного пространства (не пробелы), но сдвинуть символы поближе друг к другу не получится. Текстовый интерфейс — традиционно моноширинный. То есть, например, 80 символов в линии (видимой строке); символы выровнены по вертикали (строго друг над другом). В пропорциональном шрифте, например, символы Щ и Л — разной ширины; в линиях одного виджета (например, текстовой области) может умещаться разное число символов.
Основную графическую идею (стиль) шрифта называют «гарнитУрой» (typeface, или font face). Символы одной гарнитуры схожи примерно так же, как инструменты из одного набора или предметы посуды из одного сервиза.
Есть несколько классификаций гарнитур. В простых случаях выделяют «рубленые» шрифты (без засечек, sans serif) — обычно для заголовков или надписей; и шрифты «с засечками» (serif) — обычно для основного текста. ЗасЕчка — небольшой декоративный поперечный штрих на конце черты некоторого символа. «Декоративные» шрифты (в названии может быть script) — имитация письма от руки. Есть шрифты, состоящие разных вспомогательных символов (symbols, dingbats), например, шахматных фигур, маркеров или орнаментов.
Внутри гарнитуры могут быть дополнительные стили — «начертания» (slants); обычно это нормальное начертание (Medium, Normal, Regular или Roman), курсИв[ное] (Italic, или Oblique), жирное/полужирное (Bold/Semibold). Начертания хранят в отдельных файлах; некоторые графические редакторы или офисные текстовые процессоры могут имитировать начертания, имея лишь один файл с нормальным начертанием.
Шрифты в текстовой консоли
Формат файлов шрифтов для текстового режима Linux — PC Screen Font («.psf» или «.psfu»). Здесь u означает Unicode. (Раньше для русского языка были кодировки KOI-8R и CP1251.) Документация по PC Screen Font есть в пакете kbd (/usr/share/doc/kbd/).
Сами файлы шрифтов обычно хранят в /usr/share/consolefonts, /usr/share/syscons/fonts/, /usr/share/kbd/consolefonts или в /usr/share/fonts. Обычно файлы дополнительно сжаты gzip. Размер — несколько КиБ. Файлы, включающие и глифы кириллицы, обычно имеют в имени Cyrillic или сокращённо cyr.
Традиционный шрифт — VGA или Fixed, более новый и приятный для глаз — Terminus. Пример файла шрифта гарнитуры Fixed:
$ file -z CyrSlav-Fixed16.psf.gz
CyrSlav-Fixed16.psf.gz: Linux/i386 PC Screen Font v1 data, 256 characters, Unicode directory, 8×16 (gzip compressed data, last modified: Wed Feb 1 12:35:37 2017, max compression, from Unix)
В настоящее время текстовая консоль Linux может использовать шрифты в кодировке Unicode (по умолчанию — кодировка CP437 и встроенный в ядро шрифт). В шрифте допустимо 512 глифов; возможно отображение 8 цветов. Или 256 глифов, но 16 цветов. Показать набор символов текущего шрифта (выполнять в текстовой консоли, не в эмуляторе терминала):
Для правильного соответствия глифов кодам Unicode — нужна вспомогательная таблица (translation map, unimap), которая раньше хранилась в отдельном файле, а сейчас может входить в основной файл шрифта (обычно, но не обязательно, с расширением «.psfu»). Таблицы unimaps («.acm» или «.acm.gz») хранят в /usr/share/consoletrans/, /usr/share/unimaps или /usr/share/syscons/scrnmaps/. Программа psfgettable служит для копирования таблицы unimap из шрифта; psfaddtable — для добавления.
Вспомогательные программы для правки шрифтов: nafe ( https://sourceforge.net/projects/nafe/ ), psftools ( https://tset.de/psftools/index.html ), rw-psf ( https://github.com/talamus/rw-psf ). Они конвертируют символы в ascii-art (вроде вышеуказанного примера буквы А) или растровые изображения. После правки в текстовом или графическом редакторе можно конвертировать файл обратно в шрифт.
Настройки применения шрифта — файл /etc/default/console-setup или
Применить настройки на текущей консоли:
Пакеты программ: kbd, console-setup. Документация: man-страницы console-setup, setfont, setupcon. В инсталляциях с systemd может быть файл настроек /etc/vconsole.conf и сервис systemd-vconsole-setup.service. Документация: man-страницы systemd-vconsole-setup.service, vconsole.conf.
Шрифты в графической консоли
Форматы шрифтов для GUI:
Portable Compiled Font (PCF, «.pcf» или сжатый «.pcf.gz»), растровый;
Bitmap Distribution Format (BDF, «.bdf» или сжатый «.bdf.gz»), растровый;
TrueType Font (TTF, «.ttf»), векторный;
OpenType Font (OTF, «.otf»), векторный;
Type 1 PostScript font ASCII (PFA, «.pfa»), векторный;
Type 1 PostScript font binary (PFB, «.pfb»), векторный;
и ещё несколько более редких.
Наиболее популярные форматы: TTF, OTF (и их контейнер для веб-страниц — Web Open Font Format, «.woff»/».woff2″).
Размеры файлов — от сотен КиБ до нескольких МиБ или ещё больше; зависит от количества символов (которых могут быть тысячи). Обычно файлы, содержащие латиницу и кириллицу, специально не помечаются. Файлы, содержащие символы восточных языков, содержат в имени указание на язык, например: arabic, thai.
NotoSans-Regular.ttf: TrueType font data
$ ls -ks NotoSans-Regular.ttf
Графическая подсистема X Window System задействует шрифты сама или через библиотеки. X-программа (клиент сервера X Window) может запросить отрисовку шрифта по записи формата X Logical Font Description (XLFD). Запись состоит из 14 полей через дефисы. Пример:
Здесь cronyx — семейство шрифтов, times — гарнитура, medium и i (italic) — начертания, 14 — кегль, 100 — предполагаемые разрешения дисплея по горизонтали и вертикали, iso10646 и следующее поле — кодировка. Остальные поля менее важны; звёздочка является метасимволом и предлагает программе самой выбрать значение поля.
Значения можно подбирать GUI-программой xfontsel. Кнопка select копирует запись в буфер X, откуда её можно вставить в редактор средней кнопкой мыши (колёсиком).
Посмотреть список доступных серверу шрифтов — xlsfonts.
Посмотреть таблицу глифов — xfd (или вообще указать некоторой X-программе использовать заданный шрифт опцией -fn):
$ xfd -fn ‘-cronyx-times-medium-i-*-*-14-*-100-100-*-*-iso10646-1’
Кодировка iso10646 — одно из названий Unicode. Поддержка Unicode в самой X Window System работает плохо, поэтому сейчас юникодные шрифты обрабатываются отдельными библиотеками. Но желательно иметь хоть какой-то шрифт в одной из кодировок семейства iso8859 или иной — просто для начального запуска сервера X Window.
Настройки применения шрифтов в общем файле /etc/X11/xorg.conf:
# Прочие параметры этой секции.
В указанных каталогах следует запустить программы mkfontscale и mkfontdir. В результате должны появиться файлы encodings.dir, fonts.alias, fonts.dir.
Шрифт можно подключить временно, вручную:
xset +fp /usr/share/fonts/X11/misc
# Перечитать списки шрифтов.
Вспомогательная шрифтовая библиотека для GUI — Fontconfig. Она ведёт каталоги установленных в системе шрифтов и предоставляет программам шрифты, подходящие по требованиям. Библиотека Fontconfig сама не занимается растеризацией шрифтов.
К библиотеке прилагается семейство программ fc-*, в том числе:
fc-cache — создать/пересоздать кэш шрифтов;
fc-list — показать список установленных в системе шрифтов (выводится много информации, в том числе поддерживаемые языки). Возможно задать условие, например (вывод сокращён):
# Показать установленные шрифты, имеющие символы русской кириллицы.
DejaVu Sans,DejaVu Sans Light
Nimbus Roman No9 L
fc-validate — узнать, есть ли в шрифте символы алфавита для заданного языка, например:
$ fc-validate -l ru NotoSans-Regular.ttf
NotoSans-Regular.ttf:0 Satisfy the coverage for ru language
$ fc-validate -l en NotoSans-Regular.ttf
NotoSans-Regular.ttf:0 Satisfy the coverage for en language
$ fc-validate -l ru NotoKufiArabic-Regular.ttf
NotoKufiArabic-Regular.ttf:0 Missing 66 glyph(s) to satisfy the coverage for ru language
$ fc-validate -l en NotoKufiArabic-Regular.ttf
NotoKufiArabic-Regular.ttf:0 Missing 72 glyph(s) to satisfy the coverage for en language
$ fc-validate -l ar NotoKufiArabic-Regular.ttf
NotoKufiArabic-Regular.ttf:0 Satisfy the coverage for ar language
То есть в основном файле есть символы для русского, английского языков; в файле для арабского языка есть только арабица.
Документация: man-страницы; HTML-документация в /usr/share/doc/fontconfig. Обозначения языков — по RFC-3066/ISO 639.
Основной XML-файл настроек Fontconfig — /etc/fonts/fonts.conf. Документация: man fonts-conf. Там же указаны имена других файлов, например пользовательский
Каталоги для хранения шрифтов: общий /usr/share/fonts/, пользовательский
/.fonts/). В fonts.conf можно указать другие.
Желательно иметь в GUI: пропорциональные шрифты с засечками и без них (для большинства виджетов), моноширинный шрифт (для эмулятора терминала), шрифт со вспомогательными символами (для офисного текстового процессора).
Семейства свободно доступных шрифтов, которые считают приятными для глаз: Cantarell, Droid, Noto, Ubuntu. Шрифты со вспомогательными символами: OpenSymbol, Symbola; или Dingbats и Wingdings из Windows.
Для установки шрифта, поддерживаемого Fontconfig, нужно скопировать его файлы в один из каталогов хранения (можно во вложенный каталог). Желательно правильно установить целевые права, например 444 для файлов и 555 для каталогов. Потом запустить fc-cache (может сработать автоматически).
Офисные документы, электронные книги и другие файлы документов/изображений нередко могут хранить внутри себя сами файлы шрифтов (полностью или частично), но часто — содержат только что-то вроде ссылки на имя шрифта. Если скопировать файл документа/изображения на другой компьютер, где нет подходящего шрифта — программа либо покажет пустые/неверные глифы, либо попробует (зависит от программистов) «подставить» хоть какой-то подходящий шрифт (substitute a font). Даже при подстановке вид документа/изображения может быть испорчен из-за того, что размеры глифов в разных шрифтах не совпадают.
Для офисных документов популярны семейства шрифты из Windows: Arial, Courier New, Times и другие (форматы TTF, OTF).
Их можно скопировать из инсталляции Windows (каталог Windows\Fonts\).
В дистрибутивах могут быть пакеты, копирующие файлы шрифтов из Интернета. Помещать сами эти шрифты в пакет запрещено лицензионным соглашением.
Можно скопировать их из Интернета самостоятельно и распаковать программой cabextract. Ищите в репозиториях сервиса SourceForge.net по выражению «Microsoft core fonts».
Для подстановки можно применять шрифты семейства Liberation (соответственно Sans, Mono, Serif). Они, насколько возможно, «метрически совместимы» (metrically compatible) со шрифтами из Windows, то есть глифы сходных размеров. Другие метрически совместимые шрифты:
семейство Croscore (соответственно Arimo, Cousine, Tinos);
[Astra] Sans, [Astra] Serif и Mono от фирмы Paratype;
семейство XO Fonts (Oriel, Courser, Thames, символьные шрифты Symbol и Windy).
В графической подсистеме X Window System растеризацией занимается своя библиотека Xft. В последние годы операции растеризации передаются внешним библиотекам: Cairo, FreeType, Pango. Графическая подсистема Wayland сама никак не взаимодействует со шрифтами, все программы обращаются к внешним библиотекам.
Растеризованные глифы малого кегля могут выглядеть грубо/нечётко. Чтобы улучшить вид, применяют методы отрисовки под общим названием «сглаживание» (anti-aliasing). Иногда сглаженные глифы выглядит отчасти цветными из-за «субпиксельного рендеринга» — то есть дорисованные пикселы не чёрные или серые, а других цветов. Эффект зависит от порядка расположения цветных элементов (субпикселов) в пикселах.
В шрифтах TrueType могут быть дополнительные встроенные данные (hints) по отрисовке; их применение называется «хИнтинг» (hinting). В библиотеке FreeType наилучший алгоритм отрисовки (TrueType Bytecode Interpreter) был запрещён патентами примерно до 2010 года/версии 2.4.
Источник