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.