Linux для планшета
В этой статье я покажу вам на своём опыте, что GNU/Linux и графические оболочки для него уже дозрели до уровня планшетов и вовсе не нужно бояться покупать трансформер\планшет только из-за того, что вы приверженный линуксоид. Здесь описывается сравнение и выбор оптимальной среды рабочего стола (далее DE) для планшета или трансформера, её установка и доработка для сенсорного управления.
Небольшая предыстория
- хочется большой (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)
- удобный плазмоид клавиатуры (при нажатии выдвигается снизу, не перекрывая экран)
- огромная возможность настройки и расширения, вплоть до увеличения кнопок в заколовке окна и их перемещения (для тачскрина очень полезно)
- нет никакой поддержки тача, скролл пальцем не работает, хорошо хоть приложения перетаскиваются пальцем, пользоваться невозможно
- минималистичность, для небольших мощностей планшетов – только полезно
- прокрутка пальцем не работает;
- отсутствие жестов.
- хоть какая-то экранная клавиатура, которая вылезает только при касании поля ввода (если кликнуть туда мышью клавиатура не раскроется);
- мультитач-жесты, хоть и не такие удобные, как в Unity;
- принцип управление окнами и панели как будто для планшетов и создавались;
- меню приложений в виде крупных иконок, которые можно листать пальцем;
- удобный менеджер сеансов (gdm) с поддержкой тача;
- хорошая расширяемость плагинами;
- все стандартные приложения поддерживают мультитач (например, масштабирование сведением двух пальцев в просмотре изображений).
- абсолютно убогая стандартная клавиатура без поддержки русского языка и без нормальной раскладки;
- другая концепция упорядочения окон (например отсутствие сворачивания при стандартных настройках) требует очень долгого привыкания.
Итак, возьмём за основу Archlinux с Gnome 3 и доработаем его.
Установка
Установку описывать не буду, всё есть по ссылке. Если хотите ускорить установку, сделайте так:
pacstrap /mnt grep sed filesystem shadow pacman screen nano mkinitcpio # ставим основню систему и всё нужное genfstab -pU /mnt >> /mnt/etc/fstab # генерируем fstab arch-chroot /mnt # переключаемся на нашу новую систему screen -dm pacman -S —noconfirm base # запускаем установку остальной системы в фоне. Сюда можете добавить пакеты, которые вам нужны в новой системе
Далее делаете всё, что указано в статье на Wiki после пункта «Change root into the new system».
После основной настройки системы установим Gnome 3:
pacman -Sy gnome systemctl enable gdm systemctl start gdm
Настройка
Начнём, собственно, адаптацию под планшет:
- Включим правый клик по долгому нажатию (с мышью тоже будет работать):
gsettings set org.gnome.desktop.a11y.mouse secondary-click-enabled "true" gsettings set org.gnome.desktop.a11y.mouse secondary-click-time "0.6"
pacman -S xdotool xbindkeys
Чтобы узнать, как определяется у вас подэкранная кнопка, выполните:
touch ~/.xbindkeysrc xbindkeys -k
Запишем конфигурацию xbindkeys и добавим его в автозагрузку (вместо Super_r подставьте свой идентификатор кнопки, полученный из предыдущей команды):
echo "\"env DISPLAY=:0 xdotool click 3\" Super_R" > ~/.xbindkeysrc echo "[Desktop Entry] Name=Xbindkeys Exec=xbindkeys Type=Application Terminal=false" > /etc/xdg/autostart/xbindkeys.desktop
curl http://pastebin.com/raw.php?i=F2WJiEUC > /tmp/theme.patch patch /usr/share/gnome-shell/theme/gnome-shell.css < /tmp/theme.patch
Если вы уведёте планшет в сон, после пробуждения вы заметите, что тач то собственно не работает. 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
pacman -S python2 xorg-xrandr curl http://pastebin.com/raw.php?i=nnecb7iA > /usr/bin/autorotate chmod +x /usr/bin/autorotate echo "[Desktop Entry] Name=Autorotate Exec=python2 /usr/bin/autorotate Type=Application Terminal=false" > /etc/xdg/autostart/autorotate.desktop
sed -i 's/^Exec/#Exec/g' /usr/share/dbus-1/services/org.gnome.Caribou.Daemon.service /usr/share/dbus-1/services/org.gnome.Caribou.Antler.service
pacman -S onboard gsettings set org.onboard.auto-show enabled "true" # автопоказ клавиатуры при касании в поле ввода gsettings set org.onboard.keyboard touch-feedback-enabled "true" # увеличение кнопок при нажатии gsettings set org.onboard.window docking-enabled "true" # прикрепить клавиатуру к низу экрана gsettings set org.onboard.window enable-inactive-transparency "true" # увеличение прозрачности при простое gsettings set org.onboard.window force-to-top "true" # всегда на переднем плане gsettings set org.onboard.window inactive-transparency "60.0" # прозрачность при простое gsettings set org.onboard.window transparency "20.0" # общая прозрачность gsettings set org.onboard.window transparent-background "true" # прозрачный фон gsettings set org.onboard.window window-decoration "false" # отключить заголовок окна (где кнопки закрыть, свернуть, etc.) gsettings set org.onboard layout "/usr/share/onboard/layouts/Compact.onboard" # раскладка gsettings set org.onboard show-status-icon "true" # показывать иконку панели уведомлений gsettings set org.onboard start-minimized "true" # запускать скрытой echo "[Desktop Entry] Name=Onboard-autostart Exec=onboard Type=Application Terminal=false" > /etc/xdg/autostart/onboard.desktop
Теперь клавиатура будет появляться после клика в месте ввода. Это работает даже с мышью и тачпадом, поэтому если подразумевается такое использование планшета, выполните:
gsettings set org.onboard.auto-show enabled "false"
curl -O https://aur.archlinux.org/packages/gr/grub-holdshift/grub-holdshift.tar.gz tar -xf grub-holdshift.tar.gz cd grub-holdshift makepkg -si grub-mkconfig -o /boot/grub/grub.cfg
Теперь система готова для использования только тачскрином. Всё удобно, а главное, отлично адаптировано под формат планшета, при этом во время работы в режиме планшет+док-станция, отличий от обычного Gnome 3 вы почти не заметите.
Вывод
Если вы приверженный линуксоид, и вы не покупаете планшет\трансформер только из-за того, что придётся отказаться от Linux — ничего подобного. Работать гораздо удобнее чем в Windows из-за, хотя бы, поддержки жестов в Gnome 3.
UPD И так спустя больше, чем половину года:
После обновления 3.16 в Gnome изменили дизайн трея, теперь это не панель, выдвигающаяся снизу экрана
(как же это было удобно на тачскрине), а маленькая панелька снизу слева, которая содержит только иконки . Кстати, ей ещё и невозможно пользоваться на планшете (баг я зарепортил уже давно).
В итоге пользоваться клавиатурой стало трудно, иногда даже включал «плавающий значок при свёрнутом Onboard» в настройках. Это решается расширением, которое позволяет открыть клавиатуру свайпом вверх с нижнего края экрана.
Также пункт 6 утратил актуальность, теперь это также решается расширением. Если вы таки предпочитаете стоковую клавиатуру и вам не нравится, что она накладывается сверху на окна, можете воспользоваться этим.
Также можно немного облегчить жизнь в портретном режиме (при 1366x768 туда не влазит большинство заголовков окон), поставив это и вот это.