Merge remote-tracking branch 'refs/remotes/jackhumbert/master'

pull/253/head
IBNobody 9 years ago
commit 6ef262951c

@ -0,0 +1,29 @@
# ErgoDox EZ Dvorak International Squisher
Dvorak layout adjusted with several (linux) applications in mind:
* Easier Escape for VIM
* Windows/Super key for awesome WM
* Alt+Shift for international characters
* PrintScreen for sys-rq
* Insert for the X11 clip-board
Major layer changes:
* Common multimedia keys are integrated into layer 0, less common into layer 1
* No mouse keys
* Layer 2 is qwerty (for easier gaming & less fortunate keyboard users)
Known issues:
* Alt+Shift does not work reliably (depends on the X11 kb layout? Not
entirely clear...)
![layer0](keyboard-layout0.png)
![layer1](keyboard-layout1.png)
![layer2](keyboard-layout2.png)
## Changelog
* 2016-03-29
* Initial release

@ -0,0 +1,1127 @@
:100000000C9465020C94AC020C94AC020C94AC02FF
:100010000C94AC020C94AC020C94AC020C94AC02A8
:100020000C94AC020C94AC020C94B50B0C94870CA1
:100030000C94AC020C94AC020C94AC020C94AC0288
:100040000C94AC020C943B210C94AC020C94AC02CA
:100050000C94AC020C94C71A0C94AC020C94AC0235
:100060000C94AC020C94AC020C94AC020C94AC0258
:100070000C94AC020C94AC020C94AC020C94AC0248
:100080000C94AC020C94AC020C94AC020C94AC0238
:100090000C94AC020C94AC020C94AC020C94AC0228
:1000A0000C94AC020C94AC020C94AC02F40C160D43
:1000B000040E160D040E5B0D7E0D040ED30DE60D21
:1000C000D110D11000110011431181119A139A130C
:1000D0009A119A139B129B126E139A139A138513FB
:1000E0000000F0A12E0029002A00E1003581000067
:1000F0001E00340004003371E2004D001F00360082
:1001000012001400E3002B002000370008000D004F
:1001100050002C002100130018000E004F004A0070
:1001200022001C000C001B0000006571B6004C0092
:100130000000007F00000154AE004900000000777D
:1001400000000254230009000700050000004600DB
:1001500024000A000B00100052004B00250006008E
:1001600017001A0051002800260015001100190080
:100170002F00E51427000F0016001D7130004E00FF
:10018000318238002D00E500C100000001000100AF
:1001900001000100010000003A001E0220022202BC
:1001A000010001003B001F022102230201000100A7
:1001B0003C002F0226022F00AC0001003D0030025F
:1001C00027023000AB0001003E003102350035024D
:1001D000000001000100010000000100000001001A
:1001E0000100010000000100000001003F0052007A
:1001F00051002402000001004000240021001E00E4
:100200000100A9004100250022001F003700010065
:1002100042002600230020002700A80043002502FA
:100220002E0231002E00AA0044004500010001000A
:1002300001000000010001000100010001000000B8
:100240000100140004001D710100010001001A00EA
:1002500016001B0001000100010008000700060055
:100260000100010001001500090019000100010052
:10027000010017000A000500000001000100010054
:100280000000010000000100010001000000010069
:100290000000010001001C000B0011000000010023
:1002A000010018000D0010000100010001000C0009
:1002B0000E00360001000100010012000F0037009F
:1002C00001000100010013003382387101000100B8
:1002D00001000100010001000100000016034500BB
:1002E000720067006F0044006F0078002000450036
:1002F0005A00000016034500720067006F004400BA
:100300006F007800200045005A0000000403090433
:1003100009026D00040100A0FA09040000010301B4
:100320000100092111010001223F00070581030896
:10033000000A090401000103010200092111010062
:1003400001224D000705820308000A09040200018A
:100350000300000009211101000122360007058376
:100360000308000A09040300010300000009211129
:100370000100012239000705840310000112011059
:100380000100000008EDFE07130100010200010555
:10039000010906A101050719E029E71500250195C6
:1003A0000875018102050819012905950575019156
:1003B000029501750391010507190029771500259C
:1003C00001957875018102C005010980A1018502AE
:1003D00016010026B7001A01002AB7007510950112
:1003E0008100C0050C0901A1018503160100269CAE
:1003F000021A01002A9C02751095018100C00501B6
:100400000902A1010901A100050919012905150029
:10041000250195057501810295017503810105018D
:10042000093009311581257F950275088106093843
:100430001581257F950175088106050C0A3802157E
:1004400081257F950175088106C0C005010906A1B7
:1004500001050719E029E7150025019508750181B7
:100460000295017508810105081901290595057591
:100470000191029501750391010507190029FF15E6
:100480000025FF950675088100C0000000000000EF
:100490000000000000010204060A0F17202C3A4A4F
:1004A0005D71879DB3C7DAE9F5FCFFFCF5E9DAC7B2
:1004B000B39D87715D4A3A2C20170F0A060402018A
:1004C0000000000000000000000011241FBECFEF5C
:1004D000DAE0DEBFCDBF04B603FE27C08091EF0196
:1004E0009091F001A091F101B091F2018730904B11
:1004F000A740B04BD1F41092EF011092F00110928E
:10050000F1011092F20114BE84B7877F84BF0FB649
:10051000F894A895809160008861809360001092A3
:1005200060000FBEE0E0FFE3099511E0A0E0B1E05C
:10053000E8E1F6E402C005900D92A433B107D9F7C3
:1005400021E0A4E3B1E001C01D92AF3EB207E1F7A4
:100550000E94F6080C940A230C94000061110BC051
:10056000FC018281882321F085EE0E94660F03C082
:1005700085EE0E942E1080E090E00895089560912D
:10058000B1017091B2018091B3019091B4010E94C8
:10059000F01956985E9825982D9826982E982798A9
:1005A0002F98813019F0823021F00895259A2D9AE4
:1005B0000895269A2E9A08950C94BF0256985E9834
:1005C00025982D9826982E9827982F988FEF90E0B1
:1005D000909389008093880090938B0080938A0089
:1005E00090938D0080938C00259A2D9A2FEF80E7B1
:1005F00092E0215080409040E1F700C00000269A30
:100600002E9A2FEF80E792E0215080409040E1F752
:1006100000C00000279A2F9A2FEF80E792E0215028
:1006200080409040E1F700C0000025982D982FEF02
:1006300080E792E0215080409040E1F700C0000048
:1006400026982E982FEF80E792E02150804090402E
:10065000E1F700C0000027982F9856985E982598DB
:100660002D9826982E9827982F98089589EA809398
:10067000800089E08093810024982C983F988AB16B
:100680008F748AB96E98479A8BB1806B8BB9769AC2
:100690000E94DE020C94BE0280E2809300018091F1
:1006A000340181110EC00E949B0381E080933401CC
:1006B0002FEF83ED90E3215080409040E1F700C0A0
:1006C000000080E40E94A1038093000181112EC0EC
:1006D0000E94CB0380930001811128C00E94CB03AC
:1006E00080930001811122C08FE30E94CB0380938D
:1006F000000181111BC00E94C30380E40E94A1037A
:1007000080930001811112C08CE00E94CB03809382
:10071000000181110BC00E94CB0380930001811165
:1007200005C08FE30E94CB03809300010E94C303A6
:100730008091000108951092B9008AE08093B8007A
:10074000089594EA9093BC009091BC0097FFFCCF71
:100750009091B900987F983021F0903111F081E0AC
:1007600008958093BB0084E88093BC008091BC0016
:1007700087FFFCCF8091B900887F883111F08034E9
:1007800071F780E0089584E98093BC008091BC00FB
:1007900084FDFCCF08958093BB0084E88093BC0067
:1007A0008091BC0087FFFCCF9091B900987F81E0D9
:1007B000983209F480E0089584E88093BC00809129
:1007C000BC0087FFFCCF8091BB00089580910001A1
:1007D000811115C080E40E94A10380930001811162
:1007E0000CC082E10E94CB0380930001811105C0FF
:1007F0008FEF0E94CB03809300010E94C30384B15A
:10080000807F84B985B1807F85B98AB1837F8AB9B9
:100810008BB1837F8BB93E98469808950E944C0314
:10082000809300010E94E60380B38C7080BB81B38B
:10083000836F81BBA6E3B1E0E4E4F1E08EE08E0FCC
:1008400011921D928E13FCCF0C943603BF92CF925F
:10085000DF92EF92FF920F931F93CF93DF938091DC
:100860000001882379F0809135018F5F80933501F5
:10087000811108C00E944C0380930001811102C0C5
:100880000E94DE0206E311E0C0E0D0E0DD24D39454
:1008900082E0C82EEE24E394F12CC730D10500F598
:1008A00080910001811164C080E40E94A1038093C3
:1008B0000001811112C082E10E94CB0380930001EC
:1008C00081110BC0C7010C2E01C0880F0A94EAF7F2
:1008D00080950E94CB03809300010E94C30348C00F
:1008E000CA30A1F028F4C83059F0C93061F005C011
:1008F000CC3089F070F0CD3089F0209A289810C063
:10090000219A29980DC0229A2A980AC0239A2B98D6
:1009100007C0529A01C0539A5B9802C03E9A46980B
:1009200090EA9A95F1F79FB1799902C082E001C0EF
:1009300080E091709D25982B7C9902C084E001C0D5
:1009400080E0892B7D9902C038E001C030E0832B24
:100950007E9902C020E101C020E0822B9FB19095DA
:10096000991F9927991F9295990F907E892B0FC0F7
:1009700080910001811149C080E40E94A10380930D
:100980000001882379F1B12C0E94C3038B2DF8015B
:100990009081981719F08083C09201010E94E603AC
:1009A00021960F5F1F4FCE30D10509F076CF809191
:1009B0000101882361F1815080930101882339F07E
:1009C0008FE99FE00197F1F700C0000020C0A4E488
:1009D000B1E0E6E3F1E0CF01825F91919D938E1348
:1009E000FCCF15C083E10E94CB03809300018111ED
:1009F000CACF81E40E94A103809300018111C3CF7B
:100A00000E94DC03B82EB094BFCF80E0C0CF0E941C
:100A1000DC0281E0DF91CF911F910F91FF90EF9069
:100A2000DF90CF90BF900895E82FF0E0EC5BFE4F91
:100A30008081089508958B3B910578F4883A91055B
:100A400040F5853A9105D0F48430910508F0B1C0A5
:100A50008130910509F4ADC06BC0803E910508F46A
:100A600067C0883E910508F4A4C09C01205F31094D
:100A70002031310508F05CC090650895853A9105F4
:100A800009F459C0863A910509F058C082E890E40B
:100A90000895883A910509F454C0893A910509F4FA
:100AA00053C08A3A910509F452C08B3A910509F472
:100AB00051C08C3A910509F450C08D3A910509F462
:100AC0004FC0803B910509F44EC08E3A910509F460
:100AD0004DC08F3A910509F44CC0813B910509F452
:100AE0004BC0823B910509F44AC0833B910509F450
:100AF00049C0843B910509F448C0853B910509F440
:100B000047C0863B910509F446C0873B910509F42F
:100B100045C0883B910509F444C0893B910509F41F
:100B200043C08A3B910509F442C080E094E40895F3
:100B300080E090E0089581E890E4089583E890E4EF
:100B4000089582EE94E4089589EE94E408958AEE7F
:100B500094E4089585EB94E4089586EB94E4089575
:100B600087EB94E408958CEC94E408958DEC94E480
:100B7000089583E895E408958AE895E4089582E964
:100B800095E4089584E995E4089581E296E4089552
:100B900083E296E4089584E296E4089585E296E47B
:100BA000089586E296E4089587E296E408958AE23D
:100BB00096E40895089596E0799FF001112494E554
:100BC000899FE00DF11D1124E60FF11DEE0FFF1FAF
:100BD000EC51FF4F859194910895880F991FFC0166
:100BE000E05AF040859194910895880F991FFC0177
:100BF000E052FF4F85919491089526E0729FF00195
:100C0000112444E5849FE00DF11D1124E60FF11D30
:100C1000EE0FFF1FEC51FF4F859194919C013A9587
:100C200021154FE1340708F41CC13F512115304113
:100C300020F49F700E94F50508959C013053211502
:100C4000304118F49927906C0895811520E592079A
:100C500071F40E94BE134FEF84E39CE0415080404A
:100C60009040E1F700C000000E94EC1AFAC0813009
:100C700020E5920731F48091CD0181608093CD0110
:100C8000F0C09C0130552115304108F051C0292F8A
:100C900033272F70332721303105D9F4AC0143704D
:100CA000552702C0220F331F4A95E2F73C68AC017A
:100CB00064E0440F551F6A95E1F744275370242BD5
:100CC000352B73E0880F991F7A95E1F78076992785
:100CD0001DC02230310529F4982F8827816F906A32
:100CE000089523303105A9F4AC014370552721E064
:100CF00030E002C0220F331F4A95E2F73C6843E020
:100D0000880F991F4A95E1F7807E9770822B932B6D
:100D1000089524303105E1F4AC014370552721E0FA
:100D200030E002C0220F331F4A95E2F73A68E7CF5E
:100D30009C0130572115304118F49F70906208953E
:100D40009C0130582115304118F49F70906A089525
:100D5000803E9105E0F4803C910558F58133910582
:100D600009F46FC048F48932910509F463C08A32EE
:100D7000910509F46DC072C089339105E9F082389C
:100D80009105D1F08533910509F44DC067C0833ECC
:100D9000910581F138F4803E9105B9F0823E9105CC
:100DA000D9F05CC0863E910561F1873E9105A1F1C5
:100DB00055C00E94ED0508952091E00120FD02C07C
:100DC00021FF4CC080EE90E049C08091E00180FF9F
:100DD000F9CF89E390E042C08091E00182FF0EC02C
:100DE0008091E00184FF03C080E090E037C083EE93
:100DF00090E034C08091E00182FFF2CF82EE90E07B
:100E00002DC08091E00183FF0BC08091E00184FD43
:100E1000EBCF87EE90E022C08091E00183FFF5CF19
:100E200086EE90E01BC08091E00185FF07C089E25B
:100E300090E014C08091E00185FFF9CF85E390E058
:100E40000DC08091E00186FF07C08AE290E006C0F5
:100E50008091E00186FFF9CF81E390E00E941B05BD
:100E60000895089508950C943207809162010895C1
:100E7000CF93DF9300D01F92CDB7DEB79C01809156
:100E8000E601843019F593E099833B832A8390939C
:100E9000E9008FEF9091E800815095FD06C095ED37
:100EA0009A95F1F700008111F5CF8091E80085FF58
:100EB0000DC040E050E063E070E0CE0101960E947A
:100EC000A5098091E8008E778093E8000F900F903D
:100ED0000F90DF91CF910895CF93DF9300D01F92B1
:100EE000CDB7DEB72091E601243021F522E0298339
:100EF0009B838A8383E08093E9008FEF9091E800E1
:100F0000815095FD06C095ED9A95F1F7000081118D
:100F1000F5CF8091E80085FF0DC040E050E063E030
:100F200070E0CE0101960E94A5098091E8008E77BD
:100F30008093E8000F900F900F90DF91CF9108956C
:100F40002091E6012430F1F422E02093E9002FEF14
:100F50003091E800215035FD06C035ED3A95F1F7A6
:100F600000002111F5CF2091E80025FF0BC040E0E3
:100F700050E065E070E00E94A5098091E8008E775E
:100F80008093E8000895CF93DF93EC019091E60100
:100F9000943009F046C080910C018823D9F08091EB
:100FA0000D018823B9F09093E9008FEF9091E8004C
:100FB000815095FD06C095E19A95F1F700008111E9
:100FC000F5CF8091E80085FF2CC040E050E060E163
:100FD00070E017C081E08093E9008FEF9091E80006
:100FE000815095FD06C095ED9A95F1F700008111AD
:100FF000F5CF8091E80085FF14C040E050E068E044
:1010000070E0CE010E94A5098091E8008E77809360
:10101000E80080E1FE01A2E5B1E001900D928A9521
:10102000E1F7DF91CF9108958091E501811109C029
:101030000E943A0B0E94970B8091E200846080939B
:10104000E20008951092E501089508950C94282176
:101050000E94821A0E942E210E943D0E0C9433079A
:1010600042E061EC81E00E94B40A42E061EC82E07F
:101070000E94B40A42E061EC83E00E94B40A42E1BB
:1010800061EC84E00C94B40A8091E801833009F4A7
:1010900055C030F4813071F0823009F48EC008956B
:1010A0008A3009F47AC08B3009F460C0893009F0C5
:1010B0009CC020C08091E701813A09F096C08091E0
:1010C000E800877F8093E8008091EB019091EC012C
:1010D000892B21F460E182E591E003C060E080E0CB
:1010E00090E070E00E94F0098091E8008B77809397
:1010F000E80008958091E701813209F076C080917F
:10110000EB019091EC01009719F0039709F06DC085
:101110008091E800877F8093E8008091E80082FD5D
:1011200005C08091E6018111F8CF5FC08091F10088
:10113000809362018091E8008B7753C08091E70132
:10114000813A09F052C08091EB019091EC01892B1A
:1011500009F04BC08091E800877F8093E800809180
:10116000E80080FFFCCF80910C0136C08091E70140
:101170008132D9F58091EB019091EC01892BA9F591
:101180008091E800877F8093E8000E94E90A8091BF
:10119000E90180930C010C94BE138091E701813228
:1011A00021F58091E800877F8093E8000E94E90A9A
:1011B0008091EA018093630108958091E701813A6B
:1011C000A1F48091E800877F8093E8008091E80097
:1011D00080FFFCCF809163018093F1008091E80053
:1011E0008E778093E8000C94E90A089584B7877F8E
:1011F00084BF0FB6F894A8958091600088618093B1
:101200006000109260000FBE90E080E80FB6F89486
:1012100080936100909361000FBE0E948C0E0E942B
:101220003A0B0E94970B8091E20084608093E20069
:1012300078940E941D0E0E948E0E82E091E00E9422
:10124000380E0E9416218091E601853069F40E94D3
:10125000401A8091E4018823B1F30E946E1A88231A
:1012600091F30E948F09EFCF0E94940EECCF292FAB
:10127000332723303105C9F064F42130310581F082
:101280002230310509F043C08DE690E020E133E0E3
:1012900042C021323105F1F02232310541F137C02F
:1012A00082E190E02DE733E036C099278130910547
:1012B00041F08230910541F0892B49F5ECE0F3E0F3
:1012C00005C0E4EFF2E002C0ECEDF2E0849190E0C2
:1012D0009F0121C06430D8F4E62FF0E0EE0FFF1F2D
:1012E000EE5DFE4F2081318189E090E014C06430D2
:1012F00070F470E0FB01EE0FFF1FE65EFE4F2081F1
:101300003181FB01EA5EFE4F808190E004C080E005
:1013100090E020E030E0FA0131832083089580E1FD
:1013200089BD82E189BD09B400FEFDCF8091D8005E
:101330008F7D8093D8008091E00082608093E000F0
:101340008091E00081FDFCCF0895CF92DF92EF9273
:10135000FF920F931F93CF93DF93EC018B016A01F0
:101360000E94080B811133C0C114D10439F0F60179
:1013700080819181081B190BC80FD91FE12CF12C1A
:101380000115110519F18091E80085FD16C08091C5
:10139000E8008E778093E800C114D10449F0F6018B
:1013A00080819181E80EF91EF182E08285E00FC014
:1013B0000E94080B882321F30AC089918093F100D1
:1013C00001501109FFEFEF1AFF0ADACF80E0DF9139
:1013D000CF911F910F91FF90EF90DF90CF900895E4
:1013E0002091ED013091EE012617370748F0611585
:1013F000710539F42091E8002E772093E80001C0B0
:10140000B90140E061157105A9F12091E60122239F
:1014100009F443C0253009F442C02091E80023FDBF
:1014200040C02091E80022FD32C02091E80020FF5A
:10143000E9CF4091F3002091F20030E0342BFC0121
:10144000CF016115710559F02830310540F48191C3
:101450008093F100615071092F5F3F4FF1CF41E060
:101460002830310509F040E02091E8002E772093E4
:10147000E800C8CF4111C9CF0AC08091E601882396
:1014800061F0853061F08091E80083FD0AC08091B1
:10149000E80082FFF2CF80E0089582E0089583E0C3
:1014A000089581E008952091ED013091EE01261715
:1014B000370748F06115710539F42091E8002E775F
:1014C0002093E80001C0B901FC0120E0611571051D
:1014D00091F18091E601882309F440C0853009F438
:1014E0003FC08091E80083FD3DC08091E80082FD0F
:1014F0002FC08091E80080FFE9CF2091F300809118
:10150000F20090E0922B6115710559F08830910539
:1015100040F424912093F1003196615071090196B5
:10152000F2CF21E0089709F020E08091E8008E7763
:101530008093E800CBCF2111CCCF0AC08091E60187
:10154000882361F0853061F08091E80083FD0AC056
:101550008091E80082FFF2CF80E0089582E0089554
:1015600083E0089581E00895982F973058F590937F
:10157000E900981739F07091EC002091ED0050913E
:10158000F00003C0242F762F50E021FF19C03091C6
:10159000EB003E7F3093EB003091ED003D7F3093C8
:1015A000ED003091EB0031603093EB007093EC0074
:1015B0002093ED005093F0002091EE0027FF07C02C
:1015C0009F5FD3CF8F708093E90081E0089580E022
:1015D00008958091E70187FF11C08091E80082FDA6
:1015E00005C08091E6018111F8CF11C08091E8001B
:1015F0008B770BC08091E601882349F08091E80049
:1016000080FFF8CF8091E8008E778093E8000895FE
:101610002091E4003091E50095E64091EC00842FA4
:10162000817040FF22C08091E80080FD1CC0809145
:10163000E601882391F0853091F08091EB0085FDE3
:1016400010C04091E4005091E5004217530729F380
:101650009A01915011F784E0089582E0089583E0A3
:10166000089581E0089580E008954091E80042FFE8
:10167000DECF08950E94A80B0E94B00BE0EEF0E0D0
:10168000808181608083E8EDF0E080818F778083C6
:1016900019BCA7EDB0E08C918E7F8C9380818F7EFA
:1016A00080831092E50108950F931F93CF93DF93EA
:1016B0000E94A80B0E94B00BC8EDD0E088818F7704
:1016C000888388818068888388818F7D888319BC1E
:1016D0001092E6011092E2011092E4011092E301EF
:1016E00000EE10E0F80180818B7F8083888181602B
:1016F000888342E060E080E00E94B40AE1EEF0E01E
:1017000080818E7F8083E2EEF0E080818160808343
:10171000808188608083F80180818E7F80838881CA
:1017200080618883DF91CF911F910F910895E8ED3B
:10173000F0E080818F7E8083E7EDF0E08081816042
:10174000808384E082BF81E08093E5010C94540B98
:10175000E8EDF0E080818E7F80831092E2000895B2
:101760001092DA001092E10008951F920F920FB6C6
:101770000F9211242F933F934F935F936F937F9317
:101780008F939F93AF93BF93EF93FF938091E1006B
:1017900082FF0BC08091E20082FF07C08091E100D0
:1017A0008B7F8093E1000E941C0E8091DA0080FF05
:1017B0001FC08091D80080FF1BC08091DA008E7F0F
:1017C0008093DA008091D90080FF0DC080E189BD4F
:1017D00082E189BD09B400FEFDCF81E08093E6017E
:1017E0000E94140805C019BC1092E6010E9422084C
:1017F0008091E10080FF19C08091E20080FF15C058
:101800008091E2008E7F8093E2008091E20080610F
:101810008093E2008091D80080628093D80019BC48
:1018200085E08093E6010E9426088091E10084FF14
:1018300030C08091E20084FF2CC080E189BD82E14C
:1018400089BD09B400FEFDCF8091D8008F7D8093C3
:10185000D8008091E1008F7E8093E1008091E200CA
:101860008F7E8093E2008091E20081608093E200AD
:101870008091E201882311F084E007C08091E300A9
:1018800087FD02C081E001C083E08093E6010E94F1
:1018900028088091E10083FF29C08091E20083FF46
:1018A00025C08091E100877F8093E10082E08093F2
:1018B000E6011092E2018091E1008E7F8093E100C9
:1018C0008091E2008E7F8093E2008091E20080614F
:1018D0008093E20042E060E080E00E94B40A8091E0
:1018E000F00088608093F0000E942508FF91EF913E
:1018F000BF91AF919F918F917F916F915F914F9128
:101900003F912F910F900FBE0F901F9018951F922F
:101910000F920FB60F9211242F933F934F935F9323
:101920006F937F938F939F93AF93BF93CF93DF93E7
:10193000EF93FF93C091E900CF708091EC00D82F16
:10194000D17080FDD0E81092E9008091F000877F8F
:101950008093F00078940E94CB0C1092E900809163
:10196000F00088608093F000CD2BCF70C093E90029
:10197000FF91EF91DF91CF91BF91AF919F918F91A7
:101980007F916F915F914F913F912F910F900FBE7B
:101990000F901F9018951F93CF93DF93CDB7DEB7AD
:1019A000AA970FB6F894DEBF0FBECDBFE7EEF1E009
:1019B00088E08E0F9091F10091938E13FBCF0E94DF
:1019C00044088091E80083FF1FC18091E701909156
:1019D000E801492F50E04A30510508F015C1FA01DD
:1019E000EA5AFF4F0C94BF22803881F0823809F008
:1019F0000BC18091EB018F708093E9008091EB0027
:101A000085FB882780F91092E90006C08091E301E8
:101A10009091E401911182609091E800977F9093FA
:101A2000E8008093F1001092F100C8C0282F2D7FAC
:101A300009F0EAC0882319F0823061F0E5C0809196
:101A4000E901813009F0E0C0933009F080E0809333
:101A5000E4012BC08091E901811127C08091EB0145
:101A60008F7009F4D1C08093E9002091EB0020FF32
:101A70001CC0933021F48091EB00806214C09091DF
:101A8000EB0090619093EB0021E030E0A90102C0EF
:101A9000440F551F8A95E2F74093EA001092EA003E
:101AA0008091EB0088608093EB001092E9008091B8
:101AB000E800877F86C08111A7C01091E9011F77D8
:101AC0008091E3008078812B8093E3008091E8008F
:101AD000877F8093E8000E94E90A8091E80080FFF8
:101AE000FCCF8091E30080688093E300111102C075
:101AF00082E001C083E08093E60186C08058823096
:101B000008F082C08091E9019091EA018C3D53E098
:101B1000950779F583E08A838AE289834FB7F89441
:101B2000DE01139620E03EE051E2E32FF0E0509317
:101B30005700E49120FF03C0E295EF703F5FEF7024
:101B40008E2F90E0EA3010F0C79601C0C0968D93BA
:101B50009D932F5F243149F74FBF8091E800877F25
:101B60008093E8006AE270E0CE0101960E94F009DD
:101B700014C0AE014F5F5F4F6091EB010E943709C7
:101B8000BC01892B09F440C09091E800977F9093A5
:101B9000E80089819A810E94530A8091E8008B773E
:101BA0008093E80031C0803879F58091E800877F24
:101BB0008093E8008091E2018093F1008091E80039
:101BC0008E778093E8000E94E90A1EC081111CC034
:101BD0009091E9019230C0F48091E800877F809372
:101BE000E8009093E2010E94E90A8091E2018111EC
:101BF00006C08091E30087FD02C081E001C084E05F
:101C00008093E6010E9430088091E80083FF0AC0BB
:101C10008091E800877F8093E8008091EB008062EC
:101C20008093EB00AA960FB6F894DEBF0FBECDBF2F
:101C3000DF91CF911F9108950895CF938091E60190
:101C40008823A1F0C091E900CF709091EC00892F1A
:101C5000817090FD80E8C82B1092E9008091E80027
:101C600083FD0E94CB0CCF70C093E900CF91089503
:101C700090936901809368010895E0916801F09163
:101C80006901309721F00190F081E02D099480E006
:101C90000895E0916801F0916901309721F0028088
:101CA000F381E02D09940895E0916801F0916901B4
:101CB000309721F00480F581E02D0994089520915A
:101CC0006601309167018217930771F09093670165
:101CD00080936601E0916801F0916901309721F0ED
:101CE0000680F781E02D09940895209164013091D8
:101CF00065018217930771F09093650180936401E9
:101D0000E0916801F0916901309721F00084F1853C
:101D1000E02D0994089508950C948B0E0E94881A62
:101D20000E940E040C944E1BCF92DF92EF92FF9212
:101D30000F931F93CF93DF93CDB7DEB72B970FB6DB
:101D4000F894DEBF0FBECDBF0E9426048BE6C82EDE
:101D500081E0D82E00E010E0E02E802F0E941405D4
:101D6000F60141916F01F42EF826B1F40F5F1F4F79
:101D70000E30110589F78FEF89838A831B820E94B9
:101D8000911A8160782F9D838C8349815A816B8160
:101D90008D810E94370F40C09091CD0191FF04C00A
:101DA0008B870E941A058B8520E030E04F2D50E094
:101DB000922FBA01022E02C0759567950A94E2F738
:101DC00060FF24C02E83EF8221E030E0690102C071
:101DD000CC0CDD1C9A95E2F790E08C219D21892B9B
:101DE00009F420E028870E94911A8160782F9A8751
:101DF00089874E815F8168858A850E94370FF80147
:101E0000E559FE4F8081C826C08206C02F5F3F4F34
:101E10002630310569F6AACF0E94351E10916A015D
:101E20000E943D0E1817A1F00E943D0E80936A019A
:101E30002B960FB6F894DEBF0FBECDBFDF91CF91CA
:101E40001F910F91FF90EF90DF90CF900C9433078C
:101E50002B960FB6F894DEBF0FBECDBFDF91CF91AA
:101E60001F910F91FF90EF90DF90CF900895CF9347
:101E7000DF93CDB7DEB72B970FB6F894DEBF0FBE5A
:101E8000CDBF4F83588769877A878B87DE0111968C
:101E900086E0FD0111928A95E9F785E0FE0137960B
:101EA00001900D928A95E1F749815A816B817C817D
:101EB0008D819E810E9458162B960FB6F894DEBF36
:101EC0000FBECDBFDF91CF9108950895CF938823A2
:101ED00009F4C2C0C82F823859F40E943D0E81FD1A
:101EE000BBC089E30E94F4180E94C11989E30CC0A9
:101EF000833879F40E943D0E80FDAEC083E50E94D8
:101F0000F4180E94C11983E50E943619CF910C94F0
:101F1000C119843859F40E943D0E82FD9DC087E4AA
:101F20000E94F4180E94C11987E4EECF8CEF8C0F49
:101F3000813A48F48C2F0E947B2081118DC08C2F18
:101F40000E94F418E3CF80E28C0F883048F4C77009
:101F500081E001C0880FCA95EAF70E947A19D6CFAE
:101F60008BE58C0F833078F4C53A29F0C63A31F00E
:101F700083E890E005C081E890E002C082E890E04C
:101F8000CF910C945F0E88E58C0F833108F064C00C
:101F9000C83A39F1C93A41F1CA3A49F1CB3A51F15B
:101FA000CC3A59F1CD3A61F1C03B69F1CE3A71F1C9
:101FB000CF3A79F1C13B81F1C23B89F1C33B91F149
:101FC000C43B99F1C53BA1F1C63BA9F1C73BB1F1B7
:101FD000C83BB9F1C93BC1F1CA3BC9F180E090E00F
:101FE00038C082EE90E035C089EE90E032C08AEED3
:101FF00090E02FC085EB90E02CC086EB90E029C0EC
:1020000087EB90E026C08CEC90E023C08DEC90E054
:1020100020C083E891E01DC08AE891E01AC082E9FF
:1020200091E017C084E991E014C081E292E011C010
:1020300083E292E00EC084E292E00BC085E292E07F
:1020400008C086E292E005C087E292E002C08AE220
:1020500092E0CF910C94750ECF910895882309F4E6
:102060004BC0823859F40E943D0E81FF45C089E380
:102070000E94F4180E94C11989E30CC0833871F4DE
:102080000E943D0E80FF38C083E50E94F4180E9434
:10209000C11983E50E9436190C94C119843859F48A
:1020A0000E943D0E82FF28C087E40E94F4180E941F
:1020B000C11987E4EFCF9CEF980F913A58F390E263
:1020C000980F983050F4877091E001C0990F8A956D
:1020D000EAF7892F0E948019DFCF9BE5980F933094
:1020E00020F480E090E00C945F0E885A833120F455
:1020F00080E090E00C94750E0895882321F00E94F2
:102100007A190C94C1190895882321F00E9480192E
:102110000C94C1190895BF92CF92DF92EF92FF9273
:102120000F931F93CF93DF9300D000D000D0CDB793
:10213000DEB725E0FC01DE01119601900D922A9593
:10214000E1F7FC01D08011810281258122952F7059
:1021500043815481452B09F4EDC21F3F21F4FFEF69
:10216000DF1609F4E7C27C012E830E94650FD98235
:102170001A8389819A810E94B318182FB92E0E9460
:10218000B2180E9479172E81002319F00E94971926
:102190002E81EB2DE295EF70F0E0E05AFF4F0C94AA
:1021A000BF228B2D807F9B2D9F70F92E882319F0E5
:1021B000F29480EFF822002349F0FF2009F467C26F
:1021C0008F2D0E948A190E94C11961C2812F0E941D
:1021D0002E10FF2009F4AEC28F2D0E949019269672
:1021E0000FB6F894DEBF0FBECDBFDF91CF911F9128
:1021F0000F91FF90EF90DF90CF90BF900C94C1199A
:102200003B2D307F8B2D8F70303211F08295807F87
:10221000112319F0113021F12CC00023B9F0222331
:1022200009F4A0C1213009F09DC126960FB6F8949B
:10223000DEBF0FBECDBFDF91CF911F910F91FF90F9
:10224000EF90DF90CF90BF900C94AA19222319F041
:10225000213009F46FC28E830E94AD198E8196C120
:10226000002321F0223008F065C27CC1211162C236
:102270008DC1002321F0222309F474C108C2222356
:1022800009F484C119C22B2D26952695237030E0C0
:102290002115310521F021303105D1F04BC2002349
:1022A00021F0812F9B2D937002C080E090E0269654
:1022B0000FB6F894DEBF0FBECDBFDF91CF911F9157
:1022C0000F91FF90EF90DF90CF90BF900C945F0E36
:1022D000002321F0812F9B2D937002C080E090E0BD
:1022E00026960FB6F894DEBF0FBECDBFDF91CF911B
:1022F0001F910F91FF90EF90DF90CF90BF900C94C3
:10230000750E812F002319F00E943D1D02C00E940E
:10231000A51D26960FB6F894DEBF0FBECDBFDF9188
:10232000CF911F910F91FF90EF90DF90CF90BF90D2
:102330000C942A1E8B2D837009F07BC00111FAC109
:10234000812F829586958770880F880F912F9F70B7
:10235000C92ED12CE12CF12C082E04C0CC0CDD1C94
:10236000EE1CFF1C0A94D2F714FF12C04FE050E09D
:1023700060E070E004C0440F551F661F771F8A9508
:10238000D2F7CB01BA01609570958095909503C006
:1023900060E070E0CB012B2D269526952370422F0F
:1023A00050E042305105D9F04330510569F16C29B4
:1023B0007D298E299F294130510551F126960FB66E
:1023C000F894DEBF0FBECDBFDF91CF911F910F916B
:1023D000FF90EF90DF90CF90BF900C94A0176C29E6
:1023E0007D298E299F2926960FB6F894DEBF0FBE51
:1023F000CDBFDF91CF911F910F91FF90EF90DF90B4
:10240000CF90BF900C94BC170E94A017C701B601D3
:1024100026960FB6F894DEBF0FBECDBFDF91CF91E9
:102420001F910F91FF90EF90DF90CF90BF900C9491
:102430008417002319F08B2D817001C086958823A5
:1024400009F478C1812F829586958770880F880F4F
:10245000912F9F70C92ED12CE12CF12C082E04C095
:10246000CC0CDD1CEE1CFF1C0A94D2F714FF12C02A
:102470004FE050E060E070E004C0440F551F661F5D
:10248000771F8A95D2F7CB01BA0160957095809538
:10249000909503C060E070E0CB012B2D269526952A
:1024A0002370422F50E042305105D9F0433051059E
:1024B00069F16C297D298E299F294130510551F1FF
:1024C00026960FB6F894DEBF0FBECDBFDF91CF9139
:1024D0001F910F91FF90EF90DF90CF90BF900C94E1
:1024E0007A186C297D298E299F2926960FB6F89493
:1024F000DEBF0FBECDBFDF91CF911F910F91FF9037
:10250000EF90DF90CF90BF900C9496180E947A18AD
:10251000C701B60126960FB6F894DEBF0FBECDBF39
:10252000DF91CF911F910F91FF90EF90DF90CF90AF
:10253000BF900C945E18103FD1F118F4103E50F487
:10254000A1C0123F09F463C008F44CC0133F09F462
:1025500073C098C01F708B2D8F710023A1F00E9453
:10256000F717812F26960FB6F894DEBF0FBECDBFAA
:10257000DF91CF911F910F91FF90EF90DF90CF905F
:10258000BF900C947D100E941818812F26960FB6CC
:10259000F894DEBF0FBECDBFDF91CF911F910F9199
:1025A000FF90EF90DF90CF90BF900C9484100023A9
:1025B000A9F02111BFC08B2D8F7126960FB6F8940C
:1025C000DEBF0FBECDBFDF91CF911F910F91FF9066
:1025D000EF90DF90CF90BF900C943D18223008F020
:1025E000A9C0E9CF0023A9F08B2D8F7126960FB6D5
:1025F000F894DEBF0FBECDBFDF91CF911F910F9139
:10260000FF90EF90DF90CF90BF900C94F7170023CE
:1026100059F38B2D8F7126960FB6F894DEBF0FBE3F
:10262000CDBFDF91CF911F910F91FF90EF90DF9081
:10263000CF90BF900C941818002399F08B2D8F71B8
:1026400026960FB6F894DEBF0FBECDBFDF91CF91B7
:102650001F910F91FF90EF90DF90CF90BF900C945F
:10266000E21726960FB6F894DEBF0FBECDBFDF91FE
:10267000CF911F910F91FF90EF90DF90CF90BF907F
:102680000C94D8170023A9F0222309F4ADCF812F91
:1026900026960FB6F894DEBF0FBECDBFDF91CF9167
:1026A0001F910F91FF90EF90DF90CF90BF900C940F
:1026B000660F222309F4ADCF812F26960FB6F8942A
:1026C000DEBF0FBECDBFDF91CF911F910F91FF9065
:1026D000EF90DF90CF90BF900C942E104B2D4F7049
:1026E000612FC7010E94AE0226960FB6F894DEBF96
:1026F0000FBECDBFDF91CF911F910F91FF90EF9053
:10270000DF90CF90BF900C94FC164B2D4F70612F33
:10271000C70126960FB6F894DEBF0FBECDBFDF917E
:10272000CF911F910F91FF90EF90DF90CF90BF90CE
:102730000C94DA0526960FB6F894DEBF0FBECDBF17
:10274000DF91CF911F910F91FF90EF90DF90CF908D
:10275000BF9008950E9497190E94A7190E946C19B2
:102760000E94C1190E94DA1E0E942A1E80E090E099
:102770000E945F0E80E090E00C94750E0E94871915
:102780000C94AA130E94B318292F22952F7030E0C1
:102790002C3031054CF42A3031056CF422503109CB
:1027A0002230310588F407C02C30310549F02F3034
:1027B000310531F009C0803E48F0803F29F406C061
:1027C00093FB882780F9089580E0089581E00895BB
:1027D000CF93DF9300D000D01F92CDB7DEB70F901C
:1027E0000F900F900F900F90DF91CF910895CF939E
:1027F000DF9300D000D000D0CDB7DEB726960FB65D
:10280000F894DEBF0FBECDBFDF91CF9108951F9327
:10281000CF93DF93C091790116E080917A01C817B8
:1028200099F0D0E01C9FF0011D9FF00D1124E55898
:10283000FE4F4081518162817381848195810E9424
:10284000F7132196C770E9CFDF91CF911F910895BB
:102850004091AB015091AC016091AD017091AE011E
:102860008091AF019091B0010C94F7138091B00169
:1028700082958F7009F054C08091AD01882309F4CE
:102880004FC080917901A0917A016091AB01709164
:10289000AC014091AE015091AF01B6E08A1709F446
:1028A0003FC090E041155105C1F17F3F11F46F3FEA
:1028B000A1F1B89FF001B99FF00D1124E558FE4F2A
:1028C000218172132AC02081621327C02281211125
:1028D00024C0238134812417350710F42150310995
:1028E000241B350B283C3105C0F42091B0012F701A
:1028F00020612093B00126E0289FF001299FF00D70
:102900001124E058FE4F80818F70806180838BEAB4
:1029100091E00E948B100C94071401968770BECF33
:102920000895CF92DF92EF92FF920F931F93CF9370
:10293000DF93CDB7DEB762970FB6F894DEBF0FBE58
:10294000CDBF8C0185E0F801DE011D9601900D924E
:102950008A95E1F7D8014C9111965C9111971296E6
:102960006C9112971396CD90DC9014973091AB0137
:102970007091AC018091AE019091AF01009709F484
:102980006BC17F3F19F43F3F09F466C1E090AD0190
:10299000EE2009F4C0C02091B001C816D90628F075
:1029A000F601E81BF90BCF0104C0809590958C0DC2
:1029B0009D1DFF24F394883C910578F0F12C207F35
:1029C00009F0C6C07C2DD98AC88A89890E94E8137B
:1029D0008BEA91E00E948B10B1C0822F807F09F0BA
:1029E00046C0751314C0341312C0611110C02F708B
:1029F00020612093B0010E9428148BEA91E00E948C
:102A00008B108091B001D80115968C932EC0CD28E3
:102A100019F15F3F11F44F3FF9F0F62E61111CC020
:102A20008091790120917A0136E0821709F45AC029
:102A300090E0389FF001399FF00D1124E558FE4FCA
:102A40007181571306C07081471303C072817111E1
:102A500003C001968770E9CFF62E662309F418C1EA
:102A60008091B00181608093B001F12C11C1751388
:102A700008C0341306C0611104C08091B001D801B0
:102A8000C3C04D875E878D859E856A8B0E94C21369
:102A90006A898823E1F16623D1F12091B001822F68
:102AA00082958F7090E0029774F08091AB019091C5
:102AB000AC0198878F831986DB86CA862C87CE0166
:102AC00007960E948B1086E0F801ABEAB1E0019016
:102AD0000D928A95E1F70E9436140E942814FF2473
:102AE000F394D6C04D875E878D859E850E94B3186E
:102AF000292F22952F7030E0223031050CF0BCC018
:102B00009F7009F0B6C0805E883008F4C1C0C8016B
:102B10000E948B10E4CFC816D90608F453C0F60102
:102B2000E81BF90BCF01883C910508F450C0F12C4B
:102B30007C2DD98AC88A89890E94E813EBEAF1E0E2
:102B400086E0DF011D928A95E9F70E942814A0C053
:102B5000751314C0341312C0611110C08091B001FC
:102B6000F8018583C8010E948B1086E0EBEAF1E052
:102B7000DF011D928A95E9F7FE2C8AC04D875E879A
:102B80008D859E856A8B0E94C2136A89882309F409
:102B9000BECF662309F4BBCF2091B001822F82956E
:102BA0008F7090E002970CF48ECF8091AB019091E2
:102BB000AC019A8389831B82DD82CC822E83CE0175
:102BC00001967FCF809590958C0D9D1DACCFF62EF4
:102BD000662309F49CCF75132EC034132CC02091AA
:102BE000B00120FD1FC0822F82958F70D9F0D801CF
:102BF00015962C9315978F3049F08F5F982F9295EB
:102C0000907F822F8F70892B15968C93C8010E941C
:102C10008B1086E0F801ABEAB1E001900D928A9545
:102C2000E1F793CF86E0F801ABEAB1E001900D92B5
:102C30008A95E1F72DC04D875E878D859E850E9420
:102C4000C213811140CF8091B00181608093B001A7
:102C5000C8010E948B101CC0662309F458CF4D8711
:102C60005E878D859E850E94C213882309F44FCF0D
:102C70002ACF811148CF0CC0243031050CF047CF4A
:102C80009F7009F440CFF8019581907F09F03BCF08
:102C90008F2D62960FB6F894DEBF0FBECDBFDF91C9
:102CA000CF911F910F91FF90EF90DF90CF900895FB
:102CB0001F93CF93DF93CDB7DEB72C970FB6F89461
:102CC000DEBF0FBECDBF4F83588769877A878B875A
:102CD0009C87CE0107960E949114882369F08F810A
:102CE00098852A853B85232BF1F19F3F09F063C02E
:102CF0008F3F09F060C037C086E0FE013796DE01E5
:102D0000119601900D928A95E1F76F817885EA8599
:102D1000FB85309741F17F3F11F46F3F21F1209106
:102D20007A0130E0C90101968770992740917901B5
:102D300050E08417950709F447C069837A83FD83BF
:102D4000EC8396E0929FD001939FB00D1124A5587B
:102D5000BE4FFE01319601900D929A95E1F7809356
:102D60007A010E94071416E08091790190917A010E
:102D70008917C1F1189FC001112485589E4F0E94E8
:102D80009114882379F1E09179011E9FF0011124BB
:102D9000E558FE4F40815181628173818481958124
:102DA0000E94F7138091790190E00196877099272E
:102DB00080937901D9CF4F81588569857A858B8534
:102DC0009C850E94F713CFCF0E94BE1310927A0108
:102DD00010927901EBEAF1E086E0DF011D928A951D
:102DE000E9F7C1CF2C960FB6F894DEBF0FBECDBF6A
:102DF000DF91CF911F910895EF92FF920F931F9350
:102E0000CF93DF938C01892B09F46CC0F12CEE2455
:102E1000E394E8012196F8018491843740F48430EA
:102E200008F051C0813081F0823019F15BC08537E4
:102E300009F444C0A8F19CE7980F903708F052C0FD
:102E40008F770E942E1041C00E5F1F4FFE01C4916C
:102E500080E28C0F883048F4C7708E2D01C0880F37
:102E6000CA95EAF70E949A1914C08C2F0E94660F27
:102E70002DC00E5F1F4FFE01C49180E28C0F883081
:102E800058F4C7708E2D01C0880FCA95EAF70E94CA
:102E9000A0190E94C1191AC08C2F0E942E1016C0B2
:102EA0000E5F1F4FFE01C491CC2381F08FE99FE09C
:102EB0000197F1F700C00000C150F6CF0E5F1F4F21
:102EC000FE01F49003C00E94660F8E018F2D8823AF
:102ED00009F49FCFEFE9FFE03197F1F700C0000060
:102EE0008150F5CFDF91CF911F910F91FF90EF901F
:102EF000089508956093B5017093B6018093B7016A
:102F00009093B8010C94AA130F931F930091B501ED
:102F10001091B6012091B7013091B801DC01CB01CD
:102F2000802B912BA22BB32B8093B5019093B601EC
:102F3000A093B701B093B8011F910F910C94AA13FD
:102F40000F931F930091B5011091B6012091B70125
:102F50003091B801DC01CB0180239123A223B3235C
:102F60008093B5019093B601A093B701B093B801D7
:102F70001F910F910C94AA130F931F930091B50109
:102F80001091B6012091B7013091B801DC01CB015D
:102F900080279127A227B3278093B5019093B6018C
:102FA000A093B701B093B8011F910F910C94AA138D
:102FB0001092B1011092B2011092B3011092B401BB
:102FC0000C94AA1341E050E060E070E004C0440FAC
:102FD000551F661F771F8A95D2F74093B101509312
:102FE000B2016093B3017093B4010C94AA1341E051
:102FF00050E060E070E004C0440F551F661F771F6B
:103000008A95D2F78091B1019091B201A091B3015C
:10301000B091B401482B592B6A2B7B2B4093B10103
:103020005093B2016093B3017093B4010C94AA134E
:1030300041E050E060E070E004C0440F551F661F9F
:10304000771F8A95D2F7409550956095709580913D
:10305000B1019091B201A091B301B091B4014823A4
:1030600059236A237B234093B1015093B2016093AB
:10307000B3017093B4010C94AA1341E050E060E0F6
:1030800070E004C0440F551F661F771F8A95D2F762
:103090008091B1019091B201A091B301B091B401BE
:1030A000482759276A277B274093B1015093B201E3
:1030B0006093B3017093B4010C94AA130F931F9300
:1030C0000091B1011091B2012091B3013091B4018E
:1030D000DC01CB01802B912BA22BB32B8093B10170
:1030E0009093B201A093B301B093B4011F910F91DB
:1030F0000C94AA130F931F930091B1011091B20188
:103100002091B3013091B401DC01CB0180239123E4
:10311000A223B3238093B1019093B201A093B30192
:10312000B093B4011F910F910C94AA130F931F93A6
:103130000091B1011091B2012091B3013091B4011D
:10314000DC01CB0180279127A227B3278093B1010F
:103150009093B201A093B301B093B4011F910F916A
:103160000C94AA130895CF92DF92EF92FF920F93DF
:103170001F93CF93DF938C01C090B501D090B6011F
:10318000E090B701F090B8014091B1015091B201C7
:103190006091B3017091B401C42AD52AE62AF72AB6
:1031A000CFE1D0E0D701C6010C2E04C0B695A7959B
:1031B000979587950A94D2F780FF07C0B8018C2FA6
:1031C0000E94FD058130910531F4219758F7B8012F
:1031D00080E00E94FD05DF91CF911F910F91FF903C
:1031E000EF90DF90CF90089590910C01992321F0FA
:1031F00090910D01911109C020910E0130910F01A4
:10320000F90132969FEF40E01FC0982F9695969552
:1032100096959F3050F5E0910E01F0910F01E90F66
:10322000F11D877021E030E0A90102C0440F551F55
:103230008A95E2F7CA019181892B818308959F3F86
:1032400039F04F5F4E3041F051915813F8CF0DC017
:103250005111F7CF942FF5CF9F3F39F0F901E90FC6
:10326000F11D97FDFA9582830895089590910C01C0
:10327000992321F090910D01911109C020910E0127
:1032800030910F01F9013296205F3F4F1FC0982FF8
:103290009695969596959F30F0F4E0910E01F091F9
:1032A0000F01E90FF11D877021E030E0A90102C094
:1032B000440F551F8A95E2F7CA01809591818923B1
:1032C000818308953196E217F30729F090819813CE
:1032D000F9CF1082F7CF089581E090E0E0910E01E0
:1032E000F0910F01E80FF91F1082019680319105CE
:1032F000A9F708959091CC01892B8093CC01089572
:1033000080959091CC0189238093CC0108951092EF
:10331000CC0108959091CB01892B8093CB01089526
:1033200080959091CB0189238093CB0108951092D1
:10333000CB0108959091CA01892B8093CA01089509
:1033400080959091CA0189238093CA0108951092B3
:10335000CA0108958093B90108951092B9010895A2
:1033600080910E0190910F01FC0131969C01205F2C
:103370003F4F80E0919191118F5FE217F307D1F7F2
:103380000895E0910E01F0910F018091CC018083AE
:10339000E0910E01F0910F0190818091CB01892B7A
:1033A0008083E0910E01F0910F0190818091CA011C
:1033B000892B80838091B901882361F0E0910E010F
:1033C000F0910F019081892B80830E94B0198111A7
:1033D0001092B90180910E0190910F010C94490E49
:1033E000CF92DF92EF92FF926C01EE24FF24C11482
:1033F000D104E104F10421F0C701B60120E101C0CC
:1034000020E0C72ED82EE92EFF24C114D104E104F8
:10341000F10419F0285FC701B6016B017C0154E08B
:10342000F694E794D794C7945A95D1F7C114D10470
:10343000E104F10419F02C5FC701B6016B017C01B6
:1034400042E0F694E794D794C7944A95D1F7C11413
:10345000D104E104F10419F02E5FC701B601DC01CB
:10346000CB01B695A79597958795892B8A2B8B2BA2
:1034700009F02F5F822FFF90EF90DF90CF9008959B
:103480008091E601843039F11092CE0120E488E188
:1034900090E00FB6F894A895809360000FBE20933B
:1034A000600080E00E94330783B7817F846083BF20
:1034B00083B7816083BF7894889583B78E7F83BFFD
:1034C0000FB6F894A89580916000886180936000A1
:1034D000109260000FBE089508950895CF930E9442
:1034E0006C1A0E9426040E946D1AC0E08C2F0E9464
:1034F0001405811104C0CF5FCE30C1F701C081E057
:10350000CF9108950E94BE130E943D0E0C94330784
:1035100082E084BD93E095BD9AEF97BD80936E00E5
:1035200008952FB7F8948091CF019091D001A09188
:10353000D101B091D2012FBF0895CF92DF92EF92C7
:10354000FF920F931F932FB7F8944091CF015091A2
:10355000D0016091D1017091D2012FBF6A017B012E
:10356000EE24FF248C0120E030E0C016D106E206F4
:10357000F30610F4415051099A01281B390BC90177
:103580001F910F91FF90EF90DF90CF9008951F92C1
:103590000F920FB60F9211248F939F93AF93BF9307
:1035A0008091CF019091D001A091D101B091D20131
:1035B0000196A11DB11D8093CF019093D001A093DE
:1035C000D101B093D201BF91AF919F918F910F9094
:1035D0000FBE0F901F9018950E943A0BF8942FEF92
:1035E00087EA91E6215080409040E1F700C000005A
:1035F00087E090EBDC018093EF019093F001A093C2
:10360000F101B093F2019CE088E10FB6F894A8951F
:10361000809360000FBE90936000FFCFEF92FF9207
:103620000F931F93CF93DF93D82FC0E08C2F0E946E
:10363000140500E010E0E82EF12CC701002E02C0B6
:10364000959587950A94E2F780FD06C00F5F1F4F9E
:103650000630110591F709C0602F7C2F80E00E9491
:10366000DB05D813F3CF81E004C0CF5FCE30F1F695
:1036700080E0DF91CF911F910F91FF90EF9008951F
:10368000CF93C82F8CE20E940E1B882321F08C2F31
:10369000CF910C940E1B80E0CF910895CF930E94A0
:1036A000951C811102C00E947B1CC5E6C15049F0E7
:1036B0000E9426048FE39CE90197F1F700C0000007
:1036C000F5CF89E20E94401B811113C18AE20E945A
:1036D000401B81110E947B1C85E00E94401B8111D0
:1036E0000E94EC1A0E94A01C8093CD0187E00E94EA
:1036F000401B8823A9F18BE10E94401B882351F0D5
:103700008091CD0181FB222720F991E0922790FB47
:1037100081F90EC08EE00E94401B882361F08091E9
:10372000CD0182FB222720F991E0922790FB82F9BC
:103730008093CD0115C080E10E94401B9091CD0186
:10374000882341F093FB222720F981E0822780FB28
:1037500093F904C0892F809580FB90F99093CD0157
:103760008091CD010E94A41C0E94B21C8093E001B4
:1037700080EE0E94401B882341F08091E001982F49
:10378000909590FB80F98093E00189E30E94401BB3
:10379000882359F08091E00181FB222720F991E0F4
:1037A000922790FB81F98093E00182EE0E94401BFA
:1037B000882359F08091E00182FB222720F991E0D3
:1037C000922790FB82F98093E00186EE0E94401BD5
:1037D000882359F08091E00183FB222720F991E0B2
:1037E000922790FB83F98093E00183EE0E94401BB7
:1037F000882359F08091E00184FB222720F991E091
:10380000922790FB84F98093E00185E30E94401B9E
:10381000882359F08091E00185FB222720F991E06F
:10382000922790FB85F98093E00181E30E94401B81
:10383000882359F08091E00186FB222720F991E04E
:10384000922790FB86F98093E00181E10E94401B62
:10385000882359F08091E00187FB222720F991E02D
:10386000922790FB87F98093E0018091E0010E940C
:10387000B61C8091E00187FB882780F980930D01B9
:1038800087E20E94401BC82F8EE10E94401B8111DD
:10389000C2608FE10E94401B8111C46080E20E94DF
:1038A000401B8111C86081E20E94401B8111C061F0
:1038B00082E20E94401B8111C06283E20E94401B91
:1038C0008111C06484E20E94401B882311F0C0680B
:1038D00002C0CC2329F08C2F0E94AD1C6C2F03C09A
:1038E0000E94A91C682F70E080E090E0CF910C94BA
:1038F0007A17CF9108956DEE7EEF80E090E00E9400
:10390000F52260E082E090E00E94E72260E083E040
:1039100090E00E94E72260E084E090E00E94E722CD
:1039200060E085E090E00C94E72280E090E00E9467
:10393000E12221E08D3E9E4F09F020E0822F089584
:1039400082E090E00C94D922682F82E090E00C9401
:10395000E72283E090E00C94D922682F83E090E086
:103960000C94E72284E090E00C94D922682F84E044
:1039700090E00C94E7228091D50180FF0BC060910C
:10398000130185E0689FB0011124759567957595C1
:1039900067952BC081FF09C06091130185E0689F86
:1039A000B00111247595679520C082FF07C0609112
:1039B000130185E0689FB001112417C09091D601D2
:1039C0009923D1F060911201961788F72091130185
:1039D00085E0289F90011124929FA001939F500D94
:1039E000112470E0CA010E94AB226038710540F4D6
:1039F0006115710539F002C065E070E0862F089509
:103A00008FE7089581E008958091D50180FF08C077
:103A10006091110170E0759567957595679521C066
:103A200081FF06C06091110170E07595679519C01E
:103A300082FF04C06091110170E010C09091D60126
:103A40009923C1F0609110019617A0F780911101A0
:103A5000899FC001112470E00E94AB22603871057B
:103A600028F46115710521F0862F08958FE70895D8
:103A700081E0089561E070E0F4CF803F21F40E947E
:103A8000BB1C819504C0813F29F40E94BB1C80931C
:103A9000D9010895823F21F40E94BB1C819504C086
:103AA000833F29F40E94BB1C8093D8010895893F6D
:103AB00019F40E94041D05C08A3F31F40E94041DC0
:103AC00081958093DA0108958B3F21F40E94041DB3
:103AD000819504C08C3F29F40E94041D8093DB0172
:103AE0000895843F21F48091D701816017C0853FFC
:103AF00021F48091D701826011C0863F21F480912A
:103B0000D70184600BC0873F21F48091D701886082
:103B100005C0883F31F48091D70180618093D7013F
:103B200008958D3F21F48091D50181600BC08E3FB7
:103B300021F48091D501826005C08F3F29F48091E6
:103B4000D50184608093D5010895803F39F4809138
:103B5000D90187FF6CC01092D90169C0813F29F457
:103B60008091D9011816BCF362C09091D801823FB0
:103B700029F497FF5CC01092D80159C0833F19F413
:103B80001916CCF354C0893F41F48091DA0118161C
:103B90000CF04DC01092DA014AC08A3F29F480919E
:103BA000DA0187FF44C0F6CF8B3F39F48091DB0107
:103BB00087FF3DC01092DB013AC08C3F29F4809111
:103BC000DB011816BCF333C0843F21F48091D70188
:103BD0008E7F17C0853F21F48091D7018D7F11C062
:103BE000863F21F48091D7018B7F0BC0873F21F462
:103BF0008091D701877F05C0883F31F48091D7013C
:103C00008F7E8093D70113C08D3F21F48091D50121
:103C10008E7F0BC08E3F21F48091D5018D7F05C032
:103C20008F3F29F48091D5018B7F8093D5018091BE
:103C3000D80181110EC08091D90181110AC08091F3
:103C4000DA01811106C08091DB01811102C010925E
:103C5000D601089587ED91E00E94540E0E94911ABA
:103C60009093D4018093D30108951F93CF93DF9352
:103C70008091D3019091D4010E949D1AAC01909142
:103C8000D601992321F02091140130E006C0209143
:103C900015018AE0289F900111244217530708F468
:103CA00085C08091D801C091D901D091DA011091DD
:103CB000DB01811107C0C11175C0D11173C0111191
:103CC00071C074C09F3F19F09F5F9093D601181682
:103CD00024F40E94BB1C8093D8018091D80187FFF7
:103CE00005C00E94BB1C81958093D8011C1624F44A
:103CF0000E94BB1C8093D9018091D90187FF05C028
:103D00000E94BB1C81958093D9016091D8016623E4
:103D100031F1C091D901CC2311F1062E000C770BA3
:103D2000880B990B0E94B22123E333E343E35FE363
:103D30000E9416220E947A216093D8016C2FCC0F2A
:103D4000770B880B990B0E94B22123E333E343E303
:103D50005FE30E9416220E947A216093D9011D160A
:103D600024F40E94041D8093DA018091DA0187FF18
:103D700005C00E94041D81958093DA01111624F478
:103D80000E94041D8093DB018091DB0187FF05C049
:103D90000E94041D81958093DB01DF91CF911F91DB
:103DA0000C942A1E9F3F09F08FCF97CFDF91CF91C0
:103DB0001F910895E7EDF1E085E0DF011D928A95FE
:103DC000E9F71092D6011092D5010895833081F160
:103DD00028F4813059F08230D1F00895853009F40B
:103DE00049C0B8F1863009F456C008958091150194
:103DF000262F30E0280F311D2F3F310524F4680FA6
:103E00006093150108958FEF8093150108958091B7
:103E10001401262F30E0280F311D2F3F310524F4E7
:103E2000680F6093140108958FEF80931401089533
:103E300080911301262F30E0280F311D2F3F3105CF
:103E400024F4680F6093130108958FEF809313019A
:103E5000089580911201262F30E0280F311D2F3F49
:103E6000310524F4680F6093120108958FEF809359
:103E70001201089580911101262F30E0280F311D85
:103E80002F3F310524F4680F6093110108958FEFDF
:103E900080931101089580911001262F30E0280FA2
:103EA000311D2F3F310524F4680F609310010895F0
:103EB0008FEF809310010895833011F128F4813041
:103EC00049F0823091F00895853081F120F18630FB
:103ED000C1F1089580911501681720F4861B809325
:103EE0001501089510921501089580911401681725
:103EF00020F4861B809314010895109214010895F4
:103F000080911301681720F4861B80931301089594
:103F100010921301089580911201681720F4861BF6
:103F20008093120108951092120108958091110159
:103F3000681720F4861B80931101089510921101D7
:103F4000089580911001681720F4861B809310015A
:103F500008951092100108950F931F938D3109F465
:103F60006AC008F03FC08E3009F484C0C0F48730C6
:103F700009F46DC068F4863009F0B5C08091CD01B8
:103F8000817F8E7F8093CD0181E08093DD01ACC085
:103F9000883009F457C08B3009F46AC0A4C0863158
:103FA00009F466C078F4803109F477C0813109F0F2
:103FB0009AC00E94BE1390910D0181E089278093E1
:103FC0000D0156C0893109F453C08B3109F08BC003
:103FD0008091CD0181FB222720F991E0922790FB6F
:103FE00081F951C0853309F475C048F4873209F46A
:103FF00071C008F45EC0893209F46CC074C08334A7
:1040000030F48A3308F053C0883391F16CC08334A4
:1040100009F460C0883409F066C00E94BE130FEF37
:1040200013ED20E3015010402040E1F700C00000F4
:104030000E94EC1A1DC00E9434210E943D0E0E9475
:10404000330716C00E94A01C0E94B21C11C09091A0
:10405000CD01892F8095817080FB90F929F09660C1
:1040600098609093CD0140C0997F977F9093CD0148
:1040700081E03AC08091CD0182FB222720F991E0B6
:10408000922790FB82F98093CD01992389F3809147
:10409000CD0181608093CD01EBCF8091CD0183FB79
:1040A000222720F991E0922790FB83F9ECCF8953E6
:1040B00001C08D5141E050E060E070E08A019B0159
:1040C00004C0000F111F221F331F8A95D2F7C901A8
:1040D000B80104C061E070E080E090E00E947A17CF
:1040E0000E94BE13C5CF80E01F910F91089580E01C
:1040F000089580E00895CF93C82F8091DD0181302D
:1041000079F018F08230E9F187C0E0910E01F0916A
:104110000F018081813169F0823209F07FC009C0CE
:10412000E0910E01F0910F018081813111F0823216
:1041300061F48C2F0E947720811104C08C2F0E9483
:10414000AC1F1DC081E090E01AC08C2F0E94792026
:10415000811114C0C43179F048F4CB3079F0C0310A
:1041600009F060C082E08093DD0108C0C93219F017
:10417000C83321F057C01092DD0154C081E0817036
:1041800053C0C93289F118F5C43171F1A8F4C730B0
:1041900009F046C08AE08093150194E190931401E0
:1041A00093E0909313018093120188E080931101B2
:1041B00088E28093100134C0CE51C63088F5EC2FD0
:1041C000F0E0E65DFE4F80818093DC0129C0CE34B3
:1041D000E9F020F4CB3421F56AE013C0C13579F061
:1041E000C235F1F461E00DC08091DC01882319F043
:1041F0001092DC0115C081E08093DD0115C061E003
:1042000006C08091DC010E94E61E0AC06AE080912F
:10421000DC010E945C1F04C01092DD0180E004C03C
:1042200081E002C080E0ABCFCF910895E1E8F0E0FB
:104230008081886080838081816080838FB7F894DB
:1042400093E09093890090ED909388008FBF08953C
:10425000EFE6F0E08081826080830895EFE6F0E091
:1042600080818D7F80830895EFE6F0E0908182E089
:104270008927808308951F920F920FB60F92112401
:104280002F933F934F935F936F937F938F939F935E
:10429000AF93BF93EF93FF938091DE019091DF0185
:1042A00001969093DF018093DE01811103C082E0CB
:1042B0000E943307E091DF01E695E695F0E0E657CE
:1042C000FB4FE4918091DE018E1303C080E00E94D9
:1042D0003307FF91EF91BF91AF919F918F917F91A4
:1042E0006F915F914F913F912F910F900FBE0F9063
:1042F0001F9018950E9481216894B1110C9410228E
:1043000008950E94F52188F09F5798F0B92F9927BA
:10431000B751B0F0E1F0660F771F881F991F1AF0B0
:10432000BA95C9F714C0B13091F00E940F22B1E0E4
:1043300008950C940F22672F782F8827B85F39F0E3
:10434000B93FCCF3869577956795B395D9F73EF449
:1043500090958095709561957F4F8F4F9F4F0895F1
:10436000E89409C097FB3EF490958095709561950F
:104370007F4F8F4F9F4F9923A9F0F92F96E9BB27C5
:104380009395F695879577956795B795F111F8CF41
:10439000FAF4BB0F11F460FF1BC06F5F7F4F8F4FAC
:1043A0009F4F16C0882311F096E911C0772321F0A2
:1043B0009EE8872F762F05C0662371F096E8862F3A
:1043C00070E060E02AF09A95660F771F881FDAF791
:1043D000880F9695879597F9089557FD9058440F43
:1043E000551F59F05F3F71F04795880F97FB991F54
:1043F00061F09F3F79F08795089512161306140611
:10440000551FF2CF4695F1DF08C01616170618069D
:10441000991FF1CF86957105610508940895E89478
:10442000BB2766277727CB0197F908950E94292299
:104430000C949A220E948C2238F00E94932220F041
:10444000952311F00C9483220C94892211240C944E
:1044500010220E94ED2170F3959FC1F3950F50E05B
:10446000551F629FF001729FBB27F00DB11D639F26
:10447000AA27F00DB11DAA1F649F6627B00DA11DCC
:10448000661F829F2227B00DA11D621F739FB00D72
:10449000A11D621F839FA00D611D221F749F3327E2
:1044A000A00D611D231F849F600D211D822F762F7B
:1044B0006A2F11249F5750409AF0F1F088234AF058
:1044C000EE0FFF1FBB1F661F771F881F91505040C4
:1044D000A9F79E3F510580F00C9483220C94102282
:1044E0005F3FE4F3983ED4F3869577956795B7954B
:1044F000F795E7959F5FC1F7FE2B880F911D969565
:10450000879597F9089597F99F6780E870E060E0D4
:1045100008959FEF80EC089500240A94161617065C
:1045200018060906089500240A94121613061406A4
:1045300005060895092E0394000C11F4882352F007
:10454000BB0F40F4BF2B11F460FF04C06F5F7F4FBF
:104550008F4F9F4F089597FB072E16F4009407D0B6
:1045600077FD09D00E94C52207FC05D03EF4909546
:1045700081959F4F0895709561957F4F0895EE0F37
:10458000FF1F0590F491E02D0994AA1BBB1B51E17C
:1045900007C0AA1FBB1FA617B70710F0A61BB70BB3
:1045A000881F991F5A95A9F780959095BC01CD0158
:1045B0000895F999FECF92BD81BDF89A992780B5EB
:1045C0000895A8E1B0E042E050E00C94FC22262FD0
:1045D000F999FECF1FBA92BD81BD20BD0FB6F894E8
:1045E000FA9AF99A0FBE019608950E94E722272FA2
:1045F0000C94E822DC01CB01FC01F999FECF06C046
:10460000F2BDE1BDF89A319600B40D924150504090
:08461000B8F70895F894FFCFFC
:1046180020023507C307A0076C0738070101BA0154
:1046280028080A03140A3F4D36394B04FE03C80311
:104638008F0322033B0354036D03010203040506A1
:044648000708090056
:00000001FF

