Add support for screen rotation.
This commit is contained in:
parent
f530f5e276
commit
58b7e4108d
1
README
1
README
@ -24,6 +24,7 @@ F3 Home zoom level
|
|||||||
F4 Activity zoom level
|
F4 Activity zoom level
|
||||||
|
|
||||||
Alt+f Show the frame
|
Alt+f Show the frame
|
||||||
|
Alt+r Rotate the screen
|
||||||
Alt+o Toggle overlay visibility
|
Alt+o Toggle overlay visibility
|
||||||
Alt+= Open the developer console
|
Alt+= Open the developer console
|
||||||
Alt+0 Open the developer console
|
Alt+0 Open the developer console
|
||||||
|
@ -44,6 +44,7 @@ class Shell(gobject.GObject):
|
|||||||
self._hosts = {}
|
self._hosts = {}
|
||||||
self._screen = wnck.screen_get_default()
|
self._screen = wnck.screen_get_default()
|
||||||
self._current_host = None
|
self._current_host = None
|
||||||
|
self._screen_rotation = 0
|
||||||
|
|
||||||
style.load_stylesheet(view.stylesheet)
|
style.load_stylesheet(view.stylesheet)
|
||||||
|
|
||||||
@ -103,12 +104,14 @@ class Shell(gobject.GObject):
|
|||||||
self._key_grabber.grab('0xE0') # Overlay key
|
self._key_grabber.grab('0xE0') # Overlay key
|
||||||
self._key_grabber.grab('0x93') # Frame key
|
self._key_grabber.grab('0x93') # Frame key
|
||||||
self._key_grabber.grab('0x7C') # Power key
|
self._key_grabber.grab('0x7C') # Power key
|
||||||
|
self._key_grabber.grab('0xEB') # Rotate key
|
||||||
self._key_grabber.grab('0xEC') # Keyboard brightness
|
self._key_grabber.grab('0xEC') # Keyboard brightness
|
||||||
self._key_grabber.grab('<alt>Tab')
|
self._key_grabber.grab('<alt>Tab')
|
||||||
|
|
||||||
# For non-OLPC machines
|
# For non-OLPC machines
|
||||||
self._key_grabber.grab('<alt>f')
|
self._key_grabber.grab('<alt>f')
|
||||||
self._key_grabber.grab('<alt>o')
|
self._key_grabber.grab('<alt>o')
|
||||||
|
self._key_grabber.grab('<alt>r')
|
||||||
self._key_grabber.grab('<alt><shift>s')
|
self._key_grabber.grab('<alt><shift>s')
|
||||||
|
|
||||||
def _key_pressed_cb(self, grabber, key):
|
def _key_pressed_cb(self, grabber, key):
|
||||||
@ -156,6 +159,8 @@ class Shell(gobject.GObject):
|
|||||||
self._frame.notify_key_press()
|
self._frame.notify_key_press()
|
||||||
elif key == '0x7C' or key == '<alt><shift>s': # Power key
|
elif key == '0x7C' or key == '<alt><shift>s': # Power key
|
||||||
self._shutdown()
|
self._shutdown()
|
||||||
|
elif key == '0xEB' or key == '<alt>r': # Rotate key
|
||||||
|
self._rotate_screen()
|
||||||
elif key == '0xEC': # Keyboard brightness
|
elif key == '0xEC': # Keyboard brightness
|
||||||
self._hw_manager.toggle_keyboard_brightness()
|
self._hw_manager.toggle_keyboard_brightness()
|
||||||
elif key == '<alt>Tab':
|
elif key == '<alt>Tab':
|
||||||
@ -170,6 +175,16 @@ class Shell(gobject.GObject):
|
|||||||
console = dbus.Interface(proxy, 'org.laptop.sugar.Console')
|
console = dbus.Interface(proxy, 'org.laptop.sugar.Console')
|
||||||
console.toggle_visibility()
|
console.toggle_visibility()
|
||||||
|
|
||||||
|
def _rotate_screen(self):
|
||||||
|
states = [ 'normal', 'left', 'inverted', 'right']
|
||||||
|
|
||||||
|
self._screen_rotation += 1
|
||||||
|
if self._screen_rotation == len(states):
|
||||||
|
self._screen_rotation = 0
|
||||||
|
|
||||||
|
gobject.spawn_async(['xrandr', '-o', states[self._screen_rotation]],
|
||||||
|
flags=gobject.SPAWN_SEARCH_PATH)
|
||||||
|
|
||||||
def _shutdown(self):
|
def _shutdown(self):
|
||||||
self._model.props.state = ShellModel.STATE_SHUTDOWN
|
self._model.props.state = ShellModel.STATE_SHUTDOWN
|
||||||
if not env.is_emulator():
|
if not env.is_emulator():
|
||||||
|
Loading…
Reference in New Issue
Block a user