Hello, I wanted to start sharing my projects, so here is a good one to start
First I have been wanting to do a focus 2001 for a while, but I wanted to get one for the right price. After a bit of searching, I found one that I liked at a good price
I was able to get this one for $78.51 shipped. Unfortunately, when I received the item, even though it was packed well, one of the dust cover hinges was broken. I messaged the seller, who offered to make a claim with the shipping company and issued me a 20 USD refund for the item not being in the condition it was supposed to be. Nice guy, if you ever are thinking of buying from brauning_finds on eBay I would recommend. Here is a picture of the damage for reference
First things first. I had to fix that clamp that broke, which ended up being a lot harder than I thought. I originally planned on using only a small amount of 2 part clear epoxy, to avoid anything visible giving away that I was a repair job, but as the part that broke was the force baring clamp piece, I ended up having to use a lot more then I wanted, though it would only be notable to me.
The next thing I wanted to do was make it work over USB so I could actually use the thing. The only thing was that none of my Soarers converters would work. Not even the hand made one I had made for my zenith which had pin-up resister for the data and clock lines, so I had to get more creative. I ended up deciding to use TMK via hasu's IBM PC Keyboard Converter thread
https://geekhack.org/index.php?topic=103648.0I'm not sure if other people have ever had problems with a Focus 2001, but this finally worked for me. At this point, I was only using the standard layout because I had not decided exactly what to do yet in terms of layout.
Now that I had committed to TMK, I had to internal mod the Focus 2001. I could have just used a Mini USB run-off from the teensy, but what is the fun in that. Instead, I wanted to go hot-swap! I decided to wire up a female aviator plug to the end of a micro usb and just use that as a hotplug port. here is a pic so you can see what I mean
That's all fine and dandy, but now I had to add it to the case, It was Dremel time! I tend to go slow and stop dremeling when I get close. Then I finish off with a hand file, that way I don't over cut. I'm sorry I do not have a picture at this stage, I didn't yet know that I was going to start posting my projects.
After the hole was made for the female aviator plug, I wanted to prime and paint the case to be black. I first primed with Rust-Oleum Universal Bonding Primer (3 coats) and finished off with Rust-Oleum Metallic (6 coats) and ended up with a pretty good paint job!
https://www.amazon.com/Rust-Oleum-Universal-Bonding-Primer-12-Ounce/dp/B00SVWJ8U2https://www.amazon.com/dp/B000ZYUWQ8/ref=cm_sw_em_r_mt_dp_v42aGbVY2YM68It was at this point that I realized that the Stock keycaps were not going to cut it, so I was going to have to pick a theme, so I chose red/white/and black and went with it. It was then that I changed the lock light LED's to red. I actually have a picture for this point
Once I did this I ordered the Tai Hao Dolch Set from Drop. But here is where I ran into another snag, Even with this change I wasn't going to be able to change the enter key or spacebar. Also, I didn't think that the Dolch alphas looked good on the keyboard, so I had to get creative.
After sleeping on it, I decided to put the stock alphas back on and decided to paint the space bar and enter key to match my red theme. Now boy oh boy was that a pain in the ass, oh and by the way, ABS dissolves in acetone, I learned the hard way.
Thankfully I was able to source a spare and I was off to the races. Once I was finally happy with the results I put it back together and this is what I had!
Then I gave the switches a nice little lube of my trusty Silicon Grease (yes yes I can feel the backlash coming already) but Im telling you the thing felt and sounded amazing. Just in case you want to know this is the silicon grease I used
https://www.amazon.com/Silverhook-SGPGT90-Silicone-Grease-Tube/dp/B00W6Q3B1GI also spent a long time on my TMK file with the help of lilwebsite, he is a great guy and really helped me out a lot. I wanted lock lights to change on layer shift, so they could would on both windows and mac, as well as toggle the Scroll lock light when in FN mode. Here is my unimap for all who are interested
/*
Macro Cheat-Sheet
I() change interval of stroke.
D() press key
U() release key
T() type key(press and release)
W() wait
SM() store modifier state
RM() restore modifier state
CM() clear modifier stateMacro Define
Example
MACRO( D(LSHIFT), D(D), END ) // hold down LSHIFT and D - will print 'D'
MACRO( U(D), U(LSHIFT), END ) // release U and LSHIFT keys (an event.pressed == False counterpart for the one above)
MACRO( I(255), T(H), T(E), T(L), T(L), W(255), T(O), END ) // slowly print out h-e-l-l---o
*/
#include "unimap_trans.h"
#include "timer.h"
#include "led.h"
#include "stdint.h"
#include "mousekey.h"
#define AC_FN1 ACTION_MACRO(1) //Desktop Right
#define AC_FN2 ACTION_MACRO(2) //Desktop Left
#define AC_FN3 ACTION_MACRO(3) //New Explorer On Windows
#define AC_FN4 ACTION_MACRO(4) //Snip Tool Windows
#define AC_FN5 ACTION_MACRO(5) //V-Desktop Up
#define AC_FN6 ACTION_MACRO(6) //Min All
#define AC_FN7 ACTION_MACRO(7) //Paste
#define AC_FN8 ACTION_MACRO(8) //Copy All
#define AC_FN9 ACTION_MACRO(9) //Task Manager
#define AC_FN11 ACTION_MACRO(11) //Double Zero
#define AC_FN0 ACTION_LAYER_TAP_KEY(2, KC_APPLICATION) //Hold Toggle For Layer 1
#define AC_FN10 ACTION_LAYER_TOGGLE(1) //Toggle NumLock
/*
} else if (layer_state & (1L<<2)); {
led_set(host_keyboard_leds() | (1<<USB_LED_SCROLL_LOCK));
my_led_status = 1;
}
*/
bool my_led_status = 0;
hook_layer_change(uint32_t layer_state)
{
if (my_led_status);
if (layer_state & (1L<<1)) {
// LED is off, so let's turn it on
led_set(host_keyboard_leds() | (1<<USB_LED_NUM_LOCK));
my_led_status = 1;
} else {
// LED is on, so let's turn it off
led_set(host_keyboard_leds() & ~(1<<USB_LED_NUM_LOCK));
my_led_status = 0;
}
if (layer_state & (1L<<2)) {
led_set(host_keyboard_leds() | (1<<USB_LED_SCROLL_LOCK));
my_led_status = 1;
}
}
hook_keyboard_leds_change(uint8_t led_status)
{
if (my_led_status)
{
// LED is off, so let's turn it on
led_set(host_keyboard_leds() | (1<<USB_LED_NUM_LOCK));
my_led_status = 1;
}
else
{
// LED is on, so let's turn it off
led_set(host_keyboard_leds() & ~(1<<USB_LED_NUM_LOCK));
my_led_status = 0;
}
}
hook_late_init(void)
{
if (my_led_status)
{
led_set(host_keyboard_leds() & ~(1<<USB_LED_NUM_LOCK));
my_led_status = 0;
}
}
uint16_t my_led_timer;
void hook_matrix_change(keyevent_t event)
{
// only flash LED for key press events, not key release events.
if (event.pressed)
{
PORTD = (1<<4);
my_led_timer = timer_read();
}
}
void hook_keyboard_loop(void)
{
if (timer_elapsed(my_led_timer) > 60)
{
PORTD = ~(1<<4);
}
}
const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt)
{
switch (id) {
case 1: //Desktop Right
return (record->event.pressed ?
MACRO( I(0), D(LGUI), D(LCTL), T(RGHT), U(LGUI), U(LCTL), END ) :
MACRO_NONE );
case 2: //Desktop Left
return (record->event.pressed ?
MACRO( I(0), D(LGUI), D(LCTL), T(LEFT), U(LGUI), U(LCTL), END ) :
MACRO_NONE );
case 3: //New Explorer
return (record->event.pressed ?
MACRO( I(0), D(LGUI), D(E), U(LGUI), U(E), END ) :
MACRO_NONE );
case 4: //Snip Tool
return (record->event.pressed ?
MACRO( I(0), D(LGUI), D(LSFT), T(S), U(LGUI), U(LSFT), END ) :
MACRO_NONE );
case 5: //V-Desktop Up
return (record->event.pressed ?
MACRO( I(0), D(LGUI), T(TAB), U(LGUI), END ) :
MACRO_NONE );
case 6: //Min All
return (record->event.pressed ?
MACRO( I(0), D(LGUI), T(D), U(LGUI), END ) :
MACRO_NONE );
case 7: // Paste
return (record->event.pressed ?
MACRO( I(0), T(F2), D(LCTL), T(V), U(LCTL), END ) :
MACRO_NONE );
case 8: //Copy All
return (record->event.pressed ?
MACRO( I(0), T(F2), D(LCTL), T(A), T(C), U(LCTL), END ) :
MACRO_NONE );
}
return MACRO_NONE;
}
#ifdef KEYMAP_SECTION_ENABLE
const action_t actionmaps[][UNIMAP_ROWS][UNIMAP_COLS] __attribute__ ((section (".keymap.keymaps"))) = {
#else
const action_t actionmaps[][UNIMAP_ROWS][UNIMAP_COLS] PROGMEM = {
#endif
UNIMAP(
TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,
ESC, F1, F2, F3, F4, F5, F6, F7, F8, F9, F10, F11, F12, PSCR,SLCK,PAUS, VOLD,VOLU,MUTE,
GRV, 1, 2, 3, 4, 5, 6, 7, 8, 9, 0,MINS, EQL,TRNS,BSPC, INS,HOME,PGUP, FN10,PSLS,PAST,PMNS,
TAB, Q, W, E, R, T, Y, U, I, O, P,LBRC,RBRC, FN0, DEL, END,PGDN, HOME, UP,PGUP,PPLS,
CAPS,A, S, D, F, G, H, J, K, L,SCLN,QUOT, LGUI, ENT, LEFT, NO,RGHT,PCMM,
LSFT,LGUI, Z, X, C, V, B, N, M,COMM, DOT,SLSH, TRNS,RSFT, UP, END,DOWN,PGDN,PENT,
LCTL,TRNS,LALT,TRNS, SPC, TRNS,TRNS,RALT,TRNS,TRNS,RCTL, LEFT,DOWN,RGHT, INS,DEL,PEQL
),
UNIMAP(
TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,
TRNS, TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS, TRNS,TRNS,TRNS, TRNS,TRNS,TRNS,
TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS, TRNS,TRNS,TRNS, TRNS,TRNS,TRNS,TRNS,
TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS, TRNS, TRNS,TRNS,TRNS, 7, 8, 9,TRNS,
TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS, TRNS,TRNS, 4, 5, 6,TRNS,
TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS, TRNS,TRNS, TRNS, 1, 2, 3,TRNS,
TRNS,TRNS,TRNS,TRNS, TRNS, TRNS,TRNS,TRNS,TRNS,TRNS,TRNS, TRNS,TRNS,TRNS, 0, DOT,TRNS
),
UNIMAP(
TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,
TRNS, TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS, TRNS,TRNS,TRNS, TRNS,TRNS,TRNS,
TRNS, F1, F2, F3, F4, F5, F6, F7, F8, F9, F10, F11, F12,TRNS,TRNS, TRNS,TRNS,TRNS, TRNS,TRNS,TRNS,TRNS,
TRNS,TRNS,TRNS,FN3 ,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS, TRNS, TRNS,TRNS,TRNS, TRNS,VOLU,TRNS,TRNS,
TRNS,TRNS,FN4 ,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS, TRNS,TRNS, MPRV,MPLY,MNXT,TRNS,
TRNS,TRNS,TRNS,TRNS,FN8 ,FN7 ,TRNS,TRNS,TRNS,TRNS,TRNS,BSLS, TRNS,TRNS, FN5, TRNS,VOLD,TRNS,TRNS,
TRNS,TRNS,TRNS,TRNS, TRNS, TRNS,TRNS,TRNS,TRNS,TRNS,TRNS, FN2 ,FN6,FN1 , TRNS,TRNS,TRNS
),
};
/*
(UNMODIFIED)
F13, F14, F15, F16, F17, F18, F19, F20, F21, F22, F23, F24,098765
ESC, F1, F2, F3, F4, F5, F6, F7, F8, F9, F10, F11, F12, PSCR,SLCK,PAUS, VOLD,VOLU,MUTE,
GRV, 1, 2, 3, 4, 5, 6, 7, 8, 9, 0, MINS,EQL, JYEN,BSPC, INS, HOME,PGUP, NLCK,PSLS,PAST,PMNS,
TAB, Q, W, E, R, T, Y, U, I, O, P, LBRC,RBRC, BSLS, DEL, END, PGDN, P7, P8, P9, PPLS,
CAPS,A, S, D, F, G, H, J, K, L, SCLN,QUOT, NUHS,ENT, P4, P5, P6, PCMM,
LSFT,NUBS,Z, X, C, V, B, N, M, COMM,DOT, SLSH, RO, RSFT, UP, P1, P2, P3, PENT,
LCTL,LGUI,LALT,MHEN, SPC, HENK,KANA,RALT,RGUI,FN0, RCTL, LEFT,DOWN,RGHT, P0, PDOT,PEQL
* ,-----------------------------------------------.
* |F13|F14|F15|F16|F17|F18|F19|F20|F21|F22|F23|F24|
* ,---. |-----------------------------------------------| ,-----------. ,-----------.
* |Esc| |F1 |F2 |F3 |F4 |F5 |F6 |F7 |F8 |F9 |F10|F11|F12| |PrS|ScL|Pau| |VDn|VUp|Mut|
* `---' `-----------------------------------------------' `-----------' `-----------'
* ,-----------------------------------------------------------. ,-----------. ,---------------.
* | `| 1| 2| 3| 4| 5| 6| 7| 8| 9| 0| -| =|JPY|Bsp| |Ins|Hom|PgU| |NmL| /| *| -|
* |-----------------------------------------------------------| |-----------| |---------------|
* |Tab | Q| W| E| R| T| Y| U| I| O| P| [| ]| \ | |Del|End|PgD| | 7| 8| 9| +|
* |-----------------------------------------------------------| `-----------' |---------------|
* |CapsL | A| S| D| F| G| H| J| K| L| ;| '| #|Entr| | 4| 5| 6|KP,|
* |-----------------------------------------------------------| ,---. |---------------|
* |Shft| ^a| Z| X| C| V| B| N| M| ,| .| /| RO|Shift | |Up | | 1| 2| 3|Ent|
* |-----------------------------------------------------------| ,-----------. |---------------|
* |Ctl|Gui|Alt|MHEN| Space |HENK|KANA|Alt|Gui|App|Ctl| |Lef|Dow|Rig| | 0| .|KP=|
* `-----------------------------------------------------------' `-----------' `---------------'
Keycode Symbol Short name Description
--------------------------------------------------------------------------------
KC_NO 00 Reserved (no event indicated)
KC_ROLL_OVER 01 Keyboard ErrorRollOver
KC_POST_FAIL 02 Keyboard POSTFail
KC_UNDEFINED 03 Keyboard ErrorUndefined
KC_A 04 Keyboard a and A
KC_B 05 Keyboard b and B
KC_C 06 Keyboard c and C
KC_D 07 Keyboard d and D
KC_E 08 Keyboard e and E
KC_F 09 Keyboard f and F
KC_G 0A Keyboard g and G
KC_H 0B Keyboard h and H
KC_I 0C Keyboard i and I
KC_J 0D Keyboard j and J
KC_K 0E Keyboard k and K
KC_L 0F Keyboard l and L
KC_M 10 Keyboard m and M
KC_N 11 Keyboard n and N
KC_O 12 Keyboard o and O
KC_P 13 Keyboard p and P
KC_Q 14 Keyboard q and Q
KC_R 15 Keyboard r and R
KC_S 16 Keyboard s and S
KC_T 17 Keyboard t and T
KC_U 18 Keyboard u and U
KC_V 19 Keyboard v and V
KC_W 1A Keyboard w and W
KC_X 1B Keyboard x and X
KC_Y 1C Keyboard y and Y
KC_Z 1D Keyboard z and Z
KC_1 1E Keyboard 1 and !
KC_2 1F Keyboard 2 and @
KC_3 20 Keyboard 3 and #
KC_4 21 Keyboard 4 and $
KC_5 22 Keyboard 5 and %
KC_6 23 Keyboard 6 and ^
KC_7 24 Keyboard 7 and &
KC_8 25 Keyboard 8 and *
KC_9 26 Keyboard 9 and (
KC_0 27 Keyboard 0 and )
KC_ENTER KC_ENT 28 Keyboard Return (ENTER)
KC_ESCAPE KC_ESC 29 Keyboard ESCAPE
KC_BSPACE KC_BSPC 2A Keyboard DELETE (Backspace)
KC_TAB 2B Keyboard Tab
KC_SPACE KC_SPC 2C Keyboard Spacebar
KC_MINUS KC_MINS 2D Keyboard - and (underscore)
KC_EQUAL KC_EQL 2E Keyboard = and +
KC_LBRACKET KC_LBRC 2F Keyboard [ and {
KC_RBRACKET KC_RBRC 30 Keyboard ] and }
KC_BSLASH KC_BSLS 31 Keyboard \ and |
KC_NONUS_HASH KC_NUHS 32 Keyboard Non-US # and ~
KC_SCOLON KC_SCLN 33 Keyboard ; and :
KC_QUOTE KC_QUOT 34 Keyboard ‘ and “
KC_GRAVE KC_GRV 35 Keyboard Grave Accent and Tilde
KC_COMMA KC_COMM 36 Keyboard, and <
KC_DOT 37 Keyboard . and >
KC_SLASH KC_SLSH 38 Keyboard / and ?
KC_CAPSLOCK KC_CAPS 39 Keyboard Caps Lock
KC_F1 3A Keyboard F1
KC_F2 3B Keyboard F2
KC_F3 3C Keyboard F3
KC_F4 3D Keyboard F4
KC_F5 3E Keyboard F5
KC_F6 3F Keyboard F6
KC_F7 40 Keyboard F7
KC_F8 41 Keyboard F8
KC_F9 42 Keyboard F9
KC_F10 43 Keyboard F10
KC_F11 44 Keyboard F11
KC_F12 45 Keyboard F12
KC_PSCREEN KC_PSCR 46 Keyboard PrintScreen1
KC_SCKLOCK KC_SLCK 47 Keyboard Scroll Lock11
KC_PAUSE KC_PAUS 48 Keyboard Pause1
KC_INSERT KC_INS 49 Keyboard Insert1
KC_HOME 4A Keyboard Home1
KC_PGUP 4B Keyboard PageUp1
KC_DELETE KC_DEL 4C Keyboard Delete Forward
KC_END 4D Keyboard End1
KC_PGDOWN KC_PGDN 4E Keyboard PageDown1
KC_RIGHT KC_RGHT 4F Keyboard RightArrow1
KC_LEFT 50 Keyboard LeftArrow1
KC_DOWN 51 Keyboard DownArrow1
KC_UP 52 Keyboard UpArrow1
KC_NUMLOCK KC_NLCK 53 Keypad Num Lock and Clear11
KC_KP_SLASH KC_PSLS 54 Keypad /1
KC_KP_ASTERISK KC_PAST 55 Keypad *
KC_KP_MINUS KC_PMNS 56 Keypad -
KC_KP_PLUS KC_PPLS 57 Keypad +
KC_KP_ENTER KC_PENT 58 Keypad ENTER5
KC_KP_1 KC_P1 59 Keypad 1 and End
KC_KP_2 KC_P2 5A Keypad 2 and Down Arrow
KC_KP_3 KC_P3 5B Keypad 3 and PageDn
KC_KP_4 KC_P4 5C Keypad 4 and Left Arrow
KC_KP_5 KC_P5 5D Keypad 5
KC_KP_6 KC_P6 5E Keypad 6 and Right Arrow
KC_KP_7 KC_P7 5F Keypad 7 and Home
KC_KP_8 KC_P8 60 Keypad 8 and Up Arrow
KC_KP_9 KC_P9 61 Keypad 9 and PageUp
KC_KP_0 KC_P0 62 Keypad 0 and Insert
KC_KP_DOT KC_PDOT 63 Keypad . and Delete
KC_NONUS_BSLASH KC_NUBS 64 Keyboard Non-US \ and |
KC_APPLICATION KC_APP 65 Keyboard Application10
KC_POWER 66 Keyboard Power9
KC_KP_EQUAL KC_PEQL 67 Keypad =
KC_F13 68 Keyboard F13
KC_F14 69 Keyboard F14
KC_F15 6A Keyboard F15
KC_F16 6B Keyboard F16
KC_F17 6C Keyboard F17
KC_F18 6D Keyboard F18
KC_F19 6E Keyboard F19
KC_F20 6F Keyboard F20
KC_F21 70 Keyboard F21
KC_F22 71 Keyboard F22
KC_F23 72 Keyboard F23
KC_F24 73 Keyboard F24
KC_EXECUTE 74 Keyboard Execute
KC_HELP 75 Keyboard Help
KC_MENU 76 Keyboard Menu
KC_SELECT 77 Keyboard Select
KC_STOP 78 Keyboard Stop
KC_AGAIN 79 Keyboard Again
KC_UNDO 7A Keyboard Undo
KC_CUT 7B Keyboard Cut
KC_COPY 7C Keyboard Copy
KC_PASTE 7D Keyboard Paste
KC_FIND 7E Keyboard Find
KC__MUTE 7F Keyboard Mute
KC__VOLUP 80 Keyboard Volume Up
KC__VOLDOWN 81 Keyboard Volume Down
KC_LOCKING_CAPS 82 Keyboard Locking Caps Lock12
KC_LOCKING_NUM 83 Keyboard Locking Num Lock12
KC_LOCKING_SCROLL 84 Keyboard Locking Scroll Lock12
KC_KP_COMMA KC_PCMM 85 Keypad Comma27
KC_KP_EQUAL_AS400 86 Keypad Equal Sign29
KC_INT1 KC_RO 87 Keyboard International115,28
KC_INT2 KC_KANA 88 Keyboard International216
KC_INT3 KC_JYEN 89 Keyboard International317
KC_INT4 KC_HENK 8A Keyboard International418
KC_INT5 KC_MHEN 8B Keyboard International519
KC_INT6 8C Keyboard International620
KC_INT7 8D Keyboard International721
KC_INT8 8E Keyboard International822
KC_INT9 8F Keyboard International922
KC_LANG1 90 Keyboard LANG125
KC_LANG2 91 Keyboard LANG226
KC_LANG3 92 Keyboard LANG330
KC_LANG4 93 Keyboard LANG431
KC_LANG5 94 Keyboard LANG532
KC_LANG6 95 Keyboard LANG68
KC_LANG7 96 Keyboard LANG78
KC_LANG8 97 Keyboard LANG88
KC_LANG9 98 Keyboard LANG98
KC_ALT_ERASE 99 Keyboard Alternate Erase7
KC_SYSREQ 9A Keyboard SysReq/Attention1
KC_CANCEL 9B Keyboard Cancel
KC_CLEAR 9C Keyboard Clear
KC_PRIOR 9D Keyboard Prior
KC_RETURN 9E Keyboard Return
KC_SEPARATOR 9F Keyboard Separator
KC_OUT A0 Keyboard Out
KC_OPER A1 Keyboard Oper
KC_CLEAR_AGAIN A2 Keyboard Clear/Again
KC_CRSEL A3 Keyboard CrSel/Props
KC_EXSEL A4 Keyboard ExSel
Modifiers
KC_LCTRL KC_LCTL E0 Keyboard LeftControl
KC_LSHIFT KC_LSFT E1 Keyboard LeftShift
KC_LALT E2 Keyboard LeftAlt
KC_LGUI E3 Keyboard Left GUI(Windows/Apple/Meta key)
KC_RCTRL KC_RCTL E4 Keyboard RightControl
KC_RSHIFT KC_RSFT E5 Keyboard RightShift
KC_RALT E6 Keyboard RightAlt
KC_RGUI E7 Keyboard Right GUI(Windows/Apple/Meta key)
* Virtual keycodes
Generic Desktop Page(0x01) - System Control
KC_SYSTEM_POWER KC_PWR System Power Down
KC_SYSTEM_SLEEP KC_SLEP System Sleep
KC_SYSTEM_WAKE KC_WAKE System Wake
Consumer Page(0x07)
KC_AUDIO_MUTE KC_MUTE Mute
KC_AUDIO_VOL_UP KC_VOLU Volume Increment
KC_AUDIO_VOL_DOWN KC_VOLD Volume Decrement
KC_MEDIA_NEXT_TRACK KC_MNXT Scan Next Track
KC_MEDIA_PREV_TRACK KC_MPRV Scan Previous Track
KC_MEDIA_STOP KC_MSTP Stop
KC_MEDIA_FAST_FORWARD KC_MFFD Fast Forward
KC_MEDIA_REWIND KC_MRWD Rewind
KC_MEDIA_PLAY_PAUSE KC_MPLY Play/Pause
KC_MEDIA_EJECT KC_EJCT Stop/Eject
KC_MEDIA_SELECT KC_MSEL AL Consumer Control Configuration
KC_MAIL KC_MAIL AL Email Reader
KC_CALCULATOR KC_CALC AL Calculator
KC_MY_COMPUTER KC_MYCM AL Local Machine Browser
KC_WWW_SEARCH KC_WSCH AC Search
KC_WWW_HOME KC_WHOM AC Home
KC_WWW_BACK KC_WBAK AC Back
KC_WWW_FORWARD KC_WFWD AC Forward
KC_WWW_STOP KC_WSTP AC Stop
KC_WWW_REFRESH KC_WREF AC Refresh
KC_WWW_FAVORITES KC_WFAV AC Bookmarks
Mousekey - TMK specific
KC_MS_UP KC_MS_U Mouse Cursor Up
KC_MS_DOWN KC_MS_D Mouse Cursor Down
KC_MS_LEFT KC_MS_L Mouse Cursor Left
KC_MS_RIGHT KC_MS_R Mouse Cursor Right
KC_MS_BTN1 KC_BTN1 Mouse Button 1
KC_MS_BTN2 KC_BTN2 Mouse Button 2
KC_MS_BTN3 KC_BTN3 Mouse Button 3
KC_MS_BTN4 KC_BTN4 Mouse Button 4
KC_MS_BTN5 KC_BTN5 Mouse Button 5
KC_MS_WH_UP KC_WH_U Mouse Wheel Up
KC_MS_WH_DOWN KC_WH_D Mouse Wheel Down
KC_MS_WH_LEFT KC_WH_L Mouse Wheel Left
KC_MS_WH_RIGHT KC_WH_R Mouse Wheel Right
KC_MS_ACCEL0 KC_ACL0 Mouse Acceleration 0
KC_MS_ACCEL1 KC_ACL1 Mouse Acceleration 1
KC_MS_ACCEL2 KC_ACL2 Mouse Acceleration 2
Fn key - TMK specific
KC_FN0
KC_FN1
KC_FN2
KC_FN3
KC_FN4
KC_FN5
KC_FN6
KC_FN7
KC_FN8
KC_FN9
KC_FN10
KC_FN11
KC_FN12
KC_FN13
KC_FN14
KC_FN15
KC_FN16
KC_FN17
KC_FN18
KC_FN19
KC_FN20
KC_FN21
KC_FN22
KC_FN23
KC_FN24
KC_FN25
KC_FN26
KC_FN27
KC_FN28
KC_FN29
KC_FN30
KC_FN31
*/
Over All it was a very awesome Project, but now that It is done it is time for me to work on something new! Stay Tuned!