transparência do terminal, problema de janela raiz do Imagemagick e X11

5

No Ubuntu Natty e no Fedora 12, tenho urxvt (com 256 cores) e uso ImageMagick ( display -window root [...] ) para definir a janela raiz para uma imagem. Quando eu uso a opção de transparência ( -tr ) em urxvt , recebo a tela de login do X11 (A rosa / roxa no Ubunutu, a azul no Fedora) e não a imagem que está atualmente na janela raiz. Veja a imagem na parte inferior - tirada do Ubuntu, mas semelhante ao Fedora.

Observe que o mesmo problema existe se eu executar gnome-terminal e definir sua transparência.

Eu suspeito que o ImageMagick não esteja desenhando na camada X11 certa, mas eu (e o Google) não consigo descobrir qual é a opção correta.

O problema pode estar na configuração do xorg ou na composição da janela?

Eu ficaria feliz em usar algo mais do que o Imagemagick, desde que eu possa redimensionar as imagens rapidamente (para que ele mantenha sua proporção atual e se encaixe na área da tela visível) e que eu possa centralizar a imagem no canto inferior direito da tela.

    
por Sardathrion 08.09.2011 / 13:43

4 respostas

3

Eu tive um problema parecido com awesome window manager, assim como urxvt , quando ImageMagick foi usado para definir o plano de fundo. Ele foi rapidamente resolvido com o feedback do autor de awesome - você pode ver o arquivo desta conversa em gmane archives - aqui e mais adiante aqui .

A solução foi alterar o background setter e eu escolhi usar habak porque era o mais leve. Você também pode usar outros, como feh ou Esetroot (pertence a Iluminismo WM ). Eu acho que eu recomendo que você tente feh primeiro, já que parece ser empacotado para muitas distros.

Nota: Caso alguém queira experimentar vários bg-setters, aqui está uma lista daqueles que awsetbg (bg-setting wrapper script de awesome ) tenta usar:

Esetroot habak feh hsetroot chbg fvwm-root imlibsetroot display qiv xv xsri xli xsetbg wmsetbg xsetroot

Note que alguns deles só vêm com pacotes maiores.

Editar: Olhando xsri página de manual , Acho que isso pode fornecer a melhor flexibilidade para suas necessidades.

    
por 19.12.2011 / 09:56
0

Eu posso estar errado, mas você tentou definir a imagem com xli?

xli -onroot myimage.png

A página de manual diz

NAME
       xli - load images into an X11 window or onto the root window

SYNOPSIS
       xli [global_options] {[image_options] image ...}
       xli [global_options] [image_options] stdin < image

DESCRIPTION
       xli  displays  images  in  an  X11  window  or loads them onto the root
       window.  See the IMAGE TYPES section below for supported image types.

       If the filename stdin is given, xli will read the image  from  standard
       input.  
    
por 16.12.2011 / 17:40
0

Bem, como o xsri não é mais mantido, essa é a solução para o problema: use convert para converter todas as imagens para que elas tenham o tamanho correto e o formato correto, salve-as em outro diretório e use feh para exibi-las. Muito deselegante, na verdade, mas funciona.

#!/bin/sh
# Run this in your image directory
dir=$HOME/wallpapers
for file in *
do
    echo "Doing $file"
    convert -resize '1600x1200>' -extent 1600x1200 -background '#000000' \
        -gravity SouthEast  $file $dir/$file
done

Note que a opção resize deve estar antes do estender .

Em seguida, use feh ou qualquer outra coisa e centralize a imagem em sua tela. Meh.

    
por 13.03.2012 / 08:20
0

Converta a imagem usando convert do Imagemagick e canalize o resultado para feh para exibi-lo como plano de fundo, o que também funciona para terminais transparentes:

convert "$file" -resize 1600x1200 png:- | feh --bg-center -

É claro que convert pode fazer quase qualquer coisa na sua imagem. Muito mais do que qualquer qualquer setter de fundo será.

    
por 04.04.2015 / 23:24