Two in one Hinge support

I have a Dell Chromebook 11 (3189). So far basically everything works on arch (using LTS kernel, and latest MrChromebox Bios update as of this post.)

But all the methods I have tried to look into just straight up dont work for two in one conversion on the hinge, it detects when closed, or open, but not if its flipped over.

I want to disable the keyboard input when its flipped over, rotate screen 90 degrees, and show an onscreen keyboard below the task bar (currently on KDE plasma, wayland, can go to x11)

It works on my Jinlon, so it should work on your Chromebook as well. Are you using keyd? Sometimes keyd can cause issues with tablet mode. Also, I doubt X11 would with better than Wayland for this.

I am infact using keyd, have a custom accessibility map for the chromebook that gives me chromeos control keys while still being able to access linux stuff such as tty.

But issue was noted before I used keyd, it would act as if the lid had two states, not three, open, and closed

What does evtest show? This is what it shows for Jinlon:

[nix-shell:~]$ sudo evtest
[sudo] password for rajas: 
No device specified, trying to scan all of /dev/input/event*
Available devices:
/dev/input/event0:      AT Translated Set 2 keyboard
/dev/input/event1:      Lid Switch
/dev/input/event10:     keyd virtual keyboard
/dev/input/event11:     keyd virtual pointer
/dev/input/event12:     Video Bus
/dev/input/event13:     sof-rt5682 Headset Jack
/dev/input/event14:     sof-rt5682 HDMI/DP,pcm=2
/dev/input/event15:     sof-rt5682 HDMI/DP,pcm=3
/dev/input/event16:     sof-rt5682 HDMI/DP,pcm=4
/dev/input/event17:     Intel Virtual Switches
/dev/input/event2:      Power Button
/dev/input/event3:      Intel Virtual Buttons
/dev/input/event4:      Tablet Mode Switch
/dev/input/event5:      Elan Touchpad
/dev/input/event6:      GDIX0000:00 27C6:0E0C
/dev/input/event7:      GDIX0000:00 27C6:0E0C Stylus
/dev/input/event8:      GDIX0000:00 27C6:0E0C Stylus
/dev/input/event9:      GDIX0000:00 27C6:0E0C UNKNOWN
Select the device event number [0-17]: 4
Input driver version is 1.0.1
Input device ID: bus 0x19 vendor 0x0 product 0x0 version 0x1
Input device name: "Tablet Mode Switch"
Supported events:
  Event type 0 (EV_SYN)
  Event type 5 (EV_SW)
    Event code 1 (SW_TABLET_MODE) state 0
Properties:
Testing ... (interrupt to exit)
Event: time 1717815855.685351, type 5 (EV_SW), code 1 (SW_TABLET_MODE), value 1
Event: time 1717815855.685351, -------------- SYN_REPORT ------------
Event: time 1717815859.413376, type 5 (EV_SW), code 1 (SW_TABLET_MODE), value 0
Event: time 1717815859.413376, -------------- SYN_REPORT ------------

“Tablet Mode Switch” correctly reports events.

[user@chromebook ~]$ sudo evtest
No device specified, trying to scan all of /dev/input/event*
Available devices:
/dev/input/event0:      Lid Switch
/dev/input/event1:      Power Button
/dev/input/event10:     HDA Intel PCH HDMI/DP,pcm=8
/dev/input/event11:     keyd virtual pointer
/dev/input/event12:     chtrt5650 Headset
/dev/input/event2:      AT Translated Set 2 keyboard
/dev/input/event3:      Elan Touchpad
/dev/input/event4:      Elan Touchscreen
/dev/input/event5:      PC Speaker
/dev/input/event6:      Video Bus
/dev/input/event7:      keyd virtual keyboard
/dev/input/event8:      HDA Intel PCH HDMI/DP,pcm=3
/dev/input/event9:      HDA Intel PCH HDMI/DP,pcm=7
Select the device event number [0-12]: 

I dont have a tablet mode?

1 Like

can you at least get the lid angle by running

cat /sys/bus/iio/devices/iio:device*/in_angl_raw

?

Ran into the same issue/output on my Eldrid device:

$ sudo evtest
No device specified, trying to scan all of /dev/input/event*
Available devices:
/dev/input/event0:      AT Translated Set 2 keyboard
/dev/input/event1:      Lid Switch
/dev/input/event10:     Elan Touchpad
/dev/input/event11:     HP Wide Vision HD Camera: HP Wi
/dev/input/event12:     sof-rt5682 Headset Jack
/dev/input/event13:     sof-rt5682 HDMI/DP,pcm=2
/dev/input/event14:     sof-rt5682 HDMI/DP,pcm=3
/dev/input/event15:     sof-rt5682 HDMI/DP,pcm=4
/dev/input/event16:     sof-rt5682 HDMI/DP,pcm=5
/dev/input/event17:     keyd virtual keyboard
/dev/input/event18:     keyd virtual pointer
/dev/input/event19:     Intel Virtual Switches
/dev/input/event2:      Power Button
/dev/input/event3:      Intel Virtual Buttons
/dev/input/event4:      PC Speaker
/dev/input/event5:      GDIX0000:00 27C6:0E87
/dev/input/event6:      Video Bus
/dev/input/event7:      GDIX0000:00 27C6:0E87 Stylus
/dev/input/event8:      GDIX0000:00 27C6:0E87 UNKNOWN
/dev/input/event9:      GDIX0000:00 27C6:0E87 UNKNOWN
Select the device event number [0-19]: ^C

As per the latest instructions:

$ cat /sys/bus/iio/devices/iio:device*/in_angl_raw
[bat error]: '/sys/bus/iio/devices/iio:device*/in_angl_raw': No such file or directory (os error 2)

I did try to troubleshoot it w/ Claude (AI) before I jumped onto the forums, and part of the area it was directing me towards might be related?

$ sudo systemctl status iio-sensor-proxy
â—‹ iio-sensor-proxy.service - IIO Sensor Proxy service
     Loaded: loaded (/lib/systemd/system/iio-sensor-proxy.service; static)
     Active: inactive (dead)
$ sudo journalctl -u iio-sensor-proxy
Jun 21 18:31:54 chrultrabook systemd[1]: Starting iio-sensor-proxy.service - IIO Sensor Proxy service...
Jun 21 18:31:54 chrultrabook systemd[1]: Started iio-sensor-proxy.service - IIO Sensor Proxy service.
Jun 21 18:31:54 chrultrabook systemd[1]: iio-sensor-proxy.service: Deactivated successfully.
Jun 21 18:32:04 chrultrabook systemd[1]: Starting iio-sensor-proxy.service - IIO Sensor Proxy service...
Jun 21 18:32:04 chrultrabook systemd[1]: Started iio-sensor-proxy.service - IIO Sensor Proxy service.
Jun 21 18:32:04 chrultrabook systemd[1]: iio-sensor-proxy.service: Deactivated successfully.

Does this mean that the sensor’s .service file is erroring out, and that’s why the tablet mode switch functionality never is an option?

I don’t think so, since the tablet mode and lid angle is working on Jinlon without that service even existing.

[rajas@jinlon:~]$ cat /sys/bus/iio/devices/iio:device*/in_angl_raw
125

[rajas@jinlon:~]$ systemctl status iio-sensor-proxy
Unit iio-sensor-proxy.service could not be found.