Linux中的多屏墙纸?


8

如何在Linux中以自动方式为多台监视器设置墙纸?

基本上,我通常的工作方式是打开GIMP,然后获取几张图像,然后将其合成为单个大图像,该图像将覆盖所有显示器。这种方法有效,但是可能很耗时,所以我想知道是否存在可以解决此问题的应用程序吗?

我会感兴趣的一些功能:

  1. 例如,可以调整单个图像的大小以覆盖两个监视器。
  2. 调整图像大小的其他方法,例如保持宽高比
  3. 将多于一个的图像合成在一起,以便一个屏幕显示一个图像,另一屏幕显示另一个图像
  4. 我正在使用xinerama(真的是Nvidia Twinview)
  5. 可以对图像进行一些基本修改,例如:

    • 裁剪一张或另一张图像,以使整个图像充满整个屏幕
    • 能够移动图像以使其对齐
    • 能够分别缩放每个图像会很好

我做了一些搜索,总的来说,我发现的是:

  1. 单张图片作为壁纸在两个屏幕上伸展
  2. 两张图片,每个屏幕一张,但无法修改图片/等
  3. 加上其他几个,但基本上我发现大多数不能在每个桌面上使用一个图像的多个图像,并且不能单独修改每个图像以适合/在该屏幕上使用,并且也无法在跨整个屏幕或多个图像拉伸的单个图像之间切换。

我以为Xinerama与Twinview不兼容。至少不是在我的计算机上。您是否确实以某种方式使用了它们?另外,您使用什么桌面环境?(KDE 3?4?Gnome?等)
David Z

我的理解是Twinview“模拟”了一些Xinerama控件,因此应用程序将不会完全最大化2+交叉屏幕,等等。。。 pythonbar + Conky。目前正在使用feh设置我的壁纸。
法郎

Answers:


4

“氮气”工具可能完全满足您的需求。运行该工具时,首先添加一个或多个包含图像的目录,然后以所需的方式设置背景,包括在两个屏幕上设置不同的图像。

现在,氮气将此信息存储在.config / nitrogen / bg-saved.cfg中

您可以使用'nitrogen --restore'恢复保存的设置,但是当然,您也可以先更改该文件,然后再调用氮气。


3

这是一个旧线程,但由于feh未得到正确演示,因此我不得不这样做。氮气的问题在于,一旦拥有多台显示器,就无法自动将图像适合每个屏幕的方式。

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

将使图像适合您的背景,而不会失去宽高比。如果放置两个文件,则第一个进入第一个监视器,另一个进入第二个监视器,如下所示:

$ feh --bg-center imagePathForFirstMonitor imagePathForSecondMonitor

您还可以通过使用-z选项和*作为文件夹内容,将选择的图像随机化,如下所示:

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

feh既是一个图像查看器,又有很多其他选项,您可以通过man feh下面的内容来探索或阅读这些内容。

资料来源:

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

https://feh.finalrewind.org/


如何获取监视文件的路径列表?
user3598726

抱歉,我将对其进行编辑,它应该是每个监视器的图像路径。因此,您只需放置图像位置
Ege

2

我不知道这样的应用程序,但是您可以编写一个脚本,使用ImageMagick来执行所需的操作,以编辑/合成图像并feh设置墙纸。例如,以下ImageMagickmontage命令:

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

在将每个输入的大小调整为1080px高后a.jpg,将组成文件,b.jpg并将其c.jpg合并为一个图像(out.jpg)。

希望这会有所帮助,至少在您找到更好的解决方案之前。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.