tag:linuxfr.org,2005:/users/wrapLinuxFr.org : les contenus de Wrap2013-12-17T20:58:33+01:00/favicon.pngtag:linuxfr.org,2005:Diary/345852013-12-15T22:07:30+01:002013-12-16T10:06:20+01:00Steam OS version facileLicence CC By‑SA http://creativecommons.org/licenses/by-sa/3.0/deed.fr<p>Si j'ai bien compris steam OS c'est une distro linux (debian dans la version officielle) avec une session steam.</p>
<p>Donc pas besoin de s'embêter à installer debian si vous avez déjà un système qui marche avec steam d'installé et que souhaitez profiter d'une session steam.</p>
<p>Prérequis : une distro installée, un gestionnaire de fenêtre (et pas un truc genre ion3, ça pourrait posez problème), une installation de steam fonctionnelle.</p>
<p>Il suffit simplement de créer un lanceur pour la session steam.<br>
Sous fedora dans /usr/share/xsessions/ créer un lanceur steam.desktop contenant ceci :</p>
<pre><code>[Desktop Entry]
Version=1.0
Name=steam
Comment=Use this session to run steam
Exec=xfwm4 & steam -bigpicture
Icon=
Type=Application
</code></pre>
<p>et voilà… Notez que je lance quand même un gestionnaire de fenêtre (xfwm4) avant de lancer steam, si xfwm4 n'est pas installé sur votre machine pensez à remplacer cette commande par celle de votre WM.</p><div><a href="https://linuxfr.org/users/wrap/journaux/steam-os-version-facile.epub">Télécharger ce contenu au format EPUB</a></div> <p>
<strong>Commentaires :</strong>
<a href="//linuxfr.org/nodes/100675/comments.atom">voir le flux Atom</a>
<a href="https://linuxfr.org/users/wrap/journaux/steam-os-version-facile#comments">ouvrir dans le navigateur</a>
</p>
Wraphttps://linuxfr.org/nodes/100675/comments.atomtag:linuxfr.org,2005:Diary/341842013-08-04T15:36:53+02:002013-08-04T15:36:53+02:00Un petit script pour les utilisateurs de manetteLicence CC By‑SA http://creativecommons.org/licenses/by-sa/3.0/deed.fr<p>Bonjour à tous<br>
N'ayant pas grand chose à faire hier après midi, je me suis fait un petit script pour contrôler ma souris à l'aide de mon joypad (tous ceux que j'ai essayé jusqu'ici ne fonctionnent pas chez moi).<br>
Le script utilise pygame pour l'acquisition des signaux de la manette et python-xlib pour le contrôle clavier/souris.</p>
<pre><code>#!/usr/bin/env python
# -*- coding: utf-8 -*-
#Description: Permet le contrôle de la souris avec une manette.
import pygame
from pygame.locals import *
import Xlib,time
from Xlib import X, display
sroot=display.Display().screen().root
pygame.init()
nb_joysticks = pygame.joystick.get_count()
disable=0
#Bouton pour limiter la vitesse du pointeur
LIMITER=7
# Association des bouton de la manette a une action
#
# binds= {bouton:(materiel, code), ...}
# bouton: numero du bouton de la manette
# materiel: 0=souris, 1=clavier
# code: keycode de la touche pour un clavier,
# numero du bouton pour une souris
binds={0:(0, 1), # souris bouton de gauche
1:(0, 3), # souris bouton de droite
2:(1, 36), # clavier Echap
3:(1,9), # clavier Entrer
4:(1, 117), # clavier pg suivante
5:(1,112), # clavier pg precedente
6:(1,37), # clavier ctrl
#~ 7:(1,50), # clavier Shift
#~ 9:(1,64), # clavier Alt
}
if nb_joysticks > 0:
mon_joystick = pygame.joystick.Joystick(0)
mon_joystick.init()
#On compte les boutons
nb_boutons = mon_joystick.get_numbuttons()
# Init de la memoire pour les etats des bouton
membstate=map(mon_joystick.get_button,range(nb_boutons))
# Init de la memoire pour l' etats de la croix
memhat=[False,False]
hat=[False,False]
continuer = 1
while continuer:
time.sleep(0.01)
#Màj de l'etats de la manette
ev=pygame.event.get()
#recuperation de l'état des boutons
bstate=map(mon_joystick.get_button,range(nb_boutons))
# Permet de verifier si un changement d'etat a eu lieu entre 2 boucles
bstate_ev=map(lambda c,m:c-m,bstate,membstate)
# Conversion de bstate en decimal pour detecter les conbinaion de touches
bstate_int=sum(map(lambda b:int(mon_joystick.get_button(b))*(2**b),range(nb_boutons)))
# Activation/Desactivation des associations avec les boutons
# L1,L2,R1,R2 (bouton 4,5,6,7) simultanément appuyés
if bstate_int==240 and sum(bstate_ev)!=0 and disable==0:
disable=1
for bn in binds.keys():
act=[Xlib.X.ButtonRelease,Xlib.X.KeyRelease]
dev,code=binds[bn]
Xlib.ext.xtest.fake_input(d['root'],act[dev],code)
elif bstate_int==240 and sum(bstate_ev)!=0 and disable==1:
disable=0
if disable==0:
# Gestion des boutons
if sum(bstate_ev)!=0:
for bn,st in enumerate(bstate_ev):
if st==1 and bn in binds.keys():
act=[Xlib.X.ButtonPress,Xlib.X.KeyPress]
dev,code=binds[bn]
Xlib.ext.xtest.fake_input(sroot.query_pointer()._data['root'],act[dev],code)
if st==-1 and bn in binds.keys():
act=[Xlib.X.ButtonRelease,Xlib.X.KeyRelease]
dev,code=binds[bn]
Xlib.ext.xtest.fake_input(sroot.query_pointer()._data['root'],act[dev],code)
# Limitation de la vitesse du pointeur avec le bouton 9 de la manette
K=1+(bstate[LIMITER]*9)
# Gestion du pointeur avec les analogiques
# +00001 pour compenser l'erreur des analogiques qui
# renvoient des valeurs de -1,00001 à 0.99999
axe0= round((mon_joystick.get_axis(0)+0.00001)*10,0)/K
axe1= round((mon_joystick.get_axis(1)+0.00001)*10,0)/K
axe2=0
axe3=0
#decommenter si 2 analogiques
#axe2= round((mon_joystick.get_axis(2)+0.00001)*10,0)/K
#axe3= round((mon_joystick.get_axis(3)+0.00001)*10,0)/K
if axe0!=0 or axe2!=0:
y=sroot.query_pointer()._data["root_y"]
x=sroot.query_pointer()._data["root_x"]
sroot.warp_pointer(x+int(axe0+axe2),y)
if axe1!=0 or axe3!=0:
y=sroot.query_pointer()._data["root_y"]
x=sroot.query_pointer()._data["root_x"]
sroot.warp_pointer(x,y+int(axe1+axe3))
# Gestion des touche HAUT,BAS,GAUCHE,DROITE du clavier avec
# la croix de la manette
nb_hats=mon_joystick.get_numhats()
if nb_hats>0:
hat=mon_joystick.get_hat(0)
hat_ev=map(lambda hc,hm:hc!=hm,hat,memhat)
d=sroot.query_pointer()._data
if True in hat_ev:
if hat[1] ==1 :
Xlib.ext.xtest.fake_input(d['root'],Xlib.X.KeyPress,111)
elif hat[1] ==-1 :
Xlib.ext.xtest.fake_input(d['root'],Xlib.X.KeyPress,116)
elif hat_ev[1]:
Xlib.ext.xtest.fake_input(d['root'],Xlib.X.KeyRelease, 111)
Xlib.ext.xtest.fake_input(d['root'],Xlib.X.KeyRelease, 116)
if hat[0] ==1 :
Xlib.ext.xtest.fake_input(d['root'],Xlib.X.KeyPress,114)
elif hat[0] ==-1 :
Xlib.ext.xtest.fake_input(d['root'],Xlib.X.KeyPress,113)
elif hat_ev[0]:
Xlib.ext.xtest.fake_input(d['root'],Xlib.X.KeyRelease, 113)
Xlib.ext.xtest.fake_input(d['root'],Xlib.X.KeyRelease, 114)
membstate=bstate
memhat=hat
else:
print("Vous n'avez pas branché de Joystick...")
</code></pre><div><a href="https://linuxfr.org/users/wrap/journaux/un-petit-script-pour-les-utilisateurs-de-manette.epub">Télécharger ce contenu au format EPUB</a></div> <p>
<strong>Commentaires :</strong>
<a href="//linuxfr.org/nodes/99274/comments.atom">voir le flux Atom</a>
<a href="https://linuxfr.org/users/wrap/journaux/un-petit-script-pour-les-utilisateurs-de-manette#comments">ouvrir dans le navigateur</a>
</p>
Wraphttps://linuxfr.org/nodes/99274/comments.atomtag:linuxfr.org,2005:Diary/336682013-02-17T14:54:20+01:002013-02-17T14:54:20+01:00Un petit script pour les utilisateurs de tablettesLicence CC By‑SA http://creativecommons.org/licenses/by-sa/3.0/deed.fr<p>Bonjour à tous<br />
Ayant fait l'acquisition d'une tablette ASUS T101mt il y a maintenant 3 ans, je regrettais de ne pas pouvoir utiliser les gestes habituel utilisés sur les smartphones pour faire défiler les pages (c'est à dire le bouton de souris appuyer et un mouvement sur la gauche ou sur la droite pour faire page suivante/précédente). Comme j'avais rien de mieux à faire aujourd'hui, j'ai fait un petit script python qui fait le boulot. C'est pas parfait, mais ça marche.</p>
<p>Vous aurez besoin de python-xlib pour que ça fonctionne.<br />
Je ne l'ai testé que sous debian squeeze.</p>
<p>Pour ceux qui serai intéressé voilà le script.<br />
En espérant que ce sera utile à quelqu'un.</p>
<p>xslide_ev.py</p>
<pre>
<code class="">#!/usr/bin/env python
# -*- coding: utf-8 -*-
#
# Description: Script qui assoscie les gestes mouvements de souris gauche/droite
# avec le bouton 1 de la souris appuyer aux touches page suivante/precedente
# du clavier
#keycode pour page précedente/suivante
PGUP=112
PGDOWN=117
#Temps mini et maxi pour le detection du mouvement
TMIN=0.25
TMAX=.8
#Distance mini(en pixel) a parcourir pour la detection du mouvement
DIST=100
import Xlib
from Xlib import X, display
import time
sroot=display.Display().screen().root
state=0
slide=0
x=sroot.query_pointer()._data["root_x"]
while True:
d = sroot.query_pointer()._data
if d['mask']==0:
state=0
if d['mask']==0 and slide==1:
#page down
slide=0
Xlib.ext.xtest.fake_input(d['root'],Xlib.X.KeyPress, PGDOWN)
Xlib.ext.xtest.fake_input(d['root'],Xlib.X.KeyRelease, PGDOWN)
elif d['mask']==0 and slide==-1:
#page up
slide=0
Xlib.ext.xtest.fake_input(d['root'],Xlib.X.KeyPress, PGUP)
Xlib.ext.xtest.fake_input(d['root'],Xlib.X.KeyRelease, PGUP)
if d['mask']==256:
if state==0:
t=time.time()
x=d["root_x"]
state=1
if state==1 and time.time()-t>TMIN and d["root_x"]-x>DIST:
slide=1
if state==1 and time.time()-t>TMIN and d["root_x"]-x<-DIST:
slide=-1
if (slide==1 or slide==-1) and time.time()-t>TMAX:
slide=0
</code>
</pre><div><a href="https://linuxfr.org/users/wrap/journaux/un-petit-script-pour-les-utilisateurs-de-tablettes.epub">Télécharger ce contenu au format EPUB</a></div> <p>
<strong>Commentaires :</strong>
<a href="//linuxfr.org/nodes/97425/comments.atom">voir le flux Atom</a>
<a href="https://linuxfr.org/users/wrap/journaux/un-petit-script-pour-les-utilisateurs-de-tablettes#comments">ouvrir dans le navigateur</a>
</p>
Wraphttps://linuxfr.org/nodes/97425/comments.atom