Linux для планшета

imageВ этой статье я покажу вам на своём опыте, что GNU/Linux и графические оболочки для него уже дозрели до уровня планшетов и вовсе не нужно бояться покупать трансформер\планшет только из-за того, что вы приверженный линуксоид. Здесь описывается сравнение и выбор оптимальной среды рабочего стола (далее DE) для планшета или трансформера, её установка и доработка для сенсорного управления.

Небольшая предыстория

Являясь обладателем небольшого (по современным меркам) телефона, 7″ планшета и ноутбука, пришла мысль о замене устройств. После некоторого раздумия пришёл к выводам:

  • хочется большой (5.5-6″) телефон, чтобы можно было удобно смотреть фильмы и серфить в интернете;
  • тогда в маленьком планшете нет смысла, т. к. телефон его полностью заменит, и при этом будет помещаться в карман;
  • для 10″ планшета уже нужна сумка, так почему бы тогда не взять что-нибудь побольше?
  • хотелось бы соединить большой планшет и ноутбук в одно устройство.

Вывод был один: трансформер – идеальный вариант.

Далее предстоял выбор трансформера: хотелось бы не просто планшет с подключаемой по Bluetooth клавиатурой, а полноценный мощный ноутбук с отсоединяемым экраном и дополнительными портами в док-станции. Мой долгий выбор пал на одну из моделей HP. О нём я рассказывать не буду, т. к. статья не про это (да и вообще получится реклама). Скажу лишь, что мне очень понравилась концепция модульности: у вас в руках мощный и лёгкий (900г) планшет, который при подключении в док-станцию приобретает настоящую клавиатуру, дополнительный жёсткий диск и становится ноутбуком, который может проработать 12 часов от 2х батарей. Паралельно со мной моей девушке понадобился ноутбук по учёбе, она хотела маленький и лёгкий, с flip форм-фактором (петли могут поворачиваться на 360°, откидывая клавиатуру за крышку и превращая ноутбук в планшет). Её выбор остановился на модели производства Dell.

Итак, у меня оказались на руках 2 устройства одного назначения, но абсолютно разного исполнения. На HP изначально была Windows 8, на Dell — 8.1. Обе системы были удалены после проверки работоспособности в магазине.

Выбор дистрибутива и DE

Всё должно быть предназначено для управления тачем, интерфейс должен быть единым и для ноутбука, и для планшета — такие концепции я поставил перед собой. Начитавшись в интернете про поддержку тачскрина разными DE, решил поставить Ubuntu из-за жестов. Жесты оказались действительно удобными, скролл пальцем есть, также для тача очень удобна широкая панель Unity (удобно листать и открывать приложения). На этом удобства закончились. Мелкие кнопки закрытия и сворачивания окна (развернуть можно жестом), невозможность пролистывания главного меню, неудобное скрытие панели (в портретной ориентации она занимает много места, а раскрыть её можно только жестом четыремя пальцами). Это меня не устраивало, к тому же я недолюбливаю Ubuntu. Поскольку Ubuntu c Unity я отбросил, а остальные известные DE с хоть какой-то поддержкой жестов можно поставить почти любой дистрибутив, был выбран ArchLinux из-за прошлого опыта (он стоит на всех моих устройствах).

Были установлены KDE4, XFCE и Gnome 3.

Тачскрин работал во всех DE из коробки, т. к. им управляет X-сервер (драйвер xf86-input-evdev устанавливается вместе с Xorg как зависимость в ArchLinux)

KDE:
плюсы:

  • удобный плазмоид клавиатуры (при нажатии выдвигается снизу, не перекрывая экран)
  • огромная возможность настройки и расширения, вплоть до увеличения кнопок в заколовке окна и их перемещения (для тачскрина очень полезно)

минусы:

  • нет никакой поддержки тача, скролл пальцем не работает, хорошо хоть приложения перетаскиваются пальцем, пользоваться невозможно

XFCE:
плюсы:

  • минималистичность, для небольших мощностей планшетов – только полезно

минусы:

  • прокрутка пальцем не работает;
  • отсутствие жестов.

Впрочем, XFCE ругать не за что, так как разработчики позиционируют её как в первую очередь как легковесная система для нетбуков, с чем XFCE справляется отлично.

Gnome 3:
плюсы:

  • хоть какая-то экранная клавиатура, которая вылезает только при касании поля ввода (если кликнуть туда мышью клавиатура не раскроется);
  • мультитач-жесты, хоть и не такие удобные, как в Unity;
  • принцип управление окнами и панели как будто для планшетов и создавались;
  • меню приложений в виде крупных иконок, которые можно листать пальцем;
  • удобный менеджер сеансов (gdm) с поддержкой тача;
  • хорошая расширяемость плагинами;
  • все стандартные приложения поддерживают мультитач (например, масштабирование сведением двух пальцев в просмотре изображений).

Минусы:

  • абсолютно убогая стандартная клавиатура без поддержки русского языка и без нормальной раскладки;
  • другая концепция упорядочения окон (например отсутствие сворачивания при стандартных настройках) требует очень долгого привыкания.

Итак, возьмём за основу Archlinux с Gnome 3 и доработаем его.

Установка

Установку описывать не буду, всё есть по ссылке. Если хотите ускорить установку, сделайте так:

pacstrap /mnt grep sed filesystem shadow pacman screen nano mkinitcpio <span class="hljs-comment"># ставим основню систему и всё нужное</span>
genfstab -pU /mnt >> /mnt/etc/fstab <span class="hljs-comment"># генерируем fstab</span>
arch-chroot /mnt <span class="hljs-comment"># переключаемся на нашу новую систему</span>
screen -dm pacman -S —noconfirm base <span class="hljs-comment"># запускаем установку остальной системы в фоне. Сюда можете добавить пакеты, которые вам нужны в новой системе</span>

Далее делаете всё, что указано в статье на Wiki после пункта «Change root into the new system».

После основной настройки системы установим Gnome 3:

pacman -Sy gnome
systemctl <span class="hljs-built_in">enable</span> gdm
systemctl start gdm

Настройка

