Your rating: None Average: 5 (10 votes)

Earth live rendering, updated every ten minutes, to be used as your
background home and application screen. Please check the configuration files
in /home/nemo/.config/xplanet for more options. Adding (realtime) cloud
coverage is supported (see below), displaying other Solar System objects, changing
viewing positions, angles and distances.
Please check /usr/share/xplanet/scattering/README for computing Rayleigh
scattering tables on the atmosphere (100 MB of data, disabled by default).

The live rendering is triggered with a systemd user service, "xplanet.service", that calls "xplanet" once to generate images into /home/nemo/Pictures/Xplanet. This directory is automatically created at install time. These images are then used by two themes "xplanet" alternating one with each other to fake a dynamical background. This is triggered by a systemd (user land) timer every ten minutes, and should suspend automatically with your phone thereby preserving the battery.
At last, you can add (realtime) cloud coverage by adding manually a flat cloud map under the path:
/home/nemo/Pictures/Xplanet/clouds.jpg. If not present, you'll get a cloudless Earth.

To desactivate xplanet-background, you should either uninstall it, or stop the timer:

systemctl --user stop xplanet.timer

To force the creation of the images at any time:

systemctl --user start xplanet.service

To check since when the last images have been created:

systemctl --user status xplanet.service

NB: The package assumes you're competent in editing files. If you tweak configuration files or any files located in /usr/share/ambience/xplanet, they won't be reset during an upgrade and may actually be incompatible with the newest versions. If you want a fresh configuration, you have to uninstall older versions before installing the new one.

NB2: Autodetection of screen resolution has been added in version 1.3.1-9. This is done by a script "/usr/bin/resxplanet.bash". In case of issue, please report the result of this command too:

cat /sys/class/graphics/fb0/modes


Application versions: 
File xplanet-background-1.3.1-1.armv7hl.rpm6.08 KB03/05/2016 - 19:37
File xplanet-background-1.3.1-2.armv7hl.rpm6.43 KB04/05/2016 - 15:03
File xplanet-background-1.3.1-4.armv7hl.rpm6.76 KB05/05/2016 - 20:06
File xplanet-background-1.3.1-5.armv7hl.rpm7.56 KB06/05/2016 - 15:33
File xplanet-background-1.3.1-7.armv7hl.rpm9.21 KB12/09/2016 - 20:42
File xplanet-background-1.3.1-8.armv7hl.rpm9.95 KB12/01/2017 - 00:20
File xplanet-background-1.3.1-9.armv7hl.rpm15.23 KB17/11/2018 - 01:49
File xplanet-background-1.3.1-10.armv7hl.rpm15.49 KB20/11/2018 - 02:07
File xplanet-background-1.3.1-11.armv7hl.rpm15.49 KB30/06/2020 - 21:36
File xplanet-1.3.1-12.src_.rpm15.74 MB11/09/2021 - 17:03

* Sat, Sep, 11 2021 Eatdirt <eatdirt@mageia.org> 1.3.1-12
- Source RPM, you can build and tune your package for any device (contains both xplanet and xplanet-background). I am off SailfishOS, last update bricked my Jolla 1...

* Mon Jun 30 2020 Eatdirt <eatdirt@mageia.org> 1.3.1-11
- Recompile against jolla libgif4

* Mon Nov 19 2018 Eatdirt <eatdirt@mageia.org> 1.3.1-10
- Fixes resolution detection failure and ambienced lock during upgrades from xplanet-1.3.1-8

* Fri Nov 16 2018 Eatdirt <eatdirt@mageia.org> 1.3.1-9
- Fixes for Sailfish 3. At last, all pictures need only to be
square sized.
- Tentative screen resolution detection at install time.
- Change of output directory for image files. They should now reside
into /home/nemo/Pictures/Xplanet and that directory is created at
installation time.
Please notice that your already existing configuration files will not work with this new version. If you have edited them, they need to be fixed after install. Or, alternatively, you can remove xplanet before installation of this new version to use the newest ones.

* Wed Jan 11 2017 Eatdirt <eatdirt@mageia.org> 1.3.1-8
- Workarounds to make the blurred application background
- Remove any sound specification from the xplanet themes to avoid
overwriting user preferences.

* Mon Sep 12 2016 Eatdirt <eatdirt@mageia.org> 1.3.1-7

WARNING: Update only if you are running SailfishOS >=

- Ugly workarounds for circumvent bugs/crazy features of ambienced
introduced with Sailfish OS In summary, Jolla does not want
you to touch the background pictures anymore. Two new themes created
are pushed one after each other every 10mn to fake updating the
background picture. Application picture is generated by Jolla, and is
not aspect ratio.

