我可以在 Awesome WM 中为不同的工作区(标签)设置不同的背景吗?

我可以在 Awesome WM 中为不同的工作区(标签)设置不同的背景吗?

我希望能够在 Awesome WM 中为不同的选项卡设置不同的背景。有办法吗?

答案1

您可以在 ~/.config/awesome/rc.lua 文件中添加一些代码,这样每当您更改标签时,桌面壁纸都会更改。从技术上讲,它会将壁纸设置为您最近选择的标签(在 awesome 中,您可以同时选择多个标签)。

如果您还没有该文件,请将系统范围的 awesome 配置文件复制到该位置:

$ mkdir -p ~/.config/awesome
$ cp /etc/xdg/awesome/rc.lua ~/.config/awesome

在我的 Ubuntu 11.10 中的 rc.lua 中,有一个创建标签的部分,其标签如下:

-- {{{ Tags
-- {{{ Define a tag table which hold all screen tags.
[... code that creates default tags ...]
-- }}}

在该部分之后,我添加了以下代码:

-- {{{ Tag Wallpapers
for s = 1, screen.count() do
    for t = 1, 9 do
        tags[s][t]:add_signal("property::selected", function (tag)
            if not tag.selected then return end
            wallpaper_cmd = "awsetbg /home/user/Pictures/wallpaper" .. t .. ".png"
            awful.util.spawn(wallpaper_cmd)
        end)
    end
end
-- }}}

将“/home/user/Pictures”替换为您要存储壁纸的位置。它将使用文件“wallpaper1.png”作为第一个标签,“wallpaper2.png”作为第二个标签,依此类推。请注意,这假设您有 9 个标签。如果您有其他数字,请调整内部 for 循环。


awsetbg 要求您安装一些能够更改壁纸的程序。例如,“feh”或“imagemagick”软件包。您可以在 awsetbg 脚本 (/usr/bin/awsetbg) 中找到受支持的程序列表:

wpsetters="${wpsetters:=Esetroot habak feh hsetroot chbg fvwm-root imlibsetroot display qiv xv xsri xli xsetbg wmsetbg xsetroot}"

我的 Ubuntu 默认安装的唯一程序是 xsetroot,但我认为该程序仅支持位图图像。我安装了 imagemagick(提供“display”命令),因此它可以处理您能想到的大多数格式。;)


如果您使用的是 gnome/awesome 混合桌面(使用 gnome 和 awesome 作为窗口管理器)并且没有禁用 nautilus 的桌面管理,则可能必须使用 gnome 方法设置壁纸,而不是 awsetbg。这是因为 nautilus 管理桌面并可能覆盖您的设置。对于 11.10,您可以将 awsetbg 命令更改为:

gsettings set org.gnome.desktop.background picture-uri file:///home/user/Pictures/wallpaper1.png

gsettings 是新方法,对于旧版本的 Ubuntu(不确定它多久前发生了变化),您应该使用 gconftool-2:

gconftool-2 --set /desktop/gnome/background/picture_filename --type string file:///home/user/Pictures/wallpaper1.png

相关内容