有没有办法将图像作为便签添加到我的 Unity 桌面?

有没有办法将图像作为便签添加到我的 Unity 桌面?

请建议我一种方法来使用任何图像(例如可调整大小的便签),以便我每次打开 Unity 桌面时都可以查看它。

我希望它能被用作主屏幕照片小部件应用程序可在安卓。这样,即使重新启动系统后,图像仍会停留在之前的位置,就像便笺

我想要的是下图所示的内容:

在此处输入图片描述

在上图中,我将图像放在桌面上,并将图像图标调整到最大尺寸,但这并不能解决我的问题:

  • 我无法进一步放大图像,因为这是调整图标大小的最大尺寸。

  • 当我将鼠标悬停在图标上时,图像会突出显示,这在图标的情况下会发生,而我并不想发生这种情况

  • 即使图标尺寸达到最大,图像质量也会变得很差,因为图像会扭曲。

我想要的图像是轻松调整大小重新定位而没有上述任何缺点。

我希望现在我的问题已经清楚了。如果仍然无法理解我想要什么,请告诉我。

(Ubuntu 16.04)

答案1

在桌面上显示图像

窗口可以有多种类型。我们不仅有“普通”窗口,还有(在我们的例子中)“DESKTOP”类型的窗口。

“DESKTOP”类型的窗口位于所有内容下方;甚至桌面上的所有项目都显示在它们上方。因此,在窗口中显示图像会导致:

在此处输入图片描述

...固定在桌面上的茅膏菜图像实际上是一个窗口(就像图像中的桌面时钟一样)。

代码

#!/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()

如何使用

  1. 将脚本复制到一个空文件中,另存为showportrait.py
  2. 使用图像、x 位置、y 位置、宽度和高度作为参数进行测试运行它:

    python3 /path/to/showportrait.py /path/to/image x y width height
    

    例如:

    python3 '/home/jacob/Desktop/showportrait.py' '/home/jacob/Thema/Wallpapers/sundew.jpg' 1000 200 400 400
    

    该图像应显示在您的桌面上。

  3. 如果一切正常,请将命令添加到启动应用程序。

关闭窗口

最简单的方法是通过以下命令完成:

kill "$(pgrep -f showportrait.py)"

笔记

设置宽度/高度,脚本将缩放图像,直到首先达到,保留图像的比例。

相关内容