понедельник, 22 июля 2019 г.

"Мягко" запустить autokey через процесс sh


Давно пользуюсь данным инструментом, который позволяет гибко настроить запуск необходимых операций через комбинации клавиш (подробности). Установку можно осуществить через команду терминала:

sudo apt install -y autokey-gtk

Однако с некоторых пор иногда случайным образом возникает ситуация с выводом сообщения на экран, что autokey-gtk уже запущен (в настройках программы установлена галочка в поле "Automatically start Autokey at login"), pid этого процесса имеется, но программа не отвечает. Соответственно), отображающий работу программы значок в системном лотке (на панели, в трее) не появляется, а назначенные комбинации клавиш не работают.

Возникла идея осуществить "мягкий" запуск autikey-gtk, то есть запуск программы с задержкой. Попытка использовать скрипт sh, запускающий autokey-gtk, а потом выполняющий команду exit, привела лишь к частичному успеху. Все команды и паузы выполняются, но команда exit не проходит:

#!/bin/bash
sleep 65
autokey-gtk
sleep 10
exit

Примечание. Задержка перед запуском в 65 секунд выбрана из соображений запуска программы после отработки системной операции ротации логов работы, которая выполняется через 60 секунд после старта системы. Это можно наблюдать в диспетчере задач, если запускать его после прорисовки всех элементов рабочего стола. Смотреть sh -c /proc/self/fd/9

В диспетчере задач видно, что autokey.sh остался активным:


Первоначальным решением проблемы явилось создание скрипта autokey-stop.sh, "убивающего" процесс autokey.sh, и также стартующего с задержкой. То есть в "Настройки – Сеансы и запуск –  Автозапуск" (xfce) имеется 2 задачи:


Auto Keys имеет команду запуска скрипта autokey.sh –

     /home/user/scripts/autokey.sh

Auto Keys stop proc имеет команду удаления скрипта autokey.sh –

     sh -c "sleep 75 && /home/user/scripts/autokey-stop.sh

Имеется в виду, что user – это пользователь системы с логином user.

Листинг autokey.sh :

#!/bin/bash
sleep 65
autokey-gtk

Листинг autokey-stop.sh :

#!/bin/bash
OUTPUT="$(pgrep autokey.sh)"
kill -15 ${OUTPUT}
exit

Примечание. Команда pidof autokey.sh  не возвращает pid процесса autokey.sh, так как в понимании системы autokey.sh не является программой.

Затем, как оказалось, имеется способ завершения процесса autokey.sh без привлечения второго скрипта. Для этого после команды autokey-gtk необходимо добавить символ &.

Далее при просмотре каталога с настройками ~/.config/autokey, был найден файл протокола работы autokey.log Содержащиеся в нём записи касались всех сеансов работы autokey-gtk, начиная с момента установки в 2017 году (при каждом запуске autokey в файл добавлялись новые записи). Так как для анализа работы программы достаточно протокола за текущий день, а старые записи для меня являются малоинформативными, то в целях избежания его разрастания было принято решение об удалении autokey.log перед запуском autokey-gtk. При запуске программы файл autokey.log будет создан автоматически.

В результате скрипт autokey.sh принял вид:

#!/bin/bash
sleep 65
rm /home/user/.config/autokey/autokey.log
autokey-gtk &
sleep 10 && exit

Примечание. 10 секундная пауза была введена для "перестраховки" из соображений того, чтобы гарантировано запустился autokey-gtk. В принципе, можно обойтись и без паузы. Про каталог user выше было указано, что это домашний каталог пользователя системы с логином user.

После отработки всех команд в диспетчере задач остаётся только процесс autokey-gtk

пятница, 12 июля 2019 г.

Установка WineHQ одной командой в Ubuntu и Linux Mint

В подавляющем большинстве случаев версия wine 1.6 не в состоянии обеспечить требуемое функционирование запускаемых в Linux файлов Windows. Более приемлемым вариантом является установка WineHQ.

На официальном ресурсе WineHQ приводятся необходимые команды, но более удобным является выполнение всех этих команд последовательно в составе одной терминальной команды c последующим запуском конфигуратора, который ещё установит необходимые компоненты.

WineHQ можно установить 2 вариантов stable и development

WineHQ stable для Ubuntu 16.04 и Linux Mint 18x

