Lenovo IdeaPad Duet Chromebook (google-krane)

== Users owning this device ==
== Screen ==
Screen rotation works via accelerometer but is stuck +/- 90 degrees.
You might be able to offset it, by creating an udev rule (/etc/udev/rules.d/61-cros-ec-accel.rules). 
To get it working properly, you have to swap the x and y values, as well as inverting the x-axis:
Create the following file:
# nano /etc/udev/rules.d/61-cros-ec-accel.rules
Insert the following text:
ACTION=="remove", GOTO="sensor_end"
 
SUBSYSTEM=="iio", KERNEL=="iio*", SUBSYSTEMS=="platform", 
 ATTRS{modalias}=="platform:cros-ec-accel", 
 ENV{ACCEL_MOUNT_MATRIX}="0, 1, 0; -1, 0, 0; 0, 0, -1", 
 GOTO="sensor_end"
LABEL="sensor_end"
== Touchpad ==
The touchpad may require a large amount of pressure in order to detect cursor movement. To increase its sensitivity, you can add the following libinput quirk:
Create the following file:
# mkdir /etc/libinput
# cd /etc/libinput/
# nano local-overrides.quirks
Insert the following text:
[Touchpad pressure override]
MatchUdevType=touchpad
MatchName=Google Inc. Hammer
AttrPressureRange=20:10
== Cameras ==
Cameras are currently non-functional, due to lack of MTK DIP driver in mainline.
They do get detected with few devicetree patches (along with lens actuator and EEPROMs), but patch from MediaTek hasn't been merged, as they couldn't agree on creating DMA buffers.
Getting it to work would require significant effort, as it would have to be re-written accordingly to current kernel ABI.
https://lwn.net/ml/linux-media/7f8cb8c7-cbf2-40c9-ac8f-c3c9b97919d7@molgen.mpg.de/
== USI-pen ==
=== Gnome ===
The cursor position is correctly displayed only in portrait orientation. To make the USI-pen work correctly in any orientation, do the following (source):
Create the following file:
# mkdir /etc/libwacom
# nano /etc/libwacom/google-krane.tablet
Insert the following text:
[Device]
Name=hid-over-i2c 27C6:0E30 Stylus
ModelName=
DeviceMatch=i2c:27c6:0e30
Class=ISDV4
Width=5.35433
Height=8.54331
IntegratedIn=Display;System
Styli=@generic-no-eraser
[Features]
Stylus=true
Touch=false
And also supplement or create a file:
# nano /etc/libinput/local-overrides.quirks
[Google Chromebook Krane Stylus Digitizer]
MatchUdevType=tablet
MatchDeviceTree=*krane*
MatchBus=i2c
ModelChromebook=1
AttrPressureRange=1100:1000
After all this is done, execute this and reboot:
# libwacom-update-db
After that, the digitizer should take into account the screen rotation, and also, the digitizer settings menu will appear in the Gnome settings.
== Screen tweaks ==
=== Phosh ===
If you don't want to set the screen orientation and the scale new, after every reboot:
# cd /usr/share/phosh/
# nano phoc.ini
Insert the following text:
[output:DSI-1]
rotate = 270
scale = 1.5
Reboot.
=== Gnome ===
In the latest versions of Gnome there is no option to select other display scales than 100% and 200%. You can enable intermediate options that are multiples of 25%, do so:
$ gsettings set org.gnome.mutter experimental-features "['scale-monitor-framebuffer']"
=== pbsplash at boot ===
The pbsplash works in portrait mode during boot, regardless of the actual orientation of the device. If you are confused by this, you can switch to the option of showing the boot log, which happens in landscape mode (source):
# nano /etc/deviceinfo
Edit the appropriate line, preserving your parameters if they exist:
deviceinfo_kernel_cmdline_append=" PMOS_NOSPLASH console=tty1"
And rebuild the boot kernel image:
# mkinitfs
== Desktop Environment ==
=== Phosh ===
When the keyboard is connected, you can switch between "Docked" and "Undocked" from the quick settings.
When you disconnect the keyboard, phosh automatically transitions into "Undocked" mode, automatically maximizing all of your windows.
To allow free form windows, you can run the following command:
$ gsettings set sm.puri.phoc auto-maximize false
To switch back to auto-maximized windows run:
$ gsettings set sm.puri.phoc auto-maximize true
== See also ==
* Lenovo Chromebook Duet (10.1") 2 in 1
* 
*