N900: lo script per averlo in portrait
I ragazzi di HDblog sono riusciti ad attivare la rotazione automatica su N900, e quindi rendere il telefono utilizzabile anche in portrait, il tutto tramite uno script in python (per cui è necessario avere installato python).

Ecco come fare:
1. Create lo script
2. Avviate dal PC l’applicazione blocco note e incollate le seguenti righe:
from ctypes import *
import os
import sys
import time
from math import atan2
from pprint import pprint
xlib = cdll.LoadLibrary("libX11.so.6")
rr = cdll.LoadLibrary("libXrandr.so.2")
def get_rotation():
f = open("/sys/class/i2c-adapter/i2c-3/3-001d/coord", 'r' )
coords = [int(w) for w in f.readline().split()]
f.close()
return coords
print get_rotation()
def rotate(angle):
rr.XRRSetScreenConfigAndRate(display,config,root,size,angle,rate,timestamp)
display = xlib.XOpenDisplay(os.getenv("DISPLAY"))
screen = xlib.XDefaultScreen(display)
root = xlib.XDefaultRootWindow(display, screen)
class XRRScreenConfiguration(Structure):
pass
gsi = rr.XRRGetScreenInfo
gsi.restype = POINTER(XRRScreenConfiguration)
config = gsi(display, root)
current_time = c_ulong()
rr.XRRTimes.restpye = c_ulong
timestamp = rr.XRRTimes(display, screen, byref(current_time))
xccr = rr.XRRConfigCurrentRate
xccr.restype = c_int
rate = xccr(config)
rotation = c_ushort()
size = rr.XRRConfigCurrentConfiguration(config, byref(rotation))
while True:
[x,y,z] = get_rotation()
print x,y,z
if y < -500:
rotate(1)
elif y > 500:
rotate(4)
elif x < -500:
rotate(2)
elif x > 500:
rotate(8)
time.sleep(1)
3. Salvate il documento con il nome rotate.py (py è l’estensione del file!)
4. Copiate rotate.py in una cartella dell’n900
5. Avviate Xterm su N900 e dirigetevi dove avete copiato lo script
6. A questo punto date:
python rotate.py
7. Dovete tener avviato il terminale, altrimenti lo script si arresta!
Purtroppo la compatibilità non è totale, alcune applicazioni potrebbero non comportarsi bene.
Resta aggiornato abbonandoti al feed RSS 2.0. Puoi lasciare un commento oppure inviare un trackback dal tuo sito.




Loading ...

Da errore alla riga 20….
[Rispondi]
Murder Risposta:
febbraio 1st, 2010 alle 16:44
@KERT,
hai copiato lo script fino a ” time.sleep(1)”, giusto?
[Rispondi]
Ho fatto lo stesso e l’ho copiato fino a “time.sleep(1)”.
Da Xterminal scrivo:
/home/user/MyDocs/.documents/rotate.py
e non sono sicuro di dove sia l’erroe ma mi dice error e un po piu su c’è scritto LINE 20!
[Rispondi]
si infatti è strano, perchè se scarico lo script già creato da HDblog funziona..
Forse creo male il file.py
[Rispondi]
Mi dispiace ragazzi ma purtroppo è Niko ad avere l’N900 nello staff, io non ho modo di provare..
[Rispondi]
Ho provato con lo script riportato nell’articolo ed anche ha me ha dato errore. Probabilmente c’è qualche virgola in + o in meno, o qualche altra caxxxta di queste.
[Rispondi]
La linea 20 corretta è:
rr.XRRSetScreenConfigAndRate(display,config,root,size,angle,rate,timestamp)
Correggo l’articolo.
[Rispondi]
[...] nokiaspace.net han publicado un script en python para que mientras se está ejecutando cambien la forma de ver las [...]