GH60 keyboard firmware
======================
DIY compact keyboard designed and run by komar007 and Geekhack community.

## Threads on Geekhack.org
- [Prototyping](http://geekhack.org/index.php?topic=34959.0)
- [Beta-test](http://geekhack.org/index.php?topic=37570.0)


## Build
Move to this directory then just run `make` like:

   $ make -f Makfile.[pjrc|lufa]

Use `Makefile.pjrc` if you want to use PJRC stack or use `Makefile.lufa` for LUFA stack.


## Boot Magic
Plugin pressing these `Boot Magic` key.

- `Fn` key for bootloader kick up.
- `D` key for Debug enable.


## Keymap
Two version of keymap are available. `Plan`, `Poker` and `Funky`(default).
See keymap.c to define your own favourite keymap.

    $ make -f Makefile.[pjrc|lufa] [plain|poker]

### 1. Plain keymap
This will be useful if you want to use key mapping tool like AHK.

See [keymap_plain.h](keymap_plain.h) for detail.

#### 1.0 Plain Default Layer
    ,-----------------------------------------------------------.
    |Esc|  1|  2|  3|  4|  5|  6|  7|  8|  9|  0|  -|  =|Backsp |
    |-----------------------------------------------------------|
    |Tab  |  Q|  W|  E|  R|  T|  Y|  U|  I|  O|  P|  [|  ]|    \|
    |-----------------------------------------------------------|
    |Caps  |  A|  S|  D|  F|  G|  H|  J|  K|  L|  ;|  '|Return  |
    |-----------------------------------------------------------|
    |Shift   |  Z|  X|  C|  V|  B|  N|  M|  ,|  .|  /|Shift     |
    |-----------------------------------------------------------|
    |Ctrl|Gui |Alt |      Space             |Alt |Gui |App |Ctrl|
    `-----------------------------------------------------------'

### 2  Poker keymap

See [keymap_poker.h](keymap_poker.h) for Poker layer emulation, [keymap_poker_bit.h](keymap_poker_bit.h) and [keymap_poker_set.h](keymap_poker_set.h) for better support of Esc and arrow.

 These keymap supports Colemak, Dvorak and Workmans, use `Magic` + {`1`, `2`, `3`} to switch and `Magic` + `0` to return to Qwerty.

#### 2.0 Poker Default Layer
    ,-----------------------------------------------------------.
    |  `|  1|  2|  3|  4|  5|  6|  7|  8|  9|  0|  -|  =|Backsp |
    |-----------------------------------------------------------|
    |Tab  |  Q|  W|  E|  R|  T|  Y|  U|  I|  O|  P|  [|  ]|    \|
    |-----------------------------------------------------------|
    |Caps  |  A|  S|  D|  F|  G|  H|  J|  K|  L|  ;|  '|Return  |
    |-----------------------------------------------------------|
    |Shift   |  Z|  X|  C|  V|  B|  N|  M|  ,|  .|  /|Shift     |
    |-----------------------------------------------------------|
    |Ctrl|Gui |Alt |      Space             |Fn  |Gui |App |Ctrl|
    `-----------------------------------------------------------'

#### 2.1 Poker Arrow Layer
    ,-----------------------------------------------------------.
    |   |   |   |   |   |   |   |   |   |   |   |   |   |       |
    |-----------------------------------------------------------|
    |     |   |   |   |   |   |   |   |   |   |   |   |   |     |
    |-----------------------------------------------------------|
    |      |   |   |   |   |   |   |   |   |   |   |   |        |
    |-----------------------------------------------------------|
    |        |   |   |   |   |   |   |   |   |   |   |  Up      |
    |-----------------------------------------------------------|
    |    |    |    |                        |Fn  |Left|Down|Righ|
    `-----------------------------------------------------------'

#### 2.2 Poker Esc Layer
    ,-----------------------------------------------------------.
    |Esc|   |   |   |   |   |   |   |   |   |   |   |   |       |
    |-----------------------------------------------------------|
    |     |   |   |   |   |   |   |   |   |   |   |   |   |     |
    |-----------------------------------------------------------|
    |      |   |   |   |   |   |   |   |   |   |   |   |        |
    |-----------------------------------------------------------|
    |        |   |   |   |   |   |   |   |   |   |   |          |
    |-----------------------------------------------------------|
    |    |    |    |                        |Fn  |    |    |    |
    `-----------------------------------------------------------'

#### 2.1 Poker Fn Layer
    ,-----------------------------------------------------------.
    |Esc| F1| F2| F3| F4| F5| F6| F7| F8| F9|F10|F11|F12|       |
    |-----------------------------------------------------------|
    |     |FnQ| Up|   |   |   |   |   |   |Cal|   |Hom|Ins|     |
    |-----------------------------------------------------------|
    |      |Lef|Dow|Rig|   |   |Psc|Slk|Pau|   |Tsk|End|        |
    |-----------------------------------------------------------|
    |        |Del|   |Web|Mut|VoU|VoD|   |PgU|PgD|Del|          |
    |-----------------------------------------------------------|
    |    |    |    |         FnS            |Fn  |    |    |    |
    `-----------------------------------------------------------'



### 3. Funky keymap
This is my keymap(default) with HHKB, Vi cursor and Mousekey layer.

See [keymap.c](keymap.c) for detail.

#### 3.0 Funky Default Layer
    ,-----------------------------------------------------------.
    |Esc|  1|  2|  3|  4|  5|  6|  7|  8|  9|  0|  -|  =|Backsp |
    |-----------------------------------------------------------|
    |Tab  |  Q|  W|  E|  R|  T|  Y|  U|  I|  O|  P|  [|  ]|    \|
    |-----------------------------------------------------------|
    |Caps  |  A|  S|  D|  F|  G|  H|  J|  K|  L|*L3|  '|Return  |
    |-----------------------------------------------------------|
    |Shift   |  Z|  X|  C|  V|  B|  N|  M|  ,|  .|*L2|Shift     |
    |-----------------------------------------------------------|
    |Ctrl|Gui |Alt |      Space             |Alt |*L3 |*L3 |*L1 |
    `-----------------------------------------------------------'

#### 3.1 Funky HHKB mode
    ,-----------------------------------------------------------.
    |Esc| F1| F2| F3| F4| F5| F6| F7| F8| F9|F10|F11|F12|Delete |
    |-----------------------------------------------------------|
    |Caps |   |   |   |   |   |   |   |Psc|Slk|Pus|Up |   |Inser|
    |-----------------------------------------------------------|
    |Contro|VoD|VoU|Mut|   |   |  *|  /|Hom|PgU|Lef|Rig|Enter   |
    |-----------------------------------------------------------|
    |Shift   |   |   |   |   |   |  +|  -|End|PgD|Dow|Shift     |
    |-----------------------------------------------------------|
    |Ctrl|Gui |Alt |      Space             |Alt |Gui |App |*L0 |
    `-----------------------------------------------------------'

#### 3.2 Funky Vi mode
    ,-----------------------------------------------------------.
    |  `| F1| F2| F3| F4| F5| F6| F7| F8| F9|F10|F11|F12|Backsp |
    |-----------------------------------------------------------|
    |Tab  |Hom|PgD|Up |PgU|End|Hom|PgD|PgU|End|   |   |   |     |
    |-----------------------------------------------------------|
    |Contro|   |Lef|Dow|Rig|   |Lef|Dow|Up |Rig|   |   |Return  |
    |-----------------------------------------------------------|
    |Shift   |   |   |   |   |   |Hom|PgD|PgU|End|*L0|Shift     |
    |-----------------------------------------------------------|
    |Ctrl|Gui |Alt |      Space             |Alt |Gui |App |Ctrl|
    `-----------------------------------------------------------'

#### 3.3 Funky Mouse mode
    ,-----------------------------------------------------------.
    |  `| F1| F2| F3| F4| F5| F6| F7| F8| F9|F10|F11|F12|Backsp |
    |-----------------------------------------------------------|
    |Tab  |MwL|MwD|McU|MwU|MwR|MwL|MwD|MwU|MwR|   |   |   |     |
    |-----------------------------------------------------------|
    |Contro|   |McL|McD|McR|   |McL|McD|McU|McR|*L0|   |Return  |
    |-----------------------------------------------------------|
    |Shift   |   |   |Mb1|Mb2|Mb3|Mb2|Mb1|   |   |   |Shift     |
    |-----------------------------------------------------------|
    |Ctrl|Gui |Alt |      Space             |Alt |*L0 |*L0 |Ctrl|
    `-----------------------------------------------------------'
    Mc: Mouse Cursor / Mb: Mouse Button / Mw: Mouse Wheel