Кнопка для поворота экрана на X220 tablet

    Взамен убитого почти всусмерть X220i купил себе X220 tablet. Замечательная железка — ноутбук с вращающимся экраном, тачскрином и пером (которое понимает «силу нажатия»). Однако, увы, часть хардварных кнопок (в т.ч. на вращающемся экране) не работала.

    Одна из них — кнопка поворота (на фотографии). Очень полезна для перевода ноутбука в «readmode» (c книжно-портретной ориентацией).



    Что мы хотим?

    • По нажатию поворачивать картинку на 90°
    • По повторному нажатию возвращать обратно
    • Поворачивать восприятие всех тачскринов (обнаружилось в ходе отладки решения)
    • (upd) отключаем тачпад — он иногда срабатывает на перевёрнутую крышку


    Под катом — вариант решения и ссылки на использованные материалы.


    Если вы будете адаптировать под своё железо — учтите следующие моменты:
    • Определение поворота в скрипте сделано халтурно — довольно грубый греп по выводу xrandr.
    • keycode для вашей кнопки может быть другой
    • Название тач-устройств может быть другим


    Для начала ставим пакет xkeybind, который позволит нам вешать на произвольные кнопки произвольные программы:

    apt-get install xkeybind

    Далее, пишем скрипт поворота экрана, он делает три вещи после определения текущего положения экрана: поворачивает экран, поворачивает ориентацию тачскрина, выключает или включает тачпад (по номеру).

    #!/bin/bash
    rotation=`xrandr -q | fgrep "left (" `
    if [ $? == 1 ] ;
    then
      xrandr -o left
      xsetwacom --set "Wacom ISDv4 E6 Pen stylus" Rotate ccw
      xsetwacom --set "Wacom ISDv4 E6 Finger touch" Rotate ccw
      xsetwacom --set "Wacom ISDv4 E6 Pen eraser" Rotate ccw
      xinput set-prop 13 "Device Enabled" 0
    else
      xrandr -o normal
      xsetwacom --set "Wacom ISDv4 E6 Pen stylus" Rotate normal
      xsetwacom --set "Wacom ISDv4 E6 Finger touch" Rotate normal
      xsetwacom --set "Wacom ISDv4 E6 Pen eraser" Rotate normal
       xinput set-prop 13 "Device Enabled" 1
    fi
    


    Примечания:
    • как я и предупреждал, греп очень халтурный
    • Список устойств можно посмотреть с помощью xsetwacom --list
    • left=ccw, если захотите поворачивать в right, то тогда cw
    • Список устройств можно посмотреть в xinput --list

    Я этот скрипт назвал /usr/local/bin/rotate.

    Не забываем про chmod +x на него.

    Далее — пишем конфиг для xbindkeys:
    1. Делаем touch ~/.xbindkeysrc (у xbindkeys мелкий баг — в отсутствие конфига -k не работает).
    2. Запускаем xbindkey -k. Получаем окно, в котором надо нажать нужную нам кнопку — на выходе будет строчка, которую нужно отдать xbindkeys, чтобы запустить программу по нажатию кнопки. Этот путь у меня оказался самым эффективным, хоть и начал я с магических setkeys, сканкодов, кейкодов и т.д.
    3. Вписываем в конфиг (~/.xbindkeys):
      "rotate"
      m:0x0 + c:161
      

      (понятно, что для разных устройств вторая строчка будет разной)
    4. Запускаем xkbindkeys, проверяем, что работает.
    5. Прописываем запуск xbindkeys в ~/.xsession
    6. PROFIT??? (см картинку в начале поста)

    ссылки


    Поделиться публикацией
    AdBlock похитил этот баннер, но баннеры не зубы — отрастут

    Подробнее
    Реклама

    Комментарии 25

      0
      Завидую я вам. Можете взять, и повернуть его. А я, на своем X220, мангу и комиксы читаю, просто переворачивая его на бок.
        0
        Screen Reader Optimize, надеюсь, стоит?
          0
          Нет, что дает? Я, как и вы, переворачиваю xrandr'ом и переворачиваю сам ноутбук.
            0
            Черт возьми. Не заметил что это убунтариум :))
            SRO — утилитка для windows, отслеживает поворот ноутбука и поворачивает экран.
            И я не автор топика, у меня нынче T400. Скажем так. На нем SRO — редко используемая фича :)
              +1
              Да, простите, не заметил. Мне и вручную не сложно менять ориентацию. А гироскоп я использую как джойстик, у меня система на SSD стоит, так что вибрации не страшны, а в гонки прикольно играть, наклоняя ноутбук.
        +1
        прекрасная машинка, сынкпад рулит
          0
          Интересное слово «Сынкпад». Фраза «А ну, поворотись-ка сынку!» приобрестает новый смысл.
          –7
          А чего он страшный такой? Дизайнеров вдохновляло семейство unix?
            +5
            Ага. Функциональность важнее рюшечек, глянцевого экрана, уродливой клавиатуры без половины кнопок и точпад без средней кнопки.
              +1
              клавиатуры
              А там уже PrintScreen вместо Menu key, или ещё нормальная? А то я так чувствую, что при апгрейде до очередного ThinkkPad-а придётся переставить в него не только HDD, но и клавиатуру.
                0
                Это в x230t такое убожество. В линейке *20 всё ещё хорошо.
                  0
                  ой. а можно пояснить о чём речь? а то я пока из минусов клав обоих упомянутых знаю только о поменянных fn и l_ctrl
                    0
                    Левый fn — это не минус. Тем более уже давно можно переназначить с ctrl.
                    Минус в переходе к островному типу клавиатур, с нестандартной раскладкой. Причем в клавиатуре стало 6 рядом клавиш, вместо 7. Влезли не все.

                    А ещё в *30 линейке чипованные батарейки.
                      0
                      ой. посмотрел, мда… радуюсь что у меня hp probbok 6440b

                      памяти жалко в него больше 8 гигов не воткнуть
              +1
              А чего он страшный? Он красив своей суровой красотой.

              Кстати, к семейству unix относится mac os x.
              0
              От батарейки сколько оно живёт, если не секрет? И есть ли возможность пристегнуть дополнительную к днищу, как на других ThinkPad'ах?
                0
                Часов 5-6 со всеми энергосберегалками и на чуть меньше, чем средней яркости. Пристегнуть подставку возможность есть, тогда часов 18-20.
                +1
                КАК? Как, объясните мне, можно «убить в усмерть» ThinkPad?
                Или они после 200-го совсем скисли?
                  +2
                  Сначала я брал его за край экрана при переноске.
                  Потом я его уронил.
                  Потом я его уронил ещё раз и отломал вернюю пластинку, за которую обычно брал.
                  Потом он у меня выпал из рюкзака на асфальт и отколол кусочек снизу.
                  Потом я его уронил на пол с дивана.
                  Потом я его уронил на железную решётку перед входом в здание.
                  Потом я на него что-то пролил и у него начали залипать кнопки.

                  Я думаю, если ему клавиатуру поменять, он дальше будет работать.
                    +1
                    У меня полтора года x201i — таскается нещадно по всяким чердакам, подвалам и прочим помойкам. Чутка протереть — как новый. На крышке, правда, наклейка, но она там очень давно и под ней абсолютно идеальная поверхность. Ни разу не падал, хоть и работает в нечеловеческих условиях — на коленках, на трубах, на полу в пыли, под дождем на крыше.
                  0
                  Гораздо удобнее, когда эта функция срабатывает автоматически при повороет экрана, у меня правда x60t, но для вашего думаю тоже пойдёт — первая попавшаяся ссылка
                    0
                    Я не увидел никаких сообщений при повороте экрана. Да и не всегда нужна портретная ориентация.
                    +1
                    Найдите мне звук «о» в этом слове, пожалуйста — upload.wikimedia.org/wikipedia/commons/f/fd/En-us-touch.ogg
                      0
                      Тоже постоянно отвлекался на это отвратительное слово «точскрин». Если для заимствованного слова есть устоявшееся написание — давайте использовать его, а не изобретать свои транслитерации, к тому же неверные.
                        0
                        поправил.

                      Только полноправные пользователи могут оставлять комментарии. Войдите, пожалуйста.

                      Самое читаемое