我正在尝试在 Ubuntu 12.04 中为 Unity 安装 Matlab R2011a 启动器。我已经尝试过本指南(尽管我知道它适用于 11.10 并提到即使 11.10 也是 Matlab R2011a 不受支持的操作系统),但没有任何令人满意的解决方案。
这是我的启动文件,/usr/share/applications/matlab.desktop
:
#!/usr/bin/env xdg-open
[Desktop Entry]
Type=Application
Icon=/usr/share/icons/matlab.png
Name=MATLAB R2011a
Comment=Start MATLAB - The Language of Technical Computing
Exec=matlab -desktop
Categories=Development;
Run Code Online (Sandbox Code Playgroud)
我打开仪表板并搜索“matlab”。此启动器可在应用程序中找到。我点击它,Matlab 的启动画面出现了,但是当它消失时程序没有启动。(我已经确认htop
没有 matlab 进程在后台运行。)
如果我添加
Terminal=true
Run Code Online (Sandbox Code Playgroud)
到启动器文件,程序启动正常,并打开一个终端以及 Matlab。但是,终端和 Matlab 本身都显示在启动器区域中,带有 Matlab 图标,所以看起来我有两个Matlab 实例在运行,而实际上它只有一个。(实际上,它们显示为两个不同的程序,而不仅仅是相同的两个实例——图标是独立的,而不是组合在一起。)
这绝对不是最优的。我曾希望创建一个可以锁定到启动器区域的启动器,然后当程序运行时,相同的图标将成为活动 Matlab 实例的图标。
如何为 Matlab 创建一个按预期工作的启动器?
更新:我显然对我的症状有点不清楚,我会试着澄清一下。我还从答案中尝试了一些建议,并进一步调查了会发生什么。我当前的设置(带有Terminal=true
和的启动器文件Exec=matlab -desktop -nosplash &
)呈现以下行为:
我的问题是,我确实想为 Technic Launcher 创建一个 .desktop 文件,它是 Minecraft 的替代启动器。它以 .jar 文件的形式出现,我想为它创建一个菜单项。我将如何编写这样的 .desktop 文件?
我的尝试如下:
[Desktop Entry]
Type=Application
Name=Technic Launcher
Comment=Minecraft Launcher for Technic Pack, Tekkit, Hack/Mine and Yogbox
Exec=/home/benjamin/Applications/Minecraft/TechnicLauchner/technic-launcher-latest.jar
Icon=/home/benjamin/Applications/Minecraft/TechnicLauchner/icon.png
Terminal=false
Categories=Game;ActionGame;AdventureGame;RolePlaying;
Run Code Online (Sandbox Code Playgroud)
这不起作用,因此我的问题。我做错了什么?甚至可以指向 .jar 文件吗?
我需要在 KDE 上启动一些应用程序,并添加一些配置更改。做到这一点的最好方法/
是复制.desktop
单个应用程序的文件,我需要更改配置,从/usr/share/applications
,添加选项,然后将它们复制到~/.local/share/applications
.
我想知道这是否会导致我不知道的任何问题。如果有更好的方法来做到这一点,那就是不复制所有内容而只在~/.local/share/applications
.
谢谢。
这是我尚未找到解决方案的通用问题的具体示例。
我有一个程序(Android 虚拟设备管理器),它从自身内部启动“子程序”(即模拟器或虚拟设备)(也可以从其他地方启动)。我希望将这些程序的任何一个实例分组在同一个 Unity 图标下。
我创建了一个.desktop
文件来尝试完成此操作,但不完全知道如何执行此操作。桌面文件如下:
#!/usr/bin/env xdg-open
[Desktop Entry]
Version=1.0
Type=Application
Terminal=false
Name=Android Virtual Device
Icon=/home/ben/.icons/android.svg
Exec=/home/ben/usr/bin/android avd
StartupWMClass=Android Virtual Device Manager
Run Code Online (Sandbox Code Playgroud)
据我所知,StartupWMClass
我需要设置才能正确实现这一目标。我已经获得了xprop WM_CLASS
在相应窗口上使用的两个类名(“Android 虚拟设备管理器”和“emulator64-arm”)。两者都可以单独工作(无论以何种方式启动,启动器图标都正确附加到程序上),但我无法让它同时适用于两者。
我假设我以某种方式需要设置两个值,StartupWMClass
但无法正确执行(或知道它是否是有效操作)。我试过,冒号分隔如环境变量、逗号分隔、引号等,但我在官方文档中找不到任何提示。
有什么建议?
编辑:
另一个更迂腐但可能更容易识别的例子是Matlab
. 我正在运行 2013a 并且最初显示的启动画面和程序具有完全不同的WM_CLASS
值。这意味着,当我单击其中的启动器StartupWMClass=com-mathworks-util-PostVMInit
时,初始屏幕会出现一个不同的(默认未知)Unity
图标,而其余图标则归入我的启动器下。
通过首先使用xprop WMCLASS
并单击启动画面,然后重复活动Matlab
会话,我得到以下终端输出:
ben@ben-OptiPlex-9010:~$ xprop WM_CLASS
WM_CLASS(STRING) = "MATLAB", "MATLAB"
ben@ben-OptiPlex-9010:~$ xprop WM_CLASS
WM_CLASS(STRING) = "sun-awt-X11-XFramePeer", "com-mathworks-util-PostVMInit"
Run Code Online (Sandbox Code Playgroud)
如果我可以指定以下内容:
StartupWMClass=com-mathworks-util-PostVMInit&&MATLAB
Run Code Online (Sandbox Code Playgroud)
这将完美地工作(因为两者都单独工作)但我不知道语法,如果它甚至存在的话。我只知道到目前为止我尝试过的一切都没有奏效。
无论哪种方式,任何帮助或明确的答案都会很棒,因为我相信这是运行良好的桌面的一个非常基本的元素。
我尝试右键单击文件选择属性,然后单击权限选项卡并将其设置为执行。但是,当我双击该文件时,它会在 gedit 中打开。我该怎么办?
我运行 Ubuntu 14.04 并希望为同一登录的 Ubuntu 用户使用一个带有两个不同配置文件的 Firefox 安装。
我该如何设置,以便我可以轻松地从 Unity 启动器启动两个配置文件?
在 Ubuntu 18.04 中,当用户单击自定义桌面文件时,程序会显示该应用程序启动不受信任且启动它可能不安全的消息。桌面也不显示桌面文件的正确图标。
如何将应用程序启动桌面文件标记为受信任,以便不显示消息,并且图标也显示在桌面上。
我尝试使用
chmod +x *.desktop
Run Code Online (Sandbox Code Playgroud)
正如某些查询中所建议的那样,但这在 18.04 中似乎不起作用。
我找不到将自定义菜单条目添加到 .desktop 启动器的方法。
在 Unity 中,我能够向启动器添加自定义菜单条目,例如“打开 customfile.txt”或“打开 somespreadsheet.ods”。这在 Ubuntu Dock 中可行吗?
我已将以下行添加到.bashrc
文件中:
alias midos="sh /home/erkanmdr/Belgeler/midos/midos.sh"
Run Code Online (Sandbox Code Playgroud)
此命令在终端和 tty 中运行良好。但不适用于我的 .desktop 快捷方式文件。
midos.desktop 文件:
[Desktop Entry]
Name=MiDoS
Exec=midos
Icon=/home/erkanmdr/Belgeler/midos-128.png
Terminal=true
Run Code Online (Sandbox Code Playgroud)
如何midos
在 .desktop 快捷方式文件中执行我的命令?
我想为 Inkscape AppImage 创建桌面条目。我遇到了一些问题,因为我没有所有 MIME 类型,也没有清楚如何在桌面条目上运行此类应用程序。
有谁知道我怎样才能实现这样的目标?