From: Yury Bushmelev <jay4mail@gmail.com> To: ALT Linux Sisyphus discussions <sisyphus@lists.altlinux.org> Subject: [sisyphus] Wacom на ThinkPad с новым xorg (Was: sorta [SOLVED] Re: dm не работает, приходится startx) Date: Wed, 23 Feb 2011 15:33:50 +0300 Message-ID: <AANLkTik1YC14JawMOs2OTGZOQZsEBwcr2dLM_SBubX=h@mail.gmail.com> (raw) 23 февраля 2011 г. 15:05 пользователь Michael Shigorin <mike@osdn.org.ua> написал: > On Wed, Feb 23, 2011 at 10:32:39AM +0300, Yury Bushmelev wrote: >> > xorg.conf необходим по причине serial-ного Wacom в ноутбуке, >> > автоматически не цепляется. >> Миш, у меня еще когда на моем X61t сизиф был, тогда уже там вроде бы >> были достаточно новые иксы, чтобы держать не xorg.conf, а файлик в >> xorg.conf.d, который ловит wacom-овский планшет. Если хочешь, могу >> тебе с арча своего скинуть нужные файлики. > > Уже подсказали, но всё равно давай. Хоть ты мне и лично письмо написал, но отвечаю в рассылку, ибо вон и Дмитрий интересовался. Во-первых, надо пометить нужные устройства (ловятся по id) в udev как устройства ввода выставлением некоторых переменных. Откуда взял файлик и почему именно эти переменные - нифига не помню уже :( Возможно, что откуда-то с thinkwiki.org. $ cat /etc/udev/rules.d/10-wacom-tty.rules # Rules for Wacom tty interface ACTION!="add|change", GOTO="wacom_end" # Match all wacom tablets with a serial ID starting with WACf or FUJ* ATTRS{id}=="WACf*" ENV{NAME}="Serial Wacom Tablet", ENV{ID_INPUT}="1", ENV{ID_INPUT_TABLET}="1" ATTRS{id}=="FUJ*" ENV{NAME}="Serial Wacom Tablet", ENV{ID_INPUT}="1", ENV{ID_INPUT_TABLET}="1" LABEL="wacom_end" Как именно посмотреть всю базу устройств udev, честно говоря, тоже не помню, а гуглить влом. Навскидку придумал вариант с перебором устройств в команде udevadm info --query=all --name=/dev/bla-bla-bla. После подкладывания файлика передергиваем udev командой udevadm trigger. Теперь будем крутить xorg. У меня все основные настройки были сделаны файликом /etc/X11/xorg.conf.d/50-wacom.conf, поставленным пакетом xf86-input-wacom (конкретно сейчас стоит 0.10.8-2). Для удобства привожу содержимое: $ cat /etc/X11/xorg.conf.d/50-wacom.conf Section "InputClass" Identifier "Wacom class" # WALTOP needs a patched kernel driver, that isn't in mainline lk yet, # so for now just let it fall through and be picked up by evdev instead. # MatchProduct "Wacom|WALTOP|WACOM" MatchProduct "Wacom|WACOM" MatchDevicePath "/dev/input/event*" Driver "wacom" EndSection Section "InputClass" Identifier "Wacom serial class" MatchProduct "Serial Wacom Tablet" Driver "wacom" EndSection Section "InputClass" Identifier "Wacom serial class identifiers" MatchProduct "WACf|FUJ02e5|FUJ02e7" Driver "wacom" EndSection # N-Trig Duosense Electromagnetic Digitizer Section "InputClass" Identifier "Wacom N-Trig class" MatchProduct "HID 1b96:0001|N-Trig Pen" MatchDevicePath "/dev/input/event*" Driver "wacom" Option "Button2" "3" EndSection Далее дигитайзер надо было откалибровать. В оригинале всем предлагается делать это посредством некоей tcl-ной GUI-утилиты из пакета linux-wacom. Оттуда взялись координаты "углов" дигитайзера. Плюс некоторые параметры были взяты, скорее всего, с thinkwiki. В итоге у меня сейчас живет вот такой файлик: $ cat /etc/X11/xorg.conf.d/91-input-ibm-thinkpad-wacom.conf Section "InputClass" Identifier "stylus" MatchProduct "Serial Wacom Tablet" Driver "wacom" Option "ForceDevice" "ISDV4" Option "TopY" "-88" Option "TopX" "110" Option "BottomY" "18376" Option "BottomX" "24670" # Option "KeepShape" "on" Option "TPCButton" "off" Option "Button3" "2" Option "Button2" "3" EndSection Section "InputClass" Identifier "eraser" MatchProduct "Serial Wacom Tablet" Driver "wacom" Option "ForceDevice" "ISDV4" Option "TopY" "-88" Option "TopX" "110" Option "BottomY" "18376" Option "BottomX" "24670" # Option "KeepShape" "on" Option "TPCButton" "off" Option "Button3" "2" Option "Button2" "3" EndSection Параметр TPCButton отключает необходимость тапать стилусом, чтобы получить клик с нажатой кнопкой на стилусе. То есть, достаточно нажать кнопку, и это уже считается кликом. Кнопка на стилусе перемаплена, чтобы выдавать нажатие правой кнопкой мыши. Кстати, повторную калибрацию недавно я делал уже при помощи xinput_calibrator. Если в альте еще нету, рекомендую опакетить. Она корректирует смещения где-то в недрах xinput и выдает на консоль значения, которые можно подставить в TopX/Y и BottomX/Y, чтобы настройки загружались автоматом. Хотя, оно выдает кусок файла для xorg.conf.d, который, наверное, можно использовать как есть, но я не пробовал. В качестве бонуса вот еще страшненький скрипт для поворота изображения (прибит гвоздями к экрану ":0"): $ cat bin/rotate #!/bin/sh rotation=$(xrandr -d :0 --verbose | awk '/ connected/ {print $5;}') if [ -z "$rotation" ]; then exit 1; fi brightness_path="/sys/class/backlight/acpi_video0" devices_stylus='Serial Wacom Tablet stylus' devices_eraser='Serial Wacom Tablet eraser' devices=" ${devices_stylus} ${devices_eraser} " geom=0 mode=${1:-'-'} case "$mode" in '-' | '+') #case `xrandr --verbose | grep "$output" | sed "s/^[^ ]* [^ ]* [^ ]* ([^(]*) \([a-z]*\).*/\1/"` in case $rotation in normal) geom=0 ;; left) geom=1 ;; inverted) geom=2 ;; right) geom=3 ;; esac let geom=${geom}${mode}1+4 let geom=${geom}%4; ;; '0' | '1' | '2' | '3') geom=$mode ;; *) echo "Usage: `basename $0` { {-|+} | {0|1|2|3} }" exit 1 ;; esac case $geom in 1) wacom=CCW xrandr=left unavsym=Right lnavsym=Up rnavsym=Down dnavsym=Left ;; 2) wacom=HALF xrandr=inverted unavsym=Down lnavsym=Right rnavsym=Left dnavsym=Up ;; 3) wacom=CW xrandr=right unavsym=Left lnavsym=Down rnavsym=Up dnavsym=Right ;; *) wacom=NONE xrandr=normal unavsym=Up lnavsym=Left rnavsym=Right dnavsym=Down ;; esac echo "geom=$geom, xrandr to $xrandr, xsetwacom to $wacom" >&2 # backlight fading to 0 after rotation so we should set it to previous # value again (BUG?) brightness=$(cat ${brightness_path}/actual_brightness) if xrandr -o "$xrandr"; then # restore brightness sudo /bin/sh -c "echo ${brightness} > ${brightness_path}/brightness" IFS=" " for d in $devices; do xsetwacom --set "$d" Rotate "$wacom" done xmodmap -e "keycode 111 = $unavsym" \ -e "keycode 113 = $lnavsym" \ -e "keycode 114 = $rnavsym" \ -e "keycode 116 = $dnavsym" echo "Up=$unavsym Left=$lnavsym Right=$rnavsym Down=$dnavsym" fi exit 0 > Кстати, если найдётся минут пять на кратенькое сравнение -- > тоже спасибо. Эээ.. Кратенькое сравнение чего? :) -- Yury Bushmelev
reply other threads:[~2011-02-23 12:33 UTC|newest] Thread overview: [no followups] expand[flat|nested] mbox.gz Atom feed
Reply instructions: You may reply publicly to this message via plain-text email using any one of the following methods: * Save the following mbox file, import it into your mail client, and reply-to-all from there: mbox Avoid top-posting and favor interleaved quoting: https://en.wikipedia.org/wiki/Posting_style#Interleaved_style * Reply using the --to, --cc, and --in-reply-to switches of git-send-email(1): git send-email \ --in-reply-to='AANLkTik1YC14JawMOs2OTGZOQZsEBwcr2dLM_SBubX=h@mail.gmail.com' \ --to=jay4mail@gmail.com \ --cc=sisyphus@lists.altlinux.org \ /path/to/YOUR_REPLY https://kernel.org/pub/software/scm/git/docs/git-send-email.html * If your mail client supports setting the In-Reply-To header via mailto: links, try the mailto: link
ALT Linux Sisyphus discussions This inbox may be cloned and mirrored by anyone: git clone --mirror http://lore.altlinux.org/sisyphus/0 sisyphus/git/0.git # If you have public-inbox 1.1+ installed, you may # initialize and index your mirror using the following commands: public-inbox-init -V2 sisyphus sisyphus/ http://lore.altlinux.org/sisyphus \ sisyphus@altlinux.ru sisyphus@altlinux.org sisyphus@lists.altlinux.org sisyphus@lists.altlinux.ru sisyphus@lists.altlinux.com sisyphus@linuxteam.iplabs.ru sisyphus@list.linux-os.ru public-inbox-index sisyphus Example config snippet for mirrors. Newsgroup available over NNTP: nntp://lore.altlinux.org/org.altlinux.lists.sisyphus AGPL code for this site: git clone https://public-inbox.org/public-inbox.git