# Welcome to the Mostly Harmless vckyb6

## Introduction

`vckyb6` is a small macro pad that offers quick access to common keyboard 
shortcuts that might be useful during video conferences and meetings.

![The vckyb6 Keyboard](vckyb6.png)

## Why?

Keyboard shortcuts are good ways of quickly doing something - as compared to 
using the mouse to click around the screen. Most video conferencing 
applications have built-in keyboard shortcuts to aid activities such as 
mute/un-mute or toggling the video or raising the hand and so on.

Most of these keyboard shortcuts, unfortunately, require the use of single or 
multiple keys (eg. `CTRL + D` or `CTRL + ALT + C`). These can not only be 
difficult to remember but also tough for children to use or use with one-hand.

## Enter: Custom Keyboards

A custom programmable keyboard can send complex keystrokes or key sequences or 
even macros to the computer on the click of a single button. This means that 
one need not remember complex keyboard shortcuts and can instead just press a 
button to do the job.

The custom keyboard can be even have multiple layers of shortcuts so that it 
can be used in a similar manner with multiple video conferencing tools.

# Compiling and Flashing the keymap

1. Close the `qmk_firmware` repository from:  

      <https://github.com/qmk/qmk_firmware/>

   You can also use this mirror on sovran.dev:

      <https://sovran.dev/mh/qmk_firmware>

2. Pull in the `qmk_firmware` submodules:
  
    ```
    cd qmk_firmware/
    make git-submodule
    ```

3. Install the `qmk` command-line interface:

   ```
   apt-get install python3 python3-pip
   pip3 install qmk
   ```  

4. Setup `qmk dependencies`:

   ```
   cd qmk_firmware/
   qmk setup
   ```
    
    Running `qmk setup` should install the necessary tools required to compile 
and flash the keyboard firmware. On Debian, this will do the equivalent of:
   
   ```
   apt-get install build-essential avr-gcc arm-none-eabi-gcc avrdude dfu-util dfu-programmer
   ```
   
    Now you should be able to compile your firmware.

5. Clone [this repository](https://sovran.dev/mh/vckyb6) into `keyboards/mh/`:

    ```
    cd qmk_firmware/
    mkdir keyboards/mh/
    cd keyboards/mh/
    git clone https://sovran.dev/mh/vckyb6/
    ``` 

6. Now compile the firmware:

    ```
    make mh/vckyb6:default
    ```

7. Reset your keyboard and put it into programming mode and then flash the 
   firmware:

    ```
    make mh/vckyb6:default:flash
    ``` 

## USB Messages:

You should see messages similar to these when you plugin the keyboard. Run 
`sudo dmesg` to check:
 
```
 usb 1-3.2: new full-speed USB device number 18 using xhci_hcd
 usb 1-3.2: New USB device found, idVendor=beef, idProduct=0008, bcdDevice= 0.01
 usb 1-3.2: New USB device strings: Mfr=1, Product=2, SerialNumber=0
 usb 1-3.2: Product: vckb6
 usb 1-3.2: Manufacturer: Mostly Harmless
 input: Mostly Harmless vckb6 as /devices/pci0000:00/0000:00:14.0/usb1/1-3/1-3.2/1-3.2:1.0/0003:BEEF:0008.0078/input/input232
 hid-generic 0003:BEEF:0008.0078: input,hidraw5: USB HID v1.11 Keyboard [Mostly Harmless vckb6] on usb-0000:00:14.0-3.2/input0
 input: Mostly Harmless vckb6 Mouse as /devices/pci0000:00/0000:00:14.0/usb1/1-3/1-3.2/1-3.2:1.1/0003:BEEF:0008.0079/input/input233
 input: Mostly Harmless vckb6 System Control as /devices/pci0000:00/0000:00:14.0/usb1/1-3/1-3.2/1-3.2:1.1/0003:BEEF:0008.0079/input/input234
 input: Mostly Harmless vckb6 Consumer Control as /devices/pci0000:00/0000:00:14.0/usb1/1-3/1-3.2/1-3.2:1.1/0003:BEEF:0008.0079/input/input235
 input: Mostly Harmless vckb6 Keyboard as /devices/pci0000:00/0000:00:14.0/usb1/1-3/1-3.2/1-3.2:1.1/0003:BEEF:0008.0079/input/input236
 hid-generic 0003:BEEF:0008.0079: input,hidraw7: USB HID v1.11 Mouse [Mostly Harmless vckb6] on usb-0000:00:14.0-3.2/input1
```

## Credits

The repository and code is inspired by 
<https://github.com/xkonni/qmk_xkonni_xk8/> and build upon the excellent 
[qmk_firmware project](https://qmk.fm).


