NekoMC (New Efficient Kitten-oriented MPRIS Client)

Overview

NekoMC (New Efficient Kitten-oriented MPRIS Client)

bar image

a waybar/general component for displaying current song data in bars like waybar and controling players using MPRIS

MPRIS is very widely supported, so this component should work with:

  • Firefox and Firefox based Browsers like Librewolf
  • Browsers based on Chromium
  • Spotify
  • mpd (with mpDris2)
  • VLC ( For People that don't use MPV in 2023 )
  • Basically every other Music/Video player on the face of Earth

Install

Run sh <(curl -L https://raw.githubusercontent.com/Insert5StarName/NekoMC/main/install.sh) in your Terminal or

Get the latest release binary and move it to /usr/bin or your PATH or compile it yourself

Compile your self

Clone this Repo and Install the needed dependencies (if you use NixOS you can use nix-shell)

  • Rust (Cargo, Rustc)
  • Dbus
  • Pkgconfig

then compile the programm with cargo build --release and then copy the file that is located at ./target/release/NekoMC to /usr/bin or your PATH

Usage

When running NekoMC with --hook-waybar it will print out the current song info in a JSON format that Waybar can use. Add something like this to your waybar config.json:

"custom/NekoMC": {
          "return-type":"json",
          "exec":"NekoMC --hook-waybar",
          "on-click":"NekoMC --toggle",
          "on-click-right":"NekoMC --next",
          "on-scroll-up":"NekoMC --next",
          "on-scroll-down":"NekoMC --previous",
          "escape" : "true",
},
Usage: ./NekoMC [option]
NekoMC - New Efficient Kitten-oriented MPRIS Client

Options:
--hook           Print currently playing song info (name, artist, status) in a Loop.
--hook-waybar    Print currently playing song info in Waybar module format in a Loop.
--current-song   Print currently playing song info but not looped like the first 2 options. 
--play           Tell the player to resume playing.
--pause          Tell the player to pause.
--next           Tell the player to play the next song.
--previous       Tell the player to play the previous song.
--toggle         Toggle between playing and pause.
You might also like...
Data-oriented and data-driven game engine written in Rust
Data-oriented and data-driven game engine written in Rust

What is Amethyst? Amethyst is a data-driven and data-oriented game engine aiming to be fast and as configurable as possible. Principles These principl

Zellij is a workspace aimed at developers, ops-oriented people and anyone who loves the terminal
Zellij is a workspace aimed at developers, ops-oriented people and anyone who loves the terminal

Zellij is a workspace aimed at developers, ops-oriented people and anyone who loves the terminal. At its core, it is a terminal multiplexer (similar to tmux and screen), but this is merely its infrastructure layer.

Totally Speedy Transmute (TST) is a library providing a small, performance oriented, safe version of std::mem::transmute

Totally Speedy Transmute An evil spiritual successor to Totally Safe Transmute What is it? Totally Speedy Transmute (TST) is a library providing a sma

Educational Rust implemenation of Auction Sniper from Growing Object-Oriented Software, Guided By Tests

Auction Sniper Educational Rust not-OOP implemenation of Auction Sniper from "Growing Object-Oriented Software, Guided By Tests" book More about it in

A library for comparing data structures in Rust, oriented toward testing

Delta: Structural differencing in Rust The delta crate defines the trait Delta, along with a derive macro for auto-generating instances of this trait

Cryptography-oriented big integer library with constant-time, stack-allocated (no_std-friendly) implementations of modern formulas

RustCrypto: Cryptographic Big Integers Pure Rust implementation of a big integer library which has been designed from the ground-up for use in cryptog

A library for comparing data structures in Rust, oriented toward testing

The comparable crate defines the trait [Comparable], along with a derive macro for auto-generating instances of this trait for most data types. Primar

Aspect-oriented programming in Rust

Aspect Oriented Programming (AOP) for Rust The needs of AOP Aspect-oriented programming (AOP) is a programming paradigm that aims to increase modulari

Subtext is a text-based, block-oriented hypertext format.
Subtext is a text-based, block-oriented hypertext format.

Subtext: markup for note-taking Subtext is a text-based, block-oriented hypertext format. It is designed with note-taking in mind. It has a simple, pe

A real-time event-oriented data-hub

Redcar A real-time event-oriented data-hub, inspired by the data hub. It is: Universal: the front end uses gRPC to provide services. Fast: benchmarked

Oinky - A blazing fast, data-oriented static site generator.

Oinky Oinky is a static site generator, written in Rust, that compiles Handlebars templates and Markdown files into a static site. Oinky also enables

Qoo - Query Object Oriented. Pronunciation is Kuu.

qoo Query Object Oriented. Pronunciation is Kuu. demo use qoo::base::*; use qoo::select::*; use qoo::insert::*; use qoo::update::*; use qoo::delete::*

Index-Oriented Programming in Rust

id_collections: Index-Oriented Programming in Rust Download: crates.io/crates/id_collections Docs: docs.rs/id_collections It is common in Rust to defi

Generic and extensible egui widgets to create analog synthesizer-like UI with data-oriented API
Generic and extensible egui widgets to create analog synthesizer-like UI with data-oriented API

egui_cable A generic and extensible data-oriented widget for connecting ports by cables. I create this for the visual programming editor of Hihaheho/D

Enterprise-oriented Generic Proxy Solutions

G3 Project 中文版 README About This is the project we used to build enterprise-oriented generic proxy solutions, including but not limited to proxy / rev

Service-Oriented Design Patterns for Rust

SOD: Service-Oriented Design Overview This crate provides Service, MutService, and AsyncService traits and associated utilities to facilitiate service

Meteor Client Installer - Installer to automate the install of Fabric and Meteor Client
Meteor Client Installer - Installer to automate the install of Fabric and Meteor Client

This is an installer that automates the install of Meteor and Fabric

Provides a mock Ambi client that emulates real sensor hardware such as an Edge client

ambi_mock_client Provides a mock Ambi client that emulates real sensor hardware such as an Edge client. Usage You must have Rust installed to build am

Affine-client is a client for AFFINE based on Tauri
Affine-client is a client for AFFINE based on Tauri

Affine Client affine-client is a client for AFFINE based on Tauri Supported Platforms Windows Linux MacOS Download https://github.com/m1911star/affine

Comments
  • TODO: Things To add for the Next Versions

    TODO: Things To add for the Next Versions

    • Configurable Text Format and Icons
    • Configurable amount of dont_fry_my_cpu
    • CLI argument for setting config file
    • Configurable Scrolling text
    • Option to enable showing the module with Text like "No active Song" when no player is available

    if you got suggestions leave em

    opened by Insert5StarName 1
Releases(1.0)
Owner
Insert5StarName
Insert5StarName
Exposing MPRIS V2.1 D-Bus interface for mpd

mpdris2-rs A lightweight implementation of MPD to D-Bus bridge, which exposes MPD player and playlist information onto MPRIS2 interface so other progr

Leo Shen 5 Nov 21, 2022
Gtk/Rust native Spotify client for the GNOME desktop.

Gtk/Rust native Spotify client for the GNOME desktop.

Alexandre Trendel 1.7k Jan 1, 2023
Psst - Fast and multi-platform Spotify client with native GUI

Psst Fast Spotify client with native GUI, without Electron, built in Rust. Very early in development, lacking in features, stability, and general user

Jan Pochyla 7.2k Jan 2, 2023
ncspot is a ncurses Spotify client written in Rust using librespot.

ncspot is a ncurses Spotify client written in Rust using librespot. It is heavily inspired by ncurses MPD clients, such as ncmpc. My motivation was to provide a simple and resource friendly alternative to the official client as well as to support platforms that currently don't have a Spotify client, such as the *BSDs.

Henrik Friedrichsen 3.4k Jan 8, 2023
Very simple, efficient, task oriented, low cognitive, Midi player and jukebox for midi instruments

Midi and Virtual Book jukebox Player A cross-platform MIDI and virtual book jukebox player. It only includes the necessary functionalities to play MID

Barrel Organ Discovery 4 Jun 29, 2023
Exposing MPRIS V2.1 D-Bus interface for mpd

mpdris2-rs A lightweight implementation of MPD to D-Bus bridge, which exposes MPD player and playlist information onto MPRIS2 interface so other progr

Leo Shen 5 Nov 21, 2022
Implement MPRIS D-Bus interface in your application

MPRIS Server Implement MPRIS D-Bus interface in your application. This library provides the essential functionalities for implementing the MPRIS D-Bus

Dave Patrick Caberto 12 Sep 21, 2023
CLI utility to move (or rename) your files to a new location and redirect all of its symbolic links, to the new path

Move Links CLI utility to move (or rename) your files to a new location and redirect all of its symbolic links, to the new path (or name). Usage execu

Ben Mefteh 18 May 22, 2022
Shell Of A New Machine: Quickly configure new environments

Shell Of A New Machine soanm is a dead-simple tool for easily configuring new UNIX machines, with almost zero prerequisites on the target machine. All

Ben Weinstein-Raun 41 Dec 22, 2022
A Gecko-oriented implementation of the Encoding Standard in Rust

encoding_rs encoding_rs an implementation of the (non-JavaScript parts of) the Encoding Standard written in Rust and used in Gecko (starting with Fire

Henri Sivonen 284 Dec 13, 2022