Mudar para o modo tablet (no Gnome)

2

Eu tenho um laptop 2-em-1, onde a tela gira 360 graus para se transformar em um tablet (eu tenho o Lenovo Yoga 3 Pro, mas existem muitos dispositivos similares agora). Estou executando o Ubuntu GNOME (15.10, mas atualizei para o GNOME 3.18 para fazer o autorotate e o escurecimento automático da tela funcionarem ) , e conseguimos que a maioria dos problemas funcionassem, mas não conseguimos encontrar uma maneira de transformá-lo em um tablet totalmente funcional.

Problema 1

Um teclado na tela só aparece em alguns componentes da interface do usuário específicos do GNOME, como ao pesquisar na interface de atividades ou efetuar login. Eu habilitei o Teclado de Tela das opções de acessibilidade, mas isso não parece afetar nada.

Problema 2

O próximo bit está desativando o teclado principal. Idealmente isso aconteceria automaticamente ao girar a tela além da marca de 180 graus, mas eu me contentaria com um botão no painel superior que desativasse o teclado. Até mesmo um atalho de teclado funcionaria, desde que haja uma maneira de reativar o teclado posteriormente.

Estou com dificuldades para encontrar informações sobre:

(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.

Se ainda não houver uma solução, eu provavelmente poderia hackear algo se houvesse uma maneira de fazer uma combinação dessas, especialmente B (pelo menos através da linha de comando) e D .

    
por redbmk 03.01.2016 / 22:15

1 resposta

2

Eu também estou sofrendo com o prolem 1, mas há o plugin chamado 'Slide for Keyboard' disponível e isso resolve o problema parcialmente. Se ativado, este plug-in faz com que o teclado apareça ao fazer um slide de borda na parte inferior da tela. Aqui está o link: link

Você pode querer outro layout de teclado para visualização vertical. Você pode definir seu próprio layout de teclado usando XML para isso. Dê uma olhada no diretório / usr / share / caribou / layouts

Use a mesma sintaxe XML de alguns layouts já existentes. Eu uso um layout alemão e minha configuração para o teclado vertical é assim:

<?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>

Acabei de remover algumas teclas não usadas na maioria das vezes.

Em seguida, acione o seguinte script na rotação vertical (esquerda ou direita):

gsettings set org.gnome.shell.keyboard keyboard-type <your-keyboard-layout-name>

E acione o mesmo script com o layout normal para rotação normal e invertida.

Para o problema 2, escreva um script para alternar o teclado primeiro. O roteiro deve ficar assim:

#!/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"

Enquanto 'AT Translated Set 2 keyboard' é o nome do teclado. O seu pode ter um nome semelhante. Procure por ele com o comando

xinput list | grep keyboard

e tente desativar e reativar os dispositivos impressos. (Instale o 'Slide for Keyboard' primeiro para que você ainda possa digitar na linha de comando)

Você deve colocar esse script em uma tecla de atalho ou como um ativador na sua lista de aplicativos porque talvez não seja possível reativar o teclado se o script estiver em um atalho de teclado.

    
por narranoid 25.02.2016 / 20:42