Existe uma maneira de adicionar uma imagem como uma nota adesiva ao meu Unity Desktop?

5

Por favor, sugira-me uma maneira de usar qualquer imagem como uma nota adesiva redimensionável para que eu possa visualizá-la sempre que eu abrir meu Unity Desktop.

Eu quero que ele seja usado como um aplicativo de widget de foto na tela inicial disponível no Android . Assim, mesmo depois de reiniciar o sistema, a imagem fica onde estava antes, como uma nota .

O que eu quero está na foto abaixo:

Na foto acima, coloquei a imagem na minha área de trabalho e redimensionei o ícone da imagem para o tamanho máximo, mas isso não resolve o problema:

  • Não consigo ampliar mais a imagem, pois esse é o tamanho máximo para redimensionar ícones.

  • Ao passar o mouse sobre o ícone, a imagem fica destacada, o que acontece no caso de ícones, que eu não quero

  • Mesmo com o tamanho máximo de ícone, a qualidade da imagem fica muito ruim, pois a imagem é distorcida.

Eu quero que a imagem seja facilmente redimensionada e reposicionada sem ter nenhuma das desvantagens mencionadas acima.

Espero ser claro sobre a minha pergunta agora. Se ainda houver algum problema em entender o que eu quero, por favor me avise.

(Ubuntu 16.04)

    
por Kewal Shah 25.10.2017 / 16:09

1 resposta

5

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

  1. Copie o script em um arquivo vazio, salve-o como showportrait.py
  2. 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.

  3. 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.

    
por Jacob Vlijm 28.10.2017 / 12:02