summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--pywal/reload.py7
-rw-r--r--pywal/sequences.py10
-rw-r--r--pywal/wallpaper.py13
3 files changed, 24 insertions, 6 deletions
diff --git a/pywal/reload.py b/pywal/reload.py
index 6ea5c43..de96090 100644
--- a/pywal/reload.py
+++ b/pywal/reload.py
@@ -48,6 +48,12 @@ def i3():
util.disown(["i3-msg", "reload"])
+def bspwm():
+ """Reload bspwm colors."""
+ if shutil.which("bspc") and util.get_pid("bspwm"):
+ util.disown(["bspc", "wm", "-r"])
+
+
def kitty():
""" Reload kitty colors. """
if shutil.which("kitty") and util.get_pid("kitty"):
@@ -81,6 +87,7 @@ def env(xrdb_file=None, tty_reload=True):
"""Reload environment."""
xrdb(xrdb_file)
i3()
+ bspwm()
kitty()
sway()
polybar()
diff --git a/pywal/sequences.py b/pywal/sequences.py
index b42c3b7..b5028bc 100644
--- a/pywal/sequences.py
+++ b/pywal/sequences.py
@@ -11,7 +11,7 @@ from . import util
def set_special(index, color, iterm_name="h", alpha=100):
"""Convert a hex color to a special sequence."""
- if OS == "Darwin":
+ if OS == "Darwin" and iterm_name:
return "\033]P%s%s\033\\" % (iterm_name, color.strip("#"))
if index in [11, 708] and alpha != "100":
@@ -51,16 +51,16 @@ def create_sequences(colors, vte_fix=False):
set_special(10, colors["special"]["foreground"], "g"),
set_special(11, colors["special"]["background"], "h", alpha),
set_special(12, colors["special"]["cursor"], "l"),
- set_special(13, colors["special"]["foreground"], "l"),
- set_special(17, colors["special"]["foreground"], "l"),
- set_special(19, colors["special"]["background"], "l"),
+ set_special(13, colors["special"]["foreground"], "j"),
+ set_special(17, colors["special"]["foreground"], "k"),
+ set_special(19, colors["special"]["background"], "m"),
set_color(232, colors["special"]["background"]),
set_color(256, colors["special"]["foreground"])
])
if not vte_fix:
sequences.extend(
- set_special(708, colors["special"]["background"], "l", alpha)
+ set_special(708, colors["special"]["background"], "", alpha)
)
if OS == "Darwin":
diff --git a/pywal/wallpaper.py b/pywal/wallpaper.py
index e648d5a..e711713 100644
--- a/pywal/wallpaper.py
+++ b/pywal/wallpaper.py
@@ -109,7 +109,18 @@ def set_mac_wallpaper(img):
"""Set the wallpaper on macOS."""
db_file = "Library/Application Support/Dock/desktoppicture.db"
db_path = os.path.join(HOME, db_file)
- subprocess.call(["sqlite3", db_path, "update data set value = '%s'" % img])
+ img_dir, _ = os.path.split(img)
+
+ # Clear the existing picture data and write the image paths
+ sql = "delete from data; "
+ sql += "insert into data values(\"%s\"); " % img_dir
+ sql += "insert into data values(\"%s\"); " % img
+
+ # Set all monitors/workspaces to the selected image
+ sql += "update preferences set data_id=2 where key=1 or key=2 or key=3; "
+ sql += "update preferences set data_id=1 where key=10 or key=20 or key=30;"
+
+ subprocess.call(["sqlite3", db_path, sql])
# Kill the dock to fix issues with cached wallpapers.
# macOS caches wallpapers and if a wallpaper is set that shares