Tapeta z wieloma ekranami w systemie Linux?

8

Jak mogę tapetować wiele monitorów w systemie Linux w sposób zautomatyzowany?

Zasadniczo to, jak zwykle to robię, to otwieranie GIMP, a następnie przechwytywanie kilku zdjęć i łączenie ich w jeden duży obraz, który obejmowałby wszystkie monitory. To podejście działa, ale może być czasochłonne, więc zastanawiam się, czy istnieje aplikacja, która mogłaby się tym zająć?

Niektóre funkcje, które mnie zainteresują:

  1. Może zmienić rozmiar pojedynczego obrazu, aby na przykład objąć oba monitory.
  2. Inny sposób zmiany rozmiaru obrazu, taki jak utrzymanie proporcji obrazu lub nie
  3. Złóż więcej niż 1 obraz razem, tak aby jeden ekran wyświetlał jeden obraz, a drugi ekran wyświetlał inny obraz
  4. Używam xinerama (Naprawdę Nvidia Twinview)
  5. Mają możliwość wprowadzenia podstawowych modyfikacji obrazu, takich jak:

    • Przytnij jedno lub drugie zdjęcie, aby cały obraz wypełnił ekran
    • Możliwość przesuwania obrazu, aby można go było wyrównać
    • Byłoby miło móc osobno skalować każdy obraz

Przeszukałem i ogólnie znalazłem:

  1. Pojedynczy obraz jako tapeta rozciągnięta na dwóch ekranach
  2. Dwa obrazy, po jednym dla każdego ekranu, ale brak możliwości modyfikacji obrazu / etc
  3. Kilka innych, ale w zasadzie większość, którą znalazłem, nie była w stanie używać wielu obrazów z jednym obrazem na każdym pulpicie i niezależnie modyfikować każdy obraz, aby dopasować / pracować na tym ekranie, a także nie była w stanie przełączać się między jednym obrazem rozciągniętym na cały ekran lub wieloma obrazami .
Pharaun
źródło
Myślałem, że Xinerama nie jest kompatybilny z Twinview. Przynajmniej nie na moim komputerze. Czy naprawdę używasz ich obu w jakiś sposób? Z jakiego środowiska pulpitu korzystasz? (KDE 3? 4? Gnome? Itp.)
David Z
Zrozumiałem, że Twinview „symuluje” niektóre elementy sterujące Xinerama, dzięki czemu aplikacje będą wiedziały, że nie mogą zmaksymalizować ekranu Cross 2+ itp. Tak naprawdę wcale nie używam środowiska graficznego, teraz moja obecna konfiguracja to po prostu Openbox + pythonbar + Conky. Obecnie używam feh do ustawienia mojej tapety.
Pharaun,

Odpowiedzi:

4

Narzędzie „azot” może robić dokładnie to, czego potrzebujesz. Po uruchomieniu narzędzia najpierw dodajesz jeden lub więcej katalogów zawierających obrazy, a następnie ustawiasz tło tak, jak chcesz, w tym ustawiając różne obrazy na dwóch ekranach.

Teraz azot przechowuje te informacje w .config / azot / bg-save.cfg

Przywracasz zapisaną konfigurację za pomocą „azot --restore”, ale oczywiście możesz również najpierw zmienić ten plik, a następnie wywołać azot.

Jan de Vos
źródło
3

To jest stary wątek, ale widząc, że fehnie zostało to odpowiednio wykazane, czułem się zobowiązany do tego. Problem z azotem polega na tym, że gdy masz wiele monitorów, nie możesz zautomatyzować sposobu dopasowania obrazu do każdego ekranu.

feh --bg-fill ~/Pictures/Wallpapers/MyWallpaper.jpg

dopasuje obraz do tła bez utraty współczynnika kształtu. Jeśli umieścisz dwa pliki, pierwszy przejdzie do pierwszego monitora, drugi do drugiego, w następujący sposób:

$ feh --bg-center imagePathForFirstMonitor imagePathForSecondMonitor

Możesz również losowo wybrać wybrany obraz, używając opcji -z i * dla zawartości folderu, w następujący sposób:

feh --bg-fill -z ~/Pictures/Wallpapers/*
# This command puts a random image for each monitor you have

fehjest jednocześnie przeglądarką obrazów i ma mnóstwo innych opcji, które możesz zbadać, man fehczytając poniższe źródła.

Źródła:

https://wiki.archlinux.org/index.php/feh

https://feh.finalrewind.org/

Ege
źródło
Jak mogę uzyskać listę ścieżek do plików mojego monitora?
user3598726
Przepraszam, że go edytuję, powinna to być ścieżka obrazu dla każdego monitora. Więc po prostu umieść lokalizacje obrazu
Ege
2

Nie znam takiej aplikacji, ale możesz napisać skrypt, który zrobi to, co chcesz, używając ImageMagick do edycji / komponowania obrazów i fehustawienia tapety. Na przykład ten ImageMagick „s montagepolecenie:

montage a.jpg b.jpg c.jpg -geometry +0+0 -tile x1 -resize x1080 out.jpg

będą tworzyć pliki a.jpg, b.jpga c.jpgw jeden obraz ( out.jpg) po zmianie rozmiaru każde wejście do 1080px być wysoka.

Mam nadzieję, że to pomoże, przynajmniej dopóki nie znajdziesz lepszego rozwiązania.

Cyrus
źródło