J'ai un ordinateur portable et un moniteur. La plupart du temps, mon ordinateur portable est connecté au moniteur via HDMI. J'utilise Ubuntu Gnome 14.04 et voici ce que je veux:
Est-ce possible? J'ai trouvé cette question ainsi que azote . Mais les deux ne m'ont pas aidé.
Après avoir exécuté gnome-Tweak-tool, allez à l’onglet "Bureau" dans le panneau de gauche, puis désactivez le paramètre "Demander au gestionnaire de fichiers de gérer le bureau".
Source: Forums Ubunt .
Malheureusement, je ne parviens pas à trouver cela dans mon outil Gnome-Tweak:
J'ai essayé de trouver la même configuration en utilisant dconf-editor
sous org.gnome.desktop.background
mais tout ce qu'il a dit était:
Résumé: dessiner un fond d'écran
Description: Demandez à GNOME de dessiner l’arrière-plan du bureau. OBSOLÈTE: cette clé est obsolète et ignorée.
De plus, mon gnome-Shell --version
est GNOME Shell 3.10.4
.
In this Gist est la sortie de xrandr
. Le premier est avec le second moniteur connecté. La seconde est sans elle.
Il semble impossible de définir séparément les fonds d'écran pour l'écran principal et le deuxième écran. Ce que peut être fait est toutefois de définir un fond d’écran et de l’étendre sur deux écrans. Nous pouvons créer automatiquement une image panoramique de deux fonds d'écran de votre choix et (également automatiquement) changer le fond d'écran et les options d'image, selon que le deuxième écran est connecté ou non.
Pour que cela ait l’air agréable, il est nécessaire qu’au moins la résolution d’écran verticale des deux écrans soit identique, ce qui est le cas dans votre cas.
Préparation
Dans cette solution, le travail de préparation que vous devez effectuer est le suivant:
Tout d’abord, installez imagemagick pour créer automatiquement l’image d’extension:
Sudo apt-get install imagemagick
Préparez deux images de fond distinctes de votre choix pour les deux écrans:
appelez-les screen_1.jpeg
et screen_2.jpeg
(exactement ces noms). Un script va créer l'image étendue.
Créez un dossier dans votre répertoire personnel et copiez les deux images dans le dossier.
Copiez le script ci-dessous dans un fichier vide et enregistrez-le sous le nom auto_wall.py
, avec les deux images que vous avez préparées.
Dans la section head du script, il y a une ligne:
screen_check = "HDMI-0 connected"
si nécessaire, remplacez HDMI-0
par <your_second_screenname>
(exécutez la commande xrandr
si nécessaire pour le savoir)
Exécutez le script (et maintenez-le en arrière-plan) à l'aide de la commande suivante:
python3 /path/to/auto_wall.py
Maintenant, si vous connectez votre deuxième écran, le papier peint sur votre deuxième écran devrait basculer dans quelques secondes vers screen_2.jpeg
que vous avez préparé.
#!/usr/bin/env python3
import subprocess
import os
import time
curr_dir = os.path.dirname(os.path.abspath(__file__))
screen_check = "HDMI-0 connected"
single_picture = "'file://"+curr_dir+"/screen_1.jpeg'"
double_picture = "'file://"+curr_dir+"/span_image.jpeg'"
def execute_set(command):
subprocess.call(["/bin/bash", "-c", command])
def execute_get(command):
return subprocess.check_output(["/bin/bash", "-c", command]).decode("utf-8").strip()
def switch_tosingle():
execute_set("gsettings set org.gnome.desktop.background picture-uri "+single_picture)
execute_set("gsettings set org.gnome.desktop.background picture-options zoom")
def switch_todouble():
if not os.path.exists(double_picture):
create_spanimage()
execute_set("gsettings set org.gnome.desktop.background picture-uri "+double_picture)
execute_set("gsettings set org.gnome.desktop.background picture-options spanned")
def create_spanimage():
image_1 = curr_dir+"/"+"screen_1.jpeg"
image_2 = curr_dir+"/"+"screen_2.jpeg"
span_image = curr_dir+"/"+"span_image.jpeg"
execute_set("convert "+image_1+" "+image_2+" "+"+append "+span_image)
def check_ifconnected():
command = "xrandr"
check = execute_get(command)
if screen_check in check:
return True
def check_wallpaper():
check = execute_get("gsettings get org.gnome.desktop.background picture-uri")
if check == single_picture:
return "single"
Elif check == double_picture:
return "double"
def arrange():
test = (check_ifconnected(), check_wallpaper())
if test == (True, "double") or test == (False, "single"):
pass
Elif test[0] == True:
switch_todouble()
else:
switch_tosingle()
while True:
arrange()
time.sleep(5)
Si vous souhaitez modifier le ou les papiers peints, remplacez simplement une ou les deux images que vous avez copiées dans le dossier (en tenant compte de leur nom) et supprimez le span_image.jpeg
créé par le script.
Je l'ai testé sous Ubuntu 14.04 et 14.10, et cela a parfaitement fonctionné. Le fait que vous utilisiez Gnome ne devrait pas faire la différence.
Si, pour une raison quelconque, vous préférez passer manuellement au papier peint étendu après avoir connecté/déconnecté le moniteur externe, vous pouvez remplacer les trois dernières lignes:
while True:
arrange()
time.sleep(5)
par une seule ligne:
arrange()
et ajoutez un raccourci clavier pour effectuer le changement: "Paramètres système"> "Clavier"> "Raccourcis"> "Raccourcis personnalisés"
Ajoutez la commande:
python3 /path/to/auto_wall.py
à une combinaison de touches de votre choix.
En plus de la réponse ci-dessus, vous pouvez joindre deux images de taille exacte en utilisant ce service: http://www.photojoiner.net/
Après avoir joint deux images ou plus, vous devez sélectionner l’option "span" dans la page des paramètres d’arrière-plan.