script pour lancer xine sur deuxieme ecran

script pour lancer xine sur deuxieme ecran - Linux et OS Alternatifs

Marsh Posté le 22-02-2005 à 17:42:16    

Salut tout le monde.
J'utilise la sortie tv de ma carte graphique pour regarder des divx, mais j'ai du mal a lire du texte sur la tv, donc je cherche a lancer mes films directement depuis mon ecran de pc.
J'ai écrit un script (xineontv) pour ca que je lance d'un clic droit avec konqueror.
Problème :
Si je veux lancer les fichier "nom de film.avi", konqueror execute la commande

Code :
  1. xineontv /rep_ou_ya_les_films/nom de film.avi


et j'ai donc des problèmes avec tout les carractères spéciaux.
Pour l'instant, voici mon script

Code :
  1. #!/bin/bash
  2. DISPLAY=:0.1 # tv
  3. # DISPLAY=:0.0 # CRT
  4. args=$1
  5. for ((i=2;i<$#+1;i++))
  6. do
  7.     args=$args\\\ ${!i}
  8. done
  9. xine $args


 
Ca ne fonctionne pas pour l'instant, notemment a cause des apostrophes qu'on rencontre dans les noms de fichiers.
 
Donc voila, un peu d'aide siouplai  :jap:  
 
ps: Si ya une solution plus simple à laquelle j'ai pas penseé, hésitez pas !

Reply

Marsh Posté le 22-02-2005 à 17:42:16   

Reply

Marsh Posté le 22-02-2005 à 17:53:46    

heu, pourquoi t'utilises pas un mode clone pour l'affichage ?

Reply

Marsh Posté le 22-02-2005 à 18:10:42    

car avec deux display on peut faire 2 choses à la fois.


---------------
Jotenakis
Reply

Marsh Posté le 22-02-2005 à 18:17:46    

madkat > protège toutes tes variables entre double-quotes et accolades, 2 exemples :
 
ma_variable="$1"
ma_commande "${ma_variable}"


Message édité par BMOTheKiller le 22-02-2005 à 18:18:04
Reply

Marsh Posté le 22-02-2005 à 20:05:04    

Vortex > J'ai essayé, et la video ne veux pas s'afficher sur la tv dans ce cas. puis c'est plus pratique deux ecrans distincts.
 
BMOTheKiller > je vais tenter.
mais $x c'est le (x+1)eme argument et les apostrophes ca gene avec cette methode.
J'ai pensé a la commande read, mais le probleme c'est qu'elle lit stdin apres quon l'ai appelée :-/

Reply

Marsh Posté le 22-02-2005 à 20:25:53    

je pige pas l'utilité de ta boucle for en fait....
 
si tu veux chopper tous les arguments passés sur la ligne de commande, tu fais simplement : xine "$@"
 
ce qui ne t'empêches pas de passer des arguments à xine en plus de ton (tes) fichier(s)

Reply

Marsh Posté le 22-02-2005 à 22:49:24    

Bah tres simplement, ma boucle for me sert a prteger les espaces, si konqueror appelle le script avec la commande
$ xineontv chemin vers le film
le script appelle xine avec la commande
$ xine chemin\ vers\ le\ film
 
Mais il reste des problemes avec certains carracteres.


Message édité par madkat le 23-02-2005 à 11:42:32
Reply

Marsh Posté le 23-02-2005 à 11:41:42    

:bounce:

Reply

Marsh Posté le 25-02-2005 à 00:41:10    

Bon j'ai un peu changer d'idée, vu que j'ai un clavier multimedia, j'ai configuré une des touches pour appeler un script qui doit modifier la variable display.
Mais la je doit etre fatigué, parceque je vois pas ce qui va pas.

Code :
  1. #!/bin/bash
  2. # Ce script est prevu pour etre appelé par un appui sur "media" au clavier
  3. # pour pouvoir faire basculer l'affichage de la television vers le moniteur
  4. # et vice et versa
  5. if [ "$DISPLAY" = ":0.1" ]
  6. then
  7.     export DISPLAY=:0.0
  8. else
  9.     export DISPLAY=:0.1
  10. fi
  11. echo $DISPLAY


 
Apparemment le changement de valeur est local au script.
Je chercher a le globaliser.
 
Un peu d'aide svp merci.
 
 :sleep:  

Reply

Marsh Posté le 25-02-2005 à 10:34:31    

D'après le man, 'export' a un effet sur le shell courant et ses descendants mais pas sur ces ancêtres.
 

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed