Screenletsの覚え書き
Screenletsは、Compiz Fusion向け*1のデスクトップウィジェットアプリケーション。SVG画像を使用した時計や天気、カレンダーなどのウィジェットをデスクトップ上に置くことができる。
バージョン0.0.10が起動できない問題に対処
Gentoo Linuxの「xeffects」OverlayでインストールしたScreenlets 0.0.10では、下のエラーが出て起動できなかった。
$ screenlets-manager Unable to load 'CopyStack' from /usr/share/screenlets/CopyStack: invalid syntax (CopyStackScreenlet.py, line 365) Traceback (most recent call last): File "/usr/share/screenlets-manager/screenlets-manager.py", line 589, in ? app = ScreenletsManager() File "/usr/share/screenlets-manager/screenlets-manager.py", line 133, in __init__ self.load_screenlets() File "/usr/share/screenlets-manager/screenlets-manager.py", line 259, in load_screenlets info = ScreenletInfo(s, meta['name'], meta['info'], meta['author'], TypeError: unsubscriptable object
これは、
http://bytecoders.homelinux.com/content/instalar-screenlets-en-debian-lenny.html
を参考に、sedで下のように修正することで起動できるようになった。
$ sudo sed -i -e 's/\(class Tooltip\) ():/\1:/' /usr/share/screenlets/CopyStack/CopyStackScreenlet.py
Gentooのxeffects Overlay版ではscreenlets-managerを起動するメニュー項目が無い?
Gentoo Linuxの「xeffects」Overlayで入れたScreenlets 0.0.10では、デスクトップ環境のメニュー項目*2が無い*3。下の.desktopファイル*4を作成することで、メニューから設定ツールが開けるようになる。
ファイル名: ~/.local/share/applications/screenlets-manager.desktop
[Desktop Entry] Type=Application Categories=Settings; Name=Screenlets Name[de]=Screenlets Name[ja]=Screenlets マネージャ Comment=A graphical tool to manage your Screenlets. Comment[de]=Ein grafisches Werkzeug, um Ihre Screenlets zu verwalten. Comment[ja]=Screenletsを管理するグラフィカルなツールです。 Encoding=UTF-8 Icon=screenlets Exec=/usr/share/screenlets-manager/screenlets-manager.py > /dev/null StartupNotify=true
と書いてから気づいたのだが、ebuildとビルドログを見ている内に、
find: warning: Unix filenames usually don't contain slashes (though pathnames do). That means that '-name `/var/tmp/portage/x11-plugins/screenlets-0.0.10/work/screenlets-0.0.10/desktop-menu'' will probably evaluate to false all the time on this system. You might find the '-wholename' test more useful, or perhaps '-samefile'. Alternatively, if you are using GNU grep, you could use 'find ... -print0 | grep -FzZ `/var/tmp/portage/x11-plugins/screenlets-0.0.10/work/screenlets-0.0.10/desktop-menu''. find: paths must precede expression: *.desktop Usage: find [-H] [-L] [-P] [-Olevel] [-D help|tree|search|stat|rates|opt|exec] [path...] [expression]
.desktopファイルをコピーする部分が失敗しているのを発見。
--- /usr/local/overlays/layman/xeffects/x11-plugins/screenlets/screenlets-0.0.10.ebuild.orig +++ /usr/local/overlays/layman/xeffects/x11-plugins/screenlets/screenlets-0.0.10.ebuild @@ -23,9 +23,13 @@ RDEPEND="${DEPEND}" src_install() { + sed -i "s/\(class Tooltip\) ():/\1:/" \ + src/share/screenlets/CopyStack/CopyStackScreenlet.py || die "sed failed to fix syntax error" + sed -i "s;/usr/local;/usr;g" \ src/lib/__init__.py \ setup.py bin/screenlets-* \ + desktop-menu/*.desktop \ desktop-menu/applications/* \ desktop-menu/desktop-directories/Screenlets.directory || die "sed failed to change install path" @@ -40,7 +44,7 @@ # Insert .desktop files insinto /usr/share/applications cd "${S}"/desktop-menu - for x in $(find -name "${S}"/desktop-menu '*.desktop') + for x in $(find "${S}"/desktop-menu -name '*.desktop') do doins $x done
上の修正(置換漏れの修正と文法エラーの修正も追加)をしてダイジェストを取り直し、更に一度アンインストールしてから入れ直したところ、.desktopファイルは入った*5。
Screenletの追加と削除
時計や天気などの個々のウィジェットを「Screenlet」と呼ぶ。
- screenlets-managerを起動し、一覧から「Launch/Add...」でScreenlet(の個々の実体/インスタンス)を追加できる。複数起動も可能。
- 「Enable/Disable」では、Screenletを削除せずに「有効/無効」の切り替えをする。
- 設定も含めてScreenletを削除するには右クリックして「Delete Screenlet...」。複数起動した場合に個別に削除するときもこれを選択。
- ログイン時に起動したいものは、一覧から項目を選択して「Automatically start on login」にチェックする。
標準以外のScreenletをインストール
- http://www.screenlets.org/index.php/Category:UserScreenlets
- http://www.gnome-look.org/index.php?xcontentmode=165
から色々なScreenletがダウンロードできる。
GUI(screenlets-manager)で追加しようとしても、うまくいかない場合があるので、手動で${HOME}/.screenlets/以下に展開するのがよい。
下は、現在のディレクトリにあるScreenletファイルをインストールする例。File RollerなどのGUIツールでは、展開先を${HOME}/.screenlets/に指定する。
$ for x in *.tar.gz; do tar zxf ${x} -C ~/.screenlets/; done $ for x in *.tar.bz2; do tar jxf ${x} -C ~/.screenlets/; done
アンインストールはGUIでもできる。
使用したバージョン:
- Screenlets 0.0.10
関連記事: