Mostrando uma imagem na sua área de trabalho
O Windows pode ser de diferentes tipos. Não temos apenas janelas "normais", mas também janelas de (no nosso caso) tipo "DESKTOP".
As janelas do tipo "DESKTOP" ficam abaixo do everyting; até mesmo todos os itens na sua área de trabalho aparecem acima deles. Portanto, mostrar uma imagem em uma janela resulta em:
...ondeaimagemsundew,fixadanaáreadetrabalho,énaverdadeumajanela(assimcomoorelógiodaáreadetrabalhonaimagembtw).
Ocódigo
#!/usr/bin/env python3
import gi
gi.require_version('GdkPixbuf', '2.0')
from gi.repository import GdkPixbuf
gi.require_version("Gtk", "3.0")
from gi.repository import Gtk, Gdk
import sys
img = sys.argv[1]
xpos = int(sys.argv[2])
ypos = int(sys.argv[3])
w = int(sys.argv[4])
h = int(sys.argv[5])
class ShowPortrait(Gtk.Window):
def __init__(self):
Gtk.Window.__init__(self, title="PortraitonMyDesktop")
self.set_type_hint(Gdk.WindowTypeHint.DESKTOP)
self.connect("destroy", Gtk.main_quit)
self.set_skip_taskbar_hint(True)
pixbuf = GdkPixbuf.Pixbuf.new_from_file_at_scale(
img, w, h, preserve_aspect_ratio=True,
)
image = Gtk.Image.new_from_pixbuf(pixbuf)
self.add(image)
self.move(xpos, ypos)
self.show_all()
ShowPortrait()
Gtk.main()
Como usar
- Copie o script em um arquivo vazio, salve-o como
showportrait.py
-
Teste - execute com a imagem, posição x, posição y, largura e altura como argumentos:
python3 /path/to/showportrait.py /path/to/image x y width height
por exemplo:
python3 '/home/jacob/Desktop/showportrait.py' '/home/jacob/Thema/Wallpapers/sundew.jpg' 1000 200 400 400
A imagem deve aparecer na sua área de trabalho.
-
Se tudo funcionar bem, adicione o comando a Startup Applications.
Fechando a janela
É mais fácil feito pelo comando:
kill "$(pgrep -f showportrait.py)"
Nota
Definindo a largura / altura, o script escalará a imagem até que o primeiro seja alcançado, preservando as proporções da imagem.