Front Row et écran externe

kennymac

Membre actif
4 Décembre 2004
269
9
38
Bonjour à toutes et à tous !

Sur mon iMac C2D 2.16 GHz 20", j'aimerais afficher Front Row sur "l'écran" externe, qui est en fait un vidéoprojecteur tritubes Sony.

La seule contrainte, c'est que j'utilise SwithResX pour pouvoir avoir une résolution de 720x576 (quasi obligatoire pour ce vidéoproj.).
J'ai essayé ce matin et voilà ce qu'il se passe :

- en mode bureau étendu : Front Row reste sur l'écran principal (celui de l'iMac)
- en mode recopie vidéo : Front Row n'apparait sur aucun des deux = écran noir :mouais:


En faisant une recherche, j'ai cru savoir que si je désignais le vidéoproj. en écran principal (et en restant en bureau étendu), Front Row s'afficherait. Faudra que j'essaye...

Sinon connaissez vous une autre possibilité ?

Le mieux étant d'avoir Front Row sur le vidéoproj (en 720x576) et le reste sur l'écran de l'iMac (en 1680x1050 donc).
Sinon je peux me contenter d'une recopie vidéo, mais pour le moment ça ne marche pas (tant pi si l'écran de l'iMac passe aussi en 720x576 dans ce mode et que je ne peux plus vraiment l'utiliser dans cette résolution... le temps de regarder un film).

Merci par avance :)
 
Il y a un sujet intéressant sur macosxhints: http://www.macosxhints.com/article.php?story=20051201230156840&query=frontrow+second+screen

Le principe est de créer un script qui inverse l'écran principal et l'écran étendu. J'ai réussi à mettre en place quelque chose de fonctionnel chez moi, mais pilotable avec ma wiimote.

Je regarderai ce soir si c'est possible (à priori ça doit l'être) de définir simplement une touche de raccourci pour lancer le script pour passer l'écran principal sur le projecteur, et une seconde touche pour faire revenir l'écran principal sur le mac. Si j'ai une solution, je ferai une petite explication, si personne n'a trouvé de solution plus simple.
 
Merci beaucoup !!

Je vais aller lire ça, ça à l'air très intéressant.

:up:
 
Voilà une façon de faire qui pourrait te convenir:

Installe le logiciel suivant : http://www.shadowlab.org/Software/spark3.php
Il est gratuit et permet de configurer des raccourcis claviers pour des applications, des scripts, ...

Copie l'application cscreen (c'est une commande unix) dans ton dossier Application. Je joins le fichier à ce message car l'auteur ne maintient pas l'outil et on le trouve difficilement.

Lance Spark 3. Au démarrage, il te propose de se lancer automatiquement à chaque démarrage de ta machine. Il faut garder cette option.

Tu choisis: Fichier -> Nouveau raccourci -> Applescript
Une fenêtre apparaît:
- configurer un raccourci en cliquant sur "Cliquer pour éditer" (moi j'ai pris pomme f3 par exemple).
- donner un nom à l'action
- copier le texte
Bloc de code:
do shell script "/Applications/cscreen -s 2 -p"
dans la zone de texte
- cliquer sur le bouton "Create"

Le raccourci que tu as choisis te permet de basculer l'écran primaire vers ta sortie tv.
Ensuite, si tu lances FrontRow, il s'affiche sur l'écran externe. Pour revenir sur ton écran primaire, il faut quitter frontrow et appuyer à nouveau sur le même raccourci (Tu peux aussi appuyer une première fois sur le raccourci pour quitter frontrow et rappuyer une seconde fois pour revenir à l'écran primaire).
 
Super !!! :D

Effectivement, cscreen est difficile à trouver. Je le cherchais justement.

Merci beaucoup :up:
 
Voilà j'ai fait tout ce que tu m'as dit.... et ça marce super bien !!

Donc encore merci à toi niko :up:
 
En fait, c'est pas le script qui définit le fait que ce soit le clavier ou la télécommande.

Dans la solution que j'ai proposé, c'est un logiciel qui permet de créer des raccourcis pour lesquels on peut associer un script.

De la même manière, si tu installes un logiciel qui permet de gérer la télécommande et déclencher des scripts, tu pourras faire ça. J'avais configuré une wiimote pour lancer ce script avec le logiciel "Remote Buddy". Je vais essayer de tester ça ce week-end avec la télécommande. Mais je ne crois pas que le RemoteBuddy gère 2 boutons en simultané.
 
Ca fonctionne très bien avec Remote Buddy. Par contre, tu ne pourras pas gérer une combinaison de boutons sur la télécommande.

L'idée est de pouvoir modifier l'écran primaire en appuyant sur un bouton de la télécommande avant d'utiliser front row (qui nécessite tous les boutons pour fonctionner)

Pour infos, Remote Buddy est payant mais pour 10$, ça vaut franchement le coup.

Commence par installer cscreen comme indiqué dans un de mes messages plus haut.

Pour Remote Buddy, une fois installé (j'ai choisi le mode d'installation en kernel extension, tu comprendras si tu l'installes) et lancé, va dans les preferences (en cliquant sur l'icône de Remote Buddy en haut à droite tu auras accès aux préférences dans le menu).

Clique sur "Behaviors" et décoche toutes les applis sauf "Default Behavior"
Sélectionne "Default Behavior"
Dans la liste des Boutons/Action, dans la section Apple Remote, sélectionne "Play/Pause"
Dans la colonne "Perform action", tu as la possibilité de choisir pour chaque "Bouton", l'action qui sera déclenchée en cliquant sur les petites flèches à droite.

Pour le bouton "Play/Pause" sélectionne l'action "Custom Actions..."

Dans la fenêtre qui s'est ouverte, clique sur le + en bas à gauche pour créer une nouvelle action et renseigne l'action comme suit:
- Name of the action : Switch primary Display
- Actors to run within Action: clique sur le + en bas de la liste pour ajouter un AppleScript
- dans la partie Sourcecode copie le script
Bloc de code:
do shell script "/Applications/cscreen -s 2 -p"
compile pour vérifier que ça fonctionne
- Execute on : button press
- Clique sur le bouton "Use" en bas pour enregistrer l'action

Ferme la fenêtre de Remote Buddy et c'est ok normalement.

Si tu cliques sur bouton "Play" de la télécommande, l'écran primaire bascule sur la sortie tv. En recliquant sur le même bouton, l'écran revient sur l'écran du mac. L'action ne fonctionnera pas si FrontRow est lancé, le principe est donc de basculer l'écran avant de lancer FrontRow, et pour revenir à ta config normal, tu quite d'abord FrontRow et ensuite tu cliques sur le bouton play pour que l'écran primaire revienne sur l'écran du mac.
 
Cette solution marche très bien chez moi, le seul problème c'est que quand je lance front row sur ma télé, mon macbook affiche un écran noir, donc impossible de continuer à travailler dessus...

Quelqu'un à rencontré ce problème? (et trouvé une solution!??)
 
J'ai le même problème que Brunjaa, l'écran interne est inutilisable car tout noir, par contre front row est bien sur l'écran externe mais a ce moment là, aucun avantage par rapport à la recope vidéo. Une idée?
 
J'ai le même problème que Brunjaa, l'écran interne est inutilisable car tout noir, par contre front row est bien sur l'écran externe mais a ce moment là, aucun avantage par rapport à la recope vidéo. Une idée?

Est-ce qu'il s'agit aussi d'un macbook?

Pour le moment, j'ai pas trop d'idée, mais s'il s'agit de la même machine qui pose problème, ça pourrait donner une piste.
 
Est-ce qu'il s'agit aussi d'un macbook?

Pour le moment, j'ai pas trop d'idée, mais s'il s'agit de la même machine qui pose problème, ça pourrait donner une piste.

oui un macbook premiére génération 2ghz, superdrive 512RAM (beu euh euh)
avec tiger 10.4.10 et toutes les mises à jour
Est ce que ça touche que les macbook?
 
Bonjour,

tout d'abord merci pour cette solution fonctionelle niko34, je ralais de ne pas pouvoir lancer frontrow sur l'écran externe depuis un petit moment :)

Dans la catégorie "toujours plus":
Lorsque l'écran principal est interverti, la disposition des écrans est "perdu".

Y a-t-il d'autres paramètres que l'on peut passer à cscreen afin de définir une disposition pour les écrans?
 
Salut :)