sudo dpkg --add-architecture i386 && wget -nc https://dl.winehq.org/wine-builds/winehq.key && sudo apt-key add winehq.key && sudo apt-add-repository 'deb https://dl.winehq.org/wine-builds/ubuntu/ xenial main' && sudo apt update && sudo apt install --install-recommends winehq-stable && winecfg

WineHQ development для Ubuntu 16.04 и Linux Mint 18x

sudo dpkg --add-architecture i386 && wget -nc https://dl.winehq.org/wine-builds/winehq.key && sudo apt-key add winehq.key && sudo apt-add-repository 'deb https://dl.winehq.org/wine-builds/ubuntu/ xenial main' && sudo apt update && sudo apt -y install --install-recommends winehq-devel && winecfg

WineHQ stable для Ubuntu 18.04 и Linux Mint 19x

sudo dpkg --add-architecture i386 && wget -nc https://dl.winehq.org/wine-builds/winehq.key && sudo apt-key add winehq.key && sudo apt-add-repository 'deb https://dl.winehq.org/wine-builds/ubuntu/ bionic main' && sudo apt update && sudo apt install --install-recommends winehq-stable && winecfg

WineHQ development для Ubuntu 18.04 и Linux Mint 19x

sudo dpkg --add-architecture i386 && wget -nc https://dl.winehq.org/wine-builds/winehq.key && sudo apt-key add winehq.key && sudo apt-add-repository 'deb https://dl.winehq.org/wine-builds/ubuntu/ bionic main' && sudo apt update && sudo apt install --install-recommends winehq-devel && winecfg

После автоматического запуска конфигуратора Wine будет предложено установить дополнительные компоненты:




Примечание. Wine Gecko может потребоваться установить 2 раза.

После завершения всех операций будет запущена графическая оболочка winecfg.


Следует отметить, что по умолчанию секция Wine в меню приложений не отображается. Как пишут, она станет отображаться только после первой установки приложения Windows через соответствующую приложению программу установки.

После установки WineHQ в домашнем каталоге останется файла winehq.key  В принципе, его можно удалить.

Чтобы найти необходимое приложение Windows перейдите в скрытый каталог

~/.wine/drive_c


Для запуска самодостаточного приложения Windows в виде одного файла, например winbox.exe от роутера MikroTik через правое меню мыши сопоставьте файлу wine:


Запущенный через wine Winbox может отображаться шрифтом, не слишком удобным для комфортного восприятия.


В этом случае запустите через терминал winecfg и в секции "Графика" увеличьте значение разрешения экрана.



Интерфейс Winbox будет отображаться немного лучше:


Настройки отображения Winbox расположены в скрытом каталоге. Ниже приводится пример для пользователя Linux с именем manager:

/home/manager/.wine/drive_c/users/manager/Application Data/Mikrotik/Winbox/


Установка браузера Brave одной командой в Ubuntu и Linux Mint


Иногда полезно пользоваться несколькими браузерами, каждый из которых настроен для серфинга по своему набору ресурсов Интернет. Особенно это может быть удобным в случае использования нескольких адресов электронной почты Gmail, Яндекс или Mail.Ru

Браузер Brave поставляется в 4-х вариантах: стабильная версия, бета, developer и сборки nightly. Однако для его установки необходимо вводить определённые терминальные команды. Ниже эти команды приводятся в наборе команд в 1 строку. Так как публикация пишется для версии Linux Mint 18.3, соответствующей Ubuntu 16.04, то использовано кодовое имя Ubuntu 16.04, которым является xenial. Для Ubuntu 18.04 и Linux Mint 19х это будет bionic. Искать в строке, которая начинается с https. Например:

https://brave-browser-apt-release.s3.brave.com/ xenial main" или

https://brave-browser-apt-release.s3.brave.com/ bionic main"


curl -s https://brave-browser-apt-release.s3.brave.com/brave-core.asc | sudo apt-key --keyring /etc/apt/trusted.gpg.d/brave-browser-release.gpg add - && echo "deb [arch=amd64] https://brave-browser-apt-release.s3.brave.com/ xenial main" | sudo tee /etc/apt/sources.list.d/brave-browser-release-xenial.list && sudo apt update && sudo apt install -y brave-browser

