Переключиться в режим планшета (в Gnome)
У меня есть ноутбук 2-в-1, экран которого поворачивается на 360 градусов, чтобы превратиться в планшет (у меня есть Lenovo Yoga 3 Pro, но сейчас есть много подобных устройств). Я использую Ubuntu GNOME (15.10, но я обновился до GNOME 3.18, чтобы обеспечить автоматическое вращение и автоматическое затемнение экрана), и получил большую часть изломов, но не могу найти способ превратить его в полнофункциональный планшет,
Проблема 1
Экранная клавиатура будет появляться только в некоторых специфичных для GNOME компонентах пользовательского интерфейса, например при поиске в интерфейсе действий или при входе в систему. Я включил экранную клавиатуру в параметрах специальных возможностей, но, похоже, это ни на что не влияет.
Проблема 2
Следующий бит отключает основную клавиатуру. В идеале это происходит автоматически при повороте экрана за отметку 180 градусов, но я бы остановился на кнопке на верхней панели, которая отключает клавиатуру. Даже сочетание клавиш будет работать до тех пор, пока есть способ снова включить клавиатуру.
Мне трудно найти информацию о:
(A) inspecting the lid sensor(s)
(B) disabling the keyboard in any way
(C) detecting when you're in an input
(D) enabling an onscreen keyboard.
Если решения еще нет, я мог бы что-то взломать, если есть способ сделать какую-то их комбинацию, особенно B
(хотя бы через командную строку) и D
,
1 ответ
Я тоже страдаю от проблемы 1, но есть плагин "Slide for Keyboard", который частично решает проблему. Если этот плагин активирован, клавиатура появляется при перемещении краев внизу экрана. Вот ссылка: https://extensions.gnome.org/extension/993/slide-for-keyboard/
Вы можете хотеть другую раскладку клавиатуры для вертикального обзора. Вы можете определить свою собственную раскладку клавиатуры, используя для этого XML. Посмотрите на каталог /usr/share/caribou/layouts
Используйте тот же синтаксис XML, что и в некоторых уже существующих макетах. Я использую немецкую раскладку, и моя конфигурация для вертикальной клавиатуры выглядит следующим образом:
<?xml version="1.0"?>
<layout xmlns:xi="http://www.w3.org/2001/XInclude">
<level mode="default" name="level1" xml:base="common/qwerty.xml">
<row>
<key name="Escape"/>
<key name="q"/>
<key name="w"/>
<key name="e">
<key name="e"/>
<key name="egrave"/>
<key name="eacute"/>
<key name="ecircumflex"/>
<key name="ediaeresis"/>
<key name="emacron"/>
</key>
<key name="r"/>
<key name="t"/>
<key name="z"/>
<key name="u">
<key name="u"/>
<key name="ugrave"/>
<key name="uacute"/>
<key name="ucircumflex"/>
<key name="udiaeresis"/>
<key name="umacron"/>
</key>
<key name="i">
<key name="i"/>
<key name="igrave"/>
<key name="iacute"/>
<key name="icircumflex"/>
<key name="idiaeresis"/>
<key name="imacron"/>
</key>
<key name="o">
<key name="o"/>
<key name="ograve"/>
<key name="oacute"/>
<key name="ocircumflex"/>
<key name="odiaeresis"/>
<key name="omacron"/>
</key>
<key name="p"/>
<key name="BackSpace" repeatable="yes"/>
</row>
<row align="right">
<key name="Tab" width="1.5"/>
<key name="a">
<key name="a"/>
<key name="agrave"/>
<key name="aacute"/>
<key name="acircumflex"/>
<key name="adiaeresis"/>
<key name="aring"/>
<key name="atilde"/>
<key name="ae"/>
<key name="amacron"/>
</key>
<key name="s"/>
<key name="d"/>
<key name="f"/>
<key name="g"/>
<key name="h"/>
<key name="j"/>
<key name="k"/>
<key name="l"/>
<key name="Return" width="1.5"/>
</row>
<row>
<key name="Caribou_ShiftUp" toggle="level2" width="1.5"/>
<key name="y"/>
<key name="x"/>
<key name="c">
<key name="c"/>
<key name="ccedilla"/>
</key>
<key name="v"/>
<key name="b"/>
<key name="n"/>
<key name="m"/>
<key name="comma"/>
<key name="period"/>
<key name="question"/>
</row>
<row>
<key align="left" name="Caribou_Symbols" toggle="symbols1" width="2.0"/>
<key align="left" name="Control_L" width="1.5"/>
<key align="left" name="Alt_L" width="1.5"/>
<key align="left" name="space" width="5.0" repeatable="yes"/>
<key align="right" name="Caribou_Prefs"/>
</row>
</level>
<level mode="latched" name="level2" xml:base="common/qwerty.xml">
<row>
<key name="Escape"/>
<key name="Q"/>
<key name="W"/>
<key name="E">
<key name="E"/>
<key name="Egrave"/>
<key name="Eacute"/>
<key name="Ecircumflex"/>
<key name="Ediaeresis"/>
<key name="Emacron"/>
</key>
<key name="R"/>
<key name="T"/>
<key name="Z"/>
<key name="U">
<key name="U"/>
<key name="Ugrave"/>
<key name="Uacute"/>
<key name="Ucircumflex"/>
<key name="Udiaeresis"/>
<key name="Umacron"/>
</key>
<key name="I">
<key name="I"/>
<key name="Igrave"/>
<key name="Iacute"/>
<key name="Icircumflex"/>
<key name="Idiaeresis"/>
<key name="Imacron"/>
</key>
<key name="O">
<key name="O"/>
<key name="Ograve"/>
<key name="Oacute"/>
<key name="Ocircumflex"/>
<key name="Odiaeresis"/>
<key name="Omacron"/>
</key>
<key name="P"/>
<key name="BackSpace" repeatable="yes"/>
</row>
<row align="right">
<key name="Tab" width="1.5"/>
<key name="A">
<key name="A"/>
<key name="Agrave"/>
<key name="Aacute"/>
<key name="Acircumflex"/>
<key name="Adiaeresis"/>
<key name="Aring"/>
<key name="Atilde"/>
<key name="Ae"/>
<key name="Amacron"/>
</key>
<key name="S"/>
<key name="D"/>
<key name="F"/>
<key name="G"/>
<key name="H"/>
<key name="J"/>
<key name="K"/>
<key name="L"/>
<key name="Return" width="1.5"/>
</row>
<row>
<key name="Caribou_ShiftDown" toggle="level1" width="1.5"/>
<key name="Y"/>
<key name="X"/>
<key name="C">
<key name="C"/>
<key name="Ccedilla"/>
</key>
<key name="V"/>
<key name="B"/>
<key name="N"/>
<key name="M"/>
<key name="comma"/>
<key name="period"/>
<key name="question"/>
</row>
<row>
<key align="left" name="Caribou_Symbols" toggle="symbols1" width="2.0"/>
<key align="left" name="Control_L" width="1.5"/>
<key align="left" name="Alt_L" width="1.5"/>
<key align="left" name="space" width="5.0" repeatable="yes"/>
<key align="right" name="Caribou_Prefs"/>
</row>
</level>
<level mode="locked" name="symbols1" xml:base="common/symbols.xml">
<row>
<key name="Escape"/>
<key name="1"/>
<key name="2"/>
<key name="3"/>
<key name="4"/>
<key name="5"/>
<key name="6"/>
<key name="7"/>
<key name="8"/>
<key name="9"/>
<key name="0"/>
<key name="BackSpace" repeatable="yes"/>
</row>
<row align="right">
<key name="Tab" width="1.5"/>
<key name="minus"/>
<key name="slash"/>
<key name="colon"/>
<key name="semicolon"/>
<key name="parenleft"/>
<key name="parenright"/>
<key name="ampersand"/>
<key name="at"/>
<key name="grave"/>
<key name="Return" width="1.5"/>
</row>
<row>
<key name="Caribou_Symbols_More" toggle="symbols2" width="2.0"/>
<key name="period" width="1.2"/>
<key name="comma" width="1.2"/>
<key name="question" width="1.2">
<key name="question"/>
<key name="questiondown"/>
</key>
<key name="exclam" width="1.2">
<key name="exclam"/>
<key name="exclamdown"/>
</key>
<key name="apostrophe" width="1.2"/>
<key name="quotedbl" width="1.2"/>
</row>
<row>
<key align="left" name="Caribou_Alpha" toggle="default" width="2.0"/>
<key align="left" name="Control_L" width="1.5"/>
<key align="left" name="Alt_L" width="1.5"/>
<key align="left" name="space" width="5.0" repeatable="yes"/>
<key align="right" name="Caribou_Prefs"/>
</row>
</level>
<level mode="locked" name="symbols2" xml:base="common/symbols.xml">
<row>
<key name="Escape"/>
<key name="bracketleft"/>
<key name="bracketright"/>
<key name="braceleft"/>
<key name="braceright"/>
<key name="numbersign"/>
<key name="percent"/>
<key name="asciicircum"/>
<key name="asterisk"/>
<key name="plus"/>
<key name="equal"/>
<key name="BackSpace" repeatable="yes"/>
</row>
<row align="right">
<key name="Tab" width="1.5"/>
<key align="right" name="underscore"/>
<key name="backslash"/>
<key name="bar"/>
<key name="asciitilde"/>
<key name="less"/>
<key name="greater"/>
<key name="dollar"/>
<key name="EuroSign"/>
<key name="sterling"/>
<key name="Return" width="1.5"/>
</row>
<row>
<key name="Caribou_Symbols" toggle="symbols1" width="2.0"/>
<key name="period" width="1.2"/>
<key name="comma" width="1.2"/>
<key name="question" width="1.2">
<key name="question"/>
<key name="questiondown"/>
</key>
<key name="exclam" width="1.2">
<key name="exclam"/>
<key name="exclamdown"/>
</key>
<key name="apostrophe" width="1.2"/>
<key name="quotedbl" width="1.2"/>
</row>
<row>
<key align="left" name="Caribou_Alpha" toggle="default" width="2.0"/>
<key align="left" name="Control_L" width="1.5"/>
<key align="left" name="Alt_L" width="1.5"/>
<key align="left" name="space" width="5.0" repeatable="yes"/>
<key align="right" name="Caribou_Prefs"/>
</row>
</level>
</layout>
Я только что удалил несколько в основном неиспользованных ключей.
Затем запустите следующий скрипт для вертикального (левого или правого) вращения:
gsettings set org.gnome.shell.keyboard keyboard-type <your-keyboard-layout-name>
И запустить тот же скрипт с нормальным макетом для нормального и перевернутого вращения.
Для проблемы 2, напишите сценарий, чтобы сначала переключить клавиатуру. Сценарий должен выглядеть так:
#!/bin/bash
device='AT Translated Set 2 keyboard'
oldstate=$(xinput list-props "$device" | grep 'Device Enabled' | rev | cut -b 1)
newstate=1
if [ "$oldstate" = "1" ]; then
newstate=0;
fi
xinput set-prop "$device" 'Device Enabled' "$newstate"
В то время как "AT Translated Set 2 клавиатура" является названием клавиатуры. У тебя может быть похожее имя. Ищите его с помощью команды
xinput list | grep keyboard
и попробуйте отключить и включить печатные устройства. (Сначала установите "Slide for Keyboard", чтобы вы все еще могли печатать в командной строке)
Вы должны поместить этот сценарий либо в "горячую клавишу", либо в качестве панели запуска в списке приложений, потому что вы не сможете включить клавиатуру, если сценарий находится на комбинации клавиш.