MyNixOS website logo
Description

A TUI MPD client, inspired by ncmpcpp.

A TUI MPD client, inspired by ncmpcpp. Built using brick and libmpd.

Hum: a Haskell Music Manager

A TUI mpd client, currently in beta and under active development.

The plan is to basically reimplement ncmpcpp in haskell (at least featurewise). The reasons are as follows:

  • Haskell is much more fun than C++
  • I find the tag editor of ncmpcpp to be lacking and want to change it
  • Generally, I want to change some stuff with the UI
  • It's faster (try scrolling down the artists in the library in both programs)
  • I wanted to design the program around vim style bindings
  • I don't know C++

Installation

As this is an MPD client, you will need to install mpd from your favorite package manager.

You can install hum either by running cabal install hum to install directly from hackage, or by cloning the repo and running cabal install from within it.

Features

Current

  • playback keys
  • Viewing the Queue, Library, and Playlists screens
  • Editing the Queue with vim like cut copy and paste
  • adding and bulk adding songs from the Library and Play nlists
  • vim style search
  • a help command
  • playlist editing

Planned

  • better documentation
  • tag info and editing
  • mpdish file browser and more advanced search
  • visualizer because why not
  • having a random mode when you can see what the next song is
  • making the UI nicer
  • more commands
  • more vimmy keybindings (e.g. 10j, perhaps making y and d verbs)
  • doing stuff with album art using uegerzug
  • config file

For a list of all the keybindings and ex style commands, type :help and press RET.

Metadata

Version

0.2.0.0

Platforms (75)

    Darwin
    FreeBSD
    Genode
    GHCJS
    Linux
    MMIXware
    NetBSD
    none
    OpenBSD
    Redox
    Solaris
    WASI
    Windows
Show all
  • aarch64-darwin
  • aarch64-genode
  • aarch64-linux
  • aarch64-netbsd
  • aarch64-none
  • aarch64_be-none
  • arm-none
  • armv5tel-linux
  • armv6l-linux
  • armv6l-netbsd
  • armv6l-none
  • armv7a-darwin
  • armv7a-linux
  • armv7a-netbsd
  • armv7l-linux
  • armv7l-netbsd
  • avr-none
  • i686-cygwin
  • i686-darwin
  • i686-freebsd
  • i686-genode
  • i686-linux
  • i686-netbsd
  • i686-none
  • i686-openbsd
  • i686-windows
  • javascript-ghcjs
  • loongarch64-linux
  • m68k-linux
  • m68k-netbsd
  • m68k-none
  • microblaze-linux
  • microblaze-none
  • microblazeel-linux
  • microblazeel-none
  • mips-linux
  • mips-none
  • mips64-linux
  • mips64-none
  • mips64el-linux
  • mipsel-linux
  • mipsel-netbsd
  • mmix-mmixware
  • msp430-none
  • or1k-none
  • powerpc-netbsd
  • powerpc-none
  • powerpc64-linux
  • powerpc64le-linux
  • powerpcle-none
  • riscv32-linux
  • riscv32-netbsd
  • riscv32-none
  • riscv64-linux
  • riscv64-netbsd
  • riscv64-none
  • rx-none
  • s390-linux
  • s390-none
  • s390x-linux
  • s390x-none
  • vc4-none
  • wasm32-wasi
  • wasm64-wasi
  • x86_64-cygwin
  • x86_64-darwin
  • x86_64-freebsd
  • x86_64-genode
  • x86_64-linux
  • x86_64-netbsd
  • x86_64-none
  • x86_64-openbsd
  • x86_64-redox
  • x86_64-solaris
  • x86_64-windows