Binary file not shown.

After

Width:  |  Height:  |  Size: 72 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 58 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 52 KiB

@ -0,0 +1,185 @@
#include "ergodox_ez.h"
#include "debug.h"
#include "action_layer.h"
#define BASE 0 // default layer
#define SYMB 1 // symbols
#define MDIA 2 // media keys
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
/* Keymap 0: Basic layer
*
* ,--------------------------------------------------. ,--------------------------------------------------.
* | = | 1 | 2 | 3 | 4 | 5 | BrBck| | Play | 6 | 7 | 8 | 9 | 0 | \ / L2 |
* |--------+------+------+------+------+-------------| |------+------+------+------+------+------+--------|
* | Esc | ' | , | . | P | Y | Del | | Ins | F | G | C | R | L | / |
* |--------+------+------+------+------+------| | | |------+------+------+------+------+--------|
* | BkSp | A | O | E | U | I |------| |------| D | H | T | N | S | - |
* |--------+------+------+------+------+------| Hyper| | Meh |------+------+------+------+------+--------|
* | LShift |:/Ctrl| Q | J | K | X | | | | B | M | W | V |Z/Ctrl| RShift |
* `--------+------+------+------+------+-------------' `-------------+------+------+------+------+--------'
* |Grv/L1| LAlt | LGui | Left | Right| | Up | Down | [ | ] | ~L1 |
* `----------------------------------' `----------------------------------'
* ,-------------. ,---------------.
* | App | L1 | | L2 |PrntScr |
* ,------|------|------| |------+--------+------.
* | | | Home | | PgUp | | |
* | Space| Tab |------| |------| AltShf |Enter |
* | | | End | | PgDn | | |
* `--------------------' `----------------------'
*/
// If it accepts an argument (i.e, is a function), it doesn't need KC_.
// Otherwise, it needs KC_*
[BASE] = KEYMAP( // layer 0 : default
// left hand
KC_EQL, KC_1, KC_2, KC_3, KC_4, KC_5, KC_WBAK,
KC_ESC, KC_QUOT, KC_COMM, KC_DOT, KC_P, KC_Y, KC_DELT,
KC_BSPC, KC_A, KC_O, KC_E, KC_U, KC_I,
KC_LSFT, CTL_T(KC_SCLN), KC_Q, KC_J, KC_K, KC_X, ALL_T(KC_NO),
LT(SYMB,KC_GRV),KC_LALT, KC_LGUI, KC_LEFT,KC_RGHT,
CTL_T(KC_APP), TG(1),
KC_HOME,
KC_SPC,KC_TAB,KC_END,
// right hand
KC_MPLY, KC_6, KC_7, KC_8, KC_9, KC_0, LT(MDIA, KC_BSLS),
KC_INS, KC_F, KC_G, KC_C, KC_R, KC_L, KC_SLSH,
KC_D, KC_H, KC_T, KC_N, KC_S, KC_MINS,
MEH_T(KC_NO),KC_B, KC_M, KC_W, KC_V, CTL_T(KC_Z), KC_RSFT,
KC_UP, KC_DOWN,KC_LBRC,KC_RBRC, KC_FN1,
TG(2), KC_PSCREEN,
KC_PGUP,
KC_PGDN,RALT(KC_RSFT), KC_ENT
),
/* Keymap 1: Symbol & Media Layer
*
* ,--------------------------------------------------. ,--------------------------------------------------.
* | | F1 | F2 | F3 | F4 | F5 | | | | F6 | F7 | F8 | F9 | F10 | F11 |
* |--------+------+------+------+------+-------------| |------+------+------+------+------+------+--------|
* | | ! | @ | { | } | | | | | | Up | 7 | 8 | 9 | * | F12 |
* |--------+------+------+------+------+------| | | |------+------+------+------+------+--------|
* | | # | $ | ( | ) | ` |------| |------| Down | 4 | 5 | 6 | + | |
* |--------+------+------+------+------+------| | | |------+------+------+------+------+--------|
* | | % | ^ | [ | ] | ~ | | | | & | 1 | 2 | 3 | \ | |
* `--------+------+------+------+------+-------------' `-------------+------+------+------+------+--------'
* | | | | Prev | Next | | | . | 0 | = | |
* `----------------------------------' `----------------------------------'
* ,-------------. ,-------------.
* | | | | | |
* ,------|------|------| |------+------+------.
* | | | | |VolUp | | |
* | | |------| |------| Mute | |
* | | | | |VolDn | | |
* `--------------------' `--------------------'
*/
// SYMBOLS
[SYMB] = KEYMAP(
// left hand
KC_TRNS,KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_TRNS,
KC_TRNS,KC_EXLM,KC_AT, KC_LCBR,KC_RCBR,KC_PIPE,KC_TRNS,
KC_TRNS,KC_HASH,KC_DLR, KC_LPRN,KC_RPRN,KC_GRV,
KC_TRNS,KC_PERC,KC_CIRC,KC_LBRC,KC_RBRC,KC_TILD,KC_TRNS,
KC_TRNS,KC_TRNS,KC_TRNS,KC_MPRV,KC_MNXT,
KC_TRNS,KC_TRNS,
KC_TRNS,
KC_TRNS,KC_TRNS,KC_TRNS,
// right hand
KC_TRNS, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11,
KC_TRNS, KC_UP, KC_7, KC_8, KC_9, KC_ASTR, KC_F12,
KC_DOWN, KC_4, KC_5, KC_6, KC_PLUS, KC_TRNS,
KC_TRNS, KC_AMPR, KC_1, KC_2, KC_3, KC_BSLS, KC_TRNS,
KC_TRNS,KC_DOT, KC_0, KC_EQL, KC_TRNS,
KC_TRNS, KC_TRNS,
KC_VOLU,
KC_VOLD, KC_MUTE, KC_TRNS
),
/* Keymap 2: QWERTY Layer
*
* ,--------------------------------------------------. ,--------------------------------------------------.
* | | | | | | | | | | | | | | | |
* |--------+------+------+------+------+-------------| |------+------+------+------+------+------+--------|
* | | Q | W | E | R | T | | | | Y | U | I | O | P | |
* |--------+------+------+------+------+------| | | |------+------+------+------+------+--------|
* | | A | S | D | F | G |------| |------| H | J | K | L | ; | |
* |--------+------+------+------+------+------| | | |------+------+------+------+------+--------|
* | |Z/Ctrl| X | C | V | B | | | | N | M | , | . |//Ctrl| |
* `--------+------+------+------+------+-------------' `-------------+------+------+------+------+--------'
* | | | | | | | | | | | |
* `----------------------------------' `----------------------------------'
* ,-------------. ,-------------.
* | | | | | |
* ,------|------|------| |------+------+------.
* | | | | | | | |
* | | |------| |------| | |
* | | | | | | | |
* `--------------------' `--------------------'
*/
// MEDIA AND MOUSE
KEYMAP( // layer 0 : default
// left hand
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,
KC_TRNS, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_TRNS,
KC_TRNS, KC_A, KC_S, KC_D, KC_F, KC_G,
KC_TRNS, CTL_T(KC_Z), KC_X, KC_C, KC_V, KC_B, KC_TRNS,
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,KC_TRNS,
KC_TRNS, KC_TRNS,
KC_TRNS,
KC_TRNS, KC_TRNS, KC_TRNS,
// right hand
KC_TRNS, KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS, KC_TRNS,
KC_TRNS, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_TRNS,
KC_H, KC_J, KC_K, KC_L, LT(MDIA, KC_SCLN),KC_TRNS,
KC_TRNS, KC_N, KC_M, KC_COMM,KC_DOT, CTL_T(KC_SLSH), KC_TRNS,
KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS, KC_TRNS,
KC_TRNS, KC_TRNS,
KC_TRNS,
KC_TRNS, KC_TRNS, KC_TRNS
),
};
const uint16_t PROGMEM fn_actions[] = {
[1] = ACTION_LAYER_TAP_TOGGLE(SYMB) // FN1 - Momentary Layer 1 (Symbols)
};
const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt)
{
// MACRODOWN only works in this function
switch(id) {
case 0:
if (record->event.pressed) {
register_code(KC_RSFT);
} else {
unregister_code(KC_RSFT);
}
break;
}
return MACRO_NONE;
};
// Runs just one time when the keyboard initializes.
void matrix_init_user(void) {
};
// Runs constantly in the background, in a loop.
void matrix_scan_user(void) {
uint8_t layer = biton32(layer_state);
ergodox_board_led_off();
ergodox_right_led_1_off();
ergodox_right_led_2_off();
ergodox_right_led_3_off();
switch (layer) {
// TODO: Make this relevant to the ErgoDox EZ.
case 1:
ergodox_right_led_1_on();
break;
case 2:
ergodox_right_led_2_on();
break;
default:
// none
break;
}
};