Начнём, собственно, адаптацию под планшет:

  1. Включим правый клик по долгому нажатию (с мышью тоже будет работать):
    gsettings set org<span class="hljs-selector-class">.gnome</span><span class="hljs-selector-class">.desktop</span><span class="hljs-selector-class">.a11y</span><span class="hljs-selector-class">.mouse</span> secondary-click-enabled <span class="hljs-string">"true"</span>
    gsettings set org<span class="hljs-selector-class">.gnome</span><span class="hljs-selector-class">.desktop</span><span class="hljs-selector-class">.a11y</span><span class="hljs-selector-class">.mouse</span> secondary-click-<span class="hljs-selector-tag">time</span> <span class="hljs-string">"0.6"</span>

    Вместо 0.6 можете подставить комфортное для вас время, после которого будет сделан клик правой мышью. Минус в том, что палец нужно держать идеально ровно все эти 0.6 секунд, поэтому этот фокус получается только с 2-3 раза. Нужна альтернатива.

  2. У большинства планшетов есть кнопка Windows (как правило под экраном). Было бы логично при нажатии на неё открывать «обзор», но он и так удобно открывается жестами, поэтому мы повесим на эту кнопку правый клик:
    Устанавливаем xdotool и xbindkeys:

    <span class="hljs-attribute">pacman</span> -S xdotool xbindkeys

    Чтобы узнать, как определяется у вас подэкранная кнопка, выполните:

    touch ~/<span class="hljs-selector-class">.xbindkeysrc</span>
    xbindkeys -k

    Запишем конфигурацию xbindkeys и добавим его в автозагрузку (вместо Super_r подставьте свой идентификатор кнопки, полученный из предыдущей команды):

    <span class="hljs-keyword">echo</span> <span class="hljs-string">"\"env DISPLAY=:0 xdotool click 3\" Super_R"</span> > ~/.xbindkeysrc
    <span class="hljs-keyword">echo</span> <span class="hljs-string">"[Desktop Entry]
    </span>Name=Xbindkeys
    Exec=xbindkeys
    Type=Application
    Terminal=false" > /etc/xdg/autostart/xbindkeys.desktop
  3. Сделаем ползунки яркости и громкости пошире. Для этого скачаем патч и применим его:
    curl <span class="hljs-string">http:</span><span class="hljs-comment">//pastebin.com/raw.php?i=F2WJiEUC > /tmp/theme.patch</span>
    patch <span class="hljs-regexp">/usr/</span>share<span class="hljs-regexp">/gnome-shell/</span>theme<span class="hljs-regexp">/gnome-shell.css < /</span>tmp/theme.patch

    Получится примерно так:

    image

  4. Если вы уведёте планшет в сон, после пробуждения вы заметите, что тач то собственно не работает. Gnome зачем-то отключает его как устройство ввода в X-сервере. Простое «xinput enable «ELAN Touchscreen»» исправит ситуацию после сна. Давайте сделаем демон systemd, который будет выполнять эту команду сразу после сна:
    echo "[Unit]
    Description=Fix touchscreen after resume
    After=suspend.target
    [Service]
    Type=simple
    ExecStart=env DISPLAY=:0 xinput enable 'ELAN Touchscreen'
    [Install]
    WantedBy=suspend.target" > /usr/lib/systemd/system/touchscreen-fix.service
    systemctl enable touchscreen-fix
  5. Автоповорот… Не думал, что всё будет так легко. Драйвер для акселеометра на обоих ноутбуках не потребовался, lsusb опознавал его как «0483:91d1 STMicroelectronics». Был быстро написан скрипт на python для автоповотора. Нужно поставить python2 и прописать скрипт в автозагрузку:
    pacman -S python2 xorg-xrandr
    curl <span class="hljs-symbol">http:</span>/<span class="hljs-regexp">/pastebin.com/raw</span>.php?i=nnecb7iA > <span class="hljs-regexp">/usr/bin</span><span class="hljs-regexp">/autorotate
    chmod +x /usr</span><span class="hljs-regexp">/bin/autorotate</span>
    echo <span class="hljs-string">"[Desktop Entry]
    Name=Autorotate
    Exec=python2 /usr/bin/autorotate
    Type=Application
    Terminal=false"</span> > <span class="hljs-regexp">/etc/xdg</span><span class="hljs-regexp">/autostart/autorotate</span>.desktop
  6. Отключим автопоказ стандартной экранной клавиатуры:
    sed -<span class="hljs-selector-tag">i</span> <span class="hljs-string">'s/^Exec/#Exec/g'</span> /usr/share/dbus-<span class="hljs-number">1</span>/services/org<span class="hljs-selector-class">.gnome</span><span class="hljs-selector-class">.Caribou</span><span class="hljs-selector-class">.Daemon</span><span class="hljs-selector-class">.service</span> /usr/share/dbus-<span class="hljs-number">1</span>/services/org<span class="hljs-selector-class">.gnome</span><span class="hljs-selector-class">.Caribou</span><span class="hljs-selector-class">.Antler</span><span class="hljs-selector-class">.service</span>
  7. Установим и настроим Onboard (отличная экранная клавиатура для планшета):
    pacman -S onboard
    gsettings <span class="hljs-built_in">set</span> org.onboard.auto-show enabled <span class="hljs-string">"true"</span> <span class="hljs-comment"># автопоказ клавиатуры при касании в поле ввода</span>
    gsettings <span class="hljs-built_in">set</span> org.onboard.keyboard touch-feedback-enabled <span class="hljs-string">"true"</span> <span class="hljs-comment"># увеличение кнопок при нажатии</span>
    gsettings <span class="hljs-built_in">set</span> org.onboard.window docking-enabled <span class="hljs-string">"true"</span> <span class="hljs-comment"># прикрепить клавиатуру к низу экрана</span>
    gsettings <span class="hljs-built_in">set</span> org.onboard.window <span class="hljs-built_in">enable</span>-inactive-transparency <span class="hljs-string">"true"</span> <span class="hljs-comment"># увеличение прозрачности при простое</span>
    gsettings <span class="hljs-built_in">set</span> org.onboard.window force-to-top <span class="hljs-string">"true"</span> <span class="hljs-comment"># всегда на переднем плане</span>
    gsettings <span class="hljs-built_in">set</span> org.onboard.window inactive-transparency <span class="hljs-string">"60.0"</span> <span class="hljs-comment"># прозрачность при простое</span>
    gsettings <span class="hljs-built_in">set</span> org.onboard.window transparency <span class="hljs-string">"20.0"</span> <span class="hljs-comment"># общая прозрачность</span>
    gsettings <span class="hljs-built_in">set</span> org.onboard.window transparent-background <span class="hljs-string">"true"</span> <span class="hljs-comment"># прозрачный фон</span>
    gsettings <span class="hljs-built_in">set</span> org.onboard.window window-decoration <span class="hljs-string">"false"</span> <span class="hljs-comment"># отключить заголовок окна (где кнопки закрыть, свернуть, etc.)</span>
    gsettings <span class="hljs-built_in">set</span> org.onboard layout <span class="hljs-string">"/usr/share/onboard/layouts/Compact.onboard"</span> <span class="hljs-comment"># раскладка</span>
    gsettings <span class="hljs-built_in">set</span> org.onboard show-status-icon <span class="hljs-string">"true"</span> <span class="hljs-comment"># показывать иконку панели уведомлений</span>
    gsettings <span class="hljs-built_in">set</span> org.onboard start-minimized <span class="hljs-string">"true"</span> <span class="hljs-comment"># запускать скрытой</span>
    <span class="hljs-built_in">echo</span> <span class="hljs-string">"[Desktop Entry]
    Name=Onboard-autostart
    Exec=onboard
    Type=Application
    Terminal=false"</span> > /etc/xdg/autostart/onboard.desktop

    Теперь клавиатура будет появляться после клика в месте ввода. Это работает даже с мышью и тачпадом, поэтому если подразумевается такое использование планшета, выполните:

    gsettings set org<span class="hljs-selector-class">.onboard</span><span class="hljs-selector-class">.auto-show</span> enabled <span class="hljs-string">"false"</span>

    Чтобы вручную открыть клавиатуру, достаточно свайпнуть вверх с нижнего края экрана и нажать на иконку Onboard.

  8. При использовании без клавиатуры меню выбора ОС в Grub можно скрыть. Для этого поставим пакет из AUR:
    curl -O https:<span class="hljs-comment">//aur.archlinux.org/packages/gr/grub-holdshift/grub-holdshift.tar.gz</span>
    tar -xf grub-holdshift<span class="hljs-selector-class">.tar</span><span class="hljs-selector-class">.gz</span>
    cd grub-holdshift
    makepkg -si
    grub-mkconfig -o /boot/grub/grub.cfg
  9. Если в вашем планшете SSD, советую также прочитать эту статью
  10. Ещё большую функциональность жестов (например, разворачивание окна на весь экран свайпом тремя пальцами вверх, сворачивание свайпом вниз) сможет дать touchegg. Однако стандартных мультитач-жестов в Gnome достаточно.

