A curses based mpd client with basic functionality and album art.

Overview

Miniplayer

A curses based mpd client with basic functionality and album art.

player-preview

After installation, the player can be opened from the terminal with miniplayer.

Installation

This package can be installed by:

  1. Cloning this repository to your computer and running
python setup.py install
  1. Through PyPi with
pip install miniplayer
  1. By installing the miniplayer-git package with your AUR package manager of choice.

Configuration

The config file is located at ~/.config/miniplayer/config. The example configuration file, config.example, has all the default values. You will need to create the file yourself.

player

  • music_directory: The path to your music directory for extracting album art.

  • font_width: The width of your font in pixels in the actual terminal.

  • font_height: The height of your font in pixels in the actual terminal.

    font-example

  • image_method: The method to use for drawing album art. Available values are pixcat and ueberzug If you are not using Kitty, try ueberzug.

mpd

  • host: The mpd host
  • port: The mpd port

Keybinds

Key function
h Show keybinds
p Play/pause
> Next track
< Last track
q Quit
+ Volume +5
- Volume -5

F.A.Q.

  1. Q: Album art is not showing up.
    A: Make sure your music_directory is not quoted i.e. if your music directory is ~/My Music then your config should look like music_directory = ~/My Music.
    If this does not work, try changing image_method from pixcat to ueberzug or vice versa.

  2. Q: Album art is too big/too small.
    A: You need to configure font_height and font_width. Their values should be the actual pixel height and width of a character in your terminal.