@ -0,0 +1,136 @@
// This is the canonical layout file for the Quantum project. If you want to add another keyboard,
// this is the style you want to emulate.
//
// Custom style by tak3over. Dropped the dvorak layer as it was not being used by me. Shifted over
// keys to make room for a second function key on the left side. Now has a keypad and most all
// standard keyboard keys. Including Delete. See TK layer.
#include "planck.h"
#ifdef BACKLIGHT_ENABLE
#include "backlight.h"
#endif
// Each layer gets a name for readability, which is then used in the keymap matrix below.
// The underscores don't mean anything - you can have a layer called STUFF or any other name.
// Layer names don't all need to be of the same length, obviously, and you can also skip them
// entirely and just use numbers.
#define _QW 0
#define _CM 1
#define _TK 2
#define _LW 3
#define _RS 4
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
/* Qwerty
* ,-----------------------------------------------------------------------------------.
* | Tab | Q | W | E | R | T | Y | U | I | O | P | Bksp |
* |------+------+------+------+------+-------------+------+------+------+------+------|
* | Esc | A | S | D | F | G | H | J | K | L | ; | " |
* |------+------+------+------+------+------|------+------+------+------+------+------|
* | Shift| Z | X | C | V | B | N | M | , | . | / |Enter |
* |------+------+------+------+------+------+------+------+------+------+------+------|
* | Ctrl | Alt | GUI | TK |Raise | Space |Lower | Left | Down | Up |Right |
* `-----------------------------------------------------------------------------------'
*/
[_QW] = {
{KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_BSPC},
{KC_ESC, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT},
{KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_ENT },
{KC_LCTL, KC_LALT, KC_LGUI, MO(_TK), MO(_LW), KC_SPC, KC_SPC, MO(_RS), KC_LEFT, KC_DOWN, KC_UP, KC_RGHT}
},
/* Colemak
* ,-----------------------------------------------------------------------------------.
* | Tab | Q | W | F | P | G | J | L | U | Y | ; | Bksp |
* |------+------+------+------+------+-------------+------+------+------+------+------|
* | Esc | A | R | S | T | D | H | N | E | I | O | " |
* |------+------+------+------+------+------|------+------+------+------+------+------|
* | Shift| Z | X | C | V | B | K | M | , | . | / |Enter |
* |------+------+------+------+------+------+------+------+------+------+------+------|
* | Ctrl | Alt | GUI | TK |Raise | Space |Lower | Left | Down | Up |Right |
* `-----------------------------------------------------------------------------------'
*/
[_CM] = {
{KC_TAB, KC_Q, KC_W, KC_F, KC_P, KC_G, KC_J, KC_L, KC_U, KC_Y, KC_SCLN, KC_BSPC},
{KC_ESC, KC_A, KC_R, KC_S, KC_T, KC_D, KC_H, KC_N, KC_E, KC_I, KC_O, KC_QUOT},
{KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_K, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_ENT },
{KC_LCTL, KC_LALT, KC_LGUI, MO(_TK), MO(_LW), KC_SPC, KC_SPC, MO(_RS), KC_LEFT, KC_DOWN, KC_UP, KC_RGHT}
},
/* TenKey, Arrow, and Function key Layer
* ,-----------------------------------------------------------------------------------.
* | ` | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 0 | Bksp |
* |------+------+------+------+------+-------------+------+------+------+------+------|
* | Esc | Left | Up | Down | Right| Del | * | 4 | 5 | 6 | + | / |
* |------+------+------+------+------+------|------+------+------+------+------+------|
* | Shift| Home | PGUP | PGDN | End | Ins | . | 1 | 2 | 3 | - |Enter |
* |------+------+------+------+------+------+------+------+------+------+------+------|
* | Ctrl | Alt | GUI | TK |Raise | Space |Lower | Left | Down | Up |Right |
* `-----------------------------------------------------------------------------------'
*/
[_TK] = {
{KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_BSPC},
{KC_ESC, KC_LEFT, KC_UP, KC_DOWN, KC_RGHT, KC_DEL, KC_ASTR, KC_4, KC_5, KC_6, KC_PLUS, KC_SLSH},
{KC_LSFT, KC_HOME, KC_PGUP, KC_PGDN, KC_END, KC_INS, KC_DOT, KC_1, KC_2, KC_3, KC_MINS, KC_ENT },
{KC_LCTL, KC_LALT, KC_LGUI, MO(_TK), MO(_LW), KC_SPC, KC_SPC, MO(_RS), KC_LEFT, KC_DOWN, KC_UP, KC_RGHT}
},
/* Raise
* ,-----------------------------------------------------------------------------------.
* | ` | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 0 | Bksp |
* |------+------+------+------+------+-------------+------+------+------+------+------|
* | Esc | F1 | F2 | F3 | F4 | F5 | F6 | - | = | [ | ] | \ |
* |------+------+------+------+------+------|------+------+------+------+------+------|
* | Shift| F7 | F8 | F9 | F10 | F11 | F12 |Qwerty|Colemk|Brite | Reset|Enter |
* |------+------+------+------+------+------+------+------+------+------+------+------|
* | Ctrl | Alt | GUI | TK |Raise | Space |Lower | Next | Vol- | Vol+ | Play |
* `-----------------------------------------------------------------------------------'
*/
[_RS] = {
{KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_BSPC},
{KC_TRNS, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_MINS, KC_EQL, KC_LBRC, KC_RBRC, KC_BSLS},
{KC_TRNS, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, DF(_QW), DF(_CM), M(0), RESET, KC_TRNS},
{KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_MNXT, KC_VOLD, KC_VOLU, KC_MPLY}
},
/* Lower
* ,-----------------------------------------------------------------------------------.
* | ~ | ! | @ | # | $ | % | ^ | & | * | ( | ) | Bksp |
* |------+------+------+------+------+-------------+------+------+------+------+------|
* | Esc | F1 | F2 | F3 | F4 | F5 | F6 | _ | + | { | } | | |
* |------+------+------+------+------+------|------+------+------+------+------+------|
* | Shift| F7 | F8 | F9 | F10 | F11 | F12 |Qwerty|Colemk|Brite | Reset|Enter |
* |------+------+------+------+------+------+------+------+------+------+------+------|
* | Ctrl | Alt | GUI | TK |Raise | Space |Lower | Next | Vol- | Vol+ | Play |
* `-----------------------------------------------------------------------------------'
*/
[_LW] = {
{KC_TILD, KC_EXLM, KC_AT, KC_HASH, KC_DLR, KC_PERC, KC_CIRC, KC_AMPR, KC_ASTR, KC_LPRN, KC_RPRN, KC_BSPC},
{KC_TRNS, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_UNDS, KC_PLUS, KC_LCBR, KC_RCBR, KC_PIPE},
{KC_TRNS, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, DF(_QW), DF(_CM), M(0), RESET, KC_TRNS},
{KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_MNXT, KC_VOLD, KC_VOLU, KC_MPLY}
}
};
const uint16_t PROGMEM fn_actions[] = {
};
const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt)
{
// MACRODOWN only works in this function
switch(id) {
case 0:
if (record->event.pressed) {
register_code(KC_RSFT);
#ifdef BACKLIGHT_ENABLE
backlight_step();
#endif
} else {
unregister_code(KC_RSFT);
}
break;
}
return MACRO_NONE;
};

