понедельник, 20 мая 2024 г.

Работа с несколькими аккаунтами MEGA

Как одним клиентом синхронизации MEGA работать с несколькими аккаунтами независимо друг от друга

Ранее уже рассматривался способ одновременной эксплуатации клиентов синхронизации для облака MEGA. Но здесь описан более простой приём.

Известно, что в Linux настройки для работы с учётной записью MEGA клиент хранит по пути 
/home/user/.local/share/data/Mega Limited/MEGAsync 
– где под user следует понимать Ваш домашний каталог. Чтобы увидеть это в файловом менеджере включите в нём показ скрытых файлов.

В Windows расположение этих данных примерно следующее:

C:\Users\user\AppData\Local\Mega Limited\MEGAsync (user – пользователь системы) 

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


Закройте клиент синхронизации. Скопируйте содержание папки MEGAsync в нужное место на вашем диске, в котором будут храниться настройки клиента MEGA для различных аккаунтов (создайте нужные папки заранее). Например, это можно сделать командой rsync. 

cd "/home/minter/.local/share/data/Mega Limited/MEGAsync"
rsync -azv --recursive * /home/minter/mega/M1 

В примере выше M1 является папкой, в которую были рекурсивно продублированы настройки синхронизации для первого аккаунта MEGA (содержание папки MEGAsync).

Для Windows, если не ошибаюсь, такой командой может быть:

Xcopy "C:\Users\user\AppData\Local\Mega Limited\MEGAsync" C:\Users\user\MegaConfig\Mega1\ /s /e

Удалите содержание папки MEGAsync, снова запустите клиент MEGA и настройте синхронизацию для другой учётной записи MEGA. Аналогично скопируйте сохранённые настройки и для второго своего аккаунта MEGA, например:

cd "/home/minter/.local/share/data/Mega Limited/MEGAsync"
rsync -azv --recursive * /home/minter/mega/M2 

Если у вас имеются ещё аккаунты MEGA, то сделайте для них то же самое.

Удалите папку MEGAsync со всем содержимым.

rm -fR "/home/minter/.local/share/data/Mega Limited/MEGAsync"

Создайте для каждой учётной записи свой скрипт (сценарий) запуска. Сохраните их как файлы sh (m1.sh, m2.sh или любые имена файлов на ваше усмотрение) с правом выполнения как программы. Примеры:

#!/bin/bash
ln -s /home/minter/Tools/mega/M1 "/home/minter/.local/share/data/Mega Limited/MEGAsync"
sleep 1
megasync
sleep 1
rm "/home/minter/.local/share/data/Mega Limited/MEGAsync"
exit

#!/bin/bash
ln -s /home/minter/Tools/mega/M2 "/home/minter/.local/share/data/Mega Limited/MEGAsync"
sleep 1
megasync
sleep 1
rm "/home/minter/.local/share/data/Mega Limited/MEGAsync"
exit

sleep 1 (заснуть на 1 секунду) можно не делать, если ваш жёсткий диск и система обладают достаточным быстродействием.

Для Windows командой создания символической ссылки на папку будет (пример):

mklink /D "C:\Users\user\AppData\Local\Mega Limited\MEGAsync" C:\Users\user\MegaConfig\Mega1

А сценарий запуска оформляется как файл bat примерно следующего содержания:

@echo off
mklink /D "C:\Users\user\AppData\Local\Mega Limited\MEGAsync" C:\Users\user\MegaConfig\Mega1
timeout /t 1 /nobreak
C:\Users\user\AppData\Local\MEGAsync\MEGAsync.exe
timeout /t 1 /nobreak
rmdir "C:\Users\user\AppData\Local\Mega Limited\MEGAsync"
exit

Смысл работы созданных сценариев запуска состоит в том, что для каждой папки с сохранёнными данными состояний и настроек синхронизаций MEGA при запуске сценария создаётся символическая ссылка на нужную папку. Сам же клиент MEGA будет "уверен" в том, что эти данные находятся по нужному пути, то есть в папке

/home/user/.local/share/data/Mega Limited/MEGAsync (Linux)

C:\Users\user\AppData\Local\Mega Limited\MEGAsync (Windows)

После остановки работы клиента (процесс megasync) созданная символическая ссылка удаляется.

Теперь можно проверить работу клиента синхронизации для своих нескольких аккаунтов MEGA.


Кнопка запуска скрипта в Linux

На рабочем столе создаётся значок запуска (xfce), либо кнопка запуска (Cinnamon), в которой указывается вызов сценария запуска. По умолчанию предлагается создать такую же кнопку в меню Прочие/Прочее (Cinnamon/xfce), с чем имеется смысл согласиться. После создания значка/кнопки запуска с рабочего стола его можно удалить Созданный значок запуска (кнопка запуска) расположен в папке ~/.local/share/applications и представляет из себя исполняемый файл .desktop, который можно редактировать в текстовом редакторе. Пример:

[Desktop Entry]
Name=M20
Exec=/home/minter/Tools/mega/m20.sh
Comment=
Terminal=false
PrefersNonDefaultGPU=false
Icon=emblem-megasync-sand-dark
Type=Application

Как пояснялось выше, значок/кнопка запуска будет отображаться в категории "Прочее" (xfce) или "Прочие" (Cinnamon). Для указания другой категории добавьте в файл строку Categories= , в которой после знака равенства укажите необходимые значения. Например, для "Разработка" (xfce) или "Программирование" (Cinnamon) это будет иметь вид Categories=GTK;Development; , а для категории "Интернет" – Categories=Network;

Если надо, чтобы кнопка отображалась по-русски, то добавьте строку Name[ru]= и после знака равенства напишите русский текст, например, Синхронизация с облаком (без кавычек).

воскресенье, 19 мая 2024 г.

Double Commander не открывает архивы rar

Раньше для открытия архивов rar в Double Commander достаточно было поместить файл libunrar.so или символическую ссылку на него в каталог /lib . Этот файл мной брался из портативной версии Double Commander.

Но в настоящее время такой приём не сработал. Double Commander продолжает указывать на отсутствие необходимого для выполнения операции компонента libunrar.so Для того, чтобы архивы rar открывались в Double Commander попробуйте установить libunrar.so.5 (unarchiver for .rar files (non-free version) - shared library) sudo apt install -y libunrar5 

После этой операции проверьте возможность открытия в файловом менеджере Double Commander архивов rar. 

среда, 15 мая 2024 г.

Ошибка rclone – invalid character '<' looking for beginning of value

Cегодня при попытке синхронизации локального каталога с облаком Mail.Ru, а также запросе состояния rclone about вывод окна терминала выдаёт ошибку, например, Failed to about: about call failed: invalid character '<' looking for beginning of value.

Как пишут на форуме rclone, имеющая место ситуация обусловлена слишком большим числом запросов к получателю, в результате чего он начинает их блокировать.

Для устранения неполадки при синхронизации примените опцию --tpslimit N, где N попробуйте указывать от 10 в сторону понижения, например, 

rclone sync --progress --tpslimit 10 источник получатель

Если при значении 10 всё заработает, то можно пробовать постепенно повышать значение N до 20. Конкретное значение вашей величины N, при которой достигается стабильная работа rclone, определите экспериментально.
 

пятница, 15 марта 2024 г.

Запланировать выключение компьютера через графическую форму

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


Указанное на рисунке выше третье значение +155 является результатом сложения чисел 60, 60, 35. То есть, оно является указанием значения в минутах ( для тех, кто не понял 😊 ).

Понятно, что после ввода в строку значения и последующего нажатия кнопки OK будет запланировано выключение компьютера "в" или "через". Если ничего не вводить и нажать ОК или нажать Отмена (пользователь передумал), или просто закрыть окно формы, то компьютер выключится через 1 минуту, так как будет выполнена команда shutdown без указания параметров. Но этого можно избежать, если после завершения работы формы будет произведена проверка на наличие введённого значения, то есть, чтобы файл не был пустым, например:


Собственно сам скрипт (исполняемый файл):

#!/bin/bash
zenity --width=220 --title "Когда выключить" --text="Ввод в формате xx:yy или + x\nПримеры ввода:\n23:59  = в 23 часа 59 минут.\n+15      = через 15 минут.\n+155   = через 2 часа 35 минут." --entry > /tmp/down.txt
if [[ ! -z $(cat /tmp/down.txt) ]] ; then
    shutdown $(cat /tmp/down.txt) &
  else
    zenity --width=150 --height=50 --info --timeout=5 --title="Уведомление" --text="Не указано время\nвыключения.\nЗадание не назначено."
fi
exit

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

--width= и --height= определяют ширину и высоту форм.

--timeout=5 указывает на интервал в 5 секунд, после которого форма уведомления автоматически будет закрыта. Если это не востребовано, то используйте:

#!/bin/bash
zenity --width=220 --title "Когда выключить" --text="Ввод в формате xx:yy или + x\nПримеры ввода:\n23:59  = в 23 часа 59 минут.\n+15      = через 15 минут.\n+155   = через 2 часа 35 минут." --entry > /tmp/down.txt
if [ -s /tmp/down.txt ]; then
    shutdown $(cat /tmp/down.txt) &
  else
    :
fi
exit

или так:

#!/bin/bash
zenity --width=220 --title "Когда выключить" --text="Ввод в формате xx:yy или + x\nПримеры ввода:\n23:59  = в 23 часа 59 минут.\n+15      = через 15 минут.\n+155   = через 2 часа 35 минут." --entry > /tmp/down.txt
if [[ ! -z $(cat /tmp/down.txt) ]] ; then
    shutdown $(cat /tmp/down.txt) &
fi
exit

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

✅    Добавление подтверждающих сообщений

Результат ввода значений можно отобразить информационным сообщением. Примеры:



Чтобы отображалось нужное сообщение, поскольку ввод может быть как в формате ЧЧ:ММ (часов минут), так и в формате +М (минут), то в скрипт вводится проверка введённого значения на наличие символа двоеточия (или +, но тогда следует поменять местами порядок выполнения по условию).

var=`cat /tmp/down.txt`
if [[ $var =~ ":" ]]; then
    zenity --width=150 --height=50 --info --timeout=7 --title="Подтверждение" --text="Компьютер будет\nвыключен в $(cat /tmp/down.txt)"
  else
    zenity --width=150 --height=50 --info --timeout=7 --title="Подтверждение" --text="Компьютер будет\nвыключен\n через $(cut -c2- <<< $(cat /tmp/down.txt)) мин."
fi

Если в считанном значении будет найден символ двоеточия, то результатом будет вывод сообщения о выключении ЧЧ:ММ. В ином случае будет выводиться сообщение о выключении через М минут. При выводе второго сообщения не отображается символ +, что обеспечивается инструкцией $(cut -c2- <<< $(cat /tmp/down.txt)). --timeout=7 указывает, что после 7 секунд выводимое сообщение автоматически исчезнет. Таким образом, листинг скрипта с информационными сообщениями имеет вид: 

#!/bin/bash
zenity --width=220 --title "Когда выключить" --text="Ввод в формате xx:yy или + x\nПримеры ввода:\n23:59  = в 23 часа 59 минут.\n+15      = через 15 минут.\n+155   = через 2 часа 35 минут." --entry > /tmp/down.txt
if [[ ! -z $(cat /tmp/down.txt) ]] ; then
    shutdown $(cat /tmp/down.txt) &
      var=`cat /tmp/down.txt`
      if [[ $var =~ ":" ]]; then
            zenity --width=150 --height=50 --info --timeout=7 --title="Уведомление" --text="Компьютер будет\nвыключен в $(cat /tmp/down.txt)"
         else
           zenity --width=150 --height=50 --info --timeout=7 --title="Уведомление" --text="Компьютер будет\nвыключен\n через $(cut -c2- <<< $(cat /tmp/down.txt)) мин."
      fi
  else
    zenity --width=150 --height=50 --info --timeout=5 --title="Уведомление" --text="Не указано время\nвыключения.\nЗадание не назначено."
fi
exit

✅   Чтобы сделать кнопку вызова созданного скрипта в главном меню создайте файл .desktop, например, Shutdown-at.dеsktop, который должен располагаться в скрытой папке вашего домашнего каталога (папки) ~/.local/share/applications и впишите в него:

[Desktop Entry]
Name=Shutdown-at
Exec=полный путь к файлу sh
Comment=Назначить время выключения
Terminal=false
PrefersNonDefaultGPU=false
Icon=укажите значок для кнопки, например, application-exit или system-shutdown
Type=Application
Categories=GTK;Development;

Если нужно, чтобы кнопка отображалась по-русски, то добавьте строку Name[ru]= , в которой укажите свой текст.

Строка Categries= не является обязательной. В данном случае она будет указывать на то, что кнопка будет отображаться в меню "Программирование" (Cinnamon) или "Разработка" (xfce).

Демонстрационный ролик (ниже или на Google Drive):

вторник, 12 марта 2024 г.

Монтирование облака с помощью rclone через форму выбора

Цель: смонтировать выбранное облако через rclone c помощью вызова кнопки запуска приложения.

Ожидаемый результат: в форме выбора желаемого облака оно будет смонтировано в указанную папку.

Несмотря на то что в источниках программного обеспечения Ubuntu или Linux Mint имеется программа графического управления работой rclone (rclone-browser) вопрос о монтировании выбранного облака можно решать через свой скрипт.

Пример:

В указанной форме в столбце выбора щелчком мыши выделяется желаемое облако и после нажатия кнопки OK оно будет смонтировано в папку для монтирования внешних ресурсов. К примеру, в рассматриваемом скрипте это папка /home/minter/Mount

Создаётся файл sh с содержанием (пример):

#!/bin/bash
zenity --width=50 --height=330 --list --title="Монтировать облако" --checklist --editable --column=" Выбор " --column " Имя по rclone " --text= "" "dropbox" "" "koofr" "" "pcloud" "" "mailru" "" "yandex" "" "mega"  "" "onedrive" "" "box.net" "" "jottacloud" > /tmp/mount.txt
rclone mount --vfs-cache-mode writes $(cat /tmp/mount.txt): /home/minter/Mount &
exit

Первые три строки определяют форму запроса (см. рисунок выше) и осуществляют запись выбранного облака в файл /tmp/mount.txt

Если ничего не будет выбрано или окно формы будет закрыто по кнопке закрытия окна, то ничего смонтировано не будет, так как создаваемый файл /tmp/mount.txt будет пустым, то есть будет иметь нулевой размер. 

Записи dropbox, koofr, pcloud ... в качестве примера. Вам необходимо будет указать имя подключения, которое было назначено при настройке ПО rclone. Эти имена можно подсмотреть в файле настроек rclone. Для этого откройте файл rclone.conf, который расположен по пути ~/.config/rclone в вашей домашней папке. Имя подключения будет указано в квадратных скобках, например, [kgm2]. 

Далее запускается собственно монтирование облака в выбранную папку. В данном примере это папка /home/minter/Mount  Имя подключения считывается из файла /tmp/mount.txt и подставляется в команду монтирования через $(cat /tmp/mount.txt):  Обратите внимание, что в команде подключения всего облака имя подключения должно завершаться двоеточием (синтаксис rclone). Следующий за командой монтирования символ & означает, что завершение выполнения монтирования облака ожидаться не будет и собственно скрипт sh прекратит свою работу. Активной останется только выполняемая команда 

rclone mount --vfs-cache-mode writes $(cat /tmp/mount.txt): /home/minter/Mount

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

☑  Дополнение. Как вариант, можно организовать автоматическое открытие папки Mount в новом окне файлового менеджера. При этом производится дополнительная проверка файла mount.txt на введённое значение. То есть, если нажимается кнопка "Отменить", то в файл mount.txt ничего записано не будет и не будет производиться ни попытки монтирования, ни автоматического открытия папки Mount. Пример:

