Skip to content

Commit c1a87e5

Browse files
committed
ConfigurationGuide: add static ID's for headers
1 parent 52d0da6 commit c1a87e5

1 file changed

Lines changed: 26 additions & 26 deletions

File tree

site/_wiki/Documentation/ConfigurationGuide.md

Lines changed: 26 additions & 26 deletions
Original file line numberDiff line numberDiff line change
@@ -19,7 +19,7 @@ on that page.
1919
It is highly recommended to remove (or unload) your existing tablet drivers
2020
before proceeding.
2121

22-
### Uninstalling drivers on Windows
22+
### Uninstalling drivers on Windows {#preparing-windows}
2323

2424
Tablet 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

3333
If you've installed OpenTabletDriver from an official package, the stock tablet
3434
drivers are already blacklisted.
@@ -63,12 +63,12 @@ See `man 7 udev` for systemd udev syntax. If you're not using systemd udev, see
6363
your distro documentation, or change the appropriate usb and hidraw permissions
6464
manually.
6565

66-
### MacOS
66+
### MacOS {#preparing-macos}
6767

6868
All you should need for OpenTabletDriver to initialize and access your tablet,
6969
is uninstalling the OEM drivers.
7070

71-
## Configuration Template
71+
## Configuration Template {#config-template-intro}
7272

7373
Getting a configuration template is usually simple if OpenTabletDriver supports
7474
other 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

9393
Setting up some of the specifications now can simplify touching up later values
9494
if 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

117117
Configuring a correct digitizer identifier is the bread and butter of tablet
118118
detection. This section covers how to set all the identifier fields
@@ -137,7 +137,7 @@ Detection, in broad terms, checks in the following order:
137137
There is more to detection than this (such as attributes), but 99.9% of use
138138
cases can be covered with the above.
139139

140-
### ID's and report lengths
140+
### ID's and report lengths {#identifiers-and-report-lengths}
141141

142142
At the very minimum, your configuration should have a non-null `VendorID` and `ProductID`.
143143

@@ -219,7 +219,7 @@ accordingly.
219219

220220
A barebones tablet report that only reports an `ITabletReport`
221221

222-
### Init strings (Feature/OutputInitReport, InitializationStrings)
222+
### Init strings (Feature/OutputInitReport, InitializationStrings) {#init-strings}
223223

224224
These are almost always necessary to use to bring the tablet out of HID mode
225225
and into a more preferred mode, e.g. vendor mode.
@@ -235,7 +235,7 @@ Getting these can be achieved in 2 ways:
235235
Copying the appropriate init strings from a sibling configuration is usually
236236
adequate.
237237

238-
##### Common initialization strings
238+
##### Common initialization strings {#common-init-strings}
239239

240240
For many UC-Logic based tablets, like Huion and Gaomon, they seem to all share
241241
almost 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

259259
This is usually done with Wireshark (and winpcap). A guide on this is planned
260260
but 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

266266
In some cases, vendors (especially Huion) might release a tablet with different
267267
specifications 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
277277
we read the returned output when initializing the string, and as such can match
278278
tablets based on its contents.
279279

280-
#### Common device strings
280+
#### Common device strings {#common-device-strings}
281281

282282
Below are some usually common device strings for various vendors.
283283

@@ -295,13 +295,13 @@ may help some people decode their meaning.
295295
Be wary that probing strings can also change behavior in the device, which can
296296
usually be rectified by replugging the tablet.
297297

298-
## Validating values
298+
## Validating values {#validation}
299299

300300
Assuming you now have a configuration that correctly identifies your tablet,
301301
you now have to validate that you're using the correct parser and then the
302302
correct configuration values.
303303

304-
### Validating the parser
304+
### Validating the parser {#validation-parser}
305305

306306
This section is **not** for making sure the specifications in the configuration
307307
is configured correctly, only the parser.
@@ -314,24 +314,24 @@ before any configuration adjustments (such as button count) take place.
314314
If any of the values seems absent or malfunctioning (overflowing, abrupt jumps),
315315
you are probably using the wrong parser.
316316

317-
#### Digitizer {#validate-parser-digitizer}
317+
#### Digitizer {#validation-parser-digitizer}
318318

319319
Verify that the top left of the tablet equals to `[0, 0]` or `[1, 1]`.
320320

321321
Verify that the X and Y values increment monotonically. Critically, the value
322322
must never wrap around.
323323

324-
#### Pen maximum pressure
324+
#### Pen maximum pressure {#validation-parser-pen-pressure}
325325

326326
Value 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

330330
Every button click must cause a distinct state change.
331331

332332
Some tablets may support a separate 'unclick' report.
333333

334-
#### Tool identification
334+
#### Tool identification {#validation-tool-identification}
335335

336336
This is mostly a Wacom feature, and can be difficult to read manually from the
337337
tablet 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.
348348
The serial ID is very useful for artists that have multiple of the same tool so
349349
that their art program can track per-tool settings.
350350

351-
#### Touch
351+
#### Touch {#validation-touch}
352352

353353
Touch is currently not exposed to the operating system, but some parsers do
354354
parse 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

363363
The 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

378378
You can get the X and Y values from OpenTabletDriver's tablet debugger.
379379
Move 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

401401
This 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

408408
With the LPMM and maximum values reported by the tablet in hand, calculate the
409409
width 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

427427
Now that you've checked the values for correctness, you now have to validate
428428
the 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

460460
Make sure you've uninstalled other drivers.
461461

0 commit comments

Comments
 (0)