@ -0,0 +1,3 @@
dfu-programmer atmega32u4 erase --force
dfu-programmer atmega32u4 flash preonic_pcb.hex
dfu-programmer atmega32u4 reset

@ -0,0 +1,34 @@
# The Default Planck Layout
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
[_QW] = { /* Qwerty */
{KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_BSPC},
{KC_ESC, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT},
{KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_ENT },
{M(0), KC_LCTL, KC_LALT, KC_LGUI, MO(_LW), KC_SPC, KC_SPC, MO(_RS), KC_LEFT, KC_DOWN, KC_UP, KC_RGHT}
},
[_CM] = { /* Colemak */
{KC_TAB, KC_Q, KC_W, KC_F, KC_P, KC_G, KC_J, KC_L, KC_U, KC_Y, KC_SCLN, KC_BSPC},
{KC_ESC, KC_A, KC_R, KC_S, KC_T, KC_D, KC_H, KC_N, KC_E, KC_I, KC_O, KC_QUOT},
{KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_K, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_ENT },
{M(0), KC_LCTL, KC_LALT, KC_LGUI, MO(_LW), KC_SPC, KC_SPC, MO(_RS), KC_LEFT, KC_DOWN, KC_UP, KC_RGHT}
},
[_DV] = { /* Dvorak */
{KC_TAB, KC_QUOT, KC_COMM, KC_DOT, KC_P, KC_Y, KC_F, KC_G, KC_C, KC_R, KC_L, KC_BSPC},
{KC_ESC, KC_A, KC_O, KC_E, KC_U, KC_I, KC_D, KC_H, KC_T, KC_N, KC_S, KC_SLSH},
{KC_LSFT, KC_SCLN, KC_Q, KC_J, KC_K, KC_X, KC_B, KC_M, KC_W, KC_V, KC_Z, KC_ENT },
{M(0), KC_LCTL, KC_LALT, KC_LGUI, MO(_LW), KC_SPC, KC_SPC, MO(_RS), KC_LEFT, KC_DOWN, KC_UP, KC_RGHT}
},
[_RS] = { /* RAISE */
{KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_BSPC},
{KC_TRNS, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_MINS, KC_EQL, KC_LBRC, KC_RBRC, KC_BSLS},
{KC_TRNS, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, DF(_QW), DF(_CM), DF(_DV), RESET, KC_TRNS},
{KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_MNXT, KC_VOLD, KC_VOLU, KC_MPLY}
},
[_LW] = { /* LOWER */
{KC_TILD, KC_EXLM, KC_AT, KC_HASH, KC_DLR, KC_PERC, KC_CIRC, KC_AMPR, KC_ASTR, KC_LPRN, KC_RPRN, KC_BSPC},
{KC_TRNS, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_UNDS, KC_PLUS, KC_LCBR, KC_RCBR, KC_PIPE},
{KC_TRNS, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, DF(_QW), DF(_CM), DF(_DV), RESET, KC_TRNS},
{KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_MNXT, KC_VOLD, KC_VOLU, KC_MPLY}
}
};