#!/bin/bash
zenity --width=50 --height=330 --list --title="Монтировать облако" --checklist --editable --column=" Выбор " --column " Имя по rclone " --text= "" "dropbox" "" "koofr" "" "pcloud" "" "mailru" "" "yandex" "" "mega"  "" "onedrive" "" "box.net" "" "jottacloud" > /tmp/mount.txt
if [ -s /tmp/mount.txt ]; then
    rclone mount --vfs-cache-mode writes $(cat /tmp/mount.txt): /home/minter/Mount &
    #  ✔  Дать системе время, чтобы она успела смонтировать облако.
   
#  Цифру (число задержки в секундах) подберите экспериментально,
   
#   исходя из быстродействия вашей системы и скорости Интернет.
    sleep 2
❗ Выберите одну из двух следующих строк, исходя из применяемого Вами менеджера файлов (графического окружения)
    
nemo --tabs /home/minter/Mount & # для Cinnamon
    thunar /home/minter/Mount & # для xfce
  else
    :
fi
exit

Создайте в своей папке ~/.local/share/applications файл (например, mount.desktop), который будет являться кнопкой запуска скрипта sh  Пример:

[Desktop Entry]
Name=Mount cloud
Exec=полный_путь_до_скрипта_sh
Comment=Смонтировать Cloud
Terminal=false
PrefersNonDefaultGPU=false
Icon=имя_значка_под_которым_ кнопка_будет_отображаться
Type=Application
Categories=GTK;Development;
Name[ru]=Смонтировать облако

В приводимом примере кнопка отображается в меню "Разработка". Если нужно чтобы кнопка отображалась в "Прочие", то удалите эту строку.

Строка Name[ru]= указывает, что кнопка запуска должна отображаться не как "Mount cloud", а как "Смонтировать облако". Строка не обязательная и её также можно убрать.

Сделайте созданный файл исполняемым.

воскресенье, 10 марта 2024 г.

Предупреждение в окне терминала при обновлении списка пакетов после удаления FDM (Free Downloaf Manager)

После удаления программы FDM (Free Download Manager) при очередном ручном обновлении источников приложений sudo apt update в окне терминала появилась запись:

 https://debrepo.freedownloadmanager.org/dists/bionic/InRelease: Ключ хранится в унаследованной связке ключей trusted.gpg (/etc/apt/trusted.gpg), подробности см. в разделе DEPRECATION в apt-key(8).

Процедура "лечения" известна и сводится к нескольким действиям.

Выполните команду sudo apt-key list и найдите запись, относящуюся к этому ПО. Скопируйте последние 8 цифр (см. рисунок ниже).

Выполните команду sudo apt-key del 093B2149 (цифры указываются без пробела).

При удалении FDM запись об источнике этого ПО может остаться нетронутой. Откройте папку /etc/apt/sources.list.d  Если в ней присутствует файл  freedownloadmanager.list , то его можно удалить:  sudo rm /etc/apt/sources.list.d/freedownloadmanager.list 

При запуске sudo apt update указанное выше сообщение отображаться не должно.

вторник, 5 марта 2024 г.

Склеить файл, разрезанный при помощи split, в терминале без указания терминальной команды

В данной публикации рассматривается обратная операция склеить файл, который был разрезан на части посредством терминальной команды split. Несмотря на выполнение команды именно в терминале от пользователя потребуется только пару раз щёлкнуть кнопкой мыши. 

 Создайте исполняемый файл sh с содержанием:

#!/bin/bash
echo " "
echo " "
echo "     Выберите папку с исходными файлами,"
echo "     имена которых начинаются на x..."
echo " "
echo " "
sleep 3
dir=$(zenity --file-selection --directory)
zenity --width=280 --question --title "Имя файла" --text="Укажите полное имя склеиваемого файла,\nвключая его расширение, например:\n\nХудожественный фильм.mkv или\nДокументальная телепередача.mp4\n $task" \
--ok-label="Да" \
--cancel-label="Нет"
answer=$?
if [ "$answer" -eq 0 ]; then
    zenity --width=100 --title "Ввод текста" --text "Ввод имени файла с расширением:" --entry > /tmp/output.txt
      elif [ "$answer" -eq 1 ]; then
      > /tmp/output.txt
      elif [ "$answer" -eq 5 ]; then
      > /tmp/output.txt
fi
if [ -s /tmp/output.txt ]; then
    cd "$dir"
    echo "     Производится склейка частей"
    echo "     в файл с указанным именем."
    echo " "
    echo "     По завершении процесса Вы получите"
    echo "     сообщение в этом же окне."
    cat x* > "$dir/$(cat /tmp/output.txt)"
    find "$dir" -maxdepth 1 -name 'x*' -exec rm {} \;
    echo " "
    echo " "
    echo "     Процесс успешно завершён."
    echo "     Исходные файлы х... удалены."
    echo " "
    echo " "
    sleep 7
    xdg-open "$dir" &
  else
    echo " "
    echo "     Вы не указали имя файла."
    echo " "
    sleep 3
fi
rm /tmp/output.txt
exit

В процессе работы сценария (скрипта bash) отображаются две формы запросов:



C вариантами ответов "Да" и "OK" всё понятно. В результате выполнения указанных выше форм создаётся файл /tmp/output.txt , содержащий имя выходного файла с его расширением.

Если же выбрано "Нет" в первой форме или "Отменить" во второй, либо нажата кнопка закрытия окна запроса, то также создаётся файл /tmp/output.txt , но без какого-либо содержания. То есть, с точки зрения его наполнения он является пустым.

