{"id":28051482,"url":"https://github.com/felipecrs/volume-locker","last_synced_at":"2026-02-23T05:02:52.433Z","repository":{"id":291890908,"uuid":"979115328","full_name":"felipecrs/volume-locker","owner":"felipecrs","description":"A tray icon app that keeps the volume of your audio devices locked and manages your default audio devices based on a priority list","archived":false,"fork":false,"pushed_at":"2026-02-22T17:51:29.000Z","size":275,"stargazers_count":57,"open_issues_count":3,"forks_count":2,"subscribers_count":1,"default_branch":"master","last_synced_at":"2026-02-22T22:11:32.430Z","etag":null,"topics":["hacktoberfest","mic","rust","volume","volume-lock","windows"],"latest_commit_sha":null,"homepage":"","language":"Rust","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/felipecrs.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":".github/FUNDING.yml","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},"funding":{"github":["felipecrs"]}},"created_at":"2025-05-07T02:49:52.000Z","updated_at":"2026-02-22T17:51:33.000Z","dependencies_parsed_at":"2025-07-11T03:41:50.900Z","dependency_job_id":"f18e2a01-f28d-4e2c-b992-dd9cf90a9aa6","html_url":"https://github.com/felipecrs/volume-locker","commit_stats":null,"previous_names":["felipecrs/volume-locker"],"tags_count":24,"template":false,"template_full_name":null,"purl":"pkg:github/felipecrs/volume-locker","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/felipecrs%2Fvolume-locker","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/felipecrs%2Fvolume-locker/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/felipecrs%2Fvolume-locker/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/felipecrs%2Fvolume-locker/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/felipecrs","download_url":"https://codeload.github.com/felipecrs/volume-locker/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/felipecrs%2Fvolume-locker/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":29738083,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-02-23T04:51:08.365Z","status":"ssl_error","status_checked_at":"2026-02-23T04:49:15.865Z","response_time":90,"last_error":"SSL_connect returned=1 errno=0 peeraddr=140.82.121.5:443 state=error: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"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":["hacktoberfest","mic","rust","volume","volume-lock","windows"],"created_at":"2025-05-12T01:54:16.283Z","updated_at":"2026-02-23T05:02:52.427Z","avatar_url":"https://github.com/felipecrs.png","language":"Rust","funding_links":["https://github.com/sponsors/felipecrs"],"categories":[],"sub_categories":[],"readme":"\u003cimg align=\"right\" width=\"200\" alt=\"Volume Locker\" src=\"https://github.com/user-attachments/assets/80473f4a-f901-440b-9d7b-5003ef1c96c7\" /\u003e\n\n\u003cp align=\"center\"\u003e\n⭐\u003cb\u003ePlease star this project in GitHub if it helps you!\u003c/b\u003e⭐\n\u003c/p\u003e\n\n# Volume Locker\n\nTired of apps changing your microphone volume without your consent? Or Windows constantly switching to the wrong audio device?\n\nVolume Locker is a tray icon app that keeps the volume of your audio devices locked and manages your default audio devices based on a priority list. It is a portable, ~1MB binary written in Rust for Windows.\n\nNever worry about your microphone volume or default device again!\n\n## Demo\n\nhttps://github.com/user-attachments/assets/b7e47898-ee9f-42b4-a804-f107beac4e98\n\n## Getting Started\n\nSimply grab the executable from the [releases page](https://github.com/felipecrs/volume-locker/releases), place it somewhere like `C:\\Apps\\Volume Locker\\Volume Locker.exe` and run it.\n\nOr you can copy and paste this into _Windows PowerShell_, and execute:\n\n```powershell\nNew-Item -ItemType Directory -Path 'C:\\Apps\\Volume Locker' -Force \u003e$null; `\n  Get-Process | Where-Object { $_.Path -eq 'C:\\Apps\\Volume Locker\\VolumeLocker.exe' } | Stop-Process; `\n  curl.exe --progress-bar --location --output 'C:\\Apps\\Volume Locker\\VolumeLocker.exe' `\n  'https://github.com/felipecrs/volume-locker/releases/latest/download/VolumeLocker.exe'; `\n  Start-Process 'C:\\Apps\\Volume Locker\\VolumeLocker.exe'\n```\n\nYou can also use the snippet above to update the app, just run it again.\n\n## Usage\n\nClick on the Volume Locker tray icon to access the menu. The menu is organized into the following sections:\n\n1.  **Output devices**: List of all active output devices.\n2.  **Input devices**: List of all active input devices.\n3.  **Default output device priority**: Manage the priority list for default output devices.\n4.  **Default input device priority**: Manage the priority list for default input devices.\n5.  **Temporary default device priority**: Temporarily override the default device priority.\n\n### Locking Volume and Unmute State\n\nTo lock the volume or unmute state of a specific device:\n\n1.  Navigate to **Output devices** or **Input devices**.\n2.  Select the desired device.\n3.  Check **Keep volume locked** to lock the volume at the current level.\n4.  Check **Keep unmuted** to prevent the device from being muted.\n5.  You can also enable notifications for these actions.\n\n### Default Device Priority\n\nVolume Locker can automatically switch your default audio device based on a priority list. This is useful if you have multiple devices (e.g., speakers and headphones) and want to ensure a specific one is always used when available.\n\n1.  Navigate to **Default output device priority** or **Default input device priority**.\n2.  Select **Add device** to add a device to the priority list.\n3.  Use **Move Up** and **Move Down** to adjust the priority order. The device at the top has the highest priority.\n4.  Volume Locker will monitor your devices and automatically switch the default device to the highest priority one available.\n5.  Check **Notify on restore** to get a notification when the default device is switched.\n6.  Check **Also switch default communication device** to also switch the default communication device.\n\n### Temporary Default Device Priority\n\nIf you want to temporarily use a different device without changing your priority list (e.g., switching to speakers for a call while the headphones are connected), you can use the **Temporary default device priority** feature.\n\n1.  Navigate to **Temporary default device priority**.\n2.  Select **Output device** or **Input device**.\n3.  Choose the device you want to use temporarily.\n4.  This device will be treated as the highest priority device until you uncheck it or restart the application.\n\n## Credits\n\nVolume Locker started as my first Rust project, born from the dissatisfaction with existing solutions that relied on closed-source tools or lacked specific device locking capabilities. It has since evolved to include advanced features like default device priority management.\n\nI used [wolfinabox/Windows-Mic-Volume-Locker](https://github.com/wolfinabox/Windows-Mic-Volume-Locker) for years before deciding to write my own solution.\n\nI was inspired by [AntoineGS/teams-status-rs](https://github.com/AntoineGS/teams-status-rs) being so amazing in such a lightweight package. I wanted to do something similar, but for volume locking.\n\nSpecial thanks to:\n\n- [Kingloo/volume](https://github.com/Kingloo/volume) for the Windows volume control code foundation.\n- [tauri-apps/tray-icon](https://github.com/tauri-apps/tray-icon) for the tray icon implementation.\n- [GitHub Copilot](https://github.com/copilot/) for assisting with the code structure, syntax, and feature implementation.\n- [@jmb](https://github.com/jmb) for the [great icon design](https://github.com/Templarian/MaterialDesign/issues/7714).\n\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ffelipecrs%2Fvolume-locker","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Ffelipecrs%2Fvolume-locker","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ffelipecrs%2Fvolume-locker/lists"}