Skip to content

Julynx/pyms

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

97 Commits
 
 
 
 
 
 
 
 
 
 

Repository files navigation

pyms

Minimal command-line music player written in Python.



Dependencies

pyms uses pygame, pynput, cursor & mutagen, with version numbers provided in the file requirements.txt.

It has been tested with Python 3.10.6, results may vary if other versions are used.

Installation

The following commands will download the latest version of pyms from this repository and install it in your /usr/bin/ directory:

git clone https://github.com/Julynx/pyms
cd pyms
pip3 install -r requirements.txt
sudo chmod +x pyms
sudo mv pyms /usr/bin/

The program can now be ran from a terminal with the command pyms.

Usage

Usage: 
    pyms [OPTIONS]          Play a random song from '~/Music'.
    pyms [FILE] [OPTIONS]   Play a specific song.
    pyms [DIR.] [OPTIONS]   Play a random song from a directory.

OPTION:
    --update-interval=<X>   Redraw the UI every X seconds.
    --no-infinite-queue     Stop playback when the song ends.
    --no-clear              Don't clear the screen between UI updates.
                              This may help prevent flickering on 
                              some terminals.
    -h, --help              Print this message and exit.
    -v, --version           Print version information and exit.

Changelog

  • [1.1.7] Reduce polling rate to 2 fps to reduce flickering on some terminal emulators.
  • [1.1.8] Reintroduce the SIGWINCH signal handler to allow for instant UI redraws when the window is resized instead of having to wait for the next redraw to take place.
  • [1.1.9] Implement a configuration file command line flags to store set the update interval, the redraw strategy, the keybindings enable / disable the infinite queue and other relevant options.
  • [1.2.0] Configurable keybindings and maybe some other stuff. Fast fwd/bwd buttons + improved UI sprites!
  • [1.2.1] Fixed some issues with the infinite queue and folders with only one song.
  • [1.2.2] Improved the error messages.
  • [1.2.3] Code linting.
  • [1.2.4] Minor bugfixes related to SIGINT.