Далее при помощи инструкции if [ -s /tmp/output.txt ] файл анализируется на наличие в нём содержания. Если он признаётся как "не пустой", то в выбранной в самом начале папке содержание всех файлов, имена которых начинаются на букву x, копируются в файл, имя которого считывается из файла /tmp/output.txt  По завершении процесса исходные файлы x... удаляются и в сопоставленном приложении (как правило, файловом менеджере) открывается папка со склеенным файлом.

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

При удалении исходных файлов используется инструкция maxdepth 1, которая указывает скрипту не искать файлы во вложенных папках, ограничившись верхним уровнем указываемого пути.

Если файл признаётся как "пустой", то никаких действий не производится, а просто отображается сообщение о том, что имя файла не указано.

После этого производится удаление /tmp/output.txt и работа скрипта завершается с автоматическим закрытием окна терминала.

После создания скрипта sh создайте для него кнопку запуска для его вызова из меню, например,

xed /home/minter/.local/share/applications/join.desktop

и впишите в него следующее:

[Desktop Entry]
Name=Join
Exec=/home/minter/Tools/scripts/modules/join.sh
Comment=
Terminal=true
PrefersNonDefaultGPU=false
Icon=emblem-plus
Type=Application
Categories=GTK;Development;
Name[ru]=Склеить файлы

В строке Exec= указывается полный путь до созданного файла sh

Icon= указывает на значок, под которым эта кнопка запуска будет отображаться в меню.

Categories=GTK;Development; означает, что кнопка будет расположена в меню "Программирование" в Cinnamon или "Разработка" в xfce. Если эту строку убрать, то кнопка будет расположена в меню "Прочие" в Cinnamon или "Прочее" в xfce.

 Name[ru]=Склеить файлы является необязательной строкой, указывающей на то, что кнопка должна отображаться не под именем Join, а под именем "Склеить файлы".

Перейдите в каталог applications

xdg-open /home/user/.local/share/applications

(user – это ваша домашняя папка) и в свойствах созданной кнопки запуска в разделе "Права" укажите, что его можно исполнять как программу. В Cinnamon он будет отображён как файл Склеить файлы без расширения, а в xfce как файл Join.desktop  Чтобы в файловом менеджере Thunar вместо значка шестерёнки отображался значок, указанный в строке Icon= в свойствах файла перейдите в раздел "Значок запуска" и поставьте галочку в поле "Установить этот файл как доверенный".

понедельник, 4 марта 2024 г.

Добавить своё фоновое изображение в системные фоновые рисунки Linux Mint

В Linux Mint Cinnamon через правое контекстное меню "Изменить фон рабочего стола" можно добавить своё фоновое изображение, нажав на кнопку + в левом нижнем углу окна. Но своё фоновое изображение можно добавить и в стандартный набор поставки Linux Mint. В данной заметке показано как добавить своё фоновое изображение в раздел Linux Mint.

При указании фонового изображения рабочего стола Linux Mint 21.3 в левом столбце окна с перечислением фоновых рисунков отображены разделы, из которых можно выбрать фоновый рисунок: Linux Mint, Vanessa, Vera, Victoria, Virginia, Изображения. Чтобы добавляемое фоновое изображение отобразилось в каком-либо разделе необходимо осуществить два действия: добавить своё изображения в нужную папку и дополнить соответствующую запись в файл настроек.

Добавляю своё фоновое изображение файл Orion,jpg в раздел Linux Mint:

sudo cp /home/minter/Orion.jpg /usr/share/backgrounds/linuxmint

Для внесение изменения в файл настроек откройте папку 

/usr/share/cinnamon-background-properties 

под правами root, например 

sudo nemo /usr/share/cinnamon-background-properties

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

<wallpaper deleted="false">
    <name>Linux Mint</name>
    <filename>/usr/share/backgrounds/linuxmint/Orion.jpg</filename>
    <options>zoom</options>
    <shade_type>solid</shade_type>
    <pcolor>#000000</pcolor>
    <scolor>#000000</scolor>
    <artist>Network</artist>
</wallpaper>

В строке <name></name> указан путь к моему файлу Orion.jpg

Строка <artist></artist> указывает на автора изображения. Так как моё изображение было получено из Интернет, то мной было указано, что автором является Network. Результат:


🔰  Примечание. Как сделать аналогичную операцию в xfce читать здесь.
 

пятница, 1 марта 2024 г.

Папка /tmp как tmpfs в Ubuntu и Linux Mint

Перевод папки /tmp в файловую систему tmpfs, что по сути дела равносильно её перемещению в оперативную память компьютера, может в некоторой степени способствовать экономии ресурса твердотельного  накопителя SSD.

В сети имеется большое количество различных публикаций на эту тему. Но, как оказалось, в Ubuntu / Linux Mint это делается проще простого.

– Так ведь кражи не будет.
– Всё уже урадено до нас.
                     (операция "Ы")    
😁

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

sudo cp /usr/share/systemd/tmp.mount /etc/systemd/system/

sudo systemctl enable tmp.mount

Перезагрузите систему и выполните команду cat /etc/mtab

У вас должна присутствовать строка  tmpfs /tmp tmpfs ...

 
Другим вариантом проверки является команда df 
Предпоследняя строка на рисунке ниже показывает, что /tmp в tmpfs:






