Con la mia Mint 17.3 MATE (per ora) vorrei poter aprire un video con VLC, e trasferirlo in fullscreen al proiettore, che Mint vede come 2° monitor.
In Windows non c'ere problema, Win7 ci pensava lui, e con XP avevo una sk nvidia con dei driver che ti facevano pure il caffe'. Ma coll'attuale Pc con scheda integrata nel proc Intel e Linux non si sono riuscito. Vorrei poterlo fare da riga di comando, in modo da inserirlo in un file .sh che vorrei funzionasse cosi': click dx su file video, apri con Vlc in fullscreen su monitor2.
Da quel che ho letto si dovrebbe poter fare, ma la mia ignoranza mi impedisce di realizzarlo.
Qualcuno sa farlo?
Grazie
Con il Pc e' come con i bambini, ci vuole pazienza, ed un po' di modestia.
Benritrovato CUB3 e grazie per la tua risposta e per il tuo complimento. In realta' c'e' parecchia gente che si pone il mio quesito: quasi tutti i possessori di un videoproiettore! Tra i linuxiani, ovviamente, tra i quali sono entrato a far parte da qualche mese, fresco fresco, ed un po' frescone.
Il tuo script ha dato il seguente risultato:
dan@dan ~ $ DISPLAY=:0.1 vlc -f /mnt/Dati/Video/Film/Papillon.mp4
VLC media player 2.1.6 Rincewind (revision 2.1.6-0-gea01d28)
[0xc18468] main interface error: no suitable interface module
[0xbec118] main libvlc error: interface "globalhotkeys,none" initialization failed
[0xbec118] main libvlc: Esecuzione di vlc con l'interfaccia predefinita. Usa 'cvlc' per utilizzare vlc senza interfaccia.
[0xc21ea8] qt4 interface error: Could not connect to X server
[0xc21ea8] skins2 interface error: cannot initialize OSFactory
[0xc21ea8] [cli] lua interface: Listening on host "*console".
VLC media player 2.1.6 Rincewind
Command Line Interface initialized. Type `help' for help.
> Fontconfig warning: FcPattern object size does not accept value "0"
Fontconfig warning: FcPattern object size does not accept value "0"
[0x7fbb94001248] xcb_xv vout display error: window not available
[0x7fbb94001248] xcb_glx vout display error: window not available
[0x7fbb94001248] xcb_x11 vout display error: window not available
commandline read: vlc
commandline read: -f
commandline read: /mnt/Dati/Video/Film/Papillon.mp4
~~~~~~~~~~~~~~~~~~~~~~~~~~| DirectFB 1.2.10 |~~~~~~~~~~~~~~~~~~~~~~~~~~
(c) 2001-2008 The world wide DirectFB Open Source Community
(c) 2000-2004 Convergence (integrated media) GmbH
----------------------------------------------------------------
(*) DirectFB/Core: Single Application Core. (2012-05-21 06:44)
(*) Direct/Memcpy: Using Generic 64bit memcpy()
(!) Direct/Util: opening '/dev/fb0' failed
--> Permesso negato
(!) DirectFB/FBDev: Error opening framebuffer device!
(!) DirectFB/FBDev: Use 'fbdev' option or set FRAMEBUFFER environment variable.
(!) DirectFB/Core: Could not initialize 'system_core' core!
--> Initialization error!
[0x7fbb94001248] directfb vout display error: Cannot create primary surface
[0x7fbb94001248] fb vout display error: cannot get terminal mode (Inappropriate ioctl for device)
[0x7fbb94001248] caca vout display error: cannot initialize libcaca
[0x7fbb98003728] main video output error: video output creation failed
[0x7fbba0109368] main decoder error: failed to create video output
per cui si sentiva solo l'audio, e non si capiva da dove veniva.
Poi io pensavo a qualcosa d'altro: Click destro su Papillon.mp4 -->script.sh --> apri con vlc -f && invia una copia a DISPLAY=:0.1
Cosi' dal monitor 1 mi tengo una finestrella di controllo, e sul VPR lo vedo a fullscreen. Ma questa della copia e' un'opzional.
L'alternativa e' quello che faccio adesso: apro il file, lo trascino col mouse sul 2° monitor & doppioclick per metterlo a fullscreen.
Con il Pc e' come con i bambini, ci vuole pazienza, ed un po' di modestia.
Mi rimane difficile aiutarti questa volta perché non ho modo di provare una configurazione multimonitor, comunque vediamo un po' come procedere.
Se puoi trascinare una finestra da un monitor all'altro, settare la variabile DISPLAY non funziona perché il server grafico X vede tutto come un unico monitor...
Per avere un'idea della tua configurazione, potresti postare l'output di xrandr e il contenuto del file xorg.conf
"Let me tell you a secret: when you hear that the machine is “smart”, what it actually means is that it’s exploitable." Mikko Hypponen
Infatti io ho la configurazione come monitor esteso; nelle mie prove ho a volte usato l'espressione geometry(1680x1050+0+0 ) , ma non ha funzionato, forse perche' usata in contesto sbagliato.Riprovero'
Con il Pc e' come con i bambini, ci vuole pazienza, ed un po' di modestia.
Per la configurazione del monitor esteso ho utilizzato il manager della Mint 17.3 MATE, di serie.
Si, VGA -> proiettore, HDMI -> monitor PC.
L'altro file di configurazione e' Xsession.options :
# $Id: Xsession.options 189 2005-06-11 00:04:27Z branden $
#
# configuration options for /etc/X11/Xsession
# See Xsession.options(5) for an explanation of the available options.
allow-failsafe
allow-user-resources
allow-user-xsession
use-ssh-agent
use-session-dbus
oltre a Xwrapper.config: allowed_users=console i quali sono in /etc/X11; la cartella /etc/X11/xorg.conf.d/ non esiste
Per quell'opzional delle 2 finestre cui ho accennato si risolve con VLC che ha un filtro di clonazione.
Con il Pc e' come con i bambini, ci vuole pazienza, ed un po' di modestia.
Sto provando a risolvere il problema con devilspie, che potrebbe essere risolutivo: pero' non riesco a creare il file di configurazione .ds per VLC. Settato VLC con apri a schermo intero di default, il comando "geometry (800x600+1680+1050)" (dove 800x600 e' la risoluzione del 2° monitor, a destra del 1°, con risoluzione 1680x1050) dovrebbe spostarmelo sul VPR.
Peccato che non funziona, e non riesco a capire dov'e' l'errore.
Con il Pc e' come con i bambini, ci vuole pazienza, ed un po' di modestia.
Ok, ci siamo: mi mancava un dato che era la posizione relativa delle due uscite. In realtà tale dato era rilevabile dall'output di xrandr ma mi era passato
Ho provato in 1000 modi, con virgolette, parentesi, senza, solo un pezzo.... ma niente.
Di mio ho tentato a partire da https://help.ubuntu.com/community/Devilspie, che quasi in fine pagina riporta:How can I find the geometry of currently running applications?
/usr/bin/xwininfo
per cui ho messo VLC a fullscreen su VPR, poi ho dato il comando soprascitto. Il risultato e'
dan@dan ~ $ /usr/bin/xwininfo
xwininfo: Please select the window about which you
would like information by clicking the
mouse in that window.
Ho così confezionato il file VLC.ds dal contenuto: (if (is (application_name) "Lettore multimediale VLC") (begin (geometry 800x600-0+0))). E 1000 altre varianti
L'infame si apre sempre all'angolo sinistro in alto del monitor 1.
Eppure andavo bene in matematica e geometria!!!!
Con il Pc e' come con i bambini, ci vuole pazienza, ed un po' di modestia.
Poiché l'angolo in alto a sinistra rappresenta lo 0, ha coordinate (0,0) e l'angolo in alto a destra avrà coordinate ([1680+800],0).
Con geometry devi impostare una finestra che abbia dimensioni 800x600 (come hai correttamente fatto) e che abbia un offset sull'asse X di +1680 e sull'asse Y +0:
CUB3 ha scritto:Se ho ben capito, la tua configurazione di monitor è la seguente:
Da quel che posso dire, sì hai capito benissimo, la tua figura corrisponde a quella del gestore monitors.
Per quanto mi riguarda, comincio a pensare che l'informatica sia come come la medicina: una scienza inesatta imparentata colla stregoneria.
Sto provando con queste impostazioni:
1- ho settato VLC con video a schermo intero di default;
2- file vlc.ds: (if (is (application_name) "Lettore multimediale VLC") (begin (geometry "797x562-1+0"))) le coordinate cambiano un po' a seconda di quando ho dato /usr/bin/xwininfo (perche', come sai, VLC si apre a fullscreen in vari modi, col comando a menu, doppio click e a volte fa vedere la barra dei menu', e bisogna vedere quale finestra scegli al momento dell'info.)
3- NOVITA': apro devilspie non usando la sua GUI gdevilspie, ma il terminale: ora, qui e' la novita': quando incollo devilspie, il terminale restituisce match e dopo un certo tempo che non sono ancora riuscito a quantificare, FUNZIONA!!! Il film si apre a schermo intero sul VPR
Ho provato anche le tue coordinate: geometry "800x600+1680+0" e FUNZIONA!!! sempre usando il terminale.
Per cui devo pensare che per tutte le volte che ho sbattuto la testa sul desktop devo ringraziare la GUI.
Ora provero' a riaccendere il pc e lasciar passare un po', ma credo propio che abbiamo risolto
Con il Pc e' come con i bambini, ci vuole pazienza, ed un po' di modestia.
dante5351 ha scritto:Per quanto mi riguarda, comincio a pensare che l'informatica sia come come la medicina: una scienza inesatta imparentata colla stregoneria.
a volte viene proprio da pensarlo, soprattuto se incappa in qualche strano bug. Solitamente però, poiché abbiamo a che fare con un strumento che, per quanto complesso, è e rimane un "calcolatore", se il risultano non è quello sperato è perché sono stati immessi dati sbagliati
credo propio che abbiamo risolto
Ottimo
"Let me tell you a secret: when you hear that the machine is “smart”, what it actually means is that it’s exploitable." Mikko Hypponen
In questo caso credo che sia proprio la macchinosita' insita nella situazione: 2 monitor che si incrociano con 3 desktop virtuali; gestione delle finestre che ogni applicazione cerca di avocare a se': ad es la geometria di devilspie serve per stabilire l'area in cui si muove Vlc, il quale pero' si gestisce da solo le sue dimensioni, tanto dell'interfaccia che della finestra di output; inoltre si ricorda delle impostazioni dell'ultima volta, per cui ad es si apre nel VPR anche se devilspie e' spento. Con conseguente difficolta' a fare le prove per capirci qualcosa, che si somma alla mia ignoranza.
A proposito: come ho detto, devilspie va aperto nel terminale, che risponde con match (collegamento, colleganza, appaiamento) che si va a cercare tra i file .ds, e poi deve rimanere aperto nel terminale, senno' salta tutto. Ora io ho impostato lo start di devilspie all'avvio del SO, perche', visto che ci sono, gli faccio gestire anche altre cose. Ma se volessi creare un file .sh che mi avvii il tutto al momento del bisogno, cioe' all'apertura del video, pensi che potrei fare così: creare file.sh da richiamare col tasto dx su video col contenuto: devilspie read && /home/dan/.config/caja/scripts/VLC-VPR.sh dove quest'ultimo sh e' un file di "apri con Vlc"?
Pensi che potrebbe funzionare?
Con il Pc e' come con i bambini, ci vuole pazienza, ed un po' di modestia.
creare file.sh da richiamare col tasto dx su video col contenuto: devilspie read && /home/dan/.config/caja/scripts/VLC-VPR.sh dove quest'ultimo sh e' un file di "apri con Vlc"?
Pensi che potrebbe funzionare?
Se leghi due comandi con "&&" significa che il secondo comando inizia solo quando il primo comando è terminato. Nel tuo caso, se devilspie rimane in esecuzione, il tuo script non verrà mai eseguito. Dovresti unire i due comandi con un solo "&" per far si che i due comandi si avviino contemporaneamente.
"Let me tell you a secret: when you hear that the machine is “smart”, what it actually means is that it’s exploitable." Mikko Hypponen
No, non si devono avviare contemporaneamente. Col terminale funziona cosi': dai devilspie sul terminale, lui risponde match, dopo un po' di secondi apri file .avi con vlc; pero' la sessione di terminale rimane in piedi. Percio ho messo read; avrei dovuto dire spleep 5? Cioe' term--> devilspie spleep 5 & ~/../VLC-VPR.sh ? In questo caso la sessione di terminale rimane in esecuzione?
Con il Pc e' come con i bambini, ci vuole pazienza, ed un po' di modestia.
Se vuoi che lo script prima apra devilspie e poi vlc con il video, allora sì, devi mettere uno sleep seguito da il numero di secondi che ritieni necessario. L'ordine corretto dei comandi sarebbe questo: devilspie & sleep 5 ; ~/../VLC-VPR.sh
Se lanci questo comando dal terminale, questo rimane in esecuzione e se lo chiudi si chiudono devilspie e vlc. Ma se crei uno script con questi comandi da lanciare, per esempio, con il tasto destro del mouse (come hai detto di voler fare), non si aprirà nessun terminale (salvo diverse instruzioni presenti in VLC-VPR.sh.... )
Visto che hai detto di aver messo in esecuzione automatica devilspie, potresti inserire nel tuo script una condizione di controllo: se devilspie è in esecuzione allora apri il video con VLC; altrimenti avvia devilspie, aspetta 5 secondi e poi apri il video con VLC:
devilspie è un demone, quindi agisce sempre, posto che sia in esecuzione. Ad esempio, puoi lanciarlo all'avvio (anche in automatico) e lasciarlo in background, oppure lanciarlo in un terminale e fermarlo quando vuoi. Puoi anche lanciarlo dopo aver aperto vlc. Il fatto di scrivere "match" è un'azione definita nel tuo script che mostra quando ha trovato una corrispondenza.
Detto questo, puoi fare tre cose:
1) lanciare devilspie all'avvio (e lasciarlo sempre in background)
2) lanciare devilspie manualmente (ed eventualmente chiuderlo alla fine)
3) lanciare devilspie nello script in cui apri vlc (ed eventualmente chiuderlo alla fine)
Ogni volta che avvierai vlc, si aprirà sul monitor secondario (il proiettore). Se il monitor secondario non è collegato, si aprirà sul monitor primario.
Però in questo modo devilspie è sempre attivo, cosa che non sempre è desiderabile.
L'opzione 2 è la più semplice: apri un terminale, digiti
#!/bin/bash
PID=`pidof devilspie`
if [ ! $PID ]; then
devilspie -a &
PID=`pidof devilspie`
echo "starting devilspie with pid" $PID
else
PID=''
echo "devilspie is already running"
fi
#vlc -f "$1" &
#~/../VLC-VPR.sh "$1" &
/home/dan/.config/caja/scripts/VLC-VPR.sh "$1" &
if [ $PID ]; then
sleep 5
echo "killing" $PID
kill $PID
fi
Questo script funziona così: se devilspie è già in esecuzione, esegui vlc normalmente. Altrimenti, prima avvia devilspie, poi esegui vlc, e infine chiudi devilspie (che a questo punto non serve più) dopo 5 secondi, lasso di tempo ragionevole per dare il tempo a vlc di avviarsi. Se il tuo computer è più lento, puoi dargli un tempo più lungo.
Grazie ad entrambi per le spiegazioni e l'aiuto.
@ Ganondolf : Io ho deciso per la 1a delle tue ipotesi, che e' la piu' comoda. Pero' ha appunto l'inconveniente che ,se mi serve Vlc non per vedere un film proiettato, ma che so io, per visionare dei clip lavorando al Pc, allora mi tocca killare devilspie e usare Vlc "normalmente"; percio' mi ponevo il problema di come fare.
Alla fine, pur ringraziandovi per i vostri scripts, ho scelto .... la via dell'asino: quella piu' terra terra. Mi installo smplayer, o in alternativa uso totem: cosi' quando voglio vedere un film proiettato uso Vlc (per via dell'impostazione a tutto schermo di default) e l'altro programma per l'uso "normale"; lasciando devilspie in esecuzione automatica.
Perche' c'e' da dire che non credo ci sia modo di mandare a fullscreen un programma nel 2° monitor con devilspie, naturalmente con la mia configurazione. Ho provato ad usare i comandi fullscreen, maximize, e pure geometry, ma non c'e' niente da fare: per lui fullscreen significa sul 1° monitor; e del resto e' pure comprensibile, visto che il 2° e' uno spazio esteso, per giunta piu' piccolo del 1°.
Pertanto di nuovo grazie, ma non rilassatevi, continuero' a scocciarvi coi miei problemi, che' io sono un fenomeno ad inventarmeli.
Con il Pc e' come con i bambini, ci vuole pazienza, ed un po' di modestia.
No. Ed una volta mi ha pure fatto crashare MATE, per cui ho dovuto eliminare il pannello e ricrearlo. Percio' devo avviare proprio Vlc, che dà la possibilità di settare il fullscreen nelle impostazioni. Altrimenti sarebbe facile: basterebbe avviare Totem a fullscreen sul 2° monitor e tenermi Vlc per tutti gli altri usi.
ps che fine ha fatto il tuo post a cui ho risposto?
Con il Pc e' come con i bambini, ci vuole pazienza, ed un po' di modestia.
Inserendo un messaggio, dichiari di aver letto e accettato il regolamento di partecipazione.
Nello specifico, sei consapevole che ti stai assumendo personalmente la totale responsabilità delle tue affermazioni, anche in sede civile e/o penale,
manlevando i gestori di questo sito da ogni coinvolgimento e/o pretesa di rivalsa.
Dichiari inoltre di essere consapevole che il messaggio sarà visibile pubblicamente, accetti di diffonderlo con licenza
CC BY-NC-SA 3.0 (con attribuzione a "TurboLab.it") e rinunci ad ogni forma di compensazione (economica o altro).
Rinunci inoltre esplicitamente a qualsiasi pretesa di cancellazione del messaggio.