Plasmoidの作り方
メイン環境をPlasma5に代えて困ったことの一つに、RSSでニュースの見出し並べる奴が無くなっちゃったんだよね・・・
Plasma内で配信されてる奴も確認して、RSSリーダー一つ発見したが、見出し並べるやつじゃなくてブラウザ的なやつだったんで違う。
で、自分でPlasmoid作れないか?
と考えて調べた。
情報が少なくて探すのに苦労したが、
QMLってスクリプト言語でGUIアプリが作れて、結構簡単そう。
ディレクトリを指定してインストールするので、専用のディレクトリが必要で、その中に2つのファイルを作る。
main.qmの場所は指定できそうなんでuiディレクトリじゃなくても良さそうだが、 contentsの下である必要がありそう。
metadata.desktop
X-Plasma-MainScriptでmain.qmlの場所指定と、X-KDE-PluginInfo-Nameでパッケージ名の指定が必要な感じかな。X-Plasma-APIも必須かも。
まあ、とりあえず上記な感じで作っとけば良さそう。
X-KDE-PluginInfo-Nameで指定してるパッケージ名はJavaなんかと同じでドメインの反対みたいにして重複しないようにする感じだね。
アイコンなんかも.desktopで指定できるぽい。
main.qml
これでPlasmaの[Add Widget]で一覧に表示されるようになる。
パッケージ名がわからない場合は -l オプションで一覧が表示できる。
まだ文字表示だけだが、QMLでのアプリの作り方とかAPIリファレンスとか探せば良さそうかな。
QMLはUI関連だけで、処理はCとかで作るとか見たが、Perlと連携とかはできないだろうか。
Plasma内で配信されてる奴も確認して、RSSリーダー一つ発見したが、見出し並べるやつじゃなくてブラウザ的なやつだったんで違う。
で、自分でPlasmoid作れないか?
と考えて調べた。
情報が少なくて探すのに苦労したが、
QMLってスクリプト言語でGUIアプリが作れて、結構簡単そう。
作り方
- ディレクトリを作る
- metadata.desktop を作る
- contents/ui/main.qml を作る
ディレクトリを指定してインストールするので、専用のディレクトリが必要で、その中に2つのファイルを作る。
main.qmの場所は指定できそうなんでuiディレクトリじゃなくても良さそうだが、 contentsの下である必要がありそう。
metadata.desktop
[Desktop Entry]
Name=Hello World
ServiceTypes=Plasma/Applet
Type=Service
X-KDE-PluginInfo-Author=My Name
X-KDE-PluginInfo-Email=mail@example.com
X-KDE-PluginInfo-Name=com.example.hello
X-KDE-PluginInfo-License=GPL
X-KDE-PluginInfo-Version=1.0
X-KDE-PluginInfo-Website=http://example.com/
X-Plasma-API=declarativeappletscript
X-Plasma-MainScript=ui/main.qml
普通の.desktopショートカットと似たようなもんかな?Name=Hello World
ServiceTypes=Plasma/Applet
Type=Service
X-KDE-PluginInfo-Author=My Name
X-KDE-PluginInfo-Email=mail@example.com
X-KDE-PluginInfo-Name=com.example.hello
X-KDE-PluginInfo-License=GPL
X-KDE-PluginInfo-Version=1.0
X-KDE-PluginInfo-Website=http://example.com/
X-Plasma-API=declarativeappletscript
X-Plasma-MainScript=ui/main.qml
X-Plasma-MainScriptでmain.qmlの場所指定と、X-KDE-PluginInfo-Nameでパッケージ名の指定が必要な感じかな。X-Plasma-APIも必須かも。
まあ、とりあえず上記な感じで作っとけば良さそう。
X-KDE-PluginInfo-Nameで指定してるパッケージ名はJavaなんかと同じでドメインの反対みたいにして重複しないようにする感じだね。
アイコンなんかも.desktopで指定できるぽい。
main.qml
import QtQuick 2.0
Item {
Text {
text: "Hello World!";
}
}
文字表示だけ。Item {
Text {
text: "Hello World!";
}
}
インストール
$ plasmapkg2 -i 作成したディレクトリ
ユーザー権限でインストールできる。これでPlasmaの[Add Widget]で一覧に表示されるようになる。
アンインストール
$ plasmapkg2 -r パッケージ名
こっちもユーザー権限で。パッケージ名がわからない場合は -l オプションで一覧が表示できる。
まだ文字表示だけだが、QMLでのアプリの作り方とかAPIリファレンスとか探せば良さそうかな。
QMLはUI関連だけで、処理はCとかで作るとか見たが、Perlと連携とかはできないだろうか。