@ -0,0 +1,96 @@
// This is the canonical layout file for the Quantum project. If you want to add another keyboard,
// this is the style you want to emulate.
#include "preonic.h"
#ifdef BACKLIGHT_ENABLE
#include "backlight.h"
#endif
// Each layer gets a name for readability, which is then used in the keymap matrix below.
// The underscores don't mean anything - you can have a layer called STUFF or any other name.
// Layer names don't all need to be of the same length, obviously, and you can also skip them
// entirely and just use numbers.
#define _QW 0
#define _CM 1
#define _DV 2
#define _LW 3
#define _RS 4
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
[_QW] = { /* Qwerty */
{KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_BSPC},
{KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_BSPC},
{KC_ESC, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT},
{KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_ENT },
{M(0), KC_LCTL, KC_LALT, KC_LGUI, MO(_LW), KC_SPC, KC_SPC, MO(_RS), KC_LEFT, KC_DOWN, KC_UP, KC_RGHT}
},
[_CM] = { /* Colemak */
{KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_BSPC},
{KC_TAB, KC_Q, KC_W, KC_F, KC_P, KC_G, KC_J, KC_L, KC_U, KC_Y, KC_SCLN, KC_BSPC},
{KC_ESC, KC_A, KC_R, KC_S, KC_T, KC_D, KC_H, KC_N, KC_E, KC_I, KC_O, KC_QUOT},
{KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_K, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_ENT },
{M(0), KC_LCTL, KC_LALT, KC_LGUI, MO(_LW), KC_SPC, KC_SPC, MO(_RS), KC_LEFT, KC_DOWN, KC_UP, KC_RGHT}
},
[_DV] = { /* Dvorak */
{KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_BSPC},
{KC_TAB, KC_QUOT, KC_COMM, KC_DOT, KC_P, KC_Y, KC_F, KC_G, KC_C, KC_R, KC_L, KC_BSPC},
{KC_ESC, KC_A, KC_O, KC_E, KC_U, KC_I, KC_D, KC_H, KC_T, KC_N, KC_S, KC_SLSH},
{KC_LSFT, KC_SCLN, KC_Q, KC_J, KC_K, KC_X, KC_B, KC_M, KC_W, KC_V, KC_Z, KC_ENT },
{M(0), KC_LCTL, KC_LALT, KC_LGUI, MO(_LW), KC_SPC, KC_SPC, MO(_RS), KC_LEFT, KC_DOWN, KC_UP, KC_RGHT}
},
[_RS] = { /* RAISE */
{KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_BSPC},
{KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_BSPC},
{KC_TRNS, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_MINS, KC_EQL, KC_LBRC, KC_RBRC, KC_BSLS},
{KC_TRNS, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, DF(_QW), DF(_CM), DF(_DV), RESET, KC_TRNS},
{KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_MNXT, KC_VOLD, KC_VOLU, KC_MPLY}
},
[_LW] = { /* LOWER */
{KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_BSPC},
{KC_TILD, KC_EXLM, KC_AT, KC_HASH, KC_DLR, KC_PERC, KC_CIRC, KC_AMPR, KC_ASTR, KC_LPRN, KC_RPRN, KC_BSPC},
{KC_TRNS, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_UNDS, KC_PLUS, KC_LCBR, KC_RCBR, KC_PIPE},
{KC_TRNS, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, DF(_QW), DF(_CM), DF(_DV), RESET, KC_TRNS},
{KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_MNXT, KC_VOLD, KC_VOLU, KC_MPLY}
}
};
const uint16_t PROGMEM fn_actions[] = {
};
float start_up[][2] = {
{440.0*pow(2.0,(67)/12.0), 600},
{0, 50},
{440.0*pow(2.0,(64)/12.0), 400},
{0, 50},
{440.0*pow(2.0,(55)/12.0), 400},
{0, 50},
{440.0*pow(2.0,(60)/12.0), 400},
{0, 50},
{440.0*pow(2.0,(64)/12.0), 1000},
};
const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt)
{
// MACRODOWN only works in this function
switch(id) {
case 0:
if (record->event.pressed) {
register_code(KC_RSFT);
#ifdef BACKLIGHT_ENABLE
backlight_step();
#endif
} else {
unregister_code(KC_RSFT);
}
break;
}
return MACRO_NONE;
};
void * matrix_init_user(void) {
#ifdef AUDIO_ENABLE
init_notes();
play_notes(&start_up, 9, false);
#endif
}

