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
Install packages with pip as if you were in the past!

A PyPI time machine Do you wish you could just install packages with pip as if you were at some fixed date in the past? If so, the PyPI time machine i

Thomas Robitaille 51 Jan 09, 2023
Shared utility scripts for AI for Earth projects and team members

Overview Shared utilities developed by the Microsoft AI for Earth team The general convention in this repo is that users who want to consume these uti

Microsoft 38 Dec 30, 2022
3D Printed Flip Clock Design and Code

Smart Flip Clock 3D printed smart clock that puts a new twist on old technology. Making The Smart Flip Clock The first thing that must be done for thi

Thomas 105 Oct 17, 2022
FindUncommonShares.py is a Python equivalent of PowerView's Invoke-ShareFinder.ps1 allowing to quickly find uncommon shares in vast Windows Domains.

FindUncommonShares The script FindUncommonShares.py is a Python equivalent of PowerView's Invoke-ShareFinder.ps1 allowing to quickly find uncommon sha

Podalirius 184 Jan 03, 2023
A Python simple Dice Simulator just for fun

Dice Simulator 🎲 A Simple Python Dice Simulator 🧩 🎮 💭 Description: That program make your RPG session more easy and simple. Roll the dice never be

Lauro Brant 17 May 14, 2022
Euler 021 Py - Euler Problem 021 solved in Python

Euler_021_Py Euler Problem 021 solved in Python Let d(n) be defined as the sum o

Ariel Tynan 1 Jan 24, 2022
Repository, with small useful and functional applications

Repositorio,com pequenos aplicativos uteis e funcionais A ideia e ir deselvolvendo pequenos aplicativos funcionais e adicionar a este repositorio List

GabrielDuke 6 Dec 06, 2021
the classic version Of torrentleechx #Unmaintained #Archived

TorrentleechX-Classic Old Modified Version Repo #Unmaintained #Archived for support join here working example group Leech Here For Any Issues/Imroveme

XcodersHub 18 Jan 30, 2022
DD监控室第一版

DD监控室 运行指南

执明神君 1.2k Dec 31, 2022
uMap lets you create maps with OpenStreetMap layers in a minute and embed them in your site.

uMap project About uMap lets you create maps with OpenStreetMap layers in a minute and embed them in your site. Because we think that the more OSM wil

771 Dec 29, 2022
Telegram bot to search quotes from brainyquote.com

Brainy Quote Bot @BrainQuoteBot A star ⭐ from you means a lot to us! Telegram bot to search quotes from brainyquote.com Usage Deploy to Heroku Tap on

21 Nov 24, 2022
【幼盾】个性化图片徽章服务!

【幼盾】个性化图片徽章服务! 你对方形的徽章感到无聊了吗?想要定制属于自己的开源项目徽章了吗? 快来使用unv-shield吧! unv-shield提供包含自定义图片的徽章服务,可以让你的项目主页更加个性化!

黄巍 130 Dec 23, 2022
A simple calculator made with tkinter.

Simple Calculator A simple calculator made with tkinter. Requirements None, only you need to have windows 😉 ...Enjoy! Installation Clone this reposit

Abhyush 2 Jan 11, 2022
Drop-down terminal for GNOME

Guake 3 README Introduction Guake is a python based dropdown terminal made for the GNOME desktop environment. Guake's style of window is based on an F

Guake 4.1k Dec 25, 2022
TrainingBike - Code, models and schematics I've used to interface my stationary training bike with PC.

TrainingBike Code, models and schematics I've used to interface my stationary training bike with PC. You can find more information about the project i

1 Jan 01, 2022
An osu! cheat made in c++ rewritten in python and currently undetected.

megumi-python An osu! cheat made in c++ rewritten in python and currently undetected. Installation Guide Download python 3.9 from https://python.org C

Elaina 2 Nov 18, 2022
A class to draw curves expressed as L-System production rules

A class to draw curves expressed as L-System production rules

Juna Salviati 6 Sep 09, 2022
Яндекс тренировки по алгоритмам. Июнь 2021

Young&&Yandex Тренировки по алгоритмам Если вы хотите попасть на летнюю стажировку в Яндекс, но пока не уверены в своих силах, приходите на наши трени

Podlevskiy Viktor 6 Sep 03, 2021
Hitchhikers-guide - The Hitchhiker's Guide to Data Science for Social Good

Welcome to the Hitchhiker's Guide to Data Science for Social Good. What is the Data Science for Social Good Fellowship? The Data Science for Social Go

Data Science for Social Good 907 Jan 01, 2023
Multi-Process / Censorship Detection

Multi-Process / Censorship Detection

Baris Dincer 2 Dec 22, 2021