Installation
Ah, sweet-looking stuff! How do I install this?!? Read more below!!
Getting the latest package (manual install, most distros can use this)
- Do not use the package on the front page. That is pretty old, but unfortunately the manager of this site is missing in action at the moment.
- Here is the newest stable packages on Launchpad: https://launchpad.net/screenlets/trunk/0.0.12
- For any Linux system, download the .tar.gz, and do:
tar -xzf thedownloadedfile.tar.gz
cd screenlets
python setup.py install
- The last command needs to be run as superuser/root
- You need to remove any old version before doing all this.
- Run screenlets-manager to start. (Do NOT do this as superuser/root)
Ubuntu (Edgy/ Feisty/ Gutsy/ Hardy)
- There is a PPA repo that includes the latest stable version of Screenlets. The maintenance in trunk is being done by Whise, and Gilir set up a repo. Here's how to get it (original version found on the screenlets forums:
- http://forum.compiz-fusion.org/showthread.php?t=6889:
Words of caution:
- 1. Do NOT, NOT, NOT use any other packages from this repo, or you're in for surprises!
- 2. PPA repositories does not use GPG keys by design, so don't bother asking!
- 3. ALWAYS use 3rd party repos with caution
- 1. Do NOT, NOT, NOT use any other packages from this repo, or you're in for surprises!
Getting it on!
- Gilir has made an Ubuntu repo. There are three ways (at least) to set this up on your computer:
- - Console mode
- - GUI mode
- - Just get the package
- Gilir has made an Ubuntu repo. There are three ways (at least) to set this up on your computer:
First, removing the old cruft:
- There are two ways you could have used previous versions:
- 1. By using your package manager, or
- 2. By using bzr to get the latest from trunk or whise's revisions in Screenlets-new.
- There are two ways you could have used previous versions:
If you used the package manager:
- GUI mode:
- 1. In Synaptic: Search for "screenlets"
- 2. If an old version is installed (if it has a green square with a yellow arrow into it), right-click it, choose "Completely remove".
- 3. Click "Apply"
- 1. In Synaptic: Search for "screenlets"
- GUI mode:
- Console mode:
- Run the following:
sudo apt-get remove --purge screenlets
- Run the following:
- Console mode:
If you used bzr:
- Do the following in a console:
cd screenlets-new
sudo make uninstall
sudo rm -rf /usr/lib/python2.5/site-packages/screenlets*
- NOTE: the first command in this last code box may be a different one, if you renamed the directory, etc.
Just get the newest package:
- First, make you removed previous packages. (Scroll down a bit)
- 1. Go to: http://ppa.launchpad.net/gilir/ubuntu/pool/main/s/screenlets/
- 2. Download the package that applies to your system.
- 3. Double click the file you just downloaded.
- > Done.
- First, make you removed previous packages. (Scroll down a bit)
- You will NOT be notified of updates through you package manager if you do this.
Using the package manager
- GUI style
- 1. Open Synaptic.
- 2. Go to: Settings > Repositories > Tab: 3rd party.
- 3. Click "Add".
- 4. Add the following line:
deb http://ppa.launchpad.net/gilir/ubuntu gutsy main universe
- 5. Click OK, close, etc. until only the main Synaptic window is open. Click "Update" (Far left button)
- 6. In Synaptic: Search for "screenlets"
- 7. Mark it for installation
- 8. "Apply"
- 1. Open Synaptic.
- You will be notified by the update manager whenever there's an update to the installed package.
- You will be notified by the update manager whenever there's an update to the installed package.
- Console style:
echo "deb http://ppa.launchpad.net/gilir/ubuntu gutsy main universe #Gilir's screenlets packages and some stuff you shouldn't use" | sudo tee -a /etc/apt/sources.list
sudo apt-get update
sudo apt-get install screenlets
- You will be notified by the update manager whenever there's an update to the installed package.
- You will be notified by the update manager whenever there's an update to the installed package.
The OLD way of Ubuntu installation:
- Go to System -> Administration -> Synaptic Package Manager and open up Settings -> Repositories. In the tab 'Third-Party Software' press the 'Add' button.
- In the dialog window enter one of these lines:
- deb http://download.tuxfamily.org/screenlets edgy screenlets
- deb http://download.tuxfamily.org/screenlets feisty screenlets
- deb http://download.tuxfamily.org/screenlets gutsy screenlets
- depending on your version of Ubuntu. Close Synaptic Package Manager.
- Then press alt+F2 and in the dialog enter:
- wget http://download.tuxfamily.org/screenlets/hendrikkaju.gpg -O- | sudo apt-key add -
- After pressing the 'reload' button in the Synaptic Package Manager you should find the package named 'screenlets' in the :::list. Mark it for installation and apply! Ready you are now.
- Alternatively you can:
- directly edit /etc/apt/sources.list by adding one of the deb-lines shown above
- Run this in a terminal:
- wget http://download.tuxfamily.org/screenlets/hendrikkaju.gpg -O- | sudo apt-key add - && sudo apt-get update
- Again in the terminal run: 'sudo apt-get install screenlets' to install the package
- Alternatively you can:
OpenSUSE
- Here we are: http://packman.links2linux.de/package/screenlets
- There is a thread about the packages here: http://forum.compiz-fusion.org/showthread.php?t=6831
Installation
- GUI style:
- After putting in the repo: Use YaST
- Or use this One-click: http://packman.links2linux.de/install/screenlets
- Console style
- Again, after putting in the repo, run the following:
zypper refresh
zypper install screenlets
Removal
- If you used Zypper/YaST/One-Click
zypper remove screenlets
- or
rpm -e screenlets
- and
su
Gentoo
First, create overlay
- Create some directorys:
cd /usr/portage/local
mkdir -p myoverlay/{eclass,x11-plugins/screenlets}
- Append the directory to the make.file:
PORTDIR_OVERLAY="/usr/portage/local/myoverlay $PORTDIR_OVERLAY"
Let the bzr eclass handle bzr branches
- Before we can start we need the bzr eclass to handle bzr branches (myoverlay/eclass/bzr.eclass):
# Copyright 1999-2007 Gentoo Foundation
# Distributed under the terms of the GNU General Public License v2
# $Header: $
#
# Originally derived from the git eclass
#
# Just set EBZR_REPO_URI to the url of the branch and the src_unpack this
# eclass provides will put an export of the branch in ${WORKDIR}/${PN}.
inherit eutils
EBZR="bzr.eclass"
EXPORT_FUNCTIONS src_unpack
HOMEPAGE="http://bazaar-vcs.org/"
DESCRIPTION="Based on the ${GIT} eclass"
## -- add bzr in DEPEND
#
DEPEND="dev-util/bzr"
## -- EBZR_STORE_DIR: bzr sources store directory
#
EBZR_STORE_DIR="${PORTAGE_ACTUAL_DISTDIR-${DISTDIR}}/bzr-src"
## -- EBZR_FETCH_CMD: bzr fetch command
#
EBZR_FETCH_CMD="bzr checkout"
## -- EBZR_UPDATE_CMD: bzr update command
#
EBZR_UPDATE_CMD="bzr update"
## -- EBZR_DIFFSTAT_CMD: Command to get diffstat output
#
EBZR_DIFFSTAT_CMD="bzr diff"
## -- EBZR_EXPORT_CMD: Command to export branch
#
EBZR_EXPORT_CMD="bzr export"
## -- EBZR_REVNO_CMD: Command to list revision number of branch
#
EBZR_REVNO_CMD="bzr revno"
## -- EBZR_OPTIONS:
#
# the options passed to branch and merge
#
: ${EBZR_OPTIONS:=}
## -- EBZR_REPO_URI: repository uri
#
# e.g. http://foo, sftp://bar
#
# supported protocols:
# http://
# https://
# sftp://
# rsync://
#
: ${EBZR_REPO_URI:=}
## -- EBZR_BOOTSTRAP:
#
# bootstrap script or command like autogen.sh or etc..
#
: ${EBZR_BOOTSTRAP:=}
## -- EBZR_PATCHES:
#
# bzr eclass can apply patches in git_bootstrap().
# you can use regexp in this valiable like *.diff or *.patch or etc.
# NOTE: this patches will apply before eval EGIT_BOOTSTRAP.
#
# the process of applying the patch is:
# 1. just epatch it, if the patch exists in the path.
# 2. scan it under FILESDIR and epatch it, if the patch exists in FILESDIR.
# 3. die.
#
: ${EBZR_PATCHES:=}
## -- EBZR_BRANCH:
#
# bzr eclass can fetch any branch in bzr_fetch().
# Defaults to 'trunk'
#
: ${EBZR_BRANCH:=trunk}
## -- EBZR_REVISION:
#
# Revision to get, if not latest (see http://bazaar-vcs.org/BzrRevisionSpec)
#
: ${EBZR_REVISION:=}
## -- EBZR_CACHE_DIR:
#
# The location in which to cache the version, relative to EBZR_STORE_DIR.
#
: ${EBZR_CACHE_DIR:=${PN}}
## -- bzr_fetch() ------------------------------------------------- #
bzr_fetch() {
local EBZR_BRANCH_DIR
# EBZR_REPO_URI is empty.
[[ -z ${EBZR_REPO_URI} ]] && die "${EBZR}: EBZR_REPO_URI is empty."
# check for the protocol or pull from a local repo.
if [[ -z ${EBZR_REPO_URI%%:*} ]] ; then
case ${EBZR_REPO_URI%%:*} in
http|https|rsync|sftp)
;;
*)
die "${EBZR}: fetch from ${EBZR_REPO_URI%:*} is not yet implemented."
;;
esac
fi
if [[ ! -d ${EBZR_STORE_DIR} ]] ; then
debug-print "${FUNCNAME}: initial branch. creating bzr directory"
addwrite /
mkdir -p "${EBZR_STORE_DIR}" \
|| die "${EBZR}: can't mkdir ${EBZR_STORE_DIR}."
chmod -f o+rw "${EBZR_STORE_DIR}" \
|| die "${EBZR}: can't chmod ${EBZR_STORE_DIR}."
export SANDBOX_WRITE="${SANDBOX_WRITE%%:/}"
fi
cd -P "${EBZR_STORE_DIR}" || die "${EBZR}: can't chdir to ${EBZR_STORE_DIR}"
# every time
addwrite "${EBZR_STORE_DIR}"
EBZR_BRANCH_DIR="${EBZR_STORE_DIR}/${EBZR_CACHE_DIR}"
addwrite "${EBZR_BRANCH_DIR}"
debug-print "${FUNCNAME}: EBZR_OPTIONS = ${EBZR_OPTIONS}"
if [[ ! -d ${EBZR_BRANCH_DIR} || ${EBZR_REVISION} ]] ; then
# fetch branch
einfo "bzr branch start -->"
einfo " repository: ${EBZR_REPO_URI}${EBZR_BRANCH}"
${EBZR_FETCH_CMD} ${EBZR_OPTIONS} "${EBZR_REPO_URI}${EBZR_BRANCH}" ${EBZR_BRANCH_DIR} \
|| die "${EBZR}: can't branch from ${EBZR_REPO_URI}${EBZR_BRANCH}."
else
# update branch
einfo "bzr merge start -->"
einfo " repository: ${EBZR_REPO_URI}${EBZR_BRANCH}"
cd "${EBZR_BRANCH_DIR}"
${EBZR_UPDATE_CMD} ${EBZR_OPTIONS} \
|| die "${EBZR}: can't merge from ${EBZR_REPO_URI}${EBZR_BRANCH}."
${EBZR_DIFFSTAT_CMD}
fi
cd "${EBZR_BRANCH_DIR}"
einfo "exporting..."
${EBZR_EXPORT_CMD} ${EBZR_REVISION:+-r ${EBZR_REVISION}} "${WORKDIR}/${P}" \
|| die "${EBZR}: export failed"
einfo "Revision ${EBZR_REVNO_COMMAND} is now in ${WORKDIR}/${P}"
cd "${WORKDIR}"
}
## -- bzr_bootstrap() ------------------------------------------------ #
bzr_bootstrap() {
local patch lpatch
cd "${S}"
if [[ -n ${EBZR_PATCHES} ]] ; then
einfo "apply patches -->"
for patch in ${EBZR_PATCHES} ; do
if [[ -f ${patch} ]] ; then
epatch ${patch}
else
for lpatch in "${FILESDIR}"/${patch} ; do
if [[ -f ${lpatch} ]] ; then
epatch ${lpatch}
else
die "${EBZR}: ${patch} is not found"
fi
done
fi
done
echo
fi
if [[ -n ${EBZR_BOOTSTRAP} ]] ; then
einfo "begin bootstrap -->"
if [[ -f ${EBZR_BOOTSTRAP} ]] && [[ -x ${EBZR_BOOTSTRAP} ]] ; then
einfo " bootstrap with a file: ${EBZR_BOOTSTRAP}"
eval "./${EBZR_BOOTSTRAP}" \
|| die "${EBZR}: can't execute EBZR_BOOTSTRAP."
else
einfo " bootstrap with commands: ${EBZR_BOOTSTRAP}"
eval "${EBZR_BOOTSTRAP}" \
|| die "${EBZR}: can't eval EBZR_BOOTSTRAP."
fi
fi
}
## -- bzr_src_unpack() ------------------------------------------------ #
bzr_src_unpack() {
bzr_fetch || die "${EBZR}: unknown problem in bzr_fetch()."
bzr_bootstrap || die "${EBZR}: unknown problem in bzr_bootstrap()."
}
Now, add the overlay
- After that we can add the overlay (myoverlay/x11-plugins/screenlets/screenlets-9999.ebuild):
# Copyright 1999-2008 Gentoo Foundation
# Distributed under the terms of the GNU General Public License v2
# $Header: $
inherit gnome2 bzr autotools eutils distutils
EBZR_REPO_URI="http://bazaar.launchpad.net/~screenlets-dev/screenlets/"
DESCRIPTION="Screenlets are small owner-drawn applications"
HOMEPAGE="http://www.screenlets.org"
SRC_URI=""
LICENSE="GPL-3"
SLOT="0"
KEYWORDS="~amd64 ~x86"
IUSE=""
DEPEND="
dev-python/dbus-python
>=dev-python/gnome-python-desktop-2.16.0
dev-python/pyxdg
x11-libs/libnotify
x11-misc/notification-daemon
x11-misc/xdg-utils"
RDEPEND="${DEPEND}"
src_unpack() {
bzr_src_unpack
}
src_install() {
distutils_src_install
insinto /usr/share/desktop-directories
doins "${S}"/desktop-menu/desktop-directories/Screenlets.directory
insinto /usr/share/icons
doins "${S}"/desktop-menu/screenlets.svg
# Insert .desktop files
for x in $(find "${S}"/desktop-menu -name "*.desktop"); do
domenu ${x}
done
}
Create the digest...
ebuild myoverlay/x11-plugins/screenlets/screenlets-9999.ebuild digest
last step:
echo "x11-plugins/screenlets **" >> /etc/portage/package.keywords
- Now you can emerge screenlets:
emerge screenlets
What are the requirements/dependencies for running the screenlets?
- First of all you need python (tested with 2.4 and 2.5). Further you need pygtk (at least version 2.10), pycairo, python-xdg and the package python-gnome2-desktop. The latter is unfortunately needed for the wnck/rsvg bindings (hopefully this will change sometime).
- For Fedora users, the prerequisites can be installed by running the following as root:
yum -y install python pygtk2 pycairo pyxdg gnome-python2-desktop gnome-python2-rsvg
How do I install new Screenlets?
Easy Way
- Simply open up the Screenlets manager (System - Preferences - Screenlets). Select the Install option on your right, search for the screenlet you want to install, select it, and you're all set.
Manually
- Some screenlets that weren't updated to the new API don't work with the Screenlets manager installation method, and need to be installed manually. You need to copy the Screenlet's directories to either your ~/.screenlets directory (if it doesn't exists, just create it) or to /usr/local/share/screenlets (for system-wide access).
How do I completely uninstall all screenlets?
- A reliable but dangerous way of removing all screenlets and all settings is using the following commands (Ubuntu users add :a "sudo " to the front of each command):
- rm -rf /usr/local/share/screenlets*
- rm -rf /usr/local/bin/screenlets*
- rm -rf /usr/lib/python2.4/site-packages/screenlets*
- rm -rf /usr/lib/python2.5/site-packages/screenlets*
- rm -rf ~/.config/Screenlets
- If you also want to delete all your user screenlets, run the following command:
- rm -rf ~/.screenlets
Usage
Questions and answers about using the screenlets.
How do I start/launch a screenlet?
- The recommended way is to use the screenlets-manager for that. Alternatively you can start it either using the Applications-menu (if you have installed the desktop-menu entries using "make menu") or using the Alt+F2 dialog or by launching the individual screenlets directly like this (e.g. launching the Clock):
/usr/local/share/screenlets/Clock/ClockScreenlet.py
How do I make my screenlets automatically start when I login?
- Open the Screenlets Manager, select the screenlet you want to autostart and check the checkbox "Automatically start on login". Alternatively you could use a script or add the individual screenlets to your session's startup programs.
- (There is a third-party toolbar screenlet that can load other applets as well. Like this, only one screenlet (the toolbar) needs to be autostarted in the Screenlets Manager.)
For KDE users
- Open /usr/local/share/screenlets-manager/screenlets-manager.py using text editor (kwite/kate/mc/vi) as root.
- On line 38 change to this :
- DIR_AUTOSTART = os.environ['HOME'] + '/.kde/Autostart'
- About line 178 change .config/autostart to .kde/Autostart
- and in about line 188 (below code = ['[Desktop Entry]'] add this line :
- code.append('Type=Application')
- code.append('MimeType=application/x-screenlet')
Troubleshooting
Answers for people having problems with the screenlets.
Why are there black boxes around all my screenlets?
- The black boxes appear if you have no compositing manager (e.g. compiz, beryl or compiz-fusion) running. This issue may get solved in future versions.
Where are the individual official screenlets kept after I installed the package?
- In /usr/share/screenlets
Where do I put individual screenlets
- In ~/.screenlets
What's in ~/.config/screenlets
- That would be the config files for each individual screenlet. You can change those files manually (if you know what to put in), or you can use the options for each individual screenlet.
How do I reset the settings for a single screenlet?
- You could simply delete all open instances for the screenlet, when you open it the next time it will be created with its default values. However - sometimes this may not work. The most reliable way is to remove the entire data-directory for that Screenlet like this:
rm -rf $HOME/.screenlets/<ScreenletName>/*
- That's the old way of doing this. With the newest release, you can use Screenlets Manager.
How do I completely reset all my settings?
- This command deletes ALL your configuration and settings for ALL screenlets. Be careful with this!
rm -rf $HOME/.screenlets/*
How can I check which version of the screenlets I have installed?
- Enter this command in a terminal:
python -c "import screenlets;print screenlets.VERSION"
Why do some screenlets appear twice when I click one time on the add button?
- If you click on the "Launch/Add"-button for the first time you will open the screenlet's application. If you had created more than one instance of the given Screenlet's type, you will now restore all your previously opened screenlets (from before you selected "Quit" last time).
- Whenever you now click the "Launch/Add"-button you will add one new instance to the already opened screenlet. If you choose "Quit" and then re-start the screenlet again you will have all your previously opened screenlets restored.
Why do my screenlets disappear when I show the desktop?
- 1. Have you installed latest widget plugin (for Compiz-Fusion)?
- http://forum.compiz-fusion.org/showp...1&postcount=15
- Look at the code box. git-clone > cd widget > make > sudo make install
- 2. All screenlets defined as widgets?
- Right click>properties tab options: "Treat as widget"
- 3. Compiz-Fusion restarted?
- 4. Compiz Control Center Settings > Widget plugin enabled?
- "End widget mode on click" unchecked and "Brightness" to 100% if you just want to toggle Screenlets On/Off with F9.
OR In Compiz Settings Manager (System->Parameters->Advanced Desktop Effects Settings)) in General Options uncheck Hide all window Skip Taskbar Windows
Developers
Developer information focused on creating and releasing your own screenlets.
The maintenance in trunk is currently being done by Whise. The creator of the Screenlets project is Ryx.
Screenlets-extras
It's a new project. See:
Packaging/Releasing
Info related to packaging, releasing and submitting your own screenlets.
How do I submit my own screenlet?
- Use the screenlets-packager tool to create a package from your screenlet, upload it somewhere (currently we don't accept uploads of archives, it will come soon) and then create a new entry in the third-party screenlets archive. For more information, read how to submit your own screenlet ...
Where/how can I get the development version?
- The screenlets' sourcecode is hosted on http://launchpad.net. You can easily download and install the latest development branch using these commands (you need to install 'bzr' first):
bzr co http://bazaar.launchpad.net/~screenlets-dev/screenlets/trunk screenlets
cd screenlets
python setup.py install
- That last command must be run as superuser/root, i.e. 'sudo' for Ubuntu et.al, and 'su -' for many others.
- For pulling in the latest updates you just need to run: 'bzr update' (inside the screenlets directory). Depending on development activity, you might want to do this daily. You could also set up a script to run this at specific times, e.g. midnight every day.



