如何在Ubuntu创建一个桌面快捷方式

在Windows中安装大多数软件都会自动创建快捷方式,方便应用快速启动,而不是大费周折地去安装目录中寻找启动程序了;就算用户不小心删除了快捷方式或者压根没有创建快捷方式,解决的方法都可以直接到那个目录下将应用程序发送到桌面快捷方式。Ubuntu也一样,软件有可能根本不创建一个快捷方式,本文的目的就是为了创建一个任意程序的快捷方式。

如果你不想看下面的解释,请直接运行下面的脚本

#!/bin/bash

create_desktop_entry() {
    local name=$1
    local exec_path=$(locate "/bin/$name" | awk 'length < shortest_length || shortest_length == 0 { shortest_line = $0; shortest_length = length } END { print shortest_line }')
    local icon_path=$(locate "/$name.png" | awk 'length < shortest_length || shortest_length == 0 { shortest_line = $0; shortest_length = length } END { print shortest_line }')

    if [[ -z $exec_path ]]; then
        echo "Executable for $name not found."
        return 1
    fi

    if [[ -z $icon_path ]]; then
        echo "Icon for $name not found."
        return 1
    fi

    local desktop_file="${name,,}.desktop"
    local extra_args=$2

    echo "[Desktop Entry]
Name=$name
Exec=$exec_path $extra_args
Icon=$icon_path
Type=Application" > "$desktop_file"

    if ! cp "$desktop_file" "/usr/share/applications" 2>/dev/null; then
        echo "Insufficient permissions to copy the shortcut to /usr/share/applications."
        rm "$desktop_file" 2>/dev/null
        return 1
    fi

    rm "$desktop_file" 2>/dev/null
    echo "Shortcut for $name created."
}

# Usage: create_desktop_entry "Name" "ExecutableName" "ExtraArgs"

create_desktop_entry "spyder" "spyder"
create_desktop_entry "matlab" "matlab" "-desktop"

一、Desktop文件位置及其规则说明

/usr/share/applications下创建桌面配置文件
配置文件是以.desktop结尾的文件,其第一行为:

[Desktop Entry]

这个文件将会告诉Linux双击的是一个桌面文件。

接下来的所有内容都是键值对(标签和值),赋值使用符号=

常见的键值示例及含义如下:

标签 含义
Version=1.0 版本号为1.0
Name[en_US]=Geocoder 应用程序名称,中括号为语系
GenericName[en_US]=Interesting Point Geocoder 应用程序简要描述
Comment[en_US]=Interesting Point Geocoder is a tool to create CSV files of geolocational data 应用程序额外信息
Exec=/home/dave/geocoder/gc 二进制程序执行绝对路径
Path=/home/dave/geocoder/ 二进制所在的路径
Icon=/home/dave/geocoder/ip_gc_icon.png 图标文件路径
Terminal=false 是否开启一个终端执行
Type=Application 快捷方式类型为应用(连接Link、目录Directory都可以)
Categories=Application Linux用于对其进行归类的标识

二、 创建一个spyder

ubuntu安装完anaconda后spyder编辑器不会自动添加到桌面入口,因为一般而言,可执行程序都是放在XXXX/bin下的,所以我们可以用命令:

locate /bin/spyder

找出所有的可执行程序:

/home/junwu/anaconda3/bin/spyder
/home/junwu/anaconda3/pkgs/spyder-4.2.5-py38h06a4308_0/bin/spyder

第一个是我们要找的目标执行程序。创建配置文件spyder.desktop并按照配置编辑文件内容:

[Desktop Entry]
Name=spyder
Exec=/home/junwu/anaconda3/bin/spyder
Icon=/home/junwu/anaconda3/share/icons/spyder.png
Type=Application

matlab2018a

[Desktop Entry]
Type=Application
Name=Matlab2018a
GenericName=Matlab 2018a
Comment=Matlab:The Language of Technical Computing
Exec=sh /usr/local/MATLAB/R2018a/bin/matlab -desktop
Icon=/usr/share/icons/hicolor/512x512/apps/matlab.png
StartupNotify=true
Terminal=false
Categories=Development;Matlab;

你可能感兴趣的:(Linux操作系统,ubuntu,linux,windows)