Giter Site home page Giter Site logo

cough-button's Introduction

Cough button

This project aims at providing software support for a cheap (normally < 10โ‚ฌ) DYI hardware cough button for linux.

A cough button is simply a button that allows to mute and unmute a microphone attached to a linux computer.

Theoretically the computer-side software provided with this repo can be easily extended/replaced to support other operating systems as well. I don't care about any other operating system so I will probably never do it (but feel free to contribute).

Diagram of the components

Diagram of the components

Hardware

The idea of this project is to act as an easy-to-hack framework and be adaptable to different hardware and potentially different sound systems. Nevertheless it is being developed and (poorly) tested with the following hardware:

This is the connections diagram:

Connections diagram

Concepts

The daemon is a go CLI tool that has to be run from the command line as unprivileged user.

During startup, the deamon:

  • looks for a supported serial device to listen inputs from and to post the microphone muted status to.
  • connects to pulseaudio via DBUS, setting the mute status and getting notifications about state changes.

The LED of the external device is updated to reflect in near-realtime the muted status of the default source of the system.

WARNING: if you are using custom settings for some applications, cough button will not be able to mute those applications for you. It always mutes the default source.

Getting started

It is still early days for the project, so running it is a manual process.

Hopefully my interest will in the project will continue and/or contributors will join me making it more straightforward.

In any case these are the steps needed to get yourself a cough button.

  • Buy the hardware and connect following the connections diagram above.
  • Flash the teensy device following the official instructions.
  • Run the daemon as unprivileged user (cd into the daemon directory and run go run main.go).

cough-button's People

Contributors

whites11 avatar

Stargazers

Gerald Pape avatar

Watchers

 avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.