{"id":24694440,"url":"https://github.com/jackplus-xyz/player-one.nvim","last_synced_at":"2025-03-22T03:14:43.319Z","repository":{"id":273036717,"uuid":"917314772","full_name":"jackplus-xyz/player-one.nvim","owner":"jackplus-xyz","description":"A plugin that adds 8-bit sound effects to Neovim.","archived":false,"fork":false,"pushed_at":"2025-03-05T17:47:22.000Z","size":145,"stargazers_count":72,"open_issues_count":2,"forks_count":0,"subscribers_count":2,"default_branch":"main","last_synced_at":"2025-03-19T22:16:38.587Z","etag":null,"topics":["neovim","neovim-lua-plugin","neovim-plugin"],"latest_commit_sha":null,"homepage":"","language":"Lua","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/jackplus-xyz.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}},"created_at":"2025-01-15T18:50:25.000Z","updated_at":"2025-03-13T09:46:48.000Z","dependencies_parsed_at":"2025-01-18T07:39:35.421Z","dependency_job_id":"4403da60-8412-4734-b77c-62e5e66a9b95","html_url":"https://github.com/jackplus-xyz/player-one.nvim","commit_stats":null,"previous_names":["jackplus-xyz/player-one.nvim"],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jackplus-xyz%2Fplayer-one.nvim","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jackplus-xyz%2Fplayer-one.nvim/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jackplus-xyz%2Fplayer-one.nvim/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jackplus-xyz%2Fplayer-one.nvim/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/jackplus-xyz","download_url":"https://codeload.github.com/jackplus-xyz/player-one.nvim/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":244898458,"owners_count":20528341,"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","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":["neovim","neovim-lua-plugin","neovim-plugin"],"created_at":"2025-01-26T23:59:19.862Z","updated_at":"2025-03-22T03:14:43.311Z","avatar_url":"https://github.com/jackplus-xyz.png","language":"Lua","funding_links":[],"categories":[],"sub_categories":[],"readme":"# player-one.nvim\n\nA plugin that adds 8-bit sound effects to Neovim.\n\n\u003cimg width=\"1280\" alt=\"banner\" src=\"https://github.com/user-attachments/assets/dae84cd4-a031-43a2-9f42-c3ef494c1af0\" /\u003e\n\n## Demo\n\n\u003e [!NOTE]\n\u003e Make sure you have sounds on!\n\nhttps://github.com/user-attachments/assets/f72a038f-507c-49cc-9506-37494cbf8ed8\n\n## Overview\n\n`player-one.nvim` is a plugin that generates 8-bit sound effects on the fly, no audio files required! It enhances your editing experience with retro-style audio feedback for various Neovim events.\n\n## Features\n\n- Built-in sound themes\n- Event-based sound triggers\n- Performance focused\n- Extensive customization\n\n## Requirements\n\n- [Neovim](https://neovim.io/) \u003e= 0.9.0\n- Audio Output Device: Working audio output (speakers/headphones)\n- Rust toolchain if you want to build from source\n\n### System Support Status\n\n\u003e [!WARNING]\n\u003e This plugin is currently in beta. If you encounter any issues, please:\n\u003e\n\u003e 1. Run `:checkhealth player-one` and copy the output\n\u003e 2. [Open an issue](https://github.com/jackplus-xyz/player-one.nvim/issues/new) with the health check results and steps to reproduce\n\n| Operating System | Status | Notes                        |\n| ---------------- | ------ | ---------------------------- |\n| macOS            | ✅     | Tested on macOS Sequoia 15.2 |\n| Linux            | ⚠️     | Not tested                   |\n| Windows          | ⚠️     | Not tested                   |\n\n## Quickstart\n\n1. Install with a plugin manager of your choice.\n\n2. Restart NeoVim and you should now hear:\n\n   - A startup melody when Neovim launches\n   - Typing sounds in insert mode\n   - Save confirmation sounds\n   - And more!\n\n## Installation\n\nUsing [lazy.nvim](https://github.com/folke/lazy.nvim):\n\n```lua\n{\n  \"jackplus-xyz/player-one.nvim\",\n  ---@type PlayerOne.Config\n  opts = {\n    -- your configuration comes here\n    -- or leave it empty to use the default settings\n    -- refer to the configuration section below\n  }\n}\n```\n\n## Configuration\n\n`player-one.nvim` comes with the following default configuration:\n\n```lua\n---@class PlayerOne.Config\n{\n  ---@type boolean Whether the sound theme is enabled\n  is_enabled = true,\n\n  ---@type number Minimum interval between sounds in seconds\n  ---Prevents sound overlapping and potential audio flooding when\n  ---multiple keystrokes happen in rapid succession\n  min_interval = 0.05,\n\n  ---@type PlayerOne.Theme|string Either a preset name or custom sounds table\n  ---Available presets: \"chiptune\", \"crystal\", \"synth\"\n  theme = \"chiptune\",\n\n  ---@type boolean Whether to print the debug message\n  debug = false,\n\n  ---@class PlayerOne.BinaryConfig\n  binary = {\n    -- Automatically download updates (default: true)\n    auto_update = true,\n\n    -- Version cache timeout in seconds (default: 3600)\n    cache_timeout = 3600,\n\n    -- Download timeout in seconds (default: 60)\n    download_timeout = 60,\n\n    -- Verify binary checksums (default: true)\n    verify_checksum = true,\n\n    -- Use development build if available (default: true)\n    use_development = true,\n\n    -- GitHub API token for higher rate limits (default: nil)\n    github_api_token = nil,\n\n    -- Proxy configuration\n    proxy = {\n      -- Proxy URL (default: nil)\n      url = nil,\n\n      -- Use system proxy settings (default: true)\n      from_env = true,\n    },\n  },\n}\n```\n\nExample:\n\n```lua\n{\n  \"jackplus-xyz/player-one.nvim\",\n  opts = {\n  is_enabled = false, -- Start with sounds disabled until explicitly enabled\n  min_interval = 0.1, -- Increase delay between sounds to 100ms\n  theme = \"synth\",    -- Use the synthesizer sound theme\n  }\n}\n```\n\nFor advanced configuration, see [Wiki](https://github.com/jackplus-xyz/player-one.nvim/wiki).\n\n### Theme\n\nThe plugin comes with three built-in themes:\n\n- `chiptune`: Classic 8-bit game sounds (default)\n- `crystal`: Clear, crystalline sounds with sparkling tones\n- `synth`: Modern synthesizer sounds with smooth tones\n\nTo create your own theme, see [Theme](https://github.com/jackplus-xyz/player-one.nvim/wiki/Theme).\n\n## Usage\n\n### Commands\n\n| Command                  | Description                           |\n| ------------------------ | ------------------------------------- |\n| `:PlayerOneEnable`       | Enable sound theme                    |\n| `:PlayerOneDisable`      | Disable sound theme                   |\n| `:PlayerOneToggle`       | Toggle sound theme                    |\n| `:PlayerOneLoad {theme}` | Load a theme (chiptune/crystal/synth) |\n| `:PlayerOneClearCache`   | Clear the PlayerOne binary cache      |\n| `:PlayerOneUpdate`       | Update the PlayerOne binary           |\n\n## Roadmap\n\n- [ ] Performance optimizations\n  - [ ] Implement caching for frequently used sounds\n- [ ] Documentation Improvements\n  - [ ] Add detailed API reference\n  - [ ] Include code examples\n- [ ] Test Coverage Expansion\n  - [ ] Unit tests for core components\n  - [ ] Integration tests\n  - [ ] Performance benchmarks\n- [ ] Multi-track melody playback\n\n## Credits\n\n### Resources\n\n- [sfxr](https://www.drpetter.se/project_sfxr.html): The original sfxr by DrPetter.\n- [jsfxr](https://sfxr.me/): An online 8 bit sound maker and sfx generator.\n\n### Libraries\n\n- [mlua-rs/mlua](https://github.com/mlua-rs/mlua): High level Lua 5.4/5.3/5.2/5.1 (including LuaJIT) and Roblox Luau bindings to Rust with async/await support.\n- [bzar/sfxr-rs](https://github.com/bzar/sfxr-rs): Reimplementation of DrPetter's \"sfxr\" sound effect generator as a Rust library.\n\n### Inspirations\n\n- [Klack](https://tryklack.com/): A MacOS app that adds mechanical keyboard sounds to every keystroke.\n- [EggbertFluffle/beepboop.nvim](https://github.com/EggbertFluffle/beepboop.nvim): A Neovim plugin that incorporate audio cues.\n- [jackplus-xyz/love2jump](https://github.com/jackplus-xyz/love2jump): A 2D platformer game built with [LÖVE](https://www.love2d.org/) framework in Lua. This is my personal project to learn the fundamentals of game development. I got the idea of generating 8 bits notes and melody with [love.audio](https://love2d.org/wiki/love.audio), making this game free of audio file.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fjackplus-xyz%2Fplayer-one.nvim","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fjackplus-xyz%2Fplayer-one.nvim","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fjackplus-xyz%2Fplayer-one.nvim/lists"}