# 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:
You can also use this mirror on sovran.dev:
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
and build upon the excellent
[qmk_firmware project](https://qmk.fm).