Теперь система готова для использования только тачскрином. Всё удобно, а главное, отлично адаптировано под формат планшета, при этом во время работы в режиме планшет+док-станция, отличий от обычного Gnome 3 вы почти не заметите.

Вывод

Если вы приверженный линуксоид, и вы не покупаете планшет\трансформер только из-за того, что придётся отказаться от Linux — ничего подобного. Работать гораздо удобнее чем в Windows из-за, хотя бы, поддержки жестов в Gnome 3.

После обновления 3.16 в Gnome изменили дизайн трея, теперь это не панель, выдвигающаяся снизу экрана
image(как же это было удобно на тачскрине), а маленькая панелька снизу слева, которая содержит только иконкиimage. Кстати, ей ещё и невозможно пользоваться на планшете (баг я зарепортил уже давно).

В итоге пользоваться клавиатурой стало трудно, иногда даже включал «плавающий значок при свёрнутом Onboard» в настройках. Это решается расширением, которое позволяет открыть клавиатуру свайпом вверх с нижнего края экрана.
Также пункт 6 утратил актуальность, теперь это также решается расширением. Если вы таки предпочитаете стоковую клавиатуру и вам не нравится, что она накладывается сверху на окна, можете воспользоваться этим.
Также можно немного облегчить жизнь в портретном режиме (при 1366×768 туда не влазит большинство заголовков окон), поставив это и вот это.

Поделитесь с друзьями

Добавить комментарий

0 комментариев
Вбудовані Відгуки
Переглянути всі коментарі
0
Ми любимо ваші думки, будь ласка, прокоментуйте.x