Показаны сообщения с ярлыком plasma. Показать все сообщения
Показаны сообщения с ярлыком plasma. Показать все сообщения

суббота, 25 апреля 2009 г.

Python, plasma, KDE 4.2

Бороздил интернет в поисках упоминания меня и наткнулся на интересную запись - http://neithere.livejournal.com/419237.html
Понял почему не работали мои плазмоиды (недосуг было с ними разбираться). Дело было в одной маленькой строчке которую надо добавить в metadata.desktop:

X-Plasma-MainScript=code/main.py

Полезно почитать про себя любимого.

четверг, 13 ноября 2008 г.

plasma-mediacontroller

Почему то Am4rok, из Ubuntu 8.10, у меня не работает. Не разбирался, ведь те, кто следят за блогом, знают - теперь есть биндинги под python! Сделал себе свой велосипед - plasma-mediacontroller. Он конечно не так здорово смотрится, но главное он у меня работает.

Если кому то будет интересен, можно продолжить разработку. Сейчас он работает только с Amarok, но нет ничего сложного в добавлении поддержки практически любого медиаплеера. Ведь большинство из них реализует стандартный интерфейс DBus для медиаплееров.

Кому интересно - берите тут. В первой записи о plasma-python есть инструкции по установке плазмоида.

четверг, 30 октября 2008 г.

Мой первый плазмоид

Я поклонник KDE и python. С удивлением я, как и многие другие, смотрел на KDE 4.0. После вылизанного 3.5 это было конечно страшно. Особенно мне не хватало kicker и его "кикоидов". Но время идет, проект продолжает развиваться невзирая на возню анонимов на веб просторах, и теперь наконец то есть привязки plasma для python, а значит теперь я сам себе автор плазмоидов.

Мой первый плазмоид страшно кособок, но тем не менее показателен. Итак, по устоявшейся традиции среди Qt-шников, будем делать свой браузер. Правда этот, удивительный своей неординарностью, экземпляр, мы встроим прямо в рабочий стол.

Этот код просто вставьте в командную строку, он создаст структуру каталогов, файлы, соберет пакет, и установит его для текущего пользователя.


mkdir -p wwwv/contents/code
cd wwwv
cat > metadata.desktop << EOF
[Desktop Entry]
Encoding=UTF-8
Name=WWW viewer
Type=Service
ServiceTypes=Plasma/Applet
X-Plasma-API=python
Icon=chronometer

X-KDE-PluginInfo-Author=Mikhail Krivushin
X-KDE-PluginInfo-Email=mkrivushin@yandex.ru
X-KDE-PluginInfo-Name=plasma-wwwv
X-KDE-PluginInfo-Version=1.0
X-KDE-PluginInfo-Website=http://deepwalker.blogspot.com
X-KDE-PluginInfo-Category=Tests
X-KDE-PluginInfo-Depends=
X-KDE-PluginInfo-License=GPL
X-KDE-PluginInfo-EnabledByDefault=true
EOF

cat > contents/code/main.py << EOF
#! /usr/bin/python

from PyQt4.QtCore import *
from PyQt4.QtGui import *
from PyQt4 import QtWebKit
from PyKDE4.kdecore import *
from PyKDE4.kdeui import *
from PyKDE4.plasma import Plasma
import plasma

class PyWWWvApplet(plasma.Applet):
def __init__(self,parent,args=None):
plasma.Applet.__init__(self,parent)

self.url = None
self.clicked = QPoint()

def init(self):
KGlobal.locale().insertCatalog("www")

self.setHasConfigurationInterface(False)
self.setAspectRatioMode(Plasma.IgnoreAspectRatio)

self.dialog = None

self.theme = Plasma.Svg(self)
self.theme.setImagePath("widgets/background")
self.theme.setContainsMultipleImages(False)
self.theme.resize(self.size())

self.webview = Plasma.WebContent()
self.mlayout = QGraphicsLinearLayout(Qt.Vertical)
self.eline = Plasma.LineEdit()
self.mlayout.addItem(self.eline)
self.mlayout.addItem(self.webview)
self.setLayout(self.mlayout)

self.connect(self.eline,SIGNAL('returnPressed()'),self.open_page)

self.webview.setUrl(KUrl('http://127.0.0.1/'))
self.webview.update()

def open_page(self):
page = self.eline.text()
#print "Go to %s"%page
self.webview.setUrl(KUrl(page))
self.webview.update()

def shape(self):
if self.theme.hasElement("hint-square-clock"):
return plasma.Applet.shape(self)
path = QPainterPath()
path.addEllipse(self.boundingRect().adjusted(-2, -2, 2, 2))
return path


def constraintsEvent(self, constraints):
if constraints & Plasma.SizeConstraint:
self.resize(self.size())

def CreateApplet(parent):
return PyWWWvApplet(parent)
EOF

zip -r ../wwwv.zip .

plasmapkg -i wwwv.zip


Конечно же надо поставить соответствующие привязки. Так как я уже на 8.10, то просто сделал aptitude install python-plasma.

Далее располагайте плазмоид на рабочем столе и удивляйтесь мощи моего гения. Теперь же я, пожалуй, отправлюсь спать. А вы, дорогие мои, утомляйте неутомимый google бесчисленными запросами - "plasma python qt webkit" в поисках ответа на вопрос - а как же сделать, чтобы оно использовало прокси?