web-dev-qa-db-ja.com

タブレットモードに切り替えます(Gnomeで)

画面が360度回転してタブレットに変わる2-in-1ラップトップを持っています(Lenovo Yoga 3 Proを持っていますが、今では多くの同様のデバイスがあります)。 Ubuntu GNOMEを実行しています(15.10、しかしGNOME 3.18に更新しました 自動回転と自動スクリーン調光を有効にするために )、ほとんどの不具合が解決しましたが、方法を見つけることができません完全に機能するタブレットに変えてください。

問題1

スクリーンキーボードは、アクティビティインターフェースでの検索時やログイン時など、一部のGNOME固有のUIコンポーネントでのみポップアップします。アクセシビリティオプションからスクリーンキーボードを有効にしましたが、何の影響もありません。

問題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の組み合わせを行う方法があれば、何かを一緒にハッキングできます。

2
redbmk

私もプロレム1で苦しんでいますが、「キーボード用スライド」と呼ばれるプラグインが利用可能であり、これは問題を部分的に解決します。有効にすると、このプラグインにより、画面の下部からEdgeスライドを実行するときにキーボードが表示されます。リンクは次のとおりです。 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 keyboard」はキーボードの名前です。あなたの名前も似ているかもしれません。コマンドで検索してください

xinput list | grep keyboard

そして、印刷デバイスを無効にしてから再度有効にしてみてください。 (最初に「キーボード用スライド」をインストールして、コマンドラインで入力できるようにします)

スクリプトがキーボードショートカットにある場合、キーボードを再度有効にできない可能性があるため、このスクリプトをホットキーまたはアプリケーションリストのランチャーとして配置する必要があります。

2
narranoid