воскресенье, 24 марта 2019 г.

Интеграция Remote TransGUI c Linux Mint

Давно хотел поправить Transmission remote GUI на предмет интеграции с системой всплывающих сообщений Linux

Дело в том, что в Transmission remote GUI используется свой встроенный класс для показа всплывающих сообщений, поэтому он выглядит неродным для всех линуксов.

Как то раз делал такой patch, но не сохранил его. И очередное обновление снесло его нахрен.

Вот решил задокументировать. Может еще кому пригодится. Да к тому же оказывается есть форк, который активно так пилитсяTransmission remote GUI 5.16

Так выглядит оригинальное сообщение о завершении закачки torrent-а.

Что получится после модификации.
Для интергации нужно внести мимнимум изменений в файл main.pas

--- main.pas.org 2019-03-24 12:04:25.171065996 +0300
+++ main.pas 2019-03-24 12:14:30.712525851 +0300
@@ -2875,12 +2875,23 @@
 end;
 
 procedure TMainForm.DownloadFinished(const TorrentName: string);
+Var
+  RunProgram: TProcess;
+  message: String;
 begin
 {$ifndef CPUARM}
+{$ifdef linux}
+  message:=Format(sFinishedDownload, [TorrentName]);
+  RunProgram := TProcess.Create(nil);
+  RunProgram.CommandLine := Concat('/usr/bin/notify-send',' "', message, '" ', ' -i "/usr/share/icons/hicolor/256x256/apps/transmission.png"');
+  RunProgram.Execute;
+  RunProgram.Free;
+{$else}
   if not TrayIcon.Visible or not Ini.ReadBool('Interface', 'TrayNotify', True) then exit;
   TrayIcon.BalloonHint:=Format(sFinishedDownload, [TorrentName]);
   TrayIcon.BalloonTitle:=sDownloadComplete;
   TrayIcon.ShowBalloonHint;
+{$endif linux}
 {$endif CPUARM}
 end;
После внесения изменений собрать пакет и получить исполняемый файл. Если собирать лень, то можно скачать appimage и положить его в каталог /usr/bin/ заменив transgui предыдущей версии.
Как указано выше, я сейчас пользую Linux Mint. Но все это должно работать без перекомпиляции во всех линуксах, в которых используется команда notify-send.
И на закуску последняя версия Transmission 2.94 для Thecus N4800Eco
На этом все.
Как найду время, то напишу пост про настройку роутера с ddWrt для работы с NordVPN.