From 282605376dc017cfe8a7d562e4a7e3f78bcb63f1 Mon Sep 17 00:00:00 2001 From: Aaron Eikenberry Date: Wed, 2 Aug 2017 23:41:51 -0500 Subject: reverts unsafe shell=True, add option for skipping reload environment --- pywal/__main__.py | 7 ++++++- pywal/wallpaper.py | 9 ++++++++- 2 files changed, 14 insertions(+), 2 deletions(-) diff --git a/pywal/__main__.py b/pywal/__main__.py index 460d77b..dbca515 100644 --- a/pywal/__main__.py +++ b/pywal/__main__.py @@ -65,6 +65,9 @@ def get_args(args): arg.add_argument("-v", action="store_true", help="Print \"wal\" version.") + arg.add_argument("-e", action="store_true", + help="Skip Reloading Environment gtk/xrdb/i3/polybar") + return arg.parse_args(args) @@ -114,7 +117,9 @@ def process_args(args): wallpaper.change(colors_plain["wallpaper"]) export.every(colors_plain) - reload.env() + + if not args.e: + reload.env() if args.o: util.disown([args.o]) diff --git a/pywal/wallpaper.py b/pywal/wallpaper.py index 17c60a1..f1ce1dd 100644 --- a/pywal/wallpaper.py +++ b/pywal/wallpaper.py @@ -83,7 +83,14 @@ def set_desktop_wallpaper(desktop, img): def set_mac_wallpaper(img): """Set the wallpaper on macOS.""" - subprocess.Popen(f"""osascript -e 'tell application "Finder" to set desktop picture to POSIX file "{img}"'""", shell=True) + db_file = HOME / "Library/Application Support/Dock/desktoppicture.db" + subprocess.call(["sqlite3", db_file, f"update data set value = '{img}'"]) + + # Kill the dock to fix issues with cached wallpapers. + # macOS caches wallpapers and if a wallpaper is set that shares + # the filename with a cached wallpaper, the cached wallpaper is + # used instead. + subprocess.call(["killall", "Dock"]) def change(img): -- cgit v1.2.3