Так уж получилось, что на домашнем компьютере стоит Windows. На работе же я перешел на Linux. И вдохновившись статьей Time Management для Ubuntu'водов, решил попробовать Gtg для управления своим временем. На рабочий компьютер с Linux установить Gtg получилось без проблем, он есть в репозитории моего достаточно молодого Linux-a. Но мне захотелось сделать синхронизацию с домашним компьютером. Но при установке Gtg на Windows столкнулся с трудностями. Интересующихся способом их решения, прошу под кат.
На сайте Getting Things Gnome! есть намёк на Windows версию, что и обнадежило меня при установке на Linux. Пройдя по ссылке на Launchpad.net, я увидел грустную фразу: «Getting Things GNOME! Windows does not have any download files registered with Launchpad.» Скачав код, используя для этого Bazaar, я попробовал его (Gtg-win) правильно установить и запустить.
В результате мне пришлось сделать несколько правок исходного кода для корректной работы, архив с исправлениями можно скачать с SourceForge, там же Вы найдёте ConfigObj и PyXDG, необходимые для работы. Но для установки необходимо всё же придерживаться указанного ниже алгоритма.
Следую оригинальному Readme, для запуска нам потребуется следующее.
- Python. Я использовал версию 2.7.1. Здесь всё прозрачно.
- PyGTK. Я воспользовался standalone версией для python 2.7 (http://ftp.gnome.org/pub/GNOME/binaries/win32/pygtk/2.22/pygtk-all-in-one-2.22.6.win32-py2.7.msi) Здесь так же всё прозрачно.
- ConfigObj. Я загрузил именно Zip-архив. Он ставится по следующему алгоритму. Распаковываем архив, запускаем cmd из папки «configobj-4.7.2», потом выполняем следующие команды:
setup.py build
setup.py install
- PyXDG. Для установки PyXDG пришлось использовать пакет от Slackware, т.к. просто архива я не нашел. Для этого скачиваем его отсюда. Я взял версию pyxdg-0.19-i686-1sl.txz. Для его распаковки воспользуемся 7z последней версии. Распаковать нужно следующим образом:
Этот архив перепакованный в Zip можно найти на SF.
- Устанавливаем сам Gtg. Переходим в папку, куда его распаковали, «C:\gtg-win\» к примеру, и оттуда запускаем cmd и уже известные нам команды:
setup.py build
setup.py install
Для запуска используем C:\Python27\Scripts\gtg_launcher.py.
Теперь необходимо добится синхронизации Windows и Linux версий. Где в Linux лежит файл задач описано в статье Time Management для Ubuntu'водов. В Windows у меня он появился в c:\.local\share\gtg\. Тут одна особенность. Оригинальная Windows версия для id задач использует уникальные строки вида 8c7d1f8b-99ed-4fff-9046-374afcd5ded7, Linux же просто натуральные числа с дополнением, например: 34@1. Для реализации синхронизации я поправил Windows версию для использования формата вида 34@1.
И ещё одна особенность. У программ разные форматы файла projects.xml. Чтобы это обойти, я воспользовался маленьким хаком. В результате моих изменений Windows будет смотреть, есть ли project.xml, если же нет — то прочитает исходные настройки из файла projects.xml от Линукс, но при этом в дальнейшем будет работать со своим project.xml. Т. е. для корректной работы неоходимо сначала запустить Linux-версия для создания файла projects.xml.
Для реализации синхронизации необходимо сделать следующее.
Linux-сторона, частично процитирую вдохновившую меня статью:
Идея такова, что при установки Dropbox'а он просит указать какая папка будет синхронизироваться. Именно в эту папку мы и собираемся поместить наши конфигурационные файлы для GTG. А потом просто сделать линк на эти файлы в тех местах, где программы пытаются их найти.
GTG хранит свои файлы в папке ~/.local/share/gtg. Допустим, что мы согласились с установками по умолчанию, и поставили Dropbox папку в ~/Dropbox/, тогда последовательность действий следующая:
- Создаём рабочую папку внутри Dropbox'а, например ~/Dropbox/work/
- Копируем папку ~/.local/share/gtg/ в рабочую папку ~/Dropbox/work/
- Теперь удаляем папку по первоначальному месторасположению (gtg лучше при этом пусть будут закрыта)
- Создаём symbliic link на папку в нужном месте:
ln -s ~/Dropbox/work/gtg/ ~/.local/share/gtg
Windows-сторона. Будем использовать аналогичный механизм симлинков на ntfs. Подробно он рассмотрен тут.
- Запускаем Gtg-win.
- Смотрим куда он положил задачи. Задачи gtg у меня хранит тут: c:\.local\share\gtg\. Вычищаем её, выйдя из gtg перед этим.
- Важно. Для корректной работы необходимо чтобы в папке Dropbox уже лежала копия папки с Linux-стороны. Создаём симлинк на папку <Мои документы>\Dropbox\work\gtg в папке c:\.local\share\. Для создания симлинка, а точнее Junction Points, я воспользовался:
Junction Link Magic — программа с графическим интерфейсом для создания, изменения и модификации Junction Points.
- Наслаждаемся синхронной работой Gtg.
Исходники изображения: