про свой опыт решения некоторых проблем и использования ряда возможностей ОС и приложений
понедельник, 27 ноября 2023 г.
Перекодировать flac в mp3
суббота, 25 ноября 2023 г.
Запросы пользователю на монтирование дисков в папки его профиля
Про автоматическое монтирование дисков при старте системы имеется достаточное количество материалов. Но в большинстве случаев такие решения сводятся к внесению изменений в файл /etc/fstab. У меня же возникла необходимость выдачи запроса на монтирование дисков. При положительном ответе "да" диски будут смонтированы, при отрицательном "нет" монтирование производится не будет.
Обусловлено личными потребностями, так как упоминаемые диски могут быть временно изъяты из компьютера и при обычном автомонтировании через /etc/fstab система будет на некоторое время сильно задумываться, пока не сообразит, что упоминаемых дисков не имеется и загрузка может быть продолжена.
Для удобства целесообразно создать стартовый сценарий, например, start.sh, который будет автоматически выполняться при каждом входе пользователя в систему. То есть, создать файл и установить его в автозагрузку. В Linux xfce это настраивается в Система/Сеансы и запуск, а в Cinnamon – Параметры/Автозагрузка.
#!/bin/bash
...
...
exit
Создаются 2 файла sh, которые собственно и командуют монтирование дисков. При этом каждый диск у меня идетифицируется не как /dev/sd... , а по своему uuid. Связано с тем, что при обратной установке шлейфы могут быть воткнуты не туда где были раньше, то есть порядок определения дисков по /dev/sd... может быть перепутан. А так как мои диски монтируются в папки AG-2 и AN-2 моего домашнего каталога, то не хочется быть удивлённым тому, что содержание данных папок потом будет не таким, как было раньше. uuid дисков определяется через команду
sudo blkid
Для 1-го диска файл mount-g2.sh
#!/bin/bash
mount --uuid="c57e4566-84ed-4d54-8cd4-1e0eaeac5b4e" /home/minter/AG-2 &
exit
Для второго диска файл mount-n2.sh
#!/bin/bash
mount --uuid="b72b0384-9782-4eaf-9606-ca48469ef6da" /home/minter/AN-2 &
exit
Поскольку монтирование осуществляется через sudo, то имеет смысл внести в файл /etc/sudoers записи, в соответствии с которыми пароль для sudo запрашиваться не будет.
sudo xed /etc/sudoers и внести строки (пример):
minter ALL=NOPASSWD: /home/minter/Tools/scripts/modules/mount-g2.sh
minter ALL=NOPASSWD: /home/minter/Tools/scripts/modules/mount-n2.sh
minter – это мой логин в системе.
Создаются 2 файла запросов на монтирование каждого из дисков. Пример приводится для 1-го диска (для второго будет аналогично):
#!/bin/bash
log=/home/minter/Документы/Reports/$(date '+%d').txt
zenity --width=150 --height=50 --question --timeout=10 --title="Запрос" --text="\nМонтировать G-2? \n$task" \
--ok-label="Нет" \
--cancel-label="Да"
answer=$?
if [ "$answer" -eq 0 ]; then
:
echo "$(date '+%H.%M.%S') – G-2 not mounted" >> $log
echo "0" >> /tmp/mount1.txt
elif [ "$answer" -eq 1 ]; then
sudo /home/minter/Tools/scripts/modules/mount-g2.sh
echo "$(date '+%H.%M.%S') – G-2 mounted" >> $log
echo "1" >> /tmp/mount1.txt
elif [ "$answer" -eq 5 ]; then
sudo /home/minter/Tools/scripts/modules/mount-g2.sh
echo "$(date '+%H.%M.%S') – G-2 mounted" >> $log
echo "1" >> /tmp/mount1.txt
fi
exit 0
Если не нужно вести протокола и записывать результат "смонтировано" или "не смонтировано" в файлы /tmp/mount...txt, то строку log= и начинаются с echo строки можно удалить. Мне они нужны для протоколирования отработки стартового сценария в целом, а также процедур по автоматической очистке Корзин на монтируемых дисках с удалением из них всех объектов (папки и файлы) старше 3 суток.
При появлении окна запроса система ожидает решения пользователя 10 секунд. Если за это время ничего не было выбрано, то система будет считать, что пользователь выбрал "Да", то есть монтировать и, соответственно перейдёт к команде монтирования диска, то есть
sudo /home/minter/Tools/scripts/modules/mount-g2.sh
Если выбрано "Нет", то монтирование диска не производится.
В start.sh вносятся команды с запросами монтирования с интервалом между ними 5 секунд и 5-секундным интервалом после запроса на монтирование 2-го диска. Интервал в 5 секунд необходим для того, чтобы окно запроса на монтирование 2-го диска не перекрывало окно запроса на монтирование 1-го диска. Вспомним, что система ожидает решения пользователя 10 секунд.
sleep 5
$do/modules/querry-mount-g2.sh
sleep 5
$do/modules/querry-mount-n2.sh
sleep 5
И, собственно, результат:
четверг, 23 ноября 2023 г.
Создание в меню кнопки запуска для приложения Cozy Drive
Что такое облако Cozy на русском можно прочитать здесь.
Откройте текстовый редактор и впишите в него следующее (пример):
[Desktop Entry]
Name=Cozy Drive
Comment=Cozy Drive cloud client
Exec=/home/minter/Tools/Cozy-Drive-3.39.0-x86_64.AppImage
Terminal=false
Type=Application
Icon=emblem-cozy-drive-1
Categories=Network;
В строке Exec= указывается полный путь файла AppImage.
В строке Icon= указывается имя значка для приложения.
Сохраните этот файл с расширением .desktop
Переместите его в папку вашего профиля ~/.local/share/applications
В свойствах файла установите права на исполнение как программы. Для xfce можно дополнительно указать, что данный файл является доверенным.
Как это выглядит у меня в папке ~/.local/share/applications~/.local/share/application и в меню:
Набор из трёх эмблем для папок (размеры 16, 22, 24, 32, 48) можно взять здесь.
Создайте две папки в своём профиле:
mkdir /home/ваш_профиль/.local/share/icons
mkdir /home/ваш_профиль/.local/share/icons/gnome
Поместите содержимое скачанного архива в папку /home/ваш_профиль/.local/share/icons/gnome
Скопируйте в папку gnome своего профиля 2 нужных файла:
cp /usr/share/icons/gnome/icon-theme.cache /home/ваш_профиль/.local/share/icons/gnome
cp /usr/share/icons/gnome/index.theme /home/ваш_профиль/.local/share/icons/gnome
Выполните в терминале обновление кэша значков для своего профиля:
gtk-update-icon-cache /home/ваш_профиль/.local/share/icons/gnome/