curl -s https://brave-browser-apt-beta.s3.brave.com/brave-core-nightly.asc | sudo apt-key --keyring /etc/apt/trusted.gpg.d/brave-browser-beta.gpg add - && echo "deb [arch=amd64] https://brave-browser-apt-beta.s3.brave.com/ xenial main" | sudo tee /etc/apt/sources.list.d/brave-browser-beta-xenial.list && sudo apt update && sudo apt install -y brave-browser-beta

curl -s https://brave-browser-apt-dev.s3.brave.com/brave-core-nightly.asc | sudo apt-key --keyring /etc/apt/trusted.gpg.d/brave-browser-dev.gpg add - && echo "deb [arch=amd64] https://brave-browser-apt-dev.s3.brave.com/ xenial main" | sudo tee /etc/apt/sources.list.d/brave-browser-dev-xenial.list && sudo apt update && sudo apt install -y brave-browser-dev

curl -s https://brave-browser-apt-nightly.s3.brave.com/brave-core-nightly.asc | sudo apt-key --keyring /etc/apt/trusted.gpg.d/brave-browser-nightly.gpg add - && echo "deb [arch=amd64] https://brave-browser-apt-nightly.s3.brave.com/ xenial main" | sudo tee /etc/apt/sources.list.d/brave-browser-nightly-xenial.list && sudo apt update && sudo apt install -y brave-browser-nightly

Для установки всех 4-х вариантов используйте команду:

curl -s https://brave-browser-apt-release.s3.brave.com/brave-core.asc | sudo apt-key --keyring /etc/apt/trusted.gpg.d/brave-browser-release.gpg add - && echo "deb [arch=amd64] https://brave-browser-apt-release.s3.brave.com/ xenial main" | sudo tee /etc/apt/sources.list.d/brave-browser-release-xenial.list && curl -s https://brave-browser-apt-beta.s3.brave.com/brave-core-nightly.asc | sudo apt-key --keyring /etc/apt/trusted.gpg.d/brave-browser-beta.gpg add - && echo "deb [arch=amd64] https://brave-browser-apt-beta.s3.brave.com/ xenial main" | sudo tee /etc/apt/sources.list.d/brave-browser-beta-xenial.list && curl -s https://brave-browser-apt-dev.s3.brave.com/brave-core-nightly.asc | sudo apt-key --keyring /etc/apt/trusted.gpg.d/brave-browser-dev.gpg add - && echo "deb [arch=amd64] https://brave-browser-apt-dev.s3.brave.com/ xenial main" | sudo tee /etc/apt/sources.list.d/brave-browser-dev-xenial.list && curl -s https://brave-browser-apt-nightly.s3.brave.com/brave-core-nightly.asc | sudo apt-key --keyring /etc/apt/trusted.gpg.d/brave-browser-nightly.gpg add - && echo "deb [arch=amd64] https://brave-browser-apt-nightly.s3.brave.com/ xenial main" | sudo tee /etc/apt/sources.list.d/brave-browser-nightly-xenial.list && sudo apt update && sudo apt install -y brave-browser brave-browser-beta brave-browser-dev brave-browser-nightly

Дополнительная настройка клиента BOINC

Принимая участие в проектах BOINC пришлось столкнуться с тем, что в стандартном отображении клиента нет всей информации, которую хотелось бы получить. Так, например, когда работает процесс, занимающий все доступные ядра процессора, то не отображается состояние задач от других проектов. К тому же в стандартном отображении не содержатся все доступные настройки клиента, касающиеся производства вычислений.

Примечание. В пользовательских дистрибутивах Linux, основанных на deb, таких как Ubuntu и Linux Mint, установка клиента и менеджера управления клиентом осуществляется одной терминальной командой:

sudo apt install -y boinc

Например, задания проекта Cosmology@Home одновременно используют все доступные ядра (если не настроено другое использование вычислений). При этом не отображается ни сколько заданий находится в очереди на обработку, ни заданий от других проектов. При клике по стрелочке справа в строке "Задания" ничего не происходит:


В этом случае можно вызвать в меню клиента "Вид – Полный вид" и получить дополнительную информацию:


Также по командам верхнего меню можно настроить дополнительные настройки вычислений, а также узнать используемое задачами дисковое пространство:


Для возврата в обычное отображение менеджера BOINC также использовать меню "Вид", в котором выбрать "Упрощённый вид".