* Fri May 06 2016 Eatdirt <eatdirt@mageia.org> 1.3.1-5
- Change of timing method to optimize battery preservation. Now,
during suspend, xplanet should not generate any images. Replacing
'-wait 600' option within xplanet.sysconfig by '-num_times 1', setting
'oneshot' systemd service and reactivating every 10 minutes
xplanet.service using a new xplanet.timer
- Add glare 100 around the Sun for the background image. I find it nicer :)

* Thu May 05 2016 Eatdirt <eatdirt@mageia.org> 1.3.1-4
IMPORTANT: new maps uploaded (see below). If you have edited the files in /home/nemo/.config/xplanet before this update, they are not overwritten and xplanet-background & xplanet may not be able to find the new maps. Either have a look to the *.rpmnew files to fix it, or uninstall the previous version before installing this one.
- Fix redrawing to 10mn instead of 5mn to minimize battery draining
- Resampling all maps to 2048 pixels to minimize battery draining
- Package Hipparcos data to see a more starry background
- Package Solar System textures from flatplanet.sourceforge.net

* Wed May 04 2016 Eatdirt <eatdirt@mageia.org> 1.3.1-2
- Blurring and darkening apps background image for easier visibility
- Requires ImageMagick (convert)

* Wed Apr 27 2016 Eatdirt <eatdirt@mageia.org> 1.3.1-1
- Importing package xplanet, compiled without X11 support.
- Creating an background live theme based on it.


aviarus's picture

I also got it working on an xperia x compact, but it's very hard for me making an rpm out of that. Always the hardest part for me is making an rpm

eatdirt's picture

Source rpm uploaded on OpenRepos, feel free to fork this repo.

theyosh's picture

Not compatible with the new Sailfish OS 3.4.0.x. This only applies to new installs. As in this version you are not user nemo anymore, but defaultuser : https://together.jolla.com/question/228946/sailfish-os-340-around-the-co...

And that breaks this ambience script, as it has nemo hardcoded everywhere. And that is totally understandable. I have done this also. So for people with clean installed 3.4.0 version, will have to edit multiple scripts. When you upgrade from a lower version, the user nemo is still the active user.

And also, on my ExperiaX10Plus the autodetection of screen resolution is not working, as I do not have the file /sys/class/graphics/fb0/modes

ls -la /sys/class/graphics
total 0
drwxr-xr-x    2 root     root             0 Jan 31 23:12 .
drwxr-xr-x   93 root     root             0 Jan 31 23:12 ..

In the end, I got it working by manually editing the files and change nemo for defaultuser. Still hardcoded.

Not sure how to fix in your package.

eatdirt's picture

Thanks for the head-up!

I'll try to have a look and possibly provide fixes. Only unknown is where the graphic modes are on new phones, is there something in /sys/devices/virtual/graphics?

Main issue for fixing bugs is that my JP1 is running perfectly fine, so I am going to help the planet and still keep it for a while; which means I will be stuck at version 3.4.* and won't be able to test on versions >=4.

Best way to move forward is that I'll put all the sources on github if some of you guys want to push fixes; and I'll freeze a version for Sailfish < 4.

PS: These guys are crazy, changing default user name is really looking for troubles, soon SailfishOS is going to become SOS...




Beethoven's picture

Tricky weird error.

First off this needs libgif7 installed (also on Openrepos) for the XA2.

Once it's installed, it works fine, but editing the xplanet.sysconfig kills it. All I change is body earth to body moon, and that causes the following errors;


[nemo@Sailfish xplanet]$ systemctl --user status xplanet.service
● xplanet.service - A live image generator of Solar System objects
   Loaded: loaded (/usr/lib/systemd/user/xplanet.service; enabled; vendor preset: enabled)
   Active: failed (Result: exit-code) since Mon 2020-05-11 09:19:08 CEST; 46s ago
  Process: 10634 ExecStart=/usr/bin/xplanet $XPLANET_OPTIONS -prev_command ${XPLANET_PREV} -post_command ${XPLANET_POST} (code=exited, status=1/FAILURE)
 Main PID: 10634 (code=exited, status=1/FAILURE)

[nemo@Sailfish xplanet]$ xplanet
Error: Can't open display
Exiting from getDisplay.cpp at line 47


Restoring the default doesn't help, I have to uninstall and reinstall it to restore it, but can't change any defaults. Is there something else to try?

eatdirt's picture

Thanks for the report, for libgif7, I suspect the package needs a recompilation, I'll do that soon.

