Vraag Overschakelen naar tabletmodus (in Gnome)


Ik heb een 2-in-1 laptop, waarbij het scherm volledig 360 graden draait om in een tablet te veranderen (ik heb de Lenovo Yoga 3 Pro, maar er zijn veel vergelijkbare apparaten nu). Ik voer Ubuntu GNOME (15.10, maar ik heb bijgwerkt naar GNOME 3.18 om autorotate en automatisch dimmen op het scherm te krijgen), en hebben de meeste kinkjes opgelost, maar kunnen geen manier vinden om er een volledig functionele tablet van te maken.

Probleem 1

Een schermtoetsenbord verschijnt alleen in sommige GNOME-specifieke UI-componenten, zoals bij zoeken in de activiteiteninterface of inloggen. Ik heb het schermtoetsenbord ingeschakeld vanuit toegankelijkheidsopties, maar het lijkt niets te beïnvloeden.

Probleem 2

Het volgende bit schakelt het hoofdtoetsenbord uit. In het ideale geval gebeurt dit automatisch wanneer het scherm voorbij het 180 graden merkteken wordt gedraaid, maar ik zou genoegen nemen met een knop in het bovenpaneel die het toetsenbord uitschakelt. Zelfs een sneltoets zou werken zolang er een manier is om het toetsenbord daarna opnieuw in te schakelen.

Ik vind het moeilijk om informatie te vinden over:

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

Als er nog geen oplossing is, zou ik waarschijnlijk samen iets kunnen hacken, vooral als er een manier is om een ​​combinatie hiervan te doen B (tenminste via de opdrachtregel) en D.


2
2018-01-03 21:15


oorsprong


Werkt dit ding voor jou? gist.github.com/emiller/6488449 - s3lph
Het lijkt een goed begin. Ik heb uiteindelijk aan boord geïnstalleerd en vastgemaakt aan het tabblad Activiteiten voor eenvoudig opstarten. Het ziet er naar uit dat dit het automatisch opent wanneer het opnieuw wordt georiënteerd en het toetsenbord zal uitschakelen. Werkt nog steeds niet voor het gebruik van het apparaat als een tablet in de normale richting of het uitschakelen van het toetsenbord. Ik kan daar waarschijnlijk mee werken. - redbmk


antwoorden:


Ik lijd ook in prolem 1, maar er is de plugin genaamd 'Slide for Keyboard' beschikbaar en hiermee is het probleem gedeeltelijk opgelost. Indien geactiveerd, zorgt deze plugin ervoor dat het toetsenbord verschijnt wanneer een randdia vanaf de onderkant van het scherm wordt uitgevoerd. Hier is de link: https://extensions.gnome.org/extension/993/slide-for-keyboard/

Misschien wilt u een andere toetsenbordindeling voor een verticale weergave. U kunt daarvoor uw eigen toetsenbordindeling definiëren met XML. Bekijk de map / Usr / share / kariboes / lay-outs

Gebruik dezelfde XML-syntaxis als in sommige reeds bestaande lay-outs. Ik gebruik een Duitse lay-out en mijn configuratie voor verticaal toetsenbord ziet er als volgt uit:

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

Ik heb zojuist een paar meestal ongebruikte sleutels verwijderd.

Activeer vervolgens het volgende script bij verticale (links of rechts) rotatie:

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

En activeer hetzelfde script met de normale lay-out voor normale en omgekeerde rotatie.

Voor probleem 2, schrijf een script om eerst het toetsenbord in te schakelen. Het script zal er als volgt uitzien:

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

Terwijl 'AT Translated Set 2 keyboard' de naam is van het toetsenbord. De jouwe heeft misschien een vergelijkbare naam. Zoek ernaar met het commando

xinput list | grep keyboard

en probeer de afgedrukte apparaten uit te schakelen en opnieuw in te schakelen. (Installeer eerst 'Slide for Keyboard', zodat je nog steeds de opdrachtregel kunt typen)

U moet dit script op een sneltoets of als een startprogramma in uw toepassingenlijst plaatsen, omdat u het toetsenbord mogelijk niet opnieuw in kunt schakelen als het script op een sneltoets staat.


2
2018-02-25 19:42



Eindelijk kwam om dit op te zetten. Werkt perfect! Voorlopig blijf ik gewoon bij de standaardlay-out, maar het lijkt erop dat het gemakkelijk genoeg is om te wijzigen als ik ctrl, alt, pijltoetsen, enz. Wil toevoegen. Ik heb ook de Touchpad-indicator gnome-extensie als een eenvoudige manier om het touchpad in te schakelen. - redbmk