You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
I wanted to blank the screen and disable the keyboard so that I could put it in my pocket. The following script is an example. I just put it in rc.local.
/etc/rc.local
<full path>/handle_side_button.py &
handle_side_button.py
#!/usr/bin/python3
##################
import RPi.GPIO as GPIO
import time
import os
# const's
## button
GPIO_SIDE_BUTTON = 17
BUTTON_PRESSED = 0
BUTTON_RELEASED = True
POLL_TIMEOUT_SECS = 0.1
## display
SCREEN_ON = True
SCREEN_DEV = '/sys/class/graphics/fb1'
KEYBOARD_DEV = '/sys/class/input/input0'
TOUCHPAD_DEV = '/sys/class/input/input1'
CONSOLE_DEV = '/dev/tty1'
SILENCE = ' > /dev/null 2>&1'
## commands, relies on sysfs
### blank the screen
SCREEN_OFF_CMD_1 = 'bash -c "echo 1 > ' + SCREEN_DEV + '/blank"' + SILENCE
### disable
SCREEN_OFF_CMD_2 = 'echo 1 > ' + SCREEN_DEV + '/state'
### disable keyboard
KEYBOARD_DISABLE = 'echo 1 > ' + KEYBOARD_DEV + '/inhibited'
### disable touchpad
TOUCHPAD_DISABLE = 'echo 1 > ' + TOUCHPAD_DEV + '/inhibited'
### show the screen
SCREEN_ON_CMD_1 = 'bash -c "echo 0 > ' + SCREEN_DEV + '/blank"' + SILENCE
### enable
SCREEN_ON_CMD_2 = 'echo 0 > ' + SCREEN_DEV + '/state'
### enable keyboard
KEYBOARD_ENABLE = 'echo 0 > ' + KEYBOARD_DEV + '/inhibited'
### enable touchpad
TOUCHPAD_ENABLE = 'echo 0 > ' + TOUCHPAD_DEV + '/inhibited'
# setup the side button with a pull-up
GPIO.setmode(GPIO.BCM)
GPIO.setup(GPIO_SIDE_BUTTON, GPIO.IN, pull_up_down=GPIO.PUD_UP)
# poll the button
while True:
# wait for a button press
if GPIO.input(GPIO_SIDE_BUTTON) == BUTTON_PRESSED:
# track the release
if BUTTON_RELEASED:
BUTTON_RELEASED = False
# ON to OFF
if SCREEN_ON:
SCREEN_ON = False
os.system(SCREEN_OFF_CMD_1)
os.system(SCREEN_OFF_CMD_2)
os.system(KEYBOARD_DISABLE)
os.system(TOUCHPAD_DISABLE)
# OFF to ON
else:
SCREEN_ON = True
os.system(SCREEN_ON_CMD_1)
os.system(SCREEN_ON_CMD_2)
os.system(KEYBOARD_ENABLE)
os.system(TOUCHPAD_ENABLE)
else:
BUTTON_RELEASED = True
# don't thrash
time.sleep(POLL_TIMEOUT_SECS)
The text was updated successfully, but these errors were encountered:
I wanted to blank the screen and disable the keyboard so that I could put it in my pocket. The following script is an example. I just put it in rc.local.
/etc/rc.local
handle_side_button.py
The text was updated successfully, but these errors were encountered: