summaryrefslogtreecommitdiff
path: root/README.rst
diff options
context:
space:
mode:
authorLars-Dominik Braun <lars@6xq.net>2020-01-19 10:11:37 +0100
committerLars-Dominik Braun <lars@6xq.net>2020-01-19 10:19:21 +0100
commitf15b59b9319d4e5a43a3e3515cb0f0449c7224c7 (patch)
tree8afadd7358b5e16965e7ab4b3957db702c17869b /README.rst
parent810c8ff0bea17214b4e4c5ce802ad89b5ad6e2c9 (diff)
downloadlulua-f15b59b9319d4e5a43a3e3515cb0f0449c7224c7.tar.gz
lulua-f15b59b9319d4e5a43a3e3515cb0f0449c7224c7.tar.bz2
lulua-f15b59b9319d4e5a43a3e3515cb0f0449c7224c7.zip
Add Windows driver
Generate C header file based on layout description and create a source bundle that must be compiled on a Windows system and then moved back to the source tree. This sucks, but cross-compiling on Linux is a pain, since Windows’ development headers assume a case-insensitive filesystem. Also I’m using MSKLC because the latest driver development kit cannot compile these drivers correctly. Dear @microsoft, please fix your shit: https://github.com/microsoft/Windows-driver-samples/issues/433 A remaining concern right now is licensing. keyboard.{c,h,def,rc} have been copied from a project generated by MSKLC and are probably non-free, although pretty much identical files like https://github.com/microsoft/Windows-driver-samples/blob/master/input/layout/kbdus/kbdus.c are covered by MS-PL. Also binds backspace key to \b and adjusts xmodmap/svg rendering accordingly. See #7.
Diffstat (limited to 'README.rst')
-rw-r--r--README.rst22
1 files changed, 22 insertions, 0 deletions
diff --git a/README.rst b/README.rst
index 123246a..25937c2 100644
--- a/README.rst
+++ b/README.rst
@@ -51,6 +51,28 @@ to analyze them and create pretty pictures as well as statistics in ``doc/``.
.. _me: lars+lulua@6xq.net
+Building Windows drivers
+------------------------
+
+There is no easy way to build Windows keyboard drivers, but the following
+instructions have worked in the past:
+
+.. code:: bash
+
+ ninja doc/_temp/winkbd/customization.h
+
+Share the folder `doc/_temp/winkbd` with a Windows system, install `Microsoft
+Keyboard Layout Creator 1.4`_ (MSKLC; the Windows Driver Kit (WDK) would work
+too, but is much larger), adjust ``make.bat`` pointing to your MSKLC
+installation and run it. This should generate two directories, ``System32`` and
+``SysWOW64``, which must be copied back to `doc/_temp/winkbd`. Then run:
+
+.. code:: bash
+
+ ninja doc/_build/ar-lulua-w64.zip
+
+.. _Microsoft Keyboard Layout Creator 1.4: https://www.microsoft.com/en-us/download/details.aspx?id=22339
+
Acknowledgements
----------------