cscreen ne permet pas d'intervenir sur la disposition des écrans. Chaque fois qu'on l'utilise pour changer l'écran primaire il réorganise la disposition pour que l'écran primaire soit le premier (en terme de disposition).

L'inconvénient, c'est effectivement que tu perds ta disposition. L'avantage, et je pense que c'est pour cette raison que l'auteur de cscreen a choisi cette option, c'est que du coup l'écran primaire est toujours le 1er en terme de disposition et l'autre écran est donc toujours en 2ème position. Du coup avec le script que j'ai indiqué plus haut, tu fais passer le 2ème écran en écran primaire et pour récupérer ton écran tu peux utiliser le même script (faire passer le 2ème écran en écran primaire). Si la disposition n'avait pas été modifié, il faudrait 2 scripts : "faire passer le 2ème écran en écran principal", et "faire passer le 1er écran en écran principal". Du coup, il faudrait 2 raccourcis clavier ou 2 boutons de télécommande programmés. C'est moins pratique.

J'ai peut-être une piste mais pas avec cscreen, je te tiens au courant ;)
 
Effectivement, s'il n'y a pas de moyen pour détecter si un écran est interne ou externe ... cette solution facilite la vie.

Si pour déterminer l'écran qui doit être le principal, on se basait sur celui qui a la plus haute résolution (généralement l'écran externe), on n'aurait pas besoin de toucher à la disposition.

Peux-tu m'en dire plus sur ta "piste"?
 
Le problème c'est que pour déterminer l'écran primaire, cscreen utilise justement la disposition. L'écran positionné aux coordonnées 0,0 devient l'écran primaire. C'est ce qui est indiqué comme solution aux développeurs dans les services d'affichage Quartz.

Ma "piste", c'est d'essayer de développer quelque chose avec xcode. J'arrive à obtenir le même comportement que cscreen, avec une petite différence. Lorsqu'on intervertit les écrans avec cscreen, il place l'écran primaire à gauche dans la disposition. Quand on inverse à nouveau, l'écran secondaire reste à gauche. Avec ce que je teste, l'écran primaire est toujours celui de gauche. Ceci dit, ma solution est aussi basée sur des modifications de disposition, donc ça ne résoud pas ton problème.

Même en détectant la résolution des écrans (ça c'est assez facile), j'ai toujours le même problème : devoir toucher à la disposition pour changer l'écran primaire.

Je cherche une solution pour déplacer la barre de menu pour changer l'écran primaire sans changer la disposition comme on peut le faire dans l'onglet 'disposition' de la configuration des moniteurs. Ce doit bien être possible puisqu'Apple le fait, mais pour le moment je ne trouve aucune documentation la dessus. Je continue mes recherches...
 
Je n'ai rien trouvé pour développer un outil qui pourrait déplacer la barre de menu. C'est une partie non accessible du système (c'est ce qu'on m'a répondu sur cocoadev.com). Le seul moyen est d'utiliser la disposition des écrans.

J'ai quand même fait un petit outil pour remplacer cscreen, en espérant que ça résolve les soucis de ceux qui ont des macbook.

Le principe d'utilisation est le même que cscreen, les messages plus haut restent donc valides.

Il suffit de mettre xdisplay au même endroit que cscreen (dans les exemples plus haut, c'était dans le dossier Applications) et de remplacer

Bloc de code:
do shell script "/Applications/cscreen -s 2 -p"

par

Bloc de code:
do shell script "/Applications/xdisplay -main"