Control your favorite music players with ease from within Neovim.
Music Controls is a Neovim plugin that allows you to easily control your favorite
music players from within Neovim. The plugin basically acts as a wrapper around
playerctl
, a command-line utility that can control media players.
This makes almost any music player compatible with Music Controls, ranging from
Spotify to VLC, etc.
I created Music Controls to make it more convenient and efficient to control my music player while working within Neovim. Instead of constantly switching workspaces or opening a terminal to control my music player, I can use this plugin to do it all within Neovim. You might say that I'm lazy, some say I'm not 😉!
I hope that others who have similar needs will find Music Controls useful as well.
This example uses lazy.nvim to install/load the plugin. Other plugin managers can be used as well.
{
'AntonVanAssche/music-controls.nvim',
dependencies = { 'rcarriga/nvim-notify' }
}
Music Controls requires playerctl
to be installed in order to work properly.
Optionally, you can specify a default music player by adding the following code
to your init.lua
file:
{
'AntonVanAssche/music-controls.nvim',
dependencies = { 'rcarriga/nvim-notify' },
opts = {
default_player = 'spotify'
}
}
The example above sets Spotify as the default music player. If you don't specify a default player, Music Controls requires you to specify a player. Refer to the commands section for more information.
For more information, refer to the documentation by typing :h MusicControls
.
MusicCurrent
:MusicCurrent [player]
:MusicCurrent spotify
MusicCurrentVolume
:MusicCurrentVolume [player]
:MusicCurrentVolume spotify
MusicListPlayers
:MusicListPlayers
:MusicListPlayers
MusicLoop
:MusicLoop [player] [mode]
Track
(Default)None
Playlist
:MusicLoop spotify Playlist
MusicLoopToggle
None
and Track
.:MusicLoopToggle [player]
:MusicLoopToggle spotify
MusicNext
:MusicNext [player] [amount]
:MusicNext spotify 2
MusicPause
:MusicPause [player]
:MusicPause spotify
MusicPlay
:MusicPlay [player]
:MusicPlay spotify
MusicPrevious
:MusicPrevious [player] [amount]
:MusicPrevious spotify 2
MusicSetVolume
:MusicSetVolume [player] [volume]
:MusicSetVolume spotify 0.5
MusicShuffle
:MusicShuffle [player]
:MusicShuffle spotify
Note: This feature requires a
default_player
to be configured.
Music Controls provides integration with statusline plugins such as lualine and galaxyline, allowing you to display the current music player status directly within your statusline.
This example demonstrates how to integrate Music Controls with lualine. Other statusline plugins can be used as well, and the process should be similar. Refer to the documentation of your statusline plugin for more information.
require('lualine').setup {
sections = {
lualine_x = {
require("music-controls")._statusline,
}
}
}
An example of the statusline with Music Controls integrated:
Music Controls is licensed under the MIT License. See the LICENSE.md file for more information.
Contributions are welcome! Please feel free to submit a pull request or open an issue for any bugs or feature requests.