Use Images from Google Photos album as screensaver on Linux


I wanted to set up a (shared) Google Photos album as my screensaver on Devuan GNU/Linux. I accomplished this with the venerable xscreensaver and a useful tool named rclone which I was already using.

Downloading images from Google Photos

On my CentOS 7 server, I already am using rclone. Starting with version 1.49, rclone supports Google Photos. EPEL provides rclone but only version 1.47. So download the upstream rpm release: Downloads page or direct link.
The utility comes with a cli-based configurator. Use rclone config and add a remote. I failed to save the output of when I configured it, but it’s as easy following the prompts to add a Google Photos remote. Choose the headless option, and it will show you a link to open in a browser where you can authenticate to Google Photos and then approve this application to use a token tied to your account. The browser will show you a code you paste back into the configurator.
In the end, what matters is that the ~/.config/rclone/rclone.conf includes a section like so:

type = google photos
read_only = true
token = {"access_token":"za29.a0AfH6SMC9bVDgJTPZTPfvMd5MyplOehAgldvibfrlmMwOBFUSCATEDuDd6tMuWm13YOryXXpUWP4EkHO-oNoa92I6WN7rzrS4y6hquw3zPFXOayEZv-3uv9_NfYNUyctoBq_OUQ9lrqoH3U7J40crJW2NZ","token_type":"Bearer","refresh_token":"1//013Vdw5CGVJ3zCgZIARAAGAFSNwF-L9IricqZmAio2CqpFJ8nM0OuXmsorNlVHRmX5w_KeIgvwvrxsJl5hJT30jT9ET-9mh612-0","expiry":"2020-05-19T10:49:30.709779985-04:00"}

And then my sync script is this:

# File: /etc/installed/
# Location: storage1:/etc/installed
# Author:
# Startdate: 2020-05-19
# Title: Script that Pulls Down Album from Google Drive
# Purpose: Pull photos down for a screensaver for the living room HTPC
# History:
# Usage:
#    in a cron entry:
# References:
#    man rclone(1)
# Dependencies:
#    ~/.config/rclone/rclone.conf with a section named "photos"
# Documentation:
#    --dry-run is useful. Sync command runs from left side to right side only.
INDIR="shared-album/Album Name"
LOGFILE=/mnt/public/Support/Systems/storage1/var/log/sync-photos/$( date "+%F" ).log
mkdir -p "$( dirname "${LOGFILE}" )"
PLECHO="$( which plecho 2>&1 || which cat )"
time rclone -v --gphotos-read-only sync "${REMOTE}:${INDIR}" "${OUTDIR}" 2>&1 | "${PLECHO}" | tee -a "${LOGFILE}"

The script itself ran great the first time, and downloaded all images (and videos) from the album. Upon second run though, the task seems stuck. Ah, well, I’ll solve that over time.
For a cron job to run this daily, add file /etc/cron.d/90_google-photos-sync.cron

# File: /etc/cron.d/90_google-photos-sync.cron
# for google photos album shared by another google user. Save down all images so that HTPC can use them in the screensaver.
45 04 *  *  *  root  /etc/installed/ 1>/dev/null 2>&1

And as with all good cron jobs, suppress the standard output and standard error and use the job itself to store logs.

Using images in xscreensaver

On my Devuan GNU+Linux home theater PC, I use xscreensaver. To take advantage of a simple slideshow feature, make sure to have package xscreensaver-gl installed.
Xscreensaver settings on main tab showing GLSlideshow selected
Select GLSlideshow and option “Only one screen saver.” The Tesselimage screensaver was very entertaining when used on personal photos but not all end users agreed with me.
Xscreensaver GLSlideshow settings page showing sliders with useful settings
Adjust sliders as necessary. I found that on the default settings, the slideshow would fade out and back in, on the same photo, about three times, before finally moving on to the next image. So these sliders’ positions were successful in always showing a new image on each fadeout, which was also slowed down.
On the advanced settings tab of GLSlideshow, the sliders were instantiated as:

glslideshow -root -delay 30081 -duration 10 -pan 10

Xcreensaver settings on the advanced tab showing what directory to pull random images from
And of course, choose the destination directory (nfs mounted in my case) on the advanced settings.

For the really hardcore users, some of the relevant .xscreensaver values I could find include:

