{"id":33289529,"url":"https://github.com/jmatth11/player.nvim","last_synced_at":"2025-11-17T22:03:32.782Z","repository":{"id":324294692,"uuid":"1072586473","full_name":"jmatth11/player.nvim","owner":"jmatth11","description":"A simple plugin to play local audio/music through neovim","archived":false,"fork":false,"pushed_at":"2025-11-14T23:07:40.000Z","size":1283,"stargazers_count":4,"open_issues_count":0,"forks_count":0,"subscribers_count":0,"default_branch":"main","last_synced_at":"2025-11-15T00:17:40.913Z","etag":null,"topics":["audio","music","nvim","player","zig"],"latest_commit_sha":null,"homepage":"","language":"C","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/jmatth11.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2025-10-08T23:53:10.000Z","updated_at":"2025-11-14T23:07:38.000Z","dependencies_parsed_at":null,"dependency_job_id":null,"html_url":"https://github.com/jmatth11/player.nvim","commit_stats":null,"previous_names":["jmatth11/player.nvim"],"tags_count":5,"template":false,"template_full_name":null,"purl":"pkg:github/jmatth11/player.nvim","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jmatth11%2Fplayer.nvim","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jmatth11%2Fplayer.nvim/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jmatth11%2Fplayer.nvim/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jmatth11%2Fplayer.nvim/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/jmatth11","download_url":"https://codeload.github.com/jmatth11/player.nvim/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jmatth11%2Fplayer.nvim/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":284964283,"owners_count":27091965,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","status":"online","status_checked_at":"2025-11-17T02:00:06.431Z","response_time":55,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["audio","music","nvim","player","zig"],"created_at":"2025-11-17T22:01:33.817Z","updated_at":"2025-11-17T22:03:32.777Z","avatar_url":"https://github.com/jmatth11.png","language":"C","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Player.nvim\n\nSimple plugin to play local audio files through neovim. (currently only tested on linux-like environments)\n\n## Contents\n\n- [Dependencies](#dependencies)\n    - [Build Dependencies](#build-dependencies)\n- [Building](#building)\n- [Configure](#configure)\n- [Usage](#usage)\n    - [Recommended Mappings](#recommended-mappings)\n    - [Manual Controls](#manual-controls)\n- [Screenshots](#screenshots)\n- [Demo](#demo)\n- [Known Issues](#known-issues)\n\n## Dependencies\n\n- [`nvim-lua/plenary.nvim`](https://github.com/nvim-lua/plenary.nvim) - for window management.\n\n### Build Dependencies:\n\nThis project requires either option A or option B dependencies to be installed\non the user's system to build the project.\n\nOption A:\n- [Zig](https://github.com/ziglang/zig) v0.15.2\n\nOption B:\n- [Curl](https://github.com/curl/curl)\n- [Tar](https://www.gnu.org/software/tar/)\n\n## Building\n\nThis project uses [Zig](https://github.com/ziglang/zig) but you don't need to\nhave Zig installed to build.\n\nUse the `build.sh` script to build the project.\n\nThis script will check if Zig already exists on the system. If Zig does not exist\nor if the system Zig is the wrong version, the script will download the correct\nZig executable temporarily to build. Once the build is complete, the\ntemporary Zig executable will be removed.\n\n## Configure\n\nLazy.nvim\n```lua\n  'jmatth11/player.nvim',\n  -- build script may take a some time if you don't already have zig on your system\n  build = \"./build.sh\",\n  -- Required to properly setup the player.\n  config = true,\n  dependencies = {\n    \"nvim-lua/plenary.nvim\", -- required for window management\n  },\n```\n\nSetup options:\n\n```lua\n{\n  -- Set the parent directory for your audio files.\n  -- default is home directory\n  parent_dir = vim.env.HOME,\n  -- The scale at which the volume increments and decrements.\n  -- default is 5\n  volume_scale = 5,\n  -- Flag to redraw the player info window every second when it's open.\n  -- Default is true.\n  live_update = true,\n  -- Search for songs in the parent directory recursively.\n  -- Default is false.\n  recursive = false,\n}\n```\n\n## Usage\n\nThe plugin is configured to kill the player automatically when you exit neovim.\nSo there is no need to call it yourself.\n\n### Recommended Mappings\n\n```lua\n-- \u003cleader\u003epp to toggle the player info window.\nvim.keymap.set(\n    \"n\",\n    \"\u003cleader\u003epp\",\n    \":lua require('player').player_info()\u003cCR\u003e\",\n    {noremap = true},\n)\n-- \u003cleader\u003epf to toggle the file select window.\nvim.keymap.set(\n    \"n\",\n    \"\u003cleader\u003epf\",\n    \":lua require('player').file_select()\u003cCR\u003e\",\n    {noremap = true},\n)\n```\n\nUsing the player info window or the file select window is the recommended way\nto interact with this plugin. These windows display their respective\nkey-bindings to perform tasks.\n\nThe player info window allows you to control the pause/resume/stop action of\nthe song as well as increasing or lowering the volume.\n\nThe file select window displays all the songs from your parent directory and allows\nyou press `\u003cENTER\u003e` to start playing a song from the list.\n\n### Manual Controls\n\nPlay a song.\n\nThis function will prepend the parent directory set in the setup options.\nSo you only need to pass the filename relative to that point.\n\n```lua\nrequire('player').play(\u003csong name\u003e)\n```\n\nControlling pause/resume.\n\n```lua\nrequire('player').pause()\nrequire('player').resume()\n```\n\nControlling volume.\n\n```lua\nrequire('player').volume_up()\nrequire('player').volume_down()\n```\n\nOpen control windows.\n\n```lua\n-- The player info on the currently playing song.\nrequire('player').player_info()\n-- The file selection window of the music within your parent directory.\nrequire('player').file_select()\n```\n\n## Screenshots\n\n![player info window](references/player-info.png \"Player Info Window\")\n\n![file selection window](references/file-selection.png \"File Selection Window\")\n\n## Demo\n\nhttps://github.com/user-attachments/assets/5a35b49d-d420-4d13-be69-13637d7cc59b\n\n## Known issues\n\n- Audio playback on WSL is not great and sometimes becomes very choppy.\n  [ref](https://github.com/microsoft/wslg/issues/908)\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fjmatth11%2Fplayer.nvim","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fjmatth11%2Fplayer.nvim","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fjmatth11%2Fplayer.nvim/lists"}