* Kernel Patching
** DONE Create derivative to patch kernel 5.10.2
   - Latest from linux-surface
   - [X] Download github.com/linux-surface/linux-surface kernel patches
   - [X] Build kernel using downloaded patches
** CANCELLED Create a function for selecting preferred kernel
** DONE Fix how Keyboard & Trackpad are not being enabled on SL3
   - https://github.com/linux-surface/surface-aggregator-module/wiki/Testing-and-Installing
** DONE Update to kernel 5.10.19
:LOGBOOK:
- State "DONE"       from "DOING"      [2021-03-06 Sat 20:55]
:END:
* Firmware
** DONE Remove archived kvalo/ath10k-firmware repo
- The QCA6174 firmware appears to be in the standard Linux firmware repo, now
** DONE Remove old firmware binaries
   - Looks like the ath10k files aren't needed, any more
** DONE Create derivative for `ipts` firmware
   - [X] Download github.com/linux-surface/surface-ipts-firmware firmware
   - [X] Install the binaries
** DONE Remove `ipts` firmware derivative
   - This is only needed on the 4.19 kernel
** DONE Investigate problem with ath10k wifi firmware on Surface Go
:LOGBOOK:
- State "DOING"      from "TODO"       [2021-02-09 Tue 17:19]
- State "DONE"       from "DOING"      [2021-03-06 Sat 15:27]
:END:
*** DONE README entry explaining problem(s) with nonfree firmware on Surface Go
:LOGBOOK:
- State "DONE"       from "TODO"       [2021-02-09 Tue 17:17]
:END:
*** DONE Create derivative for `ath10k` firmware on Surface Go
:LOGBOOK:
- State "DOING"      from "TODO"       [2021-02-09 Tue 17:18]
:END:
    - [X] Download github.com/kvalo/ath10k-firmware ?
    - [X] Download kernel.org linux-firmware?
    - [X] Download `board.bin` from Killer Networks?
    - [X] Install ath10k firmware fix for Surface Go
      - `board-2.bin` needs to be removed / replaced with `board.bin`
    - [X] Add a config option for enabling the Surface Go Firmware
    - [-] Replace the vendorised `board.bin` with a `fetchurl`
      - Getting HTTP 406 when using `fetchurl` or `nix-prefetch-url` that has to be diagnosed
* Support Tools
** TODO Incorporate @hpfr's function(s) from this commit:
   - https://github.com/hpfr/system/commit/03fa1b0a83f8a336e812910d0d50f5247a8a630c
   - @hpfr's repo forked for posterity, as he no longer has a Surface:
     https://github.com/mexisme/hpfr-nix-linux-surface-system/commit/03fa1b0a83f8a336e812910d0d50f5247a8a630c
** DONE Create derivative for `iptsd` touch-screen daemon
- State "DONE"       from "TODO"       [2023-01-11 Wed 12:09]
   - [X] Download
   - [X] Install binary
   - [X] Enable via systemd
** TODO Create derivative to patch and rebuild libwacom
   - github.com/linux-surface/libwacom-surface
   - The plan is to do this in a separate PR against `nixpkgs` instead of `nixos-hardware`
** DONE Create derivative to install `surface-control`
- State "DONE"       from "TODO"       [2023-01-11 Wed 12:05]
   - Download github.com/linux-surface/surface-control
** TODO Create derivative to install `surface-dtx-daemon`
   - Download github.com/linux-surface/surface-dtx-daemon