Linux下AppImage创建快捷方式脚本教程
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 > /dev/null; then
update-desktop-database ~/.local/share/applications/ 2>/dev/null
echo "✓ 已更新应用数据库"
fi
# 更新图标缓存
if command -v gtk-update-icon-cache > /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 && ~/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对话与提示词工具
评论已关闭