При таком решении в интересах /tmp может быть задействовано до 50% от общего размера оперативной памяти. Например, в моём случае размер оперативной памяти составляет 3655644k (свой размер можно узнать по команде free ), а в соответствующей строке вывода cat /etc/mtab указано, что

tmpfs /tmp tmpfs rw,nosuid,nodev,size=1827824k 

вторник, 27 февраля 2024 г.

Выполнение составной команды через ПКМ Thunar и Nemo

При необходимости настройки выполнения составной команды через правое контекстное меню, как оказалось, в файловых менеджерах Thunar и Nemo имеются различия. Для своих нужд создавалась процедура автозамены ряда символов в файле txt через bash. При этом сначала определялся путь и имя обрабатываемого файла с тем расчётом, чтобы впоследствии первоначальный файл заменить обработанным в рамках выполнения скрипт.sh

В файловом менеджере Thunar вопрос решился просто – в строке команды особых действий указывается: 1-я команда && 2-я команда. Пример:

realpath %f > /tmp/filename.txt && /home/minter/Tools/scripts/modules/replace.sh

Остаётся только указать условия появления этого пункта в ПКМ Thunar и значок.

В файловом менеджере Nemo реализация осуществляется по-другому, так как указанная выше составная команда, будучи указанной в строке Exec файла скрипт.nemo_action не выполняется. Чтобы указанная последовательность команд была выполнена в строке Exec= необходимо указать (всё в одну строку):

Exec=sh -c 'realpath %F > /tmp/filename.txt && /home/minter/Tools/scripts/modules/replace.sh; exec bash'

пятница, 23 февраля 2024 г.

Размер выбранных данных через правое меню Nemo

В правом контекстном меню файлового менеджера Nemo (Cinnamon) можно добавлять пункты своих команд. В данной заметке рассматривается создание пункты подсчёта занимаемого места выделенных объектов (файлы/папки).

В принципе, такую информацию можно получить и через "Cвойства". Но в этом случае будет отображён размер занимаемого места на диске, а создаваемая команда отобразит "чистый" размер. Как пояснение можно привести следующий пример: "чистый" размер данных в 1 килобайт займёт 4 килобайт дискового пространства, другими словами, эти данные займут 1 кластер. При форматировании носителя по умолчанию применяется значение размера кластера в 4 килобайта. При форматировании с другим размером кластера он указывается явно.

Создадим файл size.nemo_action  Можно использовать любое другое имя для создаваемого файла, главное чтобы соответствовало правилу: имя.nemo_action

xed /home/.../.local/share/nemo/acrions/size/nemo_action

Вместо ... укажите имя своей домашней папки. Для Ubuntu или другой системы используйте имеющийся у вас редактор текста (например, gedit в Ubuntu).

В окне редактора впишите следующее (пример):

[Nemo Action]
Active=true
Name=Size
Exec=sh -c 'du -chs --apparent-size %F | zenity --text-info; exec bash'
Icon-Name=emblem-ap-only-office
Selection=any
Extensions=any;
Quote=double

🔰  Пояснение. В строке Icon= указан используемый мной значок. Укажите свой значок из имеющихся в вашей системе.

Сохраните изменения и закройте окно текстового редактора Сделайте созданный файл исполняемым либо через свойства файла (Права ‒ Разрешить исполнять как программу), либо командой  

chmod u+x /home/.../.local/share/nemo/actions/size.nemo_action

Что указывать вместо многоточия см. выше. Подробности по команде здесь.

При вызове на любой папке, файле или выделенных папках и файлах должен отобразиться пункт Size (это имя, которое можно изменить на другое в строке Name=). При нажатии на него будет выведен приблизительный размер выбранных данных, например:


Вывод можно организовать и в окне терминала. В этом случае содержание файла будет следующим:

[Nemo Action]
Active=true
Name=Size
Exec=sh -c 'du -chs --apparent-size %F | cat - /dev/tty; exec bash'
Icon-Name=emblem-ap-only-office
Selection=any
Extensions=any;
Quote=double
Terminal=true


суббота, 17 февраля 2024 г.

Дополнительные цветные значки папок в Cinnamon

В Cinnamon при использовании одной из предустановленных тем значков наборов Mint-Y отдельно взятой папке через правое контекстное меню менеджера файлов Nemo можно задать значок, под которым данная папка будет отображаться. Но для своих нужд набора из 12 цветов в некоторых случаях мне было недостаточно. Поэтому был создан дополнительный набор, элементы которого не отображаются при вызове правого контекстного меню, но доступны при назначении значка в свойствах выбранной папки:



Дополнительные значки для папок:

Дополнительные значки для папок в своей основной массе взяты из набора значков Papirus. В комплекте поставки данные значки являются изображениями формата svg, которые были преобразованы в png, который используется в наборах значков Mint-Y. Значок серой папки (folder-grey) при наличии аналогического значка в Mint-Y-Grey обусловлен тем, что по восприятию он немного более тёмный и насыщенный. То же самое относится и к значку жёлтой папки (folder-yellow) В качестве примера на рисунке ниже верхняя папка использует значок темы Mint-Y-Grey, а нижней назначен значок folder-grey: 


🔰  Примечание. При использовании обычного выхода RGB разница может быть не ощутимой и проявляться только при использовании выхода HDMI.

