我是新手,一直在尝试找到一种方法来为 sudo 命令创建一个 .desktop 图标以打开名为 GfxTablet 的程序,但无法获得任何实际有效的信息。
我尝试过的所有命令都无法启动 tilix 终端和输入命令,我已经制作了许多 .desktop 文件来启动程序,但从来没有在 sudo 或非 sudo 中执行命令行。
我所知道的是,Exec 行必须精确地指示执行操作。如果我尝试启动默认终端,例如键入 Exec 行以声明 Exec=tilix,则什么也不会发生,但如果我进入 UXterm 并键入 tilix,然后按回车键,它就会打开,我尝试将默认终端更改为此 disco dingo 19.04 版本上的 3 或 4 个终端之一,但如果我在编写 .desktop 启动器时包含文件夹位置后跟文件名,则无法从 Exec= 行启动。
我使其可执行并通过右键单击打开“运行软件”选项来运行,甚至将 .desktop 文件拖入 tilix 并按回车键。
我想要启动的文件,我不知道它是什么文件类型,也不知道如何找到该文件类型扩展名,因为我已经通过右键单击完成了属性,但没有给出文件类型的名称,或者右键单击选择查看其位置的选项以查看它的路径,也没有给出文件扩展名的指示。
我想要制作此 .desktop 启动器的文件的路径如下:
/home/pc/GfxTablet/驱动程序输入/网络平板电脑
我需要启动的文件名如下:
网络平板电脑
启动该应用程序可在所有终端上运行,如果输入启动命令,则如下所示:
sudo./networktablet
我已经花了 36 个小时试图弄清楚,我一直在网上获取一些间歇性的帮助,但都失败了,这让我发疯了,我希望它将图标添加到 docky dock 中,因为我正在制作我自己的定制分发版。
但是,当完全定制后,如果需要的话,我想在某个阶段将它传输到其他机器上,因此我需要在完成后将它保存为系统备份,以便以简单的方式完成所有准备就绪的操作,我希望在重新安装或安装到任何机器时将它放在 Dock 上,并且可以通过简单地单击它的图标轻松地从 Dock 在任何机器上访问它,而不是总是通过终端输入它来启动,我必须先单击并打开,如果我想添加更多命令行来打开一次单击而不是打开命令 shell 然后输入它,我也希望将它们放在应用程序搜索中,这意味着它们需要是 .local/share/applications 文件夹中的 .desktop 文件,这是我在制作其他启动器时学到的很多东西。
请问有人能帮帮我吗?我几天前才开始使用 Linux,但是对 Windows 很熟悉,虽然命令行比较好,但其他方面我都熟悉,我只是彻底切换了操作系统,我更喜欢 ubuntu 操作系统的安全性、速度和流畅性。
我希望能得到一些帮助,这样在我把头发全部拔掉之前,我就能保持头发原样了,哈哈
提前致谢
答案1
在以前的 Ubuntu 版本中,答案很简单:gksudo
在启动器的“Exec=”行中使用。在启动实际程序之前,它会提供一个图形对话框来输入用户的密码。但是,“gksudo”不加区分地允许特权用户以 root 身份运行任何图形程序,现在已弃用此功能。它已被取代pkexec
,除了要求输入密码外,它还会首先检查您是否尝试运行明确允许以 root 身份运行的程序。此外,默认情况下,它永远不会允许图形程序完全以 root 身份运行。但是,仍然可以容纳设计为完全以 root 身份运行的旧图形程序。
man pkexec
解释如何以 root 身份运行自定义可执行文件。
根据您在中找到的模板创建一个操作文件
man pkexec
(参见示例)。提供您自己的操作文件<action id=
并更改<annotate key="org.freedesktop.policykit.exec.path">
为可执行文件的完整命令。您也可以选择采用图标、描述、供应商信息等参数。将文件放入目录中
/usr/share/polkit-1/actions
在 .desktop 启动器中,在可执行文件的完整命令前加上pkexec
。如果一切顺利,单击启动器将显示一个对话框,要求您输入密码,以及文件中指定的消息。
如果命令提供了您希望看到的终端输出,则在 .desktop 文件中包含一行“Terminal=true”。这样,只要命令正在运行,该命令就会在终端中启动,并且终端将保持打开状态。