每次安装应用程序时,软件中心如何才能在桌面上自动创建快捷方式?


8

我隐藏了Unity的启动器,因为我更喜欢使用cairo扩展坞。

这就是为什么我试图找到一种方法来制作从Ubuntu软件中心安装的东西,以便在桌面上自动设置快捷方式。


我无法理解这一点。你为什么想做这个?什么工具/启动程序与一切有关?
Braiam 2015年

1
@Braiam我相信OP希望在桌面上为他通过软件中心下载的程序创建快捷方式,就像许多Windows程序一样。之所以提到启动器,是因为软件中心会自动将新安装固定到启动器上,但是OP不会使用该启动器。
塞斯

@Seth很好,这是一个疯狂的猜测,因为他希望该软件“下载”到桌面。
Braiam 2015年

2
@Braiam对新用户的想法有一点了解会很有帮助;)他显然不希望二进制文件出现在他的桌面上。您甚至不能使用软件中心来下载二进制文件。
塞斯

首先我是她.....第二次我是在谈论我下载诸如gimp,PDF或游戏之类的应用程序时,我希望它进入我的桌面以便我可以访问它,因为我不使用小工具栏UBUNTU附带的软件,我使用cairo扩展坞,我似乎无法弄清楚如何更改ubuntu软件中心(这是我下载sed程序的位置)的下载位置
Ashleigh Johnson

Answers:


6

在后台运行下面的脚本,它将在桌面上(仅)安装的软件上自动创建启动程序。

它也是:

  • 检查新项目是否实际上是一个应用程序,旨在从启动器启动(检查NoDisplay=true
  • 使启动器在您的桌面可执行文件上可以使用。

如何使用

  • 将以下脚本复制到一个空文件中(使用例如gedit),将其另存为make_starter.py
  • 如果您首先要测试它:通过以下命令从终端窗口运行它:

    python3 /path/to/make_starter.py
    

    像以前一样安装应用程序。安装完成后,桌面上会出现一个图标

  • 如果一切正常,请将其添加到启动应用程序:Dash>启动应用程序>添加。添加命令:

    python3 /path/to/make_starter.py
    

注意

Ubuntu的本地化版本可能对“ Desktop”(荷兰语中的“ Bureaublad”)使用不同的名称。如果是这样,请在行中替换:

desktopname = "Desktop"

桌面名称的“桌面”。

剧本

#!/usr/bin/env python3
import subprocess
import os
import time
import shutil

desktopname = "Desktop"
dr = "/usr/share/applications"

while True:
    current = os.listdir(dr)
    time.sleep(10)
    last = os.listdir(dr)
    for item in last:
        if not item in current and item.endswith(".desktop"):
            file = dr+"/"+item
            with open(file) as src:
                text = src.read()
            if not "NoDisplay=true" in text:
                target = os.environ["HOME"]+"/"+desktopname+"/"+item
                shutil.copyfile(file, target)
                command = "chmod +x "+target
                subprocess.Popen(["/bin/bash", "-c", command])

谢谢@Jacobvlijm我将让我的父亲阅读您的评论并为我完成,因为我不了解所有技术知识
Ashleigh Johnson

1
这与答案的目标无关,但我借此机会评论了Python语法,这非常容易理解。当然,您可以使用bash甚至C之类的其他东西,但是您不能再拥有更多的人了。:-)
路西欧(Lucio)2015年

3
@Lucio很有可能,如果您会写简单的英语,那么您会偶然地编写python脚本:)
Jacob Vlijm 2015年

1
@JacobVlijm另一方面,我无法阻止自己说,如果您把猴子留在PC前面,她很可能Perl偶然地写了一个脚本:)
kos 2015年

@kos我不知道在澳大利亚有这么多猴子:)老实说:我的猫在这里赢得了我的大部分声誉。我给自己写的唯一答案是被低估的:)。
Jacob Vlijm 2015年

3

这将是令人难以置信的混乱,因为可能有一百多个应用程序图标。图标(实际上是桌面启动器文件)通常位于中/usr/share/applications。因此,您可以在终端中运行以下命令:

find /usr/share/applications -type f -name '*.desktop' -exec cp --target-directory ~/Desktop/ {} +

但这会在您的桌面上创建每个启动器的副本。(可能是几百个,具体取决于您的环境

您可以/usr/share/applications在文件管理器中浏览,然后将相关应用程序手动复制到桌面。据我所知,没有自动的方法可以使软件中心执行此操作。


1
我不知道synaptic是否具有某种可以运行的后期安装脚本或其他功能。.显然,软件中心没有该功能,但是synaptic可以。否则,完成此操作的唯一其他方法是使用自定义脚本通过命令行安装内容。只是大声思考。
赛斯

可能会在每次安装后使用dpkgdiff新选择列表和先前选择列表保存已安装应用程序的列表。然后,可以使用将相关.desktop文件复制到桌面的脚本来创建快捷方式。
Rohith Madhavan 2015年

1
那么,当我安装某些东西时,我必须手动将其放在桌面上吗?有点烦人,但我可以解决
Ashleigh Johnson

1
抱歉,编辑@muru,但我想保护无辜的人... ;-)在我的系统上:ls /usr/share/applications/*.desktop | wc提供:168 168 7851
Fabby 2015年

@AshleighJohnson,但有一个问题:已安装的应用程序被添加到启动器中。因此,它直接存在于您那里,而不仅仅是桌面本身。
Rinzwind'1
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.