From 22a2618c21792c7e8af83abb7ec33b11d572b821 Mon Sep 17 00:00:00 2001
From: Dylan Araps
Date: Thu, 31 May 2018 07:15:58 +1000
Subject: [PATCH 001/127] backend: Import colorz instead of running it as a
subprocess.
---
pywal/backends/colorz.py | 21 +++++++++++++++------
1 file changed, 15 insertions(+), 6 deletions(-)
diff --git a/pywal/backends/colorz.py b/pywal/backends/colorz.py
index 642ff6b..3c5dfe3 100644
--- a/pywal/backends/colorz.py
+++ b/pywal/backends/colorz.py
@@ -6,14 +6,22 @@ import shutil
import subprocess
import sys
+try:
+ import colorz
+
+except ImportError:
+ logging.error("colorz wasn't found on your system.")
+ logging.error("Try another backend. (wal --backend)")
+ sys.exit(1)
+
from .. import colors
from .. import util
def gen_colors(img):
"""Generate a colorscheme using Colorz."""
- cmd = ["colorz", "-n", "6", "--bold", "0", "--no-preview", "--no-bg-img"]
- return subprocess.check_output([*cmd, img]).splitlines()
+ raw_colors = colorz.colorz(img, n=6, bold_add=0)
+ return [util.rgb_to_hex([*color[0]]) for color in raw_colors]
def adjust(cols, light):
@@ -28,10 +36,11 @@ def adjust(cols, light):
def get(img, light=False):
"""Get colorscheme."""
- if not shutil.which("colorz"):
- logging.error("Colorz wasn't found on your system.")
- logging.error("Try another backend. (wal --backend)")
+ cols = gen_colors(img)
+
+ if len(cols) < 6:
+ logging.error("colorz failed to generate enough colors.")
+ logging.error("Try another backend or another image. (wal --backend)")
sys.exit(1)
- cols = [col.decode('UTF-8').split()[0] for col in gen_colors(img)]
return adjust(cols, light)
From 471bc295e828d7ac06ec29b336f349057d4f3534 Mon Sep 17 00:00:00 2001
From: Dylan Araps
Date: Thu, 31 May 2018 07:20:29 +1000
Subject: [PATCH 002/127] backend: Remove unused imports.
---
pywal/backends/colorz.py | 2 --
1 file changed, 2 deletions(-)
diff --git a/pywal/backends/colorz.py b/pywal/backends/colorz.py
index 3c5dfe3..431e249 100644
--- a/pywal/backends/colorz.py
+++ b/pywal/backends/colorz.py
@@ -2,8 +2,6 @@
Generate a colorscheme using Colorz.
"""
import logging
-import shutil
-import subprocess
import sys
try:
From 6c0cdf212d174766bea0f09480b6d9a17bfadac4 Mon Sep 17 00:00:00 2001
From: Dylan Araps
Date: Sun, 3 Jun 2018 14:41:21 +1000
Subject: [PATCH 003/127] shell: Fix source error in zsh
---
pywal/templates/colors.sh | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/pywal/templates/colors.sh b/pywal/templates/colors.sh
index 22dbd46..b607b93 100644
--- a/pywal/templates/colors.sh
+++ b/pywal/templates/colors.sh
@@ -33,4 +33,4 @@ export FZF_DEFAULT_OPTS="
"
# Fix LS_COLORS being unreadable.
-export LS_COLORS="$LS_COLORS:su=30;41:ow=30;42:st=30;44:"
+export LS_COLORS="${{LS_COLORS}}:su=30;41:ow=30;42:st=30;44:"
From 8370b90cb8ae9cd0ccdffbc0471ddb445c47625f Mon Sep 17 00:00:00 2001
From: Dylan Araps
Date: Mon, 4 Jun 2018 11:23:48 +1000
Subject: [PATCH 004/127] template: Added vim template
---
pywal/templates/colors-wal.vim | 23 +++++++++++++++++++++++
1 file changed, 23 insertions(+)
create mode 100644 pywal/templates/colors-wal.vim
diff --git a/pywal/templates/colors-wal.vim b/pywal/templates/colors-wal.vim
new file mode 100644
index 0000000..1879c22
--- /dev/null
+++ b/pywal/templates/colors-wal.vim
@@ -0,0 +1,23 @@
+" Special
+let wallpaper = "{wallpaper}"
+let background = "{background}"
+let foreground = "{foreground}"
+let cursor = "{cursor}"
+
+" Colors
+let color0 = "{color0}"
+let color1 = "{color1}"
+let color2 = "{color2}"
+let color3 = "{color3}"
+let color4 = "{color4}"
+let color5 = "{color5}"
+let color6 = "{color6}"
+let color7 = "{color7}"
+let color8 = "{color8}"
+let color9 = "{color9}"
+let color10 = "{color10}"
+let color11 = "{color11}"
+let color12 = "{color12}"
+let color13 = "{color13}"
+let color14 = "{color14}"
+let color15 = "{color15}"
From cb626443836e73fe1fdd78f35a107796ddeeabd6 Mon Sep 17 00:00:00 2001
From: Dylan Araps
Date: Tue, 5 Jun 2018 07:44:51 +1000
Subject: [PATCH 005/127] docs: update
---
README.md | 8 +++-----
1 file changed, 3 insertions(+), 5 deletions(-)
diff --git a/README.md b/README.md
index 8d34bfa..022a974 100644
--- a/README.md
+++ b/README.md
@@ -7,6 +7,7 @@
+
Date: Tue, 5 Jun 2018 09:55:21 +1000
Subject: [PATCH 006/127] docs: update
---
README.md | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/README.md b/README.md
index 022a974..8496cdc 100644
--- a/README.md
+++ b/README.md
@@ -2,7 +2,7 @@
Generate and change color-schemes on the fly.
-
+
From c0dd57ecc26df042e034a2702c8f71670b3dfdf7 Mon Sep 17 00:00:00 2001
From: Jagannath Natarajan
Date: Sat, 16 Jun 2018 16:51:09 -0700
Subject: [PATCH 007/127] Fix alpha not being set correctly running same image
twice
---
pywal/colors.py | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/pywal/colors.py b/pywal/colors.py
index 26e2c60..f8d7260 100644
--- a/pywal/colors.py
+++ b/pywal/colors.py
@@ -119,7 +119,7 @@ def get(img, light=False, backend="wal", cache_dir=CACHE_DIR):
colors = theme.file(cache_file)
logger.disabled = False
- util.Color.alpha_num = colors["alpha"]
+ colors["alpha"] = util.Color.alpha_num
logging.info("Found cached colorscheme.")
else:
From 725db44f0be493461d7158177862ca33e326e92b Mon Sep 17 00:00:00 2001
From: Dylan Araps
Date: Wed, 20 Jun 2018 10:32:04 +1000
Subject: [PATCH 008/127] docs: update
---
README.md | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/README.md b/README.md
index 8496cdc..b2bad4e 100644
--- a/README.md
+++ b/README.md
@@ -29,4 +29,4 @@ Terminal emulators and TTYs have their color-schemes updated in real-time with n
Donations allow me to spend more time working on `pywal` and my other Open Source projects. If you like `pywal` and want to give back in some way you can donate at the links below.
-
+
From 55116a483429fa211566768718e4b50cb5243a46 Mon Sep 17 00:00:00 2001
From: Dylan Araps
Date: Thu, 21 Jun 2018 07:47:48 +1000
Subject: [PATCH 009/127] sequences: Fixed extra white space in iterm2
---
pywal/sequences.py | 8 +++-----
1 file changed, 3 insertions(+), 5 deletions(-)
diff --git a/pywal/sequences.py b/pywal/sequences.py
index b713a6e..8566975 100644
--- a/pywal/sequences.py
+++ b/pywal/sequences.py
@@ -30,11 +30,9 @@ def set_color(index, color):
def set_iterm_tab_color(color):
"""Set iTerm2 tab/window color"""
- return """
- \033]6;1;bg;red;brightness;%s\a
- \033]6;1;bg;green;brightness;%s\a
- \033]6;1;bg;blue;brightness;%s\a
- """ % (*util.hex_to_rgb(color),)
+ return ("\033]6;1;bg;red;brightness;%s\a"
+ "\033]6;1;bg;green;brightness;%s\a"
+ "\033]6;1;bg;blue;brightness;%s\a") % (*util.hex_to_rgb(color),)
def create_sequences(colors):
From 01356561c649ab90797e9d734d82f378938cb3ad Mon Sep 17 00:00:00 2001
From: Dylan Araps
Date: Thu, 21 Jun 2018 08:19:01 +1000
Subject: [PATCH 010/127] sequences: Fix broken sequence on macOS.
---
pywal/sequences.py | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/pywal/sequences.py b/pywal/sequences.py
index 8566975..cb70e93 100644
--- a/pywal/sequences.py
+++ b/pywal/sequences.py
@@ -22,8 +22,8 @@ def set_special(index, color, iterm_name="h", alpha=100):
def set_color(index, color):
"""Convert a hex color to a text color sequence."""
- if OS == "Darwin":
- return "\033]P%x%s\033\\" % (index, color.strip("#"))
+ if OS == "Darwin" and index < 20:
+ return "\033]P%1x%s\033\\" % (index, color.strip("#"))
return "\033]4;%s;%s\033\\" % (index, color)
From 46351f20ac497e1901a55859c2a4978982048e8d Mon Sep 17 00:00:00 2001
From: Dylan Araps
Date: Thu, 21 Jun 2018 08:22:51 +1000
Subject: [PATCH 011/127] sequences: fix test
---
tests/test_sequences.py | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/tests/test_sequences.py b/tests/test_sequences.py
index 3e9f855..d37de7b 100755
--- a/tests/test_sequences.py
+++ b/tests/test_sequences.py
@@ -48,7 +48,7 @@ class Testsequences(unittest.TestCase):
def test_set_iterm_tab_color(self):
"""> Create iterm tab color sequences"""
result = sequences.set_iterm_tab_color(COLORS["special"]["background"])
- self.assertEqual(len(result), 104)
+ self.assertEqual(len(result), 84)
if __name__ == "__main__":
From 7704f529c14dd85f37b15918aba657d37fd1aef3 Mon Sep 17 00:00:00 2001
From: Dylan Araps
Date: Thu, 21 Jun 2018 10:45:30 +1000
Subject: [PATCH 012/127] colors: Added saturate option. Closes #166
---
.pylintrc | 2 +-
pywal/__main__.py | 6 +++++-
pywal/colors.py | 23 +++++++++++++++++------
pywal/util.py | 5 ++---
4 files changed, 25 insertions(+), 11 deletions(-)
diff --git a/.pylintrc b/.pylintrc
index e41fb8c..ae5b20d 100644
--- a/.pylintrc
+++ b/.pylintrc
@@ -1,5 +1,5 @@
[BASIC]
-good-names=i,j,k,n,x,y,fg,bg,r,g,b,i3,r1,r2,r3,g1,g2,g3,b1,b2,b3,h,s,v
+good-names=i,j,k,n,x,y,fg,bg,r,g,b,i3,r1,r2,r3,g1,g2,g3,b1,b2,b3,h,s,v,l
[MESSAGES CONTROL]
# inconsistent-return-statements:
diff --git a/pywal/__main__.py b/pywal/__main__.py
index 73c2d83..c195b5d 100644
--- a/pywal/__main__.py
+++ b/pywal/__main__.py
@@ -53,6 +53,9 @@ def get_args():
"flag is used: Go through the images in order "
"instead of shuffled.")
+ arg.add_argument("--saturate", metavar="0.0-1.0",
+ help="Set the color saturation.")
+
arg.add_argument("-c", action="store_true",
help="Delete all cached colorschemes.")
@@ -147,7 +150,8 @@ def parse_args(parser):
if args.i:
image_file = image.get(args.i, iterative=args.iterative)
- colors_plain = colors.get(image_file, args.l, args.backend)
+ colors_plain = colors.get(image_file, args.l, args.backend,
+ sat=args.saturate)
if args.theme:
colors_plain = theme.file(args.theme, args.l)
diff --git a/pywal/colors.py b/pywal/colors.py
index f8d7260..e4fae46 100644
--- a/pywal/colors.py
+++ b/pywal/colors.py
@@ -73,13 +73,23 @@ def generic_adjust(colors, light):
return colors
-def cache_fname(img, backend, light, cache_dir):
+def saturate_colors(colors, amount):
+ """Saturate all colors."""
+ if float(amount) <= 1.0:
+ for i, _ in enumerate(colors):
+ if i not in [0, 7, 8, 15]:
+ colors[i] = util.saturate_color(colors[i], float(amount))
+
+ return colors
+
+
+def cache_fname(img, backend, light, cache_dir, sat=""):
"""Create the cache file name."""
color_type = "light" if light else "dark"
file_name = re.sub("[/|\\|.]", "_", img)
- file_parts = [file_name, color_type, backend, __cache_version__]
- return [cache_dir, "schemes", "%s_%s_%s_%s.json" % (*file_parts,)]
+ file_parts = [file_name, color_type, backend, sat, __cache_version__]
+ return [cache_dir, "schemes", "%s_%s_%s_%s_%s.json" % (*file_parts,)]
def get_backend(backend):
@@ -106,10 +116,10 @@ def palette():
print("\n")
-def get(img, light=False, backend="wal", cache_dir=CACHE_DIR):
+def get(img, light=False, backend="wal", cache_dir=CACHE_DIR, sat=""):
"""Generate a palette."""
# home_dylan_img_jpg_backend_1.2.2.json
- cache_name = cache_fname(img, backend, light, cache_dir)
+ cache_name = cache_fname(img, backend, light, cache_dir, sat)
cache_file = os.path.join(*cache_name)
if os.path.isfile(cache_file):
@@ -136,7 +146,8 @@ def get(img, light=False, backend="wal", cache_dir=CACHE_DIR):
logging.info("Using %s backend.", backend)
backend = sys.modules["pywal.backends.%s" % backend]
- colors = colors_to_dict(getattr(backend, "get")(img, light), img)
+ colors = getattr(backend, "get")(img, light)
+ colors = colors_to_dict(saturate_colors(colors, sat), img)
util.save_file_json(colors, cache_file)
logging.info("Generation complete.")
diff --git a/pywal/util.py b/pywal/util.py
index 4495dbe..a915a43 100644
--- a/pywal/util.py
+++ b/pywal/util.py
@@ -149,10 +149,9 @@ def saturate_color(color, amount):
"""Saturate a hex color."""
r, g, b = hex_to_rgb(color)
r, g, b = [x/255.0 for x in (r, g, b)]
- h, s, v = colorsys.rgb_to_hsv(r, g, b)
+ h, l, s = colorsys.rgb_to_hls(r, g, b)
s = amount
- v = 0.2
- r, g, b = colorsys.hls_to_rgb(h, s, v)
+ r, g, b = colorsys.hls_to_rgb(h, l, s)
r, g, b = [x*255.0 for x in (r, g, b)]
return rgb_to_hex((int(r), int(g), int(b)))
From 0e9d68aa2a490753209f85d447572fd0c10684e9 Mon Sep 17 00:00:00 2001
From: Dylan Araps
Date: Thu, 21 Jun 2018 10:51:11 +1000
Subject: [PATCH 013/127] colors: fix test
---
pywal/colors.py | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/pywal/colors.py b/pywal/colors.py
index e4fae46..ddf1899 100644
--- a/pywal/colors.py
+++ b/pywal/colors.py
@@ -75,7 +75,7 @@ def generic_adjust(colors, light):
def saturate_colors(colors, amount):
"""Saturate all colors."""
- if float(amount) <= 1.0:
+ if amount and float(amount) <= 1.0:
for i, _ in enumerate(colors):
if i not in [0, 7, 8, 15]:
colors[i] = util.saturate_color(colors[i], float(amount))
From 02f35976c2d4e41e113266a3d79987e091001b79 Mon Sep 17 00:00:00 2001
From: Dylan Araps
Date: Thu, 21 Jun 2018 11:00:18 +1000
Subject: [PATCH 014/127] version: bump
---
pywal/settings.py | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/pywal/settings.py b/pywal/settings.py
index 80412a0..8963115 100644
--- a/pywal/settings.py
+++ b/pywal/settings.py
@@ -13,7 +13,7 @@ import os
import platform
-__version__ = "3.0.1"
+__version__ = "3.1.0"
__cache_version__ = "1.1.0"
From ca083b124a22f1feb5a41e8622cd7eafd5ccd2f9 Mon Sep 17 00:00:00 2001
From: Dylan Araps
Date: Thu, 21 Jun 2018 11:01:59 +1000
Subject: [PATCH 015/127] docs: update
---
CHANGELOG.md | 7 +++++++
1 file changed, 7 insertions(+)
diff --git a/CHANGELOG.md b/CHANGELOG.md
index 43ca82d..9562343 100644
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -7,6 +7,13 @@ and this project adheres to [Semantic Versioning](http://semver.org/spec/v2.0.0.
## [Unreleased]
+- Added `--saturate` to change color saturation.
+ - Takes a float as its value: `0.0` to `1.0`.
+- Added `vim` output file.
+- Fixed `LS_COLORS` issue.
+- Fixed issues in iTerm2 on macOS.
+- Fixed hang caused by `imagemagick`.
+
## [3.0.1] - 2018-05-27
From bbd1bd3558430341a9c76b63a302b587e9e1c648 Mon Sep 17 00:00:00 2001
From: Dylan Araps
Date: Thu, 21 Jun 2018 11:02:43 +1000
Subject: [PATCH 016/127] docs: update
---
CHANGELOG.md | 1 +
1 file changed, 1 insertion(+)
diff --git a/CHANGELOG.md b/CHANGELOG.md
index 9562343..562dfa0 100644
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -13,6 +13,7 @@ and this project adheres to [Semantic Versioning](http://semver.org/spec/v2.0.0.
- Fixed `LS_COLORS` issue.
- Fixed issues in iTerm2 on macOS.
- Fixed hang caused by `imagemagick`.
+- Fixed issue with `-i` and transparency.
## [3.0.1] - 2018-05-27
From 316adf5a6c0617a4bd94bf0083d6e03f4ebcd4ea Mon Sep 17 00:00:00 2001
From: Dylan Araps
Date: Thu, 21 Jun 2018 11:04:27 +1000
Subject: [PATCH 017/127] docs: update
---
CHANGELOG.md | 6 +++++-
1 file changed, 5 insertions(+), 1 deletion(-)
diff --git a/CHANGELOG.md b/CHANGELOG.md
index 562dfa0..f87ac52 100644
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -7,6 +7,9 @@ and this project adheres to [Semantic Versioning](http://semver.org/spec/v2.0.0.
## [Unreleased]
+
+## [3.1.0] - 2018-06-21
+
- Added `--saturate` to change color saturation.
- Takes a float as its value: `0.0` to `1.0`.
- Added `vim` output file.
@@ -648,7 +651,8 @@ Note to self: Don't flag releases before coffee.
-[Unreleased]: https://github.com/dylanaraps/pywal/compare/3.0.1...HEAD
+[Unreleased]: https://github.com/dylanaraps/pywal/compare/3.1.0...HEAD
+[3.1.0]: https://github.com/dylanaraps/pywal/compare/3.0.1...3.1.0
[3.0.1]: https://github.com/dylanaraps/pywal/compare/3.0.0...3.0.1
[3.0.0]: https://github.com/dylanaraps/pywal/compare/2.1.0...3.0.0
[2.1.0]: https://github.com/dylanaraps/pywal/compare/2.0.5...2.1.0
From f29164baf95e50d8938d465f7197633d60186b21 Mon Sep 17 00:00:00 2001
From: Dylan Araps
Date: Thu, 21 Jun 2018 13:46:45 +1000
Subject: [PATCH 018/127] args: -c now exits, colors: simplified colorz
---
pywal/__main__.py | 9 +++++----
pywal/backends/colorz.py | 4 +---
2 files changed, 6 insertions(+), 7 deletions(-)
diff --git a/pywal/__main__.py b/pywal/__main__.py
index c195b5d..dd95ee5 100644
--- a/pywal/__main__.py
+++ b/pywal/__main__.py
@@ -116,6 +116,11 @@ def parse_args_exit(parser):
reload.colors()
sys.exit(0)
+ if args.c:
+ scheme_dir = os.path.join(CACHE_DIR, "schemes")
+ shutil.rmtree(scheme_dir, ignore_errors=True)
+ sys.exit(0)
+
if not args.i and \
not args.theme and \
not args.R and \
@@ -141,10 +146,6 @@ def parse_args(parser):
logging.getLogger().disabled = True
sys.stdout = sys.stderr = open(os.devnull, "w")
- if args.c:
- scheme_dir = os.path.join(CACHE_DIR, "schemes")
- shutil.rmtree(scheme_dir, ignore_errors=True)
-
if args.a:
util.Color.alpha_num = args.a
diff --git a/pywal/backends/colorz.py b/pywal/backends/colorz.py
index 431e249..83afc5a 100644
--- a/pywal/backends/colorz.py
+++ b/pywal/backends/colorz.py
@@ -24,9 +24,7 @@ def gen_colors(img):
def adjust(cols, light):
"""Create palette."""
- bg = util.blend_color("#555555", cols[1])
-
- raw_colors = [bg, *cols, "#FFFFFF",
+ raw_colors = [cols[0], *cols, "#FFFFFF",
"#333333", *cols, "#FFFFFF"]
return colors.generic_adjust(raw_colors, light)
From 63d8a92e4f4d8899fe4f82fd4fb8b60fe49d2729 Mon Sep 17 00:00:00 2001
From: Dylan Araps
Date: Fri, 22 Jun 2018 06:54:03 +1000
Subject: [PATCH 019/127] theme: Removed broken theme file. Closes #263
---
pywal/colorschemes/dark/dkeg-conv.sh.json | 1 -
1 file changed, 1 deletion(-)
delete mode 100644 pywal/colorschemes/dark/dkeg-conv.sh.json
diff --git a/pywal/colorschemes/dark/dkeg-conv.sh.json b/pywal/colorschemes/dark/dkeg-conv.sh.json
deleted file mode 100644
index fa0e9a3..0000000
--- a/pywal/colorschemes/dark/dkeg-conv.sh.json
+++ /dev/null
@@ -1 +0,0 @@
-{"special":{"background":"#","foreground":""
\ No newline at end of file
From d49caeebfb9d76a4baa653cc9a8d143005d44688 Mon Sep 17 00:00:00 2001
From: Dylan Araps
Date: Sat, 23 Jun 2018 08:31:39 +1000
Subject: [PATCH 020/127] wal: Show usage when no args passed
---
pywal/__main__.py | 3 ++-
1 file changed, 2 insertions(+), 1 deletion(-)
diff --git a/pywal/__main__.py b/pywal/__main__.py
index dd95ee5..edaa1c2 100644
--- a/pywal/__main__.py
+++ b/pywal/__main__.py
@@ -104,7 +104,8 @@ def parse_args_exit(parser):
args = parser.parse_args()
if not len(sys.argv) > 1:
- parser.error("wal needs to be given arguments to run.")
+ parser.print_help()
+ sys.exit(1)
if args.v:
parser.exit(0, "wal %s\n" % __version__)
From f55d00920dbd5fe2e86a0e6f4627c67beafadd85 Mon Sep 17 00:00:00 2001
From: D-Vaillant
Date: Mon, 25 Jun 2018 10:28:16 -0700
Subject: [PATCH 021/127] Implemented palette preview.
---
pywal/__main__.py | 8 ++++++++
1 file changed, 8 insertions(+)
diff --git a/pywal/__main__.py b/pywal/__main__.py
index edaa1c2..b3812b4 100644
--- a/pywal/__main__.py
+++ b/pywal/__main__.py
@@ -56,6 +56,9 @@ def get_args():
arg.add_argument("--saturate", metavar="0.0-1.0",
help="Set the color saturation.")
+ arg.add_argument("--preview", action="store_true",
+ help="Print the current color palette.")
+
arg.add_argument("-c", action="store_true",
help="Delete all cached colorschemes.")
@@ -110,6 +113,11 @@ def parse_args_exit(parser):
if args.v:
parser.exit(0, "wal %s\n" % __version__)
+ if args.preview:
+ print("Current colorscheme:", sep='')
+ colors.palette()
+ sys.exit(0)
+
if args.i and args.theme:
parser.error("Conflicting arguments -i and -f.")
From ae79aba6e014071e931a04185b9cd455fb8ae72b Mon Sep 17 00:00:00 2001
From: Dylan Araps
Date: Tue, 26 Jun 2018 07:31:47 +1000
Subject: [PATCH 022/127] colors: Revert palette changes. Fixes #266
---
pywal/backends/wal.py | 19 ++++++++++++++-----
1 file changed, 14 insertions(+), 5 deletions(-)
diff --git a/pywal/backends/wal.py b/pywal/backends/wal.py
index 9d717b5..1a85e17 100644
--- a/pywal/backends/wal.py
+++ b/pywal/backends/wal.py
@@ -35,12 +35,21 @@ def has_im():
def gen_colors(img):
"""Format the output from imagemagick into a list
of hex colors."""
- raw_colors = imagemagick(20, img, has_im())
+ magick_command = has_im()
- if len(raw_colors) < 16:
- logging.error("Imagemagick couldn't generate a palette.")
- logging.error("Try a different image or backend.")
- sys.exit(1)
+ for i in range(0, 20, 1):
+ raw_colors = imagemagick(16 + i, img, magick_command)
+
+ if len(raw_colors) > 16:
+ break
+
+ elif i == 19:
+ logging.error("Imagemagick couldn't generate a suitable palette.")
+ sys.exit(1)
+
+ else:
+ logging.warning("Imagemagick couldn't generate a palette.")
+ logging.warning("Trying a larger palette size %s", 16 + i)
return [re.search("#.{6}", str(col)).group(0) for col in raw_colors[1:]]
From f13f7a05d5edbe0b064cb52720c22b81cd44c9dd Mon Sep 17 00:00:00 2001
From: vxid
Date: Mon, 2 Jul 2018 20:13:09 +0200
Subject: [PATCH 023/127] Add kitty support
---
pywal/export.py | 1 +
pywal/reload.py | 7 +++++++
pywal/templates/colors-kitty.conf | 20 ++++++++++++++++++++
3 files changed, 28 insertions(+)
create mode 100644 pywal/templates/colors-kitty.conf
diff --git a/pywal/export.py b/pywal/export.py
index 993e528..357656e 100644
--- a/pywal/export.py
+++ b/pywal/export.py
@@ -37,6 +37,7 @@ def get_export_type(export_type):
"gtk2": "colors-gtk2.rc",
"json": "colors.json",
"konsole": "colors-konsole.colorscheme",
+ "kitty": "colors-kitty.conf",
"plain": "colors",
"putty": "colors-putty.reg",
"rofi": "colors-rofi.Xresources",
diff --git a/pywal/reload.py b/pywal/reload.py
index 44deeca..ff3aa5b 100644
--- a/pywal/reload.py
+++ b/pywal/reload.py
@@ -65,6 +65,12 @@ def i3():
util.disown(["i3-msg", "reload"])
+def kitty():
+ """ Reload kitty colors. """
+ if shutil.which("kitty"):
+ util.disown(["kitty", "@", "set-colors", "--all"])
+
+
def polybar():
"""Reload polybar colors."""
if shutil.which("polybar"):
@@ -92,6 +98,7 @@ def env(xrdb_file=None, tty_reload=True):
"""Reload environment."""
xrdb(xrdb_file)
i3()
+ kitty()
sway()
polybar()
logging.info("Reloaded environment.")
diff --git a/pywal/templates/colors-kitty.conf b/pywal/templates/colors-kitty.conf
new file mode 100644
index 0000000..f744418
--- /dev/null
+++ b/pywal/templates/colors-kitty.conf
@@ -0,0 +1,20 @@
+foreground {foreground}
+background {background}
+cursor {cursor}
+
+color0 {color0}
+color8 {color8}
+color1 {color1}
+color9 {color9}
+color2 {color2}
+color10 {color10}
+color3 {color3}
+color11 {color11}
+color4 {color4}
+color12 {color12}
+color5 {color5}
+color13 {color13}
+color6 {color6}
+color14 {color14}
+color7 {color7}
+color15 {color15}
From f12ca2299936da5b2376b7728a87812cdac0b13b Mon Sep 17 00:00:00 2001
From: Dylan Araps
Date: Fri, 6 Jul 2018 08:23:13 +1000
Subject: [PATCH 024/127] travis: 3.7 support
---
.travis.yml | 2 ++
1 file changed, 2 insertions(+)
diff --git a/.travis.yml b/.travis.yml
index 11a9bfd..1db0dbb 100644
--- a/.travis.yml
+++ b/.travis.yml
@@ -6,6 +6,8 @@ matrix:
python: 3.5
- os: linux
python: 3.6
+ - os: linux
+ python: 3.7
before_install:
- if [[ "$TRAVIS_OS_NAME" == "linux" ]]; then sudo apt-get -qq update; fi
From 77708822632ab94d15c5ab01ca12320f32d8627a Mon Sep 17 00:00:00 2001
From: Dylan Araps
Date: Fri, 6 Jul 2018 08:30:18 +1000
Subject: [PATCH 025/127] docs: update
---
.travis.yml | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/.travis.yml b/.travis.yml
index 1db0dbb..9058ddb 100644
--- a/.travis.yml
+++ b/.travis.yml
@@ -7,7 +7,7 @@ matrix:
- os: linux
python: 3.6
- os: linux
- python: 3.7
+ python: 3.7-dev
before_install:
- if [[ "$TRAVIS_OS_NAME" == "linux" ]]; then sudo apt-get -qq update; fi
From 3b4cf07aa45419310b6ede7b001f4589445b2352 Mon Sep 17 00:00:00 2001
From: Dylan Araps
Date: Fri, 6 Jul 2018 08:32:54 +1000
Subject: [PATCH 026/127] docs: update
---
.travis.yml | 14 ++++++++------
1 file changed, 8 insertions(+), 6 deletions(-)
diff --git a/.travis.yml b/.travis.yml
index 9058ddb..1feeac8 100644
--- a/.travis.yml
+++ b/.travis.yml
@@ -1,13 +1,15 @@
language: python
+os: linux
+dist: xenial
+sudo: true
matrix:
include:
- - os: linux
- python: 3.5
- - os: linux
- python: 3.6
- - os: linux
- python: 3.7-dev
+ - python: 3.5
+ - python: 3.6
+ - python: 3.7
+ dist: xenial
+ sudo: true
before_install:
- if [[ "$TRAVIS_OS_NAME" == "linux" ]]; then sudo apt-get -qq update; fi
From d525bab593a42407b41375aaa6de24f6a04e5ea6 Mon Sep 17 00:00:00 2001
From: Dylan Araps
Date: Fri, 6 Jul 2018 08:36:29 +1000
Subject: [PATCH 027/127] travis: 3.7 support
---
tests/test_colors.py | 5 -----
1 file changed, 5 deletions(-)
diff --git a/tests/test_colors.py b/tests/test_colors.py
index a3b939c..0946585 100755
--- a/tests/test_colors.py
+++ b/tests/test_colors.py
@@ -12,11 +12,6 @@ class TestGenColors(unittest.TestCase):
result = colors.get("tests/test_files/test.jpg")
self.assertEqual(len(result["colors"]["color0"]), 7)
- def test_gen_colors_fail(self):
- """> Generate a colorscheme and fail."""
- with self.assertRaises(SystemExit):
- colors.get("tests/test_files/test.png")
-
def test_color_import(self):
"""> Read colors from a file."""
result = colors.file("tests/test_files/test_file.json")
From c5d5be8cdf0cdb8bdd178d27bd07df89a7a0d50a Mon Sep 17 00:00:00 2001
From: Dylan Araps
Date: Fri, 6 Jul 2018 08:37:42 +1000
Subject: [PATCH 028/127] travis: 3.7 support
---
pywal/backends/colorz.py | 1 +
1 file changed, 1 insertion(+)
diff --git a/pywal/backends/colorz.py b/pywal/backends/colorz.py
index 83afc5a..9197e9a 100644
--- a/pywal/backends/colorz.py
+++ b/pywal/backends/colorz.py
@@ -18,6 +18,7 @@ from .. import util
def gen_colors(img):
"""Generate a colorscheme using Colorz."""
+ # pylint: disable=not-callable
raw_colors = colorz.colorz(img, n=6, bold_add=0)
return [util.rgb_to_hex([*color[0]]) for color in raw_colors]
From 286513a9a0726da41b5d349c4ca264fa9d8b5524 Mon Sep 17 00:00:00 2001
From: Dylan Araps
Date: Fri, 6 Jul 2018 08:42:37 +1000
Subject: [PATCH 029/127] docs: update
---
.travis.yml | 6 +++---
1 file changed, 3 insertions(+), 3 deletions(-)
diff --git a/.travis.yml b/.travis.yml
index 1feeac8..285f837 100644
--- a/.travis.yml
+++ b/.travis.yml
@@ -7,9 +7,9 @@ matrix:
include:
- python: 3.5
- python: 3.6
- - python: 3.7
- dist: xenial
- sudo: true
+ # - python: 3.7
+ # dist: xenial
+ # sudo: true
before_install:
- if [[ "$TRAVIS_OS_NAME" == "linux" ]]; then sudo apt-get -qq update; fi
From 7e797405c552d545d185a086e5d13cd25e1c0413 Mon Sep 17 00:00:00 2001
From: Dylan Araps
Date: Fri, 6 Jul 2018 08:50:03 +1000
Subject: [PATCH 030/127] general: Fix quiet mode with cached schemes. Closes
#276
---
pywal/colors.py | 5 -----
1 file changed, 5 deletions(-)
diff --git a/pywal/colors.py b/pywal/colors.py
index ddf1899..a87ee4c 100644
--- a/pywal/colors.py
+++ b/pywal/colors.py
@@ -123,12 +123,7 @@ def get(img, light=False, backend="wal", cache_dir=CACHE_DIR, sat=""):
cache_file = os.path.join(*cache_name)
if os.path.isfile(cache_file):
- # Disable logging in theme.file().
- logger = logging.getLogger()
- logger.disabled = True
colors = theme.file(cache_file)
- logger.disabled = False
-
colors["alpha"] = util.Color.alpha_num
logging.info("Found cached colorscheme.")
From f26a8bbb5edcc2a485b2952db57742a2a1053187 Mon Sep 17 00:00:00 2001
From: Dylan Araps
Date: Fri, 6 Jul 2018 09:04:49 +1000
Subject: [PATCH 031/127] reload: Check pids first.
---
pywal/reload.py | 8 ++++----
pywal/util.py | 8 ++++++++
2 files changed, 12 insertions(+), 4 deletions(-)
diff --git a/pywal/reload.py b/pywal/reload.py
index ff3aa5b..5c2ca8a 100644
--- a/pywal/reload.py
+++ b/pywal/reload.py
@@ -61,25 +61,25 @@ def gtk():
def i3():
"""Reload i3 colors."""
- if shutil.which("i3-msg"):
+ if shutil.which("i3-msg") and util.get_pid("i3"):
util.disown(["i3-msg", "reload"])
def kitty():
""" Reload kitty colors. """
- if shutil.which("kitty"):
+ if shutil.which("kitty") and util.get_pid("kitty"):
util.disown(["kitty", "@", "set-colors", "--all"])
def polybar():
"""Reload polybar colors."""
- if shutil.which("polybar"):
+ if shutil.which("polybar") and util.get_pid("polybar"):
util.disown(["pkill", "-USR1", "polybar"])
def sway():
"""Reload sway colors."""
- if shutil.which("swaymsg"):
+ if shutil.which("swaymsg") and util.get_pid("sway"):
util.disown(["swaymsg", "reload"])
diff --git a/pywal/util.py b/pywal/util.py
index a915a43..1752f71 100644
--- a/pywal/util.py
+++ b/pywal/util.py
@@ -168,3 +168,11 @@ def disown(cmd):
subprocess.Popen(cmd,
stdout=subprocess.DEVNULL,
stderr=subprocess.DEVNULL)
+
+
+def get_pid(name):
+ """Check if process is running by name."""
+ try:
+ subprocess.check_output(["pidof", "-s", name])
+ except subprocess.CalledProcessError:
+ return False
From 1e504e9c1e0ba423118ba9c6982c1a8f00760fda Mon Sep 17 00:00:00 2001
From: Dylan Araps
Date: Fri, 6 Jul 2018 09:12:36 +1000
Subject: [PATCH 032/127] theme: Fix alpha. Closes #271
---
pywal/theme.py | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/pywal/theme.py b/pywal/theme.py
index 5c065a0..37936c5 100644
--- a/pywal/theme.py
+++ b/pywal/theme.py
@@ -72,7 +72,7 @@ def parse(theme_file):
data["wallpaper"] = "None"
if "alpha" not in data:
- data["alpha"] = "100"
+ data["alpha"] = util.Color.alpha_num
# Terminal.sexy format.
if "color" in data:
From 33c82904527db34965225b6bd3940ade51915dae Mon Sep 17 00:00:00 2001
From: Dylan Araps
Date: Wed, 11 Jul 2018 13:16:35 +1000
Subject: [PATCH 033/127] general: Fix reload
---
pywal/util.py | 2 ++
1 file changed, 2 insertions(+)
diff --git a/pywal/util.py b/pywal/util.py
index 1752f71..0557cc4 100644
--- a/pywal/util.py
+++ b/pywal/util.py
@@ -176,3 +176,5 @@ def get_pid(name):
subprocess.check_output(["pidof", "-s", name])
except subprocess.CalledProcessError:
return False
+
+ return True
From 499b1c4ff5b90a754384a5ca91b770d062d76db8 Mon Sep 17 00:00:00 2001
From: dgrisham
Date: Thu, 27 Sep 2018 10:15:21 -0600
Subject: [PATCH 034/127] feat: hash file for cache filename
rebase me
---
pywal/colors.py | 12 ++++++++++--
1 file changed, 10 insertions(+), 2 deletions(-)
diff --git a/pywal/colors.py b/pywal/colors.py
index a87ee4c..b0cfbe6 100644
--- a/pywal/colors.py
+++ b/pywal/colors.py
@@ -6,6 +6,7 @@ import os
import random
import re
import sys
+import hashlib
from . import theme
from . import util
@@ -86,12 +87,19 @@ def saturate_colors(colors, amount):
def cache_fname(img, backend, light, cache_dir, sat=""):
"""Create the cache file name."""
color_type = "light" if light else "dark"
- file_name = re.sub("[/|\\|.]", "_", img)
+ file_hash = hashf(img)
- file_parts = [file_name, color_type, backend, sat, __cache_version__]
+ file_parts = [file_hash, color_type, backend, sat, __cache_version__]
return [cache_dir, "schemes", "%s_%s_%s_%s_%s.json" % (*file_parts,)]
+def hashf(fpath):
+ return hashlib.md5(file_bytes(open(fpath, 'rb'))).hexdigest()
+
+def file_bytes(fpath):
+ with fpath:
+ return fpath.read()
+
def get_backend(backend):
"""Figure out which backend to use."""
if backend == "random":
From b08648c7201c9d3e7b10b412c43b494791e4b52e Mon Sep 17 00:00:00 2001
From: dgrisham
Date: Thu, 27 Sep 2018 10:50:13 -0600
Subject: [PATCH 035/127] move hashf() to util.py
---
pywal/colors.py | 10 +---------
pywal/util.py | 10 ++++++++++
2 files changed, 11 insertions(+), 9 deletions(-)
diff --git a/pywal/colors.py b/pywal/colors.py
index b0cfbe6..63200c5 100644
--- a/pywal/colors.py
+++ b/pywal/colors.py
@@ -6,7 +6,6 @@ import os
import random
import re
import sys
-import hashlib
from . import theme
from . import util
@@ -87,19 +86,12 @@ def saturate_colors(colors, amount):
def cache_fname(img, backend, light, cache_dir, sat=""):
"""Create the cache file name."""
color_type = "light" if light else "dark"
- file_hash = hashf(img)
+ file_hash = util.hashf(img)
file_parts = [file_hash, color_type, backend, sat, __cache_version__]
return [cache_dir, "schemes", "%s_%s_%s_%s_%s.json" % (*file_parts,)]
-def hashf(fpath):
- return hashlib.md5(file_bytes(open(fpath, 'rb'))).hexdigest()
-
-def file_bytes(fpath):
- with fpath:
- return fpath.read()
-
def get_backend(backend):
"""Figure out which backend to use."""
if backend == "random":
diff --git a/pywal/util.py b/pywal/util.py
index 0557cc4..b58f5e4 100644
--- a/pywal/util.py
+++ b/pywal/util.py
@@ -2,6 +2,7 @@
Misc helper functions.
"""
import colorsys
+import hashlib
import json
import logging
import os
@@ -178,3 +179,12 @@ def get_pid(name):
return False
return True
+
+
+def hashf(fpath):
+ return hashlib.md5(file_bytes(open(fpath, 'rb'))).hexdigest()
+
+
+def file_bytes(fpath):
+ with fpath:
+ return fpath.read()
From 48c603521b5a3a05c6dc6ae497fde9f092d515ab Mon Sep 17 00:00:00 2001
From: Vesiv
Date: Sat, 6 Oct 2018 02:14:11 -0400
Subject: [PATCH 036/127] Added support for AwesomeWM in the wallpaper set
function
---
pywal/wallpaper.py | 8 +++++++-
1 file changed, 7 insertions(+), 1 deletion(-)
diff --git a/pywal/wallpaper.py b/pywal/wallpaper.py
index 19a46f6..2b8fe6f 100644
--- a/pywal/wallpaper.py
+++ b/pywal/wallpaper.py
@@ -32,6 +32,10 @@ def get_desktop_env():
if desktop:
return "SWAY"
+ desktop = os.environ.get("DESKTOP_STARTUP_ID")
+ if desktop and "awesome" in desktop:
+ return "AWESOME"
+
return None
@@ -92,10 +96,12 @@ def set_desktop_wallpaper(desktop, img):
elif "sway" in desktop:
util.disown(["swaymsg", "output", "*", "bg", img, "fill"])
+ elif "awesome" in desktop:
+ util.disown(["awesome-client", "gears.wallpaper.maximized(", img, ")"])
+
else:
set_wm_wallpaper(img)
-
def set_mac_wallpaper(img):
"""Set the wallpaper on macOS."""
db_file = "Library/Application Support/Dock/desktoppicture.db"
From 842be703e1ef1011ceddbff94514d74fc2d7166b Mon Sep 17 00:00:00 2001
From: Dylan Araps
Date: Wed, 17 Oct 2018 15:12:33 +1100
Subject: [PATCH 037/127] general: fix macos issue. Closes #302
---
pywal/sequences.py | 29 +++++++++++++++--------------
1 file changed, 15 insertions(+), 14 deletions(-)
diff --git a/pywal/sequences.py b/pywal/sequences.py
index cb70e93..c691020 100644
--- a/pywal/sequences.py
+++ b/pywal/sequences.py
@@ -57,23 +57,24 @@ def create_sequences(colors):
set_color(232, colors["special"]["background"])
])
- # This escape sequence doesn't work in VTE terminals and their parsing of
- # unknown sequences is garbage so we need to use some escape sequence
- # M A G I C to hide the output.
- # \033[s # Save cursor position.
- # \033[1000H # Move the cursor off screen.
- # \033[8m # Conceal text.
- # \033]708;#000000\033\\ # Garbage sequence.
- # \033[u # Restore cursor position.
- sequences.extend([
- "\033[s\033[1000H\033[8m%s\033[u" %
- set_special(708, colors["special"]["background"], "h", alpha),
- set_special(13, colors["special"]["cursor"], "l")
- ])
-
if OS == "Darwin":
sequences += set_iterm_tab_color(colors["special"]["background"])
+ else:
+ # This escape sequence doesn't work in VTE terminals and their parsing of
+ # unknown sequences is garbage so we need to use some escape sequence
+ # M A G I C to hide the output.
+ # \033[s # Save cursor position.
+ # \033[1000H # Move the cursor off screen.
+ # \033[8m # Conceal text.
+ # \033]708;#000000\033\\ # Garbage sequence.
+ # \033[u # Restore cursor position.
+ sequences.extend([
+ "\033[s\033[1000H\033[8m%s\033[u" %
+ set_special(708, colors["special"]["background"], "h", alpha),
+ set_special(13, colors["special"]["cursor"], "l")
+ ])
+
return "".join(sequences)
From 580f5b76bea82d31cf2c189b5db425c142d8cfec Mon Sep 17 00:00:00 2001
From: Dylan Araps
Date: Wed, 17 Oct 2018 15:14:23 +1100
Subject: [PATCH 038/127] general: fix lint
---
pywal/wallpaper.py | 1 +
1 file changed, 1 insertion(+)
diff --git a/pywal/wallpaper.py b/pywal/wallpaper.py
index 2b8fe6f..ba61e66 100644
--- a/pywal/wallpaper.py
+++ b/pywal/wallpaper.py
@@ -102,6 +102,7 @@ def set_desktop_wallpaper(desktop, img):
else:
set_wm_wallpaper(img)
+
def set_mac_wallpaper(img):
"""Set the wallpaper on macOS."""
db_file = "Library/Application Support/Dock/desktoppicture.db"
From 72e3c02a2b40f7d232688cce007a4161a10e54ab Mon Sep 17 00:00:00 2001
From: Dylan Araps
Date: Wed, 17 Oct 2018 15:20:01 +1100
Subject: [PATCH 039/127] general: fix lint
---
.pylintrc | 2 +-
pywal/backends/wal.py | 2 +-
pywal/theme.py | 11 +++++------
3 files changed, 7 insertions(+), 8 deletions(-)
diff --git a/.pylintrc b/.pylintrc
index ae5b20d..97a4ac1 100644
--- a/.pylintrc
+++ b/.pylintrc
@@ -10,7 +10,7 @@ good-names=i,j,k,n,x,y,fg,bg,r,g,b,i3,r1,r2,r3,g1,g2,g3,b1,b2,b3,h,s,v,l
# too-many-statements:
# Disabled as it's a non-issue and only occurs in the
# process_args() function.
-disable=inconsistent-return-statements,too-many-branches,too-many-statements
+disable=inconsistent-return-statements,too-many-branches,too-many-statements,too-many-return-statements
[SIMILARITIES]
ignore-imports=y
diff --git a/pywal/backends/wal.py b/pywal/backends/wal.py
index 1a85e17..a75fdc5 100644
--- a/pywal/backends/wal.py
+++ b/pywal/backends/wal.py
@@ -24,7 +24,7 @@ def has_im():
if shutil.which("magick"):
return ["magick", "convert"]
- elif shutil.which("convert"):
+ if shutil.which("convert"):
return ["convert"]
logging.error("Imagemagick wasn't found on your system.")
diff --git a/pywal/theme.py b/pywal/theme.py
index 37936c5..fcd1dd1 100644
--- a/pywal/theme.py
+++ b/pywal/theme.py
@@ -100,7 +100,7 @@ def file(input_file, light=False):
theme_file = os.path.join(MODULE_DIR, "colorschemes", bri, theme_name)
# Find the theme file.
- if input_file == "random" or input_file == "random_dark":
+ if input_file in ("random", "random_dark"):
theme_file = get_random_theme()
elif input_file == "random_light":
@@ -118,8 +118,7 @@ def file(input_file, light=False):
os.path.basename(theme_file))
return parse(theme_file)
- else:
- logging.error("No %s colorscheme file found.", bri)
- logging.error("Try adding '-l' to set light themes.")
- logging.error("Try removing '-l' to set dark themes.")
- sys.exit(1)
+ logging.error("No %s colorscheme file found.", bri)
+ logging.error("Try adding '-l' to set light themes.")
+ logging.error("Try removing '-l' to set dark themes.")
+ sys.exit(1)
From 87944f7402a9b6680d7f2b86c769a2abed334e06 Mon Sep 17 00:00:00 2001
From: Dylan Araps
Date: Wed, 17 Oct 2018 15:21:25 +1100
Subject: [PATCH 040/127] general: remove VTE fix.
---
pywal/sequences.py | 15 ---------------
1 file changed, 15 deletions(-)
diff --git a/pywal/sequences.py b/pywal/sequences.py
index c691020..0ecb840 100644
--- a/pywal/sequences.py
+++ b/pywal/sequences.py
@@ -60,21 +60,6 @@ def create_sequences(colors):
if OS == "Darwin":
sequences += set_iterm_tab_color(colors["special"]["background"])
- else:
- # This escape sequence doesn't work in VTE terminals and their parsing of
- # unknown sequences is garbage so we need to use some escape sequence
- # M A G I C to hide the output.
- # \033[s # Save cursor position.
- # \033[1000H # Move the cursor off screen.
- # \033[8m # Conceal text.
- # \033]708;#000000\033\\ # Garbage sequence.
- # \033[u # Restore cursor position.
- sequences.extend([
- "\033[s\033[1000H\033[8m%s\033[u" %
- set_special(708, colors["special"]["background"], "h", alpha),
- set_special(13, colors["special"]["cursor"], "l")
- ])
-
return "".join(sequences)
From b7ed103eaaca3fe5441f867101eda85c018c4aa8 Mon Sep 17 00:00:00 2001
From: Dylan Araps
Date: Wed, 17 Oct 2018 15:26:11 +1100
Subject: [PATCH 041/127] general: fix lint
---
pywal/__main__.py | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/pywal/__main__.py b/pywal/__main__.py
index b3812b4..d31af89 100644
--- a/pywal/__main__.py
+++ b/pywal/__main__.py
@@ -106,7 +106,7 @@ def parse_args_exit(parser):
"""Process args that exit."""
args = parser.parse_args()
- if not len(sys.argv) > 1:
+ if len(sys.argv) <= 1:
parser.print_help()
sys.exit(1)
From ba3218be2f72b6ce14924ac53825744ae6c8aa22 Mon Sep 17 00:00:00 2001
From: Dylan Araps
Date: Wed, 17 Oct 2018 15:29:18 +1100
Subject: [PATCH 042/127] general: allow -o to be repeated.
---
pywal/__main__.py | 5 +++--
1 file changed, 3 insertions(+), 2 deletions(-)
diff --git a/pywal/__main__.py b/pywal/__main__.py
index d31af89..2ace13c 100644
--- a/pywal/__main__.py
+++ b/pywal/__main__.py
@@ -74,7 +74,7 @@ def get_args():
arg.add_argument("-n", action="store_true",
help="Skip setting the wallpaper.")
- arg.add_argument("-o", metavar="\"script_name\"",
+ arg.add_argument("-o", metavar="\"script_name\"", action="append",
help="External script to run after \"wal\".")
arg.add_argument("-q", action="store_true",
@@ -188,7 +188,8 @@ def parse_args(parser):
reload.env(tty_reload=not args.t)
if args.o:
- util.disown([args.o])
+ for cmd in args.o:
+ util.disown([cmd])
if not args.e:
reload.oomox(args.g)
From 79a4069af56b26366b9ada4abf5d80e45ca78cba Mon Sep 17 00:00:00 2001
From: Dylan Araps
Date: Wed, 17 Oct 2018 15:34:07 +1100
Subject: [PATCH 043/127] general: st cursor col
---
pywal/sequences.py | 3 ++-
1 file changed, 2 insertions(+), 1 deletion(-)
diff --git a/pywal/sequences.py b/pywal/sequences.py
index 0ecb840..56c1b59 100644
--- a/pywal/sequences.py
+++ b/pywal/sequences.py
@@ -54,7 +54,8 @@ def create_sequences(colors):
set_special(13, colors["special"]["foreground"], "l"),
set_special(17, colors["special"]["foreground"], "l"),
set_special(19, colors["special"]["background"], "l"),
- set_color(232, colors["special"]["background"])
+ set_color(232, colors["special"]["background"]),
+ set_color(256, colors["special"]["foreground"])
])
if OS == "Darwin":
From 51af3c1e03875716d224e40878f821dac931fc9a Mon Sep 17 00:00:00 2001
From: dgrisham
Date: Wed, 17 Oct 2018 09:03:43 -0600
Subject: [PATCH 044/127] Fix lint errors.
License: MIT
Signed-off-by: David Grisham
---
pywal/colors.py | 1 -
pywal/util.py | 2 ++
2 files changed, 2 insertions(+), 1 deletion(-)
diff --git a/pywal/colors.py b/pywal/colors.py
index 63200c5..246318c 100644
--- a/pywal/colors.py
+++ b/pywal/colors.py
@@ -4,7 +4,6 @@ Generate a palette using various backends.
import logging
import os
import random
-import re
import sys
from . import theme
diff --git a/pywal/util.py b/pywal/util.py
index b58f5e4..10fb42c 100644
--- a/pywal/util.py
+++ b/pywal/util.py
@@ -182,9 +182,11 @@ def get_pid(name):
def hashf(fpath):
+ """Get the md5 hash of a file."""
return hashlib.md5(file_bytes(open(fpath, 'rb'))).hexdigest()
def file_bytes(fpath):
+ """Helper function to read file."""
with fpath:
return fpath.read()
From cfbd5353cffb1ff5ba0de4545abd8a12f0dad919 Mon Sep 17 00:00:00 2001
From: Dylan Araps
Date: Thu, 18 Oct 2018 08:06:57 +1100
Subject: [PATCH 045/127] Revert "Hash file for cache filename"
---
pywal/colors.py | 5 +++--
pywal/util.py | 12 ------------
2 files changed, 3 insertions(+), 14 deletions(-)
diff --git a/pywal/colors.py b/pywal/colors.py
index 246318c..a87ee4c 100644
--- a/pywal/colors.py
+++ b/pywal/colors.py
@@ -4,6 +4,7 @@ Generate a palette using various backends.
import logging
import os
import random
+import re
import sys
from . import theme
@@ -85,9 +86,9 @@ def saturate_colors(colors, amount):
def cache_fname(img, backend, light, cache_dir, sat=""):
"""Create the cache file name."""
color_type = "light" if light else "dark"
- file_hash = util.hashf(img)
+ file_name = re.sub("[/|\\|.]", "_", img)
- file_parts = [file_hash, color_type, backend, sat, __cache_version__]
+ file_parts = [file_name, color_type, backend, sat, __cache_version__]
return [cache_dir, "schemes", "%s_%s_%s_%s_%s.json" % (*file_parts,)]
diff --git a/pywal/util.py b/pywal/util.py
index 10fb42c..0557cc4 100644
--- a/pywal/util.py
+++ b/pywal/util.py
@@ -2,7 +2,6 @@
Misc helper functions.
"""
import colorsys
-import hashlib
import json
import logging
import os
@@ -179,14 +178,3 @@ def get_pid(name):
return False
return True
-
-
-def hashf(fpath):
- """Get the md5 hash of a file."""
- return hashlib.md5(file_bytes(open(fpath, 'rb'))).hexdigest()
-
-
-def file_bytes(fpath):
- """Helper function to read file."""
- with fpath:
- return fpath.read()
From 9b5d148124186d8ab8ab4d0160bdfea2e2a53709 Mon Sep 17 00:00:00 2001
From: Dylan Araps
Date: Thu, 18 Oct 2018 12:22:54 +1100
Subject: [PATCH 046/127] general: lil bit more cont
---
pywal/colors.py | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/pywal/colors.py b/pywal/colors.py
index a87ee4c..2af8bd2 100644
--- a/pywal/colors.py
+++ b/pywal/colors.py
@@ -65,7 +65,7 @@ def generic_adjust(colors, light):
colors[15] = colors[7]
else:
- colors[0] = util.darken_color(colors[0], 0.75)
+ colors[0] = util.darken_color(colors[0], 0.80)
colors[7] = util.lighten_color(colors[0], 0.75)
colors[8] = util.lighten_color(colors[0], 0.25)
colors[15] = colors[7]
From 97a4d34d2b3842a86380f7ca52c6f72d1e800a42 Mon Sep 17 00:00:00 2001
From: tadly
Date: Tue, 23 Oct 2018 09:39:16 +0200
Subject: [PATCH 047/127] fixes the putty template
Fix all color values and instead of writing to the "Default Session",
create a new one called "pywal".
Modifying the "Default Session" should be considered bad practice.
---
pywal/templates/colors-putty.reg | 41 +++++++++++++++++++-------------
1 file changed, 24 insertions(+), 17 deletions(-)
diff --git a/pywal/templates/colors-putty.reg b/pywal/templates/colors-putty.reg
index f4c06c0..fcd10a2 100644
--- a/pywal/templates/colors-putty.reg
+++ b/pywal/templates/colors-putty.reg
@@ -1,19 +1,26 @@
Windows Registry Editor Version 5.00
-[HKEY_CURRENT_USER\Software\SimonTatham\PuTTY\Sessions\Default%20Settings]]
-"colour0"="{color0.rgb}"
-"colour1"="{color1.rgb}"
-"colour2"="{color2.rgb}"
-"colour3"="{color3.rgb}"
-"colour4"="{color4.rgb}"
-"colour5"="{color5.rgb}"
-"colour6"="{color6.rgb}"
-"colour7"="{color7.rgb}"
-"colour8"="{color8.rgb}"
-"colour9"="{color9.rgb}"
-"colour10"="{color10.rgb}"
-"colour11"="{color11.rgb}"
-"colour12"="{color12.rgb}"
-"colour13"="{color13.rgb}"
-"colour14"="{color14.rgb}"
-"colour15"="{color15.rgb}"
+[HKEY_CURRENT_USER\Software\SimonTatham\PuTTY\Sessions\wal]
+"Colour0"="{foreground.rgb}" ; Default Foreground
+"Colour1"="{foreground.rgb}" ; Default Bold Foreground
+"Colour2"="{background.rgb}" ; Default Background
+"Colour3"="{background.rgb}" ; Default Bold Background
+"Colour4"="{background.rgb}" ; Cursor Text
+"Colour5"="{cursor.rgb}" ; Cursor Color
+"Colour6"="{color0.rgb}" ; ANSI Black
+"Colour7"="{color8.rgb}" ; ANSI Black Bold
+"Colour8"="{color1.rgb}" ; ANSI Red
+"Colour9"="{color9.rgb}" ; ANSI Red Bold
+"Colour10"="{color2.rgb}" ; ANSI Green
+"Colour11"="{color10.rgb}" ; ANSI Green Bold
+"Colour12"="{color3.rgb}" ; ANSI Yellow
+"Colour13"="{color11.rgb}" ; ANSI Yellow Bold
+"Colour14"="{color4.rgb}" ; ANSI Blue
+"Colour15"="{color12.rgb}" ; ANSI Blue Bold
+"Colour16"="{color5.rgb}" ; ANSI Magenta
+"Colour17"="{color13.rgb}" ; ANSI Magenta Bold
+"Colour18"="{color6.rgb}" ; ANSI Cyan
+"Colour19"="{color14.rgb}" ; ANSI Cyan Bold
+"Colour20"="{color7.rgb}" ; ANSI White
+"Colour21"="{color15.rgb}" ; ANSI White Bold
+
From abc65a59d19a047815d58e7158ce8da87afbab89 Mon Sep 17 00:00:00 2001
From: Dylan Araps
Date: Tue, 23 Oct 2018 23:34:29 +1100
Subject: [PATCH 048/127] version: bump
---
pywal/settings.py | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/pywal/settings.py b/pywal/settings.py
index 8963115..80ca130 100644
--- a/pywal/settings.py
+++ b/pywal/settings.py
@@ -13,7 +13,7 @@ import os
import platform
-__version__ = "3.1.0"
+__version__ = "3.2.0"
__cache_version__ = "1.1.0"
From 18f05944ed1d7b43ae29d233c76076bd198ab6c4 Mon Sep 17 00:00:00 2001
From: Dylan Araps
Date: Wed, 24 Oct 2018 17:10:09 +1100
Subject: [PATCH 049/127] better light colors
---
pywal/backends/colorz.py | 2 +-
pywal/colors.py | 6 +++---
2 files changed, 4 insertions(+), 4 deletions(-)
diff --git a/pywal/backends/colorz.py b/pywal/backends/colorz.py
index 9197e9a..b789a3a 100644
--- a/pywal/backends/colorz.py
+++ b/pywal/backends/colorz.py
@@ -26,7 +26,7 @@ def gen_colors(img):
def adjust(cols, light):
"""Create palette."""
raw_colors = [cols[0], *cols, "#FFFFFF",
- "#333333", *cols, "#FFFFFF"]
+ "#000000", *cols, "#FFFFFF"]
return colors.generic_adjust(raw_colors, light)
diff --git a/pywal/colors.py b/pywal/colors.py
index 2af8bd2..86db9c4 100644
--- a/pywal/colors.py
+++ b/pywal/colors.py
@@ -56,10 +56,10 @@ def generic_adjust(colors, light):
"""Generic color adjustment for themers."""
if light:
for color in colors:
- color = util.saturate_color(color, 0.50)
- color = util.darken_color(color, 0.4)
+ color = util.saturate_color(color, 0.60)
+ color = util.darken_color(color, 0.5)
- colors[0] = util.lighten_color(colors[0], 0.9)
+ colors[0] = util.lighten_color(colors[0], 0.95)
colors[7] = util.darken_color(colors[0], 0.75)
colors[8] = util.darken_color(colors[0], 0.25)
colors[15] = colors[7]
From da0e2ff05a885422dfc61fc87ae3c68ec713751b Mon Sep 17 00:00:00 2001
From: Dylan Araps
Date: Wed, 24 Oct 2018 17:12:01 +1100
Subject: [PATCH 050/127] fix urxvt bg
---
pywal/sequences.py | 3 ++-
1 file changed, 2 insertions(+), 1 deletion(-)
diff --git a/pywal/sequences.py b/pywal/sequences.py
index 56c1b59..8d92252 100644
--- a/pywal/sequences.py
+++ b/pywal/sequences.py
@@ -46,7 +46,7 @@ def create_sequences(colors):
# Special colors.
# Source: https://goo.gl/KcoQgP
# 10 = foreground, 11 = background, 12 = cursor foregound
- # 13 = mouse foreground
+ # 13 = mouse foreground, 708 = background border color.
sequences.extend([
set_special(10, colors["special"]["foreground"], "g"),
set_special(11, colors["special"]["background"], "h", alpha),
@@ -54,6 +54,7 @@ def create_sequences(colors):
set_special(13, colors["special"]["foreground"], "l"),
set_special(17, colors["special"]["foreground"], "l"),
set_special(19, colors["special"]["background"], "l"),
+ set_special(708, colors["special"]["background"], "l"),
set_color(232, colors["special"]["background"]),
set_color(256, colors["special"]["foreground"])
])
From f0de048bb992d15a3cbbca1d7c5fc356ae2f8620 Mon Sep 17 00:00:00 2001
From: Dylan Araps
Date: Wed, 24 Oct 2018 17:12:31 +1100
Subject: [PATCH 051/127] docs: update
---
pywal/settings.py | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/pywal/settings.py b/pywal/settings.py
index 80ca130..18c6dd6 100644
--- a/pywal/settings.py
+++ b/pywal/settings.py
@@ -13,7 +13,7 @@ import os
import platform
-__version__ = "3.2.0"
+__version__ = "3.2.1"
__cache_version__ = "1.1.0"
From d98a551f084146d011c2374f018289ad633cd497 Mon Sep 17 00:00:00 2001
From: "Rico Sta. Cruz"
Date: Thu, 1 Nov 2018 18:03:38 +0800
Subject: [PATCH 052/127] Fix URxvt borders not respecting background opacity
---
pywal/sequences.py | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/pywal/sequences.py b/pywal/sequences.py
index 8d92252..18aa6eb 100644
--- a/pywal/sequences.py
+++ b/pywal/sequences.py
@@ -54,7 +54,7 @@ def create_sequences(colors):
set_special(13, colors["special"]["foreground"], "l"),
set_special(17, colors["special"]["foreground"], "l"),
set_special(19, colors["special"]["background"], "l"),
- set_special(708, colors["special"]["background"], "l"),
+ set_special(708, colors["special"]["background"], "l", alpha),
set_color(232, colors["special"]["background"]),
set_color(256, colors["special"]["foreground"])
])
From 225f17c2f35ff8f7df3499562f5ae8ef498e0afe Mon Sep 17 00:00:00 2001
From: Ryan Cole
Date: Wed, 7 Nov 2018 08:46:47 -0500
Subject: [PATCH 053/127] Fix rofi templates
Fix missing hashes in rofi templates that may break some i3 configs
Signed-off-by: Ryan Cole
---
pywal/templates/colors-rofi-dark.rasi | 4 ++--
pywal/templates/colors-rofi-light.rasi | 4 ++--
2 files changed, 4 insertions(+), 4 deletions(-)
diff --git a/pywal/templates/colors-rofi-dark.rasi b/pywal/templates/colors-rofi-dark.rasi
index 7a9075a..302d44f 100644
--- a/pywal/templates/colors-rofi-dark.rasi
+++ b/pywal/templates/colors-rofi-dark.rasi
@@ -48,11 +48,11 @@
text-color: @foreground;
}}
-inputbar {{
+#inputbar {{
children: [ prompt,textbox-prompt-colon,entry,case-indicator ];
}}
-textbox-prompt-colon {{
+#textbox-prompt-colon {{
expand: false;
str: ":";
margin: 0px 0.3em 0em 0em;
diff --git a/pywal/templates/colors-rofi-light.rasi b/pywal/templates/colors-rofi-light.rasi
index 3a038bb..d4f89af 100644
--- a/pywal/templates/colors-rofi-light.rasi
+++ b/pywal/templates/colors-rofi-light.rasi
@@ -48,11 +48,11 @@
text-color: @foreground;
}}
-inputbar {{
+#inputbar {{
children: [ prompt,textbox-prompt-colon,entry,case-indicator ];
}}
-textbox-prompt-colon {{
+#textbox-prompt-colon {{
expand: false;
str: ":";
margin: 0px 0.3em 0em 0em;
From 04a10fdcc60f11224680bad831a8822d755df738 Mon Sep 17 00:00:00 2001
From: surrealpie
Date: Thu, 8 Nov 2018 05:17:52 -0500
Subject: [PATCH 054/127] template for waybar
---
pywal/export.py | 1 +
pywal/templates/colors-waybar.css | 20 ++++++++++++++++++++
2 files changed, 21 insertions(+)
create mode 100644 pywal/templates/colors-waybar.css
diff --git a/pywal/export.py b/pywal/export.py
index 357656e..6a28249 100644
--- a/pywal/export.py
+++ b/pywal/export.py
@@ -47,6 +47,7 @@ def get_export_type(export_type):
"tty": "colors-tty.sh",
"xresources": "colors.Xresources",
"yaml": "colors.yml",
+ "waybar": "colors-waybar.css",
}.get(export_type, export_type)
diff --git a/pywal/templates/colors-waybar.css b/pywal/templates/colors-waybar.css
new file mode 100644
index 0000000..c9cced6
--- /dev/null
+++ b/pywal/templates/colors-waybar.css
@@ -0,0 +1,20 @@
+@define-color foreground {foreground};
+@define-color background {background};
+@define-color cursor {cursor};
+
+@define-color color0 {color0};
+@define-color color1 {color1};
+@define-color color2 {color2};
+@define-color color3 {color3};
+@define-color color4 {color4};
+@define-color color5 {color5};
+@define-color color6 {color6};
+@define-color color7 {color7};
+@define-color color8 {color8};
+@define-color color9 {color9};
+@define-color color10 {color10};
+@define-color color11 {color11};
+@define-color color12 {color12};
+@define-color color13 {color13};
+@define-color color14 {color14};
+@define-color color15 {color15};
From 24735845f6251d3e78024fe6d554a8b265ddf0e8 Mon Sep 17 00:00:00 2001
From: lasers
Date: Mon, 26 Nov 2018 01:03:42 -0600
Subject: [PATCH 055/127] export: add speedcrunch template
---
pywal/export.py | 1 +
pywal/templates/colors-speedcrunch.json | 15 +++++++++++++++
2 files changed, 16 insertions(+)
create mode 100644 pywal/templates/colors-speedcrunch.json
diff --git a/pywal/export.py b/pywal/export.py
index 357656e..e737d1b 100644
--- a/pywal/export.py
+++ b/pywal/export.py
@@ -43,6 +43,7 @@ def get_export_type(export_type):
"rofi": "colors-rofi.Xresources",
"scss": "colors.scss",
"shell": "colors.sh",
+ "speedcrunch": "colors-speedcrunch.json",
"sway": "colors-sway",
"tty": "colors-tty.sh",
"xresources": "colors.Xresources",
diff --git a/pywal/templates/colors-speedcrunch.json b/pywal/templates/colors-speedcrunch.json
new file mode 100644
index 0000000..c9182c4
--- /dev/null
+++ b/pywal/templates/colors-speedcrunch.json
@@ -0,0 +1,15 @@
+{{
+ "cursor": "{cursor}",
+ "number": "{foreground}",
+ "parens": "{color13}",
+ "result": "{color12}",
+ "comment": "{color8}",
+ "matched": "{color4}",
+ "function": "{color1}",
+ "operator": "{color3}",
+ "variable": "{color2}",
+ "scrollbar": "{color3}",
+ "separator": "{color3}",
+ "background": "{background}",
+ "editorbackground": "{background}"
+}}
From 37e96eca3b6aeccb0052e30cf6ec80eac0510df1 Mon Sep 17 00:00:00 2001
From: sraysmith
Date: Thu, 20 Dec 2018 15:55:11 -0500
Subject: [PATCH 056/127] I added the xmonad export_type.
---
pywal/export.py | 1 +
1 file changed, 1 insertion(+)
diff --git a/pywal/export.py b/pywal/export.py
index 357656e..7873557 100644
--- a/pywal/export.py
+++ b/pywal/export.py
@@ -47,6 +47,7 @@ def get_export_type(export_type):
"tty": "colors-tty.sh",
"xresources": "colors.Xresources",
"yaml": "colors.yml",
+ "xmonad": "colors.hs",
}.get(export_type, export_type)
From fd6820db832ab7b859536b9871dd0d9b00a50627 Mon Sep 17 00:00:00 2001
From: sraysmith
Date: Thu, 20 Dec 2018 15:57:09 -0500
Subject: [PATCH 057/127] I added the haskell template for xmonad users.
---
pywal/templates/colors.hs | 37 +++++++++++++++++++++++++++++++++++++
1 file changed, 37 insertions(+)
create mode 100644 pywal/templates/colors.hs
diff --git a/pywal/templates/colors.hs b/pywal/templates/colors.hs
new file mode 100644
index 0000000..6ffa1a6
--- /dev/null
+++ b/pywal/templates/colors.hs
@@ -0,0 +1,37 @@
+--Place this file in your .xmonad/lib directory and import module Colors into .xmonad/xmonad.hs config
+--The easy way is to create a soft link from this file to the file in .xmonad/lib using ln -s
+--Then recompile and restart xmonad.
+
+module Colors
+ ( wallpaper
+ , background, foreground, cursor
+ , color0, color1, color2, color3, color4, color5, color6, color7
+ , color8, color9, color10, color11, color12, color13, color14, color15
+ ) where
+
+-- Shell variables
+-- Generated by 'wal'
+wallpaper="{wallpaper}"
+
+-- Special
+background="{background}"
+foreground="{foreground}"
+cursor="{cursor}"
+
+-- Colors
+color0="{color0}"
+color1="{color1}"
+color2="{color2}"
+color3="{color3}"
+color4="{color4}"
+color5="{color5}"
+color6="{color6}"
+color7="{color7}"
+color8="{color8}"
+color9="{color9}"
+color10="{color10}"
+color11="{color11}"
+color12="{color12}"
+color13="{color13}"
+color14="{color14}"
+color15="{color15}"
From 041fe0643f9a31079cdf641a7f8227e97dba9696 Mon Sep 17 00:00:00 2001
From: Younes Khoudli
Date: Sun, 30 Dec 2018 03:40:11 +0100
Subject: [PATCH 058/127] template: add dmenu template
---
pywal/export.py | 1 +
pywal/templates/colors-wal-dmenu.h | 6 ++++++
2 files changed, 7 insertions(+)
create mode 100644 pywal/templates/colors-wal-dmenu.h
diff --git a/pywal/export.py b/pywal/export.py
index 357656e..833912d 100644
--- a/pywal/export.py
+++ b/pywal/export.py
@@ -31,6 +31,7 @@ def get_export_type(export_type):
"""Convert template type to the right filename."""
return {
"css": "colors.css",
+ "dmenu": "colors-wal-dmenu.h",
"dwm": "colors-wal-dwm.h",
"st": "colors-wal-st.h",
"tabbed": "colors-wal-tabbed.h",
diff --git a/pywal/templates/colors-wal-dmenu.h b/pywal/templates/colors-wal-dmenu.h
new file mode 100644
index 0000000..aeab7a5
--- /dev/null
+++ b/pywal/templates/colors-wal-dmenu.h
@@ -0,0 +1,6 @@
+static const char *colors[SchemeLast][2] = {{
+ /* fg bg */
+ [SchemeNorm] = {{ "{color15}", "{color0}" }},
+ [SchemeSel] = {{ "{color15}", "{color1}" }},
+ [SchemeOut] = {{ "{color15}", "{color14}" }},
+}};
From 30af3d0d5c9b8c5e712b571ec605102895f2e06b Mon Sep 17 00:00:00 2001
From: Dylan Araps
Date: Fri, 4 Jan 2019 21:40:16 +0200
Subject: [PATCH 059/127] settings: Added ENVAR PYWAL_CACHE_DIR to change cache
dir. Closes #343
---
pywal/settings.py | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/pywal/settings.py b/pywal/settings.py
index 18c6dd6..2a862bf 100644
--- a/pywal/settings.py
+++ b/pywal/settings.py
@@ -18,7 +18,7 @@ __cache_version__ = "1.1.0"
HOME = os.getenv("HOME", os.getenv("USERPROFILE"))
-CACHE_DIR = os.path.join(HOME, ".cache", "wal")
+CACHE_DIR = os.getenv("PYWAL_CACHE_DIR", os.path.join(HOME, ".cache", "wal"))
MODULE_DIR = os.path.dirname(__file__)
CONF_DIR = os.path.join(HOME, ".config", "wal")
OS = platform.uname()[0]
From 1e416a18a853159f3473d80c831322630d006bb1 Mon Sep 17 00:00:00 2001
From: Dylan Araps
Date: Fri, 4 Jan 2019 21:56:49 +0200
Subject: [PATCH 060/127] export: Added rgba support. Closes #352
---
pywal/util.py | 6 ++++++
1 file changed, 6 insertions(+)
diff --git a/pywal/util.py b/pywal/util.py
index 0557cc4..de8eb09 100644
--- a/pywal/util.py
+++ b/pywal/util.py
@@ -29,6 +29,12 @@ class Color:
"""Convert a hex color to xrdb rgba."""
return hex_to_xrgba(self.hex_color)
+ @property
+ def rgba(self):
+ """Convert a hex color to rgba."""
+ return "rgba(%s,%s,%s,%s)" % (*hex_to_rgb(self.hex_color),
+ int(self.alpha_num)/100)
+
@property
def alpha(self):
"""Add URxvt alpha value to color."""
From 8486495c1e8e966c4dcf3d2ef77faa9e12494eb9 Mon Sep 17 00:00:00 2001
From: Dylan Araps
Date: Fri, 4 Jan 2019 22:11:17 +0200
Subject: [PATCH 061/127] oomox: Removed oomox support. Use wpgtk
---
pywal/__main__.py | 4 ----
pywal/reload.py | 17 -----------------
2 files changed, 21 deletions(-)
diff --git a/pywal/__main__.py b/pywal/__main__.py
index 2ace13c..b5833ea 100644
--- a/pywal/__main__.py
+++ b/pywal/__main__.py
@@ -65,9 +65,6 @@ def get_args():
arg.add_argument("-i", metavar="\"/path/to/img.jpg\"",
help="Which image or directory to use.")
- arg.add_argument("-g", action="store_true",
- help="Generate an oomox theme.")
-
arg.add_argument("-l", action="store_true",
help="Generate a light colorscheme.")
@@ -192,7 +189,6 @@ def parse_args(parser):
util.disown([cmd])
if not args.e:
- reload.oomox(args.g)
reload.gtk()
diff --git a/pywal/reload.py b/pywal/reload.py
index 5c2ca8a..6ea5c43 100644
--- a/pywal/reload.py
+++ b/pywal/reload.py
@@ -29,23 +29,6 @@ def xrdb(xrdb_files=None):
subprocess.run(["xrdb", "-merge", "-quiet", file])
-def oomox(gen_theme):
- """Call oomox to generate a theme."""
- if gen_theme:
- if not shutil.which("oomox-cli"):
- logging.warning("Oomox not found, skipping.")
- return
-
- oomox_file = os.path.join(CACHE_DIR, "colors-oomox")
-
- logging.info("Waiting for Oomox.")
- subprocess.run(["oomox-cli", "-o", "wal", oomox_file],
- stdout=subprocess.DEVNULL)
-
- else:
- logging.info("Use -g to generate an oomox theme.")
-
-
def gtk():
"""Reload GTK theme on the fly."""
# Here we call a Python 2 script to reload the GTK themes.
From 669836b9e98a60fd99772a681906aa23476fd185 Mon Sep 17 00:00:00 2001
From: Dylan Araps
Date: Tue, 8 Jan 2019 21:41:29 +0200
Subject: [PATCH 062/127] docs: update
---
README.md | 7 -------
1 file changed, 7 deletions(-)
diff --git a/README.md b/README.md
index b2bad4e..a6ccef4 100644
--- a/README.md
+++ b/README.md
@@ -23,10 +23,3 @@ The goal of Pywal was to be as out of the way as possible. It doesn't modify any
Terminal emulators and TTYs have their color-schemes updated in real-time with no delay. With minimal configuration this functionality can be extended to almost anything running on your system.
### More: \[[Installation](https://github.com/dylanaraps/pywal/wiki/Installation)\] \[[Getting Started](https://github.com/dylanaraps/pywal/wiki/Getting-Started)\] \[[Customization](https://github.com/dylanaraps/pywal/wiki/Customization)\] \[[Wiki](https://github.com/dylanaraps/pywal/wiki)\] \[[Screenshots](https://www.reddit.com/r/unixporn/search?q=wal&restrict_sr=on&sort=relevance&t=all)\]
-
-
-## Donate
-
-Donations allow me to spend more time working on `pywal` and my other Open Source projects. If you like `pywal` and want to give back in some way you can donate at the links below.
-
-
From 614c1ab44a8527c83ba7777d2796e4d58093186a Mon Sep 17 00:00:00 2001
From: Dylan Araps
Date: Fri, 11 Jan 2019 07:47:02 +0200
Subject: [PATCH 063/127] Aargs: Added --vte to fix artifacts in VTE terminals.
---
pywal/__main__.py | 5 ++++-
pywal/sequences.py | 12 ++++++++----
2 files changed, 12 insertions(+), 5 deletions(-)
diff --git a/pywal/__main__.py b/pywal/__main__.py
index b5833ea..2e50ca9 100644
--- a/pywal/__main__.py
+++ b/pywal/__main__.py
@@ -59,6 +59,9 @@ def get_args():
arg.add_argument("--preview", action="store_true",
help="Print the current color palette.")
+ arg.add_argument("--vte", action="store_true",
+ help="Fix text-artifacts printed in VTE terminals.")
+
arg.add_argument("-c", action="store_true",
help="Delete all cached colorschemes.")
@@ -174,7 +177,7 @@ def parse_args(parser):
if not args.n:
wallpaper.change(colors_plain["wallpaper"])
- sequences.send(colors_plain, to_send=not args.s)
+ sequences.send(colors_plain, to_send=not args.s, vte_fix=args.vte)
if sys.stdout.isatty():
colors.palette()
diff --git a/pywal/sequences.py b/pywal/sequences.py
index 18aa6eb..47acb34 100644
--- a/pywal/sequences.py
+++ b/pywal/sequences.py
@@ -35,7 +35,7 @@ def set_iterm_tab_color(color):
"\033]6;1;bg;blue;brightness;%s\a") % (*util.hex_to_rgb(color),)
-def create_sequences(colors):
+def create_sequences(colors, vte_fix=False):
"""Create the escape sequences."""
alpha = colors["alpha"]
@@ -54,18 +54,22 @@ def create_sequences(colors):
set_special(13, colors["special"]["foreground"], "l"),
set_special(17, colors["special"]["foreground"], "l"),
set_special(19, colors["special"]["background"], "l"),
- set_special(708, colors["special"]["background"], "l", alpha),
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)
+ )
+
if OS == "Darwin":
sequences += set_iterm_tab_color(colors["special"]["background"])
return "".join(sequences)
-def send(colors, cache_dir=CACHE_DIR, to_send=True):
+def send(colors, cache_dir=CACHE_DIR, to_send=True, vte_fix=False):
"""Send colors to all open terminals."""
if OS == "Darwin":
tty_pattern = "/dev/ttys00[0-9]*"
@@ -73,7 +77,7 @@ def send(colors, cache_dir=CACHE_DIR, to_send=True):
else:
tty_pattern = "/dev/pts/[0-9]*"
- sequences = create_sequences(colors)
+ sequences = create_sequences(colors, vte_fix)
# Writing to "/dev/pts/[0-9] lets you send data to open terminals.
if to_send:
From 37ed6b458a892aacbc0ca372f5f01184e2cc003d Mon Sep 17 00:00:00 2001
From: Dylan Araps
Date: Fri, 11 Jan 2019 07:49:43 +0200
Subject: [PATCH 064/127] misc: make linters happy
---
pywal/sequences.py | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/pywal/sequences.py b/pywal/sequences.py
index 47acb34..b42c3b7 100644
--- a/pywal/sequences.py
+++ b/pywal/sequences.py
@@ -60,7 +60,7 @@ def create_sequences(colors, vte_fix=False):
if not vte_fix:
sequences.extend(
- set_special(708, colors["special"]["background"], "l", alpha)
+ set_special(708, colors["special"]["background"], "l", alpha)
)
if OS == "Darwin":
From 267fdf7eb43ac4761eb5fb249b10d281f66ec64f Mon Sep 17 00:00:00 2001
From: Dylan Araps
Date: Mon, 21 Jan 2019 08:11:47 +0200
Subject: [PATCH 065/127] general: version bump
---
pywal/settings.py | 2 +-
pywal/templates/colors-vivid.yml | 102 +++++++++++++++++++++++++++++++
2 files changed, 103 insertions(+), 1 deletion(-)
create mode 100644 pywal/templates/colors-vivid.yml
diff --git a/pywal/settings.py b/pywal/settings.py
index 2a862bf..65cc26c 100644
--- a/pywal/settings.py
+++ b/pywal/settings.py
@@ -13,7 +13,7 @@ import os
import platform
-__version__ = "3.2.1"
+__version__ = "3.3"
__cache_version__ = "1.1.0"
diff --git a/pywal/templates/colors-vivid.yml b/pywal/templates/colors-vivid.yml
new file mode 100644
index 0000000..4181ce4
--- /dev/null
+++ b/pywal/templates/colors-vivid.yml
@@ -0,0 +1,102 @@
+colors:
+ background_color: '{background.strip}'
+ white: '{foreground.strip}'
+ red: '{color1.strip}'
+ green: '{color2.strip}'
+ yellow: '{color3.strip}'
+ blue: '{color4.strip}'
+ pink: '{color5.strip}'
+ cyan: '{color6.strip}'
+
+ light_red: '{color9.strip}'
+ light_green: '{color10.strip}'
+ light_yellow: '{color11.strip}'
+ light_blue: '{color12.strip}'
+ light_pink: '{color13.strip}'
+ light_cyan: '{color14.strip}'
+
+ black: '{background.strip}'
+ gray: '{color8.strip}'
+
+core:
+ regular_file: {{}}
+
+ directory:
+ foreground: blue
+
+ executable_file:
+ foreground: red
+ font-style: bold
+
+ symlink:
+ foreground: pink
+
+ broken_symlink:
+ foreground: black
+ background: red
+
+ fifo:
+ foreground: black
+ background: blue
+
+ socket:
+ foreground: black
+ background: pink
+
+ character_device:
+ foreground: pink
+ background: gray
+
+ block_device:
+ foreground: cyan
+ background: gray
+
+ normal_text:
+ {{}}
+
+text:
+ special:
+ foreground: background_color
+ background: yellow
+
+ todo:
+ font-style: bold
+
+ licenses:
+ foreground: gray
+
+ configuration:
+ foreground: yellow
+
+ other:
+ foreground: yellow
+
+markup:
+ foreground: yellow
+
+programming:
+ source:
+ foreground: green
+
+ tooling:
+ foreground: light_green
+
+ continuous-integration:
+ foreground: green
+
+media:
+ foreground: light_pink
+
+office:
+ foreground: red
+
+archives:
+ foreground: cyan
+ font-style: underline
+
+executable:
+ foreground: red
+ font-style: bold
+
+unimportant:
+ foreground: gray
From bec05feedf4c78c1cddca826478ff804f2c77bae Mon Sep 17 00:00:00 2001
From: Dylan Araps
Date: Mon, 21 Jan 2019 08:12:36 +0200
Subject: [PATCH 066/127] general: version bump
---
pywal/templates/colors-vivid.yml | 102 -------------------------------
1 file changed, 102 deletions(-)
delete mode 100644 pywal/templates/colors-vivid.yml
diff --git a/pywal/templates/colors-vivid.yml b/pywal/templates/colors-vivid.yml
deleted file mode 100644
index 4181ce4..0000000
--- a/pywal/templates/colors-vivid.yml
+++ /dev/null
@@ -1,102 +0,0 @@
-colors:
- background_color: '{background.strip}'
- white: '{foreground.strip}'
- red: '{color1.strip}'
- green: '{color2.strip}'
- yellow: '{color3.strip}'
- blue: '{color4.strip}'
- pink: '{color5.strip}'
- cyan: '{color6.strip}'
-
- light_red: '{color9.strip}'
- light_green: '{color10.strip}'
- light_yellow: '{color11.strip}'
- light_blue: '{color12.strip}'
- light_pink: '{color13.strip}'
- light_cyan: '{color14.strip}'
-
- black: '{background.strip}'
- gray: '{color8.strip}'
-
-core:
- regular_file: {{}}
-
- directory:
- foreground: blue
-
- executable_file:
- foreground: red
- font-style: bold
-
- symlink:
- foreground: pink
-
- broken_symlink:
- foreground: black
- background: red
-
- fifo:
- foreground: black
- background: blue
-
- socket:
- foreground: black
- background: pink
-
- character_device:
- foreground: pink
- background: gray
-
- block_device:
- foreground: cyan
- background: gray
-
- normal_text:
- {{}}
-
-text:
- special:
- foreground: background_color
- background: yellow
-
- todo:
- font-style: bold
-
- licenses:
- foreground: gray
-
- configuration:
- foreground: yellow
-
- other:
- foreground: yellow
-
-markup:
- foreground: yellow
-
-programming:
- source:
- foreground: green
-
- tooling:
- foreground: light_green
-
- continuous-integration:
- foreground: green
-
-media:
- foreground: light_pink
-
-office:
- foreground: red
-
-archives:
- foreground: cyan
- font-style: underline
-
-executable:
- foreground: red
- font-style: bold
-
-unimportant:
- foreground: gray
From 984c7b640ea2336df351c87f744104e51ca32970 Mon Sep 17 00:00:00 2001
From: Dylan Araps
Date: Mon, 21 Jan 2019 08:13:02 +0200
Subject: [PATCH 067/127] general: version bump
---
pywal/settings.py | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/pywal/settings.py b/pywal/settings.py
index 65cc26c..4adb249 100644
--- a/pywal/settings.py
+++ b/pywal/settings.py
@@ -13,7 +13,7 @@ import os
import platform
-__version__ = "3.3"
+__version__ = "3.3.0"
__cache_version__ = "1.1.0"
From 88d6ec835be8f47c734843e8b4f455550423ce67 Mon Sep 17 00:00:00 2001
From: Sean Haugh
Date: Mon, 21 Jan 2019 16:12:10 -0600
Subject: [PATCH 068/127] wallpaper: fix awesome wallpaper setting
---
pywal/wallpaper.py | 4 +++-
1 file changed, 3 insertions(+), 1 deletion(-)
diff --git a/pywal/wallpaper.py b/pywal/wallpaper.py
index ba61e66..e648d5a 100644
--- a/pywal/wallpaper.py
+++ b/pywal/wallpaper.py
@@ -97,7 +97,9 @@ def set_desktop_wallpaper(desktop, img):
util.disown(["swaymsg", "output", "*", "bg", img, "fill"])
elif "awesome" in desktop:
- util.disown(["awesome-client", "gears.wallpaper.maximized(", img, ")"])
+ util.disown(["awesome-client",
+ "require('gears').wallpaper.maximized('{img}')"
+ .format(**locals())])
else:
set_wm_wallpaper(img)
From f88dca706fd5470d18a8a17c5733e62681dc7f86 Mon Sep 17 00:00:00 2001
From: Dylan Araps
Date: Sat, 2 Feb 2019 21:07:28 +0200
Subject: [PATCH 069/127] reload: Fix error if pidof not installed
---
pywal/util.py | 4 ++++
1 file changed, 4 insertions(+)
diff --git a/pywal/util.py b/pywal/util.py
index de8eb09..a158da9 100644
--- a/pywal/util.py
+++ b/pywal/util.py
@@ -5,6 +5,7 @@ import colorsys
import json
import logging
import os
+import shutil
import subprocess
import sys
@@ -178,6 +179,9 @@ def disown(cmd):
def get_pid(name):
"""Check if process is running by name."""
+ if not shutil.which("pidof"):
+ return False
+
try:
subprocess.check_output(["pidof", "-s", name])
except subprocess.CalledProcessError:
From 668f9bbd5bffc6b7d65254da9a6bf6581a6726e9 Mon Sep 17 00:00:00 2001
From: Dylan Araps
Date: Sat, 9 Feb 2019 21:40:50 +0200
Subject: [PATCH 070/127] general: Use XDG directories
---
pywal/settings.py | 8 ++++++--
1 file changed, 6 insertions(+), 2 deletions(-)
diff --git a/pywal/settings.py b/pywal/settings.py
index 4adb249..3b81c9e 100644
--- a/pywal/settings.py
+++ b/pywal/settings.py
@@ -18,7 +18,11 @@ __cache_version__ = "1.1.0"
HOME = os.getenv("HOME", os.getenv("USERPROFILE"))
-CACHE_DIR = os.getenv("PYWAL_CACHE_DIR", os.path.join(HOME, ".cache", "wal"))
+XDG_CACHE_DIR = os.getenv("XDG_CACHE_HOME", os.path.join(HOME, ".cache"))
+XDG_CONF_DIR = os.getenv("XDG_CONFIG_HOME", os.path.join(HOME, ".config"))
+
+CACHE_DIR = os.getenv("PYWAL_CACHE_DIR", os.path.join(XDG_CACHE_DIR, "wal"))
+CONF_DIR = os.path.join(XDG_CONF_DIR, "wal")
MODULE_DIR = os.path.dirname(__file__)
-CONF_DIR = os.path.join(HOME, ".config", "wal")
+
OS = platform.uname()[0]
From 1d4127925dfe9c43281b99a43a9ef4dcf7351dc8 Mon Sep 17 00:00:00 2001
From: Dylan Araps
Date: Sun, 10 Feb 2019 08:07:06 +0200
Subject: [PATCH 071/127] export: Print error message if template can't be
parsed.
---
pywal/export.py | 8 +++++++-
1 file changed, 7 insertions(+), 1 deletion(-)
diff --git a/pywal/export.py b/pywal/export.py
index 83dd15c..fb284bd 100644
--- a/pywal/export.py
+++ b/pywal/export.py
@@ -12,7 +12,13 @@ def template(colors, input_file, output_file=None):
"""Read template file, substitute markers and
save the file elsewhere."""
template_data = util.read_file_raw(input_file)
- template_data = "".join(template_data).format(**colors)
+
+ try:
+ template_data = "".join(template_data).format(**colors)
+ except ValueError:
+ logging.error("Syntax error in template file '%s'. "
+ "Are non-marker braces escaped? '{{}}'?" % input_file)
+ return
util.save_file(template_data, output_file)
From 0f7c6aeaf9eda9a5062b78950a60ca72771388a7 Mon Sep 17 00:00:00 2001
From: Dylan Araps
Date: Sun, 3 Mar 2019 11:41:10 +0200
Subject: [PATCH 072/127] export: Skip swp files
---
pywal/export.py | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/pywal/export.py b/pywal/export.py
index fb284bd..4139cb7 100644
--- a/pywal/export.py
+++ b/pywal/export.py
@@ -70,7 +70,7 @@ def every(colors, output_dir=CACHE_DIR):
join = os.path.join # Minor optimization.
for file in [*os.scandir(template_dir),
*os.scandir(template_dir_user)]:
- if file.name != ".DS_Store":
+ if file.name != ".DS_Store" and not file.name.endswith(".swp"):
template(colors, file.path, join(output_dir, file.name))
logging.info("Exported all files.")
From 2f8d458f8916e31cd9b5a0045510e70d86ae42cd Mon Sep 17 00:00:00 2001
From: Dylan Araps
Date: Tue, 5 Mar 2019 09:13:52 +0200
Subject: [PATCH 073/127] general: Add file size to caching to avoid
collisions. Closes #385
---
pywal/colors.py | 6 ++++--
1 file changed, 4 insertions(+), 2 deletions(-)
diff --git a/pywal/colors.py b/pywal/colors.py
index 86db9c4..99d346d 100644
--- a/pywal/colors.py
+++ b/pywal/colors.py
@@ -87,9 +87,11 @@ def cache_fname(img, backend, light, cache_dir, sat=""):
"""Create the cache file name."""
color_type = "light" if light else "dark"
file_name = re.sub("[/|\\|.]", "_", img)
+ file_size = os.path.getsize(img)
- file_parts = [file_name, color_type, backend, sat, __cache_version__]
- return [cache_dir, "schemes", "%s_%s_%s_%s_%s.json" % (*file_parts,)]
+ file_parts = [file_name, color_type, backend,
+ sat, file_size, __cache_version__]
+ return [cache_dir, "schemes", "%s_%s_%s_%s_%s_%s.json" % (*file_parts,)]
def get_backend(backend):
From 95c1cc18bcb68fc3b4dfa73bfe75d1bd207ca956 Mon Sep 17 00:00:00 2001
From: Dylan Araps
Date: Tue, 5 Mar 2019 11:27:54 +0200
Subject: [PATCH 074/127] docs: update
---
pywal/export.py | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/pywal/export.py b/pywal/export.py
index 4139cb7..0a2b8f3 100644
--- a/pywal/export.py
+++ b/pywal/export.py
@@ -16,8 +16,8 @@ def template(colors, input_file, output_file=None):
try:
template_data = "".join(template_data).format(**colors)
except ValueError:
- logging.error("Syntax error in template file '%s'. "
- "Are non-marker braces escaped? '{{}}'?" % input_file)
+ logging.error("Syntax error in template file '%s'. ", input_file,
+ "Are non-marker braces escaped? '{{}}'?")
return
util.save_file(template_data, output_file)
From 3292a5513d79f3ead1a8f27178b0fab76078f0fd Mon Sep 17 00:00:00 2001
From: Dylan Araps
Date: Tue, 5 Mar 2019 11:32:49 +0200
Subject: [PATCH 075/127] docs: update
---
pywal/export.py | 3 +--
1 file changed, 1 insertion(+), 2 deletions(-)
diff --git a/pywal/export.py b/pywal/export.py
index 0a2b8f3..88c98a6 100644
--- a/pywal/export.py
+++ b/pywal/export.py
@@ -16,8 +16,7 @@ def template(colors, input_file, output_file=None):
try:
template_data = "".join(template_data).format(**colors)
except ValueError:
- logging.error("Syntax error in template file '%s'. ", input_file,
- "Are non-marker braces escaped? '{{}}'?")
+ logging.error("Syntax error in template file '%s'.", input_file)
return
util.save_file(template_data, output_file)
From e261f75d9899ab1447b538b7511c8be0436b6cb2 Mon Sep 17 00:00:00 2001
From: Michael Migliore
Date: Tue, 5 Mar 2019 13:56:33 +0100
Subject: [PATCH 076/127] reload: support for bspwm
---
pywal/reload.py | 7 +++++++
1 file changed, 7 insertions(+)
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()
From 788533e5c20132c727e2f287dce6ada64ebd5872 Mon Sep 17 00:00:00 2001
From: Austin Schey
Date: Sun, 3 Mar 2019 11:13:44 -0600
Subject: [PATCH 077/127] added features for saving user themes and loading
random themes
---
pywal/__main__.py | 10 +++++++++-
pywal/theme.py | 19 +++++++++++++++++++
2 files changed, 28 insertions(+), 1 deletion(-)
diff --git a/pywal/__main__.py b/pywal/__main__.py
index 2e50ca9..15b7228 100644
--- a/pywal/__main__.py
+++ b/pywal/__main__.py
@@ -45,7 +45,7 @@ def get_args():
arg.add_argument("--theme", "-f", metavar="/path/to/file or theme_name",
help="Which colorscheme file to use. \
- Use 'wal --theme' to list builtin themes.",
+ Use 'wal --theme' to list builtin and user themes.",
const="list_themes", nargs="?")
arg.add_argument("--iterative", action="store_true",
@@ -77,6 +77,11 @@ def get_args():
arg.add_argument("-o", metavar="\"script_name\"", action="append",
help="External script to run after \"wal\".")
+ arg.add_argument("-p", metavar="\"theme_name\"",
+ help="permanently save theme to "
+ "$XDG_CONFIG_HOME/wal/colorschemes with "
+ "the specified name")
+
arg.add_argument("-q", action="store_true",
help="Quiet mode, don\'t print anything.")
@@ -177,6 +182,9 @@ def parse_args(parser):
if not args.n:
wallpaper.change(colors_plain["wallpaper"])
+ if args.p:
+ theme.save(colors_plain, args.p, args.l)
+
sequences.send(colors_plain, to_send=not args.s, vte_fix=args.vte)
if sys.stdout.isatty():
diff --git a/pywal/theme.py b/pywal/theme.py
index fcd1dd1..62695b5 100644
--- a/pywal/theme.py
+++ b/pywal/theme.py
@@ -33,6 +33,7 @@ def list_out():
print(" - random (select a random dark theme)")
print(" - random_dark (select a random dark theme)")
print(" - random_light (select a random light theme)")
+ print(" - random_user (select a random user theme)")
def list_themes(dark=True):
@@ -88,6 +89,13 @@ def get_random_theme(dark=True):
return themes[0]
+def get_random_theme_user():
+ """Get a random theme file from user theme directories."""
+ themes = [theme.path for theme in list_themes_user()]
+ random.shuffle(themes)
+ return themes[0]
+
+
def file(input_file, light=False):
"""Import colorscheme from json file."""
util.create_dir(os.path.join(CONF_DIR, "colorschemes/light/"))
@@ -106,6 +114,9 @@ def file(input_file, light=False):
elif input_file == "random_light":
theme_file = get_random_theme(light)
+ elif input_file == "random_user":
+ theme_file = get_random_theme_user()
+
elif os.path.isfile(user_theme_file):
theme_file = user_theme_file
@@ -122,3 +133,11 @@ def file(input_file, light=False):
logging.error("Try adding '-l' to set light themes.")
logging.error("Try removing '-l' to set dark themes.")
sys.exit(1)
+
+
+def save(colors, theme_name, light=False):
+ """Save colors to a theme file."""
+ theme_file = theme_name + ".json"
+ theme_path = os.path.join(CONF_DIR, "colorschemes",
+ "light" if light else "dark", theme_file)
+ util.save_file_json(colors, theme_path)
From c41022ff7fad62821f620d3e2ee22ada5e2faa38 Mon Sep 17 00:00:00 2001
From: rob
Date: Thu, 28 Feb 2019 18:27:19 -0700
Subject: [PATCH 078/127] Issue #330: MacOS Mojave Dock Crash
---
pywal/wallpaper.py | 13 ++++++++++++-
1 file changed, 12 insertions(+), 1 deletion(-)
diff --git a/pywal/wallpaper.py b/pywal/wallpaper.py
index e648d5a..3ab38af 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
From 59929df445c8b198bf055ee0fa10fc49466c1d91 Mon Sep 17 00:00:00 2001
From: rob
Date: Thu, 28 Feb 2019 18:44:42 -0700
Subject: [PATCH 079/127] pylint check
---
pywal/wallpaper.py | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/pywal/wallpaper.py b/pywal/wallpaper.py
index 3ab38af..32573df 100644
--- a/pywal/wallpaper.py
+++ b/pywal/wallpaper.py
@@ -109,10 +109,10 @@ 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)
- img_dir, _ = os.path.split(img);
+ img_dir, _ = os.path.split(img)
#Clear the existing picture data and write the image paths
- sql = "delete from data; "
+ sql = "delete from data; "
sql += "insert into data values(\"%s\"); " % img_dir
sql += "insert into data values(\"%s\"); " % img
From f538f55ea3e3e8a62c7134b582eb5e00e8eb69f8 Mon Sep 17 00:00:00 2001
From: rob
Date: Thu, 28 Feb 2019 18:47:58 -0700
Subject: [PATCH 080/127] comment spacing
---
pywal/wallpaper.py | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/pywal/wallpaper.py b/pywal/wallpaper.py
index 32573df..e711713 100644
--- a/pywal/wallpaper.py
+++ b/pywal/wallpaper.py
@@ -111,12 +111,12 @@ def set_mac_wallpaper(img):
db_path = os.path.join(HOME, db_file)
img_dir, _ = os.path.split(img)
- #Clear the existing picture data and write the image paths
+ # 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
+ # 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;"
From e2cea2808c46cb85e3f5fb51b607a09addacb9bc Mon Sep 17 00:00:00 2001
From: rob
Date: Wed, 6 Mar 2019 22:19:28 -0700
Subject: [PATCH 081/127] Issue #382 - transparent iTerm2 cursor
---
pywal/sequences.py | 10 +++++-----
1 file changed, 5 insertions(+), 5 deletions(-)
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":
From c1f8b7bb98f3c829b18eb8d93aba4209fa2e5043 Mon Sep 17 00:00:00 2001
From: Dylan Araps
Date: Wed, 13 Mar 2019 15:30:39 +0200
Subject: [PATCH 082/127] colors.sh: Fix quoting issue. Closes #392
---
pywal/templates/colors.sh | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/pywal/templates/colors.sh b/pywal/templates/colors.sh
index b607b93..5f27883 100644
--- a/pywal/templates/colors.sh
+++ b/pywal/templates/colors.sh
@@ -1,6 +1,6 @@
# Shell variables
# Generated by 'wal'
-wallpaper='{wallpaper}'
+wallpaper="{wallpaper}"
# Special
background='{background}'
From e10337c838d088e3a8075c3f2771574bbf001a5d Mon Sep 17 00:00:00 2001
From: Lorenz Leitner
Date: Thu, 14 Mar 2019 20:20:33 +0100
Subject: [PATCH 083/127] Print found directories
TODO: Move to different method, since this way lower depth images are
preferred
---
pywal/image.py | 7 +++++--
1 file changed, 5 insertions(+), 2 deletions(-)
diff --git a/pywal/image.py b/pywal/image.py
index 897f443..63ab209 100644
--- a/pywal/image.py
+++ b/pywal/image.py
@@ -31,7 +31,10 @@ def get_random_image(img_dir):
images.remove(current_wall)
elif not images:
- logging.error("No images found in directory.")
+ logging.error("No images found in directory, picking random directory.")
+ logging.info("Found dirs: {}".format([dir_file.name for dir_file in
+ os.scandir(img_dir)]))
+
sys.exit(1)
random.shuffle(images)
@@ -59,7 +62,7 @@ def get_next_image(img_dir):
return os.path.join(img_dir, image)
-def get(img, cache_dir=CACHE_DIR, iterative=False):
+def get(img, cache_dir=CACHE_DIR, iterative=False, recursive=False):
"""Validate image input."""
if os.path.isfile(img):
wal_img = img
From e0c30a34a08feb2d8a0aa1b9f1019c27df6837fe Mon Sep 17 00:00:00 2001
From: Lorenz Leitner
Date: Fri, 15 Mar 2019 09:11:32 +0100
Subject: [PATCH 084/127] Basic functionality
---
pywal/image.py | 43 ++++++++++++++++++++++++++++++++++++++-----
1 file changed, 38 insertions(+), 5 deletions(-)
diff --git a/pywal/image.py b/pywal/image.py
index 63ab209..d535b67 100644
--- a/pywal/image.py
+++ b/pywal/image.py
@@ -12,6 +12,22 @@ from . import util
from . import wallpaper
+def get_image_dir_recursive(img_dir):
+ """Get all images in a directory recursively."""
+ current_wall = wallpaper.get()
+ current_wall = os.path.basename(current_wall)
+
+ file_types = (".png", ".jpg", ".jpeg", ".jpe", ".gif")
+
+ images = []
+ for path, subdirs, files in os.walk(img_dir):
+ for name in files:
+ print(os.path.join(path, name))
+ images.append(os.path.join(path, name))
+
+ return images, current_wall
+
+
def get_image_dir(img_dir):
"""Get all images in a directory."""
current_wall = wallpaper.get()
@@ -31,16 +47,29 @@ def get_random_image(img_dir):
images.remove(current_wall)
elif not images:
- logging.error("No images found in directory, picking random directory.")
- logging.info("Found dirs: {}".format([dir_file.name for dir_file in
- os.scandir(img_dir)]))
-
+ logging.error("No images found in directory.")
sys.exit(1)
random.shuffle(images)
return os.path.join(img_dir, images[0])
+def get_random_image_recursive(img_dir):
+ """Pick a random image file from a directory recursively."""
+ images, current_wall = get_image_dir_recursive(img_dir)
+
+ if len(images) > 2 and current_wall in images:
+ images.remove(current_wall)
+
+ elif not images:
+ logging.error("No images found in directory.")
+ sys.exit(1)
+
+ print(images)
+ random.shuffle(images)
+ return os.path.join("", images[0])
+
+
def get_next_image(img_dir):
"""Get the next image in a dir."""
images, current_wall = get_image_dir(img_dir)
@@ -64,6 +93,7 @@ def get_next_image(img_dir):
def get(img, cache_dir=CACHE_DIR, iterative=False, recursive=False):
"""Validate image input."""
+ recursive = True # TODO: Remove
if os.path.isfile(img):
wal_img = img
@@ -72,7 +102,10 @@ def get(img, cache_dir=CACHE_DIR, iterative=False, recursive=False):
wal_img = get_next_image(img)
else:
- wal_img = get_random_image(img)
+ if recursive:
+ wal_img = get_random_image_recursive(img)
+ else:
+ wal_img = get_random_image(img)
else:
logging.error("No valid image file found.")
From 8b6ca5cbabc0cd982b72d4aede5639e663b5cdea Mon Sep 17 00:00:00 2001
From: Lorenz Leitner
Date: Fri, 15 Mar 2019 09:15:42 +0100
Subject: [PATCH 085/127] Check file ending
---
pywal/image.py | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/pywal/image.py b/pywal/image.py
index d535b67..a3ddd8a 100644
--- a/pywal/image.py
+++ b/pywal/image.py
@@ -22,8 +22,8 @@ def get_image_dir_recursive(img_dir):
images = []
for path, subdirs, files in os.walk(img_dir):
for name in files:
- print(os.path.join(path, name))
- images.append(os.path.join(path, name))
+ if name.lower().endswith(file_types):
+ images.append(os.path.join(path, name))
return images, current_wall
From b91ecad12bad39a41611b41f5db436a2cf4f34d7 Mon Sep 17 00:00:00 2001
From: Lorenz Leitner
Date: Fri, 15 Mar 2019 09:38:32 +0100
Subject: [PATCH 086/127] Fix current wallpaper reuse
---
pywal/image.py | 8 +++-----
1 file changed, 3 insertions(+), 5 deletions(-)
diff --git a/pywal/image.py b/pywal/image.py
index a3ddd8a..ecd46ff 100644
--- a/pywal/image.py
+++ b/pywal/image.py
@@ -22,9 +22,10 @@ def get_image_dir_recursive(img_dir):
images = []
for path, subdirs, files in os.walk(img_dir):
for name in files:
- if name.lower().endswith(file_types):
+ if name.lower().endswith(file_types) and not name.endswith(current_wall):
images.append(os.path.join(path, name))
+
return images, current_wall
@@ -58,10 +59,7 @@ def get_random_image_recursive(img_dir):
"""Pick a random image file from a directory recursively."""
images, current_wall = get_image_dir_recursive(img_dir)
- if len(images) > 2 and current_wall in images:
- images.remove(current_wall)
-
- elif not images:
+ if not images:
logging.error("No images found in directory.")
sys.exit(1)
From 3a95122157071c44f521210858a5c6bacfe9c3bb Mon Sep 17 00:00:00 2001
From: Lorenz Leitner
Date: Fri, 15 Mar 2019 09:49:21 +0100
Subject: [PATCH 087/127] Iterative images recursively
---
pywal/image.py | 23 +++++++++++++++--------
1 file changed, 15 insertions(+), 8 deletions(-)
diff --git a/pywal/image.py b/pywal/image.py
index ecd46ff..71a12f0 100644
--- a/pywal/image.py
+++ b/pywal/image.py
@@ -22,9 +22,10 @@ def get_image_dir_recursive(img_dir):
images = []
for path, subdirs, files in os.walk(img_dir):
for name in files:
- if name.lower().endswith(file_types) and not name.endswith(current_wall):
- images.append(os.path.join(path, name))
-
+ if name.lower().endswith(file_types):
+ if name.endswith(current_wall):
+ current_wall = os.path.join(path, name)
+ images.append(os.path.join(path, name))
return images, current_wall
@@ -59,18 +60,24 @@ def get_random_image_recursive(img_dir):
"""Pick a random image file from a directory recursively."""
images, current_wall = get_image_dir_recursive(img_dir)
+ if len(images) > 2 and current_wall in images:
+ images.remove(current_wall)
+
if not images:
logging.error("No images found in directory.")
sys.exit(1)
- print(images)
random.shuffle(images)
return os.path.join("", images[0])
-def get_next_image(img_dir):
+def get_next_image(img_dir, recursive):
"""Get the next image in a dir."""
- images, current_wall = get_image_dir(img_dir)
+ if recursive:
+ images, current_wall = get_image_dir_recursive(img_dir)
+ else:
+ images, current_wall = get_image_dir(img_dir)
+
images.sort(key=lambda img: [int(x) if x.isdigit() else x
for x in re.split('([0-9]+)', img)])
@@ -86,7 +93,7 @@ def get_next_image(img_dir):
except IndexError:
image = images[0]
- return os.path.join(img_dir, image)
+ return os.path.join(img_dir if not recursive else "", image)
def get(img, cache_dir=CACHE_DIR, iterative=False, recursive=False):
@@ -97,7 +104,7 @@ def get(img, cache_dir=CACHE_DIR, iterative=False, recursive=False):
elif os.path.isdir(img):
if iterative:
- wal_img = get_next_image(img)
+ wal_img = get_next_image(img, recursive)
else:
if recursive:
From 31f23088d70622ea5411e63a8449fc03dc0cade1 Mon Sep 17 00:00:00 2001
From: Lorenz Leitner
Date: Fri, 15 Mar 2019 10:06:04 +0100
Subject: [PATCH 088/127] Add recursive argument to cli
---
pywal/__main__.py | 8 +++++++-
pywal/image.py | 1 -
2 files changed, 7 insertions(+), 2 deletions(-)
diff --git a/pywal/__main__.py b/pywal/__main__.py
index 2e50ca9..b7a7aad 100644
--- a/pywal/__main__.py
+++ b/pywal/__main__.py
@@ -53,6 +53,11 @@ def get_args():
"flag is used: Go through the images in order "
"instead of shuffled.")
+ arg.add_argument("--recursive", action="store_true",
+ help="When pywal is given a directory as input and this "
+ "flag is used: Search for images recursively in "
+ "subdirectories instead of the root only.")
+
arg.add_argument("--saturate", metavar="0.0-1.0",
help="Set the color saturation.")
@@ -159,7 +164,8 @@ def parse_args(parser):
util.Color.alpha_num = args.a
if args.i:
- image_file = image.get(args.i, iterative=args.iterative)
+ image_file = image.get(args.i, iterative=args.iterative,
+ recursive=args.recursive)
colors_plain = colors.get(image_file, args.l, args.backend,
sat=args.saturate)
diff --git a/pywal/image.py b/pywal/image.py
index 71a12f0..8e55a7b 100644
--- a/pywal/image.py
+++ b/pywal/image.py
@@ -98,7 +98,6 @@ def get_next_image(img_dir, recursive):
def get(img, cache_dir=CACHE_DIR, iterative=False, recursive=False):
"""Validate image input."""
- recursive = True # TODO: Remove
if os.path.isfile(img):
wal_img = img
From 44339e5f3e2bcbcbcafa8fe0332f89c118ba12a2 Mon Sep 17 00:00:00 2001
From: Lorenz Leitner
Date: Fri, 15 Mar 2019 10:12:13 +0100
Subject: [PATCH 089/127] Remove redundant method
---
pywal/image.py | 29 +++++++----------------------
1 file changed, 7 insertions(+), 22 deletions(-)
diff --git a/pywal/image.py b/pywal/image.py
index 8e55a7b..d894189 100644
--- a/pywal/image.py
+++ b/pywal/image.py
@@ -41,9 +41,12 @@ def get_image_dir(img_dir):
if img.name.lower().endswith(file_types)], current_wall
-def get_random_image(img_dir):
+def get_random_image(img_dir, recursive):
"""Pick a random image file from a directory."""
- images, current_wall = get_image_dir(img_dir)
+ if recursive:
+ images, current_wall = get_image_dir_recursive(img_dir)
+ else:
+ images, current_wall = get_image_dir(img_dir)
if len(images) > 2 and current_wall in images:
images.remove(current_wall)
@@ -53,22 +56,7 @@ def get_random_image(img_dir):
sys.exit(1)
random.shuffle(images)
- return os.path.join(img_dir, images[0])
-
-
-def get_random_image_recursive(img_dir):
- """Pick a random image file from a directory recursively."""
- images, current_wall = get_image_dir_recursive(img_dir)
-
- if len(images) > 2 and current_wall in images:
- images.remove(current_wall)
-
- if not images:
- logging.error("No images found in directory.")
- sys.exit(1)
-
- random.shuffle(images)
- return os.path.join("", images[0])
+ return os.path.join(img_dir if not recursive else "", images[0])
def get_next_image(img_dir, recursive):
@@ -106,10 +94,7 @@ def get(img, cache_dir=CACHE_DIR, iterative=False, recursive=False):
wal_img = get_next_image(img, recursive)
else:
- if recursive:
- wal_img = get_random_image_recursive(img)
- else:
- wal_img = get_random_image(img)
+ wal_img = get_random_image(img, recursive)
else:
logging.error("No valid image file found.")
From bbc5a33394c024afe120c0959dd9cb8e01636321 Mon Sep 17 00:00:00 2001
From: Lorenz Leitner
Date: Fri, 15 Mar 2019 10:34:45 +0100
Subject: [PATCH 090/127] Fix indentation
---
pywal/__main__.py | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/pywal/__main__.py b/pywal/__main__.py
index b7a7aad..e38cb3f 100644
--- a/pywal/__main__.py
+++ b/pywal/__main__.py
@@ -165,7 +165,7 @@ def parse_args(parser):
if args.i:
image_file = image.get(args.i, iterative=args.iterative,
- recursive=args.recursive)
+ recursive=args.recursive)
colors_plain = colors.get(image_file, args.l, args.backend,
sat=args.saturate)
From d5a1532f184f6b33b7622f3258f63cb0c7f82a15 Mon Sep 17 00:00:00 2001
From: Lorenz Leitner
Date: Fri, 15 Mar 2019 10:36:26 +0100
Subject: [PATCH 091/127] Fix unused variable
---
pywal/image.py | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/pywal/image.py b/pywal/image.py
index d894189..6ef74fc 100644
--- a/pywal/image.py
+++ b/pywal/image.py
@@ -20,7 +20,7 @@ def get_image_dir_recursive(img_dir):
file_types = (".png", ".jpg", ".jpeg", ".jpe", ".gif")
images = []
- for path, subdirs, files in os.walk(img_dir):
+ for path, _, files in os.walk(img_dir):
for name in files:
if name.lower().endswith(file_types):
if name.endswith(current_wall):
From afa3ff125924334a5d0276efda7932fd7d5b8603 Mon Sep 17 00:00:00 2001
From: Lorenz Leitner
Date: Fri, 15 Mar 2019 10:40:35 +0100
Subject: [PATCH 092/127] Try to fix indentation again
---
pywal/__main__.py | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/pywal/__main__.py b/pywal/__main__.py
index e38cb3f..72da80d 100644
--- a/pywal/__main__.py
+++ b/pywal/__main__.py
@@ -165,7 +165,7 @@ def parse_args(parser):
if args.i:
image_file = image.get(args.i, iterative=args.iterative,
- recursive=args.recursive)
+ recursive=args.recursive)
colors_plain = colors.get(image_file, args.l, args.backend,
sat=args.saturate)
From 0878cc7fadbbb601f51d267a1be75d47c41cae1b Mon Sep 17 00:00:00 2001
From: Lorenz Leitner
Date: Fri, 15 Mar 2019 10:43:32 +0100
Subject: [PATCH 093/127] Finally fix indendation
---
pywal/__main__.py | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/pywal/__main__.py b/pywal/__main__.py
index 72da80d..de992b7 100644
--- a/pywal/__main__.py
+++ b/pywal/__main__.py
@@ -165,7 +165,7 @@ def parse_args(parser):
if args.i:
image_file = image.get(args.i, iterative=args.iterative,
- recursive=args.recursive)
+ recursive=args.recursive)
colors_plain = colors.get(image_file, args.l, args.backend,
sat=args.saturate)
From 2f3a492ed2d464c8be2835473c4c91af6301e5f1 Mon Sep 17 00:00:00 2001
From: Elliott Saille
Date: Thu, 21 Mar 2019 14:55:04 -0500
Subject: [PATCH 094/127] Add support for setting wallpaper in xfce > 4.12
---
pywal/wallpaper.py | 22 ++++++++++++++++------
1 file changed, 16 insertions(+), 6 deletions(-)
diff --git a/pywal/wallpaper.py b/pywal/wallpaper.py
index e711713..e9fa23e 100644
--- a/pywal/wallpaper.py
+++ b/pywal/wallpaper.py
@@ -2,6 +2,7 @@
import ctypes
import logging
import os
+import re
import shutil
import subprocess
import urllib.parse
@@ -39,10 +40,21 @@ def get_desktop_env():
return None
-def xfconf(path, img):
+def xfconf(img):
"""Call xfconf to set the wallpaper on XFCE."""
- util.disown(["xfconf-query", "--channel", "xfce4-desktop",
- "--property", path, "--set", img])
+ xfconf_re = re.compile(
+ r"^/backdrop/screen\d/monitor(?:0|\w*)/"
+ r"(?:(?:image-path|last-image)|workspace\d/last-image)$",
+ flags=re.M
+ )
+ xfconf_data = subprocess.check_output(
+ ["xfconf-query", "--channel", "xfce4-desktop", "--list"],
+ stderr=subprocess.DEVNULL
+ ).decode('utf8')
+ paths = xfconf_re.findall(xfconf_data)
+ for path in paths:
+ util.disown(["xfconf-query", "--channel", "xfce4-desktop",
+ "--property", path, "--set", img])
def set_wm_wallpaper(img):
@@ -75,9 +87,7 @@ def set_desktop_wallpaper(desktop, img):
desktop = str(desktop).lower()
if "xfce" in desktop or "xubuntu" in desktop:
- # XFCE requires two commands since they differ between versions.
- xfconf("/backdrop/screen0/monitor0/image-path", img)
- xfconf("/backdrop/screen0/monitor0/workspace0/last-image", img)
+ xfconf(img)
elif "muffin" in desktop or "cinnamon" in desktop:
util.disown(["gsettings", "set",
From 3ffd44185b8243091ec22ab64bab235c72c51377 Mon Sep 17 00:00:00 2001
From: djent-
Date: Fri, 22 Mar 2019 17:44:26 -0400
Subject: [PATCH 095/127] Fix changing kitty's colors. Kitty must be run with
-1 or --single-instance to affect all open kitty windows. Only works when wal
is run from kitty.
---
pywal/reload.py | 4 ++--
pywal/templates/colors-kitty.conf | 5 +++++
2 files changed, 7 insertions(+), 2 deletions(-)
diff --git a/pywal/reload.py b/pywal/reload.py
index de96090..720b0f4 100644
--- a/pywal/reload.py
+++ b/pywal/reload.py
@@ -56,8 +56,8 @@ def bspwm():
def kitty():
""" Reload kitty colors. """
- if shutil.which("kitty") and util.get_pid("kitty"):
- util.disown(["kitty", "@", "set-colors", "--all"])
+ if shutil.which("kitty") and util.get_pid("kitty") and os.getenv('TERM') == 'xterm-kitty':
+ subprocess.call(["kitty", "@", "set-colors", "--all", os.path.join(CACHE_DIR, "colors-kitty.conf")])
def polybar():
diff --git a/pywal/templates/colors-kitty.conf b/pywal/templates/colors-kitty.conf
index f744418..c9324e0 100644
--- a/pywal/templates/colors-kitty.conf
+++ b/pywal/templates/colors-kitty.conf
@@ -2,6 +2,11 @@ foreground {foreground}
background {background}
cursor {cursor}
+active_tab_foreground {foreground}
+active_tab_background {background}
+inactive_tab_foreground {background}
+inactive_tab_background {foreground}
+
color0 {color0}
color8 {color8}
color1 {color1}
From 961695a47afd62625243b01132a5ef8aed22ec9c Mon Sep 17 00:00:00 2001
From: djent-
Date: Fri, 22 Mar 2019 18:01:19 -0400
Subject: [PATCH 096/127] Add color config for internal window borders
---
pywal/templates/colors-kitty.conf | 4 ++++
1 file changed, 4 insertions(+)
diff --git a/pywal/templates/colors-kitty.conf b/pywal/templates/colors-kitty.conf
index c9324e0..e9b5bbf 100644
--- a/pywal/templates/colors-kitty.conf
+++ b/pywal/templates/colors-kitty.conf
@@ -7,6 +7,10 @@ active_tab_background {background}
inactive_tab_foreground {background}
inactive_tab_background {foreground}
+active_border_color {foreground}
+inactive_border_color {background}
+bell_border_color {color1}
+
color0 {color0}
color8 {color8}
color1 {color1}
From efa7c86ec5f9b0f5df0d361fe1f8b7a9076b65de Mon Sep 17 00:00:00 2001
From: Will Eccles
Date: Thu, 4 Apr 2019 16:32:50 -0400
Subject: [PATCH 097/127] fixed pidof on mac os
---
pywal/util.py | 7 ++++++-
1 file changed, 6 insertions(+), 1 deletion(-)
diff --git a/pywal/util.py b/pywal/util.py
index a158da9..e4b146a 100644
--- a/pywal/util.py
+++ b/pywal/util.py
@@ -8,6 +8,7 @@ import os
import shutil
import subprocess
import sys
+import platform
class Color:
@@ -183,7 +184,11 @@ def get_pid(name):
return False
try:
- subprocess.check_output(["pidof", "-s", name])
+ if platform.system() != 'Darwin':
+ subprocess.check_output(["pidof", "-s", name])
+ else:
+ subprocess.check_output(["pidof", name])
+
except subprocess.CalledProcessError:
return False
From 256f9761e5ea42e768637692d7db111110e2a370 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Lucas=20Gouv=C3=AAa=20=28K2=29?=
Date: Tue, 30 Apr 2019 18:23:39 -0300
Subject: [PATCH 098/127] adds base16-snazzy colorscheme
---
pywal/colorschemes/dark/base16-snazzy.json | 1 +
1 file changed, 1 insertion(+)
create mode 100644 pywal/colorschemes/dark/base16-snazzy.json
diff --git a/pywal/colorschemes/dark/base16-snazzy.json b/pywal/colorschemes/dark/base16-snazzy.json
new file mode 100644
index 0000000..269c3fc
--- /dev/null
+++ b/pywal/colorschemes/dark/base16-snazzy.json
@@ -0,0 +1 @@
+{"special":{"background":"#282a36","foreground":"#eff0eb","cursor":"#9aedfe"},"colors":{"color0":"#33303b","color1":"#ff5c57","color2":"#5af78e","color3":"#f3f99d","color4":"#57c7ff","color5":"#ff6ac1","color6":"#9aedfe","color7":"#eff0eb","color8":"#4f4b58","color9":"#ff5c57","color10":"#5af78e","color11":"#f3f99d","color12":"#57c7ff","color13":"#ff6ac1","color14":"#9aedfe","color15":"#eff0eb"}}
From 04413ee2852165f2137c0cbfc2ea73fc62e48bfb Mon Sep 17 00:00:00 2001
From: Djent-
Date: Thu, 2 May 2019 13:33:55 -0700
Subject: [PATCH 099/127] Switch kitty tab colors to make more sense
---
pywal/templates/colors-kitty.conf | 8 ++++----
1 file changed, 4 insertions(+), 4 deletions(-)
diff --git a/pywal/templates/colors-kitty.conf b/pywal/templates/colors-kitty.conf
index e9b5bbf..19359b0 100644
--- a/pywal/templates/colors-kitty.conf
+++ b/pywal/templates/colors-kitty.conf
@@ -2,10 +2,10 @@ foreground {foreground}
background {background}
cursor {cursor}
-active_tab_foreground {foreground}
-active_tab_background {background}
-inactive_tab_foreground {background}
-inactive_tab_background {foreground}
+active_tab_foreground {background}
+active_tab_background {foreground}
+inactive_tab_foreground {foreground}
+inactive_tab_background {background}
active_border_color {foreground}
inactive_border_color {background}
From b78bf719e697e1e272f2aa0856724d6ce2ac1d98 Mon Sep 17 00:00:00 2001
From: Djent-
Date: Thu, 2 May 2019 14:14:48 -0700
Subject: [PATCH 100/127] Shorten lines for Travis CI
---
pywal/reload.py | 9 +++++++--
1 file changed, 7 insertions(+), 2 deletions(-)
diff --git a/pywal/reload.py b/pywal/reload.py
index 720b0f4..5e3c3f8 100644
--- a/pywal/reload.py
+++ b/pywal/reload.py
@@ -56,8 +56,13 @@ def bspwm():
def kitty():
""" Reload kitty colors. """
- if shutil.which("kitty") and util.get_pid("kitty") and os.getenv('TERM') == 'xterm-kitty':
- subprocess.call(["kitty", "@", "set-colors", "--all", os.path.join(CACHE_DIR, "colors-kitty.conf")])
+ if (shutil.which("kitty")
+ and util.get_pid("kitty")
+ and os.getenv('TERM') == 'xterm-kitty'):
+ subprocess.call([
+ "kitty", "@", "set-colors", "--all",
+ os.path.join(CACHE_DIR, "colors-kitty.conf")
+ ])
def polybar():
From b832581220073b01f21f1551892bde844bf57eac Mon Sep 17 00:00:00 2001
From: Djent-
Date: Thu, 2 May 2019 14:22:20 -0700
Subject: [PATCH 101/127] Change indentation to appease pylint
---
pywal/reload.py | 6 +++---
1 file changed, 3 insertions(+), 3 deletions(-)
diff --git a/pywal/reload.py b/pywal/reload.py
index 5e3c3f8..13e0ca8 100644
--- a/pywal/reload.py
+++ b/pywal/reload.py
@@ -57,10 +57,10 @@ def bspwm():
def kitty():
""" Reload kitty colors. """
if (shutil.which("kitty")
- and util.get_pid("kitty")
- and os.getenv('TERM') == 'xterm-kitty'):
+ and util.get_pid("kitty")
+ and os.getenv('TERM') == 'xterm-kitty'):
subprocess.call([
- "kitty", "@", "set-colors", "--all",
+ "kitty", "@", "set-colors", "--all",
os.path.join(CACHE_DIR, "colors-kitty.conf")
])
From 33aa30925b40cb074315d799fb38b1d3edcbd23e Mon Sep 17 00:00:00 2001
From: BuildTools
Date: Sun, 14 Jul 2019 13:01:53 +0200
Subject: [PATCH 102/127] Added a stylus template
---
pywal/templates/colors.styl | 24 ++++++++++++++++++++++++
1 file changed, 24 insertions(+)
create mode 100644 pywal/templates/colors.styl
diff --git a/pywal/templates/colors.styl b/pywal/templates/colors.styl
new file mode 100644
index 0000000..b805669
--- /dev/null
+++ b/pywal/templates/colors.styl
@@ -0,0 +1,24 @@
+// Stylus Variables
+// Generated by 'wal'
+$wallpaper = "{wallpaper}"
+
+$background = {background}
+$foregroud = {foreground}
+$cursor = {cursor}
+
+$color0 = {color0}
+$color1 = {color1}
+$color2 = {color2}
+$color3 = {color3}
+$color4 = {color4}
+$color5 = {color5}
+$color6 = {color6}
+$color7 = {color7}
+$color8 = {color8}
+$color9 = {color9}
+$color10 = {color10}
+$color11 = {color11}
+$color12 = {color12}
+$color13 = {color13}
+$color14 = {color14}
+$color15 = {color15}
From 182dfbb877a5a8843c924559ba847fd5180c7a4b Mon Sep 17 00:00:00 2001
From: dithpri
Date: Sat, 24 Aug 2019 04:04:34 +0200
Subject: [PATCH 103/127] Remove duplicate color entries in dkeg colorschemes
---
pywal/colorschemes/dark/dkeg-5725.json | 2 +-
pywal/colorschemes/dark/dkeg-amiox.json | 2 +-
pywal/colorschemes/dark/dkeg-bark.json | 2 +-
pywal/colorschemes/dark/dkeg-blend.json | 2 +-
pywal/colorschemes/dark/dkeg-blok.json | 2 +-
pywal/colorschemes/dark/dkeg-bluetype.json | 2 +-
pywal/colorschemes/dark/dkeg-blumune.json | 2 +-
pywal/colorschemes/dark/dkeg-book.json | 2 +-
pywal/colorschemes/dark/dkeg-branch.json | 2 +-
pywal/colorschemes/dark/dkeg-brownstone.json | 2 +-
pywal/colorschemes/dark/dkeg-bulb.json | 2 +-
pywal/colorschemes/dark/dkeg-chaires.json | 2 +-
pywal/colorschemes/dark/dkeg-coco.json | 2 +-
pywal/colorschemes/dark/dkeg-corduroy.json | 2 +-
pywal/colorschemes/dark/dkeg-depth.json | 2 +-
pywal/colorschemes/dark/dkeg-designr.json | 2 +-
pywal/colorschemes/dark/dkeg-diner.json | 2 +-
pywal/colorschemes/dark/dkeg-escen.json | 2 +-
pywal/colorschemes/dark/dkeg-fendr.json | 2 +-
pywal/colorschemes/dark/dkeg-flapr.json | 2 +-
pywal/colorschemes/dark/dkeg-forst.json | 2 +-
pywal/colorschemes/dark/dkeg-fury.json | 2 +-
pywal/colorschemes/dark/dkeg-harbing.json | 2 +-
pywal/colorschemes/dark/dkeg-kit.json | 2 +-
pywal/colorschemes/dark/dkeg-leaf.json | 2 +-
pywal/colorschemes/dark/dkeg-link.json | 2 +-
pywal/colorschemes/dark/dkeg-mattd.json | 2 +-
pywal/colorschemes/dark/dkeg-novmbr.json | 2 +-
pywal/colorschemes/dark/dkeg-owl.json | 2 +-
pywal/colorschemes/dark/dkeg-paints.json | 2 +-
pywal/colorschemes/dark/dkeg-parkd.json | 2 +-
pywal/colorschemes/dark/dkeg-pastely.json | 2 +-
pywal/colorschemes/dark/dkeg-petal.json | 2 +-
pywal/colorschemes/dark/dkeg-poly.json | 2 +-
pywal/colorschemes/dark/dkeg-prevail.json | 2 +-
pywal/colorschemes/dark/dkeg-provrb.json | 2 +-
pywal/colorschemes/dark/dkeg-raild.json | 2 +-
pywal/colorschemes/dark/dkeg-relax.json | 2 +-
pywal/colorschemes/dark/dkeg-scag.json | 2 +-
pywal/colorschemes/dark/dkeg-scape.json | 2 +-
pywal/colorschemes/dark/dkeg-shade.json | 2 +-
pywal/colorschemes/dark/dkeg-simplicity.json | 2 +-
pywal/colorschemes/dark/dkeg-skigh.json | 2 +-
pywal/colorschemes/dark/dkeg-slate.json | 2 +-
pywal/colorschemes/dark/dkeg-soundwave.json | 2 +-
pywal/colorschemes/dark/dkeg-spire.json | 2 +-
pywal/colorschemes/dark/dkeg-sprout.json | 2 +-
pywal/colorschemes/dark/dkeg-squares.json | 2 +-
pywal/colorschemes/dark/dkeg-stv.json | 2 +-
pywal/colorschemes/dark/dkeg-subtle.json | 2 +-
pywal/colorschemes/dark/dkeg-sundr.json | 2 +-
pywal/colorschemes/dark/dkeg-tealights.json | 2 +-
pywal/colorschemes/dark/dkeg-traffic.json | 2 +-
pywal/colorschemes/dark/dkeg-transposet.json | 2 +-
pywal/colorschemes/dark/dkeg-urban.json | 2 +-
pywal/colorschemes/dark/dkeg-vans.json | 2 +-
pywal/colorschemes/dark/dkeg-victory.json | 2 +-
pywal/colorschemes/dark/dkeg-view.json | 2 +-
pywal/colorschemes/dark/dkeg-wintry.json | 2 +-
59 files changed, 59 insertions(+), 59 deletions(-)
diff --git a/pywal/colorschemes/dark/dkeg-5725.json b/pywal/colorschemes/dark/dkeg-5725.json
index 136a6bf..53e6e78 100644
--- a/pywal/colorschemes/dark/dkeg-5725.json
+++ b/pywal/colorschemes/dark/dkeg-5725.json
@@ -1 +1 @@
-{"special":{"background":"#353234","foreground":"#c29f6f","cursor":"#363334"},"colors":{"color0":"#353234","color1":"#97544d","color2":"#97a293","color3":"#c29f6f","color4":"#5e606c","color5":"#7a6054","color6":"#78746c","color7":"#c3c1b8","color7":"#c3c1b8","color8":"#5c575b","color9":"#97544d","color10":"#97a293","color11":"#c29f6f","color12":"#5e606c","color13":"#7a6054","color14":"#78746c","color15":"#c3c1b8","color15":"#c3c1b8"}}
\ No newline at end of file
+{"special":{"background":"#353234","foreground":"#c29f6f","cursor":"#363334"},"colors":{"color0":"#353234","color1":"#97544d","color2":"#97a293","color3":"#c29f6f","color4":"#5e606c","color5":"#7a6054","color6":"#78746c","color7":"#c3c1b8","color8":"#5c575b","color9":"#97544d","color10":"#97a293","color11":"#c29f6f","color12":"#5e606c","color13":"#7a6054","color14":"#78746c","color15":"#c3c1b8"}}
\ No newline at end of file
diff --git a/pywal/colorschemes/dark/dkeg-amiox.json b/pywal/colorschemes/dark/dkeg-amiox.json
index a35afc1..eb44344 100644
--- a/pywal/colorschemes/dark/dkeg-amiox.json
+++ b/pywal/colorschemes/dark/dkeg-amiox.json
@@ -1 +1 @@
-{"special":{"background":"#262020","foreground":"#aa9a71","cursor":"#b1a89c"},"colors":{"color0":"#262020","color1":"#925633","color2":"#55634f","color3":"#aa9a71","color4":"#5e6676","color5":"#57464d","color6":"#47676e","color7":"#b1a89c","color7":"#b1a89c","color8":"#514c4c","color9":"#925633","color10":"#55634f","color11":"#aa9a71","color12":"#5e6676","color13":"#57464d","color14":"#47676e","color15":"#b1a89c","color15":"#c8c1b9"}}
\ No newline at end of file
+{"special":{"background":"#262020","foreground":"#aa9a71","cursor":"#b1a89c"},"colors":{"color0":"#262020","color1":"#925633","color2":"#55634f","color3":"#aa9a71","color4":"#5e6676","color5":"#57464d","color6":"#47676e","color7":"#b1a89c","color8":"#514c4c","color9":"#925633","color10":"#55634f","color11":"#aa9a71","color12":"#5e6676","color13":"#57464d","color14":"#47676e","color15":"#c8c1b9"}}
\ No newline at end of file
diff --git a/pywal/colorschemes/dark/dkeg-bark.json b/pywal/colorschemes/dark/dkeg-bark.json
index 1dd332e..18f4ff7 100644
--- a/pywal/colorschemes/dark/dkeg-bark.json
+++ b/pywal/colorschemes/dark/dkeg-bark.json
@@ -1 +1 @@
-{"special":{"background":"#30272b","foreground":"#978341","cursor":"#bcb8ba"},"colors":{"color0":"#30272b","color1":"#925633","color2":"#697234","color3":"#978341","color4":"#5e6676","color5":"#694e63","color6":"#47676e","color7":"#bcb8ba","color7":"#bcb8ba","color8":"#443c40","color9":"#925633","color10":"#697234","color11":"#978341","color12":"#5e6676","color13":"#694e63","color14":"#47676e","color15":"#bcb8ba","color15":"#bcb8ba"}}
\ No newline at end of file
+{"special":{"background":"#30272b","foreground":"#978341","cursor":"#bcb8ba"},"colors":{"color0":"#30272b","color1":"#925633","color2":"#697234","color3":"#978341","color4":"#5e6676","color5":"#694e63","color6":"#47676e","color7":"#bcb8ba","color8":"#443c40","color9":"#925633","color10":"#697234","color11":"#978341","color12":"#5e6676","color13":"#694e63","color14":"#47676e","color15":"#bcb8ba"}}
\ No newline at end of file
diff --git a/pywal/colorschemes/dark/dkeg-blend.json b/pywal/colorschemes/dark/dkeg-blend.json
index e863b33..1fbfa78 100644
--- a/pywal/colorschemes/dark/dkeg-blend.json
+++ b/pywal/colorschemes/dark/dkeg-blend.json
@@ -1 +1 @@
-{"special":{"background":"#272725","foreground":"#bc9f67","cursor":"#282826"},"colors":{"color0":"#272725","color1":"#7d5151","color2":"#959c4f","color3":"#a78749","color4":"#455563","color5":"#9f908d","color6":"#4a5e5b","color7":"#f2f2f2","color7":"#f2f2f2","color8":"#4f4f4b","color9":"#7d5151","color10":"#959c4f","color11":"#a78749","color12":"#455563","color13":"#9f908d","color14":"#4a5e5b","color15":"#f2f2f2","color15":"#ffffff"}}
\ No newline at end of file
+{"special":{"background":"#272725","foreground":"#bc9f67","cursor":"#282826"},"colors":{"color0":"#272725","color1":"#7d5151","color2":"#959c4f","color3":"#a78749","color4":"#455563","color5":"#9f908d","color6":"#4a5e5b","color7":"#f2f2f2","color8":"#4f4f4b","color9":"#7d5151","color10":"#959c4f","color11":"#a78749","color12":"#455563","color13":"#9f908d","color14":"#4a5e5b","color15":"#ffffff"}}
\ No newline at end of file
diff --git a/pywal/colorschemes/dark/dkeg-blok.json b/pywal/colorschemes/dark/dkeg-blok.json
index de2d386..3f1215d 100644
--- a/pywal/colorschemes/dark/dkeg-blok.json
+++ b/pywal/colorschemes/dark/dkeg-blok.json
@@ -1 +1 @@
-{"special":{"background":"#2c2a2b","foreground":"#baad8a","cursor":"#bab9ba"},"colors":{"color0":"#2c2a2b","color1":"#a67979","color2":"#809f7b","color3":"#baad8a","color4":"#6d7575","color5":"#7d6969","color6":"#7b9899","color7":"#bab9ba","color7":"#bab9ba","color8":"#545253","color9":"#a67979","color10":"#809f7b","color11":"#baad8a","color12":"#6d7575","color13":"#7d6969","color14":"#7b9899","color15":"#bab9ba","color15":"#bab9ba"}}
\ No newline at end of file
+{"special":{"background":"#2c2a2b","foreground":"#baad8a","cursor":"#bab9ba"},"colors":{"color0":"#2c2a2b","color1":"#a67979","color2":"#809f7b","color3":"#baad8a","color4":"#6d7575","color5":"#7d6969","color6":"#7b9899","color7":"#bab9ba","color8":"#545253","color9":"#a67979","color10":"#809f7b","color11":"#baad8a","color12":"#6d7575","color13":"#7d6969","color14":"#7b9899","color15":"#bab9ba"}}
\ No newline at end of file
diff --git a/pywal/colorschemes/dark/dkeg-bluetype.json b/pywal/colorschemes/dark/dkeg-bluetype.json
index 6e16caf..e060a03 100644
--- a/pywal/colorschemes/dark/dkeg-bluetype.json
+++ b/pywal/colorschemes/dark/dkeg-bluetype.json
@@ -1 +1 @@
-{"special":{"background":"#272a2a","foreground":"#80807e","cursor":"#eaeaed"},"colors":{"color0":"#272a2a","color1":"#b05f5f","color2":"#b05f5f","color3":"#88aa55","color4":"#88aa55","color5":"#ccb05f","color6":"#ccb05f","color7":"#556973","color7":"#556973","color8":"#484c4e","color9":"#b05f5f","color10":"#b05f5f","color11":"#88aa55","color12":"#88aa55","color13":"#ccb05f","color14":"#ccb05f","color15":"#556973","color15":"#f6f7f8"}}
\ No newline at end of file
+{"special":{"background":"#272a2a","foreground":"#80807e","cursor":"#eaeaed"},"colors":{"color0":"#272a2a","color1":"#b05f5f","color2":"#b05f5f","color3":"#88aa55","color4":"#88aa55","color5":"#ccb05f","color6":"#ccb05f","color7":"#556973","color8":"#484c4e","color9":"#b05f5f","color10":"#b05f5f","color11":"#88aa55","color12":"#88aa55","color13":"#ccb05f","color14":"#ccb05f","color15":"#f6f7f8"}}
\ No newline at end of file
diff --git a/pywal/colorschemes/dark/dkeg-blumune.json b/pywal/colorschemes/dark/dkeg-blumune.json
index acf973a..eb63fd0 100644
--- a/pywal/colorschemes/dark/dkeg-blumune.json
+++ b/pywal/colorschemes/dark/dkeg-blumune.json
@@ -1 +1 @@
-{"special":{"background":"#1c1f23","foreground":"#7e6b5f","cursor":"#202428"},"colors":{"color0":"#1c1f23","color1":"#234640","color2":"#555552","color3":"#7e6b5f","color4":"#384758","color5":"#444d4d","color6":"#415459","color7":"#ccc7bf","color7":"#ccc7bf","color8":"#33383f","color9":"#234640","color10":"#555552","color11":"#7e6b5f","color12":"#384758","color13":"#444d4d","color14":"#415459","color15":"#ccc7bf","color15":"#e3e0db"}}
\ No newline at end of file
+{"special":{"background":"#1c1f23","foreground":"#7e6b5f","cursor":"#202428"},"colors":{"color0":"#1c1f23","color1":"#234640","color2":"#555552","color3":"#7e6b5f","color4":"#384758","color5":"#444d4d","color6":"#415459","color7":"#ccc7bf","color8":"#33383f","color9":"#234640","color10":"#555552","color11":"#7e6b5f","color12":"#384758","color13":"#444d4d","color14":"#415459","color15":"#e3e0db"}}
\ No newline at end of file
diff --git a/pywal/colorschemes/dark/dkeg-book.json b/pywal/colorschemes/dark/dkeg-book.json
index d054225..506e2e4 100644
--- a/pywal/colorschemes/dark/dkeg-book.json
+++ b/pywal/colorschemes/dark/dkeg-book.json
@@ -1 +1 @@
-{"special":{"background":"#2b2b28","foreground":"#937b5a","cursor":"#2c2c29"},"colors":{"color0":"#2b2b28","color1":"#993f3c","color2":"#78855e","color3":"#937b5a","color4":"#415265","color5":"#885458","color6":"#646666","color7":"#c4c3c0","color7":"#c4c3c0","color8":"#c4c3c0","color9":"#993f3c","color10":"#78855e","color11":"#937b5a","color12":"#415265","color13":"#885458","color14":"#646666","color15":"#c4c3c0","color15":"#c4c3c0"}}
\ No newline at end of file
+{"special":{"background":"#2b2b28","foreground":"#937b5a","cursor":"#2c2c29"},"colors":{"color0":"#2b2b28","color1":"#993f3c","color2":"#78855e","color3":"#937b5a","color4":"#415265","color5":"#885458","color6":"#646666","color7":"#c4c3c0","color8":"#c4c3c0","color9":"#993f3c","color10":"#78855e","color11":"#937b5a","color12":"#415265","color13":"#885458","color14":"#646666","color15":"#c4c3c0"}}
\ No newline at end of file
diff --git a/pywal/colorschemes/dark/dkeg-branch.json b/pywal/colorschemes/dark/dkeg-branch.json
index bf4e6c0..be2dce3 100644
--- a/pywal/colorschemes/dark/dkeg-branch.json
+++ b/pywal/colorschemes/dark/dkeg-branch.json
@@ -1 +1 @@
-{"special":{"background":"#32221a","foreground":"#d29b5a","cursor":"#cfc1a9"},"colors":{"color0":"#32221a","color1":"#c2562d","color2":"#96a65e","color3":"#d29b5a","color4":"#3b8e8c","color5":"#c47e5b","color6":"#639a90","color7":"#cfc1a9","color7":"#cfc1a9","color8":"#564a45","color9":"#c2562d","color10":"#96a65e","color11":"#d29b5a","color12":"#3b8e8c","color13":"#c47e5b","color14":"#639a90","color15":"#cfc1a9","color15":"#cfc1a9"}}
\ No newline at end of file
+{"special":{"background":"#32221a","foreground":"#d29b5a","cursor":"#cfc1a9"},"colors":{"color0":"#32221a","color1":"#c2562d","color2":"#96a65e","color3":"#d29b5a","color4":"#3b8e8c","color5":"#c47e5b","color6":"#639a90","color7":"#cfc1a9","color8":"#564a45","color9":"#c2562d","color10":"#96a65e","color11":"#d29b5a","color12":"#3b8e8c","color13":"#c47e5b","color14":"#639a90","color15":"#cfc1a9"}}
\ No newline at end of file
diff --git a/pywal/colorschemes/dark/dkeg-brownstone.json b/pywal/colorschemes/dark/dkeg-brownstone.json
index 5a87153..4060387 100644
--- a/pywal/colorschemes/dark/dkeg-brownstone.json
+++ b/pywal/colorschemes/dark/dkeg-brownstone.json
@@ -1 +1 @@
-{"special":{"background":"#272825","foreground":"#7e744d","cursor":"#282926"},"colors":{"color0":"#272825","color1":"#674839","color2":"#6e794f","color3":"#7e744d","color4":"#3b474e","color5":"#554c41","color6":"#495355","color7":"#b0b0af","color7":"#b0b0af","color8":"#b0b0af","color9":"#674839","color10":"#6e794f","color11":"#7e744d","color12":"#3b474e","color13":"#554c41","color14":"#495355","color15":"#b0b0af","color15":"#c7c7c7"}}
\ No newline at end of file
+{"special":{"background":"#272825","foreground":"#7e744d","cursor":"#282926"},"colors":{"color0":"#272825","color1":"#674839","color2":"#6e794f","color3":"#7e744d","color4":"#3b474e","color5":"#554c41","color6":"#495355","color7":"#b0b0af","color8":"#b0b0af","color9":"#674839","color10":"#6e794f","color11":"#7e744d","color12":"#3b474e","color13":"#554c41","color14":"#495355","color15":"#c7c7c7"}}
\ No newline at end of file
diff --git a/pywal/colorschemes/dark/dkeg-bulb.json b/pywal/colorschemes/dark/dkeg-bulb.json
index fba6e23..484cab6 100644
--- a/pywal/colorschemes/dark/dkeg-bulb.json
+++ b/pywal/colorschemes/dark/dkeg-bulb.json
@@ -1 +1 @@
-{"special":{"background":"#2c292b","foreground":"#c8a168","cursor":"#312e30"},"colors":{"color0":"#2c292b","color1":"#ab6d4e","color2":"#88885d","color3":"#c8a168","color4":"#45626e","color5":"#7c5545","color6":"#456e66","color7":"#c3b495","color7":"#c3b495","color8":"#c3b495","color9":"#ab6d4e","color10":"#88885d","color11":"#c8a168","color12":"#45626e","color13":"#7c5545","color14":"#456e66","color15":"#c3b495","color15":"#c3b495"}}
\ No newline at end of file
+{"special":{"background":"#2c292b","foreground":"#c8a168","cursor":"#312e30"},"colors":{"color0":"#2c292b","color1":"#ab6d4e","color2":"#88885d","color3":"#c8a168","color4":"#45626e","color5":"#7c5545","color6":"#456e66","color7":"#c3b495","color8":"#c3b495","color9":"#ab6d4e","color10":"#88885d","color11":"#c8a168","color12":"#45626e","color13":"#7c5545","color14":"#456e66","color15":"#c3b495"}}
\ No newline at end of file
diff --git a/pywal/colorschemes/dark/dkeg-chaires.json b/pywal/colorschemes/dark/dkeg-chaires.json
index 915c1c9..c3858e1 100644
--- a/pywal/colorschemes/dark/dkeg-chaires.json
+++ b/pywal/colorschemes/dark/dkeg-chaires.json
@@ -1 +1 @@
-{"special":{"background":"#383844","foreground":"#cba264","cursor":"#cdc5b7"},"colors":{"color0":"#383844","color1":"#a7664a","color2":"#6e8c6e","color3":"#cba264","color4":"#535f6b","color5":"#775a62","color6":"#576e68","color7":"#cdc5b7","color7":"#cdc5b7","color8":"#4f4f60","color9":"#a7664a","color10":"#6e8c6e","color11":"#cba264","color12":"#535f6b","color13":"#775a62","color14":"#576e68","color15":"#cdc5b7","color15":"#cdc5b7"}}
\ No newline at end of file
+{"special":{"background":"#383844","foreground":"#cba264","cursor":"#cdc5b7"},"colors":{"color0":"#383844","color1":"#a7664a","color2":"#6e8c6e","color3":"#cba264","color4":"#535f6b","color5":"#775a62","color6":"#576e68","color7":"#cdc5b7","color8":"#4f4f60","color9":"#a7664a","color10":"#6e8c6e","color11":"#cba264","color12":"#535f6b","color13":"#775a62","color14":"#576e68","color15":"#cdc5b7"}}
\ No newline at end of file
diff --git a/pywal/colorschemes/dark/dkeg-coco.json b/pywal/colorschemes/dark/dkeg-coco.json
index 13b4cee..6ae177b 100644
--- a/pywal/colorschemes/dark/dkeg-coco.json
+++ b/pywal/colorschemes/dark/dkeg-coco.json
@@ -1 +1 @@
-{"special":{"background":"#1f1d1d","foreground":"#856237","cursor":"#ccbaad"},"colors":{"color0":"#1f1d1d","color1":"#6b4747","color2":"#8d7138","color3":"#856237","color4":"#3c3c49","color5":"#3c342e","color6":"#5d5a4b","color7":"#ccbaad","color7":"#ccbaad","color8":"#4a4a4a","color9":"#6b4747","color10":"#8d7138","color11":"#856237","color12":"#3c3c49","color13":"#3c342e","color14":"#5d5a4b","color15":"#ccbaad","color15":"#eae2dc"}}
\ No newline at end of file
+{"special":{"background":"#1f1d1d","foreground":"#856237","cursor":"#ccbaad"},"colors":{"color0":"#1f1d1d","color1":"#6b4747","color2":"#8d7138","color3":"#856237","color4":"#3c3c49","color5":"#3c342e","color6":"#5d5a4b","color7":"#ccbaad","color8":"#4a4a4a","color9":"#6b4747","color10":"#8d7138","color11":"#856237","color12":"#3c3c49","color13":"#3c342e","color14":"#5d5a4b","color15":"#eae2dc"}}
\ No newline at end of file
diff --git a/pywal/colorschemes/dark/dkeg-corduroy.json b/pywal/colorschemes/dark/dkeg-corduroy.json
index 95188f1..93336d9 100644
--- a/pywal/colorschemes/dark/dkeg-corduroy.json
+++ b/pywal/colorschemes/dark/dkeg-corduroy.json
@@ -1 +1 @@
-{"special":{"background":"#27201d","foreground":"#987f4b","cursor":"#b7afa4"},"colors":{"color0":"#27201d","color1":"#663c23","color2":"#5c5933","color3":"#987f4b","color4":"#4b484b","color5":"#9c8065","color6":"#685a50","color7":"#b7afa4","color7":"#b7afa4","color8":"#3c3633","color9":"#663c23","color10":"#5c5933","color11":"#987f4b","color12":"#4b484b","color13":"#9c8065","color14":"#685a50","color15":"#b7afa4","color15":"#b7afa4"}}
\ No newline at end of file
+{"special":{"background":"#27201d","foreground":"#987f4b","cursor":"#b7afa4"},"colors":{"color0":"#27201d","color1":"#663c23","color2":"#5c5933","color3":"#987f4b","color4":"#4b484b","color5":"#9c8065","color6":"#685a50","color7":"#b7afa4","color8":"#3c3633","color9":"#663c23","color10":"#5c5933","color11":"#987f4b","color12":"#4b484b","color13":"#9c8065","color14":"#685a50","color15":"#b7afa4"}}
\ No newline at end of file
diff --git a/pywal/colorschemes/dark/dkeg-depth.json b/pywal/colorschemes/dark/dkeg-depth.json
index 7bc4850..5ea9210 100644
--- a/pywal/colorschemes/dark/dkeg-depth.json
+++ b/pywal/colorschemes/dark/dkeg-depth.json
@@ -1 +1 @@
-{"special":{"background":"#2c2833","foreground":"#b7a16c","cursor":"#dbd7b8"},"colors":{"color0":"#2c2833","color1":"#bf6257","color2":"#82a37c","color3":"#b7a16c","color4":"#6d6a80","color5":"#825969","color6":"#938e8f","color7":"#dbd7b8","color7":"#dbd7b8","color8":"#4e4955","color9":"#bf6257","color10":"#82a37c","color11":"#b7a16c","color12":"#6d6a80","color13":"#825969","color14":"#938e8f","color15":"#dbd7b8","color15":"#dbd7b8"}}
\ No newline at end of file
+{"special":{"background":"#2c2833","foreground":"#b7a16c","cursor":"#dbd7b8"},"colors":{"color0":"#2c2833","color1":"#bf6257","color2":"#82a37c","color3":"#b7a16c","color4":"#6d6a80","color5":"#825969","color6":"#938e8f","color7":"#dbd7b8","color8":"#4e4955","color9":"#bf6257","color10":"#82a37c","color11":"#b7a16c","color12":"#6d6a80","color13":"#825969","color14":"#938e8f","color15":"#dbd7b8"}}
\ No newline at end of file
diff --git a/pywal/colorschemes/dark/dkeg-designr.json b/pywal/colorschemes/dark/dkeg-designr.json
index d82100a..2c90b63 100644
--- a/pywal/colorschemes/dark/dkeg-designr.json
+++ b/pywal/colorschemes/dark/dkeg-designr.json
@@ -1 +1 @@
-{"special":{"background":"#242e32","foreground":"#ac8d6e","cursor":"#c4c4b5"},"colors":{"color0":"#242e32","color1":"#a66959","color2":"#769070","color3":"#ac8d6e","color4":"#607a86","color5":"#8a757e","color6":"#60867f","color7":"#c4c4b5","color7":"#c4c4b5","color8":"#35444b","color9":"#a66959","color10":"#769070","color11":"#ac8d6e","color12":"#607a86","color13":"#8a757e","color14":"#60867f","color15":"#c4c4b5","color15":"#c4c4b5"}}
\ No newline at end of file
+{"special":{"background":"#242e32","foreground":"#ac8d6e","cursor":"#c4c4b5"},"colors":{"color0":"#242e32","color1":"#a66959","color2":"#769070","color3":"#ac8d6e","color4":"#607a86","color5":"#8a757e","color6":"#60867f","color7":"#c4c4b5","color8":"#35444b","color9":"#a66959","color10":"#769070","color11":"#ac8d6e","color12":"#607a86","color13":"#8a757e","color14":"#60867f","color15":"#c4c4b5"}}
\ No newline at end of file
diff --git a/pywal/colorschemes/dark/dkeg-diner.json b/pywal/colorschemes/dark/dkeg-diner.json
index 245edcb..44347bc 100644
--- a/pywal/colorschemes/dark/dkeg-diner.json
+++ b/pywal/colorschemes/dark/dkeg-diner.json
@@ -1 +1 @@
-{"special":{"background":"#2e3738","foreground":"#b8af97","cursor":"#aba599"},"colors":{"color0":"#2e3738","color1":"#9c7f5d","color2":"#8e958f","color3":"#b8af97","color4":"#828882","color5":"#bb9a7f","color6":"#9daba2","color7":"#aba599","color7":"#aba599","color8":"#485152","color9":"#9c7f5d","color10":"#8e958f","color11":"#b8af97","color12":"#828882","color13":"#bb9a7f","color14":"#9daba2","color15":"#aba599","color15":"#aba599"}}
\ No newline at end of file
+{"special":{"background":"#2e3738","foreground":"#b8af97","cursor":"#aba599"},"colors":{"color0":"#2e3738","color1":"#9c7f5d","color2":"#8e958f","color3":"#b8af97","color4":"#828882","color5":"#bb9a7f","color6":"#9daba2","color7":"#aba599","color8":"#485152","color9":"#9c7f5d","color10":"#8e958f","color11":"#b8af97","color12":"#828882","color13":"#bb9a7f","color14":"#9daba2","color15":"#aba599"}}
\ No newline at end of file
diff --git a/pywal/colorschemes/dark/dkeg-escen.json b/pywal/colorschemes/dark/dkeg-escen.json
index 74bfa30..ce05702 100644
--- a/pywal/colorschemes/dark/dkeg-escen.json
+++ b/pywal/colorschemes/dark/dkeg-escen.json
@@ -1 +1 @@
-{"special":{"background":"#1c2319","foreground":"#be9e61","cursor":"#bcbebb"},"colors":{"color0":"#1c2319","color1":"#c14d38","color2":"#a0ce52","color3":"#be9e61","color4":"#4c7e89","color5":"#814d61","color6":"#79a69d","color7":"#bcbebb","color7":"#bcbebb","color8":"#35422f","color9":"#c14d38","color10":"#a0ce52","color11":"#be9e61","color12":"#4c7e89","color13":"#814d61","color14":"#79a69d","color15":"#bcbebb","color15":"#bcbebb"}}
\ No newline at end of file
+{"special":{"background":"#1c2319","foreground":"#be9e61","cursor":"#bcbebb"},"colors":{"color0":"#1c2319","color1":"#c14d38","color2":"#a0ce52","color3":"#be9e61","color4":"#4c7e89","color5":"#814d61","color6":"#79a69d","color7":"#bcbebb","color8":"#35422f","color9":"#c14d38","color10":"#a0ce52","color11":"#be9e61","color12":"#4c7e89","color13":"#814d61","color14":"#79a69d","color15":"#bcbebb"}}
\ No newline at end of file
diff --git a/pywal/colorschemes/dark/dkeg-fendr.json b/pywal/colorschemes/dark/dkeg-fendr.json
index b1d6f28..02b90e9 100644
--- a/pywal/colorschemes/dark/dkeg-fendr.json
+++ b/pywal/colorschemes/dark/dkeg-fendr.json
@@ -1 +1 @@
-{"special":{"background":"#262c1b","foreground":"#d6caaa","cursor":"#c1c5bd"},"colors":{"color0":"#262c1b","color1":"#7f5545","color2":"#677c54","color3":"#bba772","color4":"#6e6a5b","color5":"#92887e","color6":"#7c7562","color7":"#cccdbd","color7":"#cccdbd","color8":"#474c3e","color9":"#7f5545","color10":"#677c54","color11":"#bba772","color12":"#6e6a5b","color13":"#92887e","color14":"#7c7562","color15":"#cccdbd","color15":"#e0e1d7"}}
\ No newline at end of file
+{"special":{"background":"#262c1b","foreground":"#d6caaa","cursor":"#c1c5bd"},"colors":{"color0":"#262c1b","color1":"#7f5545","color2":"#677c54","color3":"#bba772","color4":"#6e6a5b","color5":"#92887e","color6":"#7c7562","color7":"#cccdbd","color8":"#474c3e","color9":"#7f5545","color10":"#677c54","color11":"#bba772","color12":"#6e6a5b","color13":"#92887e","color14":"#7c7562","color15":"#e0e1d7"}}
\ No newline at end of file
diff --git a/pywal/colorschemes/dark/dkeg-flapr.json b/pywal/colorschemes/dark/dkeg-flapr.json
index 1cb3b32..eb5f2bd 100644
--- a/pywal/colorschemes/dark/dkeg-flapr.json
+++ b/pywal/colorschemes/dark/dkeg-flapr.json
@@ -1 +1 @@
-{"special":{"background":"#2f2832","foreground":"#9a8e80","cursor":"#302833"},"colors":{"color0":"#2f2832","color1":"#885d50","color2":"#747965","color3":"#9a8e80","color4":"#4a4e5a","color5":"#76675b","color6":"#59555c","color7":"#bcb5b5","color7":"#bcb5b5","color8":"#4a3f4e","color9":"#885d50","color10":"#747965","color11":"#9a8e80","color12":"#4a4e5a","color13":"#76675b","color14":"#59555c","color15":"#bcb5b5","color15":"#dddada"}}
\ No newline at end of file
+{"special":{"background":"#2f2832","foreground":"#9a8e80","cursor":"#302833"},"colors":{"color0":"#2f2832","color1":"#885d50","color2":"#747965","color3":"#9a8e80","color4":"#4a4e5a","color5":"#76675b","color6":"#59555c","color7":"#bcb5b5","color8":"#4a3f4e","color9":"#885d50","color10":"#747965","color11":"#9a8e80","color12":"#4a4e5a","color13":"#76675b","color14":"#59555c","color15":"#dddada"}}
\ No newline at end of file
diff --git a/pywal/colorschemes/dark/dkeg-forst.json b/pywal/colorschemes/dark/dkeg-forst.json
index f681485..83da877 100644
--- a/pywal/colorschemes/dark/dkeg-forst.json
+++ b/pywal/colorschemes/dark/dkeg-forst.json
@@ -1 +1 @@
-{"special":{"background":"#161f14","foreground":"#806420","cursor":"#172015"},"colors":{"color0":"#161f14","color1":"#744425","color2":"#50703f","color3":"#806420","color4":"#56535d","color5":"#71532f","color6":"#45605d","color7":"#aca173","color7":"#aca173","color8":"#2d352b","color9":"#744425","color10":"#50703f","color11":"#806420","color12":"#56535d","color13":"#71532f","color14":"#45605d","color15":"#aca173","color15":"#aca173"}}
\ No newline at end of file
+{"special":{"background":"#161f14","foreground":"#806420","cursor":"#172015"},"colors":{"color0":"#161f14","color1":"#744425","color2":"#50703f","color3":"#806420","color4":"#56535d","color5":"#71532f","color6":"#45605d","color7":"#aca173","color8":"#2d352b","color9":"#744425","color10":"#50703f","color11":"#806420","color12":"#56535d","color13":"#71532f","color14":"#45605d","color15":"#aca173"}}
\ No newline at end of file
diff --git a/pywal/colorschemes/dark/dkeg-fury.json b/pywal/colorschemes/dark/dkeg-fury.json
index 7a4e94d..b44d8cc 100644
--- a/pywal/colorschemes/dark/dkeg-fury.json
+++ b/pywal/colorschemes/dark/dkeg-fury.json
@@ -1 +1 @@
-{"special":{"background":"#1e1e1e","foreground":"#4c6640","cursor":"#9e9e91"},"colors":{"color0":"#1e1e1e","color1":"#98442f","color2":"#9d8554","color3":"#4c6640","color4":"#4c596b","color5":"#7b6072","color6":"#385853","color7":"#9e9e91","color7":"#9e9e91","color8":"#363636","color9":"#98442f","color10":"#9d8554","color11":"#4c6640","color12":"#4c596b","color13":"#7b6072","color14":"#385853","color15":"#9e9e91","color15":"#9e9e91"}}
\ No newline at end of file
+{"special":{"background":"#1e1e1e","foreground":"#4c6640","cursor":"#9e9e91"},"colors":{"color0":"#1e1e1e","color1":"#98442f","color2":"#9d8554","color3":"#4c6640","color4":"#4c596b","color5":"#7b6072","color6":"#385853","color7":"#9e9e91","color8":"#363636","color9":"#98442f","color10":"#9d8554","color11":"#4c6640","color12":"#4c596b","color13":"#7b6072","color14":"#385853","color15":"#9e9e91"}}
\ No newline at end of file
diff --git a/pywal/colorschemes/dark/dkeg-harbing.json b/pywal/colorschemes/dark/dkeg-harbing.json
index 1cfe34e..907da48 100644
--- a/pywal/colorschemes/dark/dkeg-harbing.json
+++ b/pywal/colorschemes/dark/dkeg-harbing.json
@@ -1 +1 @@
-{"special":{"background":"#322b26","foreground":"#d7b18a","cursor":"#c8b49d"},"colors":{"color0":"#322b26","color1":"#bd6151","color2":"#6e9383","color3":"#d7b18a","color4":"#8a8f94","color5":"#bd9a81","color6":"#91a1a5","color7":"#c8b49d","color7":"#c8b49d","color8":"#63554c","color9":"#bd6151","color10":"#6e9383","color11":"#d7b18a","color12":"#8a8f94","color13":"#bd9a81","color14":"#91a1a5","color15":"#c8b49d","color15":"#c8b49d"}}
\ No newline at end of file
+{"special":{"background":"#322b26","foreground":"#d7b18a","cursor":"#c8b49d"},"colors":{"color0":"#322b26","color1":"#bd6151","color2":"#6e9383","color3":"#d7b18a","color4":"#8a8f94","color5":"#bd9a81","color6":"#91a1a5","color7":"#c8b49d","color8":"#63554c","color9":"#bd6151","color10":"#6e9383","color11":"#d7b18a","color12":"#8a8f94","color13":"#bd9a81","color14":"#91a1a5","color15":"#c8b49d"}}
\ No newline at end of file
diff --git a/pywal/colorschemes/dark/dkeg-kit.json b/pywal/colorschemes/dark/dkeg-kit.json
index bf60d7e..45586e4 100644
--- a/pywal/colorschemes/dark/dkeg-kit.json
+++ b/pywal/colorschemes/dark/dkeg-kit.json
@@ -1 +1 @@
-{"special":{"background":"#272733","foreground":"#dabe72","cursor":"#cac5b7"},"colors":{"color0":"#272733","color1":"#d65f2f","color2":"#aabf7f","color3":"#dabe72","color4":"#5e7e9b","color5":"#bf6c68","color6":"#5a7273","color7":"#cac5b7","color7":"#cac5b7","color8":"#48485e","color9":"#d65f2f","color10":"#aabf7f","color11":"#dabe72","color12":"#5e7e9b","color13":"#bf6c68","color14":"#5a7273","color15":"#cac5b7","color15":"#d5d1c6"}}
\ No newline at end of file
+{"special":{"background":"#272733","foreground":"#dabe72","cursor":"#cac5b7"},"colors":{"color0":"#272733","color1":"#d65f2f","color2":"#aabf7f","color3":"#dabe72","color4":"#5e7e9b","color5":"#bf6c68","color6":"#5a7273","color7":"#cac5b7","color8":"#48485e","color9":"#d65f2f","color10":"#aabf7f","color11":"#dabe72","color12":"#5e7e9b","color13":"#bf6c68","color14":"#5a7273","color15":"#d5d1c6"}}
\ No newline at end of file
diff --git a/pywal/colorschemes/dark/dkeg-leaf.json b/pywal/colorschemes/dark/dkeg-leaf.json
index 11bbe6d..2b2b7d5 100644
--- a/pywal/colorschemes/dark/dkeg-leaf.json
+++ b/pywal/colorschemes/dark/dkeg-leaf.json
@@ -1 +1 @@
-{"special":{"background":"#303728","foreground":"#d4b06c","cursor":"#b9bcb7"},"colors":{"color0":"#303728","color1":"#d06e5c","color2":"#abbb52","color3":"#d4b06c","color4":"#4c7e89","color5":"#814d61","color6":"#79a69d","color7":"#b9bcb7","color7":"#b9bcb7","color8":"#505847","color9":"#d06e5c","color10":"#abbb52","color11":"#d4b06c","color12":"#4c7e89","color13":"#814d61","color14":"#79a69d","color15":"#b9bcb7","color15":"#b9bcb7"}}
\ No newline at end of file
+{"special":{"background":"#303728","foreground":"#d4b06c","cursor":"#b9bcb7"},"colors":{"color0":"#303728","color1":"#d06e5c","color2":"#abbb52","color3":"#d4b06c","color4":"#4c7e89","color5":"#814d61","color6":"#79a69d","color7":"#b9bcb7","color8":"#505847","color9":"#d06e5c","color10":"#abbb52","color11":"#d4b06c","color12":"#4c7e89","color13":"#814d61","color14":"#79a69d","color15":"#b9bcb7"}}
\ No newline at end of file
diff --git a/pywal/colorschemes/dark/dkeg-link.json b/pywal/colorschemes/dark/dkeg-link.json
index 0135693..88d7b79 100644
--- a/pywal/colorschemes/dark/dkeg-link.json
+++ b/pywal/colorschemes/dark/dkeg-link.json
@@ -1 +1 @@
-{"special":{"background":"#222222","foreground":"#c5c5b2","cursor":"#242424"},"colors":{"color0":"#222222","color1":"#4d4d4d","color2":"#8a8c84","color3":"#c5c5b2","color4":"#5d5d5d","color5":"#707070","color6":"#898989","color7":"#c2c2c2","color7":"#c2c2c2","color8":"#484848","color9":"#4d4d4d","color10":"#8a8c84","color11":"#c5c5b2","color12":"#5d5d5d","color13":"#707070","color14":"#898989","color15":"#c2c2c2","color15":"#f1f1f1"}}
\ No newline at end of file
+{"special":{"background":"#222222","foreground":"#c5c5b2","cursor":"#242424"},"colors":{"color0":"#222222","color1":"#4d4d4d","color2":"#8a8c84","color3":"#c5c5b2","color4":"#5d5d5d","color5":"#707070","color6":"#898989","color7":"#c2c2c2","color8":"#484848","color9":"#4d4d4d","color10":"#8a8c84","color11":"#c5c5b2","color12":"#5d5d5d","color13":"#707070","color14":"#898989","color15":"#f1f1f1"}}
\ No newline at end of file
diff --git a/pywal/colorschemes/dark/dkeg-mattd.json b/pywal/colorschemes/dark/dkeg-mattd.json
index 92897c3..708c6a6 100644
--- a/pywal/colorschemes/dark/dkeg-mattd.json
+++ b/pywal/colorschemes/dark/dkeg-mattd.json
@@ -1 +1 @@
-{"special":{"background":"#20201f","foreground":"#799c6a","cursor":"#b0b0a2"},"colors":{"color0":"#20201f","color1":"#996140","color2":"#9d8554","color3":"#799c6a","color4":"#5f656a","color5":"#7b6064","color6":"#566e6b","color7":"#b0b0a2","color7":"#b0b0a2","color8":"#3a3a38","color9":"#996140","color10":"#9d8554","color11":"#799c6a","color12":"#5f656a","color13":"#7b6064","color14":"#566e6b","color15":"#b0b0a2","color15":"#d3d3cb"}}
\ No newline at end of file
+{"special":{"background":"#20201f","foreground":"#799c6a","cursor":"#b0b0a2"},"colors":{"color0":"#20201f","color1":"#996140","color2":"#9d8554","color3":"#799c6a","color4":"#5f656a","color5":"#7b6064","color6":"#566e6b","color7":"#b0b0a2","color8":"#3a3a38","color9":"#996140","color10":"#9d8554","color11":"#799c6a","color12":"#5f656a","color13":"#7b6064","color14":"#566e6b","color15":"#d3d3cb"}}
\ No newline at end of file
diff --git a/pywal/colorschemes/dark/dkeg-novmbr.json b/pywal/colorschemes/dark/dkeg-novmbr.json
index f688df0..efca9e6 100644
--- a/pywal/colorschemes/dark/dkeg-novmbr.json
+++ b/pywal/colorschemes/dark/dkeg-novmbr.json
@@ -1 +1 @@
-{"special":{"background":"#241d1a","foreground":"#cca75f","cursor":"#251e1b"},"colors":{"color0":"#241d1a","color1":"#9f6434","color2":"#9dac5f","color3":"#cca75f","color4":"#2f7d7c","color5":"#b5896e","color6":"#52877f","color7":"#c7b8ac","color7":"#c7b8ac","color8":"#50413a","color9":"#9f6434","color10":"#9dac5f","color11":"#cca75f","color12":"#2f7d7c","color13":"#b5896e","color14":"#52877f","color15":"#c7b8ac","color15":"#c7b8ac"}}
\ No newline at end of file
+{"special":{"background":"#241d1a","foreground":"#cca75f","cursor":"#251e1b"},"colors":{"color0":"#241d1a","color1":"#9f6434","color2":"#9dac5f","color3":"#cca75f","color4":"#2f7d7c","color5":"#b5896e","color6":"#52877f","color7":"#c7b8ac","color8":"#50413a","color9":"#9f6434","color10":"#9dac5f","color11":"#cca75f","color12":"#2f7d7c","color13":"#b5896e","color14":"#52877f","color15":"#c7b8ac"}}
\ No newline at end of file
diff --git a/pywal/colorschemes/dark/dkeg-owl.json b/pywal/colorschemes/dark/dkeg-owl.json
index b78631f..097c9c0 100644
--- a/pywal/colorschemes/dark/dkeg-owl.json
+++ b/pywal/colorschemes/dark/dkeg-owl.json
@@ -1 +1 @@
-{"special":{"background":"#2f2b2c","foreground":"#cacaca","cursor":"#dedede"},"colors":{"color0":"#2f2b2c","color1":"#5a5a5a","color2":"#989898","color3":"#cacaca","color4":"#656565","color5":"#b1b1b1","color6":"#7f7f7f","color7":"#dedede","color7":"#dedede","color8":"#504c4e","color9":"#5a5a5a","color10":"#989898","color11":"#cacaca","color12":"#656565","color13":"#b1b1b1","color14":"#7f7f7f","color15":"#dedede","color15":"#FFFFFF"}}
\ No newline at end of file
+{"special":{"background":"#2f2b2c","foreground":"#cacaca","cursor":"#dedede"},"colors":{"color0":"#2f2b2c","color1":"#5a5a5a","color2":"#989898","color3":"#cacaca","color4":"#656565","color5":"#b1b1b1","color6":"#7f7f7f","color7":"#dedede","color8":"#504c4e","color9":"#5a5a5a","color10":"#989898","color11":"#cacaca","color12":"#656565","color13":"#b1b1b1","color14":"#7f7f7f","color15":"#FFFFFF"}}
\ No newline at end of file
diff --git a/pywal/colorschemes/dark/dkeg-paints.json b/pywal/colorschemes/dark/dkeg-paints.json
index 3a53063..2ff749e 100644
--- a/pywal/colorschemes/dark/dkeg-paints.json
+++ b/pywal/colorschemes/dark/dkeg-paints.json
@@ -1 +1 @@
-{"special":{"background":"#2f2a2a","foreground":"#b2885d","cursor":"#332e2e"},"colors":{"color0":"#2f2a2a","color1":"#854340","color2":"#668c71","color3":"#b2885d","color4":"#41647b","color5":"#915556","color6":"#477578","color7":"#c9c8c8","color7":"#c9c8c8","color8":"#c9c8c8","color9":"#854340","color10":"#668c71","color11":"#b2885d","color12":"#41647b","color13":"#915556","color14":"#477578","color15":"#c9c8c8","color15":"#c9c8c8"}}
\ No newline at end of file
+{"special":{"background":"#2f2a2a","foreground":"#b2885d","cursor":"#332e2e"},"colors":{"color0":"#2f2a2a","color1":"#854340","color2":"#668c71","color3":"#b2885d","color4":"#41647b","color5":"#915556","color6":"#477578","color7":"#c9c8c8","color8":"#c9c8c8","color9":"#854340","color10":"#668c71","color11":"#b2885d","color12":"#41647b","color13":"#915556","color14":"#477578","color15":"#c9c8c8"}}
\ No newline at end of file
diff --git a/pywal/colorschemes/dark/dkeg-parkd.json b/pywal/colorschemes/dark/dkeg-parkd.json
index bbebdd3..00fc0a0 100644
--- a/pywal/colorschemes/dark/dkeg-parkd.json
+++ b/pywal/colorschemes/dark/dkeg-parkd.json
@@ -1 +1 @@
-{"special":{"background":"#2b2428","foreground":"#b29d6a","cursor":"#c2b7aa"},"colors":{"color0":"#2b2428","color1":"#89453c","color2":"#59713f","color3":"#b29d6a","color4":"#464e59","color5":"#614e44","color6":"#4f545b","color7":"#c2b7aa","color7":"#c2b7aa","color8":"#413c40","color9":"#89453c","color10":"#59713f","color11":"#b29d6a","color12":"#464e59","color13":"#614e44","color14":"#4f545b","color15":"#c2b7aa","color15":"#c2b7aa"}}
\ No newline at end of file
+{"special":{"background":"#2b2428","foreground":"#b29d6a","cursor":"#c2b7aa"},"colors":{"color0":"#2b2428","color1":"#89453c","color2":"#59713f","color3":"#b29d6a","color4":"#464e59","color5":"#614e44","color6":"#4f545b","color7":"#c2b7aa","color8":"#413c40","color9":"#89453c","color10":"#59713f","color11":"#b29d6a","color12":"#464e59","color13":"#614e44","color14":"#4f545b","color15":"#c2b7aa"}}
\ No newline at end of file
diff --git a/pywal/colorschemes/dark/dkeg-pastely.json b/pywal/colorschemes/dark/dkeg-pastely.json
index d2850d4..34af5f9 100644
--- a/pywal/colorschemes/dark/dkeg-pastely.json
+++ b/pywal/colorschemes/dark/dkeg-pastely.json
@@ -1 +1 @@
-{"special":{"background":"#2c2c2e","foreground":"#87835d","cursor":"#2e2e30"},"colors":{"color0":"#2c2c2e","color1":"#645446","color2":"#59674f","color3":"#87835d","color4":"#4d554f","color5":"#70614f","color6":"#666755","color7":"#aba786","color7":"#aba786","color8":"#aba786","color9":"#645446","color10":"#59674f","color11":"#87835d","color12":"#4d554f","color13":"#70614f","color14":"#666755","color15":"#aba786","color15":"#c4c1aa"}}
\ No newline at end of file
+{"special":{"background":"#2c2c2e","foreground":"#87835d","cursor":"#2e2e30"},"colors":{"color0":"#2c2c2e","color1":"#645446","color2":"#59674f","color3":"#87835d","color4":"#4d554f","color5":"#70614f","color6":"#666755","color7":"#aba786","color8":"#aba786","color9":"#645446","color10":"#59674f","color11":"#87835d","color12":"#4d554f","color13":"#70614f","color14":"#666755","color15":"#c4c1aa"}}
\ No newline at end of file
diff --git a/pywal/colorschemes/dark/dkeg-petal.json b/pywal/colorschemes/dark/dkeg-petal.json
index 0b3ef0c..76541a6 100644
--- a/pywal/colorschemes/dark/dkeg-petal.json
+++ b/pywal/colorschemes/dark/dkeg-petal.json
@@ -1 +1 @@
-{"special":{"background":"#22211f","foreground":"#827834","cursor":"#252422"},"colors":{"color0":"#22211f","color1":"#785326","color2":"#516941","color3":"#827834","color4":"#42514f","color5":"#6a5632","color6":"#4e5d4d","color7":"#b4b399","color7":"#b4b399","color8":"#b4b399","color9":"#785326","color10":"#516941","color11":"#827834","color12":"#42514f","color13":"#6a5632","color14":"#4e5d4d","color15":"#b4b399","color15":"#c9c9b6"}}
\ No newline at end of file
+{"special":{"background":"#22211f","foreground":"#827834","cursor":"#252422"},"colors":{"color0":"#22211f","color1":"#785326","color2":"#516941","color3":"#827834","color4":"#42514f","color5":"#6a5632","color6":"#4e5d4d","color7":"#b4b399","color8":"#b4b399","color9":"#785326","color10":"#516941","color11":"#827834","color12":"#42514f","color13":"#6a5632","color14":"#4e5d4d","color15":"#c9c9b6"}}
\ No newline at end of file
diff --git a/pywal/colorschemes/dark/dkeg-poly.json b/pywal/colorschemes/dark/dkeg-poly.json
index 48dcca3..0b1a834 100644
--- a/pywal/colorschemes/dark/dkeg-poly.json
+++ b/pywal/colorschemes/dark/dkeg-poly.json
@@ -1 +1 @@
-{"special":{"background":"#231c0d","foreground":"#aead5d","cursor":"#a5a39d"},"colors":{"color0":"#231c0d","color1":"#a47b3d","color2":"#7b9764","color3":"#aead5d","color4":"#628e8f","color5":"#ad9d52","color6":"#709681","color7":"#a5a39d","color7":"#a5a39d","color8":"#3f392a","color9":"#a47b3d","color10":"#7b9764","color11":"#aead5d","color12":"#628e8f","color13":"#ad9d52","color14":"#709681","color15":"#a5a39d","color15":"#a5a39d"}}
\ No newline at end of file
+{"special":{"background":"#231c0d","foreground":"#aead5d","cursor":"#a5a39d"},"colors":{"color0":"#231c0d","color1":"#a47b3d","color2":"#7b9764","color3":"#aead5d","color4":"#628e8f","color5":"#ad9d52","color6":"#709681","color7":"#a5a39d","color8":"#3f392a","color9":"#a47b3d","color10":"#7b9764","color11":"#aead5d","color12":"#628e8f","color13":"#ad9d52","color14":"#709681","color15":"#a5a39d"}}
\ No newline at end of file
diff --git a/pywal/colorschemes/dark/dkeg-prevail.json b/pywal/colorschemes/dark/dkeg-prevail.json
index 4e0f231..fb99828 100644
--- a/pywal/colorschemes/dark/dkeg-prevail.json
+++ b/pywal/colorschemes/dark/dkeg-prevail.json
@@ -1 +1 @@
-{"special":{"background":"#263139","foreground":"#dac99d","cursor":"#28343c"},"colors":{"color0":"#263139","color1":"#f36f62","color2":"#c5e19c","color3":"#ccb478","color4":"#4c7e89","color5":"#814d61","color6":"#79a69d","color7":"#c4c4b5","color7":"#c4c4b5","color8":"#455867","color9":"#f36f62","color10":"#c5e19c","color11":"#ccb478","color12":"#4c7e89","color13":"#814d61","color14":"#79a69d","color15":"#c4c4b5","color15":"#dbdbd1"}}
\ No newline at end of file
+{"special":{"background":"#263139","foreground":"#dac99d","cursor":"#28343c"},"colors":{"color0":"#263139","color1":"#f36f62","color2":"#c5e19c","color3":"#ccb478","color4":"#4c7e89","color5":"#814d61","color6":"#79a69d","color7":"#c4c4b5","color8":"#455867","color9":"#f36f62","color10":"#c5e19c","color11":"#ccb478","color12":"#4c7e89","color13":"#814d61","color14":"#79a69d","color15":"#dbdbd1"}}
\ No newline at end of file
diff --git a/pywal/colorschemes/dark/dkeg-provrb.json b/pywal/colorschemes/dark/dkeg-provrb.json
index 5ccf893..3969bcf 100644
--- a/pywal/colorschemes/dark/dkeg-provrb.json
+++ b/pywal/colorschemes/dark/dkeg-provrb.json
@@ -1 +1 @@
-{"special":{"background":"#322f30","foreground":"#8d7766","cursor":"#353233"},"colors":{"color0":"#322f30","color1":"#654c51","color2":"#7f8281","color3":"#8d7766","color4":"#5b697e","color5":"#7b6b75","color6":"#7d8592","color7":"#c0bfbf","color7":"#c0bfbf","color8":"#c0bfbf","color9":"#654c51","color10":"#7f8281","color11":"#8d7766","color12":"#5b697e","color13":"#7b6b75","color14":"#7d8592","color15":"#c0bfbf","color15":"#dfdfdf"}}
\ No newline at end of file
+{"special":{"background":"#322f30","foreground":"#8d7766","cursor":"#353233"},"colors":{"color0":"#322f30","color1":"#654c51","color2":"#7f8281","color3":"#8d7766","color4":"#5b697e","color5":"#7b6b75","color6":"#7d8592","color7":"#c0bfbf","color8":"#c0bfbf","color9":"#654c51","color10":"#7f8281","color11":"#8d7766","color12":"#5b697e","color13":"#7b6b75","color14":"#7d8592","color15":"#dfdfdf"}}
\ No newline at end of file
diff --git a/pywal/colorschemes/dark/dkeg-raild.json b/pywal/colorschemes/dark/dkeg-raild.json
index d9e99d9..0294284 100644
--- a/pywal/colorschemes/dark/dkeg-raild.json
+++ b/pywal/colorschemes/dark/dkeg-raild.json
@@ -1 +1 @@
-{"special":{"background":"#282623","foreground":"#ad8b67","cursor":"#2b2825"},"colors":{"color0":"#282623","color1":"#935334","color2":"#66604d","color3":"#ad8b67","color4":"#504b44","color5":"#634737","color6":"#505349","color7":"#bcbba4","color7":"#bcbba4","color8":"#43403b","color9":"#935334","color10":"#66604d","color11":"#ad8b67","color12":"#504b44","color13":"#634737","color14":"#505349","color15":"#bcbba4","color15":"#dbdace"}}
\ No newline at end of file
+{"special":{"background":"#282623","foreground":"#ad8b67","cursor":"#2b2825"},"colors":{"color0":"#282623","color1":"#935334","color2":"#66604d","color3":"#ad8b67","color4":"#504b44","color5":"#634737","color6":"#505349","color7":"#bcbba4","color8":"#43403b","color9":"#935334","color10":"#66604d","color11":"#ad8b67","color12":"#504b44","color13":"#634737","color14":"#505349","color15":"#dbdace"}}
\ No newline at end of file
diff --git a/pywal/colorschemes/dark/dkeg-relax.json b/pywal/colorschemes/dark/dkeg-relax.json
index ce881fc..315b0cb 100644
--- a/pywal/colorschemes/dark/dkeg-relax.json
+++ b/pywal/colorschemes/dark/dkeg-relax.json
@@ -1 +1 @@
-{"special":{"background":"#322835","foreground":"#b08960","cursor":"#332836"},"colors":{"color0":"#322835","color1":"#674f4a","color2":"#67786d","color3":"#b08960","color4":"#5e6d79","color5":"#7d6969","color6":"#6a7a76","color7":"#ccbfb3","color7":"#ccbfb3","color8":"#4b3f4e","color9":"#674f4a","color10":"#67786d","color11":"#b08960","color12":"#5e6d79","color13":"#7d6969","color14":"#6a7a76","color15":"#ccbfb3","color15":"#ccbfb3"}}
\ No newline at end of file
+{"special":{"background":"#322835","foreground":"#b08960","cursor":"#332836"},"colors":{"color0":"#322835","color1":"#674f4a","color2":"#67786d","color3":"#b08960","color4":"#5e6d79","color5":"#7d6969","color6":"#6a7a76","color7":"#ccbfb3","color8":"#4b3f4e","color9":"#674f4a","color10":"#67786d","color11":"#b08960","color12":"#5e6d79","color13":"#7d6969","color14":"#6a7a76","color15":"#ccbfb3"}}
\ No newline at end of file
diff --git a/pywal/colorschemes/dark/dkeg-scag.json b/pywal/colorschemes/dark/dkeg-scag.json
index 80068b8..5e6d1ea 100644
--- a/pywal/colorschemes/dark/dkeg-scag.json
+++ b/pywal/colorschemes/dark/dkeg-scag.json
@@ -1 +1 @@
-{"special":{"background":"#252326","foreground":"#7a8648","cursor":"#c4bbb0"},"colors":{"color0":"#252326","color1":"#93503e","color2":"#9d8554","color3":"#7a8648","color4":"#5f656a","color5":"#7b6064","color6":"#566e6b","color7":"#c4bbb0","color7":"#c4bbb0","color8":"#413f43","color9":"#93503e","color10":"#9d8554","color11":"#7a8648","color12":"#5f656a","color13":"#7b6064","color14":"#566e6b","color15":"#c4bbb0","color15":"#c4bbb0"}}
\ No newline at end of file
+{"special":{"background":"#252326","foreground":"#7a8648","cursor":"#c4bbb0"},"colors":{"color0":"#252326","color1":"#93503e","color2":"#9d8554","color3":"#7a8648","color4":"#5f656a","color5":"#7b6064","color6":"#566e6b","color7":"#c4bbb0","color8":"#413f43","color9":"#93503e","color10":"#9d8554","color11":"#7a8648","color12":"#5f656a","color13":"#7b6064","color14":"#566e6b","color15":"#c4bbb0"}}
\ No newline at end of file
diff --git a/pywal/colorschemes/dark/dkeg-scape.json b/pywal/colorschemes/dark/dkeg-scape.json
index 87973c6..388329b 100644
--- a/pywal/colorschemes/dark/dkeg-scape.json
+++ b/pywal/colorschemes/dark/dkeg-scape.json
@@ -1 +1 @@
-{"special":{"background":"#282423","foreground":"#987f4b","cursor":"#b7afa4"},"colors":{"color0":"#282423","color1":"#925633","color2":"#757c60","color3":"#987f4b","color4":"#515962","color5":"#685054","color6":"#506168","color7":"#b7afa4","color7":"#b7afa4","color8":"#3f3d3c","color9":"#925633","color10":"#757c60","color11":"#987f4b","color12":"#515962","color13":"#685054","color14":"#506168","color15":"#b7afa4","color15":"#b7afa4"}}
\ No newline at end of file
+{"special":{"background":"#282423","foreground":"#987f4b","cursor":"#b7afa4"},"colors":{"color0":"#282423","color1":"#925633","color2":"#757c60","color3":"#987f4b","color4":"#515962","color5":"#685054","color6":"#506168","color7":"#b7afa4","color8":"#3f3d3c","color9":"#925633","color10":"#757c60","color11":"#987f4b","color12":"#515962","color13":"#685054","color14":"#506168","color15":"#b7afa4"}}
\ No newline at end of file
diff --git a/pywal/colorschemes/dark/dkeg-shade.json b/pywal/colorschemes/dark/dkeg-shade.json
index 7b77506..0e0d7a2 100644
--- a/pywal/colorschemes/dark/dkeg-shade.json
+++ b/pywal/colorschemes/dark/dkeg-shade.json
@@ -1 +1 @@
-{"special":{"background":"#2c2c2c","foreground":"#d0c57a","cursor":"#ededb7"},"colors":{"color0":"#2c2c2c","color1":"#c77369","color2":"#93988a","color3":"#d0c57a","color4":"#747f89","color5":"#825969","color6":"#938e8f","color7":"#ddddb5","color7":"#ddddb5","color8":"#4e4e4e","color9":"#c77369","color10":"#93988a","color11":"#d0c57a","color12":"#747f89","color13":"#825969","color14":"#938e8f","color15":"#ddddb5","color15":"#ededb7"}}
\ No newline at end of file
+{"special":{"background":"#2c2c2c","foreground":"#d0c57a","cursor":"#ededb7"},"colors":{"color0":"#2c2c2c","color1":"#c77369","color2":"#93988a","color3":"#d0c57a","color4":"#747f89","color5":"#825969","color6":"#938e8f","color7":"#ddddb5","color8":"#4e4e4e","color9":"#c77369","color10":"#93988a","color11":"#d0c57a","color12":"#747f89","color13":"#825969","color14":"#938e8f","color15":"#ededb7"}}
\ No newline at end of file
diff --git a/pywal/colorschemes/dark/dkeg-simplicity.json b/pywal/colorschemes/dark/dkeg-simplicity.json
index 31d249e..f0dce87 100644
--- a/pywal/colorschemes/dark/dkeg-simplicity.json
+++ b/pywal/colorschemes/dark/dkeg-simplicity.json
@@ -1 +1 @@
-{"special":{"background":"#28282C","foreground":"#A18673","cursor":"#F3F3F3"},"colors":{"color0":"#28282C","color1":"#BF5C56","color2":"#BF5C56","color3":"#97B19C","color4":"#97B19C","color5":"#D7BD8A","color6":"#D7BD8A","color7":"#545F72","color7":"#545F72","color8":"#404047","color9":"#BF5C56","color10":"#BF5C56","color11":"#97B19C","color12":"#97B19C","color13":"#D7BD8A","color14":"#D7BD8A","color15":"#545F72","color15":"#F4F4F2"}}
\ No newline at end of file
+{"special":{"background":"#28282C","foreground":"#A18673","cursor":"#F3F3F3"},"colors":{"color0":"#28282C","color1":"#BF5C56","color2":"#BF5C56","color3":"#97B19C","color4":"#97B19C","color5":"#D7BD8A","color6":"#D7BD8A","color7":"#545F72","color8":"#404047","color9":"#BF5C56","color10":"#BF5C56","color11":"#97B19C","color12":"#97B19C","color13":"#D7BD8A","color14":"#D7BD8A","color15":"#F4F4F2"}}
\ No newline at end of file
diff --git a/pywal/colorschemes/dark/dkeg-skigh.json b/pywal/colorschemes/dark/dkeg-skigh.json
index b7938e9..7c4dc75 100644
--- a/pywal/colorschemes/dark/dkeg-skigh.json
+++ b/pywal/colorschemes/dark/dkeg-skigh.json
@@ -1 +1 @@
-{"special":{"background":"#252a32","foreground":"#b39580","cursor":"#272c34"},"colors":{"color0":"#252a32","color1":"#876058","color2":"#6f7f71","color3":"#b39580","color4":"#546780","color5":"#84787d","color6":"#556f86","color7":"#bab7b5","color7":"#bab7b5","color8":"#bab7b5","color9":"#876058","color10":"#6f7f71","color11":"#b39580","color12":"#546780","color13":"#84787d","color14":"#556f86","color15":"#bab7b5","color15":"#dfdedd"}}
\ No newline at end of file
+{"special":{"background":"#252a32","foreground":"#b39580","cursor":"#272c34"},"colors":{"color0":"#252a32","color1":"#876058","color2":"#6f7f71","color3":"#b39580","color4":"#546780","color5":"#84787d","color6":"#556f86","color7":"#bab7b5","color8":"#bab7b5","color9":"#876058","color10":"#6f7f71","color11":"#b39580","color12":"#546780","color13":"#84787d","color14":"#556f86","color15":"#dfdedd"}}
\ No newline at end of file
diff --git a/pywal/colorschemes/dark/dkeg-slate.json b/pywal/colorschemes/dark/dkeg-slate.json
index 9a9a4bb..9bc8854 100644
--- a/pywal/colorschemes/dark/dkeg-slate.json
+++ b/pywal/colorschemes/dark/dkeg-slate.json
@@ -1 +1 @@
-{"special":{"background":"#242a2b","foreground":"#8d8150","cursor":"#242b2c"},"colors":{"color0":"#242a2b","color1":"#674839","color2":"#6e794f","color3":"#8d8150","color4":"#3b474e","color5":"#554c41","color6":"#495355","color7":"#939381","color7":"#939381","color8":"#939381","color9":"#674839","color10":"#6e794f","color11":"#8d8150","color12":"#3b474e","color13":"#554c41","color14":"#495355","color15":"#939381","color15":"#abab9c"}}
\ No newline at end of file
+{"special":{"background":"#242a2b","foreground":"#8d8150","cursor":"#242b2c"},"colors":{"color0":"#242a2b","color1":"#674839","color2":"#6e794f","color3":"#8d8150","color4":"#3b474e","color5":"#554c41","color6":"#495355","color7":"#939381","color8":"#939381","color9":"#674839","color10":"#6e794f","color11":"#8d8150","color12":"#3b474e","color13":"#554c41","color14":"#495355","color15":"#abab9c"}}
\ No newline at end of file
diff --git a/pywal/colorschemes/dark/dkeg-soundwave.json b/pywal/colorschemes/dark/dkeg-soundwave.json
index e0f6637..0cc759c 100644
--- a/pywal/colorschemes/dark/dkeg-soundwave.json
+++ b/pywal/colorschemes/dark/dkeg-soundwave.json
@@ -1 +1 @@
-{"special":{"background":"#29231f","foreground":"#aa8f5f","cursor":"#bcb7aa"},"colors":{"color0":"#29231f","color1":"#675141","color2":"#625438","color3":"#aa8f5f","color4":"#6e6051","color5":"#514540","color6":"#5e4e3c","color7":"#bcb7aa","color7":"#bcb7aa","color8":"#514b49","color9":"#675141","color10":"#625438","color11":"#aa8f5f","color12":"#6e6051","color13":"#514540","color14":"#5e4e3c","color15":"#bcb7aa","color15":"#dedbd5"}}
\ No newline at end of file
+{"special":{"background":"#29231f","foreground":"#aa8f5f","cursor":"#bcb7aa"},"colors":{"color0":"#29231f","color1":"#675141","color2":"#625438","color3":"#aa8f5f","color4":"#6e6051","color5":"#514540","color6":"#5e4e3c","color7":"#bcb7aa","color8":"#514b49","color9":"#675141","color10":"#625438","color11":"#aa8f5f","color12":"#6e6051","color13":"#514540","color14":"#5e4e3c","color15":"#dedbd5"}}
\ No newline at end of file
diff --git a/pywal/colorschemes/dark/dkeg-spire.json b/pywal/colorschemes/dark/dkeg-spire.json
index 5f823ff..77668fb 100644
--- a/pywal/colorschemes/dark/dkeg-spire.json
+++ b/pywal/colorschemes/dark/dkeg-spire.json
@@ -1 +1 @@
-{"special":{"background":"#262f33","foreground":"#948d65","cursor":"#b5b699"},"colors":{"color0":"#262f33","color1":"#804f4e","color2":"#68786c","color3":"#948d65","color4":"#47575f","color5":"#74636a","color6":"#526562","color7":"#b5b699","color7":"#b5b699","color8":"#464c50","color9":"#804f4e","color10":"#68786c","color11":"#948d65","color12":"#47575f","color13":"#74636a","color14":"#526562","color15":"#b5b699","color15":"#cbcbb7"}}
\ No newline at end of file
+{"special":{"background":"#262f33","foreground":"#948d65","cursor":"#b5b699"},"colors":{"color0":"#262f33","color1":"#804f4e","color2":"#68786c","color3":"#948d65","color4":"#47575f","color5":"#74636a","color6":"#526562","color7":"#b5b699","color8":"#464c50","color9":"#804f4e","color10":"#68786c","color11":"#948d65","color12":"#47575f","color13":"#74636a","color14":"#526562","color15":"#cbcbb7"}}
\ No newline at end of file
diff --git a/pywal/colorschemes/dark/dkeg-sprout.json b/pywal/colorschemes/dark/dkeg-sprout.json
index 560d970..1a1f867 100644
--- a/pywal/colorschemes/dark/dkeg-sprout.json
+++ b/pywal/colorschemes/dark/dkeg-sprout.json
@@ -1 +1 @@
-{"special":{"background":"#2d3144","foreground":"#96915d","cursor":"#cfccbe"},"colors":{"color0":"#2d3144","color1":"#8d6d5c","color2":"#6d806d","color3":"#96915d","color4":"#68758d","color5":"#8a747b","color6":"#8d97a8","color7":"#cfccbe","color7":"#cfccbe","color8":"#525a69","color9":"#8d6d5c","color10":"#6d806d","color11":"#96915d","color12":"#68758d","color13":"#8a747b","color14":"#8d97a8","color15":"#cfccbe","color15":"#f0efeb"}}
\ No newline at end of file
+{"special":{"background":"#2d3144","foreground":"#96915d","cursor":"#cfccbe"},"colors":{"color0":"#2d3144","color1":"#8d6d5c","color2":"#6d806d","color3":"#96915d","color4":"#68758d","color5":"#8a747b","color6":"#8d97a8","color7":"#cfccbe","color8":"#525a69","color9":"#8d6d5c","color10":"#6d806d","color11":"#96915d","color12":"#68758d","color13":"#8a747b","color14":"#8d97a8","color15":"#f0efeb"}}
\ No newline at end of file
diff --git a/pywal/colorschemes/dark/dkeg-squares.json b/pywal/colorschemes/dark/dkeg-squares.json
index feab321..978bcd6 100644
--- a/pywal/colorschemes/dark/dkeg-squares.json
+++ b/pywal/colorschemes/dark/dkeg-squares.json
@@ -1 +1 @@
-{"special":{"background":"#27201f","foreground":"#978341","cursor":"#bebcbc"},"colors":{"color0":"#27201f","color1":"#9b5208","color2":"#75922c","color3":"#978341","color4":"#5e6676","color5":"#824219","color6":"#4e7479","color7":"#bebcbc","color7":"#bebcbc","color8":"#3b3436","color9":"#9b5208","color10":"#75922c","color11":"#978341","color12":"#5e6676","color13":"#824219","color14":"#4e7479","color15":"#bebcbc","color15":"#bebcbc"}}
\ No newline at end of file
+{"special":{"background":"#27201f","foreground":"#978341","cursor":"#bebcbc"},"colors":{"color0":"#27201f","color1":"#9b5208","color2":"#75922c","color3":"#978341","color4":"#5e6676","color5":"#824219","color6":"#4e7479","color7":"#bebcbc","color8":"#3b3436","color9":"#9b5208","color10":"#75922c","color11":"#978341","color12":"#5e6676","color13":"#824219","color14":"#4e7479","color15":"#bebcbc"}}
\ No newline at end of file
diff --git a/pywal/colorschemes/dark/dkeg-stv.json b/pywal/colorschemes/dark/dkeg-stv.json
index 4567879..b4f424a 100644
--- a/pywal/colorschemes/dark/dkeg-stv.json
+++ b/pywal/colorschemes/dark/dkeg-stv.json
@@ -1 +1 @@
-{"special":{"background":"#2c373d","foreground":"#baad8a","cursor":"#c4c0bb"},"colors":{"color0":"#2c373d","color1":"#a67979","color2":"#809f7b","color3":"#baad8a","color4":"#6d7575","color5":"#8e7d79","color6":"#7b9899","color7":"#c4c0bb","color7":"#c4c0bb","color8":"#4d5459","color9":"#a67979","color10":"#809f7b","color11":"#baad8a","color12":"#6d7575","color13":"#8e7d79","color14":"#7b9899","color15":"#c4c0bb","color15":"#c4c0bb"}}
\ No newline at end of file
+{"special":{"background":"#2c373d","foreground":"#baad8a","cursor":"#c4c0bb"},"colors":{"color0":"#2c373d","color1":"#a67979","color2":"#809f7b","color3":"#baad8a","color4":"#6d7575","color5":"#8e7d79","color6":"#7b9899","color7":"#c4c0bb","color8":"#4d5459","color9":"#a67979","color10":"#809f7b","color11":"#baad8a","color12":"#6d7575","color13":"#8e7d79","color14":"#7b9899","color15":"#c4c0bb"}}
\ No newline at end of file
diff --git a/pywal/colorschemes/dark/dkeg-subtle.json b/pywal/colorschemes/dark/dkeg-subtle.json
index df48caa..a7d245f 100644
--- a/pywal/colorschemes/dark/dkeg-subtle.json
+++ b/pywal/colorschemes/dark/dkeg-subtle.json
@@ -1 +1 @@
-{"special":{"background":"#2c2c35","foreground":"#6b925a","cursor":"#2d2d36"},"colors":{"color0":"#2c2c35","color1":"#b56550","color2":"#b79b58","color3":"#6b925a","color4":"#6e747b","color5":"#96787d","color6":"#7b8889","color7":"#b4ada4","color7":"#b4ada4","color8":"#45454d","color9":"#b56550","color10":"#b79b58","color11":"#6b925a","color12":"#6e747b","color13":"#96787d","color14":"#7b8889","color15":"#b4ada4","color15":"#b4ada4"}}
\ No newline at end of file
+{"special":{"background":"#2c2c35","foreground":"#6b925a","cursor":"#2d2d36"},"colors":{"color0":"#2c2c35","color1":"#b56550","color2":"#b79b58","color3":"#6b925a","color4":"#6e747b","color5":"#96787d","color6":"#7b8889","color7":"#b4ada4","color8":"#45454d","color9":"#b56550","color10":"#b79b58","color11":"#6b925a","color12":"#6e747b","color13":"#96787d","color14":"#7b8889","color15":"#b4ada4"}}
\ No newline at end of file
diff --git a/pywal/colorschemes/dark/dkeg-sundr.json b/pywal/colorschemes/dark/dkeg-sundr.json
index f400a74..061b695 100644
--- a/pywal/colorschemes/dark/dkeg-sundr.json
+++ b/pywal/colorschemes/dark/dkeg-sundr.json
@@ -1 +1 @@
-{"special":{"background":"#2b2320","foreground":"#aa9375","cursor":"#2e2522"},"colors":{"color0":"#2b2320","color1":"#734948","color2":"#768157","color3":"#aa9375","color4":"#585b63","color5":"#6f5a56","color6":"#7d8486","color7":"#bab1a1","color7":"#bab1a1","color8":"#bab1a1","color9":"#734948","color10":"#768157","color11":"#aa9375","color12":"#585b63","color13":"#6f5a56","color14":"#7d8486","color15":"#bab1a1","color15":"#bab1a1"}}
\ No newline at end of file
+{"special":{"background":"#2b2320","foreground":"#aa9375","cursor":"#2e2522"},"colors":{"color0":"#2b2320","color1":"#734948","color2":"#768157","color3":"#aa9375","color4":"#585b63","color5":"#6f5a56","color6":"#7d8486","color7":"#bab1a1","color8":"#bab1a1","color9":"#734948","color10":"#768157","color11":"#aa9375","color12":"#585b63","color13":"#6f5a56","color14":"#7d8486","color15":"#bab1a1"}}
\ No newline at end of file
diff --git a/pywal/colorschemes/dark/dkeg-tealights.json b/pywal/colorschemes/dark/dkeg-tealights.json
index 2403348..8e2b0e3 100644
--- a/pywal/colorschemes/dark/dkeg-tealights.json
+++ b/pywal/colorschemes/dark/dkeg-tealights.json
@@ -1 +1 @@
-{"special":{"background":"#25231b","foreground":"#988871","cursor":"#26241c"},"colors":{"color0":"#25231b","color1":"#8e2f34","color2":"#55654a","color3":"#988871","color4":"#848f89","color5":"#9f8c7c","color6":"#9cb4a6","color7":"#c4c1b0","color7":"#c4c1b0","color8":"#423f31","color9":"#8e2f34","color10":"#55654a","color11":"#988871","color12":"#848f89","color13":"#9f8c7c","color14":"#9cb4a6","color15":"#c4c1b0","color15":"#d8d4c5"}}
\ No newline at end of file
+{"special":{"background":"#25231b","foreground":"#988871","cursor":"#26241c"},"colors":{"color0":"#25231b","color1":"#8e2f34","color2":"#55654a","color3":"#988871","color4":"#848f89","color5":"#9f8c7c","color6":"#9cb4a6","color7":"#c4c1b0","color8":"#423f31","color9":"#8e2f34","color10":"#55654a","color11":"#988871","color12":"#848f89","color13":"#9f8c7c","color14":"#9cb4a6","color15":"#d8d4c5"}}
\ No newline at end of file
diff --git a/pywal/colorschemes/dark/dkeg-traffic.json b/pywal/colorschemes/dark/dkeg-traffic.json
index 9c03c8d..f103fc3 100644
--- a/pywal/colorschemes/dark/dkeg-traffic.json
+++ b/pywal/colorschemes/dark/dkeg-traffic.json
@@ -1 +1 @@
-{"special":{"background":"#272c30","foreground":"#c79e84","cursor":"#cfb9a8"},"colors":{"color0":"#272c30","color1":"#934e46","color2":"#637268","color3":"#c79e84","color4":"#515e67","color5":"#715f5e","color6":"#5c6f7d","color7":"#cfb9a8","color7":"#cfb9a8","color8":"#414a51","color9":"#934e46","color10":"#637268","color11":"#c79e84","color12":"#515e67","color13":"#715f5e","color14":"#5c6f7d","color15":"#cfb9a8","color15":"#ddcec2"}}
\ No newline at end of file
+{"special":{"background":"#272c30","foreground":"#c79e84","cursor":"#cfb9a8"},"colors":{"color0":"#272c30","color1":"#934e46","color2":"#637268","color3":"#c79e84","color4":"#515e67","color5":"#715f5e","color6":"#5c6f7d","color7":"#cfb9a8","color8":"#414a51","color9":"#934e46","color10":"#637268","color11":"#c79e84","color12":"#515e67","color13":"#715f5e","color14":"#5c6f7d","color15":"#ddcec2"}}
\ No newline at end of file
diff --git a/pywal/colorschemes/dark/dkeg-transposet.json b/pywal/colorschemes/dark/dkeg-transposet.json
index 8740011..08235e9 100644
--- a/pywal/colorschemes/dark/dkeg-transposet.json
+++ b/pywal/colorschemes/dark/dkeg-transposet.json
@@ -1 +1 @@
-{"special":{"background":"#2a2725","foreground":"#bdac8c","cursor":"#2b2927"},"colors":{"color0":"#2a2725","color1":"#8e6f64","color2":"#849385","color3":"#bdac8c","color4":"#4c5467","color5":"#757580","color6":"#64697f","color7":"#b8b2a7","color7":"#b8b2a7","color8":"#474543","color9":"#8e6f64","color10":"#849385","color11":"#bdac8c","color12":"#4c5467","color13":"#757580","color14":"#64697f","color15":"#b8b2a7","color15":"#b8b2a7"}}
\ No newline at end of file
+{"special":{"background":"#2a2725","foreground":"#bdac8c","cursor":"#2b2927"},"colors":{"color0":"#2a2725","color1":"#8e6f64","color2":"#849385","color3":"#bdac8c","color4":"#4c5467","color5":"#757580","color6":"#64697f","color7":"#b8b2a7","color8":"#474543","color9":"#8e6f64","color10":"#849385","color11":"#bdac8c","color12":"#4c5467","color13":"#757580","color14":"#64697f","color15":"#b8b2a7"}}
\ No newline at end of file
diff --git a/pywal/colorschemes/dark/dkeg-urban.json b/pywal/colorschemes/dark/dkeg-urban.json
index 4ec2101..5ac97b3 100644
--- a/pywal/colorschemes/dark/dkeg-urban.json
+++ b/pywal/colorschemes/dark/dkeg-urban.json
@@ -1 +1 @@
-{"special":{"background":"#312e39","foreground":"#ae835a","cursor":"#33303b"},"colors":{"color0":"#312e39","color1":"#87404f","color2":"#74934e","color3":"#ae835a","color4":"#615772","color5":"#783e57","color6":"#554757","color7":"#c0a79a","color7":"#c0a79a","color8":"#4f4b58","color9":"#87404f","color10":"#74934e","color11":"#ae835a","color12":"#615772","color13":"#783e57","color14":"#554757","color15":"#c0a79a","color15":"#c0a79a"}}
\ No newline at end of file
+{"special":{"background":"#312e39","foreground":"#ae835a","cursor":"#33303b"},"colors":{"color0":"#312e39","color1":"#87404f","color2":"#74934e","color3":"#ae835a","color4":"#615772","color5":"#783e57","color6":"#554757","color7":"#c0a79a","color8":"#4f4b58","color9":"#87404f","color10":"#74934e","color11":"#ae835a","color12":"#615772","color13":"#783e57","color14":"#554757","color15":"#c0a79a"}}
\ No newline at end of file
diff --git a/pywal/colorschemes/dark/dkeg-vans.json b/pywal/colorschemes/dark/dkeg-vans.json
index d287a21..0bcb6a7 100644
--- a/pywal/colorschemes/dark/dkeg-vans.json
+++ b/pywal/colorschemes/dark/dkeg-vans.json
@@ -1 +1 @@
-{"special":{"background":"#2b2c33","foreground":"#e8dfcd","cursor":"#303139"},"colors":{"color0":"#2b2c33","color1":"#b16c7f","color2":"#92ab75","color3":"#bdab77","color4":"#485476","color5":"#746081","color6":"#636f7d","color7":"#d9c1a9","color7":"#d9c1a9","color8":"#d9c1a9","color9":"#b16c7f","color10":"#92ab75","color11":"#bdab77","color12":"#485476","color13":"#746081","color14":"#636f7d","color15":"#d9c1a9","color15":"#e9dbce"}}
\ No newline at end of file
+{"special":{"background":"#2b2c33","foreground":"#e8dfcd","cursor":"#303139"},"colors":{"color0":"#2b2c33","color1":"#b16c7f","color2":"#92ab75","color3":"#bdab77","color4":"#485476","color5":"#746081","color6":"#636f7d","color7":"#d9c1a9","color8":"#d9c1a9","color9":"#b16c7f","color10":"#92ab75","color11":"#bdab77","color12":"#485476","color13":"#746081","color14":"#636f7d","color15":"#e9dbce"}}
\ No newline at end of file
diff --git a/pywal/colorschemes/dark/dkeg-victory.json b/pywal/colorschemes/dark/dkeg-victory.json
index 0a2c7f1..3399587 100644
--- a/pywal/colorschemes/dark/dkeg-victory.json
+++ b/pywal/colorschemes/dark/dkeg-victory.json
@@ -1 +1 @@
-{"special":{"background":"#2d2d33","foreground":"#a29474","cursor":"#303036"},"colors":{"color0":"#2d2d33","color1":"#9c6647","color2":"#708684","color3":"#a29474","color4":"#697284","color5":"#796a70","color6":"#47676e","color7":"#c4c4b5","color7":"#c4c4b5","color8":"#44444a","color9":"#9c6647","color10":"#708684","color11":"#a29474","color12":"#697284","color13":"#796a70","color14":"#47676e","color15":"#c4c4b5","color15":"#c4c4b5"}}
\ No newline at end of file
+{"special":{"background":"#2d2d33","foreground":"#a29474","cursor":"#303036"},"colors":{"color0":"#2d2d33","color1":"#9c6647","color2":"#708684","color3":"#a29474","color4":"#697284","color5":"#796a70","color6":"#47676e","color7":"#c4c4b5","color8":"#44444a","color9":"#9c6647","color10":"#708684","color11":"#a29474","color12":"#697284","color13":"#796a70","color14":"#47676e","color15":"#c4c4b5"}}
\ No newline at end of file
diff --git a/pywal/colorschemes/dark/dkeg-view.json b/pywal/colorschemes/dark/dkeg-view.json
index 0e5c7b8..f85fe85 100644
--- a/pywal/colorschemes/dark/dkeg-view.json
+++ b/pywal/colorschemes/dark/dkeg-view.json
@@ -1 +1 @@
-{"special":{"background":"#2a2d34","foreground":"#86733b","cursor":"#2e3239"},"colors":{"color0":"#2a2d34","color1":"#a2462e","color2":"#5e713d","color3":"#86733b","color4":"#394c5d","color5":"#855646","color6":"#6e727d","color7":"#cababa","color7":"#cababa","color8":"#414550","color9":"#a2462e","color10":"#5e713d","color11":"#86733b","color12":"#394c5d","color13":"#855646","color14":"#6e727d","color15":"#cababa","color15":"#cababa"}}
\ No newline at end of file
+{"special":{"background":"#2a2d34","foreground":"#86733b","cursor":"#2e3239"},"colors":{"color0":"#2a2d34","color1":"#a2462e","color2":"#5e713d","color3":"#86733b","color4":"#394c5d","color5":"#855646","color6":"#6e727d","color7":"#cababa","color8":"#414550","color9":"#a2462e","color10":"#5e713d","color11":"#86733b","color12":"#394c5d","color13":"#855646","color14":"#6e727d","color15":"#cababa"}}
\ No newline at end of file
diff --git a/pywal/colorschemes/dark/dkeg-wintry.json b/pywal/colorschemes/dark/dkeg-wintry.json
index ea57a71..d652bc3 100644
--- a/pywal/colorschemes/dark/dkeg-wintry.json
+++ b/pywal/colorschemes/dark/dkeg-wintry.json
@@ -1 +1 @@
-{"special":{"background":"#37273a","foreground":"#b3a67d","cursor":"#c3bec3"},"colors":{"color0":"#37273a","color1":"#9c595c","color2":"#8ba07a","color3":"#b3a67d","color4":"#7B6677","color5":"#83466D","color6":"#899079","color7":"#c3bec3","color7":"#c3bec3","color8":"#5e5261","color9":"#9c595c","color10":"#8ba07a","color11":"#b3a67d","color12":"#7B6677","color13":"#83466D","color14":"#899079","color15":"#c3bec3","color15":"#c3bec3"}}
\ No newline at end of file
+{"special":{"background":"#37273a","foreground":"#b3a67d","cursor":"#c3bec3"},"colors":{"color0":"#37273a","color1":"#9c595c","color2":"#8ba07a","color3":"#b3a67d","color4":"#7B6677","color5":"#83466D","color6":"#899079","color7":"#c3bec3","color8":"#5e5261","color9":"#9c595c","color10":"#8ba07a","color11":"#b3a67d","color12":"#7B6677","color13":"#83466D","color14":"#899079","color15":"#c3bec3"}}
\ No newline at end of file
From 70c45f580e4c8223dbf66d53be551d8db2cc2f0a Mon Sep 17 00:00:00 2001
From: black
Date: Tue, 10 Sep 2019 05:47:47 +0000
Subject: [PATCH 104/127] Update README.md
---
README.md | 1 -
1 file changed, 1 deletion(-)
diff --git a/README.md b/README.md
index a6ccef4..0e14f97 100644
--- a/README.md
+++ b/README.md
@@ -2,7 +2,6 @@
Generate and change color-schemes on the fly.
-
From 1bd5542beb1d43d49549675c1040167f8874722e Mon Sep 17 00:00:00 2001
From: Lorenz Leitner
Date: Tue, 10 Sep 2019 18:09:43 +0200
Subject: [PATCH 105/127] Make wal -R understand the -l flag, add -d flag
https://github.com/dylanaraps/pywal/issues/441
---
pywal/__main__.py | 14 ++++++++++++++
1 file changed, 14 insertions(+)
diff --git a/pywal/__main__.py b/pywal/__main__.py
index de992b7..af0770c 100644
--- a/pywal/__main__.py
+++ b/pywal/__main__.py
@@ -76,6 +76,9 @@ def get_args():
arg.add_argument("-l", action="store_true",
help="Generate a light colorscheme.")
+ arg.add_argument("-d", action="store_true",
+ help="Generate a dark colorscheme. Default.")
+
arg.add_argument("-n", action="store_true",
help="Skip setting the wallpaper.")
@@ -175,6 +178,17 @@ def parse_args(parser):
if args.R:
colors_plain = theme.file(os.path.join(CACHE_DIR, "colors.json"))
+ if args.l:
+ f = open(os.path.join(CACHE_DIR, "wal"))
+ cached_wallpaper = f.read()
+ colors_plain = colors.get(cached_wallpaper, True, args.backend,
+ sat=args.saturate)
+ elif args.d:
+ f = open(os.path.join(CACHE_DIR, "wal"))
+ cached_wallpaper = f.read()
+ colors_plain = colors.get(cached_wallpaper, False, args.backend,
+ sat=args.saturate)
+
if args.b:
args.b = "#%s" % (args.b.strip("#"))
colors_plain["special"]["background"] = args.b
From f44ca5da87408549a560867811955270615bedd0 Mon Sep 17 00:00:00 2001
From: Lorenz Leitner
Date: Tue, 10 Sep 2019 20:31:42 +0200
Subject: [PATCH 106/127] Fix filename
---
pywal/__main__.py | 8 ++++----
1 file changed, 4 insertions(+), 4 deletions(-)
diff --git a/pywal/__main__.py b/pywal/__main__.py
index af0770c..cfcafe4 100644
--- a/pywal/__main__.py
+++ b/pywal/__main__.py
@@ -179,13 +179,13 @@ def parse_args(parser):
colors_plain = theme.file(os.path.join(CACHE_DIR, "colors.json"))
if args.l:
- f = open(os.path.join(CACHE_DIR, "wal"))
- cached_wallpaper = f.read()
+ wallpaper_cache = open(os.path.join(CACHE_DIR, "wal"))
+ cached_wallpaper = wallpaper_cache.read()
colors_plain = colors.get(cached_wallpaper, True, args.backend,
sat=args.saturate)
elif args.d:
- f = open(os.path.join(CACHE_DIR, "wal"))
- cached_wallpaper = f.read()
+ wallpaper_cache = open(os.path.join(CACHE_DIR, "wal"))
+ cached_wallpaper = wallpaper_cache.read()
colors_plain = colors.get(cached_wallpaper, False, args.backend,
sat=args.saturate)
From fefcd53fcf1476afce442e207197eef99c5e97aa Mon Sep 17 00:00:00 2001
From: Lorenz Leitner
Date: Wed, 11 Sep 2019 09:35:31 +0200
Subject: [PATCH 107/127] Use util.read_file instead of inline file reading
---
pywal/__main__.py | 10 ++++------
1 file changed, 4 insertions(+), 6 deletions(-)
diff --git a/pywal/__main__.py b/pywal/__main__.py
index cfcafe4..cb0523c 100644
--- a/pywal/__main__.py
+++ b/pywal/__main__.py
@@ -179,14 +179,12 @@ def parse_args(parser):
colors_plain = theme.file(os.path.join(CACHE_DIR, "colors.json"))
if args.l:
- wallpaper_cache = open(os.path.join(CACHE_DIR, "wal"))
- cached_wallpaper = wallpaper_cache.read()
- colors_plain = colors.get(cached_wallpaper, True, args.backend,
+ cached_wallpaper = util.read_file(os.path.join(CACHE_DIR, "wal"))
+ colors_plain = colors.get(cached_wallpaper[0], True, args.backend,
sat=args.saturate)
elif args.d:
- wallpaper_cache = open(os.path.join(CACHE_DIR, "wal"))
- cached_wallpaper = wallpaper_cache.read()
- colors_plain = colors.get(cached_wallpaper, False, args.backend,
+ cached_wallpaper = util.read_file(os.path.join(CACHE_DIR, "wal"))
+ colors_plain = colors.get(cached_wallpaper[0], False, args.backend,
sat=args.saturate)
if args.b:
From bab56a88a899ac4a96aadbbb0975289046e617df Mon Sep 17 00:00:00 2001
From: Lorenz Leitner
Date: Wed, 11 Sep 2019 19:40:34 +0200
Subject: [PATCH 108/127] Use separate flag for last used wallpaper
---
pywal/__main__.py | 19 ++++++++-----------
1 file changed, 8 insertions(+), 11 deletions(-)
diff --git a/pywal/__main__.py b/pywal/__main__.py
index cb0523c..0f0f077 100644
--- a/pywal/__main__.py
+++ b/pywal/__main__.py
@@ -76,9 +76,6 @@ def get_args():
arg.add_argument("-l", action="store_true",
help="Generate a light colorscheme.")
- arg.add_argument("-d", action="store_true",
- help="Generate a dark colorscheme. Default.")
-
arg.add_argument("-n", action="store_true",
help="Skip setting the wallpaper.")
@@ -104,6 +101,9 @@ def get_args():
arg.add_argument("-v", action="store_true",
help="Print \"wal\" version.")
+ arg.add_argument("-w", action="store_true",
+ help="Use last used wallpaper for color generation.")
+
arg.add_argument("-e", action="store_true",
help="Skip reloading gtk/xrdb/i3/sway/polybar")
@@ -141,6 +141,7 @@ def parse_args_exit(parser):
if not args.i and \
not args.theme and \
not args.R and \
+ not args.w and \
not args.backend:
parser.error("No input specified.\n"
"--backend, --theme, -i or -R are required.")
@@ -178,14 +179,10 @@ def parse_args(parser):
if args.R:
colors_plain = theme.file(os.path.join(CACHE_DIR, "colors.json"))
- if args.l:
- cached_wallpaper = util.read_file(os.path.join(CACHE_DIR, "wal"))
- colors_plain = colors.get(cached_wallpaper[0], True, args.backend,
- sat=args.saturate)
- elif args.d:
- cached_wallpaper = util.read_file(os.path.join(CACHE_DIR, "wal"))
- colors_plain = colors.get(cached_wallpaper[0], False, args.backend,
- sat=args.saturate)
+ if args.w:
+ cached_wallpaper = util.read_file(os.path.join(CACHE_DIR, "wal"))
+ colors_plain = colors.get(cached_wallpaper[0], args.l, args.backend,
+ sat=args.saturate)
if args.b:
args.b = "#%s" % (args.b.strip("#"))
From 609fab9bfbe2deaad4e6689cd71fcc6173239647 Mon Sep 17 00:00:00 2001
From: Dylan Araps
Date: Fri, 27 Sep 2019 20:36:04 +0300
Subject: [PATCH 109/127] misc: fix lint
---
pywal/backends/colorthief.py | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/pywal/backends/colorthief.py b/pywal/backends/colorthief.py
index bcb9e39..aae5bd0 100644
--- a/pywal/backends/colorthief.py
+++ b/pywal/backends/colorthief.py
@@ -25,7 +25,7 @@ def gen_colors(img):
if len(raw_colors) >= 8:
break
- elif i == 10:
+ if i == 10:
logging.error("ColorThief couldn't generate a suitable palette.")
sys.exit(1)
From 56c60ca2e6c66da452c29515065701e6d272f756 Mon Sep 17 00:00:00 2001
From: Dylan Araps
Date: Fri, 27 Sep 2019 20:36:52 +0300
Subject: [PATCH 110/127] misc: fix lint
---
pywal/backends/wal.py | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/pywal/backends/wal.py b/pywal/backends/wal.py
index a75fdc5..f05db41 100644
--- a/pywal/backends/wal.py
+++ b/pywal/backends/wal.py
@@ -43,7 +43,7 @@ def gen_colors(img):
if len(raw_colors) > 16:
break
- elif i == 19:
+ if i == 19:
logging.error("Imagemagick couldn't generate a suitable palette.")
sys.exit(1)
From 445b8fcbb6ce5225089afe6909a96d0c3d901889 Mon Sep 17 00:00:00 2001
From: Dylan Araps
Date: Fri, 27 Sep 2019 20:37:23 +0300
Subject: [PATCH 111/127] misc: fix lint
---
setup.py | 3 ++-
1 file changed, 2 insertions(+), 1 deletion(-)
diff --git a/setup.py b/setup.py
index 8345388..1df1801 100644
--- a/setup.py
+++ b/setup.py
@@ -1,11 +1,12 @@
"""wal - setup.py"""
import setuptools
+import sys
try:
import pywal
except ImportError:
print("error: pywal requires Python 3.5 or greater.")
- quit(1)
+ sys.exit(1)
LONG_DESC = open('README.md').read()
VERSION = pywal.__version__
From 030dfe015df2ccf1862e5d846d1585c6e3f8449f Mon Sep 17 00:00:00 2001
From: Dylan Araps
Date: Fri, 27 Sep 2019 20:40:28 +0300
Subject: [PATCH 112/127] misc: fix lint
---
pywal/reload.py | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/pywal/reload.py b/pywal/reload.py
index 13e0ca8..e43d635 100644
--- a/pywal/reload.py
+++ b/pywal/reload.py
@@ -26,7 +26,7 @@ def xrdb(xrdb_files=None):
if shutil.which("xrdb") and OS != "Darwin":
for file in xrdb_files:
- subprocess.run(["xrdb", "-merge", "-quiet", file])
+ subprocess.Popen(["xrdb", "-merge", "-quiet", file])
def gtk():
From a84b5ec2ab5c5b2dca1680b43e1dac2040f11a72 Mon Sep 17 00:00:00 2001
From: Dylan Araps
Date: Fri, 27 Sep 2019 20:44:51 +0300
Subject: [PATCH 113/127] misc: fix lint
---
setup.py | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/setup.py b/setup.py
index 1df1801..2324707 100644
--- a/setup.py
+++ b/setup.py
@@ -1,6 +1,6 @@
"""wal - setup.py"""
-import setuptools
import sys
+import setuptools
try:
import pywal
From 3bc9f104518c4b480591c16404a4c04ca4801a7a Mon Sep 17 00:00:00 2001
From: Lorenz Leitner
Date: Tue, 1 Oct 2019 10:37:07 +0200
Subject: [PATCH 114/127] Save used theme in CACHE_DIR
---
pywal/theme.py | 3 ++-
1 file changed, 2 insertions(+), 1 deletion(-)
diff --git a/pywal/theme.py b/pywal/theme.py
index fcd1dd1..423a4c5 100644
--- a/pywal/theme.py
+++ b/pywal/theme.py
@@ -6,7 +6,7 @@ import os
import random
import sys
-from .settings import CONF_DIR, MODULE_DIR
+from .settings import CACHE_DIR, CONF_DIR, MODULE_DIR
from . import util
@@ -116,6 +116,7 @@ def file(input_file, light=False):
if os.path.isfile(theme_file):
logging.info("Set theme to \033[1;37m%s\033[0m.",
os.path.basename(theme_file))
+ util.save_file(os.path.basename(theme_file), os.path.join(CACHE_DIR, "theme"))
return parse(theme_file)
logging.error("No %s colorscheme file found.", bri)
From 3476989e6bd7a0526ff4dc4d592c8327a4c64f50 Mon Sep 17 00:00:00 2001
From: Lorenz Leitner
Date: Tue, 1 Oct 2019 10:58:39 +0200
Subject: [PATCH 115/127] Print (last used) next to last used theme
---
pywal/theme.py | 7 ++++++-
1 file changed, 6 insertions(+), 1 deletion(-)
diff --git a/pywal/theme.py b/pywal/theme.py
index 423a4c5..5c973da 100644
--- a/pywal/theme.py
+++ b/pywal/theme.py
@@ -19,12 +19,16 @@ def list_out():
user_themes = [theme.name.replace(".json", "")
for theme in list_themes_user()]
+ last_used_theme = util.read_file(os.path.join(CACHE_DIR,
+ "last_used_theme"))[0].replace(".json", "")
+
if user_themes:
print("\033[1;32mUser Themes\033[0m:")
print(" -", "\n - ".join(sorted(user_themes)))
print("\033[1;32mDark Themes\033[0m:")
print(" -", "\n - ".join(sorted(dark_themes)))
+ print(" -", "\n - ".join(t + " (last used)" if t == last_used_theme else t for t in sorted(dark_themes)))
print("\033[1;32mLight Themes\033[0m:")
print(" -", "\n - ".join(sorted(ligh_themes)))
@@ -116,7 +120,8 @@ def file(input_file, light=False):
if os.path.isfile(theme_file):
logging.info("Set theme to \033[1;37m%s\033[0m.",
os.path.basename(theme_file))
- util.save_file(os.path.basename(theme_file), os.path.join(CACHE_DIR, "theme"))
+ util.save_file(os.path.basename(theme_file), os.path.join(CACHE_DIR,
+ "last_used_theme"))
return parse(theme_file)
logging.error("No %s colorscheme file found.", bri)
From fe700cb77aab6df55de05704082576b19d7652b5 Mon Sep 17 00:00:00 2001
From: Lorenz Leitner
Date: Tue, 1 Oct 2019 11:00:42 +0200
Subject: [PATCH 116/127] Do for all types of themes
(dark, light, user)
---
pywal/theme.py | 10 ++++++----
1 file changed, 6 insertions(+), 4 deletions(-)
diff --git a/pywal/theme.py b/pywal/theme.py
index 5c973da..04e4b2b 100644
--- a/pywal/theme.py
+++ b/pywal/theme.py
@@ -24,14 +24,16 @@ def list_out():
if user_themes:
print("\033[1;32mUser Themes\033[0m:")
- print(" -", "\n - ".join(sorted(user_themes)))
+ print(" -", "\n - ".join(t + " (last used)" if t == last_used_theme else t
+ for t in sorted(user_themes)))
print("\033[1;32mDark Themes\033[0m:")
- print(" -", "\n - ".join(sorted(dark_themes)))
- print(" -", "\n - ".join(t + " (last used)" if t == last_used_theme else t for t in sorted(dark_themes)))
+ print(" -", "\n - ".join(t + " (last used)" if t == last_used_theme else t
+ for t in sorted(dark_themes)))
print("\033[1;32mLight Themes\033[0m:")
- print(" -", "\n - ".join(sorted(ligh_themes)))
+ print(" -", "\n - ".join(t + " (last used)" if t == last_used_theme else t
+ for t in sorted(ligh_themes)))
print("\033[1;32mExtra\033[0m:")
print(" - random (select a random dark theme)")
From 0c32f4e9a920938120297a397c33ca3c655f697f Mon Sep 17 00:00:00 2001
From: Lorenz Leitner
Date: Tue, 1 Oct 2019 11:18:37 +0200
Subject: [PATCH 117/127] Fix pylint
---
pywal/theme.py | 15 ++++++++-------
1 file changed, 8 insertions(+), 7 deletions(-)
diff --git a/pywal/theme.py b/pywal/theme.py
index 04e4b2b..c053f18 100644
--- a/pywal/theme.py
+++ b/pywal/theme.py
@@ -19,21 +19,22 @@ def list_out():
user_themes = [theme.name.replace(".json", "")
for theme in list_themes_user()]
- last_used_theme = util.read_file(os.path.join(CACHE_DIR,
- "last_used_theme"))[0].replace(".json", "")
+
+ last_used_theme = util.read_file(os.path.join(
+ CACHE_DIR, "last_used_theme"))[0].replace(".json", "")
if user_themes:
print("\033[1;32mUser Themes\033[0m:")
print(" -", "\n - ".join(t + " (last used)" if t == last_used_theme else t
- for t in sorted(user_themes)))
+ for t in sorted(user_themes)))
print("\033[1;32mDark Themes\033[0m:")
print(" -", "\n - ".join(t + " (last used)" if t == last_used_theme else t
- for t in sorted(dark_themes)))
+ for t in sorted(dark_themes)))
print("\033[1;32mLight Themes\033[0m:")
print(" -", "\n - ".join(t + " (last used)" if t == last_used_theme else t
- for t in sorted(ligh_themes)))
+ for t in sorted(ligh_themes)))
print("\033[1;32mExtra\033[0m:")
print(" - random (select a random dark theme)")
@@ -122,8 +123,8 @@ def file(input_file, light=False):
if os.path.isfile(theme_file):
logging.info("Set theme to \033[1;37m%s\033[0m.",
os.path.basename(theme_file))
- util.save_file(os.path.basename(theme_file), os.path.join(CACHE_DIR,
- "last_used_theme"))
+ util.save_file(os.path.basename(theme_file),
+ os.path.join(CACHE_DIR, "last_used_theme"))
return parse(theme_file)
logging.error("No %s colorscheme file found.", bri)
From b6a11f6338daabd33ffbfadc3a4f15e7080214eb Mon Sep 17 00:00:00 2001
From: Lorenz Leitner
Date: Tue, 1 Oct 2019 11:54:42 +0200
Subject: [PATCH 118/127] Fix line length for pylint
---
pywal/theme.py | 5 ++---
1 file changed, 2 insertions(+), 3 deletions(-)
diff --git a/pywal/theme.py b/pywal/theme.py
index c053f18..2b14600 100644
--- a/pywal/theme.py
+++ b/pywal/theme.py
@@ -19,14 +19,13 @@ def list_out():
user_themes = [theme.name.replace(".json", "")
for theme in list_themes_user()]
-
last_used_theme = util.read_file(os.path.join(
CACHE_DIR, "last_used_theme"))[0].replace(".json", "")
if user_themes:
print("\033[1;32mUser Themes\033[0m:")
- print(" -", "\n - ".join(t + " (last used)" if t == last_used_theme else t
- for t in sorted(user_themes)))
+ print(" -", "\n - ".join(t + " (last used)" if t == last_used_theme
+ else t for t in sorted(user_themes)))
print("\033[1;32mDark Themes\033[0m:")
print(" -", "\n - ".join(t + " (last used)" if t == last_used_theme else t
From 4cc2dda585a6e7f6fa8f801c2be42064204c71d8 Mon Sep 17 00:00:00 2001
From: Lorenz Leitner
Date: Tue, 1 Oct 2019 16:54:53 +0200
Subject: [PATCH 119/127] Fix FileNotFoundError if theme has never been set
---
pywal/theme.py | 7 +++++--
1 file changed, 5 insertions(+), 2 deletions(-)
diff --git a/pywal/theme.py b/pywal/theme.py
index 2b14600..706ed31 100644
--- a/pywal/theme.py
+++ b/pywal/theme.py
@@ -19,8 +19,11 @@ def list_out():
user_themes = [theme.name.replace(".json", "")
for theme in list_themes_user()]
- last_used_theme = util.read_file(os.path.join(
- CACHE_DIR, "last_used_theme"))[0].replace(".json", "")
+ try:
+ last_used_theme = util.read_file(os.path.join(
+ CACHE_DIR, "last_used_theme"))[0].replace(".json", "")
+ except FileNotFoundError:
+ last_used_theme = ""
if user_themes:
print("\033[1;32mUser Themes\033[0m:")
From b9fd064d3069024b7d9084d3303e28fede3ad4b0 Mon Sep 17 00:00:00 2001
From: Amit Prasad <17amitprasad@gmail.com>
Date: Mon, 16 Dec 2019 11:45:22 -0500
Subject: [PATCH 120/127] Started working on matching functions
---
pywal/export.py | 26 ++++++++++++++++++++++++++
pywal/util.py | 5 +++++
2 files changed, 31 insertions(+)
diff --git a/pywal/export.py b/pywal/export.py
index 88c98a6..b175c11 100644
--- a/pywal/export.py
+++ b/pywal/export.py
@@ -3,6 +3,7 @@ Export colors in various formats.
"""
import logging
import os
+import re
from .settings import CACHE_DIR, MODULE_DIR, CONF_DIR
from . import util
@@ -12,7 +13,32 @@ def template(colors, input_file, output_file=None):
"""Read template file, substitute markers and
save the file elsewhere."""
template_data = util.read_file_raw(input_file)
+ matches = re.finditer(r"(?<=(?
Date: Tue, 17 Dec 2019 20:29:04 -0500
Subject: [PATCH 121/127] Added ability to modify colors using methods (
.lighten(%), .darken(%), .saturate(%) for now)
---
pywal/colors.py | 3 +++
pywal/export.py | 59 +++++++++++++++++++++++++++----------------------
pywal/util.py | 13 ++++++++---
3 files changed, 45 insertions(+), 30 deletions(-)
diff --git a/pywal/colors.py b/pywal/colors.py
index 99d346d..6dc5105 100644
--- a/pywal/colors.py
+++ b/pywal/colors.py
@@ -48,6 +48,9 @@ def colors_to_dict(colors, img):
"color13": colors[13],
"color14": colors[14],
"color15": colors[15]
+ },
+ "modified": {
+
}
}
diff --git a/pywal/export.py b/pywal/export.py
index b175c11..ae619cd 100644
--- a/pywal/export.py
+++ b/pywal/export.py
@@ -13,38 +13,43 @@ def template(colors, input_file, output_file=None):
"""Read template file, substitute markers and
save the file elsewhere."""
template_data = util.read_file_raw(input_file)
- matches = re.finditer(r"(?<=(? 1:
+ args = func_split[1].split(",")
+ else:
+ args = []
+ name = func_split[0]
+ if name[0] == '.':
+ name = name[1:]
+ x = getattr(colors[color], name)
+ if callable(x):
+ new_color = x(*args)
+ if func[0] != '.':
+ to_replace += "."
+ to_replace += func + ")"
+ else:
+ pass
+ if not new_color is None:
+ cname = "color" + new_color.strip
+ template_data[i] = line.replace(to_replace, cname)
+ colors[cname] = new_color
try:
template_data = "".join(template_data).format(**colors)
except ValueError:
logging.error("Syntax error in template file '%s'.", input_file)
return
-
util.save_file(template_data, output_file)
diff --git a/pywal/util.py b/pywal/util.py
index 2fe0762..c105a56 100644
--- a/pywal/util.py
+++ b/pywal/util.py
@@ -9,6 +9,7 @@ import shutil
import subprocess
import sys
import platform
+import re
class Color:
@@ -57,10 +58,17 @@ class Color:
"""Strip '#' from color."""
return self.hex_color[1:]
- @property
def lighten(self,percent):
"""Lighten color by percent"""
- return lighten_color(self.hex_color,percent/100)
+ return Color(lighten_color(self.hex_color,float(re.sub(r'[\D\.]','',percent))/100))
+
+ def darken(self,percent):
+ """Darken color by percent"""
+ return Color(darken_color(self.hex_color,float(re.sub(r'[\D\.]','',percent))/100))
+
+ def saturate(self,percent):
+ """Saturate a color"""
+ return Color(saturate_color(self.hex_color,float(re.sub(r'[\D\.]','',percent))/100))
def read_file(input_file):
@@ -68,7 +76,6 @@ def read_file(input_file):
with open(input_file, "r") as file:
return file.read().splitlines()
-
def read_file_json(input_file):
"""Read data from a json file."""
with open(input_file, "r") as json_file:
From 0a4f2e6dae65c0cd0000465e36309b05fafca11e Mon Sep 17 00:00:00 2001
From: Amit Prasad <17amitprasad@gmail.com>
Date: Wed, 18 Dec 2019 00:34:48 -0500
Subject: [PATCH 122/127] Update Readme
---
README.md | 7 ++++++-
1 file changed, 6 insertions(+), 1 deletion(-)
diff --git a/README.md b/README.md
index 0e14f97..5be06a9 100644
--- a/README.md
+++ b/README.md
@@ -11,7 +11,12 @@
-Pywal is a tool that generates a color palette from the dominant colors in an image. It then applies the colors system-wide and on-the-fly in all of your favourite programs.
+Pywal is a tool that generates a color palette from the dominant colors in an image. It then applies the colors system-wide and on-the-fly in all of your favourite programs.
+
+This fork of Pywal aims to create a more versatile system, by being able to modify colors in templates. Currently supported functions include:
+* `lighten`
+* `darken`
+* `saturate`
There are currently 5 supported color generation backends, each providing a different palette of colors from each image. You're bound to find an appealing color-scheme.
From fc885697c4583a924adbc8ff3b827ab62d89c806 Mon Sep 17 00:00:00 2001
From: Amit Prasad <17amitprasad@gmail.com>
Date: Wed, 18 Dec 2019 00:36:05 -0500
Subject: [PATCH 123/127] Update Readme
---
README.md | 3 ++-
1 file changed, 2 insertions(+), 1 deletion(-)
diff --git a/README.md b/README.md
index 5be06a9..18543dc 100644
--- a/README.md
+++ b/README.md
@@ -16,7 +16,8 @@ Pywal is a tool that generates a color palette from the dominant colors in an im
This fork of Pywal aims to create a more versatile system, by being able to modify colors in templates. Currently supported functions include:
* `lighten`
* `darken`
-* `saturate`
+* `saturate`
+(More coming)
There are currently 5 supported color generation backends, each providing a different palette of colors from each image. You're bound to find an appealing color-scheme.
From f0692c31eb91f0c6e5f2f5c8fdf4737808784362 Mon Sep 17 00:00:00 2001
From: Amit Prasad <17amitprasad@gmail.com>
Date: Wed, 18 Dec 2019 13:28:13 -0500
Subject: [PATCH 124/127] Commented and minimize.
---
README.md | 5 -----
pywal/export.py | 47 ++++++++++++++++++++--------------------
pywal/templates/functest | 1 +
3 files changed, 25 insertions(+), 28 deletions(-)
create mode 100644 pywal/templates/functest
diff --git a/README.md b/README.md
index 5be06a9..f263c2f 100644
--- a/README.md
+++ b/README.md
@@ -13,11 +13,6 @@
Pywal is a tool that generates a color palette from the dominant colors in an image. It then applies the colors system-wide and on-the-fly in all of your favourite programs.
-This fork of Pywal aims to create a more versatile system, by being able to modify colors in templates. Currently supported functions include:
-* `lighten`
-* `darken`
-* `saturate`
-
There are currently 5 supported color generation backends, each providing a different palette of colors from each image. You're bound to find an appealing color-scheme.
Pywal also supports predefined themes and has over 250 themes built-in. You can also create your own theme files to share with others.
diff --git a/pywal/export.py b/pywal/export.py
index ae619cd..f7b9de8 100644
--- a/pywal/export.py
+++ b/pywal/export.py
@@ -17,33 +17,34 @@ def template(colors, input_file, output_file=None):
line = template_data[i]
matches = re.finditer(r"(?<=(? 1:
- args = func_split[1].split(",")
- else:
- args = []
- name = func_split[0]
- if name[0] == '.':
- name = name[1:]
- x = getattr(colors[color], name)
- if callable(x):
- new_color = x(*args)
- if func[0] != '.':
- to_replace += "."
- to_replace += func + ")"
- else:
- pass
- if not new_color is None:
+ args = []
+ if len(func_split) > 1: args = func_split[1].split(",")
+ fname = func_split[0]
+ if fname[0] == '.': fname = fname[1:]
+ f = getattr(new_color, fname)
+
+ # If the function is callable, call it
+ if callable(f):
+ new_color = f(*args)
+ #add to the string that will replace the function calls with the generated function.
+ if func[0] != '.': replace_str += "."
+ replace_str += func + ")"
+ #If the color was changed, replace the template with a unique identifier for the new color.
+ if not new_color is colors[color]:
cname = "color" + new_color.strip
- template_data[i] = line.replace(to_replace, cname)
+ template_data[i] = line.replace(replace_str, cname)
colors[cname] = new_color
try:
template_data = "".join(template_data).format(**colors)
diff --git a/pywal/templates/functest b/pywal/templates/functest
new file mode 100644
index 0000000..b82d4fc
--- /dev/null
+++ b/pywal/templates/functest
@@ -0,0 +1 @@
+{color0.lighten(10).darken(10).rgb}
From c29151de464ee9267872c48115fc79bc7a0075b6 Mon Sep 17 00:00:00 2001
From: Amit Prasad <17amitprasad@gmail.com>
Date: Fri, 20 Dec 2019 09:44:19 -0500
Subject: [PATCH 125/127] Beautify
---
README.md | 2 +-
pywal/export.py | 28 +++++++++++++++++-----------
pywal/templates/functest | 1 -
pywal/util.py | 19 ++++++++++---------
4 files changed, 28 insertions(+), 22 deletions(-)
delete mode 100644 pywal/templates/functest
diff --git a/README.md b/README.md
index f263c2f..443cca3 100644
--- a/README.md
+++ b/README.md
@@ -21,4 +21,4 @@ The goal of Pywal was to be as out of the way as possible. It doesn't modify any
Terminal emulators and TTYs have their color-schemes updated in real-time with no delay. With minimal configuration this functionality can be extended to almost anything running on your system.
-### More: \[[Installation](https://github.com/dylanaraps/pywal/wiki/Installation)\] \[[Getting Started](https://github.com/dylanaraps/pywal/wiki/Getting-Started)\] \[[Customization](https://github.com/dylanaraps/pywal/wiki/Customization)\] \[[Wiki](https://github.com/dylanaraps/pywal/wiki)\] \[[Screenshots](https://www.reddit.com/r/unixporn/search?q=wal&restrict_sr=on&sort=relevance&t=all)\]
+### More: \[[Installation](https://github.com/dylanaraps/pywal/wiki/Installation)] \[[Getting Started](https://github.com/dylanaraps/pywal/wiki/Getting-Started)] \[[Customization](https://github.com/dylanaraps/pywal/wiki/Customization)] \[[Wiki](https://github.com/dylanaraps/pywal/wiki)] \[[Screenshots](https://www.reddit.com/r/unixporn/search?q=wal&restrict_sr=on&sort=relevance&t=all)]
diff --git a/pywal/export.py b/pywal/export.py
index f7b9de8..4c0649f 100644
--- a/pywal/export.py
+++ b/pywal/export.py
@@ -19,29 +19,35 @@ def template(colors, input_file, output_file=None):
for match in matches:
# Get the color, and the functions associated with it
color, _, funcs = match.group(2).partition(".")
- #Check that functions are needed for this color
+ # Check that functions are needed for this color
if len(funcs) != 0:
- #Build up a string which will be replaced when the color is done processing
+ # Build up a string which will be replaced when the color is done processing
replace_str = color
- #The modified color
+ # The modified color
new_color = colors[color]
- #Execute each function to be done
- for func in filter(None,funcs.split(")")):
- ### Get function name and arguments
+ # Execute each function to be done
+ for func in filter(None, funcs.split(")")):
+ # Get function name and arguments
func_split = func.split("(")
args = []
- if len(func_split) > 1: args = func_split[1].split(",")
+ if len(func_split) > 1:
+ args = func_split[1].split(",")
fname = func_split[0]
- if fname[0] == '.': fname = fname[1:]
+ if fname[0] == '.':
+ fname = fname[1:]
+ if not hasattr(new_color, fname):
+ logging.error(
+ "Syntax error in template file '%s' on line '%s'", input_file, i)
f = getattr(new_color, fname)
# If the function is callable, call it
if callable(f):
new_color = f(*args)
- #add to the string that will replace the function calls with the generated function.
- if func[0] != '.': replace_str += "."
+ # add to the string that will replace the function calls with the generated function.
+ if func[0] != '.':
+ replace_str += "."
replace_str += func + ")"
- #If the color was changed, replace the template with a unique identifier for the new color.
+ # If the color was changed, replace the template with a unique identifier for the new color.
if not new_color is colors[color]:
cname = "color" + new_color.strip
template_data[i] = line.replace(replace_str, cname)
diff --git a/pywal/templates/functest b/pywal/templates/functest
deleted file mode 100644
index b82d4fc..0000000
--- a/pywal/templates/functest
+++ /dev/null
@@ -1 +0,0 @@
-{color0.lighten(10).darken(10).rgb}
diff --git a/pywal/util.py b/pywal/util.py
index c105a56..74fe1f0 100644
--- a/pywal/util.py
+++ b/pywal/util.py
@@ -36,7 +36,7 @@ class Color:
def rgba(self):
"""Convert a hex color to rgba."""
return "rgba(%s,%s,%s,%s)" % (*hex_to_rgb(self.hex_color),
- int(self.alpha_num)/100)
+ int(self.alpha_num) / 100)
@property
def alpha(self):
@@ -58,17 +58,17 @@ class Color:
"""Strip '#' from color."""
return self.hex_color[1:]
- def lighten(self,percent):
+ def lighten(self, percent):
"""Lighten color by percent"""
- return Color(lighten_color(self.hex_color,float(re.sub(r'[\D\.]','',percent))/100))
+ return Color(lighten_color(self.hex_color, float(re.sub(r'[\D\.]', '', percent)) / 100))
- def darken(self,percent):
+ def darken(self, percent):
"""Darken color by percent"""
- return Color(darken_color(self.hex_color,float(re.sub(r'[\D\.]','',percent))/100))
+ return Color(darken_color(self.hex_color, float(re.sub(r'[\D\.]', '', percent)) / 100))
- def saturate(self,percent):
+ def saturate(self, percent):
"""Saturate a color"""
- return Color(saturate_color(self.hex_color,float(re.sub(r'[\D\.]','',percent))/100))
+ return Color(saturate_color(self.hex_color, float(re.sub(r'[\D\.]', '', percent)) / 100))
def read_file(input_file):
@@ -76,6 +76,7 @@ def read_file(input_file):
with open(input_file, "r") as file:
return file.read().splitlines()
+
def read_file_json(input_file):
"""Read data from a json file."""
with open(input_file, "r") as json_file:
@@ -168,11 +169,11 @@ def blend_color(color, color2):
def saturate_color(color, amount):
"""Saturate a hex color."""
r, g, b = hex_to_rgb(color)
- r, g, b = [x/255.0 for x in (r, g, b)]
+ r, g, b = [x / 255.0 for x in (r, g, b)]
h, l, s = colorsys.rgb_to_hls(r, g, b)
s = amount
r, g, b = colorsys.hls_to_rgb(h, l, s)
- r, g, b = [x*255.0 for x in (r, g, b)]
+ r, g, b = [x * 255.0 for x in (r, g, b)]
return rgb_to_hex((int(r), int(g), int(b)))
From f06edfa7a2f8aba5bac24710e21389434604c8cd Mon Sep 17 00:00:00 2001
From: Amit Prasad <17amitprasad@gmail.com>
Date: Fri, 20 Dec 2019 10:00:38 -0500
Subject: [PATCH 126/127] Undo unneeded changes
---
pywal/colors.py | 3 ---
1 file changed, 3 deletions(-)
diff --git a/pywal/colors.py b/pywal/colors.py
index 6dc5105..99d346d 100644
--- a/pywal/colors.py
+++ b/pywal/colors.py
@@ -48,9 +48,6 @@ def colors_to_dict(colors, img):
"color13": colors[13],
"color14": colors[14],
"color15": colors[15]
- },
- "modified": {
-
}
}
From d4bd389b438df7bc4d3f302d44e23c9bbdaba8ec Mon Sep 17 00:00:00 2001
From: Amit Prasad <17amitprasad@gmail.com>
Date: Fri, 20 Dec 2019 11:34:57 -0500
Subject: [PATCH 127/127] Cleaned up code for pylint
---
pywal/export.py | 74 ++++++++++++++++++++++++-------------------------
pywal/util.py | 13 +++++----
2 files changed, 45 insertions(+), 42 deletions(-)
diff --git a/pywal/export.py b/pywal/export.py
index 4c0649f..d9ff16d 100644
--- a/pywal/export.py
+++ b/pywal/export.py
@@ -5,53 +5,53 @@ import logging
import os
import re
-from .settings import CACHE_DIR, MODULE_DIR, CONF_DIR
from . import util
+from .settings import CACHE_DIR, CONF_DIR, MODULE_DIR
def template(colors, input_file, output_file=None):
"""Read template file, substitute markers and
save the file elsewhere."""
template_data = util.read_file_raw(input_file)
- for i in range(len(template_data)):
- line = template_data[i]
- matches = re.finditer(r"(?<=(? 1:
- args = func_split[1].split(",")
- fname = func_split[0]
- if fname[0] == '.':
- fname = fname[1:]
- if not hasattr(new_color, fname):
- logging.error(
- "Syntax error in template file '%s' on line '%s'", input_file, i)
- f = getattr(new_color, fname)
+ if len(funcs) == 0:
+ continue
+ # Build up a string which will be replaced with the new color
+ replace_str = cname
+ # Color to be modified copied into new one
+ new_color = util.Color(colors[cname].hex_color)
+ # Execute each function to be done
+ for func in filter(None, funcs.split(")")):
+ # Get function name and arguments
+ func = func.split("(")
+ fname = func[0]
+ if fname[0] == '.':
+ fname = fname[1:]
+ if not hasattr(new_color, fname):
+ logging.error(
+ "Syntax error in template file '%s' on line '%s'",
+ input_file, i)
+ function = getattr(new_color, fname)
- # If the function is callable, call it
- if callable(f):
- new_color = f(*args)
- # add to the string that will replace the function calls with the generated function.
- if func[0] != '.':
- replace_str += "."
- replace_str += func + ")"
- # If the color was changed, replace the template with a unique identifier for the new color.
- if not new_color is colors[color]:
- cname = "color" + new_color.strip
- template_data[i] = line.replace(replace_str, cname)
- colors[cname] = new_color
+ # If the function is callable, call it
+ if callable(function):
+ if len(func) > 1:
+ new_color = function(*func[1].split(","))
+ else:
+ new_color = function()
+ # string to replace generated colors
+ if func[0] != '.':
+ replace_str += "."
+ replace_str += "(".join(func) + ")"
+ # If the color was changed, replace with a unique identifier.
+ if new_color is not colors[cname]:
+ template_data[i] = l.replace(
+ replace_str, "color" + new_color.strip)
+ colors["color" + new_color.strip] = new_color
try:
template_data = "".join(template_data).format(**colors)
except ValueError:
diff --git a/pywal/util.py b/pywal/util.py
index 74fe1f0..cd6628a 100644
--- a/pywal/util.py
+++ b/pywal/util.py
@@ -5,11 +5,11 @@ import colorsys
import json
import logging
import os
+import platform
+import re
import shutil
import subprocess
import sys
-import platform
-import re
class Color:
@@ -60,15 +60,18 @@ class Color:
def lighten(self, percent):
"""Lighten color by percent"""
- return Color(lighten_color(self.hex_color, float(re.sub(r'[\D\.]', '', percent)) / 100))
+ percent = float(re.sub(r'[\D\.]', '', str(percent)))
+ return Color(lighten_color(self.hex_color, percent / 100))
def darken(self, percent):
"""Darken color by percent"""
- return Color(darken_color(self.hex_color, float(re.sub(r'[\D\.]', '', percent)) / 100))
+ percent = float(re.sub(r'[\D\.]', '', str(percent)))
+ return Color(darken_color(self.hex_color, percent / 100))
def saturate(self, percent):
"""Saturate a color"""
- return Color(saturate_color(self.hex_color, float(re.sub(r'[\D\.]', '', percent)) / 100))
+ percent = float(re.sub(r'[\D\.]', '', str(percent)))
+ return Color(saturate_color(self.hex_color, percent / 100))
def read_file(input_file):