#1 Le 28/01/2015, à 07:01
- arcane17
Script pour ajouter un écran virtuel non connecté à un écran "réel"
A) L'hypothèse :
- Vous avez un pc multimédia connecté à votre télévision que vous contrôlez, par exemple depuis votre fauteuil, par un autre pc ou par une tablette, en utilisant le "Partage de bureau".
- Vous souhaitez travailler sur ce pc multimédia (ex: classer votre médiathèque, préparer une liste de lecture, etc.) tout en regardant un film sur l'écran de télévision.
Vous avez donc besoin d'une configuration "Dual screen" sur le pc multimédia :
- Un écran sert afficher le film sur la télévision,.
- L'autre écran qui au départ affiche le bureau est contrôlé par le pc distant par le biais du "partage de bureau" et permet le lancement de programmes sans interrompre le film.
Problème : vous n'avez qu'un seul écran, votre télévision, connecté sur le pc multimédia
"Affichage" et donc "Partage de bureau" ne propose que ce seul écran. Vous êtes obligé d'interrompre le film pour travailler sur le pc mutlimédia.
Solution : créer un écran virtuel.
- l'écran "physique" connecté à l'ordinateur - la télévision - affiche le film,
- l'écran "virtuel" affiche le bureau sur lequel vous travaillerez.
(Vous contrôlerez les deux écrans à distance par "Partage de bureau Gnome", "vnc", "xvnc" "ultra vnc", etc.).
B) Voici les instructions et le script :
1) Vérifier les paramètres de votre carte graphique
Commande : xrandr -q
ex (dans mon cas) :
Screen 0: minimum 320 x 200, current 3840 x 1080, maximum 32767 x 32767
VGA1 disconnected (normal left inverted right x axis y axis)
DP1 disconnected (normal left inverted right x axis y axis)
HDMI1 disconnected (normal left inverted right x axis y axis)
DP2 disconnected (normal left inverted right x axis y axis)
HDMI2 disconnected (normal left inverted right x axis y axis)
HDMI3 connected primary 1920x1080+1920+0 (normal left inverted right x axis y axis) 1152mm x 648mm
1920x1080 50.0*+ 60.0 59.9
1920x1080i 60.1 50.0 60.0
1280x720 60.0 50.0 59.9
1440x576i 50.1
1440x480i 60.1 60.1
720x576 50.0
720x480 60.0 59.9
640x480 60.0 59.9
VIRTUAL1 disconnected (normal left inverted right x axis y axis)
1a) OPTIONNEL
Si le device VIRTUAL1 n'existe pas, il faut l'ajouter.
Créez le fichier de configuration "20-intel.conf"
sudo vi /usr/share/X11/xorg.conf.d/20-intel.conf
Ajoutez les information de configuration dans ce fichier :
Section "Device"
Identifier "intelgpu0"
Driver "intel"
Option "VirtualHeads" "2"
EndSection
Ces instructions commandent au GPU intel de créer deux écrans virtuels.
(On peut ajouter autant d'écran virtuels que l'on veut).
Se déconnecter (logout) puis se reconnecter (login), la commande xrandr -q doit afficher les écrans VIRTUAL1 et VIRTUAL2.
(solution reprise de https://unix.stackexchange.com/question … ut-to-xorg)
2) Rédaction du script VirtualScreen.sh
Recopier le script "VirtualScreen.sh" ci-dessous en l'adaptant aux paramètres de votre carte graphique que vous avez obtenus (exemple ci-dessus).
Notamment veiller à ce que l'addition des différents écrans ne dépasse pas la valeur "maximum" obtenu par xrandr -q (dans notre exemple : 32767 x 32767)
Proposition de script :
#!/bin/bash
gtf 1920 1080 59.9
xrandr --newmode "1920x1080_59.90" 172.51 1920 2040 2248 2576 1080 1081 1084 1118 -HSync +Vsync
xrandr --addmode VIRTUAL1 1920x1080_59.90
xrandr --output VIRTUAL1 --left-of HDMI3
3) Placer le script dans :
/home/<USER>/.local/share/nautilus/scripts/VirtualScreen.sh
4) Ne pas oublier d'autoriser l'exécution du script dans
Nautilus / Fichier "VirtualScreen.sh", clique gauche, Propriété / Permissions : "cocher la case autoriser l'exécution du fichier comme un programme"
5) Pour lancer ce script
Procédure habituelle avec Nautilus :
Cliquer gauche sur n'importe quel fichier, choisir "Scripts", et cliquer sur "VirtualScreen.sh".
6) Utilisation
L'écran virtuel est à gauche de l'écran connecté à la télévision (en raison de l'instruction du script : "xrandr --output VIRTUAL1 --left-of HDMI3").
Dans la fenêtre "Partage de bureau Gnome" du pc qui commande à distance le pc multimédia,
- si vous déplacez la souris au delà du bord droit, la fenêtre bascule et affiche l'écran de télévision,
- si vous déplacez la souris au delà du bord gauche, la fenêtre bascule et affiche le bureau virtuel.
7) Pour lancer ce script au démarrage,
Lancer l'utilitaire "Applications au démarrage"
Ajouter
Nom: VirtualScreen
Commande : /home/<USER>/.local/share/nautilus/scripts/VirtualScreen.sh
C) Références
Script créé sous ubuntu 16.04 et testé avec succès sous ubuntu 18.04 LTS
Mots clés : écran virtuel, virtual screen, partage de bureau, Gnome, desktop sharing, bureau à distance, vnc, ultra vnc, vino, ultra vnc, xvnc
Dernière modification par arcane17 (Le 31/08/2018, à 04:32)
Son : **Triangle**, Audio Analogue, Atoll, Focal, Teac, HRT, Advance Acoustic
Hors ligne
#2 Le 28/09/2016, à 19:40
- arcane17
Re : Script pour ajouter un écran virtuel non connecté à un écran "réel"
Autre exemple de script, à partir d'une installation plus récente (Ubuntu 16.04).
Toujours le même principe, suivre la procédure ci-dessus :
Et ci-dessous proposition de script adapté à mon nouveau matériel, écran Ecran OLED 4K LG 55ef950v + lspci :
[code]~$ lspci
00:00.0 Host bridge: Intel Corporation 4th Gen Core Processor DRAM Controller (rev 06)
00:02.0 VGA compatible controller: Intel Corporation Xeon E3-1200 v3/4th Gen Core Processor Integrated Graphics Controller (rev 06)
00:03.0 Audio device: Intel Corporation Xeon E3-1200 v3/4th Gen Core Processor HD Audio Controller (rev 06)
00:14.0 USB controller: Intel Corporation 8 Series/C220 Series Chipset Family USB xHCI (rev 05)
00:16.0 Communication controller: Intel Corporation 8 Series/C220 Series Chipset Family MEI Controller #1 (rev 04)
00:1a.0 USB controller: Intel Corporation 8 Series/C220 Series Chipset Family USB EHCI #2 (rev 05)
00:1b.0 Audio device: Intel Corporation 8 Series/C220 Series Chipset High Definition Audio Controller (rev 05)
00:1c.0 PCI bridge: Intel Corporation 8 Series/C220 Series Chipset Family PCI Express Root Port #1 (rev d5)
00:1c.3 PCI bridge: Intel Corporation 8 Series/C220 Series Chipset Family PCI Express Root Port #4 (rev d5)
00:1c.4 PCI bridge: Intel Corporation 8 Series/C220 Series Chipset Family PCI Express Root Port #5 (rev d5)
00:1c.5 PCI bridge: Intel Corporation 8 Series/C220 Series Chipset Family PCI Express Root Port #6 (rev d5)
00:1d.0 USB controller: Intel Corporation 8 Series/C220 Series Chipset Family USB EHCI #1 (rev 05)
00:1f.0 ISA bridge: Intel Corporation H87 Express LPC Controller (rev 05)
00:1f.2 SATA controller: Intel Corporation 8 Series/C220 Series Chipset Family 6-port SATA Controller 1 [AHCI mode] (rev 05)
00:1f.3 SMBus: Intel Corporation 8 Series/C220 Series Chipset Family SMBus Controller (rev 05)
02:00.0 Ethernet controller: Realtek Semiconductor Co., Ltd. RTL8111/8168/8411 PCI Express Gigabit Ethernet Controller (rev 07)
03:00.0 Ethernet controller: Realtek Semiconductor Co., Ltd. RTL8111/8168/8411 PCI Express Gigabit Ethernet Controller (rev 07)
04:00.0 Network controller: Intel Corporation Wireless 3160 (rev 83)
:~$ [/code]
Résultat de la commande xrandr -q :
[code]:~$ xrandr -q
Screen 0: minimum 8 x 8, current 3840 x 1080, maximum 32767 x 32767
DP1 disconnected (normal left inverted right x axis y axis)
DP2 disconnected (normal left inverted right x axis y axis)
HDMI1 disconnected (normal left inverted right x axis y axis)
HDMI2 disconnected (normal left inverted right x axis y axis)
HDMI3 connected 1920x1080+0+0 (normal left inverted right x axis y axis) 1600mm x 900mm
4096x2160 24.00 23.98
3840x2160 30.00 25.00 24.00 29.97 23.98
1920x1080 60.00* 50.00 59.94 30.00 25.00 24.00 29.97 23.98
1920x1080i 60.00 50.00 59.94
1280x1024 60.02
1360x768 60.02
1152x864 59.97
1280x720 60.00 50.00 59.94
1024x768 60.00
800x600 60.32
720x576 50.00
720x576i 50.00
720x480 60.00 59.94 [/code]
640x480 60.00 59.94
720x400 70.08
VGA1 disconnected (normal left inverted right x axis y axis)
VIRTUAL1 disconnected (normal left inverted right x axis y axis)
:~$
Nouvelle proposition de Script :
#!/bin/bash
gtf 1920 1080 60
xrandr --newmode "1920x1080_60.00" 172.80 1920 2040 2248 2576 1080 1081 1084 1118 -HSync +Vsync
xrandr --addmode VIRTUAL1 1920x1080_60.00
xrandr --output VIRTUAL1 --right-of HDMI3
Son : **Triangle**, Audio Analogue, Atoll, Focal, Teac, HRT, Advance Acoustic
Hors ligne
#3 Le 27/12/2017, à 12:39
- kholo
Re : Script pour ajouter un écran virtuel non connecté à un écran "réel"
re salut,
cool, je l'avais pas vu passer celle là...
NB : je ne m'acharne pas, j'ai juste fait le tour des trucs que tu as posté sur le forum
l'idée est bonne, ... autant qu'inutile...
ssh est ton ami et sftp aussi
... et plus besoin d'un écran virtuel
mais, juste pour la création de cet écran, je fais remonter le fil !
ce que je n'aime pas est l'usage du bureau à distance...
dans le contexte, c'est très Windozien !
ensuite tu parles de PC multimedia... un HTPC ?
tu peux utiliser kodi pour simplifier et éviter toutes ces prises de tête
... et plus besoin d'un écran virtuel (re - je sais !)
sinon, pour améliorer :
dommage de ne pas mettre les balises code pour tous les codes, ça gâche la lecture
utiliser les nautilus scripts pour lancer un script est inutile :
on crée un dossier bin dans le dossier perso (il sera automatiquement ajouté au PATH à la connexion suivante)
mkdir $HOME/bin
puis tu y mets ton script
> $HOME/bin/VirtualScreen ;
les droits d’exécution :
chmod +x $HOME/bin/VirtualScreen ;
(pas besoin du sh qui est optionnel ! )
et tu édites et tu colles le script dedans :
gedit $HOME/bin/VirtualScreen
A partir de la connexion suivante, tu pourras lancer le script avec cet utilisateur depuis n'importe où sans avoir à mettre de chemin :
VirtualScreen
suivant :
/home/<USER>/
peut être remplacé par $HOME
si tu tapes
echo $HOME
tu comprendras le pourquoi du comment
... par contre je crois que le chemin réel est obligatoire pour le programme "démarrage"
mais il y a un bouton "parcourir" pour simplifier !
... et tu peux créer un .desktop dans l'autostart (dossier des programmes lancés automatiquement de chaque utilisateur) de l'utilisateur (voir après)
et si tu veux conserver ta technique du clic droit avec nautilus pour lancer le script :
il suffit de créer un lien entre le script et le dossiers des nautilus-scripts
ln -s $HOME/bin/VirtualScreen $HOME/.local/share/nautilus/scripts/VirtualScreen
mais il existe d'autres moyens pour lancer un script en mode graphique (un raccourcis à l'arrache par exemple !)
ou en créant un fichier .desktop sur le bureau
en 1 seul copier coller !
echo "[Desktop Entry]
Type=Application
Encoding=UTF-8
Name=VirtualScreen
Comment=script pour créer un écran virtuel
Exec=$HOME/bin/VirtualScreen
Icon=$HOME/Images/VirtualScreen.png
Terminal=true" > $HOME/Bureau/VirtualScreen.desktop
puis
chmod +x $HOME/Bureau/VirtualScreen.desktop
NB : tu peux te créer une icône sur mesure à mettre et à adapter :
Icon=$HOME/Images/VirtualScreen.png
PS : tu remplaceras $HOME/Bureau/VirtualScreen.desktop par $HOME/.config/autostart/
pour créer le lancement automatique sans passer par le GUI !
Hors ligne
#4 Le 27/12/2017, à 22:12
- arcane17
Re : Script pour ajouter un écran virtuel non connecté à un écran "réel"
Au contraire, toute correction, amélioration, ou autre point de vue est bien venu. Et merci pour les remarques sur l'affichage des scripts (balises etc.) je m'y conformerai, si j'ai bien compris. Pour Khodi, ssh ou sftp, je suis preneur, mais si l'on me donnes un mode détaillé d'installation et de fonctionnement. Sinon, j'ai des doutes sur le fait d'obtenir les mêmes résultats. Attention : mon cahier des charges est exigeant, si la config que je propose permet de prendre simplement le contrôle d'un pc dédié multimédia, relié par exemple à la télé et à la hifi, elle peut piloter une config très évoluée, comme dans mon cas : j'ai 4 cartes sons sur le laptop multimédia, je reproduis la musique en lossless et mode bitperfect, une télévision OLED ("noir infini") 4K mode truemovie, et un serveur comprenant des centaines de milliers de morceaux de musique lossless et de films 2K (en attendant le 4K) etc. Bref, il ne s'agit pas ici d'envoyer sur sa télé depuis son smartphone des photos de vacances ou un clip de youtube par le biais de Miracast (même si c'est sympa aussi).
Dernière modification par arcane17 (Le 27/12/2017, à 22:20)
Son : **Triangle**, Audio Analogue, Atoll, Focal, Teac, HRT, Advance Acoustic
Hors ligne
#5 Le 28/12/2017, à 11:31
- kholo
Re : Script pour ajouter un écran virtuel non connecté à un écran "réel"
cooool... du bon matos !
le mélange TV + PC est toujours en voie de normalisation...
par exemple avec un raspberry pi on peut utiliser la télécommande de la TV pour piloter le logiciel (kodi aka xbmc)... mais selon le PC (ou carte graphique), pas sûr d'avoir le CEC.
tout ça pour dire que ce qui marche pour Pierre n'est peut être pas applicable à Paul.
pour les infos, je t'invite à rechercher dans mes posts tout ce qui touche au réseau... mon niveau n'est pas d’excellence et, donc, je suis simple à suivre
copier / coller de mon dernier post :
... tu peux regarder dans mes fils, tu trouveras ton bonheur
le dernier post dans lequel j'en parle
un fil central : [tuto]post-installation Ubuntu 16.04 : le PC à kiki (+vidéo) (voir la partie réseau)
pour kodi (aka xbmc), suivre la doc
Hors ligne