From 8ff8768dfdede0e6d05fb39bcffeb20933fcc911 Mon Sep 17 00:00:00 2001
From: 135e2 <135e2@135e2.tk>
Date: Thu, 24 Mar 2022 13:20:32 +0800
Subject: scripts/tablet_mode: update to v1.1

Changelog:
- Adapt to latest python

  In python3.8, we won't be allowed to change keys in the same dict easily, so let's just create another one.
  Ref: https://bugs.python.org/issue36452

- Disable xfce-specific settings.

  Heyyyyyyy! We use i3 as the daily window manager, so the xfce4-panel settings would be commented out.

- Correct accelerometers dir location.

  This should be chromebook-specific, so you need to change it yourself.
---
 scripts/tablet_mode | 34 +++++++++++++++++++++++-----------
 1 file changed, 23 insertions(+), 11 deletions(-)

diff --git a/scripts/tablet_mode b/scripts/tablet_mode
index e159697..51f0cf2 100644
--- a/scripts/tablet_mode
+++ b/scripts/tablet_mode
@@ -1,7 +1,13 @@
 #!/usr/bin/env python3
 # -*- indent-tabs-mode: nil; tab-width: 4 -*-
 
-"""Enable/disable tablet mode in a Crouton chroot based on lid angle."""
+"""
+Enable/disable tablet mode in a Crouton chroot based on lid angle.
+
+Slightly modified from https://gist.github.com/ninlith/d0b56676c09b9d3142266c20c833d3da
+Author: ninlith & 135e2
+Version: v1.1
+"""
 
 import argparse
 import logging
@@ -65,21 +71,26 @@ class ConvertibleChromebook(object):
         self.screen_orientation = "normal"
 
     def read_accelerometers(self):
-        """Get data from accelerometers."""
+        """
+        Get data from accelerometers.
+
+        Edit the path below for your chromebook.
+        """
         command = (
-            "grep --null '' /sys/class/chromeos/cros_ec/device"
-            "/cros-ec-accel.*/iio\:device*/* 2>/dev/null"
+            "grep --null '' /sys/class/chromeos/cros_ec/device/cros-ec-sensorhub.2.auto"
+            "/cros-ec-accel.*/iio:device*/* 2>/dev/null"
             )
         ret = os.popen(command).readlines()
         paths_to_values = dict(line.rstrip().split('\0', 1) for line in ret)
         tree = lambda: defaultdict(tree)
-        data = tree()
+        orig_data = tree()
+        data = {}   # Create a new data dict instead.
         for path in paths_to_values:
             dirname, filename = path.rsplit('/', 1)
-            data[dirname][filename] = paths_to_values[path]
-        for dirname in data:
-            location = data[dirname]['location']
-            data[location] = data.pop(dirname)  # Rename.
+            orig_data[dirname][filename] = paths_to_values[path]
+        for dirname in orig_data:
+            location = orig_data[dirname]['location']
+            data[location] = orig_data[dirname]  # Move data to the new dict.
 
         self.lid_accel = [x*float(data['lid']['scale']) for x in [
             float(data['lid']['in_accel_x_raw']),
@@ -234,7 +245,8 @@ def main():
             if tablet_mode_enabled is not True:
                 tablet_mode_init()
                 tablet_mode_enabled = True
-            cc.orientate_screen(callback=switch_xfce_panel_mode)
+            # Comment it out since we don't use xfce panel on i3.
+            # cc.orientate_screen(callback=switch_xfce_panel_mode)
         elif abs(cc.lid_accel[0]) > 9.5:
             # Lid angle calculation is unreliable when hinge aligns with
             # gravity.
@@ -248,4 +260,4 @@ def main():
 
 
 if __name__ == "__main__":
-    main()
\ No newline at end of file
+    main()
-- 
cgit v1.2.3