воскресенье, 28 июня 2020 г.

Удаление "лишних" шрифтов Linux Mint 20

Дистрибутив Linux Mint содержит большое число азиатских шрифтов, которые приходится из системы удалять в связи с их невостребованностью в практическом применении. А так как их комплектность из года в год меняется, то с каждым новым релизом приходится корректировать порядок избавления системы от указанных компонентов. Ниже указаны команды применительно к Linux Mint 20.

Перед операцией рекомендуется скачать и распаковать набор lm20.tar.gz  В состав архива входят грифты Noto, весь набор которых почти полностью удаляется в процессе удаления его азиатских компонентов, а также шрифты calibri и tahoma, отсутствующие в комплекте ttf-mscorefonts.

Перейдите в настройки и в разделе "Языки / Поддержка языков" через "Установка и удаление языков" и удалите все языки кроме указанных на рисунке:


В процессе выполнения приводимой ниже команды будут также удалены файлы помощи Libre Office всех языков, за исключением русского и английского (США). После выполнения команды из системы будут удалены 125 пакетов и освобождено 388 Мб дискового пространства.

Выполнить в терминале в одну строку:

sudo apt purge -y fonts-gargi fonts-gujr fonts-gujr-extra fonts-guru fonts-guru-extra  fonts-telu fonts-telu-extra fonts-knda fonts-beng fonts-beng-extra fonts-deva fonts-deva-extra fonts-orya fonts-orya-extra fonts-mlym fonts-taml fonts-lohit-deva fonts-lohit-gujr fonts-lohit-guru fonts-lohit-knda fonts-lohit-beng-assamese fonts-lohit-beng-bengali fonts-lohit-mlym fonts-lohit-orya fonts-lohit-taml-classical fonts-lohit-taml fonts-lohit-telu fonts-khmeros-core fonts-indic fonts-navilu fonts-kalapi fonts-lao fonts-gubbi fonts-sahadeva fonts-pagul fonts-sarai fonts-tlwg-garuda fonts-tlwg-garuda-ttf fonts-tlwg-kinnari fonts-tlwg-kinnari-ttf fonts-tlwg-laksaman fonts-tlwg-laksaman-ttf fonts-tlwg-loma fonts-tlwg-loma-ttf fonts-tlwg-mono fonts-tlwg-mono-ttf fonts-tlwg-norasi fonts-tlwg-norasi-ttf fonts-tlwg-purisa fonts-tlwg-purisa-ttf fonts-tlwg-sawasdee fonts-tlwg-sawasdee-ttf fonts-tlwg-typewriter fonts-tlwg-typewriter-ttf fonts-tlwg-typist fonts-tlwg-typist-ttf fonts-tlwg-typo fonts-tlwg-typo-ttf fonts-tlwg-umpush fonts-tlwg-umpush-ttf fonts-tlwg-waree fonts-tlwg-waree-ttf fonts-kacst fonts-kacst-one fonts-noto fonts-noto-cjk fonts-noto-mono fonts-nakula fonts-samyak-deva fonts-samyak-gujr fonts-samyak-mlym fonts-samyak-taml fonts-sil-padauk fonts-lklug-sinhala  fonts-tibetan-machine fonts-sil-abyssinica fonts-thai-tlwg fonts-smc fonts-smc-anjalioldlipi fonts-smc-chilanka fonts-smc-dyuthi fonts-smc-gayathri fonts-smc-karumbi fonts-smc-keraleeyam fonts-smc-manjari fonts-smc-meera fonts-smc-rachana fonts-smc-raghumalayalamsans fonts-smc-suruma fonts-smc-uroob fonts-yrsa-rasa hunspell-de-at-frami hunspell-de-ch-frami hunspell-de-de-frami hunspell-en-au hunspell-en-ca hunspell-en-gb hunspell-en-za hunspell-it hunspell-pt-br hunspell-pt-pt hunspell-si hyphen-de hyphen-en-gb hyphen-fr hyphen-it hyphen-pt-br hyphen-pt-pt libreoffice-help-de libreoffice-help-en-gb libreoffice-help-es libreoffice-help-fr libreoffice-help-it libreoffice-help-pt libreoffice-help-pt-br libreoffice-help-zh-cn libreoffice-help-zh-tw libreoffice-l10n-de libreoffice-l10n-en-gb libreoffice-l10n-en-za libreoffice-l10n-es libreoffice-l10n-fr libreoffice-l10n-it libreoffice-l10n-pt libreoffice-l10n-pt-br libreoffice-l10n-zh-cn libreoffice-l10n-zh-tw && sudo apt install -y ttf-mscorefonts-installer

После завершения операции запустить с правами суперпользователя Midnight Commander (если его нет в системе, то sudo apt install mc) sudo mc или менеджер файлов (команда зависит от установленной графической оболочки): sudo thunar, sudo caja, sudo nemo

Перейти по пути /usr/share/fonts/truetype  и удалить папки, ранее содержащие удалённые шрифты:






Должны остаться папки, содержащие только нужные шрифты:


Из папки msttcorefonts распакованного вами архива lm20.tar.gz содержащиеся в ней файлы перенести в папку

 /usr/share/fonts/truetype/msttcorefonts

Аналогично поступить с папкой noto.


Установить palemoon в Linux Mint 20

Для установки браузера palemoon в Linux Mint 20 выполните в терминале (команда вводится в одну строку):

wget http://download.opensuse.org/repositories/home:stevenpusser/xUbuntu_20.04/Release.key && sudo apt-key add - < Release.key && sudo sh -c "echo 'deb http://download.opensuse.org/repositories/home:/stevenpusser/xUbuntu_20.04/ /' >> /etc/apt/sources.list.d/palemoon.list" && sudo apt update && sudo apt install -y palemoon


Добавление браузера Chromium в Linux Mint 20

В примечаниях к релизу Linux Mint 20 указано, что в источниах приложений браузер Chromium отсутствует. Данное обстоятельство связано с изменением механизма установки браузера Chromium в Ubuntu 20.04

Для установки браузера Chromium необходимо воспользоваться неофициальным PPA от salarcot895, предоставляющим варианты beta и dev.

  Важно!  

Перед установкой chromium-beta создайтев каталоге /etc/apt/preferences.d файл saiarcot895-chromium-beta.pref  (под правами root)  с текстом:

Package: *
Pin: release o=LP-PPA-saiarcot895-chromium-beta
Pin-Priority: 800

Перед установкой chromium-dev создайте в каталоге /etc/apt/preferences.d
файл saiarcot895-chromium-dev.pref  (под правами root)  с текстом:

Package: *
Pin: release o=LP-PPA-saiarcot895-chromium-beta
Pin-Priority: 800


Добавить PPA и установить браузер chromium-beta:

sudo add-apt-repository -y ppa:saiarcot895/chromium-beta && apt update && sudo apt install -y chromium-browser

Добавить PPA и установить браузер chromium-dev:

sudo add-apt-repository -y ppa:saiarcot895/chromium-dev && apt update && sudo apt install -y chromium-browser


Ещё одним вариантом является установка "разгуленного" chromium (выполнить ряд команд в терминале):

echo 'deb http://download.opensuse.org/repositories/home:/ungoogled_chromium/Ubuntu_Focal/ /' | sudo tee /etc/apt/sources.list.d/home:ungoogled_chromium.list

sudo wget -nv https://download.opensuse.org/repositories/home:ungoogled_chromium/Ubuntu_Focal/Release.key -O "/etc/apt/trusted.gpg.d/home:ungoogled_chromium.asc"

sudo apt update

sudo apt remove --purge chromium-browser

sudo apt install ungoogled-chromium

Замена команды полного удаления на удаление в Корзину в скриптах (сценариях) на bash


В ранее написанных для собственных нужд сценариях для удаления содержания каталога применялась команда rm. Однако никто не гарантирован от ошибок. Результатом подобных ошибок, например в определении переменной указания каталога, может стать почти полное удаление файлов и каталогов профиля пользователя. В итоге на выходе можно получить "самый чистый профиль в мире" с полной потерей всего "нажитого непосильным трудом".

Но при тестировании сценария, содержащего команду