Changing body to "moon" should not trigger any error, but be careful to no accidentally add a spurious extra line or return character somewhere, that will crash the script as you described.  In your error logs, xplanet tries to draw a picture on the screen instead of dumping it to a file, so it looks like part of the command has been altered. For instance, if your editor "auto-wrap" lines, you'll end up with a broken script.

depscribe's picture

What did you coange in the configuration files beyond the paths to the images? Reason I ask is that I had a fairly tightly tuned config file and was happy with 1.3.1-8, and I'd like to reproduce what I had with it without reinventing the wheel. I'd stick with 1.3.1-8 except that everytime I visit OpenRepos it insists on upgrading. The changelog is good, but if the sonfiguration files have changed, a useful changelog would tell how they've changed so that we can modify our earlier working ones. I'm hoping it's only the paths.

eatdirt's picture

The new version has an auto-detection of the resolution, so the script files are new in this respect. Some strings will be replaced by the detected values, including label position. Output path is modified too to ~/Pictures/Xplanet. Xplanet binary has been rebuilt for new Sailfish 3 libraries, libgif is new and I suspect old version of xplanet will segfault in trying to generate a gif image. Up to this, you're free to keep the old version.

If you upgrade, remove old version first, your config files will be saved as *.rpmsave files within ~/.config/xplanet. After install of the latest version, you'll have to edit the config files again, don't copy paste the old ones to the new ones, that will not work.

Good luck

kaulian's picture

Perfect on my oneplusx

eatdirt's picture

Arg! I suspect you have edited the files in ambienced dir before this upgrade. In that case, the old files do not get deleted by an upgrade, you indeed have to either uninstall xplanet before the upgrade or delete these by hand.

I have also found a bug during upgrade, the Xplanet directory is not created automatically, I'll push a new version of the package soon.

Another advice: Always have an ssh server running to connect to the phone in case gui gets locked is a good idea (developper mode allows this). And, always read the changelog ;)

Did the new version produced an image and label ok with the X peria?

Good luck

depscribe's picture

Oh, man. Saw update on OpenRepos, told it to update. Now my Xperia X won't boot beyond the word Xplanet. Won't even make it to login screen. No Idea how I'm going to dig out of this.


Update: I've been at this for five hours, simply trying to get my device to the login screen after update, and still no joy. I've been in recovery mode most of that time, deleting all of xplanet and xplanet-background i can find. Still no joy.

Finally solved. Required deleting the xplanet stuff from /usr/share/ambiences, renaming a different ambience xplanet. Could then boot, delete xplanet and xplanet-background, and reinstall them. Ugh, but at least it ultimately worked.

depscribe's picture

For an uncropped picture on an Xperia X, the command parameters should include --radius 25 --geometry 2048x2048 though this means, sadly, that the labels listing body, time, etc., are off the screen.

It would be good to know how to change the frequency parameter. For Earth, 10 minutes makes sense, but for the Moon, probably once an hour is sufficient, and for, say, Saturn, often once a day would be enough unless you're following its moons and such. Is the refresh frequency hard-coded or is it in one of the configuration files?

eatdirt's picture

Hi there,

with Sailfish OS 3, finally all pictures are square sized, even on Jolla. At last! Update coming...

The update should also fix the label position on any device, but that's again some hacks using the kernel /sys file system. In case of troubles, please report the output of:

cat /sys/class/graphics/fb0/modes


For hacking the timing, this is the systemd timer which is involved. Check out this file:


and this entry:


And then, don't forget to reload:

systemctl --user daemon-reload

If this is not enough, try:

systemctrl --user enable xplanet-timer

systemctrl --user start xplanet-timer

gembiak's picture

I have a problem with the installation, I get the following error:
"File" ./core/armv7hl/Icms-1.19-1.1.1.armv7hl.rpm 'not found on medium' https://releases.jolla.com/releases/ '

I am using Sailfish version installed on SONY Xperia X. Please help me how to install applications.

depscribe's picture

I've used xplanet doing moon phases -- hourly update -- on my KDE/TDE desktop machines for more than a decade, but I can't get it to work at all on my Xperia X running the latest Sailfish X. I'm clearly doing something wrong here. It doesn't generate an image in ~/Pictures/Jolla.

UPDATE: Here's what results from a test run:

$systemctl --user start xplanet.service
Job for xplanet.service failed because the control process exited with error code. See "systemctl status xplanet.service" and "journalctl -xe" for details.

$ systemctl status xplanet.service
● xplanet.service
Loaded: not-found (Reason: No such file or directory)
Active: inactive (dead)

$ journalctl -xe
No journal files were found.
-- No entries --

and finally:

$ systemctl --user status xplanet.service
● xplanet.service - A live image generator of Solar System objects
Loaded: loaded (/usr/lib/systemd/user/xplanet.service; enabled; vendor preset: enabled)
Active: failed (Result: exit-code) since Wed 2018-10-17 11:38:11 EDT; 7min ago
Process: 10387 ExecStart=/usr/bin/xplanet $XPLANET_OPTIONS -prev_command ${XPLANET_PREV} -post_command ${XPLANET_POST} (code=exited, status=1/FAILURE)
Main PID: 10387 (code=exited, status=1/FAILURE)

So it seems as if there needs to be a little documentation as to how we might install and configure the thing! Or else it doesn't work with the current Sailfish X.

btw, running xplanet alone renders an image to the ~/ directory. So it seems as if xplanet works just fine, for a one-shot.

eatdirt's picture

Hi there,

ok, so main issue is that I am still running jolla 1, so it is difficult for me to debug on X-peria.


A few check though, please check you have this directory, if not create it:


You need xplanet-background installed, that's the package having the systemd files, it triggers the installation of the xplanet package that contains only the xplanet binary (this one works then).


Then you check if images are created inside:

systemctl --user restart xplanet

Finally, the resolution is fixed to the one of jolla 1, so you may have to edit:


and change the "geometry" options to match the screen resolution. I'll try to have a hand on a Sailfish X phone to see what's wrong, but it works on latest Sailfish Os on Jolla1.


thanks for the report, guys, and sorry for the issues.



depscribe's picture

[nemo@Sailfish ~]$ systemctl --user restart xplanet
Job for xplanet.service failed because the control process exited with error code. See "systemctl status xplanet.service" and "journalctl -xe" for details.

[nemo@Sailfish ~]$ systemctl status xplanet.service
● xplanet.service
   Loaded: not-found (Reason: No such file or directory)
   Active: inactive (dead)

[nemo@Sailfish ~]$ journalctl -xe
No journal files were found.
-- No entries --

And nothing is created in ~/Pictures/Jolla

I have a feeling that they did something between 2.0.x and that breaks your code. Xplanet running by itself produces a nice 512x512 image -- which SFOS blows up and then crops the sides off of. Resolution of the device is 1080x1920. And it's the first device/OS I've owned in the last 20 years in which Xplanet couldn't produce a nice, perfect desktop background. I have no idea what Jolla is doing in there: Even if you give it a 1920x1080 image, it expands and crops it. Oh, and in any case the desktop doesn't rotate due to orientation. It's nutty.

There's a lengthy discussion of it here:

theyosh's picture

FYI: I have changed the size of the image to 2048x2048 pixels. As this is the image size off all other ambience pictures. Maybe update it in your script? The original size is for me to low, and shows black borders. It does not scale up.

Secondly I removed the xplanet name in /usr/share/ambience/xplanet/xplanet2.ambience file. Else every 10 min I see the name on my phone. Now it is 'hidden;

And you could add an extra script with the following contents and run it in the XPLANET_PREV variable. It will update the clouds every 3 hours:

# more info https://github.com/apollo-ng/cloudmap/


# Get latest remote checksum
ORIGINSHA=$(wget https://raw.githubusercontent.com/apollo-ng/cloudmap/master/global.sha256 --no-cache -q -O - | awk {'print $1;'})

# Generate local checksum
if [ -e "$CLOUDS" ];
    LOCALSHA=$(sha256sum "$CLOUDS" | awk {'print $1;'})

# Check if we're behind origin
if [ "${ORIGINSHA}" != "${LOCALSHA}" ];

    # Download raw global.jpg from master
    wget https://raw.githubusercontent.com/apollo-ng/cloudmap/master/global.jpg?${ORIGINSHA} --no-cache -q -O global.jpg

    # Generate checksum of downloaded file
    NEWSHA=$(sha256sum global.jpg | awk {'print $1;'})

    # Check if download's chksum corresponds to origin
    if [ "$NEWSHA" == "$ORIGINSHA" ];
        mv global.jpg "$CLOUDS"
        rm global.jpg
theyosh's picture

Nevermind the resolution. I changed it to the screen resolution of my device. That works better.

eatdirt's picture

Thanks for the feedback and the script.

Yes, best picture is obtained by matching the screen resolution. I would even say that the png display is even better than jpg, but since a while, the ambienced of jolla does no longer support themes made in png, too bad.

For the clouds, I am doing almost the same, but with a cron job. I deciced to not provide it by default as, from past experience, cloud map servers have a tendency to disappear as soon as they become popular.

For those interested, in addition to the git repos pointed by theyosh, you can also generate your own cloud map from raw satellite data using:





anasofoz's picture

great job! I have 2 questions:

1)how to change ringer volume?

