@@ -19,7 +19,7 @@ on that page.
1919It is highly recommended to remove (or unload) your existing tablet drivers
2020before proceeding.
2121
22- ### Uninstalling drivers on Windows
22+ ### Uninstalling drivers on Windows {#preparing-windows}
2323
2424Tablet drivers are often automatically installed by Windows.
2525
@@ -28,7 +28,7 @@ OpenTabletDriver has access to the tablet.
2828
2929[ TabletDriverCleanup] : {{ site.data.links.external.TabletDriverCleanup.latest }}
3030
31- ### Unloading drivers on Linux
31+ ### Unloading drivers on Linux {#preparing-linux}
3232
3333If you've installed OpenTabletDriver from an official package, the stock tablet
3434drivers are already blacklisted.
@@ -63,12 +63,12 @@ See `man 7 udev` for systemd udev syntax. If you're not using systemd udev, see
6363your distro documentation, or change the appropriate usb and hidraw permissions
6464manually.
6565
66- ### MacOS
66+ ### MacOS {#preparing-macos}
6767
6868All you should need for OpenTabletDriver to initialize and access your tablet,
6969is uninstalling the OEM drivers.
7070
71- ## Configuration Template
71+ ## Configuration Template {#config-template-intro}
7272
7373Getting a configuration template is usually simple if OpenTabletDriver supports
7474other tablets from your manufacturer, especially if it's in the same line of
@@ -88,7 +88,7 @@ guide carefully.
8888
8989[ Configuration skeleton ] : https://github.com/OpenTabletDriver/OpenTabletDriver/issues/3249
9090
91- ## Setting specifications according to official manufacturer specifications
91+ ## Setting specifications according to official manufacturer specifications {#oem-values}
9292
9393Setting up some of the specifications now can simplify touching up later values
9494if you know what they are. You can also add them as you discover the feature;
@@ -112,7 +112,7 @@ take this into consideration when specifying aux button count.
112112
113113[ OpenTabletDriver#1367 ] : https://github.com/OpenTabletDriver/OpenTabletDriver/issues/1367
114114
115- ## Configuring the digitizer identifier
115+ ## Configuring the digitizer identifier {#digitizer-identifier}
116116
117117Configuring a correct digitizer identifier is the bread and butter of tablet
118118detection. This section covers how to set all the identifier fields
@@ -137,7 +137,7 @@ Detection, in broad terms, checks in the following order:
137137There is more to detection than this (such as attributes), but 99.9% of use
138138cases can be covered with the above.
139139
140- ### ID's and report lengths
140+ ### ID's and report lengths {#identifiers-and-report-lengths}
141141
142142At the very minimum, your configuration should have a non-null ` VendorID ` and ` ProductID ` .
143143
@@ -219,7 +219,7 @@ accordingly.
219219
220220A barebones tablet report that only reports an ` ITabletReport `
221221
222- ### Init strings (Feature/OutputInitReport, InitializationStrings)
222+ ### Init strings (Feature/OutputInitReport, InitializationStrings) {#init-strings}
223223
224224These are almost always necessary to use to bring the tablet out of HID mode
225225and into a more preferred mode, e.g. vendor mode.
@@ -235,7 +235,7 @@ Getting these can be achieved in 2 ways:
235235Copying the appropriate init strings from a sibling configuration is usually
236236adequate.
237237
238- ##### Common initialization strings
238+ ##### Common initialization strings {#common-init-strings}
239239
240240For many UC-Logic based tablets, like Huion and Gaomon, they seem to all share
241241almost the same indices to probe across many generations.
@@ -254,14 +254,14 @@ The following 2 initialization strings have only been seen once:
254254- ` 109 `
255255- ` 100 ` followed by ` 110 `
256256
257- #### USB Packet capture
257+ #### USB Packet capture {#pcap}
258258
259259This is usually done with Wireshark (and winpcap). A guide on this is planned
260260but not in progress. See [ opentabletdriver.github.io#171] for more information.
261261
262262[ opentabletdriver.github.io#171 ] : https://github.com/OpenTabletDriver/opentabletdriver.github.io/issues/171
263263
264- ### Device strings
264+ ### Device strings {#device-strings}
265265
266266In some cases, vendors (especially Huion) might release a tablet with different
267267specifications that otherwise has the same ID's as another released tablet.
@@ -277,7 +277,7 @@ While they are similar to initialization strings, the difference here is that
277277we read the returned output when initializing the string, and as such can match
278278tablets based on its contents.
279279
280- #### Common device strings
280+ #### Common device strings {#common-device-strings}
281281
282282Below are some usually common device strings for various vendors.
283283
@@ -295,13 +295,13 @@ may help some people decode their meaning.
295295Be wary that probing strings can also change behavior in the device, which can
296296usually be rectified by replugging the tablet.
297297
298- ## Validating values
298+ ## Validating values {#validation}
299299
300300Assuming you now have a configuration that correctly identifies your tablet,
301301you now have to validate that you're using the correct parser and then the
302302correct configuration values.
303303
304- ### Validating the parser
304+ ### Validating the parser {#validation-parser}
305305
306306This section is ** not** for making sure the specifications in the configuration
307307is configured correctly, only the parser.
@@ -314,24 +314,24 @@ before any configuration adjustments (such as button count) take place.
314314If any of the values seems absent or malfunctioning (overflowing, abrupt jumps),
315315you are probably using the wrong parser.
316316
317- #### Digitizer {#validate -parser-digitizer}
317+ #### Digitizer {#validation -parser-digitizer}
318318
319319Verify that the top left of the tablet equals to ` [0, 0] ` or ` [1, 1] ` .
320320
321321Verify that the X and Y values increment monotonically. Critically, the value
322322must never wrap around.
323323
324- #### Pen maximum pressure
324+ #### Pen maximum pressure {#validation-parser-pen-pressure}
325325
326326Value must transition somewhat smoothly from around 0 to its maximum value.
327327
328- #### All pen and auxiliary buttons
328+ #### All pen and auxiliary buttons {#validation-parser-buttons}
329329
330330Every button click must cause a distinct state change.
331331
332332Some tablets may support a separate 'unclick' report.
333333
334- #### Tool identification
334+ #### Tool identification {#validation-tool-identification}
335335
336336This is mostly a Wacom feature, and can be difficult to read manually from the
337337tablet debugger. Use the recording feature of the tablet debugger and read the
@@ -348,7 +348,7 @@ and is only partially supported on Linux for now.
348348The serial ID is very useful for artists that have multiple of the same tool so
349349that their art program can track per-tool settings.
350350
351- #### Touch
351+ #### Touch {#validation-touch}
352352
353353Touch is currently not exposed to the operating system, but some parsers do
354354parse touch. If your tablet does parse touch, make sure that it behaves
@@ -358,7 +358,7 @@ See [OpenTabletDriver#1664] for more information on exposing this to the OS.
358358
359359[ OpenTabletDriver#1664 ] : https://github.com/OpenTabletDriver/OpenTabletDriver/issues/1664
360360
361- ### Correctly determining digitizer dimensions
361+ ### Correctly determining digitizer dimensions {#digitizer-correct-dimensions}
362362
363363The ideal way to calculate the these values, is to first figure out the ` MaxX ` and
364364` MaxY ` values of the digitizer.
@@ -373,7 +373,7 @@ You will need the following values:
373373 (usually rounded up), so getting this right ensures that users can keep using
374374 the exact same tablet area between different tablets in OpenTabletDriver
375375
376- #### Getting maximum X and Y values
376+ #### Getting maximum X and Y values {#digitizer-max-positional-values}
377377
378378You can get the X and Y values from OpenTabletDriver's tablet debugger.
379379Move your tool (e.g. pen) to the outer edges (usually right side and bottom
@@ -396,14 +396,14 @@ correct parser. See the [Parser](#parser) section for more information.
396396
397397[ OpenTabletDriver#2433 ] : https://github.com/OpenTabletDriver/OpenTabletDriver/issues/2433
398398
399- #### Getting the LPMM
399+ #### Getting the LPMM {#digitizer-lpmm}
400400
401401This is almost always exactly 100 or exactly 200 for both axises.
402402
403403> If your tablet only offers an line per inch (LPI) value, you can divide the
404404 LPI by ` 25.4 ` to get the LPMM.
405405
406- #### Calculating the width and height
406+ #### Calculating the width and height {#digitizer-dimensions-calculation}
407407
408408With the LPMM and maximum values reported by the tablet in hand, calculate the
409409width and the height using the following formulas:
@@ -422,7 +422,7 @@ out), confirm that both your LPMM and width/height values are correct.
422422> If the guessed LPMM seems incorrect, it is better to manually measure the
423423 width and the height of the digitizers active area.
424424
425- ### Verify functionality
425+ ### Verify functionality {#verify-functionality}
426426
427427Now that you've checked the values for correctness, you now have to validate
428428the exposed functionality as much as possible.
@@ -453,9 +453,9 @@ Now, optionally commit it with `git` and push it to your chosen branch and an op
453453
454454[ pull request] : {{ site.data.links.project.UpstreamRepo }}/pulls
455455
456- ## FAQ
456+ ## FAQ {#faq}
457457
458- ### My cursor is going everywhere
458+ ### My cursor is going everywhere {#faq-cursor-skipping}
459459
460460Make sure you've uninstalled other drivers.
461461
0 commit comments