gvfs-trash -f путь_к_каталогу/*

в Linux Mint 20 отобразилось сообщение:

This tool has been deprecated, use 'gio trash' instead

Несмотря на то, что при выполнении указанной выше команды содержимое каталога, всё-таки, было в Корзину помещено, рекомендуется изменить команду на подобную указанной ниже:

gio trash -f /home/user/folder/*

Параметр -f (или --force) указывает на игнорирование несуществующих файлов или "никогда не спрашивать".

Также в команде gio trash возможно применение --empty, что соответствует "очистить Корзину".

пятница, 5 июня 2020 г.

Пакетное преобразование webp в png


Пакетное преобразование осуществляется в процессе работы сценария. Результатом является преобразование файлов webp в png с удалением исходных файлов webp.

Приводится часть исполняемого сценария sh:

#!/bin/bash
sm1=...
count=`find $sm1 -type f | wc -l`
if [ $count -eq 0 ];
 then
   :
 else
   for a in $sm1/Картинки/*.webp; do
     old=$IFS
     IFS="\n"
     ffmpeg -i "$a" "${a[@]/%webp/png}"
     IFS=$old
   done
   ... другие команды
   find $sm1/Картинки -name '*.webp' -delete
exit

воскресенье, 17 мая 2020 г.

Преобразование webp в png через меню Thunar


В сети имеются страницы, с которых сохранение размещённых на них изображений возможно только в формате webp. Долгое время с этим приходилось мириться, открывая сохранённые файлы webp в хромоподобном браузере и через снимок экрана сохраняя выделенную часть в файл png.

Вчера при чтении одной из публикаций в контекстовой рекламе на странице случайно обнаружилась ссылка на материал о преобразовании webp в Linux.

Установите пакет:  sudo apt install webp

В публикации приводилась терминальная команда:

 dwebp example.webp -o example.png

но для своих нужд было принято решение использовать эту команду через правое контекстное меню Thunar ( пример настройки ):



В условиях появления укажите *.webp и файлы изображений:


К сожалению, "красиво" сделать не получилось:

1) при преобразовании файла file.webp получается файл file.webp.png;

2) преобразовать несколько файлов одновременно невозможно, только по одному файлу за одно действие.

Но, полагаю, с этими недостатками можно смириться.





пятница, 8 мая 2020 г.

Создание резервных копий перед автоматическим выключением компьютера по расписанию


Выполнение сценариев по условиям "если текущее время больше, чем" и "запущен ли процесс Linux". Приводимые ниже сценарии (скрипты bash) создавались для своих нужд с целью автоматизации процессов.

Условия задачи

1. После создания резервных копий данных выключить компьютер.

2. Если создание резервных копий данных выполнено до 19 часов, то выключить компьютер, если нет – не выключать. Во втором случае компьютер будет выключен по расписанию.

3. Выключить компьютер по расписанию, если резервные копии данных уже созданы. В противном случае – пропустить задание выключения и компьютер выключит сценарий создания резервной копии данных.

Создание резервных копий и выключение компьютера

Резервные копии создаются через очередь заданий rclone, оформленная скриптом sh, который также выполняется по расписанию

01 18 * * * /home/minter/Tools/scripts/backup.sh

Пример:

#!/bin/bash
rclone sync ...
rclone sync ...
...
exit

Как выключить компьютер после завершения очереди заданий читайте здесь.

Выключить компьютер по расписанию

В crontab (пользовательское задание cron) имеется задание выключения компьютера ежедневно в 19 часов 5 минут:

05 19 * * * sudo /sbin/poweroff

Решение задачи

1. Изменение сценария создания резервных копий данных и выключения компьютера. При этом сценарий (скрипт bash) должен учитывать, что:

а) резервные копий данных созданы до 19 часов, поэтому выключение компьютера будет произведено по пользовательскому заданию cron выключения компьютера в 19:05;

б) резервные копий данных созданы после 19 часов. Так как при выполнении задания "выключить компьютер по расписанию" было установлено, что создание резервных копий данных не завершено, то команда на выключение компьютера подана не была. Поэтому после создания резервных копий данных компьютер необходимо выключить.

Устанавливается "пороговое значение" в 18 часов и производится запрос текущего времени в часах.Если текущее время в часах меньше или равно 18, то никаких действий не предпринимается. Если текущее время в часах больше 18, то выполняется выключение компьютера.

В сценарии создания резервных копий данных и выключения компьютера строка sudo /sbin/poweroff удаляется, а вместо неё вписывается:

b=18
time=`date '+%H'`

if [ $time -le $b ]
 then
   :
 else
   sudo /sbin/poweroff
fi
exit

символ  :  соответствует команде "ничего не делать".

2. Изменение задания выключения компьютера по расписанию. При этом задание должно учитывать, что к моменту его выполнение создание резервных копий данных ещё продолжается.

Задание cron

05 19 * * * sudo /sbin/poweroff

меняется на задание выполнения сценария

05 19 * * * /home/minter/Tools/scripts/shutdown.sh

Сценарий проверяет наличие выполняемого процесса backup.sh  Если такой процесс выполняется, то есть имеется его pid, то не предпринимается никаких действий. Если такого процесса не найдено, то будет выполнена команда выключения компьютера  sudo /sbin/poweroff

#!/bin/bash
if pgrep 'backup.sh'; then
 :
else
 sudo /sbin/poweroff
fi
exit