snix/users/flokli/keyboards/dilemma/default.nix
Florian Klink 1653379303 feat(users/flokli/kb/dilemma): update, add support for procyon
This updates the expression to make use of "QMK userspaces".

We use the fork from bastardkb qmk to get support for v3, and also use
their userspace, but then copy our slightly modified keymap in.

Change-Id: I2078e5942560aa509c091df8f41d30894ee8ac37
Reviewed-on: https://cl.tvl.fyi/c/depot/+/13243
Autosubmit: flokli <flokli@flokli.de>
Tested-by: BuildkiteCI
Reviewed-by: flokli <flokli@flokli.de>
2025-03-11 16:21:33 +00:00

71 lines
2.2 KiB
Nix

{ pkgs, ... }:
rec {
qmk_firmware_src = pkgs.fetchFromGitHub {
owner = "bastardkb";
repo = "bastardkb-qmk";
rev = "60f5e5ae3da7cbc724a587642b2ad36fe5fcb591"; # bkb-develop
hash = "sha256-FRlxOdxxNAf7QYlAnD4OJ68k04oog0r9UYBmaANDFsU=";
fetchSubmodules = true;
};
qmk_userspace = pkgs.fetchFromGitHub {
owner = "bastardkb";
repo = "qmk_userspace";
rev = "722fe10ae9f1249245af4852209694749207eb70"; # develop
hash = "sha256-FY5zyM6G6DEdSWowNADrHr9P5G4mqioTDK/KM10z6t0=";
fetchSubmodules = true;
};
firmware = pkgs.stdenv.mkDerivation {
name = "bastardkb-dilemma-firmware";
src = qmk_firmware_src;
patches = [ ./enable-taps.patch ];
postPatch = ''
patchShebangs util/uf2conv.py
'';
nativeBuildInputs = [
pkgs.python3
pkgs.qmk
];
env.QMK_HOME = qmk_firmware_src;
env.QMK_USERSPACE = "/tmp/qmk_userspace";
env.HOME = "/tmp/qmk";
env.SKIP_GIT = "true";
buildPhase = ''
mkdir -p /tmp/qmk_userspace
cp -r ${qmk_userspace}/. /tmp/qmk_userspace/
chmod +w /tmp/qmk_userspace/ --recursive
mkdir -p /tmp/qmk_userspace/keyboards/bastardkb/dilemma/3x5_3{,_procyon}/keymaps/flokli
cp ${./keymap.c} /tmp/qmk_userspace/keyboards/bastardkb/dilemma/3x5_3/keymaps/flokli/keymap.c
cp ${./rules.mk} /tmp/qmk_userspace/keyboards/bastardkb/dilemma/3x5_3/keymaps/flokli/rules.mk
cp ${./keymap.c} /tmp/qmk_userspace/keyboards/bastardkb/dilemma/3x5_3_procyon/keymaps/flokli/keymap.c
cp ${./rules.mk} /tmp/qmk_userspace/keyboards/bastardkb/dilemma/3x5_3_procyon/keymaps/flokli/rules.mk
qmk compile -c -kb bastardkb/dilemma/3x5_3 -km flokli
qmk compile -c -kb bastardkb/dilemma/3x5_3_procyon -km flokli
'';
installPhase = ''
mkdir -p $out
cp bastardkb_dilemma_*.uf2 $out/
'';
};
flash-v2 = pkgs.writeShellScript "flash.sh" ''
QMK_HOME=${qmk_firmware_src} ${pkgs.qmk}/bin/qmk flash ${firmware}/bastardkb_dilemma_3x5_3_flokli.uf2
'';
flash-v3 = pkgs.writeShellScript "flash.sh" ''
QMK_HOME=${qmk_firmware_src} ${pkgs.qmk}/bin/qmk flash ${firmware}/bastardkb_dilemma_3x5_3_procyon_flokli.uf2
'';
meta.ci.skip = true;
meta.ci.targets = [ "firmware" ];
}