Расширения для hackwrench

Захотелось сделать простые, но удобные расширения для hackwrench.

Первое что пришло на ум — создать базовый класс, например PluginBase, от которого будут наследоваться все расширения. В нужный момент мы можем получить список загруженных расширений вызвав PluginBase.__subclasses__()

Как-нибудь так: self.plugins = [plugin(self) for plugin in PluginBase.__subclasses__()]

 

Класс для работы со списками

Небольшой класс, который я использую для работы со списками в интерактивном режиме. Вообще для этого хорош ipipe.

Пара примеров использования

 

Взаимодействие pywebkitgtk и javascript

Сабж можно осуществить c помощью дополнительной библиотеки: pyjavascriptcore
Есть сборки для убунты в ppa
Пакеты будут в следующих версиях ubuntu и debian
 

hackwrench — webkit/pygtk browser

Начал делать браузер на базе python-webkitgtk
Профит в том, что можно будет писать расширения на python(последний раз такое было в epiphany-gecko)
 

Расширение для chrome — загрузка файлов во внешнем менеджере загрузок(по ctrl+alt+click)

Расширение позволяет вызывать из chrome сторонний менеджер загрузки файлов. Чтобы отрыть ссылку внешней программой, надо ткнуть в неё зажав ctrl и alt.

Для работы требуется дополнительная программа chromeget.py — для Linux и MacOS. В версии для windows — chromeget.exe(занимает 2 мегабайта в архиве т.к. включает python).

 

Прикручиваем pep8.py к vim

Список несоответствий кода PEP8, который генерирует pep8.py, можно прикрутить к vim. Он будет выводиться в небольшом окошке, при нажатии enter на выделенной строке, переходит на соотв. строку исходника(как от команды :grep, см. скриншот).

 

mptt_admin 0.2 (jstree для админки django)

Новая опция tree_display(list_display) — позволяет показывать в дереве дополнительные поля.
 

jstree в джанговской админке для mptt моделей

На этот раз у ModelAdmin преопределен changelist_view, и все операции выполняются через ajax.

MpttAdmin также содержит свои шаблоны внутри себя и сам отдает все необходимые яваскрипты.

 

Переброс окон между несколькими мониторами

В xfce я не нашел способа перекидывать окно на следующий монитор комбинацией клавиш(что-то такое я видел только в компизе), поэтому написал этот скриптик

 

Играемся с гироскопом ноутбука thinkpad в linux

В линукс показания с этого датчика можно считать из файла /sys/devices/platform/hdaps/position

Можно на основе этих данных создать виртуальный джойстик и, например, катать им шарики в neverball(video), крутить google earth и т.п. :)

Почитать про это всё можно тут

Я тоже решил развлечься и написал небольшую программу, которая заставляет cairo-clock сползать по экрану в зависимости от наклона ноутбука)