reverts unsafe shell=True, add option for skipping reload environment

This commit is contained in:
Aaron Eikenberry 2017-08-02 23:41:51 -05:00
parent 648ff3c4f0
commit 282605376d
2 changed files with 14 additions and 2 deletions

View File

@ -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])

View File

@ -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):