From b205223f638e134bd03f33652e37e1ba91596813 Mon Sep 17 00:00:00 2001 From: Vincent Bernat Date: Thu, 5 Feb 2015 09:26:17 +0100 Subject: [PATCH] wallpaper: use a temporary file to save current wallpaper Otherwise, other utilities (like i3lock) may get a corrupted image. --- bin/build-wallpaper | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/bin/build-wallpaper b/bin/build-wallpaper index 09ebb6e..440863e 100755 --- a/bin/build-wallpaper +++ b/bin/build-wallpaper @@ -9,6 +9,7 @@ import os import random import string import optparse +import tempfile import xcb import xcb.xproto @@ -82,4 +83,7 @@ for index in range(len(screens)): # Save assert background, "Don't know the size of the display area" -background.save(options.target) +with tempfile.NamedTemporaryFile(delete=False, + dir=os.path.dirname(os.path.realpath(options.target))) as tmp: + background.save(tmp, "jpeg") + os.rename(tmp.name, options.target)