summaryrefslogtreecommitdiff
path: root/pywal
diff options
context:
space:
mode:
authorAaron Eikenberry <aeikenberry@gmail.com>2017-08-02 23:41:51 -0500
committerAaron Eikenberry <aeikenberry@gmail.com>2017-08-02 23:41:51 -0500
commit282605376dc017cfe8a7d562e4a7e3f78bcb63f1 (patch)
treef7e7c1c28d826477814312bcfac1bd5ecafc53e7 /pywal
parent648ff3c4f0480a5ef528cd3118e9bc4fee393e7e (diff)
reverts unsafe shell=True, add option for skipping reload environment
Diffstat (limited to 'pywal')
-rw-r--r--pywal/__main__.py7
-rw-r--r--pywal/wallpaper.py9
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):