Skip to content

Instantly share code, notes, and snippets.

@lilydjwg
Created January 26, 2023 09:43
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save lilydjwg/7a1200b3e02b91fc1af33f686cbfec1b to your computer and use it in GitHub Desktop.
Save lilydjwg/7a1200b3e02b91fc1af33f686cbfec1b to your computer and use it in GitHub Desktop.
device-powersave: turn on powersave mode for devices except USB HID ones
#!/usr/bin/python3
import os
import glob
def main():
patterns = [
'/sys/block/*/device/power/control',
'/sys/bus/i2c/devices/*/device/power/control',
'/sys/bus/pci/devices/*/power/control',
'/sys/bus/pci/devices/*/*/power/control',
]
for pattern in patterns:
for file in glob.glob(pattern):
make_auto(file)
usbhid = set()
usb_driver_pattern = '/sys/bus/usb/devices/*:*/driver'
for file in glob.glob(usb_driver_pattern):
target = os.readlink(file)
driver = target.rsplit('/', 1)[1]
if driver == 'usbhid':
bus = file.split('/')[5].split(':', 1)[0]
usbhid.add(bus)
usb_pattern = '/sys/bus/usb/devices/*/power/control'
for file in glob.glob(usb_pattern):
bus = file.split('/')[5]
if bus not in usbhid:
make_auto(file)
def make_auto(control):
with open(control, 'w') as f:
f.write('auto\n')
if __name__ == '__main__':
main()
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment