在i3中使用ImageMagick在URxvt中伪造透明度

在i3中使用ImageMagick在URxvt中伪造透明度,imagemagick,wallpaper,i3,urxvt,Imagemagick,Wallpaper,I3,Urxvt,在i3中设置背景的最流行方式似乎是使用feh,例如: exec_always feh --bg-fill /home/user/Pictures/wallpaper.jpg URxvt.transparent: true URxvt.shading: 50 URxvt.blurRadius: 0 URxvt.background: #d3d3d3 URxvt.foreground: #1d1f21 在~/.config/i3/config

在i3中设置背景的最流行方式似乎是使用
feh
,例如:

exec_always feh --bg-fill /home/user/Pictures/wallpaper.jpg
URxvt.transparent:     true
URxvt.shading:         50
URxvt.blurRadius:      0
URxvt.background:      #d3d3d3
URxvt.foreground:      #1d1f21
~/.config/i3/config
文件中。然后,在
~/.Xresources
中,您可以将
URxvt
配置为透明,如下所示:

exec_always feh --bg-fill /home/user/Pictures/wallpaper.jpg
URxvt.transparent:     true
URxvt.shading:         50
URxvt.blurRadius:      0
URxvt.background:      #d3d3d3
URxvt.foreground:      #1d1f21
正如你所看到的,这两件事在我的家用电脑上完美地结合在一起。暂时忽略可怕的配色方案

现在,由于各种原因,我无法访问
feh
,因为工作中的yum-repos有限。我自己也不能下载和编译它。作为替代,我一直在使用
ImageMagick
及其
display
功能设置我的背景:

exec_always display -window root /home/user/Pictures/wallpaper.jpg
它本身可以设置壁纸并与i3配合使用

问题是,当我这样做时,似乎
ImageMagick
只是设置了一个覆盖,而不是实际设置了根图像,因此
URxvt
只是读取一个默认的灰色根图像。请注意,这也是我的家用电脑,
feh
工作正常,因此它不是
URxvt
问题

  • 使用
    ImageMagick
    设置我的背景是否有不同的方法,以便它实际设置根墙纸?这是我更喜欢的解决方案
  • 是否有其他软件,或者最好是常用的预装工具(Oracle Linux),可以用来设置我的壁纸?再一次,请记住,我在工作中无法接触到像feh这样的东西,以及任何我必须查看的东西。我已经看到其中提到了一些,但还没有时间检查它们是否存在于工作中。1.我也无法访问康普顿、xcompmgr等内容以获得真正的透明度

  • 更新:我尝试使用
    xsetroot
    并使用ImageMagick的
    convert
    将我的
    .jpg
    图像转换为
    .bmp
    ,但
    xsetroot
    仅适用于只支持黑白的
    .xbm
    图像。这不起作用,因为我希望它仍然与所示的
    .jpg
    图像相同。

    请澄清您所说的根图像是什么意思。JPG不支持透明度。通过透明度合并两个图像后,图像中就没有透明度了。只有8位模式下的PNG才有透明度,没有alpha通道(叠加?)。所以我不确定你想要什么。如果您需要在alpha通道使其透明的地方将基础图像设置为黑色,则可以通过
    convert image.png-background black-alpha background image.png
    修改透明图像。某些系统需要透明度下的图像为黑色,而不是包含原始纹理。如果要将透明度为JPG的PNG图像转换为JPG,则需要在背景色上将其展平
    convert image.png-背景白色-展平image.jpg
    。在这里,我用白色压平。@fmw42的“根”我只是指用于桌面的墙纸。透明度只是终端模拟器本身的一个因素。所以,我想你的误解是,我并不是在试图修改图像本身,我的终端模拟器自己处理所有虚假的透明度。我想做的是找出是否有一种方法可以使用ImageMagick的“display”或类似“xsetroot”的东西来设置桌面墙纸(根窗口),因为“display-window root image.jpg”似乎只是覆盖它,而不是实际设置它。“xsetroot”的问题是它似乎只适用于.xbm图像,就我的转化尝试而言,这些都是黑白的。如果我要转换为位图,我需要一个与原始.jpg一样高质量的图像。因此,看起来xsetroot只适用于.xbm图像,它是单色的,只能是黑白的,这不起作用。请澄清你所说的根图像是什么意思。JPG不支持透明度。通过透明度合并两个图像后,图像中就没有透明度了。只有8位模式下的PNG才有透明度,没有alpha通道(叠加?)。所以我不确定你想要什么。如果您需要在alpha通道使其透明的地方将基础图像设置为黑色,则可以通过
    convert image.png-background black-alpha background image.png
    修改透明图像。某些系统需要透明度下的图像为黑色,而不是包含原始纹理。如果要将透明度为JPG的PNG图像转换为JPG,则需要在背景色上将其展平
    convert image.png-背景白色-展平image.jpg
    。在这里,我用白色压平。@fmw42的“根”我只是指用于桌面的墙纸。透明度只是终端模拟器本身的一个因素。所以,我想你的误解是,我并不是在试图修改图像本身,我的终端模拟器自己处理所有虚假的透明度。我想做的是找出是否有一种方法可以使用ImageMagick的“display”或类似“xsetroot”的东西来设置桌面墙纸(根窗口),因为“display-window root image.jpg”似乎只是覆盖它,而不是实际设置它。“xsetroot”的问题是它似乎只适用于.xbm图像,就我的转化尝试而言,这些都是黑白的。如果要转换为位图,我需要一个与原始.jpg一样高质量的图像。因此,看起来xsetroot只适用于.xbm图像,它是单色的,只能是黑白的,这是行不通的。