dylanaraps / pywal

🎨 Generate and change color-schemes on the fly.

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

ImageMagick-7 Policy change causes error (w/ solution)

Dreded opened this issue · comments

so ImageMagick-7 Changed the default policy to not allow writing to STDOUT....

command:

wal -i /home/user/Pictures/wallpapers/Fantasy-Landscape.png -s -t

error:

[I] image: Using image Fantasy-Landscape.png.
[I] colors: Generating a colorscheme.
[I] colors: Using wal backend.
convert: attempt to perform an operation not allowed by the security policy `-' @ error/blob.c/OpenBlob/3317.
Traceback (most recent call last):
  File "/usr/bin/wal", line 8, in <module>
    sys.exit(main())
             ^^^^^^
  File "/usr/lib/python3.11/site-packages/pywal/__main__.py", line 208, in main
    parse_args(parser)
  File "/usr/lib/python3.11/site-packages/pywal/__main__.py", line 163, in parse_args
    colors_plain = colors.get(image_file, args.l, args.backend,
                   ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/lib/python3.11/site-packages/pywal/colors.py", line 144, in get
    colors = getattr(backend, "get")(img, light)
             ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/lib/python3.11/site-packages/pywal/backends/wal.py", line 86, in get
    colors = gen_colors(img)
             ^^^^^^^^^^^^^^^
  File "/usr/lib/python3.11/site-packages/pywal/backends/wal.py", line 41, in gen_colors
    raw_colors = imagemagick(16 + i, img, magick_command)
                 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/lib/python3.11/site-packages/pywal/backends/wal.py", line 19, in imagemagick
    return subprocess.check_output([*magick_command, img, *flags]).splitlines()
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/lib64/python3.11/subprocess.py", line 466, in check_output
    return run(*popenargs, stdout=PIPE, timeout=timeout, check=True,
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/lib64/python3.11/subprocess.py", line 571, in run
    raise CalledProcessError(retcode, process.args,
subprocess.CalledProcessError: Command '['magick', 'convert', '/home/user/Pictures/wallpapers/Fantasy-Landscape.png[0]', '-resize', '25%', '-colors', '16', '-unique-colors', 'txt:-']' returned non-zero exit status 1.

solution 1:

  • open in editor -> /etc/ImageMagick-7/policy.xml
  • change -> <policy domain="path" rights="none" pattern="-"/>
  • to -> <policy domain="path" rights="write" pattern="-"/>

solution 2 (use sed to edit in place):

  • sed -i 's/\(<policy domain="path" rights="\)none\(" pattern="-"\/>\)/\1write\2/' /etc/ImageMagick-7/policy.xml