9ec0f4d0c8
Integrate the keyboard layout for my Ergodox EZ, which is a layout for QMK, with the depot, including exposing several cross-compilation packages necessary to compile qmk for avr in third_party. Change-Id: Idd43169a0a3cf0be2bd1a578fdaff70388a58bfc Reviewed-on: https://cl.tvl.fyi/c/depot/+/947 Tested-by: BuildkiteCI Reviewed-by: tazjin <mail@tazj.in>
61 lines
1.2 KiB
Nix
61 lines
1.2 KiB
Nix
{ pkgs, ... }:
|
|
|
|
with pkgs;
|
|
|
|
let avrlibc = pkgsCross.avr.libcCross; in
|
|
|
|
rec {
|
|
qmkSource = fetchgit {
|
|
url = "https://github.com/qmk/qmk_firmware";
|
|
rev = "ab1650606c36f85018257aba65d9c3ff8ec42e71";
|
|
sha256 = "1k59flkvhjzmfl0yz9z37lqhvad7m9r5wy1p1sjk5274rsmylh79";
|
|
fetchSubmodules = true;
|
|
};
|
|
|
|
layout = stdenv.mkDerivation rec {
|
|
name = "ergodox_ez_grfn.hex";
|
|
|
|
src = qmkSource;
|
|
|
|
buildInputs = [
|
|
dfu-programmer
|
|
dfu-util
|
|
diffutils
|
|
git
|
|
python3
|
|
pkgsCross.avr.buildPackages.binutils
|
|
pkgsCross.avr.buildPackages.gcc8
|
|
avrlibc
|
|
avrdude
|
|
];
|
|
|
|
AVR_CFLAGS = [
|
|
"-isystem ${avrlibc}/avr/include"
|
|
"-L${avrlibc}/avr/lib/avr5"
|
|
];
|
|
|
|
AVR_ASFLAGS = AVR_CFLAGS;
|
|
|
|
patches = [ ./increase-tapping-delay.patch ];
|
|
|
|
postPatch = ''
|
|
mkdir keyboards/ergodox_ez/keymaps/grfn
|
|
cp ${./keymap.c} keyboards/ergodox_ez/keymaps/grfn/keymap.c
|
|
'';
|
|
|
|
buildPhase = ''
|
|
make ergodox_ez:grfn
|
|
'';
|
|
|
|
installPhase = ''
|
|
cp ergodox_ez_grfn.hex $out
|
|
'';
|
|
};
|
|
|
|
flash = writeShellScript "flash.sh" ''
|
|
${teensy-loader-cli}/bin/teensy-loader-cli \
|
|
-v \
|
|
--mcu=atmega32u4 \
|
|
-w ${layout}
|
|
'';
|
|
}
|