@ -0,0 +1,3 @@
# Lock layout
This layout is designed for having a lock switch in the lower-left-hand corner, and for experimenting with MIDI/audio features. It's constantly in development, so don't expect anything to work/be documented correctly!

@ -0,0 +1,105 @@
// This is the canonical layout file for the Quantum project. If you want to add another keyboard,
// this is the style you want to emulate.
#include "preonic.h"
#ifdef BACKLIGHT_ENABLE
#include "backlight.h"
#endif
#include "action_layer.h"
// Each layer gets a name for readability, which is then used in the keymap matrix below.
// The underscores don't mean anything - you can have a layer called STUFF or any other name.
// Layer names don't all need to be of the same length, obviously, and you can also skip them
// entirely and just use numbers.
#define _QW 0
#define _CM 1
#define _DV 2
#define _LW 3
#define _RS 4
#define _MI 5
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
[_QW] = { /* Qwerty */
{KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_BSPC},
{KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_BSPC},
{KC_ESC, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT},
{KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_ENT },
{M(0), KC_LCTL, KC_LALT, KC_LGUI, MO(_LW), KC_SPC, KC_SPC, MO(_RS), KC_LEFT, KC_DOWN, KC_UP, KC_RGHT}
},
[_CM] = { /* Colemak */
{KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_BSPC},
{KC_TAB, KC_Q, KC_W, KC_F, KC_P, KC_G, KC_J, KC_L, KC_U, KC_Y, KC_SCLN, KC_BSPC},
{KC_ESC, KC_A, KC_R, KC_S, KC_T, KC_D, KC_H, KC_N, KC_E, KC_I, KC_O, KC_QUOT},
{KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_K, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_ENT },
{M(0), KC_LCTL, KC_LALT, KC_LGUI, MO(_LW), KC_SPC, KC_SPC, MO(_RS), KC_LEFT, KC_DOWN, KC_UP, KC_RGHT}
},
[_DV] = { /* Dvorak */
{KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_BSPC},
{KC_TAB, KC_QUOT, KC_COMM, KC_DOT, KC_P, KC_Y, KC_F, KC_G, KC_C, KC_R, KC_L, KC_BSPC},
{KC_ESC, KC_A, KC_O, KC_E, KC_U, KC_I, KC_D, KC_H, KC_T, KC_N, KC_S, KC_SLSH},
{KC_LSFT, KC_SCLN, KC_Q, KC_J, KC_K, KC_X, KC_B, KC_M, KC_W, KC_V, KC_Z, KC_ENT },
{M(0), KC_LCTL, KC_LALT, KC_LGUI, MO(_LW), KC_SPC, KC_SPC, MO(_RS), KC_LEFT, KC_DOWN, KC_UP, KC_RGHT}
},
[_RS] = { /* RAISE */
{KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_BSPC},
{KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_BSPC},
{KC_TRNS, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_MINS, KC_EQL, KC_LBRC, KC_RBRC, KC_BSLS},
{KC_TRNS, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, DF(_QW), DF(_CM), DF(_DV), RESET, KC_TRNS},
{KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_MNXT, KC_VOLD, KC_VOLU, KC_MPLY}
},
[_LW] = { /* LOWER */
{KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_BSPC},
{KC_TILD, KC_EXLM, KC_AT, KC_HASH, KC_DLR, KC_PERC, KC_CIRC, KC_AMPR, KC_ASTR, KC_LPRN, KC_RPRN, KC_BSPC},
{KC_TRNS, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_UNDS, KC_PLUS, KC_LCBR, KC_RCBR, KC_PIPE},
{KC_TRNS, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, DF(_QW), DF(_CM), DF(_DV), RESET, KC_TRNS},
{KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_MNXT, KC_VOLD, KC_VOLU, KC_MPLY}
},
[_MI] = { /* MIDI */
{MIDI12},
{MIDI12},
{MIDI12},
{MIDI12},
{M(0), KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, MIDI, MIDI, MIDI, MIDI}
}
};
const uint16_t PROGMEM fn_actions[] = {
};
float start_up[][2] = {
{440.0*pow(2.0,(67)/12.0), 600},
{0, 50},
{440.0*pow(2.0,(64)/12.0), 400},
{0, 50},
{440.0*pow(2.0,(55)/12.0), 400},
{0, 50},
{440.0*pow(2.0,(60)/12.0), 400},
{0, 50},
{440.0*pow(2.0,(64)/12.0), 1000},
};
const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt)
{
// MACRODOWN only works in this function
switch(id) {
case 0:
if (record->event.pressed) {
register_code(KC_RSFT);
#ifdef BACKLIGHT_ENABLE
backlight_step();
#endif
default_layer_state = 1<<5;
} else {
unregister_code(KC_RSFT);
default_layer_state = 1<<0;
}
break;
}
return MACRO_NONE;
};
void * matrix_init_user(void) {
init_notes();
play_notes(&start_up, 9, false);
}

