Package: keyboardsounds
Keyboard SoundsThis python package will add the ability to play sounds while typing anywhere on your system. You can also createCustom Profilesfor customized audio when typing.Preview VideoClick to view a preview of the application.InstallationPython 3.7or higher is required for this application to function. SeeDownload Pythonfor more information on installing Python on your system.Once you have Python installed, you can install this application by running the following command.$pipinstallkeyboardsoundsPlatform SupportWindowsLinuxmacOS✅ Supported✅ Supported❓ Not TestedDefault Sound ProfilesBy default, Keyboard Sounds comes with the following profiles pre-loaded.NameAuthorDescriptionalpacakbsimSample of an Alpaca Mechanical Keyboardgateron-black-inkkbsimSample of Gateron Black Ink key switchesgateron-red-inkkbsimSample of Gateron Red Ink key switchesholy-pandakbsimSample of Holy Panda key switchesiosApple, Inc. (Sampled)Simulates the sounds made by an iPhone or iPad keyboard.mx-blackkbsimSample of Cherry MX Black key switchesmx-bluekbsimSample of Cherry MX Blue key switchesmx-brownkbsimSample of Cherry MX Brown key switchesmx-speed-silverMechvibes CommunitySample audio of MX Speed Silver key switchestelios-v2Mechvibes CommunitySample audio of Telios V2 linear key switchestypewriterMechvibes CommunitySample audio of an antique typewriterUsageManaging the DaemonManaging Application RulesManage ProfilesCustom ProfilesKeyboard Sounds vX.X.Xusage:<keyboardsounds|kbs> <action> [params]manage daemon:<keyboardsounds|kbs> start [-v <volume>] [-p <profile>]<keyboardsounds|kbs> stop<keyboardsounds|kbs> statusmanage profiles:<keyboardsounds|kbs> <ap|add-profile> -z <zipfile><keyboardsounds|kbs> <rp|remove-profile> -n <profile><keyboardsounds|kbs> <lp|list-profiles><keyboardsounds|kbs> <bp|build-profile> -d <sound_dir> -o <zip_file>manage rules:<keyboardsounds|kbs> <ar|add-rule> -r <rule> -a <app><keyboardsounds|kbs> <rr|remove-rule> -a <app><keyboardsounds|kbs> <lr|list-rules><keyboardsounds|kbs> <sr|set-global-rule> -r <rule><keyboardsounds|kbs> <gr|get-global-rule>other:<keyboardsounds|kbs> [--version|-V]positional arguments:action                The action to performoptions:-h, --help            show this help message and exit-v volume, --volume volumevolume of the sound effects (0-100), default 100-p profile, --profile profilesound profile to use, default 'ios'-n name, --name name  name of the profile remove-z file, --zip file   path to the zip file containing the profile to add-V, --version         show program's version number and exit-d directory, --directory directorypath to the directory containing the sounds to use for the profile-o file, --output filepath to the zip file to create-a app, --app app     absolute path to the application to add the rule for-r rule, --rule rule  rule to apply. must be one of 'enable', 'disable', or 'exclusive'Manage the DaemonStart the daemon.Can also be used to re-start the daemon with an adjusted configuration.# Start with default volume of 100%$kbsstart# Start or reconfigure with a volume of 50%$kbsstart-v50# Start or reconfigure with a specific profile$kbsstart-ptypewriterCheck the current status of the daemon.$kbsstatusStop the daemon if it is running.$kbsstopManaging Application RulesKeyboard Sounds supports the ability to enable or disable the typing sound effects for specific applications. You can also set a global rule that will be used for all applications that do not have a specific rule set.⚠️ Application Rules are only available on Windows.Rule Typesenable- Enable sound effects for the application.disable- Disable sound effects for the application.exclusive- Only play sound effects for the application.The global rule can only be set toenableordisable. By default, the global rule is set toenable.Add a new rule for an application.$kbsadd-rule-renable-a"C:\Program Files\MyApp\MyApp.exe"Remove a rule for an application.$kbsremove-rule-a"C:\Program Files\MyApp\MyApp.exe"Lists the currently loaded rules.$kbslist-rulesSet the global rule.The global rule is used as the fallback for any application that does not have a specific rule set. By default, it is set toenable.$kbsset-global-rule-rdisableGet the current global rule.$kbsget-global-ruleManage ProfilesAdd a new profile to the application.$kbsadd-profile-z./my-profile.zipRemoves a profile from the application.$kbsremove-profile-nmyprofileLists the currently loaded profiles.$kbslist-profilesCustom ProfilesThis application supports custom profiles in which you can provide your own WAV or MP3 files to be used for the different keys pressed.Creating a ProfileCreate a new directory containing the sounds you wish to use.Add a new file to the directory calledprofile.yaml.Follow the example format below to fill the file in.Combine the files into a ZIP file. The files must be at the root of the zip file.You can then load this profile into the application using theadd-profileaction.Note: Alternately you can use thebuild-profileaction for an environment with built in validation when creating a new profile.Example Profile# General information about your profile, this includes# name, author and description.## You are only required to provide the "name" field.profile:name:my-profileauthor:Nathan Fiscalettidescription:Describe the sounds packaged in this profile# A list of all audio sources used by this profile each# containing an identifier and a source.## The source can either be the name of an audio file# packaged with this profile OR a dictionary with two# keys, one 'press' and one 'release', who's# corresponding values are names of audio files# packaged with this profile.sources:-id:key1source:sound1.wav-id:key2source:press:sound2.wavrelease:sound3.wav# An optional mappings of audio sources to# particular keys on the keyboard.## If you chose to omit the keys section, each time# a key is pressed on the keyboard a random sound# from the list of audio sources will be used.keys:# The default value to use for any key not# mapped elsewhere in the keys object.## If you provide the keys object, you MUST# provide a value for the default property.## The value for this property can either be# the ID of one of the sources you defined# above, or an array of IDs.default:[key1,key2]# A list of mappings of sources to keyboard keys.other:# The sound to play when one of the keys listed# in the keys array is pressed.## The value for this property can either be# the ID of one of the sources you defined# above, or an array of IDs.-sound:key1# An array of keys that you can press that this# sound will be mapped to.keys:[backspace,delete]DevelopmentTo install the package in development mode, run the following commands.$gitclonegit@github.com:nathan-fiscaletti/keyboardsounds.git
$cdkeyboardsounds
$pipinstall-e.DevelopmentThis section is intended for developers who wish to contribute to this project. Follow the steps below to set up your development environment and start contributing.PrerequisitesGitPython(version 3.7 or higher)pip(Python package installer)virtualenv(optional, but recommended)Setting Up the Development EnvironmentClone the RepositoryBegin by cloning the repository to your local machine using Git:gitclonehttps://github.com/yourusername/yourprojectname.gitNavigate to the Project DirectoryChange to the project directory:cdyourprojectnameCreate a Virtual Environment (Optional)It's recommended to create a virtual environment to keep dependencies required by different projects separate. If you havevirtualenvinstalled, create a virtual environment:virtualenvvenvActivate the virtual environment:On Windows:.\venv\Scripts\activateOn Unix or MacOS:sourcevenv/bin/activateInstall DependenciesInstall the project dependencies usingpip:pipinstall-rrequirements.txtRunning the Project LocallyTo run the project, use the following command:pythonmain.pyReplacemain.pywith the script you wish to run. This command will execute the script and start your application.Running TestsEnsure that your changes do not break any existing functionality by running the tests. If the project uses a test framework (likepytest), you can run tests using:pytestor if tests are set up withunittest:python-munittestdiscoverContributingContributions are what make the open-source community an amazing place to learn, inspire, and create. Any contributions you make aregreatly appreciated.Submitting Pull RequestsFork the repository and create your branch frommain.If you've added code, write tests for it and make sure existing tests pass.Ensure your code adheres to the project's coding conventions.Update documentation as necessary.Submit your pull request with a detailed description of your changes.Please readCONTRIBUTING.mdfor details on our code of conduct and the process for submitting pull requests to us.Getting HelpShould you have any questions or encounter issues, feel free to open an issue on the repository, and we'll do our best to address it.Make sure to adjust the content to reflect your project's specific requirements, such as the main script name, the use of a different test framework, or additional setup steps.