chooseRandomImages: True
imageDirectory:   /mnt/public/Images/google-drive/photos
mode:    one
selected:       143
programs:                              \
- GL:             glslideshow -root -delay 30081 -duration      \
              10 -pan 10                \n\

It is worth noting that the glslideshow entry is 143 lines below the programs: line.

Extra thoughts

Even though a Google Photos album that is shared might be accessed anonymously, the rclone utility requires an account.
Linux – keep it simple.



Palemoon 64-bit for Linux and Google Talk Plugin

  1. Install Palemoon using the from
  2. Visit gmail and initiate a call, which will cause it to prompt you to download the google talk plugin. Install it.
  3. Load the libraries in the directory Pale Moon looks in:
    pushd /usr/lib/mozilla/plugins 1>/dev/null 2>&1
    sudo ln -s ../../../../opt/google/talkplugin/
    sudo ln -s ../../../../opt/google/talkplugin/
    popd 1>/dev/null 2>&1

    You don’t even need to close and re-open the browser!

You will still get the warning “Hangouts phone calls will temporarily stop working in Firefox.” When making an outgoing call, you can dismiss the warning. However, I was unable dismiss the warning when receiving a call, which means I was not able to receive calls. I don’t know how to fix that part.

Also, on occasion, it simply wouldn’t make an outgoing call. Just cancel and try again, and then it will work.



Original research

rpmrebuild google-talkplugin_current_x86_64.rpm

Cannot create items in Google Calendar

If you use Google Calendar in Firefox, you might be unable to add calendar items. It displays this error: “Oops, we couldn’t create this event, please try again in a few minutes.”

A workaround was discovered by a user on the Google Calendar Help Forum.

harpseal said:

I think I found an answer. Delete the google calendar specific cookies and reload. After I did this it lets me create events. YAY! Hope this works for others.




Using Google Talk Plugin in Palemoon Portable in Wine on Linux


My main browser is Palemoon Portable which I run in Wine on GNU/Linux. I also use Gmail, Google Talk (the pre-Hangouts tool), and Google Voice.

In order to make and receive phone calls from my main web gmail page, I used this process.

  1. Install Adobe Flash Player for Firefox on Windows. I used the offline installer from the download link at Weblink 2.
    1. Used my Linux native Firefox to navigate to the normal Adobe flash player download page.
    2. Selected “Need Flash Player for different computer?”
    3. Selected Windows 7/Vista/XP and FP 25 for Firefox – NPAPI.
    4. From a terminal, I ran the following command and installed Flash like ~/Downloads/install_flash_player.exe
  2. Install Google Talk plugin.
    1. Unfortunately the gmail link for “Download voice chat plugin” failed to complete. When I ran wine ~/Downloads/GoogleVoiceAndVideoSetup.exe from a terminal, I observed that the process failed because of some network issue related to wine:fixme:secur32:schannel_get_cipher_algid unknown algorithm 23
      fixme:secur32:schannel_get_mac_algid unknown algorithm 200

      I bet it has something to do with the way my GNU/Linux computers always have some long MAC address in my dhcp list instead of a normal 12-character value. I don’t know how to fix that, nor was I able to trick the installer to continue.
    2. So I had to install the Google Talk plugin manually.
      1. I used a Windows computer that already had a working environment of Google Talk for Palemoon Portable. I copied these files:C:\Users\bgstack15\AppData\Roaming\Mozilla\plugins\npgoogletalk.dll
        To location
        Where /usr/share/PMP257 is my D:\PortableApps location.
      2. I also copied this entire directory:C:\Users\bgstack15\AppData\Local\Google\Google Talk Plugin\
        As the directory
        /usr/share/PMP257/Lib/Mozilla/Plugins/Google Talk Plugin/
      3. I set up the wine registry with a key and values from a registry file as seen
        touch "${tf}"; chmod 0644 "${tf}"
        cat << EOF > "${tf}"
        [HKEY_CURRENT_USER\Software\Google\Google Talk Plugin]
        "install_dir"="z:\\usr\\share\\PMP257\\Lib\\Mozilla\\Plugins\\Google Talk Plugin\\"
        regedit "${tf}"

        If the registry file does not import properly, try sticking a blank line after REGEDIT4. WordPress and the html <code> tag do not play nicely together with blank lines in code.