@ -0,0 +1,36 @@
#include "preonic.h"
__attribute__ ((weak))
void * matrix_init_user(void) {
};
__attribute__ ((weak))
void * matrix_scan_user(void) {
};
void * matrix_init_kb(void) {
#ifdef BACKLIGHT_ENABLE
backlight_init_ports();
#endif
#ifdef RGBLIGHT_ENABLE
rgblight_init();
#endif
// Turn status LED on
DDRE |= (1<<6);
PORTE |= (1<<6);
if (matrix_init_user) {
(*matrix_init_user)();
}
};
void * matrix_scan_kb(void) {
if (matrix_scan_user) {
(*matrix_scan_user)();
}
};

@ -0,0 +1,50 @@
#ifndef PREONIC_H
#define PREONIC_H
#include "matrix.h"
#include "keymap_common.h"
#ifdef BACKLIGHT_ENABLE
#include "backlight.h"
#endif
#ifdef RGBLIGHT_ENABLE
#include "rgblight.h"
#endif
#include <stddef.h>
#ifdef MIDI_ENABLE
#include <keymap_midi.h>
#endif
#define PREONIC_MIT( \
k00, k01, k02, k03, k04, k05, k06, k07, k08, k09, k0a, k0b, \
k10, k11, k12, k13, k14, k15, k16, k17, k18, k19, k1a, k1b, \
k20, k21, k22, k23, k24, k25, k26, k27, k28, k29, k2a, k2b, \
k30, k31, k32, k33, k34, k35, k36, k37, k38, k39, k3a, k3b, \
k40, k41, k42, k43, k44, k45, k47, k48, k49, k4a, k4b \
) \
{ \
{ k00, k01, k02, k03, k04, k05, k06, k07, k08, k09, k0a, k0b }, \
{ k10, k11, k12, k13, k14, k15, k16, k17, k18, k19, k1a, k1b }, \
{ k20, k21, k22, k23, k24, k25, k26, k27, k28, k29, k2a, k2b }, \
{ k30, k31, k32, k33, k34, k35, k35, k37, k38, k39, k3a, k3b }, \
{ k40, k41, k42, k43, k44, k45, k45, k47, k48, k49, k4a, k4b } \
}
#define PREONIC_GRID( \
k00, k01, k02, k03, k04, k05, k06, k07, k08, k09, k0a, k0b, \
k10, k11, k12, k13, k14, k15, k16, k17, k18, k19, k1a, k1b, \
k20, k21, k22, k23, k24, k25, k26, k27, k28, k29, k2a, k2b, \
k30, k31, k32, k33, k34, k35, k36, k37, k38, k39, k3a, k3b, \
k40, k41, k42, k43, k44, k45, k46, k47, k48, k49, k4a, k4b \
) \
{ \
{ k00, k01, k02, k03, k04, k05, k06, k07, k08, k09, k0a, k0b }, \
{ k10, k11, k12, k13, k14, k15, k16, k17, k18, k19, k1a, k1b }, \
{ k20, k21, k22, k23, k24, k25, k26, k27, k28, k29, k2a, k2b }, \
{ k30, k31, k32, k33, k34, k35, k35, k37, k38, k39, k3a, k3b }, \
{ k40, k41, k42, k43, k44, k45, k46, k47, k48, k49, k4a, k4b } \
}
void * matrix_init_user(void);
void * matrix_scan_user(void);
#endif
Loading…
Cancel
Save