Miranda под Wine
Хотя Миранда изначально предназначена для работы только в Windows, тем не менее, возможен её запуск в Linux под Wine.
Описанные ниже действия испробованы в среде Ubuntu 20.10.
Архитектура Миранды (32- или 64-разрядная) должна совпадать с архитектурой дистрибутива Linux. В дальнейших примерах предполагается, что архитектура 64-разрядная.
Настройки OS
BSD
Для работы CrashDumper нужно разрешить отладку непривилегированным пользователям, для этого в sysctl необходимо выставить:
security.bsd.unprivileged_proc_debug=1
Linux
На данный момент Miranda NG корректно работает лишь в ветке Wine staging, поэтому удалите установленный Wine и установите winehq-staging.
Создаём отдельный профиль Wine для Miranda NG
Создаём отдельную папку, где будем хранить профиль Wine для работы с Мирандой:
mkdir -p $HOME/.wines/miranda/
Если переменная $HOME у вас не определена, заменяйте на путь к профилю, например:
mkdir -p /home/USER/.wines/miranda/
Инициализируем профиль Wine
env WINEPREFIX=$HOME/.wines/miranda/ wine winecfg
- Отказываемся от того, что предлагают установить (работать будет и без этого).
- Закрываем — OK.
Устанавливаем Miranda NG
- Загружаем архив, содержащий портативную 64-разрядную Miranda NG.
- В папку $HOME/.wines/miranda/drive_c/Miranda_NG/ копируем файлы из архива.
Запускаем
Скрипт для запуска (можно сохранить как $HOME/.wines/miranda/drive_c/Miranda_NG/Miranda32.sh):
#!/bin/sh cd $HOME/.wines/miranda/drive_c/Miranda_NG/ env WINEPREFIX=$HOME/.wines/miranda/ wine Miranda64.exe
Выбираем драйвер базы SQLite и задаём желаемое имя базы. Отметьте «Запуск в служебном режиме: Import», если у вас уже есть база (например, перенесённая с Windows) и вы хотите и дальше её использовать. Нажимаем Создать (и выполняем импорт из старой базы, если выбирали импорт на предыдущем шаге).
Дополнительные настройки Wine
Эти настройки не обязательны, но могут повысить комфорт.
Открытие папок в системном файловом менеджере
По умолчанию wine открывает папку в своём проводнике, это не всегда удобно, например при использовании плагина MenuItemEx удобнее просматривать полученные от контакта файлы через системный файловый менеджер.
- Создаём файл $HOME/.wines/miranda/drive_c/windows/open_on_host_sys.sh с таким содержанием:
#!/bin/sh xdg-open "`winepath -u \"$1\"`"
- Помечаем его как исполняемый: chmod +x $HOME/.wines/miranda/drive_c/windows/open_on_host_sys.sh
- Запускаем редактор реестра: env WINEPREFIX=$HOME/.wines/miranda/ wine regedit
- В разделе: HKEY_CLASSES_ROOT\folder\shell\open создаём ключ (подраздел): command
- В созданном разделе command устанавливаем значение по умолчанию: cmd /c start /b /min c:\windows\open_on_host_sys.sh "%1"
Без "cmd /c start" у меня скрипты не исполнялись.
Если xdg-open в системе нет, можно прописать название файлового менджера который вы используете и желаемые ключи запуска, например: thunar. В случае использования xdg-open аналогичным образом можно настроить открытые любых других типов файлов программами используемыми по умолчанию в системе.
Документация
- Wine FAQ (англ.)
- winepath (англ.)
- Ask Ubuntu: How to associate all file types within Wine with its corresponding native application? (англ.)
- Stack Overflow: Execute Shell Commands from Program running in WINE (англ.)
- ShellExecute does not integrate well with external handlers (англ.)