diff options
| -rw-r--r-- | pywal/__main__.py | 7 | ||||
| -rw-r--r-- | 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): |
