### Static xorg.conf Configuration for wdaemon Source: https://github.com/linuxwacom/xf86-input-wacom/wiki/wdaemon Example configuration for xorg.conf to add a wdaemon device. This method is for static configurations where wdaemon must be running before the X server starts. ```xorg.conf Section "InputDevice" Identifier "wdaemon device" Driver "wacom" Option "Device" "/dev/input/uinput-devices/uinput-wacom-..." # add other options here EndSection ``` -------------------------------- ### Build and Install wdaemon Source: https://github.com/linuxwacom/xf86-input-wacom/wiki/wdaemon Commands to build and install wdaemon after cloning the repository. Ensure you have the necessary build tools installed. ```bash git clone git://git.code.sf.net/p/linuxwacom/wdaemon cd wdaemon ./autogen.sh --prefix=/usr make && make install ``` -------------------------------- ### Install xf86-input-wacom on Gentoo Source: https://github.com/linuxwacom/xf86-input-wacom/wiki/Building-The-Driver Installs the xf86-input-wacom driver using emerge. It synchronizes the repository and then installs the package. ```sh sudo -s 'emerge --sync && emerge xf86-input-wacom' ``` -------------------------------- ### Install Dependencies for Meson Build and Tests on Ubuntu Source: https://github.com/linuxwacom/xf86-input-wacom/wiki/For-Developers:-Test-suite Install the required development libraries and tools for building and testing the driver on Ubuntu systems. Pip packages should be installed as root. ```bash sudo apt install libgirepository1.0-dev libevdev-dev cmake meson libglib2.0-dev python3-pip python-pytest pip3 install libevdev pytest ``` -------------------------------- ### Install xf86-input-wacom on Ubuntu/Mint/Debian Source: https://github.com/linuxwacom/xf86-input-wacom/wiki/Building-The-Driver Installs the xf86-input-wacom driver using apt-get. It includes logic to detect and install the correct hardware enablement stack if applicable. ```sh sudo sh -c "apt-get update && apt-get install xserver-xorg-input-wacom$(dpkg -S $(which Xorg) | grep -Eo -- "-hwe-[^:]*")" ``` -------------------------------- ### List Devices with xinput_calibrator Source: https://github.com/linuxwacom/xf86-input-wacom/wiki/Calibration Use this command to get a list of devices that `xinput_calibrator` can calibrate. Ensure you have `xinput_calibrator` installed. ```bash xinput_calibrator --list ``` -------------------------------- ### Example Device Settings Output Source: https://github.com/linuxwacom/xf86-input-wacom/wiki/xsetwacom Example output showing device settings, potentially indicating control by gnome-settings-daemon via specific button codes. ```text xsetwacom set "Wacom Intuos Pro M Pad pad" "RelWheelUp" "1" "button +90 -90 " xsetwacom set "Wacom Intuos Pro M Pad pad" "RelWheelDown" "2" "button +91 -91 " xsetwacom set "Wacom Intuos Pro M Pad pad" "AbsWheelUp" "3" "button +90 -90 " xsetwacom set "Wacom Intuos Pro M Pad pad" "AbsWheelDown" "4" "button +91 -91 " xsetwacom set "Wacom Intuos Pro M Pad pad" "AbsWheel2Up" "5" "button +92 -92 " xsetwacom set "Wacom Intuos Pro M Pad pad" "AbsWheel2Down" "6" "button +93 -93 " xsetwacom set "Wacom Intuos Pro M Pad pad" "StripLeftUp" "1" "button +94 -94 " xsetwacom set "Wacom Intuos Pro M Pad pad" "StripLeftDown" "2" "button +95 -95 " xsetwacom set "Wacom Intuos Pro M Pad pad" "StripRightUp" "3" "button +96 -96 " xsetwacom set "Wacom Intuos Pro M Pad pad" "StripRightDown" "4" "button +97 -97 " ``` -------------------------------- ### Install xf86-input-wacom on SUSE Source: https://github.com/linuxwacom/xf86-input-wacom/wiki/Building-The-Driver Installs the xf86-input-wacom driver using zypper. Ensure your system is updated before installation. ```sh sudo -s 'zypper update && zypper install xf86-input-wacom' ``` -------------------------------- ### Install xf86-input-wacom on Fedora/Red Hat/Mageia Source: https://github.com/linuxwacom/xf86-input-wacom/wiki/Building-The-Driver Installs the xf86-input-wacom driver using dnf. This is the recommended method for these distributions. ```sh sudo -s 'dnf install xorg-x11-drv-wacom' ``` -------------------------------- ### Build and Install xf86-input-wacom using Meson Source: https://github.com/linuxwacom/xf86-input-wacom/wiki/Building-The-Driver Builds and installs the xf86-input-wacom driver using the Meson build system. This method is supported from version 0.41.0 onwards. It sets up the build directory, compiles, and then installs the driver. ```sh meson setup builddir/ -Dprefix=/usr cd builddir/ meson compile sudo meson install ``` -------------------------------- ### Install Built Xwayland RPMs Source: https://github.com/linuxwacom/xf86-input-wacom/wiki/Xwayland-testing-environment-setup Installs the locally built Xwayland RPM package. This step is performed after testing an existing installation for a bug. ```bash echo $XDG_SESSION_TYPE sudo dnf install krita (or similar) sudo dnf install ~/rpmbuild/RPMS/x86_64/xorg-x11-server-Xwayland-*.rpm ``` -------------------------------- ### Install xf86-input-wacom on Adélie Source: https://github.com/linuxwacom/xf86-input-wacom/wiki/Building-The-Driver Installs the xf86-input-wacom driver using apk. This is a straightforward package installation command. ```sh sudo apk add xf86-input-wacom ``` -------------------------------- ### Build and Install xf86-input-wacom using Autotools Source: https://github.com/linuxwacom/xf86-input-wacom/wiki/Building-The-Driver Builds and installs the xf86-input-wacom driver using the autotools build system. This script configures, compiles, and installs the driver. It attempts to use autogen.sh if available, otherwise falls back to configure. ```sh set -- --prefix="/usr" --libdir="$(readlink -e $(ls -d /usr/lib*/xorg/modules/input/../../../ | head -n1))" if test -x ./autogen.sh; then ./autogen.sh "$@"; else ./configure "$@"; fi && make && sudo make install || echo "Build Failed" ``` -------------------------------- ### Run wdaemon with configuration file Source: https://github.com/linuxwacom/xf86-input-wacom/wiki/wdaemon Start wdaemon using a configuration file that specifies devices and their paths. The '-f' flag indicates a configuration file is being used. ```bash wdaemon -f -c path/to/config.file ``` -------------------------------- ### Install Development Dependencies Source: https://github.com/linuxwacom/xf86-input-wacom/wiki/Xwayland-testing-environment-setup Installs essential development tools and packages required for building Xwayland on Fedora. ```bash sudo dnf update sudo dnf install @development-tools sudo dnf install @rpm-development-tools sudo dnf install fedpkg sudo dnf builddep -y xorg-x11-server-Xwayland ``` -------------------------------- ### Example Device Properties Output Source: https://github.com/linuxwacom/xf86-input-wacom/wiki/Dual-and-Multi-Monitor-Set-Up This is an example of the output from 'xinput list-props "device name"', showing the current 'Coordinate Transformation Matrix'. The matrix values are used for transformations. ```text Coordinate Transformation Matrix (123): 1.000000, 0.000000, 0.000000, 0.000000, 1.000000, 0.000000, 0.000000, 0.000000, 1.000000 ``` -------------------------------- ### Install xf86-input-wacom on Arch Linux/Manjaro Source: https://github.com/linuxwacom/xf86-input-wacom/wiki/Building-The-Driver Installs the xf86-input-wacom driver using pacman. This command also updates the system. ```sh sudo pacman -Syu xf86-input-wacom ``` -------------------------------- ### Doxygen Function Documentation Example Source: https://github.com/linuxwacom/xf86-input-wacom/wiki/Coding-Style Provides a comprehensive example of Doxygen-style comments for a C function, including parameter and return value descriptions, and special return values. ```c /** * Copy matching foo structs into freshly allocated memory. * * This function determines the required size to hold a number of foo structs * and copies the matching foo structs into this memory. Structs that don't * match the filter are skipped. * * This function allocates memory to be freed by the caller. * * @param foo The list of foos to copy. * @param filter Only foos matching this filter will be copied. * @param[out] data The list of newly copied foos. Memory is allocated and must * be freed by the caller. If 0 or -1 is returned, the value * of data is undefined. * * @return Returns the number of foos copied into data. * @retval 0 List of foos was empty or no foos matched the filter. * @retval -1 Allocation error. */ int allocate_and_copy(const struct foo *foos, int filter, char **data) { ... } ``` -------------------------------- ### Install libnotify-bin on Ubuntu/Fedora Source: https://github.com/linuxwacom/xf86-input-wacom/wiki/Tablet-Configuration-1:-xsetwacom-and-xorg.conf Install the libnotify-bin package to enable desktop notifications for scripts. This is useful for confirming script execution. ```bash sudo apt-get install libnotify-bin ``` ```bash su -c "yum install libnotify" ``` -------------------------------- ### Run Basic Test Suite with Meson Source: https://github.com/linuxwacom/xf86-input-wacom/wiki/For-Developers:-Test-suite Invoke the test suite as part of the standard build process using Meson and Ninja. Ensure you have the necessary build tools installed. ```bash $ meson builddir $ ninja -C builddir $ sudo ninja -C builddir test ``` -------------------------------- ### PressureCurve Examples Source: https://github.com/linuxwacom/xf86-input-wacom/wiki/xsetwacom Examples of different PressureCurve settings to alter stylus feel. All values must be between 0 and 100. ```bash xsetwacom set "device name" PressureCurve 0 100 0 100 ``` ```bash xsetwacom set "device name" PressureCurve 0 50 50 100 ``` ```bash xsetwacom set "device name" PressureCurve 0 0 100 100 ``` ```bash xsetwacom set "device name" PressureCurve 50 0 100 50 ``` ```bash xsetwacom set "device name" PressureCurve 100 0 100 0 ``` -------------------------------- ### Compile Touchégg v1.1 on Ubuntu Maya/Precise Source: https://github.com/linuxwacom/xf86-input-wacom/wiki/Multitouch Instructions for compiling Touchégg version 1.1 from source on Ubuntu Maya/Precise to resolve issues with the default repository version. This involves installing build dependencies, configuring with qmake, and then compiling and installing. ```bash sudo apt-get install build-essential libgeis-dev libutouch-geis-dev libqt4-dev libqt4-qt3support qt4-linguist-tools qt4-qmake cd Desktop/touchegg-1.1 qmake make sudo make install ``` -------------------------------- ### Install build dependencies on Ubuntu/Mint/Debian Source: https://github.com/linuxwacom/xf86-input-wacom/wiki/Building-The-Driver Installs necessary build dependencies for compiling the xf86-input-wacom driver on Debian-based systems. It includes Xorg development files and libraries. ```sh sudo apt-get install autoconf pkg-config make xutils-dev libtool xserver-xorg-dev$(dpkg -S $(which Xorg) | grep -Eo -- "-hwe-[^:]*") libx11-dev libxi-dev libxrandr-dev libxinerama-dev libudev-dev ``` -------------------------------- ### Install build dependencies on Fedora/Red Hat/Mageia Source: https://github.com/linuxwacom/xf86-input-wacom/wiki/Building-The-Driver Installs essential build dependencies for compiling the xf86-input-wacom driver on Fedora-based systems. ```sh sudo dnf install gcc xorg-x11-util-macros xorg-x11-server-devel libXext-devel libXi-devel libXrandr-devel libXinerama-devel libudev-devel ``` -------------------------------- ### Example Debug Output from Xorg.log Source: https://github.com/linuxwacom/xf86-input-wacom/wiki/Debugging This output format shows device name, debug level, function, and the actual debug message. Higher debug levels provide more verbose output. ```log [241820.117] (II) Wacom Intuos4 6x9 pad (7:wcmSendEvents): [PAD] o_prox=false x=0 y=0 z=0 b=false b=0 tx=0 ty=0 wl=53 rot=-875 th=0 [241820.117] (II) Wacom Intuos4 6x9 pad (10:wcmRotateAndScaleCoordinates): rotate/scaled to 0/0 [241820.117] (II) Wacom Intuos4 6x9 pad (6:wcmSendEvents): abs prox=1 x=0 y=0 z=0 v3=0 v4=0 v5=53 id=15 serial=4294967295 button=false buttons=0 [241820.117] (II) Wacom Intuos4 6x9 pad (6:wcmSendButtons): buttons=0 ``` -------------------------------- ### Example Commit Message Sign-off Section Source: https://github.com/linuxwacom/xf86-input-wacom/wiki/For-Developers:-Commit-Messages This example demonstrates a typical sign-off section for a commit message, including tags for bug fixes, external links, and stable kernel backporting. ```text Signed-off-by: Ada Lovelace Fixes: c7f0522a1ad1 ("HID: wacom: add Intuos 42 support") Link: https://github.com/linuxwacom/input-wacom/issues/4243 Cc: # v4.5+ ``` -------------------------------- ### Set VCP Setting (Brightness) Source: https://github.com/linuxwacom/xf86-input-wacom/wiki/Adjusting-Display-Settings Use the `setvcp` command followed by the VCP code and the desired value to change a setting. This example sets the brightness to 50. ```bash $ ddcutil --mfg=WAC --model=CintiqPro32PT --sn=7KQS0H1000016 setvcp 0x10 50 ``` -------------------------------- ### Read All Color-Related VCP Settings Source: https://github.com/linuxwacom/xf86-input-wacom/wiki/Adjusting-Display-Settings Use the `getvcp` command with the `ALL` argument to retrieve all settings, or specify a VCP code for a single setting. This example retrieves all color-related commands, showing current brightness, contrast, and color temperature. ```bash $ ddcutil --mfg=WAC --model=CintiqPro32PT --sn=7KQS0H1000016 getvcp COLOR ``` -------------------------------- ### Configure Wacom Pad Buttons and Strips Source: https://github.com/linuxwacom/xf86-input-wacom/wiki/xsetwacom-example-scripts Assigns key commands and actions to the Wacom pad buttons and touch strips for application shortcuts. Examples for GIMP and Inkscape are provided. ```bash xsetwacom set "Wacom Intuos3 6x8 pad" Button1 "key r" ``` ```bash xsetwacom set "Wacom Intuos3 6x8 pad" Button2 "key ctrl shift a" ``` ```bash xsetwacom set "Wacom Intuos3 6x8 pad" Button3 "key p" ``` ```bash xsetwacom set "Wacom Intuos3 6x8 pad" Button4 "key Tab" ``` ```bash xsetwacom set "Wacom Intuos3 6x8 pad" StripLDn "key -" ``` ```bash xsetwacom set "Wacom Intuos3 6x8 pad" StripLUp "key +" ``` ```bash xsetwacom set "Wacom Intuos3 6x8 pad" StripRDn "key ALT down" ``` ```bash xsetwacom set "Wacom Intuos3 6x8 pad" StripRUp "key ALT up" ``` ```bash xsetwacom set "Wacom Intuos3 6x8 pad" Button5 "key SHIFT CONTROL left" ``` ```bash xsetwacom set "Wacom Intuos3 6x8 pad" Button6 "key SHIFT CONTROL right" ``` ```bash xsetwacom set "Wacom Intuos3 6x8 pad" Button7 "key CTRL SHIFT e" ``` ```bash xsetwacom set "Wacom Intuos3 6x8 pad" Button8 "key F11" ``` -------------------------------- ### Example Commit Message Source: https://github.com/linuxwacom/xf86-input-wacom/wiki/For-Developers:-Commit-Messages Illustrates a well-formatted commit message with a clear summary, detailed explanation, and sign-off information. Follow this structure for clarity and context. ```text HID: wacom: support named keys on older devices Some Wacom devices have keys with predefined meanings. However, when support was originally added for these devices, the codes for these keys were not available yet. These keys were thus reported with the numbered KEY_PROG* range. Some missing key codes were added with commit 4eb220cb35a9 ("HID: wacom: generic: add 3 tablet touch keys") and we are now able to report the proper key codes. We continue to report the original KEY_PROG codes so as not to break any unknown applications that may depend on them. Also, to support the touch key, track its state in the pad report. Signed-off-by: Aaron Armstrong Skomra Link: https://gitlab.freedesktop.org/libinput/libinput/merge_requests/155 Link: https://github.com/linuxwacom/xf86-input-wacom/pull/46 Reviewed-by: Ping Cheng Reviewed-by: Jason Gerecke Signed-off-by: Jiri Kosina ``` -------------------------------- ### Check Current Xwayland Version Source: https://github.com/linuxwacom/xf86-input-wacom/wiki/Xwayland-testing-environment-setup Displays information about the currently installed Xwayland package, including version, release, and build details. Also checks the Wayland session type. ```bash echo $XDG_SESSION_TYPE rpm -qi xorg-x11-server-Xwayland | grep -E '^(Version|Release|Install Date|Build Date|Build Host|Vendor|Packager|Signature)' (optional) $ rpm -q --whatprovides /usr/bin/Xwayland ``` -------------------------------- ### Get Device Vendor and Product ID Source: https://github.com/linuxwacom/xf86-input-wacom/wiki/Device-Properties The 'Device Product ID' property returns a pair of integers representing the Vendor ID (VID) and Product ID (PID) of the device. For example, `[0x056A, 0x00F8]` for a Cintiq 24HD touch. ```text Device Product ID | Int32[2] | Read-only | Vendor and Product ID for device. Returns a pair of integers which contain VID:PID information. E.g. `[0x056A, 0x00F8]` for a Cintiq 24HD touch. ``` -------------------------------- ### Prepare Sources and RPM Build Tree Source: https://github.com/linuxwacom/xf86-input-wacom/wiki/Xwayland-testing-environment-setup Downloads the source RPM for Xwayland and sets up the RPM build environment. This prepares the necessary directories and fetches the source tarball. ```bash sudo dnf download --source xorg-x11-server-Xwayland rpmdev-setuptree rpm -ivh xorg-x11-server-Xwayland-*.src.rpm ``` -------------------------------- ### Load device description for emulation Source: https://github.com/linuxwacom/xf86-input-wacom/wiki/wdaemon Use the '-l' flag to load a previously extracted device description file. This re-creates the device and links it to the specified path, enabling emulation. ```bash wdaemon -l newdevice.desc -p /dev/input/event12 ``` -------------------------------- ### List Devices with xinput Source: https://github.com/linuxwacom/xf86-input-wacom/wiki/Device-Properties Use `xinput list` to display all input devices recognized by the system. ```bash # List devices $ xinput list ``` -------------------------------- ### Make Startup Script Executable Source: https://github.com/linuxwacom/xf86-input-wacom/wiki/Tablet-Configuration-1:-xsetwacom-and-xorg.conf Ensure your startup script has execute permissions. This command is necessary for the script to run automatically on system startup. ```bash chmod +x $HOME/bin/.xsetwacom.sh ``` -------------------------------- ### Install build dependencies on Arch Linux/Manjaro Source: https://github.com/linuxwacom/xf86-input-wacom/wiki/Building-The-Driver Installs required build dependencies for compiling the xf86-input-wacom driver on Arch Linux and its derivatives. Includes base development tools and Xorg libraries. ```sh sudo pacman -S --needed --asdeps base-devel xorg-server-devel xorg-util-macros xorgproto libxinerama libxrandr libxi ``` -------------------------------- ### List All X Input Devices Source: https://github.com/linuxwacom/xf86-input-wacom/wiki/xinput Use the 'list' parameter to display all available input devices, their IDs, and their master/slave relationships. This is useful for identifying the correct device name or ID for subsequent commands. ```bash $ > xinput --list ``` ```text ⎡ Virtual core pointer id=2 [master pointer (3)] ⎜ ↳ Virtual core XTEST pointer id=4 [slave pointer (2)] ⎜ ↳ SynPS/2 Synaptics TouchPad id=14 [slave pointer (2)] ⎜ ↳ Wacom Intuos4 6x9 eraser id=17 [slave pointer (2)] ⎜ ↳ Wacom Intuos4 6x9 cursor id=18 [slave pointer (2)] ⎜ ↳ Wacom Intuos4 6x9 pad id=19 [slave pointer (2)] ⎜ ↳ Wacom Intuos4 6x9 stylus id=20 [slave pointer (2)] ⎣ Virtual core keyboard id=3 [master keyboard (2)] ↳ Virtual core XTEST keyboard id=5 [slave keyboard (3)] ↳ AT Translated Set 2 keyboard id=13 [slave keyboard (3)] ``` -------------------------------- ### List and Read Device Properties with xinput Source: https://github.com/linuxwacom/xf86-input-wacom/wiki/Device-Properties Use `xinput list-props ` to view all properties for a specific device, identified by its ID. ```bash # List and read device properties $ xinput list-props ``` -------------------------------- ### Get Tablet Dimensions (Old linuxwacom versions) Source: https://github.com/linuxwacom/xf86-input-wacom/wiki/Area-mapping For older versions of linuxwacom, use these separate commands to get the top-left and bottom-right coordinates of the tablet's active area. This data is used to determine the tablet's resolution. ```bash xsetwacom get topx xsetwacom get topy xsetwacom get bottomx xsetwacom get bottomy ``` -------------------------------- ### Add Notification to Script Source: https://github.com/linuxwacom/xf86-input-wacom/wiki/Tablet-Configuration-1:-xsetwacom-and-xorg.conf Append a notification command to a script to confirm its execution. This requires libnotify to be installed. ```bash notify-send -t 1500 "Gimp Profile Ran" ``` -------------------------------- ### Configure Xorg ServerLayout Source: https://github.com/linuxwacom/xf86-input-wacom/wiki/Configuring-X Reference the defined InputDevice sections (stylus, eraser, cursor, touch, pad) within the ServerLayout section to activate them in Xorg. This ensures all configured Wacom components are recognized. ```xorg.conf Section "ServerLayout" Identifier "X.org Configured" InputDevice "stylus" InputDevice "eraser" InputDevice "cursor" # For non-LCD tablets only InputDevice "touch" # For TabletPCs and BambooPTs that support touch InputDevice "pad" # For Intuos3/Intuos4/CintiqV5/Graphire4/Bamboo/BambooPT EndSection ``` -------------------------------- ### Get Device Settings Source: https://github.com/linuxwacom/xf86-input-wacom/wiki/xsetwacom Retrieves all settings for a specific Wacom device. The output may indicate if gnome-settings-daemon is controlling the tablet. ```bash xsetwacom -s get "Wacom Intuos Pro M Pad pad" all ``` -------------------------------- ### C Code Indentation Example Source: https://github.com/linuxwacom/xf86-input-wacom/wiki/Coding-Style Demonstrates the tab and space indentation style for aligning C code, particularly in conditional statements. ```c >-------if (InitValuatorClassDeviceStruct(pInfo->dev, nbaxes, #if.GET_ABI_MAJOR(ABI_XINPUT_VERSION) >= 7 >------->------->------->------->-------..axis_labels, #endif >------->------->------->------->-------..GetMotionHistorySize(), >------->------->------->------->-------..(is_absolute(pInfo) ? Absolute : Relative) | OutOfProximity) == FALSE) ``` -------------------------------- ### Add Upstream Remote to Git Fork Source: https://github.com/linuxwacom/xf86-input-wacom/wiki/For-Developers:-Making-Patches Add the upstream remote to your local git repository clone. This is a one-time setup step. ```git git remote add https://github.com/linuxwacom/xf86-input-wacom.git ``` -------------------------------- ### List All Wacom Parameters Source: https://github.com/linuxwacom/xf86-input-wacom/wiki/xsetwacom Obtain a comprehensive list of all configurable parameters for Wacom devices. This is useful for understanding the full range of settings available. ```bash xsetwacom list parameters ``` -------------------------------- ### Read Specific VCP Setting (Brightness) Source: https://github.com/linuxwacom/xf86-input-wacom/wiki/Adjusting-Display-Settings To read the value of a specific setting, provide its VCP code. For example, `0x10` is the VCP code for brightness. ```bash VCP code 0x10 (Brightness ): current value = 75, max value = 100 ``` -------------------------------- ### Run wdaemon with device type and path Source: https://github.com/linuxwacom/xf86-input-wacom/wiki/wdaemon Run wdaemon with the numeric device type and the device path. Requires root privileges. Use udev symlinks for alternative path specification. ```bash wdaemon -t 56 -p /dev/input/event12 ``` ```bash wdaemon -t 52 -p /dev/input/wacom-tablets/intuos4-6x9 ``` -------------------------------- ### Verify VCP Setting (Color Preset) Source: https://github.com/linuxwacom/xf86-input-wacom/wiki/Adjusting-Display-Settings After attempting to set a VCP value, use `getvcp` to verify the change. This confirms the color preset was set to 5000K. ```bash $ ddcutil --mfg=WAC --model=CintiqPro32PT --sn=7KQS0H1000016 getvcp 0x14 ``` ```bash VCP code 0x14 (Select color preset ): Setting: 5000 K (0x04) ``` -------------------------------- ### Query Display Capabilities with ddcutil Source: https://github.com/linuxwacom/xf86-input-wacom/wiki/Adjusting-Display-Settings After identifying a display, use the `capabilities` command along with display identifiers (manufacturer, model, serial number) to view its supported settings, such as luminosity, contrast, and color presets. This command provides a detailed list of VCP features and their possible values. ```bash $ ddcutil --mfg=WAC --model=CintiqPro32PT --sn=7KQS0H1000016 capabilities MCCS version: 2.2 Commands: Command: 01 (VCP Request) Command: 02 (VCP Response) Command: 03 (VCP Set) Command: 07 (Timing Request) Command: 0c (Save Settings) Command: e3 (Capabilities Reply) Command: f3 (Capabilities Request) VCP Features: Feature: 02 (New control value) Feature: 04 (Restore factory defaults) Feature: 05 (Restore factory brightness/contrast defaults) Feature: 08 (Restore color defaults) Feature: 10 (Luminosity) Feature: 12 (Contrast) Feature: 14 (Select color preset) Values: 04: 5000 K 05: 6500 K 08: 9300 K 09: 10000 K 0b: User 1 0c: User 2 Feature: 16 (Video gain: Red) Feature: 18 (Video gain: Green) Feature: 1A (Video gain: Blue) Feature: 59 (6 axis saturation: Red) Feature: 5A (6 axis saturation: Yellow) Feature: 5B (6 axis saturation: Green) Feature: 5C (6 axis saturation: Cyan) Feature: 5D (6 axis saturation: Blue) Feature: 5E (6 axis saturation: Magenta) Feature: 72 (Gamma) Values: Invalid gamma descriptor: fd 05 28 Feature: 87 (Sharpness) Feature: 8A (Color Saturation) Feature: 90 (Hue) Feature: 9B (6 axis hue control: Red) Feature: 9C (6 axis hue control: Yellow) Feature: 9D (6 axis hue control: Green) Feature: 9E (6 axis hue control: Cyan) Feature: 9F (6 axis hue control: Blue) Feature: A0 (6 axis hue control: Magenta) Feature: AC (Horizontal frequency) Feature: AE (Vertical frequency) Feature: B6 (Display technology type) Feature: C0 (Display usage time) Feature: C6 (Application enable key) Feature: C8 (Display controller type) Feature: C9 (Display firmware level) Feature: CC (OSD Language) Values: 01: Chinese (traditional, Hantai) 02: English 03: French 04: German 05: Italian 06: Japanese 07: Korean 08: Portuguese (Portugal) 09: Russian 0a: Spanish 0d: Chinese (simplified / Kantai) 14: Dutch 1e: Polish 26: Unrecognized value Feature: D6 (Power mode) Values: 01: DPM: On, DPMS: Off 04: DPM: Off, DPMS: Off 05: Write only value to turn off display Feature: DF (VCP Version) Feature: E0 (manufacturer specific feature) Values: 00 01 02 03 (interpretation unavailable) Feature: E1 (manufacturer specific feature) Values: 00 01 (interpretation unavailable) Feature: E2 (manufacturer specific feature) Values: 01 02 03 (interpretation unavailable) Feature: E4 (manufacturer specific feature) Feature: E5 (manufacturer specific feature) Feature: E6 (manufacturer specific feature) Feature: E7 (manufacturer specific feature) Values: 00 01 (interpretation unavailable) Feature: E8 (manufacturer specific feature) Values: 00 01 (interpretation unavailable) Feature: E9 (manufacturer specific feature) Values: 00 01 (interpretation unavailable) Feature: EA (manufacturer specific feature) ``` -------------------------------- ### Start New Work on Up-to-Date Branch Source: https://github.com/linuxwacom/xf86-input-wacom/wiki/For-Developers:-Making-Patches Ensure your new development branch is based on the latest upstream master branch. This helps avoid merge conflicts. ```git git remote update && git checkout upstream/master -b my-new-branch-name ``` -------------------------------- ### Create Synaptics Driver Configuration File Source: https://github.com/linuxwacom/xf86-input-wacom/wiki/Multitouch This command opens a text editor to create or modify the configuration file for using the Synaptics driver with Wacom multitouch devices. ```bash gksudo gedit /etc/X11/xorg.conf.d/54-WacomMT-synaptics.conf ``` -------------------------------- ### Extract Device Details from Xorg Log Source: https://github.com/linuxwacom/xf86-input-wacom/wiki/Calibration This log output shows the device name and its current calibration values. These values can be used as a reference or starting point for further calibration. ```log [ 5020.783] (**) Option "Device" "/dev/input/event5" [ 5021.221] (--) Wacom BambooFun 2FG 4x5 Pen stylus: top X#0 top Y#0 bottom X#14720 bottom Y#9200 resol X#100000 resol Y#100000 ``` -------------------------------- ### Create xorg.conf.d Directory Source: https://github.com/linuxwacom/xf86-input-wacom/wiki/Multitouch Use this command to create the necessary directory if it does not exist, which is required for custom Xorg input configurations. ```bash sudo mkdir /etc/X11/xorg.conf.d ``` -------------------------------- ### Interrupt Process with SIGINT Source: https://github.com/linuxwacom/xf86-input-wacom/wiki/Debugging If the X server was started with 'run' in GDB, Ctrl+C might not work. In such cases, you can send a SIGINT signal to the process using the 'kill' command with its PID. ```bash $> sudo kill -SIGNIT `pidof Xorg` ``` -------------------------------- ### Match Wacom or Waltop Devices by Product Name and Path Source: https://github.com/linuxwacom/xf86-input-wacom/wiki/xorg.conf.d This snippet applies to devices that have either 'Wacom' or 'Waltop' in their product name AND match the specified device path. Use this to target specific input devices for configuration. ```xorg.conf Section "InputClass" # This is for human-readable purposes only. Identifier "Wacom class options" # Match all devices with either Wacom or Waltop in their product name MatchProduct "Wacom|Waltop" # AND match devices with a device path of /dev/input/eventX. MatchDevicePath "/dev/input/event*" EndSection ``` -------------------------------- ### Get Wacom Device Parameter Value Source: https://github.com/linuxwacom/xf86-input-wacom/wiki/xsetwacom Retrieve the current value of a specific parameter for a given Wacom device. Replace 'device name' and 'Button 1' with your target device and parameter. ```bash xsetwacom get "Wacom Intuos4 6x9 stylus" Button 1 ``` -------------------------------- ### Get Wacom Tool Type Source: https://github.com/linuxwacom/xf86-input-wacom/wiki/Device-Properties The 'Wacom Tool Type' property indicates the general class of the input tool. Possible values include `STYLUS`, `ERASER`, `PAD`, `CURSOR`, and `TOUCH`. ```text Wacom Tool Type | Atom | Read-only | General class of tool represented by this device. Possible values: `STYLUS`, `ERASER`, `PAD`, `CURSOR`, `TOUCH` ```