This entire process was made possible by the fantastic users of the community: portablealpha, taosk8r, acamp, and robertcollier4. It was that one page (weblink 1), and my working but disused Windows installation that made this whole process possible.


I realize I make life hard for myself, for using a web interface in a portable version of a small fork of a web browser in an emulator.

The story behind why I use this portable browser, in wine, on Linux, is this. When I first started getting on the Internet, I was a teenager and did not own my own computer. I had a flash drive, and I used it to store my personal files. I discovered PortableApps which let me use probably Firefox 2 or 3 from my flash drive. Even as I grew and got my own computers, I still kept my main web browser as a portable one so it would be relatively free from OS hooks so it was easy to transplant from system to system, as I migrated my main workstation. I built up a new installation every couple of years, hopping from Firefox 17 at one point to 27 to 33 to 38. After that, I switched to Palemoon 25 Portable and that is what I’m still on as of this post.

Now, 2016 was the Year of Linux on the Desktop for me, as I wanted to avoid the Windows 10 debacle. I had installed Korora 22 Cinnamon on a spare laptop in November of 2015 and from there made it my main system. In February of 2016 I copied over my Palemoon Portable install and it ran in Wine just fine! The only problem it had was it didn’t work with Google Voice.

This week I was trying to solve a VLC dlna problem where it was not finding my Plex server. I got frustrated with that (a bug that’s still unresolved and transitioned into looking into the Google talk problem on Palemoon Portable.



  1. Entire portableapps thread explaining how to get a PortableApp to use Google Talk.

Portablealpha on September 15, 2010 – 9:18pm

Adding Google Voice plugin

Just wanted to let people know how I got the Google Voice plugin to work so that I could use the “Call Phone” feature from within gmail. This is *not* elegant but it’s the only way I could figure it out because the target computer is behind some nasty firewalls (and the Google Voice installer isn’t allowed to call home to download its files).

1. Install the Google Voice plugin on your home computer.
2. Locate the Google Voice and Video Accelerator plugins in FF using about:plugins.
3. Copy those to your Firefox Portable plugins directory on the flash drive.
4. Locate the “Google Talk Plugin” folder on your hard drive and copy it to the flash drive (doesn’t matter where).

When you want to use Google Voice through Firefox Portable, run the exe in the Google Talk Plugin first, then start FFP and go to gmail. Note that once you exit gmail, it will stop the exe, so you’ll have to run it again manually if needed.

Anyone have any suggestions to automate this?

Taosk8r on June 11, 2011 – 1:42am

Oh good

I found this thread again.. I cant seem to find where ff 4.0 puts these.. the info I get is:



Is this even still relevant?

Acamp on October 21, 2011 – 3:13am


Works like a charm!

You have to search your computer for those two files (real pain in the ass on newer windows machines because they try not to display any scary system files). Once windows can’t find it, click advanced, check include non-indexed, hidden and system files.

You also need to search for the folder “Google Talk Plugin” and copy that to the flash drive. It contains the executable that needs to be launched before Firefox is opened

Robertcollier4 on September 28, 2012 – 7:33am

Works without needing to load the EXE manually

Create the following directory structure if not already existing:

Place the following files/folders in Plugins directory:
“Google Talk Plugin” (complete folder)
“Google Talk Plugin Extras” (complete folder)

The files are located at:
DocsandSettings\Username\Local Settings\Application Data\Google\Google Talk Plugin\
DocsandSettings\Username\Application Data\Mozilla\plugins\

Then it will work and the EXE will automatically load from Gmail.

Robertcollier4 on September 30, 2012 – 2:02pm

Specify path in registry to load EXE automatically

Hi – there is one update. If you want the EXE to run automatically, you must add the following registry key with the proper path to googletalkplugin.exe so that it knows where to find it and load it automatically. It will work without adding the registry path – but if the registry path is not there as shown below then you must run the googletalkplugin.exe manually before loading the browser.

Windows Registry Editor Version 5.00

[HKEY_CURRENT_USER\Software\Google\Google Talk Plugin]
“install_dir”=”D:\\FirefoxPortable\\Data\\Plugins\\Google Talk Plugin\\”

  2. Normal adobe flash player download page