Pull to refresh

Синхронизация задач Getting Things Gnome! между Linux и Windows

Reading time3 min
Views5.5K

Так уж получилось, что на домашнем компьютере стоит 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, для запуска нам потребуется следующее.
  1. Python. Я использовал версию 2.7.1. Здесь всё прозрачно.
  2. 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) Здесь так же всё прозрачно.
  3. ConfigObj. Я загрузил именно Zip-архив. Он ставится по следующему алгоритму. Распаковываем архив, запускаем cmd из папки «configobj-4.7.2», потом выполняем следующие команды:

    setup.py build
    setup.py install


  4. PyXDG. Для установки PyXDG пришлось использовать пакет от Slackware, т.к. просто архива я не нашел. Для этого скачиваем его отсюда. Я взял версию pyxdg-0.19-i686-1sl.txz. Для его распаковки воспользуемся 7z последней версии. Распаковать нужно следующим образом:



    Этот архив перепакованный в Zip можно найти на SF.
  5. Устанавливаем сам 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/, тогда последовательность действий следующая:
  1. Создаём рабочую папку внутри Dropbox'а, например ~/Dropbox/work/
  2. Копируем папку ~/.local/share/gtg/ в рабочую папку ~/Dropbox/work/
  3. Теперь удаляем папку по первоначальному месторасположению (gtg лучше при этом пусть будут закрыта)
  4. Создаём symbliic link на папку в нужном месте:
    ln -s ~/Dropbox/work/gtg/ ~/.local/share/gtg

Windows-сторона. Будем использовать аналогичный механизм симлинков на ntfs. Подробно он рассмотрен тут.

  1. Запускаем Gtg-win.
  2. Смотрим куда он положил задачи. Задачи gtg у меня хранит тут: c:\.local\share\gtg\. Вычищаем её, выйдя из gtg перед этим.
  3. Важно. Для корректной работы необходимо чтобы в папке Dropbox уже лежала копия папки с Linux-стороны. Создаём симлинк на папку <Мои документы>\Dropbox\work\gtg в папке c:\.local\share\. Для создания симлинка, а точнее Junction Points, я воспользовался:
    Junction Link Magic — программа с графическим интерфейсом для создания, изменения и модификации Junction Points.
  4. Наслаждаемся синхронной работой Gtg.
Для удобства можно вынести ярлык на C:\Python27\Scripts\gtg_launcher.py на рабочий стол.

Исходники изображения:
  1. blog.mozilla.com/faaborg/2009/05/14/evolving-a-product-brand
  2. live.gnome.org/gtg
  3. https://secure.wikimedia.org/wikipedia/ru/wiki/Файл:Gnulinux.svg
  4. www.wstechtoys.com/images/dropbox-logo.png
Tags:
Hubs:
+24
Comments14

Articles

Change theme settings