summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
author135e2 <[email protected]>2022-03-24 13:20:32 +0800
committer135e2 <[email protected]>2022-03-24 13:27:16 +0800
commit8ff8768dfdede0e6d05fb39bcffeb20933fcc911 (patch)
treec4e8df58aa27640e79b6019632b07e7de462eb32
parent676d0507dca35367b7a2a320ec3194a3baa8830f (diff)
downloaddotfiles-8ff8768dfdede0e6d05fb39bcffeb20933fcc911.tar.gz
dotfiles-8ff8768dfdede0e6d05fb39bcffeb20933fcc911.tar.bz2
dotfiles-8ff8768dfdede0e6d05fb39bcffeb20933fcc911.zip
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.
-rw-r--r--scripts/tablet_mode34
1 files 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()