Comments
  • Alacritty doesnt show cover art

    Alacritty doesnt show cover art

    Alacritty with ueberzug doesn't showed the cover art and with pixcat crashed I know that a song I'm listening to has an embedded art. The others functionality work fine, but I'm not seeing the album art

    image_method    = ueberzug
    music_directory = ~/mus
    

    opt info: alacritty 0.9.0 (fed349aa) ueberzug 18.1.9 pixcat 0.1.4

    invalid 
    opened by anjeelcain 14
  • Put some beats on! message

    Put some beats on! message

    Ubuntu 18.04.5 user here on an old 32 bit laptop. So maybe it's the reason of the problem.

    I installed miniplayer via sudo python3 setup.py install. Log:

    running install
    running bdist_egg
    running egg_info
    writing miniplayer.egg-info/PKG-INFO
    writing dependency_links to miniplayer.egg-info/dependency_links.txt
    writing requirements to miniplayer.egg-info/requires.txt
    writing top-level names to miniplayer.egg-info/top_level.txt
    reading manifest file 'miniplayer.egg-info/SOURCES.txt'
    writing manifest file 'miniplayer.egg-info/SOURCES.txt'
    installing library code to build/bdist.linux-i686/egg
    running install_lib
    warning: install_lib: 'build/lib' does not exist -- no Python modules to install
    
    creating build/bdist.linux-i686/egg
    creating build/bdist.linux-i686/egg/EGG-INFO
    installing scripts to build/bdist.linux-i686/egg/EGG-INFO/scripts
    running install_scripts
    running build_scripts
    creating build/bdist.linux-i686/egg/EGG-INFO/scripts
    copying build/scripts-3.6/miniplayer -> build/bdist.linux-i686/egg/EGG-INFO/scripts
    changing mode of build/bdist.linux-i686/egg/EGG-INFO/scripts/miniplayer to 755
    copying miniplayer.egg-info/PKG-INFO -> build/bdist.linux-i686/egg/EGG-INFO
    copying miniplayer.egg-info/SOURCES.txt -> build/bdist.linux-i686/egg/EGG-INFO
    copying miniplayer.egg-info/dependency_links.txt -> build/bdist.linux-i686/egg/EGG-INFO
    copying miniplayer.egg-info/requires.txt -> build/bdist.linux-i686/egg/EGG-INFO
    copying miniplayer.egg-info/top_level.txt -> build/bdist.linux-i686/egg/EGG-INFO
    zip_safe flag not set; analyzing archive contents...
    creating 'dist/miniplayer-1.1.1-py3.6.egg' and adding 'build/bdist.linux-i686/egg' to it
    removing 'build/bdist.linux-i686/egg' (and everything under it)
    Processing miniplayer-1.1.1-py3.6.egg
    Removing /usr/local/lib/python3.6/dist-packages/miniplayer-1.1.1-py3.6.egg
    Copying miniplayer-1.1.1-py3.6.egg to /usr/local/lib/python3.6/dist-packages
    miniplayer 1.1.1 is already the active version in easy-install.pth
    Installing miniplayer script to /usr/local/bin
    
    Installed /usr/local/lib/python3.6/dist-packages/miniplayer-1.1.1-py3.6.egg
    Processing dependencies for miniplayer==1.1.1
    Searching for ueberzug==18.1.7
    Best match: ueberzug 18.1.7
    Adding ueberzug 18.1.7 to easy-install.pth file
    Installing ueberzug script to /usr/local/bin
    
    Using /usr/local/lib/python3.6/dist-packages
    Searching for Pillow==6.2.1
    Best match: Pillow 6.2.1
    Adding Pillow 6.2.1 to easy-install.pth file
    
    Using /home/itook/.local/lib/python3.6/site-packages
    Searching for pixcat==0.1.4
    Best match: pixcat 0.1.4
    Processing pixcat-0.1.4-py3.6.egg
    pixcat 0.1.4 is already the active version in easy-install.pth
    Installing pixcat script to /usr/local/bin
    
    Using /usr/local/lib/python3.6/dist-packages/pixcat-0.1.4-py3.6.egg
    Searching for ffmpeg-python==0.2.0
    Best match: ffmpeg-python 0.2.0
    Processing ffmpeg_python-0.2.0-py3.6.egg
    ffmpeg-python 0.2.0 is already the active version in easy-install.pth
    
    Using /usr/local/lib/python3.6/dist-packages/ffmpeg_python-0.2.0-py3.6.egg
    Searching for python-mpd2==3.0.4
    Best match: python-mpd2 3.0.4
    Processing python_mpd2-3.0.4-py3.6.egg
    python-mpd2 3.0.4 is already the active version in easy-install.pth
    
    Using /usr/local/lib/python3.6/dist-packages/python_mpd2-3.0.4-py3.6.egg
    Searching for psutil==5.7.3
    Best match: psutil 5.7.3
    Adding psutil 5.7.3 to easy-install.pth file
    
    Using /usr/local/lib/python3.6/dist-packages
    Searching for docopt==0.6.2
    Best match: docopt 0.6.2
    Adding docopt 0.6.2 to easy-install.pth file
    
    Using /usr/local/lib/python3.6/dist-packages
    Searching for python-xlib==0.29
    Best match: python-xlib 0.29
    Adding python-xlib 0.29 to easy-install.pth file
    
    Using /usr/local/lib/python3.6/dist-packages
    Searching for attrs==20.3.0
    Best match: attrs 20.3.0
    Adding attrs 20.3.0 to easy-install.pth file
    
    Using /usr/local/lib/python3.6/dist-packages
    Searching for requests==2.18.4
    Best match: requests 2.18.4
    Adding requests 2.18.4 to easy-install.pth file
    
    Using /usr/lib/python3/dist-packages
    Searching for dataclasses==0.8
    Best match: dataclasses 0.8
    Processing dataclasses-0.8-py3.6.egg
    dataclasses 0.8 is already the active version in easy-install.pth
    
    Using /usr/local/lib/python3.6/dist-packages/dataclasses-0.8-py3.6.egg
    Searching for blessed==1.17.12
    Best match: blessed 1.17.12
    Processing blessed-1.17.12-py3.6.egg
    blessed 1.17.12 is already the active version in easy-install.pth
    
    Using /usr/local/lib/python3.6/dist-packages/blessed-1.17.12-py3.6.egg
    Searching for future==0.18.2
    Best match: future 0.18.2
    Processing future-0.18.2-py3.6.egg
    future 0.18.2 is already the active version in easy-install.pth
    Installing futurize script to /usr/local/bin
    Installing pasteurize script to /usr/local/bin
    
    Using /usr/local/lib/python3.6/dist-packages/future-0.18.2-py3.6.egg
    Searching for six==1.15.0
    Best match: six 1.15.0
    Adding six 1.15.0 to easy-install.pth file
    
    Using /home/itook/.local/lib/python3.6/site-packages
    Searching for wcwidth==0.2.5
    Best match: wcwidth 0.2.5
    Processing wcwidth-0.2.5-py3.6.egg
    wcwidth 0.2.5 is already the active version in easy-install.pth
    
    Using /usr/local/lib/python3.6/dist-packages/wcwidth-0.2.5-py3.6.egg
    Finished processing dependencies for miniplayer==1.1.1
    

    The config file is not created by default on /home/itook/.config/miniplayer/config so I created the directory and moved the sample config to it and renamed as "config". Then I edited it with adding my music directory.

    When I execute the command miniplayer I only see the message "Put some beats on!".

    opened by Itookmyprozac 11
  • 'utf-8' codec can't decode byte 0xdd in position 55: invalid continuation byte

    'utf-8' codec can't decode byte 0xdd in position 55: invalid continuation byte

    Hello,

    i try to run but come across error output

    ❯ miniplayer
    Traceback (most recent call last):
      File "/home/ahloi/.local/bin/miniplayer", line 455, in loop
        self.handleKeypress()
      File "/home/ahloi/.local/bin/miniplayer", line 263, in handleKeypress
        if self.checkSongUpdate() == 1:
      File "/home/ahloi/.local/bin/miniplayer", line 220, in checkSongUpdate
        song = self.client.currentsong()
      File "/usr/lib/python3.9/site-packages/mpd/base.py", line 435, in mpd_command
        return wrapper(self, name, args, callback)
      File "/usr/lib/python3.9/site-packages/mpd/base.py", line 498, in _execute
        return retval()
      File "/usr/lib/python3.9/site-packages/mpd/base.py", line 420, in command_callback
        res = function(self, self._read_lines())
      File "/usr/lib/python3.9/site-packages/mpd/base.py", line 360, in _parse_object
        objs = list(self._parse_objects(lines))
      File "/usr/lib/python3.9/site-packages/mpd/base.py", line 206, in _parse_objects
        for key, value in self._parse_pairs(lines)
    :
      File "/usr/lib/python3.9/site-packages/mpd/base.py", line 201, in _parse_pairs
        for line in lines:
      File "/usr/lib/python3.9/site-packages/mpd/base.py", line 552, in _read_lines
        line = self._read_line()
      File "/usr/lib/python3.9/site-packages/mpd/base.py", line 534, in _read_line
        line = self._rbfile.readline().decode("utf-8")
    UnicodeDecodeError: 'utf-8' codec can't decode byte 0xdd in position 55: invalid continuation byte
    
    During handling of the above exception, another exception occurred:
    
    Traceback (most recent call last):
      File "/home/ahloi/.local/bin/miniplayer", line 487, in <module>
        player.loop()
      File "/home/ahloi/.local/bin/miniplayer", line 482, in loop
        if error:
    UnboundLocalError: local variable 'error' referenced before assignment
    ~
    ❯ 
    

    this happened both build install (miniplayer-git on arch repo and PyPi) any help is appreciated, thanks

    opened by ahloiscreamo 10
  • AUR package fails to build

    AUR package fails to build

    The AUR package doesnt build. Im not sure if this is a local issue or not.

    Preparing...
    Cloning miniplayer-git build files...
    Checking miniplayer-git dependencies...
    Cloning python-ffmpeg build files...
    Checking python-ffmpeg dependencies...
    Cloning python-pixcat build files...
    Checking python-pixcat dependencies...
    Cloning python-ueberzug-git build files...
    Checking python-ueberzug-git dependencies...
    Cloning python-dataclasses build files...
    Checking python-dataclasses dependencies...
    Resolving dependencies...
    Checking inter-conflicts...
    Checking keyring...
    Checking integrity...
    Loading packages files...
    Checking file conflicts...
    Checking available disk space...
    Installing python-wcwidth (0.2.5-3)...
    Installing python-blessed (1.18.0-1)...
    Installing python-attrs (20.3.0-3)...
    Installing python-iniconfig (1.1.1-1)...
    Installing python-more-itertools (8.7.0-1)...
    Installing python-zipp (3.4.1-1)...
    Installing python-importlib-metadata (4.0.1-1)...
    Installing python-pluggy (0.13.1-4)...
    Installing python-apipkg (1.5-5)...
    Installing python-py (1.10.0-1)...
    Installing python-pytest (6.2.3-1)...
    Installing python-pytest-runner (5.2-3)...
    Installing python-mpd2 (3.0.4-1)...
    Installing python-xlib (0.29-1)...
    Installing python-ansiwrap (0.8.4-3)...
    Installing python-pytest-mock (3.1.1-1)...
    Installing python-future (0.18.2-5)...
    Installing python-psutil (5.8.0-1)...
    Running post-transaction hooks...
    Arming ConditionNeedsUpdate...
    
    Building python-dataclasses...
    ==> Making package: python-dataclasses 0.8-1 (Fri 07 May 2021 12:32:07 PM IST)
    ==> Checking runtime dependencies...
    ==> Checking buildtime dependencies...
    ==> Retrieving sources...
      -> Found dataclasses-0.8.tar.gz
    ==> Validating source files with sha256sums...
        dataclasses-0.8.tar.gz ... Passed
    ==> Removing existing $srcdir/ directory...
    ==> Extracting sources...
      -> Extracting dataclasses-0.8.tar.gz with bsdtar
    ==> Starting build()...
    ==> Entering fakeroot environment...
    ==> Starting package()...
    running install
    running build
    running build_py
    creating build
    creating build/lib
    copying dataclasses.py -> build/lib
    running install_lib
    creating /var/tmp/pamac-build-kami/python-dataclasses/pkg/python-dataclasses/usr
    creating /var/tmp/pamac-build-kami/python-dataclasses/pkg/python-dataclasses/usr/lib
    creating /var/tmp/pamac-build-kami/python-dataclasses/pkg/python-dataclasses/usr/lib/python3.9
    creating /var/tmp/pamac-build-kami/python-dataclasses/pkg/python-dataclasses/usr/lib/python3.9/site-packages
    copying build/lib/dataclasses.py -> /var/tmp/pamac-build-kami/python-dataclasses/pkg/python-dataclasses/usr/lib/python3.9/site-packages
    byte-compiling /var/tmp/pamac-build-kami/python-dataclasses/pkg/python-dataclasses/usr/lib/python3.9/site-packages/dataclasses.py to dataclasses.cpython-39.pyc
    writing byte-compilation script '/tmp/tmp6usdl1rw.py'
    /usr/bin/python /tmp/tmp6usdl1rw.py
    removing /tmp/tmp6usdl1rw.py
    running install_egg_info
    running egg_info
    writing dataclasses.egg-info/PKG-INFO
    writing dependency_links to dataclasses.egg-info/dependency_links.txt
    writing top-level names to dataclasses.egg-info/top_level.txt
    adding license file 'LICENSE.txt' (matched pattern 'LICEN[CS]E*')
    reading manifest file 'dataclasses.egg-info/SOURCES.txt'
    reading manifest template 'MANIFEST.in'
    writing manifest file 'dataclasses.egg-info/SOURCES.txt'
    Copying dataclasses.egg-info to /var/tmp/pamac-build-kami/python-dataclasses/pkg/python-dataclasses/usr/lib/python3.9/site-packages/dataclasses-0.8-py3.9.egg-info
    running install_scripts
    ==> Tidying install...
      -> Removing libtool files...
      -> Purging unwanted files...
      -> Removing static library files...
      -> Stripping unneeded symbols from binaries and libraries...
      -> Compressing man and info pages...
    ==> Checking for packaging issues...
    ==> Creating package "python-dataclasses"...
      -> Generating .PKGINFO file...
      -> Generating .BUILDINFO file...
      -> Generating .MTREE file...
      -> Compressing package...
    ==> Leaving fakeroot environment.
    ==> Finished making: python-dataclasses 0.8-1 (Fri 07 May 2021 12:32:09 PM IST)
    ==> Cleaning up...
    
    Building python-ffmpeg...
    ==> Making package: python-ffmpeg 0.2.0-2 (Fri 07 May 2021 12:32:10 PM IST)
    ==> Checking runtime dependencies...
    ==> Checking buildtime dependencies...
    ==> Retrieving sources...
      -> Found python-ffmpeg-0.2.0.tar.gz
    ==> Validating source files with sha256sums...
        python-ffmpeg-0.2.0.tar.gz ... Passed
    ==> Removing existing $srcdir/ directory...
    ==> Extracting sources...
      -> Extracting python-ffmpeg-0.2.0.tar.gz with bsdtar
    ==> Starting build()...
    running build
    running build_py
    creating build
    creating build/lib
    creating build/lib/ffmpeg
    copying ffmpeg/_view.py -> build/lib/ffmpeg
    copying ffmpeg/_probe.py -> build/lib/ffmpeg
    copying ffmpeg/__init__.py -> build/lib/ffmpeg
    copying ffmpeg/_run.py -> build/lib/ffmpeg
    copying ffmpeg/dag.py -> build/lib/ffmpeg
    copying ffmpeg/nodes.py -> build/lib/ffmpeg
    copying ffmpeg/_ffmpeg.py -> build/lib/ffmpeg
    copying ffmpeg/_filters.py -> build/lib/ffmpeg
    copying ffmpeg/_utils.py -> build/lib/ffmpeg
    ==> Starting check()...
    ============================= test session starts ==============================
    platform linux -- Python 3.9.4, pytest-6.2.3, py-1.10.0, pluggy-0.13.1
    rootdir: /var/tmp/pamac-build-kami/python-ffmpeg/src/ffmpeg-python-0.2.0, configfile: pytest.ini, testpaths: ffmpeg/tests
    plugins: mock-3.1.1
    collected 60 items
    
    ffmpeg/tests/test_ffmpeg.py ............................................ [ 73%]
    ................                                                         [100%]
    
    =============================== warnings summary ===============================
    ../../../../../../usr/lib/python3.9/site-packages/past/builtins/misc.py:45
      /usr/lib/python3.9/site-packages/past/builtins/misc.py:45: DeprecationWarning: the imp module is deprecated in favour of importlib; see the module's documentation for alternative uses
        from imp import reload
    
    ffmpeg/tests/test_ffmpeg.py:31
      /var/tmp/pamac-build-kami/python-ffmpeg/src/ffmpeg-python-0.2.0/ffmpeg/tests/test_ffmpeg.py:31: DeprecationWarning: invalid escape sequence \:
        assert ffmpeg._utils.escape_chars('a:b', ':') == 'a\:b'
    
    ffmpeg/tests/test_ffmpeg.py::test__output__video_size[video_size0]
      /var/tmp/pamac-build-kami/python-ffmpeg/src/ffmpeg-python-0.2.0/ffmpeg/_run.py:140: DeprecationWarning: Using or importing the ABCs from 'collections' instead of from 'collections.abc' is deprecated since Python 3.3, and in 3.10 it will stop working
        video_size, collections.Iterable
    
    ffmpeg/tests/test_ffmpeg.py::test__get_filter_complex_input
    ffmpeg/tests/test_ffmpeg.py::test__multi_output_edge_label_order
      /var/tmp/pamac-build-kami/python-ffmpeg/src/ffmpeg-python-0.2.0/ffmpeg/tests/test_ffmpeg.py:722: FutureWarning: Possible nested set at position 20
        m = re.search(r'\[([^]]+)\]{}(?=[[;]|$)'.format(name), flt)
    
    -- Docs: https://docs.pytest.org/en/stable/warnings.html
    ======================== 60 passed, 5 warnings in 1.07s ========================
    ==> Entering fakeroot environment...
    ==> Starting package()...
    running install
    running install_lib
    creating /var/tmp/pamac-build-kami/python-ffmpeg/pkg/python-ffmpeg/usr
    creating /var/tmp/pamac-build-kami/python-ffmpeg/pkg/python-ffmpeg/usr/lib
    creating /var/tmp/pamac-build-kami/python-ffmpeg/pkg/python-ffmpeg/usr/lib/python3.9
    creating /var/tmp/pamac-build-kami/python-ffmpeg/pkg/python-ffmpeg/usr/lib/python3.9/site-packages
    creating /var/tmp/pamac-build-kami/python-ffmpeg/pkg/python-ffmpeg/usr/lib/python3.9/site-packages/ffmpeg
    copying build/lib/ffmpeg/_view.py -> /var/tmp/pamac-build-kami/python-ffmpeg/pkg/python-ffmpeg/usr/lib/python3.9/site-packages/ffmpeg
    copying build/lib/ffmpeg/_probe.py -> /var/tmp/pamac-build-kami/python-ffmpeg/pkg/python-ffmpeg/usr/lib/python3.9/site-packages/ffmpeg
    copying build/lib/ffmpeg/__init__.py -> /var/tmp/pamac-build-kami/python-ffmpeg/pkg/python-ffmpeg/usr/lib/python3.9/site-packages/ffmpeg
    copying build/lib/ffmpeg/_run.py -> /var/tmp/pamac-build-kami/python-ffmpeg/pkg/python-ffmpeg/usr/lib/python3.9/site-packages/ffmpeg
    copying build/lib/ffmpeg/dag.py -> /var/tmp/pamac-build-kami/python-ffmpeg/pkg/python-ffmpeg/usr/lib/python3.9/site-packages/ffmpeg
    copying build/lib/ffmpeg/nodes.py -> /var/tmp/pamac-build-kami/python-ffmpeg/pkg/python-ffmpeg/usr/lib/python3.9/site-packages/ffmpeg
    copying build/lib/ffmpeg/_ffmpeg.py -> /var/tmp/pamac-build-kami/python-ffmpeg/pkg/python-ffmpeg/usr/lib/python3.9/site-packages/ffmpeg
    copying build/lib/ffmpeg/_filters.py -> /var/tmp/pamac-build-kami/python-ffmpeg/pkg/python-ffmpeg/usr/lib/python3.9/site-packages/ffmpeg
    copying build/lib/ffmpeg/_utils.py -> /var/tmp/pamac-build-kami/python-ffmpeg/pkg/python-ffmpeg/usr/lib/python3.9/site-packages/ffmpeg
    byte-compiling /var/tmp/pamac-build-kami/python-ffmpeg/pkg/python-ffmpeg/usr/lib/python3.9/site-packages/ffmpeg/_view.py to _view.cpython-39.pyc
    byte-compiling /var/tmp/pamac-build-kami/python-ffmpeg/pkg/python-ffmpeg/usr/lib/python3.9/site-packages/ffmpeg/_probe.py to _probe.cpython-39.pyc
    byte-compiling /var/tmp/pamac-build-kami/python-ffmpeg/pkg/python-ffmpeg/usr/lib/python3.9/site-packages/ffmpeg/__init__.py to __init__.cpython-39.pyc
    byte-compiling /var/tmp/pamac-build-kami/python-ffmpeg/pkg/python-ffmpeg/usr/lib/python3.9/site-packages/ffmpeg/_run.py to _run.cpython-39.pyc
    byte-compiling /var/tmp/pamac-build-kami/python-ffmpeg/pkg/python-ffmpeg/usr/lib/python3.9/site-packages/ffmpeg/dag.py to dag.cpython-39.pyc
    byte-compiling /var/tmp/pamac-build-kami/python-ffmpeg/pkg/python-ffmpeg/usr/lib/python3.9/site-packages/ffmpeg/nodes.py to nodes.cpython-39.pyc
    byte-compiling /var/tmp/pamac-build-kami/python-ffmpeg/pkg/python-ffmpeg/usr/lib/python3.9/site-packages/ffmpeg/_ffmpeg.py to _ffmpeg.cpython-39.pyc
    byte-compiling /var/tmp/pamac-build-kami/python-ffmpeg/pkg/python-ffmpeg/usr/lib/python3.9/site-packages/ffmpeg/_filters.py to _filters.cpython-39.pyc
    byte-compiling /var/tmp/pamac-build-kami/python-ffmpeg/pkg/python-ffmpeg/usr/lib/python3.9/site-packages/ffmpeg/_utils.py to _utils.cpython-39.pyc
    writing byte-compilation script '/tmp/tmpfz0azgwn.py'
    /usr/bin/python /tmp/tmpfz0azgwn.py
    removing /tmp/tmpfz0azgwn.py
    running install_egg_info
    running egg_info
    creating ffmpeg_python.egg-info
    writing ffmpeg_python.egg-info/PKG-INFO
    writing dependency_links to ffmpeg_python.egg-info/dependency_links.txt
    writing requirements to ffmpeg_python.egg-info/requires.txt
    writing top-level names to ffmpeg_python.egg-info/top_level.txt
    writing manifest file 'ffmpeg_python.egg-info/SOURCES.txt'
    adding license file 'LICENSE' (matched pattern 'LICEN[CS]E*')
    reading manifest file 'ffmpeg_python.egg-info/SOURCES.txt'
    writing manifest file 'ffmpeg_python.egg-info/SOURCES.txt'
    Copying ffmpeg_python.egg-info to /var/tmp/pamac-build-kami/python-ffmpeg/pkg/python-ffmpeg/usr/lib/python3.9/site-packages/ffmpeg_python-0.2.0-py3.9.egg-info
    running install_scripts
    ==> Tidying install...
      -> Removing empty directories...
      -> Removing libtool files...
      -> Purging unwanted files...
      -> Removing static library files...
      -> Stripping unneeded symbols from binaries and libraries...
      -> Compressing man and info pages...
    ==> Checking for packaging issues...
    ==> Creating package "python-ffmpeg"...
      -> Generating .PKGINFO file...
      -> Generating .BUILDINFO file...
      -> Generating .MTREE file...
      -> Compressing package...
    ==> Leaving fakeroot environment.
    ==> Finished making: python-ffmpeg 0.2.0-2 (Fri 07 May 2021 12:32:14 PM IST)
    ==> Cleaning up...
    
    Checking keyring...
    Checking integrity...
    Loading packages files...
    Checking file conflicts...
    Checking available disk space...
    Installing python-dataclasses (0.8-1)...
    Installing python-ffmpeg (0.2.0-2)...
    Running post-transaction hooks...
    Arming ConditionNeedsUpdate...
    
    Building python-pixcat...
    ==> Making package: python-pixcat 0.1.4-4 (Fri 07 May 2021 12:32:16 PM IST)
    ==> Checking runtime dependencies...
    ==> Checking buildtime dependencies...
    ==> Retrieving sources...
      -> Found pixcat-0.1.4.tar.gz
    ==> Validating source files with sha512sums...
        pixcat-0.1.4.tar.gz ... Passed
    ==> Removing existing $srcdir/ directory...
    ==> Extracting sources...
      -> Extracting pixcat-0.1.4.tar.gz with bsdtar
    ==> Starting build()...
    running build
    running build_py
    creating build
    creating build/lib
    creating build/lib/pixcat
    copying pixcat/data.py -> build/lib/pixcat
    copying pixcat/__init__.py -> build/lib/pixcat
    copying pixcat/image.py -> build/lib/pixcat
    copying pixcat/__about__.py -> build/lib/pixcat
    copying pixcat/__main__.py -> build/lib/pixcat
    copying pixcat/terminal.py -> build/lib/pixcat
    copying pixcat/cli.py -> build/lib/pixcat
    running egg_info
    writing pixcat.egg-info/PKG-INFO
    writing dependency_links to pixcat.egg-info/dependency_links.txt
    writing entry points to pixcat.egg-info/entry_points.txt
    writing requirements to pixcat.egg-info/requires.txt
    writing top-level names to pixcat.egg-info/top_level.txt
    reading manifest file 'pixcat.egg-info/SOURCES.txt'
    writing manifest file 'pixcat.egg-info/SOURCES.txt'
    ==> Entering fakeroot environment...
    ==> Starting package()...
    running install
    running install_lib
    creating /var/tmp/pamac-build-kami/python-pixcat/pkg/python-pixcat/usr
    creating /var/tmp/pamac-build-kami/python-pixcat/pkg/python-pixcat/usr/lib
    creating /var/tmp/pamac-build-kami/python-pixcat/pkg/python-pixcat/usr/lib/python3.9
    creating /var/tmp/pamac-build-kami/python-pixcat/pkg/python-pixcat/usr/lib/python3.9/site-packages
    creating /var/tmp/pamac-build-kami/python-pixcat/pkg/python-pixcat/usr/lib/python3.9/site-packages/pixcat
    copying build/lib/pixcat/data.py -> /var/tmp/pamac-build-kami/python-pixcat/pkg/python-pixcat/usr/lib/python3.9/site-packages/pixcat
    copying build/lib/pixcat/__init__.py -> /var/tmp/pamac-build-kami/python-pixcat/pkg/python-pixcat/usr/lib/python3.9/site-packages/pixcat
    copying build/lib/pixcat/image.py -> /var/tmp/pamac-build-kami/python-pixcat/pkg/python-pixcat/usr/lib/python3.9/site-packages/pixcat
    copying build/lib/pixcat/__about__.py -> /var/tmp/pamac-build-kami/python-pixcat/pkg/python-pixcat/usr/lib/python3.9/site-packages/pixcat
    copying build/lib/pixcat/__main__.py -> /var/tmp/pamac-build-kami/python-pixcat/pkg/python-pixcat/usr/lib/python3.9/site-packages/pixcat
    copying build/lib/pixcat/terminal.py -> /var/tmp/pamac-build-kami/python-pixcat/pkg/python-pixcat/usr/lib/python3.9/site-packages/pixcat
    copying build/lib/pixcat/cli.py -> /var/tmp/pamac-build-kami/python-pixcat/pkg/python-pixcat/usr/lib/python3.9/site-packages/pixcat
    byte-compiling /var/tmp/pamac-build-kami/python-pixcat/pkg/python-pixcat/usr/lib/python3.9/site-packages/pixcat/data.py to data.cpython-39.pyc
    byte-compiling /var/tmp/pamac-build-kami/python-pixcat/pkg/python-pixcat/usr/lib/python3.9/site-packages/pixcat/__init__.py to __init__.cpython-39.pyc
    byte-compiling /var/tmp/pamac-build-kami/python-pixcat/pkg/python-pixcat/usr/lib/python3.9/site-packages/pixcat/image.py to image.cpython-39.pyc
    byte-compiling /var/tmp/pamac-build-kami/python-pixcat/pkg/python-pixcat/usr/lib/python3.9/site-packages/pixcat/__about__.py to __about__.cpython-39.pyc
    byte-compiling /var/tmp/pamac-build-kami/python-pixcat/pkg/python-pixcat/usr/lib/python3.9/site-packages/pixcat/__main__.py to __main__.cpython-39.pyc
    byte-compiling /var/tmp/pamac-build-kami/python-pixcat/pkg/python-pixcat/usr/lib/python3.9/site-packages/pixcat/terminal.py to terminal.cpython-39.pyc
    byte-compiling /var/tmp/pamac-build-kami/python-pixcat/pkg/python-pixcat/usr/lib/python3.9/site-packages/pixcat/cli.py to cli.cpython-39.pyc
    writing byte-compilation script '/tmp/tmpljrum171.py'
    /usr/bin/python /tmp/tmpljrum171.py
    removing /tmp/tmpljrum171.py
    running install_egg_info
    running egg_info
    writing pixcat.egg-info/PKG-INFO
    writing dependency_links to pixcat.egg-info/dependency_links.txt
    writing entry points to pixcat.egg-info/entry_points.txt
    writing requirements to pixcat.egg-info/requires.txt
    writing top-level names to pixcat.egg-info/top_level.txt
    reading manifest file 'pixcat.egg-info/SOURCES.txt'
    writing manifest file 'pixcat.egg-info/SOURCES.txt'
    Copying pixcat.egg-info to /var/tmp/pamac-build-kami/python-pixcat/pkg/python-pixcat/usr/lib/python3.9/site-packages/pixcat-0.1.4-py3.9.egg-info
    running install_scripts
    Installing pixcat script to /var/tmp/pamac-build-kami/python-pixcat/pkg/python-pixcat/usr/bin
    ==> Tidying install...
      -> Removing libtool files...
      -> Purging unwanted files...
      -> Removing static library files...
      -> Stripping unneeded symbols from binaries and libraries...
      -> Compressing man and info pages...
    ==> Checking for packaging issues...
    ==> Creating package "python-pixcat"...
      -> Generating .PKGINFO file...
      -> Generating .BUILDINFO file...
      -> Generating .MTREE file...
      -> Compressing package...
    ==> Leaving fakeroot environment.
    ==> Finished making: python-pixcat 0.1.4-4 (Fri 07 May 2021 12:32:18 PM IST)
    ==> Cleaning up...
    
    Building python-ueberzug-git...
    ==> Making package: python-ueberzug-git 18.1.5.a8ac9c3-1 (Fri 07 May 2021 12:32:20 PM IST)
    ==> Checking runtime dependencies...
    ==> Checking buildtime dependencies...
    ==> Retrieving sources...
      -> Updating ueberzug git repo...
    Fetching origin
    ==> Validating source files with md5sums...
        ueberzug ... Skipped
    ==> Removing existing $srcdir/ directory...
    ==> Extracting sources...
      -> Creating working copy of ueberzug git repo...
    Cloning into 'ueberzug'...
    done.
    Switched to a new branch 'makepkg'
    ==> Removing existing $pkgdir/ directory...
    ==> Starting build()...
    running build
    running build_py
    creating build
    creating build/lib.linux-x86_64-3.9
    creating build/lib.linux-x86_64-3.9/ueberzug
    copying ueberzug/batch.py -> build/lib.linux-x86_64-3.9/ueberzug
    copying ueberzug/version.py -> build/lib.linux-x86_64-3.9/ueberzug
    copying ueberzug/thread.py -> build/lib.linux-x86_64-3.9/ueberzug
    copying ueberzug/xutil.py -> build/lib.linux-x86_64-3.9/ueberzug
    copying ueberzug/tmux_util.py -> build/lib.linux-x86_64-3.9/ueberzug
    copying ueberzug/library.py -> build/lib.linux-x86_64-3.9/ueberzug
    copying ueberzug/conversion.py -> build/lib.linux-x86_64-3.9/ueberzug
    copying ueberzug/__init__.py -> build/lib.linux-x86_64-3.9/ueberzug
    copying ueberzug/loading.py -> build/lib.linux-x86_64-3.9/ueberzug
    copying ueberzug/action.py -> build/lib.linux-x86_64-3.9/ueberzug
    copying ueberzug/__main__.py -> build/lib.linux-x86_64-3.9/ueberzug
    copying ueberzug/process.py -> build/lib.linux-x86_64-3.9/ueberzug
    copying ueberzug/query_windows.py -> build/lib.linux-x86_64-3.9/ueberzug
    copying ueberzug/terminal.py -> build/lib.linux-x86_64-3.9/ueberzug
    copying ueberzug/ui.py -> build/lib.linux-x86_64-3.9/ueberzug
    copying ueberzug/pattern.py -> build/lib.linux-x86_64-3.9/ueberzug
    copying ueberzug/layer.py -> build/lib.linux-x86_64-3.9/ueberzug
    copying ueberzug/geometry.py -> build/lib.linux-x86_64-3.9/ueberzug
    copying ueberzug/files.py -> build/lib.linux-x86_64-3.9/ueberzug
    copying ueberzug/parser.py -> build/lib.linux-x86_64-3.9/ueberzug
    copying ueberzug/scaling.py -> build/lib.linux-x86_64-3.9/ueberzug
    creating build/lib.linux-x86_64-3.9/ueberzug/lib
    copying ueberzug/lib/__init__.py -> build/lib.linux-x86_64-3.9/ueberzug/lib
    creating build/lib.linux-x86_64-3.9/ueberzug/lib/v0
    copying ueberzug/lib/v0/__init__.py -> build/lib.linux-x86_64-3.9/ueberzug/lib/v0
    running egg_info
    creating ueberzug.egg-info
    writing ueberzug.egg-info/PKG-INFO
    writing dependency_links to ueberzug.egg-info/dependency_links.txt
    writing entry points to ueberzug.egg-info/entry_points.txt
    writing requirements to ueberzug.egg-info/requires.txt
    writing top-level names to ueberzug.egg-info/top_level.txt
    writing manifest file 'ueberzug.egg-info/SOURCES.txt'
    adding license file 'LICENSE' (matched pattern 'LICEN[CS]E*')
    reading manifest file 'ueberzug.egg-info/SOURCES.txt'
    reading manifest template 'MANIFEST.in'
    writing manifest file 'ueberzug.egg-info/SOURCES.txt'
    creating build/lib.linux-x86_64-3.9/ueberzug/X
    copying ueberzug/X/X.c -> build/lib.linux-x86_64-3.9/ueberzug/X
    copying ueberzug/X/X.h -> build/lib.linux-x86_64-3.9/ueberzug/X
    copying ueberzug/X/Xshm.c -> build/lib.linux-x86_64-3.9/ueberzug/X
    copying ueberzug/X/Xshm.h -> build/lib.linux-x86_64-3.9/ueberzug/X
    copying ueberzug/X/display.c -> build/lib.linux-x86_64-3.9/ueberzug/X
    copying ueberzug/X/display.h -> build/lib.linux-x86_64-3.9/ueberzug/X
    copying ueberzug/X/math.h -> build/lib.linux-x86_64-3.9/ueberzug/X
    copying ueberzug/X/python.h -> build/lib.linux-x86_64-3.9/ueberzug/X
    copying ueberzug/X/util.h -> build/lib.linux-x86_64-3.9/ueberzug/X
    copying ueberzug/X/window.c -> build/lib.linux-x86_64-3.9/ueberzug/X
    copying ueberzug/X/window.h -> build/lib.linux-x86_64-3.9/ueberzug/X
    copying ueberzug/lib/lib.sh -> build/lib.linux-x86_64-3.9/ueberzug/lib
    running build_ext
    building 'ueberzug.X' extension
    creating build/temp.linux-x86_64-3.9
    creating build/temp.linux-x86_64-3.9/ueberzug
    creating build/temp.linux-x86_64-3.9/ueberzug/X
    gcc -pthread -Wno-unused-result -Wsign-compare -DNDEBUG -g -fwrapv -O3 -Wall -march=x86-64 -mtune=generic -O3 -pipe -fno-plt -fno-semantic-interposition -march=x86-64 -mtune=generic -O3 -pipe -fno-plt -march=x86-64 -mtune=generic -O3 -pipe -fno-plt -march=x86-64 -mtune=generic -O2 -pipe -fno-plt -fexceptions -Wp,-D_FORTIFY_SOURCE=2,-D_GLIBCXX_ASSERTIONS -Wformat -Werror=format-security -fstack-clash-protection -fcf-protection -fPIC -Iueberzug/X -I/usr/include/python3.9 -c ueberzug/X/X.c -o build/temp.linux-x86_64-3.9/ueberzug/X/X.o
    gcc -pthread -Wno-unused-result -Wsign-compare -DNDEBUG -g -fwrapv -O3 -Wall -march=x86-64 -mtune=generic -O3 -pipe -fno-plt -fno-semantic-interposition -march=x86-64 -mtune=generic -O3 -pipe -fno-plt -march=x86-64 -mtune=generic -O3 -pipe -fno-plt -march=x86-64 -mtune=generic -O2 -pipe -fno-plt -fexceptions -Wp,-D_FORTIFY_SOURCE=2,-D_GLIBCXX_ASSERTIONS -Wformat -Werror=format-security -fstack-clash-protection -fcf-protection -fPIC -Iueberzug/X -I/usr/include/python3.9 -c ueberzug/X/Xshm.c -o build/temp.linux-x86_64-3.9/ueberzug/X/Xshm.o
    gcc -pthread -Wno-unused-result -Wsign-compare -DNDEBUG -g -fwrapv -O3 -Wall -march=x86-64 -mtune=generic -O3 -pipe -fno-plt -fno-semantic-interposition -march=x86-64 -mtune=generic -O3 -pipe -fno-plt -march=x86-64 -mtune=generic -O3 -pipe -fno-plt -march=x86-64 -mtune=generic -O2 -pipe -fno-plt -fexceptions -Wp,-D_FORTIFY_SOURCE=2,-D_GLIBCXX_ASSERTIONS -Wformat -Werror=format-security -fstack-clash-protection -fcf-protection -fPIC -Iueberzug/X -I/usr/include/python3.9 -c ueberzug/X/display.c -o build/temp.linux-x86_64-3.9/ueberzug/X/display.o
    ueberzug/X/display.c:214:1: warning: ‘Display_get_screen_height’ defined but not used [-Wunused-function]
      214 | Display_get_screen_height(DisplayObject *self, void *closure) {
          | ^~~~~~~~~~~~~~~~~~~~~~~~~
    gcc -pthread -Wno-unused-result -Wsign-compare -DNDEBUG -g -fwrapv -O3 -Wall -march=x86-64 -mtune=generic -O3 -pipe -fno-plt -fno-semantic-interposition -march=x86-64 -mtune=generic -O3 -pipe -fno-plt -march=x86-64 -mtune=generic -O3 -pipe -fno-plt -march=x86-64 -mtune=generic -O2 -pipe -fno-plt -fexceptions -Wp,-D_FORTIFY_SOURCE=2,-D_GLIBCXX_ASSERTIONS -Wformat -Werror=format-security -fstack-clash-protection -fcf-protection -fPIC -Iueberzug/X -I/usr/include/python3.9 -c ueberzug/X/window.c -o build/temp.linux-x86_64-3.9/ueberzug/X/window.o
    gcc -pthread -shared -Wl,-O1,--sort-common,--as-needed,-z,relro,-z,now -fno-semantic-interposition -Wl,-O1,--sort-common,--as-needed,-z,relro,-z,now -Wl,-O1,--sort-common,--as-needed,-z,relro,-z,now -march=x86-64 -mtune=generic -O2 -pipe -fno-plt -fexceptions -Wp,-D_FORTIFY_SOURCE=2,-D_GLIBCXX_ASSERTIONS -Wformat -Werror=format-security -fstack-clash-protection -fcf-protection build/temp.linux-x86_64-3.9/ueberzug/X/X.o build/temp.linux-x86_64-3.9/ueberzug/X/Xshm.o build/temp.linux-x86_64-3.9/ueberzug/X/display.o build/temp.linux-x86_64-3.9/ueberzug/X/window.o -L/usr/lib -lX11 -lXext -lXRes -o build/lib.linux-x86_64-3.9/ueberzug/X.cpython-39-x86_64-linux-gnu.so
    /usr/bin/ld: build/temp.linux-x86_64-3.9/ueberzug/X/Xshm.o:/var/tmp/pamac-build-kami/python-ueberzug-git/src/ueberzug/ueberzug/X/display.h:27: multiple definition of `DisplayType'; build/temp.linux-x86_64-3.9/ueberzug/X/X.o:/var/tmp/pamac-build-kami/python-ueberzug-git/src/ueberzug/ueberzug/X/display.h:27: first defined here
    /usr/bin/ld: build/temp.linux-x86_64-3.9/ueberzug/X/Xshm.o:/var/tmp/pamac-build-kami/python-ueberzug-git/src/ueberzug/ueberzug/X/Xshm.c:279: multiple definition of `ImageType'; build/temp.linux-x86_64-3.9/ueberzug/X/X.o:/var/tmp/pamac-build-kami/python-ueberzug-git/src/ueberzug/ueberzug/X/Xshm.h:6: first defined here
    /usr/bin/ld: build/temp.linux-x86_64-3.9/ueberzug/X/display.o:/var/tmp/pamac-build-kami/python-ueberzug-git/src/ueberzug/ueberzug/X/display.h:27: multiple definition of `DisplayType'; build/temp.linux-x86_64-3.9/ueberzug/X/X.o:/var/tmp/pamac-build-kami/python-ueberzug-git/src/ueberzug/ueberzug/X/display.h:27: first defined here
    /usr/bin/ld: build/temp.linux-x86_64-3.9/ueberzug/X/window.o:/var/tmp/pamac-build-kami/python-ueberzug-git/src/ueberzug/ueberzug/X/display.h:27: multiple definition of `DisplayType'; build/temp.linux-x86_64-3.9/ueberzug/X/X.o:/var/tmp/pamac-build-kami/python-ueberzug-git/src/ueberzug/ueberzug/X/display.h:27: first defined here
    /usr/bin/ld: build/temp.linux-x86_64-3.9/ueberzug/X/window.o:/var/tmp/pamac-build-kami/python-ueberzug-git/src/ueberzug/ueberzug/X/window.c:299: multiple definition of `WindowType'; build/temp.linux-x86_64-3.9/ueberzug/X/X.o:/var/tmp/pamac-build-kami/python-ueberzug-git/src/ueberzug/ueberzug/X/window.h:6: first defined here
    collect2: error: ld returned 1 exit status
    error: command '/usr/bin/gcc' failed with exit code 1
    ==> ERROR: A failure occurred in build().
        Aborting... 
    
    opened by SharkLava 5
  • No album art in the virtual terminal

    No album art in the virtual terminal

    Hi!

    In the Config file, if I set any size, nothing changes. A 5 "monitors are unreadable small letters. The other problem is that the covers do not appear. My Music folder: / MNT / Music / Blues / MNT / Music / Rock / MNT / Music / Jazz

    The setting is: [art] Image_method = ueberzug Music_directory = / MNT / Music http_base_url = http://192.168.1.2:88 http_cover_filenames = cover.jpg

    Can you help me? IMG_6162

    invalid 
    opened by ambrits 4
  • Album art fetching from HTTP server

    Album art fetching from HTTP server

    Hi!

    I love the miniplayer, but my album art isn't present in the files.

    Instead, since I'm using the Android clients MPDroid and MAFA a lot, I've followed the instructions provided by the MPDroid wiki to set up an HTTP server that serves my album art for me. Both of these players support this exact implementation, and of course other users/developers can use it as well.

    So, I forked your repository and altered and expanded on the code to make it support album art fetching from such an HTTP server.

    If it interests you, I hope you will merge these changes to upstream. Of course I'm more than willing to change the code/approach where desired as well :).

    If you do feel this is a worthy addition, here's a summary of what I did:

    • Since there are now more settings regarding album art fetching, I felt a config section art was in order. I've moved music_directory and image_method there, and added the new http_base_url and http_cover_filenames options.
    • There is now a central Player.getAlbumArt method, which will, based on the config, fetch art from the HTTP server, or from the files. Each of these routes have their own private method in the Player class.
    • I made the default album art drawing logic a separate function Player.drawDefaultAlbumArt, especially now that it's called from several places.
    • I've updated the example config and README. It might be a bit minimal though.

    Two things I feel uncertain about is:

    • Whatever the image is, it is always saved to the /tmp directory with a PNG file extension. Of course this should be an issue just as much with retrieving album art from files, and that seems to work fine. Also, I've tested with a JPG file from my HTTP server, and it seems to work just fine there too.
    • I bumped minor version, but since I moved some existing config keys around, this release would not be compatible with current configs, so therefore it might be better to make this a major version upgrade (2.0.0 for instance).

    Let me hear what you think. No worries if you reject the feature altogether, I can maintain a fork if necessary :).

    Thanks, Bart

    enhancement 
    opened by bartkl 4
  • The player errors on startup if there is no config file present

    The player errors on startup if there is no config file present

    i have all the necessary dependencies installed via pip3 i have installed miniplayer from pip3 by sudo pip3 install miniplayer. its installed successfully but when i run it i get following error image

    bug 
    opened by onlyvip 4
  • A config option to show only the album artwork

    A config option to show only the album artwork

    Hey there,

    Love the simplicity of this program! I'm primarily using this as a scratchpad window to quickly show album artwork, and I feel like it is a really nice companion program to something like ncmpcpp.

    It might be neat to add a config option to show the artwork only; no progress indicator/track info.

    Perhaps the track information can be used as the window title itself while there is an active track playing, rather than simply displaying 'miniplayer'.

    I'm thinking this addition might be potentially useful for people who use a multiplexer with other minimal mpd clients -- i.e. a tmux session with individual panes for ncmpcpp, miniplayer, etc. - this way they could simply use miniplayer as a way to display artwork only, and still retain the ability to use it as a standalone application with track changing, pausing, etc. via the keybinds.

    Before I take a stab at it myself I thought I'd pitch the idea to see what you think?

    enhancement 
    opened by vide0hanz 4
  • Add mpd readpicture method as an option in miniplayer

    Add mpd readpicture method as an option in miniplayer

    I wasn't able to get miniplayer working for the the longest time and realized that it's because of the way I have the cover art setup. I embed the cover art into all of my audio files rather than putting the cover.png in the album's directory.

    This pull request fixes said issue by adding a config option to use mpd's "readpicture" function which extracts the cover art from the audio file.

    opened by aaw3 3
  • Puts some beats on! Message

    Puts some beats on! Message

    Miniplayer just shows Puts some beats on message. Mpd service is up and running other mpd clients are also working fine. System Info: OS: Manjaro Linux x86_64 Kernel: 5.12.9-1-MANJARO Shell: zsh 5.8 WM: i3

    my miniplayer default config

    [player]
    music_directory = ~/Music
    font_width = 11
    font_height = 24
    image_method = pixcat
    volume_step = 5
    auto_close = false
    album_art_only = false
    show_playlist = true
    
    [mpd]
    host = localhost
    port = 6600
    

    mpd conifg

    music_directory "/Music"
    playlist_directory "/.config/mpd/playlists"
    db_file "/.config/mpd/database"
    log_file "syslog"
    state_file "/.config/mpd/state"
    bind_to_address "127.0.0.1"
    port "6600"
    auto_update "yes"
    input {
    plugin "curl"
    }
    audio_output {
    type "pulse"
    name "My Pulse Output"
    }
    

    Also tried changing locahost to 127.0.0.1 in miniplayer config as well and other mpd clients like ncmpcpp also working!

    Originally posted by @c0dysharma in https://github.com/GuardKenzie/miniplayer/issues/5#issuecomment-873330784

    enhancement 
    opened by c0dysharma 3
  • Error when trying to build

    Error when trying to build

    Hi, I'm the maintainer of the AUR package; I'm having issues building the package, either with python setup.py build or with python -m build --wheel:

    error: Multiple top-level packages discovered in a flat-layout: ['img', 'miniplayer'].
    
    To avoid accidental inclusion of unwanted files or directories,
    setuptools will not proceed with this build.
    
    If you are trying to create a single distribution with multiple packages
    on purpose, you should not rely on automatic discovery.
    Instead, consider the following options:
    
    1. set up custom discovery (`find` directive with `include` or `exclude`)
    2. use a `src-layout`
    3. explicitly set `py_modules` or `packages` with a list of names
    
    To find more information, look for "package discovery" on setuptools docs.
    
    
    bug 
    opened by BachoSeven 2
  • Reset color data when program exits

    Reset color data when program exits

    Hey again, I noticed that when I have colors set to auto in the config file, these colors tend to persist and bleed into other TUI apps that are launched from within the same terminal, ie ncmpcpp

    • running miniplayer, colors get applied based on artwork: image

    • running ncmpcpp, colors which miniplayer applied persist: image

    I'm not 100% on this, but I believe ColorThief applies colors via escape sequences, which would probably explain why this happens. I suspect that if there is a way to clear all color values set by miniplayer once the program exits that this would no longer occur. Would sourcing colors from xresources upon exit be a good idea?

    What do you think?

    bug 
    opened by vide0hanz 1
  • Cannot install ueberzug from PyPi.

    Cannot install ueberzug from PyPi.

    I cannot find any suitable package for that dependency. I am running Fedora 37 with Linux kernel 6.0.10

    Can someone help me?

    Relevant error message:

    Could not find suitable distribution for Requirement.parse('ueberzug')
    
    help wanted 
    opened by Minesweeper76 6
Releases(v1.8.1)
  • v1.8.1(Nov 25, 2022)

    Summary

    Added a command line where you can add songs to the playlist.

    Changelog

    Fixed

    • Fixed some issues with the autocomplete and playlist population in the command line (including #32).

    Changed

    • The help menu is now scrollable with the configured scroll keys and looks a little nicer.

    Have fun :heart:

    Source code(tar.gz)
    Source code(zip)
  • v1.8.0(Nov 23, 2022)

    Summary

    Added a command line where you can add songs to the playlist.

    Changelog

    Added

    • Added new keybind command_line which launches the command line
    • Added config options command_sep_color and command_hierarchy_color to set command line colors
    • Added config options command_sep and command_char to customize the look of the command line.

    Have fun :heart:

    The command line

    The command line can be used to add songs to the current playlist. To launch it, press the command_line button (that's : by default). The command line supports some tab completion but you cannot move the caret left or right (yet).

    The format is as follows:

    [hierarchy] [tag1/tag2/tag3/...tagN]
    

    hierarchy

    • You do not have to populate all the tags. if you type, for example, artist Phoebe Bridgers/ and hit enter, all of Phoebe's music in your library will be added to the playlist.

    • NOTE You do not type the seperator! It is added automatically. Just use a space!

    The hierarchy controls the order of the tags and what each tag represents. Currently there are 4 available hierarchies with plans to add user configurable ones in the future.

    Hierarchies

    | Hierarchy | Tag format | | --------- | ----------------- | | album | album/song | | artist | artist/song | | song | song | | aa | artist/album/song |

    Command line keys

    | Key | Action | |--------|-------------------------------------------------| | Escape | Exit command line | | Enter | Attempt to add the current tags to the playlist |

    Source code(tar.gz)
    Source code(zip)
  • v1.7.3(Nov 22, 2022)

    Summary

    Miniplayer now supports embedded album art again and users can use their config directory set in XDG_CONFIG_HOME instead of the hardcoded ~/.config

    Changelog

    Changed

    • Album art fetching now goes by the following steps (Thanks to @aaw3 with #29 honorable mention to @an-prata):
      1. Check if the current song has embedded art and use that.
      2. Check if there is a cover image file present in the songs folder and use that.
      3. Draw and use the default album art.
    • Miniplayer now checks if the XDG_CONFIG_HOME directory exists and will use that for config (Thanks to @tye-singwa with #25 )

    Fixed

    • Minor performance improvements

    Have fun! :heart:

    Source code(tar.gz)
    Source code(zip)
  • v1.7.1(Sep 23, 2022)

  • v1.7.0(Jun 9, 2022)

    Summary

    Switched from using ffmpeg to fetch album art to using MPD's native method

    Changelog

    Removed

    • The http_base_url, http_cover_filenames and music_directory config options have been removed since they are no longer needed to fetch album art.
    • ffmpeg is no longer a dependancy.

    Have fun! :heart:

    Source code(tar.gz)
    Source code(zip)
  • v1.6.1(Mar 29, 2022)

    Summary

    Added some new keybinds and some playlist management options.

    Changelog

    Added

    • The delete and backspace keys can now be bound.
    • You can now use shift as a modifier for some keybindings (alpha keys and arrow keys). Just capitalise the keybinding (shift + p becomes P and shift + left becomes Left).
    • Added shuffle and repeat commands.
    • Added move_up and move_down commands to move songs around in your playlist.
    • Added a delete command to remove songs from your playlist.

    Changed

    • Config keys are now case-sensitive.

    Fixed

    • Songs with multiple artists are now displayed correctly thanks to @s-walrus and their PR #20

    Have fun! :heart:

    Source code(tar.gz)
    Source code(zip)
  • v1.5.1(Nov 21, 2021)

    Summary

    The auto color algorithm would sometimes pick colors that were not legible on dark backgrounds.

    Changelog

    Fixed

    • Fixed an issue where the auto color algorithm would sometimes pick illegible colors.

    Have fun! :heart:

    Source code(tar.gz)
    Source code(zip)
  • v1.5.0(Nov 21, 2021)

    Summary

    Added a bunch of theming options, including options to change the progress bar, colors and to dynamically pick colors from the album art.

    Changelog

    Added

    • A new config section theme.
    • New config options theme/accent_color, theme/bar_color and theme/time_color to change the playlist, progressbar and timestamp colors respectively
    • New config options theme/bar_body and theme/bar_head allow the user to change the look of the progress bar
    • The color option auto will automatically style that element based on the current album art!

    Changed

    • The progress bar has a new look

    Fixed

    • There was an unnecessary additional error message when bugs would arise. This has been removed.

    Have fun! :heart:

    Source code(tar.gz)
    Source code(zip)
  • v1.4.0(Sep 9, 2021)

    Summary

    Merged PR #17 which adds functionality to fetch album art from files hosted on a HTTP server.

    Changelog

    Added

    • A new config section art.
    • A new config option art/http_base_url for the base URL of the webserver that serves your album art, if you are using one.
    • A new config option art/http_cover_filenames which holds a list of filenames that will be fetched when using a http server to serve album art.

    Changed

    • Moved the music_directory and image_method config options to the new art config section.

    Deprecated

    • The music_directory and image_method config options under the player section in the config file have been deprecated and will be removed in the future.
    Source code(tar.gz)
    Source code(zip)
  • v1.3.2(May 23, 2021)

    Summary

    Made the player more responsive to keyboard controls.

    Changelog

    Fixed

    • The player no longer crashes on launch when there isn't a config file present (as per #13).
    • The player now redraws the progress bar if a song is restarted with the select command.
    Source code(tar.gz)
    Source code(zip)
  • v1.3.1(May 13, 2021)

    Summary

    Made the player more responsive to keyboard controls.

    Changelog

    Fixed

    • Player no longer crashes when songs in the playlist did not have enough metadata (as per #12 ).
    • Player no longer crashes when the playlist contains no songs.
    Source code(tar.gz)
    Source code(zip)
  • v1.3.0(May 13, 2021)

    Summary

    Added a playlist view that appears once the window is wide enough.

    Changelog

    Added

    • A new playlist view that appears when the window is sufficiently wide.
    • New config option show_playlist to enable/disable the new view.
    • New keybinds to control the playlist (select_up, select_down and select).
    Source code(tar.gz)
    Source code(zip)
  • v1.2.0(Apr 30, 2021)

    Summary

    New configuration options have been added to hide the current track info, auto close the player when finishing a playlist, to customize keybindings and more.

    Changelog

    Added

    • New config option auto_close automatically closes the player once mpd reaches the end of the playlist and stops.
    • New config option album_art_only hides the current track information and only displays the album art. This can be toggled with the new toggle_info keybind (defaults to i).
    • New config options for customizing keybinds (see the readme for details).
    • New config option volume_step for changing the volume increment/decrement ammount.
    • New config option to specify a password for use with mpd. (Thanks to @chebro).
    Source code(tar.gz)
    Source code(zip)
  • v1.1.2(Apr 19, 2021)

    Summary

    Made the player more responsive to keyboard controls.

    Changelog

    Fixed

    • The player now immediately updates when the keys for help, next song and previous song are pressed.
    • The player checks for inputs twice as often which should result in a more responsive experience.
    Source code(tar.gz)
    Source code(zip)
  • v1.1.1(Feb 4, 2021)

  • v1.1(Jan 31, 2021)

    Summary

    With this version. the player no longer requires Kitty as your terminal due to the new Überzug implementation.

    Changelog

    Added

    • Added a new config option image_method which takes values pixcat or ueberzug. This enables users to pick which method to use for drawing album art
    • Added configuration for mpd host and port as per #2
    Source code(tar.gz)
    Source code(zip)
Owner
Tristan Ferrua
Tristan Ferrua
An awesome list of AI for art and design - resources, and popular datasets and how we may apply computer vision tasks to art and design.

Awesome AI for Art & Design An awesome list of AI for art and design - resources, and popular datasets and how we may apply computer vision tasks to a

Margaret Maynard-Reid 20 Dec 21, 2022
A step-by-step tutorial for how to work with some of the most basic features of Nav2 using a Jupyter Notebook in a warehouse environment to create a basic application.

This project has a step-by-step tutorial for how to work with some of the most basic features of Nav2 using a Jupyter Notebook in a warehouse environment to create a basic application.

Steve Macenski 49 Dec 22, 2022
Blender addon that simplifies access to useful operators and adds missing functionality

Quick Menu is a Blender addon that simplifies common tasks Compatible with Blender 3.x.x Install through Edit -> Preferences -> Addons -> Install... -

passivestar 94 Dec 27, 2022
The tool helps to find hidden parameters that can be vulnerable or can reveal interesting functionality that other hunters miss.

The tool helps to find hidden parameters that can be vulnerable or can reveal interesting functionality that other hunters miss. Greater accuracy is achieved thanks to the line-by-line comparison of pages, comparison of response code and reflections.

null 197 Nov 14, 2022
A simple streamlit webapp with multiple functionality

A simple streamlit webapp with multiple functionality

Omkar Pramod Hankare 2 Nov 24, 2021
Extended functionality for Namebase past their web UI

Namebase Extended Extended functionality for Namebase past their web UI.

RunDavidMC 12 Sep 2, 2022
This repo contains scripts that add functionality to xbar.

xbar-custom-plugins This repo contains scripts that add functionality to xbar. Usage You have to add scripts to xbar plugin folder. If you don't find

osman uygar 1 Jan 10, 2022
Block fingerprinting for the beacon chain, for client identification & client diversity metrics

blockprint This is a repository for discussion and development of tools for Ethereum block fingerprinting. The primary aim is to measure beacon chain

Sigma Prime 49 Dec 8, 2022
Iris-client - Python client for DFIR-IRIS

Python client dfir_iris_client offers a Python interface to communicate with IRI

DFIR-IRIS 11 Dec 22, 2022
Magenta: Music and Art Generation with Machine Intelligence

Magenta is a research project exploring the role of machine learning in the process of creating art and music. Primarily this involves developing new

Magenta 18.1k Jan 5, 2023
Pixelarticons - Pixel Art Icons made simple for Flutter, powered by pixelarticons and fontify

Pixelarticons - Pixel Art Icons made simple for Flutter, powered by pixelarticons and fontify

lask 16 Dec 12, 2022
:art: Diagram as Code for prototyping cloud system architectures

Diagrams Diagram as Code. Diagrams lets you draw the cloud system architecture in Python code. It was born for prototyping a new system architecture d

MinJae Kwon 27.5k Jan 4, 2023
A script to generate NFT art living on the Solana blockchain.

NFT Generator This script generates NFT art based on its desired traits with their specific rarities. It has been used to generate the full collection

Rude Golems 24 Oct 8, 2022
Displays Christmas-themed ASCII art

Christmas Color Scripts Displays Christmas-themed ASCII art. This was mainly inspired by DistroTube's Shell Color Scripts Screenshots ASCII Shadow Tex

null 1 Aug 9, 2022
Simple GUI menu for micropython using a rotary encoder and basic display.

Micropython encoder based menu This is a simple menu system written in micropython. It uses a switch, a rotary encoder and an OLED display.

null 80 Jan 7, 2023
A basic DIY-project made using Python and MySQL

Banking-Using-Python-MySQL This is a basic DIY-project made using Python and MySQL. Pre-Requisite needed:-->> MySQL command Line:- creating a database

ABHISHEK 0 Jul 3, 2022
Minutaria is a basic educational Python timer used to learn python and software testing libraries.

minutaria minutaria is a basic educational Python timer. The project is educational, it aims to teach myself programming, python programming, python's

null 1 Jul 16, 2021
The purpose is to have a fairly simple python assignment that introduces the basic features and tools of python

This repository contains the code for the python introduction lab. The purpose is to have a fairly simple python assignment that introduces the basic

null 1 Jan 24, 2022
A basic python project which replicates the functionalities on an 8 Ball.

Magic-8-Ball To the people who wish to make decisions using a Magic 8 Ball but can't get one? I gotchu. This is a basic python project which replicate

null 3 Jun 24, 2021