当前位置: 首页>>技术问答>>正文


在多台显示器上使用不同的壁纸(Gnome 2 + Compiz)

, , ,

问题描述

这似乎是一个简单的问题,但我找不到使用Google或Ask Ubuntu的任何令人满意的答案。

所以我有一个triple-monitor设置。基本上我想要的只是在三个显示器的每一个上都有不同的背景。现在我不是在谈论不同的虚拟桌面(也就是工作空间)。我用Google搜索的大部分解决方案都是关于不同工作空间的不同背景。我只有一个工作区,但有三个显示器,如下所示:

gnome,compiz,gnome-classic,ubuntu

显示器1(在顶部)是我的两台普通显示器上方的墙上的大电视。

我在Ubuntu 13.04上使用Gnome 2和Compiz(也就是登录管理器下拉列表中的gnome-session-fallback又名Gnome Classic(带效果))。

我尝试了以下方法尝试为每个监视器设置不同的背景:

  1. ccsm(compiz-config-settings-manager),即通过窗口管理器(Compiz)设置背景。更确切地说,我使用了Compiz的Wallpaper插件。

  2. gnome-control-center,即通过Gnome系统设置设置背景。更确切地说,我在Gnome系统设置中使用了Background面板。

  3. XDG_CURRENT_DESKTOP=Unity gnome-control-center,即通过Gnome系统设置设置背景,但模仿Unity行为。更确切地说,我使用了Gnome系统设置中的外观面板。

但是,这些方法似乎都不能让我为每个监视器选择不同的背景。在每种情况下,我只能为所有三个监视器设置单个背景(或者可能是可以定期循环的几个背景,或用于不同的工作空间)。然后,我通常会选择中心,平铺,裁剪或缩放等选项来控制如何在三个监视器上呈现此单个背景。

到目前为止我使用的解决方法是使用Gimp创建一个”big”背景,该背景包含所有三个监视器的整个虚拟分辨率。基本上,我创建了一个尺寸为3840×2160的大背景图像,其中我在正确的位置粘贴了三个背景。然后我使用上面的可能性(1)或(3)将这个大背景设置为三个监视器的单个背景,并使用span选项跨越所有三个监视器的这个大背景。这会在三个显示器上产生三种不同的背景,前提是三个较小的背景正确放置在大背景图像上(注意:可能性(2)不提供跨度选项)。

然而,这似乎是一个非常糟糕的黑客,可以实现为我的每个监视器设置不同背景这样简单的事情。它也有几个缺点:

  • 当我想改变显示器的布置时(顶部的大电视可以向左或向右滑动,我喜欢使用xrandr或相关的GUI(例如显示器面板)相应地调整显示器位置。 Gnome系统设置,以保持鼠标移动直观),显然上部背景不会随着它应该显示的显示器一起滑动,这意味着我只能看到上部背景的一部分。

  • 大背景在上角有一些灰色区域(死区),当加载大背景时,Compiz或Gnome在登录时无用地加载。

  • 最糟糕的是,当我想改变三个背景中的单个背景时,那么我必须将gimp-edit整个大背景。这是太多的工作,考虑到我只是想改变一个背景(是的,我知道关于Gimp层,但仍然) – 这应该是几次点击并且没有heavy-weight图像处理程序。

第一点意味着这种解决方法并不健全。第二个意味着效率不高。而第三个意味着它是一个痛苦的屁股:)

所以我的问题是:

有没有办法 – 使用Gnome 2或Compiz – 简单告诉系统我想为每个显示器设置不同的背景?这对我来说是合乎逻辑的方法,因为它实际上会告诉系统我的意图是什么。它也会更有效率。

真的,感觉这不是一个不常见的场景。我想很多人都有多台显示器;至少其中一些人宁愿在这些显示器上有不同的背景。因此,没有直接的解决方案是真的,并且用户应该想出可怕的黑客,例如使用heavy-weight程序创建自己的自定义背景,以使其工作?

最佳解决方法

您可以使用nitrogen

要安装它,请在终端中运行以下命令:

sudo apt-get install nitrogen

因为nitrogen在安装时默认没有桌面文件,所以需要从终端运行以下命令来启动它:

nitrogen

如何使用它?

In it’s Preferences, add your wallpaper folder, then at the bottom […] select Screen 1, 2, etc., to set a different wallpaper for each monitor:

nitrogen

To be able to set a different wallpaper for each monitor, you must disable the file manager from handling the desktop. This means you’ll no longer have folders on the desktop.

In GNOME / Unity, install GNOME Tweak Tool:

sudo apt-get install gnome-tweak-tool 

Then open GNOME Tweak Tool and on the Desktop section, set Icons on Desktop (previously Have file manager handle the desktop) to OFF.

