Linux下appimage创建快捷方式脚本

脚本为Claude生成

以 GAPP.AppImage为例 创建快捷方式:

cat > ~/create-gapp-shortcut.sh <<'EOF'
#!/bin/bash
APP_NAME="GAPP"
APPIMAGE_DIR="/media/aaa/bbbb/appimage"
COMMENT="KKKK"
CATEGORIES="Portable;"

echo "========================================="
echo "开始创建 GAPP 快捷方式..."
echo "========================================="

# 查找 GAPP AppImage 文件
echo "正在查找 GAPP AppImage 文件..."
APP_IMAGE=$(find "$APPIMAGE_DIR" -maxdepth 1 -iname "*gapp*.AppImage" | head -1)

if [ -z "$APP_IMAGE" ]; then
    echo "<span class="emoji">❌</span> 错误: 未找到 GAPP AppImage 文件"
    echo ""
    echo "在目录中查找的文件:"
    ls -lh "$APPIMAGE_DIR"/*.AppImage 2>/dev/null
    echo ""
    echo "请确认:"
    echo "1. 文件是否在 $APPIMAGE_DIR 目录下"
    echo "2. 文件名是否包含 'gapp'"
    echo "3. 文件扩展名是否为 .AppImage"
    exit 1
fi

echo "✓ 找到 AppImage: $APP_IMAGE"

# 确保 AppImage 可执行
chmod +x "$APP_IMAGE"
echo "✓ 已设置执行权限"

# 创建临时目录提取图标
echo ""
echo "正在提取图标..."
TEMP_DIR=$(mktemp -d)
cd "$TEMP_DIR"

# 提取 AppImage 内容
"$APP_IMAGE" --appimage-extract >/dev/null 2>&1

if [ $? -ne 0 ]; then
    echo "<span class="emoji">⚠</span> 警告: 无法提取 AppImage 内容,使用默认图标"
    ICON_PATH="application-x-executable"
else
    # 查找图标文件(优先查找高分辨率)
    ICON_FILE=$(find squashfs-root -type f \( -name "*gapp*.png" -o -name "*icon*.png" -o -name "app.png" -o -name "logo.png" \) 2>/dev/null | grep -E "(512|256|128)" | head -1)

    # 如果没找到特定尺寸,找最大的 PNG
    if [ -z "$ICON_FILE" ]; then
        ICON_FILE=$(find squashfs-root -type f -name "*.png" 2>/dev/null | xargs ls -S 2>/dev/null | head -1)
    fi

    # 尝试 SVG 图标
    if [ -z "$ICON_FILE" ]; then
        ICON_FILE=$(find squashfs-root -type f -name "*.svg" 2>/dev/null | head -1)
    fi

    if [ -n "$ICON_FILE" ]; then
        mkdir -p ~/.local/share/icons
        ICON_EXT="${ICON_FILE##*.}"
        cp "$ICON_FILE" ~/.local/share/icons/gapp.${ICON_EXT}
        ICON_PATH="$HOME/.local/share/icons/gapp.${ICON_EXT}"
        echo "✓ 图标已提取: $(basename "$ICON_FILE")"
        echo "  保存到: $ICON_PATH"
    else
        ICON_PATH="application-x-executable"
        echo "<span class="emoji">⚠</span> 未找到图标,使用默认图标"
    fi
fi

# 清理临时文件
cd ~
rm -rf "$TEMP_DIR"
echo "✓ 已清理临时文件"

# 创建 .desktop 文件
mkdir -p ~/.local/share/applications
DESKTOP_FILE="$HOME/.local/share/applications/gapp.desktop"

cat > "$DESKTOP_FILE" <<DESKTOP
[Desktop Entry]
Version=1.0
Type=Application
Name=${APP_NAME}
Comment=${COMMENT}
Exec="${APP_IMAGE}" %U
Icon=${ICON_PATH}
Terminal=false
Categories=${CATEGORIES}
StartupNotify=true
StartupWMClass=${APP_NAME}
DESKTOP

chmod 644 "$DESKTOP_FILE"
echo "✓ Desktop 文件已创建: $DESKTOP_FILE"

# 更新数据库
if command -v update-desktop-database &gt; /dev/null; then
    update-desktop-database ~/.local/share/applications/ 2>/dev/null
    echo "✓ 已更新应用数据库"
fi

# 更新图标缓存
if command -v gtk-update-icon-cache &gt; /dev/null; then
    gtk-update-icon-cache -f -t ~/.local/share/icons/ 2>/dev/null
    echo "✓ 已更新图标缓存"
fi

echo ""
echo "========================================="
echo "✓✓✓ GAPP 快捷方式创建成功!✓✓✓"
echo "========================================="
echo "应用名称: ${APP_NAME}"
echo "AppImage: ${APP_IMAGE}"
echo "Desktop: ${DESKTOP_FILE}"
echo "图标: ${ICON_PATH}"
echo "分类: ${CATEGORIES}"
echo "备注: ${COMMENT}"
echo ""
echo "现在可以在应用程序菜单的 'Portable' 分类中找到 GAPP"
echo "或者直接搜索 'GAPP' 启动"
echo "========================================="
EOF

chmod +x ~/create-gapp-shortcut.sh &amp;&amp; ~/create-gapp-shortcut.sh

上述脚本内容替换:

● ✓ gapp替换为xxx 例如:keepassxc
● ✓ GAPP替换为应用名称(不用加版本号) 例如:KeePassXC
● ✓ /media/aaa/bbbb/appimage替换为应用所在路径
● ✓ KKKK简单应用描述 例如:“密码管理器”
● ✓ Portable替换为应用类别 例如:“Network;Utility;"

脚本特点:

● ✓ 自动查找任何版本的 GAPP AppImage
● ✓ 分类设置为 Portable
● ✓ 备注设置为 “KKKK”
● ✓ 自动提取图标
● ✓ 一键执行完成

直接复制粘贴到终端执行即可!

执行完成后需要删除create-gapp-shortcut.sh文件

常用 Categories 分类

Development - 开发工具
Graphics - 图形应用
Network - 网络应用
Office - 办公软件
AudioVideo - 多媒体
Utility - 实用工具

常用 COMMENT 备注

Cherry-Studio - AI对话与提示词工具

标签: none

评论已关闭