2)how to edit the background image since it appears too streched.


thanks keep up the great work.

eatdirt's picture

Hi, thanks.

1) For the ringer volume, the xplanet themes behave otherwise as normal themes, so you should be able to change it either within the ambience settings, or just with the volume buttons

2) If you refer to the "application" background image, the one which is blurred, I am still trying to figure it out. Since sailfish, jolla does not give any mean to change this picture anymore.

NB: If the "home" picture, the one which is not blurred, is streched, I suspect you are running xplanet on jolla C /tablet etc... I have only tested it under jolla 1

However, you can change the image resolution in


the options -geometry 540x960

can be adujsted to the correc number of pixels of your phone / tablet. Then , it will be aspect ratio!



MrPancake's picture

Guya, how do I add clouds or change planets? Thank you in advance

eatdirt's picture


there is no GUI setting app yet, so you have to manually edit that file:


XPLANET_PREV contains the command executed to create the background (the stars), and XPLANET_OPTIONS the command executed to display the object.

In there, you simply have to change "-body earth" to "-body saturn" or whatever you like.

All possible options are available in the man ("man xplanet" in a terminal), or check out the website at xplanet.sourceforget.net

For the clouds, that's easier, you just need to have a cloud map "clouds.jpg" in the directory:


like this one:



Hope it is clearer,



Rikudou_Sennin's picture

very good work :)

eatdirt's picture

thanks :)

eatdirt's picture

Sorry about that. Which Sailfish version are you using? (I am on

What is the output of:

systemctl --user status xplanet

Could you also check if you have "dconf" installed (maybe it is a missing Requires from my side).

dconf help

should give you some output.



Markkyboy's picture

No need to apologise :)

I'm using (I forgot to take any notice of SFOS versions - this could be my problem).

dconf is indeed installed and working correctly to my knowledge, I use it quite regularly while tinkering.

Output from systemctl --user status xplanet;

[nemo@Jolla ~]$ systemctl --user status xplanet
xplanet.service - A live image generator of Solar System objects
   Loaded: loaded (/usr/lib/systemd/user/xplanet.service; enabled)
   Active: failed (Result: exit-code) since Wed 2016-05-04 22:57:54 BST; 1min 40s ago
  Process: 25385 ExecStart=/usr/bin/xplanet $XPLANET_OPTIONS -prev_command ${XPLANET_PREV} -post_command ${XPLANET_POST} (code=exited, status=1/FAILURE)
 Main PID: 25385 (code=exited, status=1/FAILURE)
   CGroup: /user.slice/user-100000.slice/user@100000.service/xplanet.service


eatdirt's picture

@Markkyboy. That's weird, I don't really know what has been changed between and but I would not have expected to break it. If you're motivated enough to debug it, we could first check that the xplanet actually runs.

1) In a terminal could you check that

xplanet --version

returns something like this:

Xplanet 1.3.1
Copyright (C) 2012 Hari Nair <hari@alumni.caltech.edu>
The latest version can be found at http://xplanet.sourceforge.net
Compiled with support for:
        FreeType (version 2.4.9)

2) if yes, could you check if a image file, test.png, is actually produced by running:

xplanet -config /home/nemo/.config/xplanet/xplanet.conf -output test.png -num_times 1

3) if 1) and 2) are fine, then something is wrong with systemd service. Maybe jolla has changed the location of background pictures.

What is the output of (and does the path exist) of:

dconf list  /desktop/jolla/background/portrait/

dconf read /desktop/jolla/background/portrait/home_picture_filename

If everything is fine there, then I am clueless :-/


Markkyboy's picture

[nemo@Jolla ~]$ xplanet --version
Xplanet 1.3.1
Copyright (C) 2012 Hari Nair <hari@alumni.caltech.edu>
The latest version can be found at http://xplanet.sourceforge.net
Compiled with support for:
        FreeType (version 2.4.9)


[nemo@Jolla ~]$ xplanet -config /home/nemo/.config/xplanet/xplanet.conf -output test.png -num_times 1
Warning: Resizing night map
For better performance, all image maps should be the same size as the day map
Warning: Can't find /home/nemo/Pictures/Jolla/clouds.jpg in
Warning: Can't load map file /home/nemo/Pictures/Jolla/clouds.jpg

Jolla folder in Pictures does not exist and a search for 'clouds.jpg' comes up negative.


[nemo@Jolla ~]$ dconf list  /desktop/jolla/background/portrait/


[nemo@Jolla ~]$ dconf read /desktop/jolla/background/portrait/home_picture_filename

So, images are missing it seems!