Поместите содержимое этого архива в скрытую папку ~/.icons или ~/.local/share/icons папки своего профиля (домашняя папка). Дополнительные значки отобразятся при переназначении значка папки. Пример для темы значков Mint-Y-Sand:


Если Вы намерены постоянно использовать одну и ту же тему значок и никогда её не менять, то поместите в указанное выше одно из мест только папку Miny-Y, а затем переименуйте её в название вашей темы значков (в составе архива значки для всех тем). Данное действие обусловлено тем, что собственно сами дополнительные значки содержатся только в папке Mint-Y, а во всех остальных папках находятся только символические ссылки на значки папки Mint-Y.

среда, 7 февраля 2024 г.

В Linux Mint 21.3 пропал wifi через usb wifi Realtek 8188eu


Долгое время мной использовался usb wifi Realtek, драйвер Linux которого 8188eu был "из коробки", то есть никаких дополнительных действий для его определения в системе не требовалось. Но сегодня случился "сюрприз" 😈 : компьютер сетей wifi не видит. 

Осуществить загрузку системы с предыдущим ядром не представлялось возможным, поскольку предыдущее ядро и его модули были удалены в процессе автоматической очистки. При этом команда lsusb даёт вывод:

Bus 002 Device 002: ID 0bda:8179 Realtek Semiconductor Corp. RTL8188EUS 802.11n Wireless Network Adapter

То есть, можно считать, что железо системой определяется.

Следующий шаг: sudo modprobe 8188eu

И вот здесь обнаружилась причина:

modprobe: FATAL: Module 8188eu not found in directory /lib/modules/5.15.0-92-generic

Почему? Может быть после тестирования другого usb Realtek, может быть ещё по какой-либо причине, детально разбираться не было времени и желания. Не исключено также, что способом перетыкания модема в usb его работоспособность была бы восстановлена. Но в дальнейшем хотелось бы иметь хоть призрачную гарантию того, что при очередном обновлении ядра wifi останется в рабочем состоянии.

Проба: sudo apt install rtl8188eu-dkms
Результат: Невозможно найти пакет rtl8188eu-dkms

Для поиска способа решения проблемы и устранения неработоспособности wifi потребовалось включить проводное соединение. 

Предпринятые действия:

sudo add-apt-repository ppa:kelebek333/kablosuz
sudo apt update
sudo apt install rtl8188eu-dkms

Результат:

8188eu.ko:
Running module version sanity check.
 - Original module
   - No original module exists within this kernel
 - Installation
   - Installing to /lib/modules/5.15.0-92-generic/updates/dkms/
depmod............
rtl8188eufw.bin firmware file copied to /lib/firmware/rtlwifi/
update-initramfs: deferring update (trigger activated)
Обрабатываются триггеры для initramfs-tools (0.140ubuntu13.4) …
update-initramfs: Generating /boot/initrd.img-5.15.0-92-generic

После перезагрузки wifi работает.  

суббота, 3 февраля 2024 г.

Инструменты просмотра скорости интерфейса сети в Cinnamon и xfce

Если в Cinnamon или xfce имеется необходимость получить информацию о текущей скорости сети (входящая/исходящая), то имеются, конечно, готовые инструменты. В Cinnamon – это апплет:


В xfce – это сетевой монитор, добавляемый на панель через команду правого контекстного меню "Панель – Добавить на панель" или "Панель – Параметры панели – Элементы – Добавить" (может потребоваться установить соответствующий пакет: sudo apt install -y xfce4-netload-plugin).


Но если не стоит задача постоянно отслеживать входящую/исходящую скорость, то можно ограничиться консольной утилитой nload (sudo apt install -y nload).

Чтобы для её запуска не вводить команду в терминал создайте в своей домашней папке  ~/.local/share/applications  файл c разрешением исполнять как команду, например, Net traffic.desktop (в Cinnamon он отобразится как просто Net traffic) c содержанием:

[Desktop Entry]
Version=1.0
Type=Application
Name=Net traffic
Comment=
Exec=nload -u K wlx000b81935b9a
Icon=network-transmit-receive
Path=
Terminal=true
StartupNotify=false
Categories=GTK;Development;

В строке Exec запись wlx000b81935b9a соответствует имени беспроводного интерфейса, полученного из вывода команды iwconfig. Имя проводного интерфейса можно узнать из вывода команды ifconfig.

-u K указывает, что скорости необходимо отображать в значениях kByte/s. Как указать другие единицы можно узнать, набрав в терминале nload --help.

В строке Icon значение network-transmit-receive указывает на значок, под которым будет отображаться созданная кнопка запуска.

Categories=GTK;Development; указывает, что кнопку запуска нужно отобразить в разделе "Программирование" для Cinnamon или "Разработка" для xfce. Если такую строку не добавлять, то кнопка запуска будет отображена в разделе "Прочие" для Cinnamon или "Прочее" для xfce.

Результат выполнения:

 

Если значение величины собственной лени стремится к возрастанию 😊, то можно сделать так, чтобы окно терминала с отображаемой в нём информацией закрывалось автоматически. Для этого создайте исполняемый файл, например, net-traffic.sh с содержанием:

#!/bin/bash
sh -c 'nload -u K wlx000b81935b9a; exec bash' &
sleep 15
exit

А в созданном файле .desktop в строке Exec укажите путь к этому файлу, например,

Exec=/home/minter/Tools/scripts/modules/net-traffic.sh

После запуска окна терминала с отображением входящей и исходящей скоростей наступит период ожидания (пауза), длительность которого задаётся командой sleep. В указанном примере этот период соответствует 15 секундам. Нужное вам значение подберите экспериментально. 

суббота, 20 января 2024 г.

Заполнить флэшку нулями в Linux с отображением хода процесса

Возникла необходимость очистить флэшку, которая ранее использовалась как загрузочная для системы Linux. Но переформатирование стандартными способами (Инструменты/Диски и GParted) терпели неудачу по причине того, что на загрузочной флэшке присутствовали два раздела, при удалении которых постоянно возникала ошибка.

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

Решение простое, команду dd необходимо запускать с параметром status=progress. Ниже показан пример хода процесса для 4 ГБ флэшки Mirex, которая в программе "Диски" (дисковая утилита Gnome) была показана как устройство /dev/sdd.

sudo dd if=/dev/zero of=/dev/sdd bs=1M status=progress

На рисунках видно, что со временем скорость записи данных на носитель со временем падает.




Когда заполненность носителя достигла своего предела команда dd отобразила невозможность на него дальнейшей записи:

При запуске программ "Диски" и GParted флэшка была отображена как неразмеченный носитель, то есть устройство без файловой системы. 


После создания на нём новой таблицы разделов и форматирования в FAT32 флэшка воспринимается операционной системой, может быть смонтирована и на неё можно записывать данные.



четверг, 18 января 2024 г.

Кнопки запуска в меню для браузеров Waterfox и Palemoon

 

Браузеры Waterfox и Palemoon для Linux распространяются в виде архивов tar.bz2 и tar.xz соответственно. То есть выбранный браузер может быть запущен из любого расположения на файловой системе диска пользователя. Однако при этом в меню никакой кнопки запуска автоматически не создаётся. Кнопку запуска в меню для Waterfox или Palemoon можно создать самому.

Кнопка запуска для браузера Waterfox

Перейдите в скрытую папку своего профиля ~/.local/share/applications  Создайте в ней файл Waterfox.desktop  Откройте его в текстовом редакторе и впишите него:

[Desktop Entry]
Name=Waterfox
Exec=/opt/waterfox/waterfox
Comment=
Terminal=false
PrefersNonDefaultGPU=false
Icon=emblem-www-waterfox
Type=Application
Categories=Network;

🔰   Пояснения 

Строка Exec= указывает на расположение в файловой системе папки waterfox. В приведенном примере эта папка расположена в каталоге /opt  В вашем случае расположение папки waterfox может быть другим, например, /home/user/Programs/waterfox  
Строка Icon= указывает на значок, под которым кнопка запуска будет отображена в меню. Вам потребуется указать свой значок.
Строка Categories=Network; указывает на то, что кнопка запуска браузера Waterfox будет отображена в разделе "Интернет" вашего меню.

В свойствах созданного Waterfox.desktop (права) укажите, что файл разрешено выполнять как программу.

Кнопка запуска для браузера Palemoon

Перейдите в скрытую папку своего профиля ~/.local/share/applications  Создайте в ней файл Palemoon.desktop  Откройте его в текстовом редакторе и впишите него:

[Desktop Entry]
Version=1.0
Type=Application
Name=Palemoon
Comment=
Exec=/opt/palemoon/palemoon
Icon=emblem-web-1
Path=
Terminal=false
StartupNotify=false
Categories=Network;

🔰   Пояснения 

Строка Exec= указывает на расположение в файловой системе папки palemoon. В приведенном примере эта папка расположена в каталоге /opt  В вашем случае расположение папки waterfox может быть другим, например, /home/user/Programs/palemoon  
Строка Icon= указывает на значок, под которым кнопка запуска будет отображена в меню. Вам потребуется указать свой значок.
Строка Categories=Network; указывает на то, что кнопка запуска браузера Palemoon будет отображена в разделе "Интернет" вашего меню.

В свойствах созданного Palemoon.desktop (права) укажите, что файл разрешено выполнять как программу.

понедельник, 15 января 2024 г.

Добавление в меню Cinnamon дополнительных меню (категорий) и элементов в них

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

Щёлкните правой кнопкой мыши на кнопке меню Cinnamon. Вы увидите пункт "Редактировать меню". Нажмите на него левой кнопкой мыши и перейдите в редактор меню.


Выделите пункт меню "Приложения" и через кнопку "Новое меню" создайте новую папку в меню, а также соответствующий ей значок. После создания выделите созданное новое меню и через кнопку "Новый Элемент" укажите необходимые команды для выполнения и соответствующие им значки. Поясняющая картинки ниже:



Указанные на рисунке новые элементы были автоматически созданы в папке профиля ~/.local/share/applications под именами:

alacarte-made-dd064802-b39c-11ee-abe3-87598b93d49f.desktop

alacarte-made-f7c38fec-b39c-11ee-abe3-87598b93d49f.desktop

В приводимом примере их содержание соответственно:

[Desktop Entry]
Name=Upload folder
Exec=/home/minter/Tools/scripts/modules/upload.sh
Comment=
Terminal=true
PrefersNonDefaultGPU=false
Icon=emblem-arrow-1-orange
Type=Application

[Desktop Entry]
Name=Upload file
Exec=/home/minter/Tools/scripts/modules/upload-file-cinnamon.sh
Comment=
Terminal=true
PrefersNonDefaultGPU=false
Icon=emblem-arrow-1-green
Type=Application