tvl-depot/users/glittershark/keyboard/default.nix
Griffin Smith 9ec0f4d0c8 feat(gs/keyboard): Integrate my layout with the depot
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>
2020-07-06 22:52:02 +00:00

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}
'';
}