mirror of
https://github.com/joe-scotto/scottokeebs.git
synced 2026-08-24 10:14:29 -05:00
Ready for release, mostly
This commit is contained in:
@@ -1,7 +0,0 @@
|
||||
# Scotto48 (PCB Edition) - Case
|
||||
|
||||
To assemble the case, you'll need the following:
|
||||
|
||||
- 4 M2x4mm Standoffs
|
||||
- 10 M2 Nuts
|
||||
- 10 M2x5mm Screws
|
||||
File diff suppressed because it is too large
Load Diff
Binary file not shown.
@@ -0,0 +1,501 @@
|
||||
ISO-10303-21;
|
||||
HEADER;
|
||||
|
||||
/* File generated by Shapr3D Version 26.110.0.11116 */
|
||||
|
||||
FILE_DESCRIPTION(('HOOPS Exchange Step'),'2;1');
|
||||
|
||||
FILE_NAME('/Users/jscotto/Library/Containers/com.shapr3d.shapr/Data/tmp/export/temp_export',
|
||||
'2026-06-23T18:32:28-04:00',
|
||||
('jscotto'),
|
||||
('Shapr3D Limited'),
|
||||
'HOOPS Exchange 2026.3',
|
||||
'Shapr3D',
|
||||
'Authorized');
|
||||
|
||||
FILE_SCHEMA( ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF {1 0 10303 442 1 1 4}') );
|
||||
|
||||
ENDSEC;
|
||||
|
||||
DATA;
|
||||
#3=(NAMED_UNIT(*)PLANE_ANGLE_UNIT()SI_UNIT($,.RADIAN.));
|
||||
#4=PLANE_ANGLE_MEASURE_WITH_UNIT(PLANE_ANGLE_MEASURE(0.0174532925),#3);
|
||||
#5=(CONVERSION_BASED_UNIT('DEGREE',#4)NAMED_UNIT(#6)PLANE_ANGLE_UNIT());
|
||||
#6=DIMENSIONAL_EXPONENTS(0.,0.,0.,0.,0.,0.,0.);
|
||||
#7=(NAMED_UNIT(*)SI_UNIT($,.STERADIAN.)SOLID_ANGLE_UNIT());
|
||||
#8=(LENGTH_UNIT()NAMED_UNIT(*)SI_UNIT(.MILLI.,.METRE.));
|
||||
#9=UNCERTAINTY_MEASURE_WITH_UNIT(LENGTH_MEASURE(1.000000E-05),#8,'DISTANCE_ACCURACY_VALUE','Maximum Tolerance applied to model');
|
||||
#10=(GEOMETRIC_REPRESENTATION_CONTEXT(3)GLOBAL_UNCERTAINTY_ASSIGNED_CONTEXT((#9))GLOBAL_UNIT_ASSIGNED_CONTEXT((#8,#5,#7))REPRESENTATION_CONTEXT('','LED Diffuser'));
|
||||
#12=CARTESIAN_POINT('',(0.,0.,0.));
|
||||
#13=DIRECTION('',(0.,0.,1.));
|
||||
#14=DIRECTION('',(1.,0.,0.));
|
||||
#15=AXIS2_PLACEMENT_3D('TS3D_PRODUCT_CSYS',#12,#13,#14);
|
||||
#27=CARTESIAN_POINT('',(-0.,-21.825,8.05));
|
||||
#28=DIRECTION('',(0.,1.,0.));
|
||||
#29=DIRECTION('',(0.,0.,1.));
|
||||
#30=AXIS2_PLACEMENT_3D('',#27,#28,#29);
|
||||
#31=PLANE('',#30);
|
||||
#32=CARTESIAN_POINT('',(-2.575,-21.825,6.45));
|
||||
#33=VERTEX_POINT('',#32);
|
||||
#34=CARTESIAN_POINT('',(2.575,-21.825,6.45));
|
||||
#35=VERTEX_POINT('',#34);
|
||||
#36=CARTESIAN_POINT('',(-2.575,-21.825,6.45));
|
||||
#37=DIRECTION('',(1.,0.,-0.));
|
||||
#38=VECTOR('',#37,5.15);
|
||||
#39=LINE('',#36,#38);
|
||||
#40=EDGE_CURVE('',#33,#35,#39,.T.);
|
||||
#41=ORIENTED_EDGE('',*,*,#40,.F.);
|
||||
#42=CARTESIAN_POINT('',(-2.575,-21.825,8.05));
|
||||
#43=VERTEX_POINT('',#42);
|
||||
#44=CARTESIAN_POINT('',(-2.575,-21.825,8.05));
|
||||
#45=DIRECTION('',(0.,0.,-1.));
|
||||
#46=VECTOR('',#45,1.6);
|
||||
#47=LINE('',#44,#46);
|
||||
#48=EDGE_CURVE('',#43,#33,#47,.T.);
|
||||
#49=ORIENTED_EDGE('',*,*,#48,.F.);
|
||||
#50=CARTESIAN_POINT('',(2.575,-21.825,8.05));
|
||||
#51=VERTEX_POINT('',#50);
|
||||
#52=CARTESIAN_POINT('',(-2.575,-21.825,8.05));
|
||||
#53=DIRECTION('',(1.,0.,-0.));
|
||||
#54=VECTOR('',#53,5.15);
|
||||
#55=LINE('',#52,#54);
|
||||
#56=EDGE_CURVE('',#43,#51,#55,.T.);
|
||||
#57=ORIENTED_EDGE('',*,*,#56,.T.);
|
||||
#58=CARTESIAN_POINT('',(2.575,-21.825,8.05));
|
||||
#59=DIRECTION('',(0.,0.,-1.));
|
||||
#60=VECTOR('',#59,1.6);
|
||||
#61=LINE('',#58,#60);
|
||||
#62=EDGE_CURVE('',#51,#35,#61,.T.);
|
||||
#63=ORIENTED_EDGE('',*,*,#62,.T.);
|
||||
#64=EDGE_LOOP('',(#41,#49,#57,#63));
|
||||
#65=FACE_BOUND('',#64,.T.);
|
||||
#66=ADVANCED_FACE('',(#65),#31,.T.);
|
||||
#67=CARTESIAN_POINT('',(2.575,-19.25,8.05));
|
||||
#68=DIRECTION('',(-1.,0.,0.));
|
||||
#69=DIRECTION('',(0.,0.,1.));
|
||||
#70=AXIS2_PLACEMENT_3D('',#67,#68,#69);
|
||||
#71=PLANE('',#70);
|
||||
#72=CARTESIAN_POINT('',(2.575,-16.675,6.45));
|
||||
#73=VERTEX_POINT('',#72);
|
||||
#74=CARTESIAN_POINT('',(2.575,-21.825,6.45));
|
||||
#75=DIRECTION('',(0.,1.,0.));
|
||||
#76=VECTOR('',#75,5.15);
|
||||
#77=LINE('',#74,#76);
|
||||
#78=EDGE_CURVE('',#35,#73,#77,.T.);
|
||||
#79=ORIENTED_EDGE('',*,*,#78,.F.);
|
||||
#80=ORIENTED_EDGE('',*,*,#62,.F.);
|
||||
#81=CARTESIAN_POINT('',(2.575,-16.675,8.05));
|
||||
#82=VERTEX_POINT('',#81);
|
||||
#83=CARTESIAN_POINT('',(2.575,-21.825,8.05));
|
||||
#84=DIRECTION('',(0.,1.,0.));
|
||||
#85=VECTOR('',#84,5.15);
|
||||
#86=LINE('',#83,#85);
|
||||
#87=EDGE_CURVE('',#51,#82,#86,.T.);
|
||||
#88=ORIENTED_EDGE('',*,*,#87,.T.);
|
||||
#89=CARTESIAN_POINT('',(2.575,-16.675,8.05));
|
||||
#90=DIRECTION('',(0.,0.,-1.));
|
||||
#91=VECTOR('',#90,1.6);
|
||||
#92=LINE('',#89,#91);
|
||||
#93=EDGE_CURVE('',#82,#73,#92,.T.);
|
||||
#94=ORIENTED_EDGE('',*,*,#93,.T.);
|
||||
#95=EDGE_LOOP('',(#79,#80,#88,#94));
|
||||
#96=FACE_BOUND('',#95,.T.);
|
||||
#97=ADVANCED_FACE('',(#96),#71,.T.);
|
||||
#98=CARTESIAN_POINT('',(-0.,-16.675,8.05));
|
||||
#99=DIRECTION('',(0.,-1.,0.));
|
||||
#100=DIRECTION('',(0.,0.,-1.));
|
||||
#101=AXIS2_PLACEMENT_3D('',#98,#99,#100);
|
||||
#102=PLANE('',#101);
|
||||
#103=CARTESIAN_POINT('',(-2.575,-16.675,6.45));
|
||||
#104=VERTEX_POINT('',#103);
|
||||
#105=CARTESIAN_POINT('',(2.575,-16.675,6.45));
|
||||
#106=DIRECTION('',(-1.,0.,0.));
|
||||
#107=VECTOR('',#106,5.15);
|
||||
#108=LINE('',#105,#107);
|
||||
#109=EDGE_CURVE('',#73,#104,#108,.T.);
|
||||
#110=ORIENTED_EDGE('',*,*,#109,.F.);
|
||||
#111=ORIENTED_EDGE('',*,*,#93,.F.);
|
||||
#112=CARTESIAN_POINT('',(-2.575,-16.675,8.05));
|
||||
#113=VERTEX_POINT('',#112);
|
||||
#114=CARTESIAN_POINT('',(2.575,-16.675,8.05));
|
||||
#115=DIRECTION('',(-1.,0.,0.));
|
||||
#116=VECTOR('',#115,5.15);
|
||||
#117=LINE('',#114,#116);
|
||||
#118=EDGE_CURVE('',#82,#113,#117,.T.);
|
||||
#119=ORIENTED_EDGE('',*,*,#118,.T.);
|
||||
#120=CARTESIAN_POINT('',(-2.575,-16.675,8.05));
|
||||
#121=DIRECTION('',(0.,0.,-1.));
|
||||
#122=VECTOR('',#121,1.6);
|
||||
#123=LINE('',#120,#122);
|
||||
#124=EDGE_CURVE('',#113,#104,#123,.T.);
|
||||
#125=ORIENTED_EDGE('',*,*,#124,.T.);
|
||||
#126=EDGE_LOOP('',(#110,#111,#119,#125));
|
||||
#127=FACE_BOUND('',#126,.T.);
|
||||
#128=ADVANCED_FACE('',(#127),#102,.T.);
|
||||
#129=CARTESIAN_POINT('',(3.375,-19.25,8.05));
|
||||
#130=DIRECTION('',(-1.,0.,0.));
|
||||
#131=DIRECTION('',(0.,0.,1.));
|
||||
#132=AXIS2_PLACEMENT_3D('',#129,#130,#131);
|
||||
#133=PLANE('',#132);
|
||||
#134=CARTESIAN_POINT('',(3.375,-21.375,6.45));
|
||||
#135=VERTEX_POINT('',#134);
|
||||
#136=CARTESIAN_POINT('',(3.375,-17.125,6.45));
|
||||
#137=VERTEX_POINT('',#136);
|
||||
#138=CARTESIAN_POINT('',(3.375,-21.375,6.45));
|
||||
#139=DIRECTION('',(0.,1.,0.));
|
||||
#140=VECTOR('',#139,4.25);
|
||||
#141=LINE('',#138,#140);
|
||||
#142=EDGE_CURVE('',#135,#137,#141,.T.);
|
||||
#143=ORIENTED_EDGE('',*,*,#142,.T.);
|
||||
#144=CARTESIAN_POINT('',(3.375,-17.125,8.85));
|
||||
#145=VERTEX_POINT('',#144);
|
||||
#146=CARTESIAN_POINT('',(3.375,-17.125,6.45));
|
||||
#147=DIRECTION('',(-0.,-0.,1.));
|
||||
#148=VECTOR('',#147,2.4);
|
||||
#149=LINE('',#146,#148);
|
||||
#150=EDGE_CURVE('',#137,#145,#149,.T.);
|
||||
#151=ORIENTED_EDGE('',*,*,#150,.T.);
|
||||
#152=CARTESIAN_POINT('',(3.375,-21.375,8.85));
|
||||
#153=VERTEX_POINT('',#152);
|
||||
#154=CARTESIAN_POINT('',(3.375,-21.375,8.85));
|
||||
#155=DIRECTION('',(0.,1.,0.));
|
||||
#156=VECTOR('',#155,4.25);
|
||||
#157=LINE('',#154,#156);
|
||||
#158=EDGE_CURVE('',#153,#145,#157,.T.);
|
||||
#159=ORIENTED_EDGE('',*,*,#158,.F.);
|
||||
#160=CARTESIAN_POINT('',(3.375,-21.375,8.85));
|
||||
#161=DIRECTION('',(0.,0.,-1.));
|
||||
#162=VECTOR('',#161,2.4);
|
||||
#163=LINE('',#160,#162);
|
||||
#164=EDGE_CURVE('',#153,#135,#163,.T.);
|
||||
#165=ORIENTED_EDGE('',*,*,#164,.T.);
|
||||
#166=EDGE_LOOP('',(#143,#151,#159,#165));
|
||||
#167=FACE_BOUND('',#166,.T.);
|
||||
#168=ADVANCED_FACE('',(#167),#133,.F.);
|
||||
#169=CARTESIAN_POINT('',(-0.,-22.625,8.05));
|
||||
#170=DIRECTION('',(0.,1.,0.));
|
||||
#171=DIRECTION('',(0.,0.,1.));
|
||||
#172=AXIS2_PLACEMENT_3D('',#169,#170,#171);
|
||||
#173=PLANE('',#172);
|
||||
#174=CARTESIAN_POINT('',(-2.125,-22.625,8.85));
|
||||
#175=VERTEX_POINT('',#174);
|
||||
#176=CARTESIAN_POINT('',(2.125,-22.625,8.85));
|
||||
#177=VERTEX_POINT('',#176);
|
||||
#178=CARTESIAN_POINT('',(-2.125,-22.625,8.85));
|
||||
#179=DIRECTION('',(1.,0.,-0.));
|
||||
#180=VECTOR('',#179,4.25);
|
||||
#181=LINE('',#178,#180);
|
||||
#182=EDGE_CURVE('',#175,#177,#181,.T.);
|
||||
#183=ORIENTED_EDGE('',*,*,#182,.F.);
|
||||
#184=CARTESIAN_POINT('',(-2.125,-22.625,6.45));
|
||||
#185=VERTEX_POINT('',#184);
|
||||
#186=CARTESIAN_POINT('',(-2.125,-22.625,8.85));
|
||||
#187=DIRECTION('',(0.,0.,-1.));
|
||||
#188=VECTOR('',#187,2.4);
|
||||
#189=LINE('',#186,#188);
|
||||
#190=EDGE_CURVE('',#175,#185,#189,.T.);
|
||||
#191=ORIENTED_EDGE('',*,*,#190,.T.);
|
||||
#192=CARTESIAN_POINT('',(2.125,-22.625,6.45));
|
||||
#193=VERTEX_POINT('',#192);
|
||||
#194=CARTESIAN_POINT('',(-2.125,-22.625,6.45));
|
||||
#195=DIRECTION('',(1.,0.,-0.));
|
||||
#196=VECTOR('',#195,4.25);
|
||||
#197=LINE('',#194,#196);
|
||||
#198=EDGE_CURVE('',#185,#193,#197,.T.);
|
||||
#199=ORIENTED_EDGE('',*,*,#198,.T.);
|
||||
#200=CARTESIAN_POINT('',(2.125,-22.625,6.45));
|
||||
#201=DIRECTION('',(-0.,-0.,1.));
|
||||
#202=VECTOR('',#201,2.4);
|
||||
#203=LINE('',#200,#202);
|
||||
#204=EDGE_CURVE('',#193,#177,#203,.T.);
|
||||
#205=ORIENTED_EDGE('',*,*,#204,.T.);
|
||||
#206=EDGE_LOOP('',(#183,#191,#199,#205));
|
||||
#207=FACE_BOUND('',#206,.T.);
|
||||
#208=ADVANCED_FACE('',(#207),#173,.F.);
|
||||
#209=CARTESIAN_POINT('',(-3.375,-19.25,8.05));
|
||||
#210=DIRECTION('',(1.,0.,0.));
|
||||
#211=DIRECTION('',(0.,0.,-1.));
|
||||
#212=AXIS2_PLACEMENT_3D('',#209,#210,#211);
|
||||
#213=PLANE('',#212);
|
||||
#214=CARTESIAN_POINT('',(-3.375,-17.125,8.85));
|
||||
#215=VERTEX_POINT('',#214);
|
||||
#216=CARTESIAN_POINT('',(-3.375,-21.375,8.85));
|
||||
#217=VERTEX_POINT('',#216);
|
||||
#218=CARTESIAN_POINT('',(-3.375,-17.125,8.85));
|
||||
#219=DIRECTION('',(0.,-1.,0.));
|
||||
#220=VECTOR('',#219,4.25);
|
||||
#221=LINE('',#218,#220);
|
||||
#222=EDGE_CURVE('',#215,#217,#221,.T.);
|
||||
#223=ORIENTED_EDGE('',*,*,#222,.F.);
|
||||
#224=CARTESIAN_POINT('',(-3.375,-17.125,6.45));
|
||||
#225=VERTEX_POINT('',#224);
|
||||
#226=CARTESIAN_POINT('',(-3.375,-17.125,8.85));
|
||||
#227=DIRECTION('',(0.,0.,-1.));
|
||||
#228=VECTOR('',#227,2.4);
|
||||
#229=LINE('',#226,#228);
|
||||
#230=EDGE_CURVE('',#215,#225,#229,.T.);
|
||||
#231=ORIENTED_EDGE('',*,*,#230,.T.);
|
||||
#232=CARTESIAN_POINT('',(-3.375,-21.375,6.45));
|
||||
#233=VERTEX_POINT('',#232);
|
||||
#234=CARTESIAN_POINT('',(-3.375,-17.125,6.45));
|
||||
#235=DIRECTION('',(0.,-1.,0.));
|
||||
#236=VECTOR('',#235,4.25);
|
||||
#237=LINE('',#234,#236);
|
||||
#238=EDGE_CURVE('',#225,#233,#237,.T.);
|
||||
#239=ORIENTED_EDGE('',*,*,#238,.T.);
|
||||
#240=CARTESIAN_POINT('',(-3.375,-21.375,6.45));
|
||||
#241=DIRECTION('',(-0.,-0.,1.));
|
||||
#242=VECTOR('',#241,2.4);
|
||||
#243=LINE('',#240,#242);
|
||||
#244=EDGE_CURVE('',#233,#217,#243,.T.);
|
||||
#245=ORIENTED_EDGE('',*,*,#244,.T.);
|
||||
#246=EDGE_LOOP('',(#223,#231,#239,#245));
|
||||
#247=FACE_BOUND('',#246,.T.);
|
||||
#248=ADVANCED_FACE('',(#247),#213,.F.);
|
||||
#249=CARTESIAN_POINT('',(-0.,-15.875,8.05));
|
||||
#250=DIRECTION('',(0.,-1.,0.));
|
||||
#251=DIRECTION('',(0.,0.,-1.));
|
||||
#252=AXIS2_PLACEMENT_3D('',#249,#250,#251);
|
||||
#253=PLANE('',#252);
|
||||
#254=CARTESIAN_POINT('',(2.125,-15.875,8.85));
|
||||
#255=VERTEX_POINT('',#254);
|
||||
#256=CARTESIAN_POINT('',(-2.125,-15.875,8.85));
|
||||
#257=VERTEX_POINT('',#256);
|
||||
#258=CARTESIAN_POINT('',(2.125,-15.875,8.85));
|
||||
#259=DIRECTION('',(-1.,0.,0.));
|
||||
#260=VECTOR('',#259,4.25);
|
||||
#261=LINE('',#258,#260);
|
||||
#262=EDGE_CURVE('',#255,#257,#261,.T.);
|
||||
#263=ORIENTED_EDGE('',*,*,#262,.F.);
|
||||
#264=CARTESIAN_POINT('',(2.125,-15.875,6.45));
|
||||
#265=VERTEX_POINT('',#264);
|
||||
#266=CARTESIAN_POINT('',(2.125,-15.875,8.85));
|
||||
#267=DIRECTION('',(0.,0.,-1.));
|
||||
#268=VECTOR('',#267,2.4);
|
||||
#269=LINE('',#266,#268);
|
||||
#270=EDGE_CURVE('',#255,#265,#269,.T.);
|
||||
#271=ORIENTED_EDGE('',*,*,#270,.T.);
|
||||
#272=CARTESIAN_POINT('',(-2.125,-15.875,6.45));
|
||||
#273=VERTEX_POINT('',#272);
|
||||
#274=CARTESIAN_POINT('',(2.125,-15.875,6.45));
|
||||
#275=DIRECTION('',(-1.,0.,0.));
|
||||
#276=VECTOR('',#275,4.25);
|
||||
#277=LINE('',#274,#276);
|
||||
#278=EDGE_CURVE('',#265,#273,#277,.T.);
|
||||
#279=ORIENTED_EDGE('',*,*,#278,.T.);
|
||||
#280=CARTESIAN_POINT('',(-2.125,-15.875,6.45));
|
||||
#281=DIRECTION('',(-0.,-0.,1.));
|
||||
#282=VECTOR('',#281,2.4);
|
||||
#283=LINE('',#280,#282);
|
||||
#284=EDGE_CURVE('',#273,#257,#283,.T.);
|
||||
#285=ORIENTED_EDGE('',*,*,#284,.T.);
|
||||
#286=EDGE_LOOP('',(#263,#271,#279,#285));
|
||||
#287=FACE_BOUND('',#286,.T.);
|
||||
#288=ADVANCED_FACE('',(#287),#253,.F.);
|
||||
#289=CARTESIAN_POINT('',(-2.575,-19.25,8.05));
|
||||
#290=DIRECTION('',(1.,0.,0.));
|
||||
#291=DIRECTION('',(0.,0.,-1.));
|
||||
#292=AXIS2_PLACEMENT_3D('',#289,#290,#291);
|
||||
#293=PLANE('',#292);
|
||||
#294=CARTESIAN_POINT('',(-2.575,-16.675,6.45));
|
||||
#295=DIRECTION('',(0.,-1.,0.));
|
||||
#296=VECTOR('',#295,5.15);
|
||||
#297=LINE('',#294,#296);
|
||||
#298=EDGE_CURVE('',#104,#33,#297,.T.);
|
||||
#299=ORIENTED_EDGE('',*,*,#298,.F.);
|
||||
#300=ORIENTED_EDGE('',*,*,#124,.F.);
|
||||
#301=CARTESIAN_POINT('',(-2.575,-16.675,8.05));
|
||||
#302=DIRECTION('',(0.,-1.,0.));
|
||||
#303=VECTOR('',#302,5.15);
|
||||
#304=LINE('',#301,#303);
|
||||
#305=EDGE_CURVE('',#113,#43,#304,.T.);
|
||||
#306=ORIENTED_EDGE('',*,*,#305,.T.);
|
||||
#307=ORIENTED_EDGE('',*,*,#48,.T.);
|
||||
#308=EDGE_LOOP('',(#299,#300,#306,#307));
|
||||
#309=FACE_BOUND('',#308,.T.);
|
||||
#310=ADVANCED_FACE('',(#309),#293,.T.);
|
||||
#311=CARTESIAN_POINT('',(-0.,-19.25,6.45));
|
||||
#312=DIRECTION('',(0.,0.,-1.));
|
||||
#313=DIRECTION('',(1.,0.,0.));
|
||||
#314=AXIS2_PLACEMENT_3D('',#311,#312,#313);
|
||||
#315=PLANE('',#314);
|
||||
#316=ORIENTED_EDGE('',*,*,#278,.F.);
|
||||
#317=CARTESIAN_POINT('',(2.125,-17.125,6.45));
|
||||
#318=DIRECTION('',(0.,0.,-1.));
|
||||
#319=DIRECTION('',(-1.,0.,0.));
|
||||
#320=AXIS2_PLACEMENT_3D('',#317,#318,#319);
|
||||
#321=CIRCLE('',#320,1.25);
|
||||
#322=EDGE_CURVE('',#265,#137,#321,.T.);
|
||||
#323=ORIENTED_EDGE('',*,*,#322,.T.);
|
||||
#324=ORIENTED_EDGE('',*,*,#142,.F.);
|
||||
#325=CARTESIAN_POINT('',(2.125,-21.375,6.45));
|
||||
#326=DIRECTION('',(0.,0.,-1.));
|
||||
#327=DIRECTION('',(-1.,0.,0.));
|
||||
#328=AXIS2_PLACEMENT_3D('',#325,#326,#327);
|
||||
#329=CIRCLE('',#328,1.25);
|
||||
#330=EDGE_CURVE('',#135,#193,#329,.T.);
|
||||
#331=ORIENTED_EDGE('',*,*,#330,.T.);
|
||||
#332=ORIENTED_EDGE('',*,*,#198,.F.);
|
||||
#333=CARTESIAN_POINT('',(-2.125,-21.375,6.45));
|
||||
#334=DIRECTION('',(0.,0.,-1.));
|
||||
#335=DIRECTION('',(-1.,0.,0.));
|
||||
#336=AXIS2_PLACEMENT_3D('',#333,#334,#335);
|
||||
#337=CIRCLE('',#336,1.25);
|
||||
#338=EDGE_CURVE('',#185,#233,#337,.T.);
|
||||
#339=ORIENTED_EDGE('',*,*,#338,.T.);
|
||||
#340=ORIENTED_EDGE('',*,*,#238,.F.);
|
||||
#341=CARTESIAN_POINT('',(-2.125,-17.125,6.45));
|
||||
#342=DIRECTION('',(0.,0.,-1.));
|
||||
#343=DIRECTION('',(-1.,0.,0.));
|
||||
#344=AXIS2_PLACEMENT_3D('',#341,#342,#343);
|
||||
#345=CIRCLE('',#344,1.25);
|
||||
#346=EDGE_CURVE('',#225,#273,#345,.T.);
|
||||
#347=ORIENTED_EDGE('',*,*,#346,.T.);
|
||||
#348=EDGE_LOOP('',(#316,#323,#324,#331,#332,#339,#340,#347));
|
||||
#349=FACE_BOUND('',#348,.T.);
|
||||
#350=ORIENTED_EDGE('',*,*,#40,.T.);
|
||||
#351=ORIENTED_EDGE('',*,*,#78,.T.);
|
||||
#352=ORIENTED_EDGE('',*,*,#109,.T.);
|
||||
#353=ORIENTED_EDGE('',*,*,#298,.T.);
|
||||
#354=EDGE_LOOP('',(#350,#351,#352,#353));
|
||||
#355=FACE_BOUND('',#354,.T.);
|
||||
#356=ADVANCED_FACE('',(#349,#355),#315,.T.);
|
||||
#357=CARTESIAN_POINT('',(-0.,-19.25,8.05));
|
||||
#358=DIRECTION('',(0.,0.,1.));
|
||||
#359=DIRECTION('',(-1.,0.,0.));
|
||||
#360=AXIS2_PLACEMENT_3D('',#357,#358,#359);
|
||||
#361=PLANE('',#360);
|
||||
#362=ORIENTED_EDGE('',*,*,#56,.F.);
|
||||
#363=ORIENTED_EDGE('',*,*,#305,.F.);
|
||||
#364=ORIENTED_EDGE('',*,*,#118,.F.);
|
||||
#365=ORIENTED_EDGE('',*,*,#87,.F.);
|
||||
#366=EDGE_LOOP('',(#362,#363,#364,#365));
|
||||
#367=FACE_BOUND('',#366,.T.);
|
||||
#368=ADVANCED_FACE('',(#367),#361,.F.);
|
||||
#369=CARTESIAN_POINT('',(-0.,-19.25,8.85));
|
||||
#370=DIRECTION('',(0.,0.,1.));
|
||||
#371=DIRECTION('',(-1.,0.,0.));
|
||||
#372=AXIS2_PLACEMENT_3D('',#369,#370,#371);
|
||||
#373=PLANE('',#372);
|
||||
#374=ORIENTED_EDGE('',*,*,#158,.T.);
|
||||
#375=CARTESIAN_POINT('',(2.125,-17.125,8.85));
|
||||
#376=DIRECTION('',(0.,0.,1.));
|
||||
#377=DIRECTION('',(1.,0.,-0.));
|
||||
#378=AXIS2_PLACEMENT_3D('',#375,#376,#377);
|
||||
#379=CIRCLE('',#378,1.25);
|
||||
#380=EDGE_CURVE('',#145,#255,#379,.T.);
|
||||
#381=ORIENTED_EDGE('',*,*,#380,.T.);
|
||||
#382=ORIENTED_EDGE('',*,*,#262,.T.);
|
||||
#383=CARTESIAN_POINT('',(-2.125,-17.125,8.85));
|
||||
#384=DIRECTION('',(0.,0.,1.));
|
||||
#385=DIRECTION('',(1.,0.,-0.));
|
||||
#386=AXIS2_PLACEMENT_3D('',#383,#384,#385);
|
||||
#387=CIRCLE('',#386,1.25);
|
||||
#388=EDGE_CURVE('',#257,#215,#387,.T.);
|
||||
#389=ORIENTED_EDGE('',*,*,#388,.T.);
|
||||
#390=ORIENTED_EDGE('',*,*,#222,.T.);
|
||||
#391=CARTESIAN_POINT('',(-2.125,-21.375,8.85));
|
||||
#392=DIRECTION('',(0.,0.,1.));
|
||||
#393=DIRECTION('',(1.,0.,-0.));
|
||||
#394=AXIS2_PLACEMENT_3D('',#391,#392,#393);
|
||||
#395=CIRCLE('',#394,1.25);
|
||||
#396=EDGE_CURVE('',#217,#175,#395,.T.);
|
||||
#397=ORIENTED_EDGE('',*,*,#396,.T.);
|
||||
#398=ORIENTED_EDGE('',*,*,#182,.T.);
|
||||
#399=CARTESIAN_POINT('',(2.125,-21.375,8.85));
|
||||
#400=DIRECTION('',(0.,0.,1.));
|
||||
#401=DIRECTION('',(1.,0.,-0.));
|
||||
#402=AXIS2_PLACEMENT_3D('',#399,#400,#401);
|
||||
#403=CIRCLE('',#402,1.25);
|
||||
#404=EDGE_CURVE('',#177,#153,#403,.T.);
|
||||
#405=ORIENTED_EDGE('',*,*,#404,.T.);
|
||||
#406=EDGE_LOOP('',(#374,#381,#382,#389,#390,#397,#398,#405));
|
||||
#407=FACE_BOUND('',#406,.T.);
|
||||
#408=ADVANCED_FACE('',(#407),#373,.T.);
|
||||
#409=CARTESIAN_POINT('',(2.125,-17.125,8.05));
|
||||
#410=DIRECTION('',(0.,0.,-1.));
|
||||
#411=DIRECTION('',(-1.,0.,0.));
|
||||
#412=AXIS2_PLACEMENT_3D('',#409,#410,#411);
|
||||
#413=CYLINDRICAL_SURFACE('',#412,1.25);
|
||||
#414=ORIENTED_EDGE('',*,*,#380,.F.);
|
||||
#415=ORIENTED_EDGE('',*,*,#150,.F.);
|
||||
#416=ORIENTED_EDGE('',*,*,#322,.F.);
|
||||
#417=ORIENTED_EDGE('',*,*,#270,.F.);
|
||||
#418=EDGE_LOOP('',(#414,#415,#416,#417));
|
||||
#419=FACE_BOUND('',#418,.T.);
|
||||
#420=ADVANCED_FACE('',(#419),#413,.T.);
|
||||
#421=CARTESIAN_POINT('',(-2.125,-17.125,8.05));
|
||||
#422=DIRECTION('',(0.,0.,-1.));
|
||||
#423=DIRECTION('',(-1.,0.,0.));
|
||||
#424=AXIS2_PLACEMENT_3D('',#421,#422,#423);
|
||||
#425=CYLINDRICAL_SURFACE('',#424,1.25);
|
||||
#426=ORIENTED_EDGE('',*,*,#388,.F.);
|
||||
#427=ORIENTED_EDGE('',*,*,#284,.F.);
|
||||
#428=ORIENTED_EDGE('',*,*,#346,.F.);
|
||||
#429=ORIENTED_EDGE('',*,*,#230,.F.);
|
||||
#430=EDGE_LOOP('',(#426,#427,#428,#429));
|
||||
#431=FACE_BOUND('',#430,.T.);
|
||||
#432=ADVANCED_FACE('',(#431),#425,.T.);
|
||||
#433=CARTESIAN_POINT('',(-2.125,-21.375,8.05));
|
||||
#434=DIRECTION('',(0.,0.,-1.));
|
||||
#435=DIRECTION('',(-1.,0.,0.));
|
||||
#436=AXIS2_PLACEMENT_3D('',#433,#434,#435);
|
||||
#437=CYLINDRICAL_SURFACE('',#436,1.25);
|
||||
#438=ORIENTED_EDGE('',*,*,#396,.F.);
|
||||
#439=ORIENTED_EDGE('',*,*,#244,.F.);
|
||||
#440=ORIENTED_EDGE('',*,*,#338,.F.);
|
||||
#441=ORIENTED_EDGE('',*,*,#190,.F.);
|
||||
#442=EDGE_LOOP('',(#438,#439,#440,#441));
|
||||
#443=FACE_BOUND('',#442,.T.);
|
||||
#444=ADVANCED_FACE('',(#443),#437,.T.);
|
||||
#445=CARTESIAN_POINT('',(2.125,-21.375,8.05));
|
||||
#446=DIRECTION('',(0.,0.,-1.));
|
||||
#447=DIRECTION('',(-1.,0.,0.));
|
||||
#448=AXIS2_PLACEMENT_3D('',#445,#446,#447);
|
||||
#449=CYLINDRICAL_SURFACE('',#448,1.25);
|
||||
#450=ORIENTED_EDGE('',*,*,#404,.F.);
|
||||
#451=ORIENTED_EDGE('',*,*,#204,.F.);
|
||||
#452=ORIENTED_EDGE('',*,*,#330,.F.);
|
||||
#453=ORIENTED_EDGE('',*,*,#164,.F.);
|
||||
#454=EDGE_LOOP('',(#450,#451,#452,#453));
|
||||
#455=FACE_BOUND('',#454,.T.);
|
||||
#456=ADVANCED_FACE('',(#455),#449,.T.);
|
||||
#457=CLOSED_SHELL('',(#66,#97,#128,#168,#208,#248,#288,#310,#356,#368,#408,#420,#432,#444,#456));
|
||||
#458=MANIFOLD_SOLID_BREP('LED Diffuser',#457);
|
||||
#459=COLOUR_RGB('',0.870588243,0.870588243,0.870588243);
|
||||
#460=FILL_AREA_STYLE_COLOUR('',#459);
|
||||
#461=FILL_AREA_STYLE('',(#460));
|
||||
#462=SURFACE_STYLE_FILL_AREA(#461);
|
||||
#463=SURFACE_SIDE_STYLE('',(#462));
|
||||
#464=SURFACE_STYLE_USAGE(.BOTH.,#463);
|
||||
#465=PRESENTATION_STYLE_ASSIGNMENT((#464));
|
||||
#26=STYLED_ITEM('',(#465),#458);
|
||||
#16=SHAPE_REPRESENTATION('LED Diffuser',(#15),#10);
|
||||
#17=ADVANCED_BREP_SHAPE_REPRESENTATION('LED Diffuser',(#458),#10);
|
||||
#473=SHAPE_REPRESENTATION_RELATIONSHIP('','',#16,#17);
|
||||
#474=CARTESIAN_POINT('',(0.,0.,0.));
|
||||
#475=DIRECTION('',(0.,0.,1.));
|
||||
#476=DIRECTION('',(1.,0.,0.));
|
||||
#477=AXIS2_PLACEMENT_3D('',#474,#475,#476);
|
||||
#479=MAPPED_ITEM('',#478,#477);
|
||||
#478=REPRESENTATION_MAP(#477,#16);
|
||||
#480=APPLICATION_CONTEXT('Managed model based 3d engineering');
|
||||
#481=APPLICATION_PROTOCOL_DEFINITION('international standard','ap242_managed_model_based_3d_engineering',2014,#480);
|
||||
#482=PRODUCT_CONTEXT('',#480,'mechanical');
|
||||
#483=PRODUCT_DEFINITION_CONTEXT('part definition',#480,'design');
|
||||
#24=PRODUCT('LED Diffuser','LED Diffuser','',(#482));
|
||||
#484=PRODUCT_RELATED_PRODUCT_CATEGORY('part','',(#24));
|
||||
#485=PRODUCT_DEFINITION_FORMATION_WITH_SPECIFIED_SOURCE('','',#24,.NOT_KNOWN.);
|
||||
#25=PRODUCT_DEFINITION('design','',#485,#483);
|
||||
#23=PRODUCT_DEFINITION_SHAPE('','',#25);
|
||||
#486=SHAPE_DEFINITION_REPRESENTATION(#23,#16);
|
||||
#11=DRAUGHTING_MODEL('',(#479),#10);
|
||||
#487=DESCRIPTIVE_REPRESENTATION_ITEM('KEY','/Users/jscotto/Library/Containers/com.shapr3d.shapr/Data/tmp/388235A9-EDE5-46DC-8512-9627575555EF.tmp');
|
||||
#488=PROPERTY_DEFINITION('KEY','',#25);
|
||||
#489=REPRESENTATION('',(#487),#10);
|
||||
#490=PROPERTY_DEFINITION_REPRESENTATION(#488,#489);
|
||||
#491=GENERAL_PROPERTY('','KEY','');
|
||||
#492=GENERAL_PROPERTY_ASSOCIATION('','',#491,#488);
|
||||
#1=MECHANICAL_DESIGN_GEOMETRIC_PRESENTATION_REPRESENTATION('',(#26),#10);
|
||||
ENDSEC;
|
||||
END-ISO-10303-21;
|
||||
Binary file not shown.
File diff suppressed because it is too large
Load Diff
Binary file not shown.
File diff suppressed because it is too large
Load Diff
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
@@ -1,6 +1,6 @@
|
||||
{
|
||||
"manufacturer": "ScottoKeebs",
|
||||
"keyboard_name": "Scotto34",
|
||||
"keyboard_name": "Scotto48 (PCB Edition)",
|
||||
"maintainer": "joe-scotto",
|
||||
"bootloader": "rp2040",
|
||||
"diode_direction": "COL2ROW",
|
||||
@@ -34,7 +34,7 @@
|
||||
"url": "https://scottokeebs.com",
|
||||
"usb": {
|
||||
"device_version": "1.0.0",
|
||||
"pid": "0x0013",
|
||||
"pid": "0x0044",
|
||||
"vid": "0x534B"
|
||||
},
|
||||
"ws2812": {
|
||||
@@ -45,7 +45,7 @@
|
||||
"led_count": 1
|
||||
},
|
||||
"layouts": {
|
||||
"LAYOUT_split_3x6_2": {
|
||||
"LAYOUT_ortho_4x12": {
|
||||
"layout": [
|
||||
{ "matrix": [0, 0], "x": 0, "y": 0 },
|
||||
{ "matrix": [0, 1], "x": 1, "y": 0 },
|
||||
@@ -53,48 +53,48 @@
|
||||
{ "matrix": [0, 3], "x": 3, "y": 0 },
|
||||
{ "matrix": [0, 4], "x": 4, "y": 0 },
|
||||
{ "matrix": [0, 5], "x": 5, "y": 0 },
|
||||
{ "matrix": [0, 6], "x": 6, "y": 0 },
|
||||
{ "matrix": [0, 7], "x": 7, "y": 0 },
|
||||
{ "matrix": [0, 8], "x": 8, "y": 0 },
|
||||
{ "matrix": [0, 9], "x": 9, "y": 0 },
|
||||
{ "matrix": [0, 10], "x": 10, "y": 0 },
|
||||
{ "matrix": [0, 11], "x": 11, "y": 0 },
|
||||
{ "matrix": [0, 6], "x": 8, "y": 0 },
|
||||
{ "matrix": [0, 7], "x": 9, "y": 0 },
|
||||
{ "matrix": [0, 8], "x": 10, "y": 0 },
|
||||
{ "matrix": [0, 9], "x": 11, "y": 0 },
|
||||
{ "matrix": [0, 10], "x": 12, "y": 0 },
|
||||
{ "matrix": [0, 11], "x": 13, "y": 0 },
|
||||
{ "matrix": [1, 0], "x": 0, "y": 1 },
|
||||
{ "matrix": [1, 1], "x": 1, "y": 1 },
|
||||
{ "matrix": [1, 2], "x": 2, "y": 1 },
|
||||
{ "matrix": [1, 3], "x": 3, "y": 1 },
|
||||
{ "matrix": [1, 4], "x": 4, "y": 1 },
|
||||
{ "matrix": [1, 5], "x": 5, "y": 1 },
|
||||
{ "matrix": [1, 6], "x": 6, "y": 1 },
|
||||
{ "matrix": [1, 7], "x": 7, "y": 1 },
|
||||
{ "matrix": [1, 8], "x": 8, "y": 1 },
|
||||
{ "matrix": [1, 9], "x": 9, "y": 1 },
|
||||
{ "matrix": [1, 10], "x": 10, "y": 1 },
|
||||
{ "matrix": [1, 11], "x": 11, "y": 1 },
|
||||
{ "matrix": [1, 6], "x": 8, "y": 1 },
|
||||
{ "matrix": [1, 7], "x": 9, "y": 1 },
|
||||
{ "matrix": [1, 8], "x": 10, "y": 1 },
|
||||
{ "matrix": [1, 9], "x": 11, "y": 1 },
|
||||
{ "matrix": [1, 10], "x": 12, "y": 1 },
|
||||
{ "matrix": [1, 11], "x": 13, "y": 1 },
|
||||
{ "matrix": [2, 0], "x": 0, "y": 2 },
|
||||
{ "matrix": [2, 1], "x": 1, "y": 2 },
|
||||
{ "matrix": [2, 2], "x": 2, "y": 2 },
|
||||
{ "matrix": [2, 3], "x": 3, "y": 2 },
|
||||
{ "matrix": [2, 4], "x": 4, "y": 2 },
|
||||
{ "matrix": [2, 5], "x": 5, "y": 2 },
|
||||
{ "matrix": [2, 6], "x": 6, "y": 2 },
|
||||
{ "matrix": [2, 7], "x": 7, "y": 2 },
|
||||
{ "matrix": [2, 8], "x": 8, "y": 2 },
|
||||
{ "matrix": [2, 9], "x": 9, "y": 2 },
|
||||
{ "matrix": [2, 10], "x": 10, "y": 2 },
|
||||
{ "matrix": [2, 11], "x": 11, "y": 2 },
|
||||
{ "matrix": [2, 6], "x": 8, "y": 2 },
|
||||
{ "matrix": [2, 7], "x": 9, "y": 2 },
|
||||
{ "matrix": [2, 8], "x": 10, "y": 2 },
|
||||
{ "matrix": [2, 9], "x": 11, "y": 2 },
|
||||
{ "matrix": [2, 10], "x": 12, "y": 2 },
|
||||
{ "matrix": [2, 11], "x": 13, "y": 2 },
|
||||
{ "matrix": [3, 0], "x": 0, "y": 3 },
|
||||
{ "matrix": [3, 1], "x": 1, "y": 3 },
|
||||
{ "matrix": [3, 2], "x": 2, "y": 3 },
|
||||
{ "matrix": [3, 3], "x": 3, "y": 3 },
|
||||
{ "matrix": [3, 4], "x": 4, "y": 3 },
|
||||
{ "matrix": [3, 5], "x": 5, "y": 3 },
|
||||
{ "matrix": [3, 6], "x": 6, "y": 3 },
|
||||
{ "matrix": [3, 7], "x": 7, "y": 3 },
|
||||
{ "matrix": [3, 8], "x": 8, "y": 3 },
|
||||
{ "matrix": [3, 9], "x": 9, "y": 3 },
|
||||
{ "matrix": [3, 10], "x": 10, "y": 3 },
|
||||
{ "matrix": [3, 11], "x": 11, "y": 3 }
|
||||
{ "matrix": [3, 6], "x": 8, "y": 3 },
|
||||
{ "matrix": [3, 7], "x": 9, "y": 3 },
|
||||
{ "matrix": [3, 8], "x": 10, "y": 3 },
|
||||
{ "matrix": [3, 9], "x": 11, "y": 3 },
|
||||
{ "matrix": [3, 10], "x": 12, "y": 3 },
|
||||
{ "matrix": [3, 11], "x": 13, "y": 3 }
|
||||
]
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1,23 +0,0 @@
|
||||
/*
|
||||
Copyright 2023 Joe Scotto
|
||||
|
||||
This program is free software: you can redistribute it and/or modify
|
||||
it under the terms of the GNU General Public License as published by
|
||||
the Free Software Foundation, either version 2 of the License, or
|
||||
(at your option) any later version.
|
||||
|
||||
This program is distributed in the hope that it will be useful,
|
||||
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
GNU General Public License for more details.
|
||||
|
||||
You should have received a copy of the GNU General Public License
|
||||
along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
*/
|
||||
|
||||
#pragma once
|
||||
|
||||
// Define options
|
||||
#define TAPPING_TERM 135
|
||||
#define PERMISSIVE_HOLD
|
||||
#define TAPPING_TERM_PER_KEY
|
||||
@@ -1,45 +0,0 @@
|
||||
/*
|
||||
Copyright 2023 Joe Scotto
|
||||
|
||||
This program is free software: you can redistribute it and/or modify
|
||||
it under the terms of the GNU General Public License as published by
|
||||
the Free Software Foundation, either version 2 of the License, or
|
||||
(at your option) any later version.
|
||||
|
||||
This program is distributed in the hope that it will be useful,
|
||||
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
GNU General Public License for more details.
|
||||
|
||||
You should have received a copy of the GNU General Public License
|
||||
along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
*/
|
||||
|
||||
#include QMK_KEYBOARD_H
|
||||
|
||||
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
|
||||
[0] = LAYOUT_split_3x5_2(
|
||||
KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P,
|
||||
KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_BSPC,
|
||||
LSFT_T(KC_Z), KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMMA, KC_DOT, RSFT_T(KC_SLSH),
|
||||
KC_LALT, LGUI_T(KC_SPC), LT(1, KC_TAB), LT(2, KC_ENT)
|
||||
),
|
||||
[1] = LAYOUT_split_3x5_2(
|
||||
KC_UNDS, KC_MINS, KC_PLUS, KC_EQL, KC_COLN, KC_GRV, KC_MRWD, KC_MPLY, KC_MFFD, KC_DEL,
|
||||
KC_LCBR, KC_LPRN, KC_RPRN, KC_RCBR, KC_PIPE, KC_ESC, KC_LEFT, KC_UP, KC_DOWN, KC_RGHT,
|
||||
LSFT_T(KC_LBRC), KC_QUOT, KC_DQUO, KC_RBRC, KC_SCLN, KC_TILDE, KC_VOLD, KC_MUTE, KC_VOLU, RSFT_T(KC_BSLS),
|
||||
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS
|
||||
),
|
||||
[2] = LAYOUT_split_3x5_2(
|
||||
KC_EXLM, KC_AT, KC_HASH, KC_DLR, KC_PERC, KC_CIRC, KC_AMPR, KC_ASTR, KC_CAPS, KC_BSPC,
|
||||
KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0,
|
||||
KC_LSFT, KC_NO, KC_NO, KC_NO, MO(3), KC_NO, KC_NO, KC_COMM, KC_DOT, RSFT_T(KC_SLSH),
|
||||
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS
|
||||
),
|
||||
[3] = LAYOUT_split_3x5_2(
|
||||
KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO,
|
||||
KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10,
|
||||
KC_F11, KC_NO, KC_NO, QK_BOOT, KC_TRNS, KC_NO, KC_NO, KC_NO, KC_NO, KC_F12,
|
||||
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS
|
||||
)
|
||||
};
|
||||
@@ -2,31 +2,34 @@
|
||||
#include QMK_KEYBOARD_H
|
||||
|
||||
// Define combos
|
||||
const uint16_t PROGMEM tab_combo[] = {KC_Y, KC_BSPC, COMBO_END};
|
||||
const uint16_t PROGMEM tab_number_combo[] = {KC_CAPS, KC_BSPC, COMBO_END};
|
||||
const uint16_t PROGMEM tab_code_combo[] = {KC_MFFD, KC_DEL, COMBO_END};
|
||||
const uint16_t PROGMEM enter_combo[] = {KC_Q, KC_W, COMBO_END};
|
||||
const uint16_t PROGMEM enter_number_combo[] = {KC_EXLM, KC_AT, COMBO_END};
|
||||
const uint16_t PROGMEM enter_code_combo[] = {KC_UNDS, KC_MINS, COMBO_END};
|
||||
const uint16_t PROGMEM number_combo[] = {KC_W, KC_Y, COMBO_END};
|
||||
const uint16_t PROGMEM number_code_combo[] = {KC_EXLM, KC_BSPC, COMBO_END};
|
||||
const uint16_t PROGMEM number_default_combo[] = {KC_AT, KC_CAPS, COMBO_END};
|
||||
const uint16_t PROGMEM tab_combo[] = {KC_Q, KC_W, COMBO_END};
|
||||
const uint16_t PROGMEM enter_combo[] = {KC_Y, KC_BSPC, COMBO_END};
|
||||
const uint16_t PROGMEM space_combo[] = {KC_V, KC_B, COMBO_END};
|
||||
const uint16_t PROGMEM middle_click_combo[] = {LT(1, KC_TAB), LT(2, KC_ENT), COMBO_END};
|
||||
const uint16_t PROGMEM default_combo[] = {KC_G, KC_J, COMBO_END};
|
||||
const uint16_t PROGMEM code_combo[] = {KC_Q, KC_BSPC, COMBO_END};
|
||||
const uint16_t PROGMEM code_number_combo[] = {KC_MINS, KC_MFFD, COMBO_END};
|
||||
const uint16_t PROGMEM code_default_combo[] = {KC_UNDS, KC_DEL, COMBO_END};
|
||||
const uint16_t PROGMEM number_combo[] = {KC_W, KC_Y, COMBO_END};
|
||||
const uint16_t PROGMEM function_combo[] = {KC_F, KC_U, COMBO_END};
|
||||
const uint16_t PROGMEM mouse_combo[] = {KC_P, KC_L, COMBO_END};
|
||||
|
||||
// Create combos
|
||||
combo_t key_combos[] = {
|
||||
COMBO(tab_combo, KC_TAB),
|
||||
COMBO(tab_number_combo, KC_TAB),
|
||||
COMBO(tab_code_combo, KC_TAB),
|
||||
COMBO(enter_combo, KC_ENT),
|
||||
COMBO(enter_number_combo, KC_ENT),
|
||||
COMBO(enter_code_combo, KC_ENT),
|
||||
COMBO(number_combo, TO_NUMBER),
|
||||
COMBO(number_code_combo, TO_CODE),
|
||||
COMBO(number_default_combo, TO_DEFAULT),
|
||||
COMBO(code_combo, TO_CODE),
|
||||
COMBO(code_number_combo, TO_NUMBER),
|
||||
COMBO(code_default_combo, TO_DEFAULT),
|
||||
[TAB_COMBO] = COMBO(tab_combo, KC_TAB),
|
||||
[ENTER_COMBO] = COMBO(enter_combo, KC_ENT),
|
||||
[SPACE_COMBO] = COMBO(space_combo, KC_SPC),
|
||||
[MIDDLE_CLICK_COMBO] = COMBO(middle_click_combo, MS_BTN3),
|
||||
[DEFAULT_COMBO] = COMBO(default_combo, TO_DEFAULT),
|
||||
[CODE_COMBO] = COMBO(code_combo, TO_CODE),
|
||||
[NUMBER_COMBO] = COMBO(number_combo, TO_NUMBER),
|
||||
[FUNCTION_COMBO] = COMBO(function_combo, TO_FUNCTION),
|
||||
[MOUSE_COMBO] = COMBO(mouse_combo, TO_MOUSE),
|
||||
};
|
||||
|
||||
// Lock combos to layers
|
||||
bool combo_should_trigger(uint16_t combo_index, combo_t *combo, uint16_t keycode, keyrecord_t *record) {
|
||||
if (combo_index == MIDDLE_CLICK_COMBO) {
|
||||
return layer_state_is(4);
|
||||
}
|
||||
|
||||
return true;
|
||||
}
|
||||
|
||||
@@ -4,6 +4,14 @@
|
||||
#define TAPPING_TERM 135
|
||||
#define PERMISSIVE_HOLD
|
||||
#define TAPPING_TERM_PER_KEY
|
||||
#define SOLENOID_PIN GP28
|
||||
#define SOLENOID_DEFAULT_BUZZ 1
|
||||
#define NO_HAPTIC_MOD
|
||||
#define RGB_BRIGHTNESS 8
|
||||
#define COMBO_TERM 20
|
||||
#define COMBO_ONLY_FROM_LAYER 0
|
||||
#define COMBO_SHOULD_TRIGGER
|
||||
|
||||
// Mouse keys
|
||||
#define MOUSEKEY_DELAY 0
|
||||
#define MOUSEKEY_INTERVAL 16
|
||||
#define MOUSEKEY_WHEEL_DELAY 0
|
||||
#define MOUSEKEY_MAX_SPEED 7
|
||||
#define MOUSEKEY_TIME_TO_MAX 40
|
||||
|
||||
@@ -2,6 +2,7 @@
|
||||
#include "keys.c"
|
||||
#include "keys.h"
|
||||
#include "tapdance.c"
|
||||
#include "rgb.c"
|
||||
#include QMK_KEYBOARD_H
|
||||
|
||||
// Custom tapping term for multi function keys
|
||||
@@ -21,20 +22,20 @@ uint16_t get_tapping_term(uint16_t keycode, keyrecord_t *record) {
|
||||
|
||||
// clang-format off
|
||||
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
|
||||
// ┌──────┬───────────┬───────────────┬────┬──────────────┬─────────────┐ ┌────────────┬────────────┬────┬───────────┬───────────┬──────┐
|
||||
// │ tab │ q │ w │ f │ p │ g │ │ j │ l │ u │ y │ bspc │ bspc │
|
||||
// ├──────┼───────────┼───────────────┼────┼──────────────┼─────────────┤ ├────────────┼────────────┼────┼───────────┼───────────┼──────┤
|
||||
// │ ent │ a │ r │ s │ t │ d │ │ h │ n │ e │ i │ o │ ' │
|
||||
// ├──────┼───────────┼───────────────┼────┼──────────────┼─────────────┤ ├────────────┼────────────┼────┼───────────┼───────────┼──────┤
|
||||
// │ lsft │ LSFT_T(z) │ TD(TD_MODS_X) │ c │ v │ b │ │ k │ m │ , │ RGUI_T(.) │ RSFT_T(/) │ rsft │
|
||||
// ├──────┼───────────┼───────────────┼────┼──────────────┼─────────────┤ ├────────────┼────────────┼────┼───────────┼───────────┼──────┤
|
||||
// │ no │ no │ no │ no │ TD(TD_MULTI) │ LGUI_T(spc) │ │ LT(1, tab) │ LT(2, ent) │ no │ no │ no │ no │
|
||||
// └──────┴───────────┴───────────────┴────┴──────────────┴─────────────┘ └────────────┴────────────┴────┴───────────┴───────────┴──────┘
|
||||
[0] = LAYOUT_split_3x6_2(
|
||||
KC_TAB , KC_Q , KC_W , KC_F , KC_P , KC_G , KC_J , KC_L , KC_U , KC_Y , KC_BSPC , KC_BSPC,
|
||||
KC_ENT , KC_A , KC_R , KC_S , KC_T , KC_D , KC_H , KC_N , KC_E , KC_I , KC_O , KC_QUOT,
|
||||
KC_LSFT , LSFT_T(KC_Z) , TD(TD_MODS_X) , KC_C , KC_V , KC_B , KC_K , KC_M , KC_COMMA , RGUI_T(KC_DOT) , RSFT_T(KC_SLSH) , KC_RSFT,
|
||||
KC_NO , KC_NO , KC_NO , KC_NO , TD(TD_MULTI) , LGUI_T(KC_SPC) , LT(1, KC_TAB) , LT(2, KC_ENT) , KC_NO , KC_NO , KC_NO , KC_NO
|
||||
// ┌──────┬───────────┬───────────────┬──────┬──────────────┬─────────────┐ ┌────────────┬────────────┬──────┬───────────┬───────────┬──────┐
|
||||
// │ tab │ q │ w │ f │ p │ g │ │ j │ l │ u │ y │ bspc │ bACK │
|
||||
// ├──────┼───────────┼───────────────┼──────┼──────────────┼─────────────┤ ├────────────┼────────────┼──────┼───────────┼───────────┼──────┤
|
||||
// │ caps │ a │ r │ s │ t │ d │ │ h │ n │ e │ i │ o │ ent │
|
||||
// ├──────┼───────────┼───────────────┼──────┼──────────────┼─────────────┤ ├────────────┼────────────┼──────┼───────────┼───────────┼──────┤
|
||||
// │ rsft │ RSFT_T(z) │ TD(TD_MODS_X) │ c │ v │ b │ │ k │ m │ , │ RGUI_T(.) │ RSFT_T(/) │ rsft │
|
||||
// ├──────┼───────────┼───────────────┼──────┼──────────────┼─────────────┤ ├────────────┼────────────┼──────┼───────────┼───────────┼──────┤
|
||||
// │ esc │ rgui │ ralt │ rctl │ TD(TD_MULTI) │ LGUI_T(spc) │ │ LT(1, tab) │ LT(2, ent) │ left │ up │ down │ rght │
|
||||
// └──────┴───────────┴───────────────┴──────┴──────────────┴─────────────┘ └────────────┴────────────┴──────┴───────────┴───────────┴──────┘
|
||||
[0] = LAYOUT_ortho_4x12(
|
||||
KC_TAB , KC_Q , KC_W , KC_F , KC_P , KC_G , KC_J , KC_L , KC_U , KC_Y , KC_BSPC , KC_BACK ,
|
||||
KC_CAPS , KC_A , KC_R , KC_S , KC_T , KC_D , KC_H , KC_N , KC_E , KC_I , KC_O , KC_ENTER,
|
||||
KC_RSFT , RSFT_T(KC_Z) , TD(TD_MODS_X) , KC_C , KC_V , KC_B , KC_K , KC_M , KC_COMMA , RGUI_T(KC_DOT) , RSFT_T(KC_SLSH) , KC_RSFT ,
|
||||
KC_ESC , KC_RGUI , KC_RALT , KC_RCTL , TD(TD_MULTI) , LGUI_T(KC_SPC) , LT(1, KC_TAB) , LT(2, KC_ENT) , KC_LEFT , KC_UP , KC_DOWN , KC_RIGHT
|
||||
),
|
||||
|
||||
// ┌─────┬───────────┬──────────────────┬─────┬─────┬─────┐ ┌─────┬──────┬──────┬──────────────┬───────────┬─────┐
|
||||
@@ -42,47 +43,63 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
|
||||
// ├─────┼───────────┼──────────────────┼─────┼─────┼─────┤ ├─────┼──────┼──────┼──────────────┼───────────┼─────┤
|
||||
// │ │ { │ ( │ ) │ } │ | │ │ esc │ left │ up │ down │ rght │ │
|
||||
// ├─────┼───────────┼──────────────────┼─────┼─────┼─────┤ ├─────┼──────┼──────┼──────────────┼───────────┼─────┤
|
||||
// │ │ LSFT_T([) │ TD(TD_MODS_QUOT) │ " │ ] │ ; │ │ ~ │ vold │ mute │ RGUI_T(volu) │ RSFT_T(\) │ │
|
||||
// │ │ RSFT_T([) │ TD(TD_MODS_QUOT) │ " │ ] │ ; │ │ ~ │ vold │ mute │ RGUI_T(volu) │ RSFT_T(\) │ │
|
||||
// ├─────┼───────────┼──────────────────┼─────┼─────┼─────┤ ├─────┼──────┼──────┼──────────────┼───────────┼─────┤
|
||||
// │ │ │ │ │ │ │ │ │ │ │ │ │ │
|
||||
// └─────┴───────────┴──────────────────┴─────┴─────┴─────┘ └─────┴──────┴──────┴──────────────┴───────────┴─────┘
|
||||
[1] = LAYOUT_split_3x6_2(
|
||||
[1] = LAYOUT_ortho_4x12(
|
||||
KC_TRNS , KC_UNDS , KC_MINS , KC_PLUS , KC_EQL , KC_COLN , KC_GRV , KC_MRWD , KC_MPLY , KC_MFFD , KC_DEL , KC_TRNS,
|
||||
KC_TRNS , KC_LCBR , KC_LPRN , KC_RPRN , KC_RCBR , KC_PIPE , KC_ESC , KC_LEFT , KC_UP , KC_DOWN , KC_RGHT , KC_TRNS,
|
||||
KC_TRNS , LSFT_T(KC_LBRC) , TD(TD_MODS_QUOT) , KC_DQUO , KC_RBRC , KC_SCLN , KC_TILDE , KC_VOLD , KC_MUTE , RGUI_T(KC_VOLU) , RSFT_T(KC_BSLS) , KC_TRNS,
|
||||
KC_TRNS , RSFT_T(KC_LBRC) , TD(TD_MODS_QUOT) , KC_DQUO , KC_RBRC , KC_SCLN , KC_TILDE , KC_VOLD , KC_MUTE , RGUI_T(KC_VOLU) , RSFT_T(KC_BSLS) , KC_TRNS,
|
||||
KC_TRNS , KC_TRNS , KC_TRNS , KC_TRNS , KC_TRNS , KC_TRNS , KC_TRNS , KC_TRNS , KC_TRNS , KC_TRNS , KC_TRNS , KC_TRNS
|
||||
),
|
||||
|
||||
// ┌─────┬──────┬─────┬─────┬─────┬───────┐ ┌─────┬─────┬─────┬──────┬───────────┬─────┐
|
||||
// │ │ ! │ @ │ # │ $ │ % │ │ ^ │ & │ * │ caps │ bspc │ │
|
||||
// ├─────┼──────┼─────┼─────┼─────┼───────┤ ├─────┼─────┼─────┼──────┼───────────┼─────┤
|
||||
// │ │ 1 │ 2 │ 3 │ 4 │ 5 │ │ 6 │ 7 │ 8 │ 9 │ 0 │ │
|
||||
// ├─────┼──────┼─────┼─────┼─────┼───────┤ ├─────┼─────┼─────┼──────┼───────────┼─────┤
|
||||
// │ │ lsft │ │ no │ no │ MO(3) │ │ no │ no │ , │ │ RSFT_T(/) │ │
|
||||
// ├─────┼──────┼─────┼─────┼─────┼───────┤ ├─────┼─────┼─────┼──────┼───────────┼─────┤
|
||||
// │ │ │ │ │ │ │ │ │ │ │ │ │ │
|
||||
// └─────┴──────┴─────┴─────┴─────┴───────┘ └─────┴─────┴─────┴──────┴───────────┴─────┘
|
||||
[2] = LAYOUT_split_3x6_2(
|
||||
KC_TRNS , KC_EXLM , KC_AT , KC_HASH , KC_DLR , KC_PERC , KC_CIRC , KC_AMPR , KC_ASTR , KC_CAPS , KC_BSPC , KC_TRNS,
|
||||
// ┌─────┬──────┬─────┬───────┬─────┬───────┐ ┌─────┬─────┬─────┬──────┬───────────┬─────┐
|
||||
// │ │ ! │ @ │ # │ $ │ % │ │ ^ │ & │ * │ caps │ bACK │ │
|
||||
// ├─────┼──────┼─────┼───────┼─────┼───────┤ ├─────┼─────┼─────┼──────┼───────────┼─────┤
|
||||
// │ │ 1 │ 2 │ 3 │ 4 │ 5 │ │ 6 │ 7 │ 8 │ 9 │ 0 │ │
|
||||
// ├─────┼──────┼─────┼───────┼─────┼───────┤ ├─────┼─────┼─────┼──────┼───────────┼─────┤
|
||||
// │ │ rsft │ no │ MO(4) │ no │ MO(3) │ │ no │ no │ , │ . │ RSFT_T(/) │ │
|
||||
// ├─────┼──────┼─────┼───────┼─────┼───────┤ ├─────┼─────┼─────┼──────┼───────────┼─────┤
|
||||
// │ │ │ │ │ │ │ │ │ │ │ │ │ │
|
||||
// └─────┴──────┴─────┴───────┴─────┴───────┘ └─────┴─────┴─────┴──────┴───────────┴─────┘
|
||||
[2] = LAYOUT_ortho_4x12(
|
||||
KC_TRNS , KC_EXLM , KC_AT , KC_HASH , KC_DLR , KC_PERC , KC_CIRC , KC_AMPR , KC_ASTR , KC_CAPS , KC_BACK , KC_TRNS,
|
||||
KC_TRNS , KC_1 , KC_2 , KC_3 , KC_4 , KC_5 , KC_6 , KC_7 , KC_8 , KC_9 , KC_0 , KC_TRNS,
|
||||
KC_TRNS , KC_LSFT , KC_TRNS , KC_NO , KC_NO , MO(3) , KC_NO , KC_NO , KC_COMMA , KC_TRNS , RSFT_T(KC_SLSH) , KC_TRNS,
|
||||
KC_TRNS , KC_RSFT , KC_NO , MO(4) , KC_NO , MO(3) , KC_NO , KC_NO , KC_COMMA , KC_DOT , RSFT_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 , KC_TRNS
|
||||
),
|
||||
|
||||
// ┌─────┬─────────────┬────────────┬─────┬───────────┬─────┐ ┌──────────────────┬───────────────────────┬───────────────────────────┬─────────────┬───────────┬─────┐
|
||||
// │ │ LAYOUT_SWAP │ MODE_CHECK │ no │ no │ no │ │ no │ no │ no │ GAME_TOGGLE │ OS_TOGGLE │ │
|
||||
// ├─────┼─────────────┼────────────┼─────┼───────────┼─────┤ ├──────────────────┼───────────────────────┼───────────────────────────┼─────────────┼───────────┼─────┤
|
||||
// │ │ f1 │ f2 │ f3 │ f4 │ f5 │ │ f6 │ f7 │ f8 │ f9 │ f10 │ │
|
||||
// ├─────┼─────────────┼────────────┼─────┼───────────┼─────┤ ├──────────────────┼───────────────────────┼───────────────────────────┼─────────────┼───────────┼─────┤
|
||||
// │ │ f11 │ │ no │ HARD_BOOT │ no │ │ QK_HAPTIC_TOGGLE │ QK_HAPTIC_BUZZ_TOGGLE │ QK_HAPTIC_FEEDBACK_TOGGLE │ │ f12 │ │
|
||||
// ├─────┼─────────────┼────────────┼─────┼───────────┼─────┤ ├──────────────────┼───────────────────────┼───────────────────────────┼─────────────┼───────────┼─────┤
|
||||
// │ │ │ │ │ │ │ │ │ │ │ │ │ │
|
||||
// └─────┴─────────────┴────────────┴─────┴───────────┴─────┘ └──────────────────┴───────────────────────┴───────────────────────────┴─────────────┴───────────┴─────┘
|
||||
[3] = LAYOUT_split_3x6_2(
|
||||
KC_TRNS , LAYOUT_SWAP , MODE_CHECK , KC_NO , KC_NO , KC_NO , KC_NO , KC_NO , KC_NO , GAME_TOGGLE , OS_TOGGLE , KC_TRNS,
|
||||
KC_TRNS , KC_F1 , KC_F2 , KC_F3 , KC_F4 , KC_F5 , KC_F6 , KC_F7 , KC_F8 , KC_F9 , KC_F10 , KC_TRNS,
|
||||
KC_TRNS , KC_F11 , KC_TRNS , KC_NO , HARD_BOOT , KC_NO , QK_HAPTIC_TOGGLE , QK_HAPTIC_BUZZ_TOGGLE , QK_HAPTIC_FEEDBACK_TOGGLE , KC_TRNS , KC_F12 , KC_TRNS,
|
||||
KC_TRNS , KC_TRNS , KC_TRNS , KC_TRNS , KC_TRNS , KC_TRNS , KC_TRNS , KC_TRNS , KC_TRNS , KC_TRNS , KC_TRNS , KC_TRNS
|
||||
// ┌─────┬─────────────┬────────────┬─────┬───────────┬─────┐ ┌─────┬─────┬─────┬─────────────┬─────────────┬─────┐
|
||||
// │ │ LAYOUT_SWAP │ MODE_CHECK │ no │ no │ no │ │ no │ no │ no │ GAME_TOGGLE │ OS_TOGGLE │ │
|
||||
// ├─────┼─────────────┼────────────┼─────┼───────────┼─────┤ ├─────┼─────┼─────┼─────────────┼─────────────┼─────┤
|
||||
// │ │ f1 │ f2 │ f3 │ f4 │ f5 │ │ f6 │ f7 │ f8 │ f9 │ f10 │ │
|
||||
// ├─────┼─────────────┼────────────┼─────┼───────────┼─────┤ ├─────┼─────┼─────┼─────────────┼─────────────┼─────┤
|
||||
// │ │ RSFT_T(f11) │ no │ no │ HARD_BOOT │ no │ │ no │ no │ no │ no │ RSFT_T(f12) │ │
|
||||
// ├─────┼─────────────┼────────────┼─────┼───────────┼─────┤ ├─────┼─────┼─────┼─────────────┼─────────────┼─────┤
|
||||
// │ │ │ │ │ │ │ │ │ │ │ │ │ │
|
||||
// └─────┴─────────────┴────────────┴─────┴───────────┴─────┘ └─────┴─────┴─────┴─────────────┴─────────────┴─────┘
|
||||
[3] = LAYOUT_ortho_4x12(
|
||||
KC_TRNS , LAYOUT_SWAP , MODE_CHECK , KC_NO , KC_NO , KC_NO , KC_NO , KC_NO , KC_NO , GAME_TOGGLE , OS_TOGGLE , KC_TRNS,
|
||||
KC_TRNS , KC_F1 , KC_F2 , KC_F3 , KC_F4 , KC_F5 , KC_F6 , KC_F7 , KC_F8 , KC_F9 , KC_F10 , KC_TRNS,
|
||||
KC_TRNS , RSFT_T(KC_F11) , KC_NO , KC_NO , HARD_BOOT , KC_NO , KC_NO , KC_NO , KC_NO , KC_NO , RSFT_T(KC_F12) , KC_TRNS,
|
||||
KC_TRNS , KC_TRNS , KC_TRNS , KC_TRNS , KC_TRNS , KC_TRNS , KC_TRNS , KC_TRNS , KC_TRNS , KC_TRNS , KC_TRNS , KC_TRNS
|
||||
),
|
||||
|
||||
// ┌─────┬──────┬─────┬─────┬─────┬─────┐ ┌─────────┬────────────┬─────────┬─────────┬────────────┬─────┐
|
||||
// │ │ no │ no │ no │ no │ no │ │ no │ RGUI(left) │ no │ no │ RGUI(rght) │ │
|
||||
// ├─────┼──────┼─────┼─────┼─────┼─────┤ ├─────────┼────────────┼─────────┼─────────┼────────────┼─────┤
|
||||
// │ │ no │ no │ no │ no │ no │ │ no │ MS_LEFT │ MS_UP │ MS_DOWN │ MS_RGHT │ │
|
||||
// ├─────┼──────┼─────┼─────┼─────┼─────┤ ├─────────┼────────────┼─────────┼─────────┼────────────┼─────┤
|
||||
// │ │ rsft │ no │ no │ no │ no │ │ no │ MS_WHLL │ MS_WHLU │ MS_WHLD │ MS_WHLR │ │
|
||||
// ├─────┼──────┼─────┼─────┼─────┼─────┤ ├─────────┼────────────┼─────────┼─────────┼────────────┼─────┤
|
||||
// │ │ │ │ │ │ │ │ MS_BTN1 │ MS_BTN2 │ │ │ │ │
|
||||
// └─────┴──────┴─────┴─────┴─────┴─────┘ └─────────┴────────────┴─────────┴─────────┴────────────┴─────┘
|
||||
[4] = LAYOUT_ortho_4x12(
|
||||
KC_TRNS , KC_NO , KC_NO , KC_NO , KC_NO , KC_NO , KC_NO , RGUI(KC_LEFT) , KC_NO , KC_NO , RGUI(KC_RIGHT) , KC_TRNS,
|
||||
KC_TRNS , KC_NO , KC_NO , KC_NO , KC_NO , KC_NO , KC_NO , MS_LEFT , MS_UP , MS_DOWN , MS_RGHT , KC_TRNS,
|
||||
KC_TRNS , KC_RSFT , KC_NO , KC_NO , KC_NO , KC_NO , KC_NO , MS_WHLL , MS_WHLU , MS_WHLD , MS_WHLR , KC_TRNS,
|
||||
KC_TRNS , KC_TRNS , KC_TRNS , KC_TRNS , KC_TRNS , KC_TRNS , MS_BTN1 , MS_BTN2 , KC_TRNS , KC_TRNS , KC_TRNS , KC_TRNS
|
||||
)
|
||||
};
|
||||
// clang-format on
|
||||
|
||||
@@ -79,7 +79,7 @@ bool process_record_user(uint16_t keycode, keyrecord_t *record) {
|
||||
|
||||
if (user_config.is_game_mode) {
|
||||
switch (keycode) {
|
||||
case LSFT_T(KC_Z):
|
||||
case RSFT_T(KC_Z):
|
||||
remapped_keycode = KC_Z;
|
||||
break;
|
||||
case RSFT_T(KC_SLSH):
|
||||
@@ -126,7 +126,16 @@ bool process_record_user(uint16_t keycode, keyrecord_t *record) {
|
||||
layer_move(0);
|
||||
return false;
|
||||
case TO_CODE:
|
||||
layer_move(1);
|
||||
layer_move(get_highest_layer(layer_state) == 1 ? 0 : 1);
|
||||
return false;
|
||||
case TO_NUMBER:
|
||||
layer_move(get_highest_layer(layer_state) == 2 ? 0 : 2);
|
||||
return false;
|
||||
case TO_FUNCTION:
|
||||
layer_move(get_highest_layer(layer_state) == 3 ? 0 : 3);
|
||||
return false;
|
||||
case TO_MOUSE:
|
||||
layer_move(get_highest_layer(layer_state) == 4 ? 0 : 4);
|
||||
return false;
|
||||
case OS_TOGGLE:
|
||||
user_config.is_windows = !user_config.is_windows;
|
||||
@@ -145,6 +154,9 @@ bool process_record_user(uint16_t keycode, keyrecord_t *record) {
|
||||
eeconfig_init_user();
|
||||
reset_keyboard();
|
||||
return false;
|
||||
case KC_BACK:
|
||||
tap_code(KC_BSPC);
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -17,9 +17,12 @@ enum custom_keycodes {
|
||||
MODE_CHECK,
|
||||
LAYOUT_SWAP,
|
||||
HARD_BOOT,
|
||||
TO_DEFAULT,
|
||||
TO_CODE,
|
||||
TO_NUMBER,
|
||||
TO_DEFAULT
|
||||
TO_FUNCTION,
|
||||
TO_MOUSE,
|
||||
KC_BACK
|
||||
};
|
||||
|
||||
enum tap_dance_keycodes {
|
||||
@@ -27,3 +30,19 @@ enum tap_dance_keycodes {
|
||||
TD_MODS_QUOT,
|
||||
TD_MULTI,
|
||||
};
|
||||
|
||||
enum combos {
|
||||
TAB_COMBO,
|
||||
ENTER_COMBO,
|
||||
SPACE_COMBO,
|
||||
MIDDLE_CLICK_COMBO,
|
||||
WHEEL_UP_COMBO,
|
||||
WHEEL_DOWN_COMBO,
|
||||
WHEEL_LEFT_COMBO,
|
||||
WHEEL_RIGHT_COMBO,
|
||||
DEFAULT_COMBO,
|
||||
CODE_COMBO,
|
||||
NUMBER_COMBO,
|
||||
FUNCTION_COMBO,
|
||||
MOUSE_COMBO
|
||||
};
|
||||
|
||||
@@ -0,0 +1,45 @@
|
||||
#include QMK_KEYBOARD_H
|
||||
#include "keys.h"
|
||||
|
||||
#define SCALE(x) ((x * RGB_BRIGHTNESS) / 255)
|
||||
|
||||
void housekeeping_task_user(void) {
|
||||
uint8_t layer = get_highest_layer(layer_state | default_layer_state);
|
||||
static bool init = false;
|
||||
|
||||
if (!init) {
|
||||
gpio_set_pin_output(GP25);
|
||||
gpio_write_pin_low(GP25);
|
||||
init = true;
|
||||
}
|
||||
|
||||
// Caps lock LED
|
||||
gpio_write_pin(GP25, host_keyboard_led_state().caps_lock);
|
||||
|
||||
// Layer colors
|
||||
switch (layer) {
|
||||
case 1:
|
||||
rgblight_setrgb(SCALE(255), SCALE(255), 0); // Yellow
|
||||
return;
|
||||
|
||||
case 2:
|
||||
rgblight_setrgb(0, 0, SCALE(255)); // Blue
|
||||
return;
|
||||
|
||||
case 3:
|
||||
rgblight_setrgb(SCALE(255), SCALE(64), 0); // Orange
|
||||
return;
|
||||
|
||||
case 4:
|
||||
rgblight_setrgb(SCALE(128), 0, SCALE(255)); // Purple
|
||||
return;
|
||||
}
|
||||
|
||||
if (user_config.is_game_mode) {
|
||||
rgblight_setrgb(SCALE(255), 0, 0); // Red
|
||||
} else if (user_config.is_windows) {
|
||||
rgblight_setrgb(0, SCALE(255), 0); // Green
|
||||
} else {
|
||||
rgblight_setrgb(SCALE(255), SCALE(255), SCALE(255)); // White
|
||||
}
|
||||
}
|
||||
@@ -20,23 +20,20 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
// Define options
|
||||
#define TAPPING_TERM 135
|
||||
#define PERMISSIVE_HOLD
|
||||
#define IGNORE_MOD_TAP_INTERRUPT
|
||||
#define RGB_BRIGHTNESS 8
|
||||
#define COMBO_TERM 20
|
||||
#define COMBO_ONLY_FROM_LAYER 0
|
||||
#define COMBO_SHOULD_TRIGGER
|
||||
|
||||
// Vial
|
||||
#define VIAL_KEYBOARD_UID {0x8A, 0x72, 0x89, 0xE0, 0xE3, 0xAD, 0x7A, 0x6E}
|
||||
#define VIAL_UNLOCK_COMBO_ROWS { 3, 3 }
|
||||
#define VIAL_UNLOCK_COMBO_COLS { 4, 5 }
|
||||
#define VIAL_KEYBOARD_UID {0x62, 0x11, 0x1A, 0xB9, 0x84, 0x37, 0x7A, 0xF4}
|
||||
#define VIAL_UNLOCK_COMBO_ROWS {3, 3}
|
||||
#define VIAL_UNLOCK_COMBO_COLS {0, 11}
|
||||
#define DYNAMIC_KEYMAP_LAYER_COUNT 5
|
||||
|
||||
// RGB
|
||||
#define RGBLIGHT_EFFECT_ALTERNATING
|
||||
#define RGBLIGHT_EFFECT_BREATHING
|
||||
#define RGBLIGHT_EFFECT_CHRISTMAS
|
||||
#define RGBLIGHT_EFFECT_KNIGHT
|
||||
#define RGBLIGHT_EFFECT_RAINBOW_MOOD
|
||||
#define RGBLIGHT_EFFECT_RAINBOW_SWIRL
|
||||
#define RGBLIGHT_EFFECT_RGB_TEST
|
||||
#define RGBLIGHT_EFFECT_SNAKE
|
||||
#define RGBLIGHT_EFFECT_STATIC_GRADIENT
|
||||
#define RGBLIGHT_EFFECT_TWINKLE
|
||||
#define RGBLIGHT_LIMIT_VAL 64
|
||||
#define RGB_DI_PIN 23
|
||||
// Mouse keys
|
||||
#define MOUSEKEY_DELAY 0
|
||||
#define MOUSEKEY_INTERVAL 16
|
||||
#define MOUSEKEY_WHEEL_DELAY 0
|
||||
#define MOUSEKEY_MAX_SPEED 7
|
||||
#define MOUSEKEY_TIME_TO_MAX 40
|
||||
|
||||
@@ -1,45 +1,88 @@
|
||||
/*
|
||||
Copyright 2023 Joe Scotto
|
||||
|
||||
This program is free software: you can redistribute it and/or modify
|
||||
it under the terms of the GNU General Public License as published by
|
||||
the Free Software Foundation, either version 2 of the License, or
|
||||
(at your option) any later version.
|
||||
|
||||
This program is distributed in the hope that it will be useful,
|
||||
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
GNU General Public License for more details.
|
||||
|
||||
You should have received a copy of the GNU General Public License
|
||||
along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
*/
|
||||
|
||||
#include "keys.c"
|
||||
#include "keys.h"
|
||||
#include "rgb.c"
|
||||
#include QMK_KEYBOARD_H
|
||||
|
||||
// clang-format off
|
||||
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
|
||||
[0] = LAYOUT_split_3x5_2(
|
||||
KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P,
|
||||
KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_BSPC,
|
||||
LSFT_T(KC_Z), KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMMA, KC_DOT, RSFT_T(KC_SLSH),
|
||||
KC_LALT, LGUI_T(KC_SPC), LT(1, KC_TAB), LT(2, KC_ENT)
|
||||
),
|
||||
[1] = LAYOUT_split_3x5_2(
|
||||
KC_UNDS, KC_MINS, KC_PLUS, KC_EQL, KC_COLN, KC_GRV, KC_MRWD, KC_MPLY, KC_MFFD, KC_DEL,
|
||||
KC_LCBR, KC_LPRN, KC_RPRN, KC_RCBR, KC_PIPE, KC_ESC, KC_LEFT, KC_UP, KC_DOWN, KC_RGHT,
|
||||
LSFT_T(KC_LBRC), KC_QUOT, KC_DQUO, KC_RBRC, KC_SCLN, KC_TILDE, KC_VOLD, KC_MUTE, KC_VOLU, RSFT_T(KC_BSLS),
|
||||
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS
|
||||
),
|
||||
[2] = LAYOUT_split_3x5_2(
|
||||
KC_EXLM, KC_AT, KC_HASH, KC_DLR, KC_PERC, KC_CIRC, KC_AMPR, KC_ASTR, KC_CAPS, KC_BSPC,
|
||||
KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0,
|
||||
KC_LSFT, KC_NO, KC_NO, KC_NO, MO(3), KC_NO, KC_NO, KC_COMM, KC_DOT, RSFT_T(KC_SLSH),
|
||||
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS
|
||||
),
|
||||
[3] = LAYOUT_split_3x5_2(
|
||||
KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO,
|
||||
KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10,
|
||||
KC_F11, KC_NO, KC_NO, QK_BOOT, KC_TRNS, KC_NO, KC_NO, KC_NO, KC_NO, KC_F12,
|
||||
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS
|
||||
)
|
||||
};
|
||||
// ┌──────┬───────────┬──────┬──────┬──────┬─────────────┐ ┌────────────┬────────────┬──────┬───────────┬───────────┬──────┐
|
||||
// │ tab │ q │ w │ f │ p │ g │ │ j │ l │ u │ y │ bspc │ bACK │
|
||||
// ├──────┼───────────┼──────┼──────┼──────┼─────────────┤ ├────────────┼────────────┼──────┼───────────┼───────────┼──────┤
|
||||
// │ caps │ a │ r │ s │ t │ d │ │ h │ n │ e │ i │ o │ ent │
|
||||
// ├──────┼───────────┼──────┼──────┼──────┼─────────────┤ ├────────────┼────────────┼──────┼───────────┼───────────┼──────┤
|
||||
// │ rsft │ RSFT_T(z) │ x │ c │ v │ b │ │ k │ m │ , │ RGUI_T(.) │ RSFT_T(/) │ rsft │
|
||||
// ├──────┼───────────┼──────┼──────┼──────┼─────────────┤ ├────────────┼────────────┼──────┼───────────┼───────────┼──────┤
|
||||
// │ esc │ rgui │ ralt │ rctl │ lalt │ LGUI_T(spc) │ │ LT(1, tab) │ LT(2, ent) │ left │ up │ down │ rght │
|
||||
// └──────┴───────────┴──────┴──────┴──────┴─────────────┘ └────────────┴────────────┴──────┴───────────┴───────────┴──────┘
|
||||
[0] = LAYOUT_ortho_4x12(
|
||||
KC_TAB , KC_Q , KC_W , KC_F , KC_P , KC_G , KC_J , KC_L , KC_U , KC_Y , KC_BSPC , KC_BACK ,
|
||||
KC_CAPS , KC_A , KC_R , KC_S , KC_T , KC_D , KC_H , KC_N , KC_E , KC_I , KC_O , KC_ENTER,
|
||||
KC_RSFT , RSFT_T(KC_Z) , KC_X , KC_C , KC_V , KC_B , KC_K , KC_M , KC_COMMA , RGUI_T(KC_DOT) , RSFT_T(KC_SLSH) , KC_RSFT ,
|
||||
KC_ESC , KC_RGUI , KC_RALT , KC_RCTL , KC_LALT , LGUI_T(KC_SPC) , LT(1, KC_TAB) , LT(2, KC_ENT) , KC_LEFT , KC_UP , KC_DOWN , KC_RIGHT
|
||||
),
|
||||
|
||||
// ┌─────┬───────────┬─────┬─────┬─────┬─────┐ ┌─────┬──────┬──────┬──────────────┬───────────┬─────┐
|
||||
// │ │ _ │ - │ + │ = │ : │ │ ` │ mrwd │ mply │ mffd │ del │ │
|
||||
// ├─────┼───────────┼─────┼─────┼─────┼─────┤ ├─────┼──────┼──────┼──────────────┼───────────┼─────┤
|
||||
// │ │ { │ ( │ ) │ } │ | │ │ esc │ left │ up │ down │ rght │ │
|
||||
// ├─────┼───────────┼─────┼─────┼─────┼─────┤ ├─────┼──────┼──────┼──────────────┼───────────┼─────┤
|
||||
// │ │ RSFT_T([) │ ' │ " │ ] │ ; │ │ ~ │ vold │ mute │ RGUI_T(volu) │ RSFT_T(\) │ │
|
||||
// ├─────┼───────────┼─────┼─────┼─────┼─────┤ ├─────┼──────┼──────┼──────────────┼───────────┼─────┤
|
||||
// │ │ │ │ │ │ │ │ │ │ │ │ │ │
|
||||
// └─────┴───────────┴─────┴─────┴─────┴─────┘ └─────┴──────┴──────┴──────────────┴───────────┴─────┘
|
||||
[1] = LAYOUT_ortho_4x12(
|
||||
KC_TRNS , KC_UNDS , KC_MINS , KC_PLUS , KC_EQL , KC_COLN , KC_GRV , KC_MRWD , KC_MPLY , KC_MFFD , KC_DEL , KC_TRNS,
|
||||
KC_TRNS , KC_LCBR , KC_LPRN , KC_RPRN , KC_RCBR , KC_PIPE , KC_ESC , KC_LEFT , KC_UP , KC_DOWN , KC_RGHT , KC_TRNS,
|
||||
KC_TRNS , RSFT_T(KC_LBRC) , KC_QUOT , KC_DQUO , KC_RBRC , KC_SCLN , KC_TILDE , KC_VOLD , KC_MUTE , RGUI_T(KC_VOLU) , RSFT_T(KC_BSLS) , KC_TRNS,
|
||||
KC_TRNS , KC_TRNS , KC_TRNS , KC_TRNS , KC_TRNS , KC_TRNS , KC_TRNS , KC_TRNS , KC_TRNS , KC_TRNS , KC_TRNS , KC_TRNS
|
||||
),
|
||||
|
||||
// ┌─────┬──────┬─────┬───────┬─────┬───────┐ ┌─────┬─────┬─────┬──────┬───────────┬─────┐
|
||||
// │ │ ! │ @ │ # │ $ │ % │ │ ^ │ & │ * │ caps │ bACK │ │
|
||||
// ├─────┼──────┼─────┼───────┼─────┼───────┤ ├─────┼─────┼─────┼──────┼───────────┼─────┤
|
||||
// │ │ 1 │ 2 │ 3 │ 4 │ 5 │ │ 6 │ 7 │ 8 │ 9 │ 0 │ │
|
||||
// ├─────┼──────┼─────┼───────┼─────┼───────┤ ├─────┼─────┼─────┼──────┼───────────┼─────┤
|
||||
// │ │ rsft │ no │ MO(4) │ no │ MO(3) │ │ no │ no │ , │ . │ RSFT_T(/) │ │
|
||||
// ├─────┼──────┼─────┼───────┼─────┼───────┤ ├─────┼─────┼─────┼──────┼───────────┼─────┤
|
||||
// │ │ │ │ │ │ │ │ │ │ │ │ │ │
|
||||
// └─────┴──────┴─────┴───────┴─────┴───────┘ └─────┴─────┴─────┴──────┴───────────┴─────┘
|
||||
[2] = LAYOUT_ortho_4x12(
|
||||
KC_TRNS , KC_EXLM , KC_AT , KC_HASH , KC_DLR , KC_PERC , KC_CIRC , KC_AMPR , KC_ASTR , KC_CAPS , KC_BACK , KC_TRNS,
|
||||
KC_TRNS , KC_1 , KC_2 , KC_3 , KC_4 , KC_5 , KC_6 , KC_7 , KC_8 , KC_9 , KC_0 , KC_TRNS,
|
||||
KC_TRNS , KC_RSFT , KC_NO , MO(4) , KC_NO , MO(3) , KC_NO , KC_NO , KC_COMMA , KC_DOT , RSFT_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 , KC_TRNS
|
||||
),
|
||||
|
||||
// ┌─────┬─────────────┬────────────┬─────┬───────────┬─────┐ ┌─────┬─────┬─────┬─────────────┬─────────────┬─────┐
|
||||
// │ │ LAYOUT_SWAP │ MODE_CHECK │ no │ no │ no │ │ no │ no │ no │ GAME_TOGGLE │ OS_TOGGLE │ │
|
||||
// ├─────┼─────────────┼────────────┼─────┼───────────┼─────┤ ├─────┼─────┼─────┼─────────────┼─────────────┼─────┤
|
||||
// │ │ f1 │ f2 │ f3 │ f4 │ f5 │ │ f6 │ f7 │ f8 │ f9 │ f10 │ │
|
||||
// ├─────┼─────────────┼────────────┼─────┼───────────┼─────┤ ├─────┼─────┼─────┼─────────────┼─────────────┼─────┤
|
||||
// │ │ RSFT_T(f11) │ no │ no │ HARD_BOOT │ no │ │ no │ no │ no │ no │ RSFT_T(f12) │ │
|
||||
// ├─────┼─────────────┼────────────┼─────┼───────────┼─────┤ ├─────┼─────┼─────┼─────────────┼─────────────┼─────┤
|
||||
// │ │ │ │ │ │ │ │ │ │ │ │ │ │
|
||||
// └─────┴─────────────┴────────────┴─────┴───────────┴─────┘ └─────┴─────┴─────┴─────────────┴─────────────┴─────┘
|
||||
[3] = LAYOUT_ortho_4x12(
|
||||
KC_TRNS , LAYOUT_SWAP , MODE_CHECK , KC_NO , KC_NO , KC_NO , KC_NO , KC_NO , KC_NO , GAME_TOGGLE , OS_TOGGLE , KC_TRNS,
|
||||
KC_TRNS , KC_F1 , KC_F2 , KC_F3 , KC_F4 , KC_F5 , KC_F6 , KC_F7 , KC_F8 , KC_F9 , KC_F10 , KC_TRNS,
|
||||
KC_TRNS , RSFT_T(KC_F11) , KC_NO , KC_NO , HARD_BOOT , KC_NO , KC_NO , KC_NO , KC_NO , KC_NO , RSFT_T(KC_F12) , KC_TRNS,
|
||||
KC_TRNS , KC_TRNS , KC_TRNS , KC_TRNS , KC_TRNS , KC_TRNS , KC_TRNS , KC_TRNS , KC_TRNS , KC_TRNS , KC_TRNS , KC_TRNS
|
||||
),
|
||||
|
||||
// ┌─────┬──────┬─────┬─────┬─────┬─────┐ ┌─────────┬────────────┬─────────┬─────────┬────────────┬─────┐
|
||||
// │ │ no │ no │ no │ no │ no │ │ no │ RGUI(left) │ no │ no │ RGUI(rght) │ │
|
||||
// ├─────┼──────┼─────┼─────┼─────┼─────┤ ├─────────┼────────────┼─────────┼─────────┼────────────┼─────┤
|
||||
// │ │ no │ no │ no │ no │ no │ │ no │ MS_LEFT │ MS_UP │ MS_DOWN │ MS_RGHT │ │
|
||||
// ├─────┼──────┼─────┼─────┼─────┼─────┤ ├─────────┼────────────┼─────────┼─────────┼────────────┼─────┤
|
||||
// │ │ rsft │ no │ no │ no │ no │ │ no │ MS_WHLL │ MS_WHLU │ MS_WHLD │ MS_WHLR │ │
|
||||
// ├─────┼──────┼─────┼─────┼─────┼─────┤ ├─────────┼────────────┼─────────┼─────────┼────────────┼─────┤
|
||||
// │ │ │ │ │ │ │ │ MS_BTN1 │ MS_BTN2 │ │ │ │ │
|
||||
// └─────┴──────┴─────┴─────┴─────┴─────┘ └─────────┴────────────┴─────────┴─────────┴────────────┴─────┘
|
||||
[4] = LAYOUT_ortho_4x12(
|
||||
KC_TRNS , KC_NO , KC_NO , KC_NO , KC_NO , KC_NO , KC_NO , RGUI(KC_LEFT) , KC_NO , KC_NO , RGUI(KC_RIGHT) , KC_TRNS,
|
||||
KC_TRNS , KC_NO , KC_NO , KC_NO , KC_NO , KC_NO , KC_NO , MS_LEFT , MS_UP , MS_DOWN , MS_RGHT , KC_TRNS,
|
||||
KC_TRNS , KC_RSFT , KC_NO , KC_NO , KC_NO , KC_NO , KC_NO , MS_WHLL , MS_WHLU , MS_WHLD , MS_WHLR , KC_TRNS,
|
||||
KC_TRNS , KC_TRNS , KC_TRNS , KC_TRNS , KC_TRNS , KC_TRNS , MS_BTN1 , MS_BTN2 , KC_TRNS , KC_TRNS , KC_TRNS , KC_TRNS
|
||||
)
|
||||
};
|
||||
// clang-format on
|
||||
|
||||
@@ -0,0 +1,164 @@
|
||||
#include "keys.h"
|
||||
#include QMK_KEYBOARD_H
|
||||
|
||||
// Mode check
|
||||
char mode_string[32];
|
||||
char *os;
|
||||
char *mode;
|
||||
char *layout;
|
||||
|
||||
void eeconfig_init_user(void) {
|
||||
user_config.raw = 0;
|
||||
eeconfig_update_user(user_config.raw);
|
||||
}
|
||||
|
||||
void keyboard_post_init_user(void) {
|
||||
user_config.raw = eeconfig_read_user();
|
||||
keymap_config.swap_lctl_lgui = user_config.is_windows;
|
||||
}
|
||||
|
||||
bool process_record_user(uint16_t keycode, keyrecord_t *record) {
|
||||
uint16_t remapped_keycode = KC_NO;
|
||||
|
||||
if (user_config.is_qwerty) {
|
||||
switch (keycode) {
|
||||
// Top row
|
||||
case KC_F:
|
||||
remapped_keycode = KC_E;
|
||||
break;
|
||||
case KC_P:
|
||||
remapped_keycode = KC_R;
|
||||
break;
|
||||
case KC_G:
|
||||
remapped_keycode = KC_T;
|
||||
break;
|
||||
case KC_J:
|
||||
remapped_keycode = KC_Y;
|
||||
break;
|
||||
case KC_L:
|
||||
remapped_keycode = KC_U;
|
||||
break;
|
||||
case KC_U:
|
||||
remapped_keycode = KC_I;
|
||||
break;
|
||||
case KC_Y:
|
||||
remapped_keycode = KC_O;
|
||||
break;
|
||||
case KC_BSPC:
|
||||
remapped_keycode = KC_P;
|
||||
break;
|
||||
case KC_R:
|
||||
remapped_keycode = KC_S;
|
||||
break;
|
||||
case KC_S:
|
||||
remapped_keycode = KC_D;
|
||||
break;
|
||||
case KC_T:
|
||||
remapped_keycode = KC_F;
|
||||
break;
|
||||
case KC_D:
|
||||
remapped_keycode = KC_G;
|
||||
break;
|
||||
case KC_N:
|
||||
remapped_keycode = KC_J;
|
||||
break;
|
||||
case KC_E:
|
||||
remapped_keycode = KC_K;
|
||||
break;
|
||||
case KC_I:
|
||||
remapped_keycode = KC_L;
|
||||
break;
|
||||
case KC_O:
|
||||
remapped_keycode = KC_BSPC;
|
||||
break;
|
||||
case KC_K:
|
||||
remapped_keycode = KC_N;
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
if (user_config.is_game_mode) {
|
||||
switch (keycode) {
|
||||
case RSFT_T(KC_Z):
|
||||
remapped_keycode = KC_Z;
|
||||
break;
|
||||
case RSFT_T(KC_SLSH):
|
||||
remapped_keycode = KC_SLSH;
|
||||
break;
|
||||
case TD(TD_MODS_X):
|
||||
remapped_keycode = KC_X;
|
||||
break;
|
||||
case RGUI_T(KC_DOT):
|
||||
remapped_keycode = KC_DOT;
|
||||
break;
|
||||
case TD(TD_MULTI):
|
||||
remapped_keycode = KC_LCTL;
|
||||
break;
|
||||
case LGUI_T(KC_SPC):
|
||||
remapped_keycode = KC_SPC;
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
if (remapped_keycode != KC_NO) {
|
||||
record->event.pressed ? register_code(remapped_keycode) : unregister_code(remapped_keycode);
|
||||
return false;
|
||||
}
|
||||
|
||||
if (keycode == MODE_CHECK) {
|
||||
os = user_config.is_windows ? "Windows" : "Mac";
|
||||
mode = user_config.is_game_mode ? " (Game)" : "";
|
||||
layout = user_config.is_qwerty ? " (QWERTY)" : " (Colemak)";
|
||||
sprintf(mode_string, "Mode: %s%s%s", os, mode, layout);
|
||||
|
||||
if (record->event.pressed) {
|
||||
send_string(mode_string);
|
||||
} else {
|
||||
for (size_t i = 0; i < strlen(mode_string); i++)
|
||||
tap_code16(KC_BSPC);
|
||||
}
|
||||
return false;
|
||||
}
|
||||
|
||||
if (!record->event.pressed) {
|
||||
switch (keycode) {
|
||||
case TO_DEFAULT:
|
||||
layer_move(0);
|
||||
return false;
|
||||
case TO_CODE:
|
||||
layer_move(get_highest_layer(layer_state) == 1 ? 0 : 1);
|
||||
return false;
|
||||
case TO_NUMBER:
|
||||
layer_move(get_highest_layer(layer_state) == 2 ? 0 : 2);
|
||||
return false;
|
||||
case TO_FUNCTION:
|
||||
layer_move(get_highest_layer(layer_state) == 3 ? 0 : 3);
|
||||
return false;
|
||||
case TO_MOUSE:
|
||||
layer_move(get_highest_layer(layer_state) == 4 ? 0 : 4);
|
||||
return false;
|
||||
case OS_TOGGLE:
|
||||
user_config.is_windows = !user_config.is_windows;
|
||||
keymap_config.swap_lctl_lgui = user_config.is_windows ? true : false;
|
||||
eeconfig_update_user(user_config.raw);
|
||||
return false;
|
||||
case GAME_TOGGLE:
|
||||
user_config.is_game_mode = !user_config.is_game_mode;
|
||||
eeconfig_update_user(user_config.raw);
|
||||
return false;
|
||||
case LAYOUT_SWAP:
|
||||
user_config.is_qwerty = !user_config.is_qwerty;
|
||||
eeconfig_update_user(user_config.raw);
|
||||
return false;
|
||||
case HARD_BOOT:
|
||||
eeconfig_init_user();
|
||||
reset_keyboard();
|
||||
return false;
|
||||
case KC_BACK:
|
||||
tap_code(KC_BSPC);
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
||||
return true;
|
||||
}
|
||||
@@ -0,0 +1,48 @@
|
||||
#pragma once
|
||||
#include QMK_KEYBOARD_H
|
||||
|
||||
typedef union {
|
||||
uint32_t raw;
|
||||
struct {
|
||||
bool is_windows;
|
||||
bool is_game_mode;
|
||||
bool is_qwerty;
|
||||
};
|
||||
} user_config_t;
|
||||
|
||||
user_config_t user_config;
|
||||
enum custom_keycodes {
|
||||
OS_TOGGLE = SAFE_RANGE,
|
||||
GAME_TOGGLE,
|
||||
MODE_CHECK,
|
||||
LAYOUT_SWAP,
|
||||
HARD_BOOT,
|
||||
TO_DEFAULT,
|
||||
TO_CODE,
|
||||
TO_NUMBER,
|
||||
TO_FUNCTION,
|
||||
TO_MOUSE,
|
||||
KC_BACK
|
||||
};
|
||||
|
||||
enum tap_dance_keycodes {
|
||||
TD_MODS_X,
|
||||
TD_MODS_QUOT,
|
||||
TD_MULTI,
|
||||
};
|
||||
|
||||
enum combos {
|
||||
TAB_COMBO,
|
||||
ENTER_COMBO,
|
||||
SPACE_COMBO,
|
||||
MIDDLE_CLICK_COMBO,
|
||||
WHEEL_UP_COMBO,
|
||||
WHEEL_DOWN_COMBO,
|
||||
WHEEL_LEFT_COMBO,
|
||||
WHEEL_RIGHT_COMBO,
|
||||
DEFAULT_COMBO,
|
||||
CODE_COMBO,
|
||||
NUMBER_COMBO,
|
||||
FUNCTION_COMBO,
|
||||
MOUSE_COMBO
|
||||
};
|
||||
@@ -0,0 +1,45 @@
|
||||
#include QMK_KEYBOARD_H
|
||||
#include "keys.h"
|
||||
|
||||
#define SCALE(x) ((x * RGB_BRIGHTNESS) / 255)
|
||||
|
||||
void housekeeping_task_user(void) {
|
||||
uint8_t layer = get_highest_layer(layer_state | default_layer_state);
|
||||
static bool init = false;
|
||||
|
||||
if (!init) {
|
||||
gpio_set_pin_output(GP25);
|
||||
gpio_write_pin_low(GP25);
|
||||
init = true;
|
||||
}
|
||||
|
||||
// Caps lock LED
|
||||
gpio_write_pin(GP25, host_keyboard_led_state().caps_lock);
|
||||
|
||||
// Layer colors
|
||||
switch (layer) {
|
||||
case 1:
|
||||
rgblight_setrgb(SCALE(255), SCALE(255), 0); // Yellow
|
||||
return;
|
||||
|
||||
case 2:
|
||||
rgblight_setrgb(0, 0, SCALE(255)); // Blue
|
||||
return;
|
||||
|
||||
case 3:
|
||||
rgblight_setrgb(SCALE(255), SCALE(64), 0); // Orange
|
||||
return;
|
||||
|
||||
case 4:
|
||||
rgblight_setrgb(SCALE(128), 0, SCALE(255)); // Purple
|
||||
return;
|
||||
}
|
||||
|
||||
if (user_config.is_game_mode) {
|
||||
rgblight_setrgb(SCALE(255), 0, 0); // Red
|
||||
} else if (user_config.is_windows) {
|
||||
rgblight_setrgb(0, SCALE(255), 0); // Green
|
||||
} else {
|
||||
rgblight_setrgb(SCALE(255), SCALE(255), SCALE(255)); // White
|
||||
}
|
||||
}
|
||||
@@ -1,3 +1,3 @@
|
||||
VIA_ENABLE = yes
|
||||
VIAL_ENABLE = yes
|
||||
WS2812_DRIVER = vendor
|
||||
WS2812_DRIVER = vendor
|
||||
|
||||
@@ -1,51 +1,66 @@
|
||||
{
|
||||
"lighting": "qmk_rgblight",
|
||||
"matrix": {
|
||||
"rows": 4,
|
||||
"cols": 10
|
||||
},
|
||||
"layouts": {
|
||||
"keymap": [
|
||||
[
|
||||
"0,0",
|
||||
"0,1",
|
||||
"0,2",
|
||||
"0,3",
|
||||
"0,4",
|
||||
{ "x": 2 },
|
||||
"0,5",
|
||||
"0,6",
|
||||
"0,7",
|
||||
"0,8",
|
||||
"0,9"
|
||||
],
|
||||
[
|
||||
"1,0",
|
||||
"1,1",
|
||||
"1,2",
|
||||
"1,3",
|
||||
"1,4",
|
||||
{ "x": 2 },
|
||||
"1,5",
|
||||
"1,6",
|
||||
"1,7",
|
||||
"1,8",
|
||||
"1,9"
|
||||
],
|
||||
[
|
||||
"2,0",
|
||||
"2,1",
|
||||
"2,2",
|
||||
"2,3",
|
||||
"2,4",
|
||||
{ "x": 2 },
|
||||
"2,5",
|
||||
"2,6",
|
||||
"2,7",
|
||||
"2,8",
|
||||
"2,9"
|
||||
],
|
||||
[{ "x": 3 }, "3,3", "3,4", { "x": 2 }, "3,5", "3,6"]
|
||||
]
|
||||
}
|
||||
"matrix": {
|
||||
"rows": 4,
|
||||
"cols": 12
|
||||
},
|
||||
"layouts": {
|
||||
"keymap": [
|
||||
[
|
||||
"0,0",
|
||||
"0,1",
|
||||
"0,2",
|
||||
"0,3",
|
||||
"0,4",
|
||||
"0,5",
|
||||
"0,6",
|
||||
"0,7",
|
||||
"0,8",
|
||||
"0,9",
|
||||
"0,10",
|
||||
"0,11"
|
||||
],
|
||||
[
|
||||
"1,0",
|
||||
"1,1",
|
||||
"1,2",
|
||||
"1,3",
|
||||
"1,4",
|
||||
"1,5",
|
||||
"1,6",
|
||||
"1,7",
|
||||
"1,8",
|
||||
"1,9",
|
||||
"1,10",
|
||||
"1,11"
|
||||
],
|
||||
[
|
||||
"2,0",
|
||||
"2,1",
|
||||
"2,2",
|
||||
"2,3",
|
||||
"2,4",
|
||||
"2,5",
|
||||
"2,6",
|
||||
"2,7",
|
||||
"2,8",
|
||||
"2,9",
|
||||
"2,10",
|
||||
"2,11"
|
||||
],
|
||||
[
|
||||
"3,0",
|
||||
"3,1",
|
||||
"3,2",
|
||||
"3,3",
|
||||
"3,4",
|
||||
"3,5",
|
||||
"3,6",
|
||||
"3,7",
|
||||
"3,8",
|
||||
"3,9",
|
||||
"3,10",
|
||||
"3,11"
|
||||
]
|
||||
]
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user