And finally, to have the wallpapers restored each time you log in, add the following command:

nitrogen --restore 

to your Startup Applications.

资料来源:UBUNTU MULTI-MONITOR TWEAKS (FULL SCREEN FLASH FIXES, SPAN WALLPAPER ACROSS MONITORS, MORE)

次佳解决方法

webupd8.org看来有2个选项。 (从网站上复制加上我添加的一些额外的东西):

默认的Ubuntu外观设置不允许您跨两个监视器跨越单个大型壁纸或为每个监视器使用不同的壁纸,但是有两个应用程序可用于执行此操作。

  1. 第一个是SyncWall。使用以下命令在Ubuntu中安装它:sudo add-apt-repository ppa:nilarimogard/webupd8
    sudo apt-get update
    sudo apt-get install syncwall
    以下是使用SyncWall后我的桌面的样子:当前功能

    • 调度:您可以按间隔或固定时间在start-up更改壁纸

    • 能够使用/定义系统hot-keys手动更改壁纸。

    • 基本的multi-monitor支持,以便跨屏幕共享壁纸

    • 能够为显示的壁纸添加一些特殊效果(浮雕,边,模糊……)。

    • 能够对图像进行评级以便更频繁地显示它们(如果选择了随机顺序)

    • 几种调整大小的方法和背景填充

    • 通过定义服务器和客户端来更改壁纸的网络同步。显示参数在网络上共享(所有桌面上的调整大小类型相同)

    • 支持的文件:SyncWall使用Qt插件加载图像,因此默认情况下它可以读取基本格式为BMP,PNG,JPG。如果需要,可以使用Bridge插件添加到FreeImage或Devil库中,以添加更多格式。

    • 对于linux平台,支持常见的Windows管理器(Gnome,Gnome3,KDE3,KDE4,XFCE,…)。

  2. 另一个这样的工具是nitrogen,除了能够设置相同的壁纸以扩展显示器之外,它还可以用于为每个监视器设置不同的壁纸。

    氮气在官方Ubuntu存储库中可用,因此要安装它,在Ubuntu软件中心中搜索它或使用以下命令:

     sudo apt-get install nitrogen
    

    氮没有桌面文件,因此从命令行运行它:

    nitrogen
    

    要为每个监视器设置不同的壁纸,必须禁用文件管理器处理桌面。这意味着您将不再拥有桌面上的文件夹。

    在GNOME /Unity中,安装GNOME调整工具:

     sudo apt-get install gnome-tweak-tool
    

    然后打开GNOME Tweak Tool,在”Desktop”部分,将“让文件管理器处理桌面”设置为OFF。

    最后,要在每次登录时恢复壁纸,请在启动应用程序中添加“nitrogen –restore”。

    以下是我的桌面与每个显示器的不同壁纸的外观:

    特征 :

    • Multihead和Xinerama支持。

    • 调用模式通过启动脚本恢复壁纸。

    • 使用freedesktop.org标准缩略图。

    • 可以设置GNOME背景。

    • 脚本使用的命令行设置模式。

    • 对浏览目录进行Inotify监控。

    • 延迟加载缩略图 – 节省内存(1.3中的新增功能)。

    • “Automatic”设置模式 – 确定根据图像大小设置图像的最佳模式。 (1.4中的新内容)。

    • 以平铺图标布局显示预览图像(1.5中的新增内容)。


氮似乎是最好的选择。 Syncwall似乎正在使用你描述的黑客(大图像分成几个显示器。

第三种解决方法

XFCE桌面管理器插件(包含在xubuntu-desktop包中)允许您单独编辑每个显示,同时仍保留桌面上的文件夹。

我的2个桌面的屏幕截图,经理打开:

gnome,compiz,gnome-classic,ubuntu

在黄色框中,它显示“将此对话框移动到要编辑设置的显示”。

对不起,我无法提供有关如何安装它的说明,也没有实际插件的调用(我试图找到它,但决定将re-install改为整个包装) – 但希望这会引导您或有人在正确的轨道上,这个答案可以通过编辑得到改善。

第四种方法

我很高兴看到实际上有一个Gnome /Unity答案。

也就是说,我仍然觉得转换到KDE可能会提供更加一致的体验。

KDE的本机设置管理器不仅允许跨多个监视器的多个壁纸,它允许为每个虚拟桌面和活动设置不同的壁纸。 (Activity类似于包含虚拟桌面的虚拟桌面,可配置为具有不同的设置,例如在一个活动中静止5分钟后的screen-saver,但切换到另一个活动时没有超时,例如演示文稿或电影。)

此外,它可以即时处理显示器的加法和减法(通过插拔HDMI)!

参考资料

本文由Ubuntu问答整理, 博文地址: https://ubuntuqa.com/article/2103.html,未经允许,请勿转载。