# AppImage Fixer
[](https://www.python.org/downloads/)
[](https://opensource.org/licenses/MIT)
[](https://github.com/wolfDiesel/appimage_fixer/actions)
[](https://github.com/wolfDiesel/appimage_fixer/actions)
[](https://codecov.io/gh/wolfDiesel/appimage_fixer)
**AppImage Fixer** - это инструмент для автоматического исправления проблем с desktop файлами, созданными AppImageLauncher. Он решает распространенные проблемы с иконками и параметрами запуска Electron приложений.
## 🚀 Возможности
- 🔧 **Автоматическое исправление иконок** - убирает префиксы `appimagekit_` и исправляет ссылки на иконки
- 🛡️ **Добавление флага `--no-sandbox`** - решает проблемы с Electron приложениями
## 📋 Требования
- Python 3.9 или выше
- Linux система с поддержкой AppImage
- AppImageLauncher (опционально, для лучшей интеграции)
## 🛠️ Установка
### Из исходного кода
```bash
# Клонируйте репозиторий
git clone https://github.com/wolfDiesel/appimage_fixer.git
cd appimage_fixer
# Создайте виртуальное окружение
python3 -m venv venv
source venv/bin/activate
# Установите зависимости
pip install -e .
```
### Из PyPI
```bash
pip install appimage-fixer
```
### Для разработки
```bash
# Установка с инструментами разработки
pip install -e ".[dev]"
# Установка Git hooks (рекомендуется)
./scripts/install_hooks.sh
# Запуск тестов
pytest tests/
# Проверка стиля кода
flake8 appimage_fixer/ tests/
# Проверка типов
mypy appimage_fixer/
# Форматирование кода
black appimage_fixer/ tests/
```
## 🎯 Использование
### Базовое использование
```bash
# Запуск с автоматическим исправлением всех найденных файлов
appimage-fixer run
# Просмотр списка найденных AppImage приложений
appimage-fixer list
# Проверка версий без внесения изменений
appimage-fixer check-versions
```
### Продвинутые команды
```bash
# Проверка статуса AppImageD интеграции
appimage-fixer check-appimaged
# Установка как системный сервис
appimage-fixer install-service
# Удаление системного сервиса
appimage-fixer uninstall-service
# Показать справку
appimage-fixer --help
```
## 🚀 Релизы
### Автоматические релизы
Проект использует автоматизированный процесс релизов через GitHub Actions. Релизы создаются при создании тега формата `vX.Y.Z` на ветке `main`.
### Создание релиза
```bash
# Автоматический способ (рекомендуется)
./scripts/create_release.sh 1.0.0
# Ручной способ
git tag -a "v1.0.0" -m "Release v1.0.0"
git push origin main
git push origin v1.0.0
```
### Что происходит при релизе
1. ✅ **Проверка тега** - убеждается, что тег на ветке `main`
2. 🧪 **Запуск тестов** - выполняет все тесты на разных версиях Python в Linux
3. 🔍 **Проверка качества** - запускает линтеры и проверки безопасности
4. 📦 **Сборка пакета** - создает wheel и source distribution
5. 🚀 **Публикация в PyPI** - загружает пакет в PyPI
6. 🏷️ **GitHub Release** - создает релиз с описанием
Подробнее см. [Руководство по релизам](docs/RELEASES.md).
Raw data
{
"_id": null,
"home_page": null,
"name": "appimage-fixer",
"maintainer": null,
"docs_url": null,
"requires_python": ">=3.9",
"maintainer_email": "akopylov <akopylov@example.com>",
"keywords": "appimage, desktop, linux, systemd, automation, icons",
"author": null,
"author_email": "akopylov <akopylov@example.com>",
"download_url": "https://files.pythonhosted.org/packages/68/b5/9d5af679e2e00e584b3b3bc575bcbb0e6c9e6fa5d9a89391ea172745ed73/appimage_fixer-1.2.10.tar.gz",
"platform": null,
"description": "# AppImage Fixer\n\n[](https://www.python.org/downloads/)\n[](https://opensource.org/licenses/MIT)\n[](https://github.com/wolfDiesel/appimage_fixer/actions)\n[](https://github.com/wolfDiesel/appimage_fixer/actions)\n[](https://codecov.io/gh/wolfDiesel/appimage_fixer)\n\n**AppImage Fixer** - \u044d\u0442\u043e \u0438\u043d\u0441\u0442\u0440\u0443\u043c\u0435\u043d\u0442 \u0434\u043b\u044f \u0430\u0432\u0442\u043e\u043c\u0430\u0442\u0438\u0447\u0435\u0441\u043a\u043e\u0433\u043e \u0438\u0441\u043f\u0440\u0430\u0432\u043b\u0435\u043d\u0438\u044f \u043f\u0440\u043e\u0431\u043b\u0435\u043c \u0441 desktop \u0444\u0430\u0439\u043b\u0430\u043c\u0438, \u0441\u043e\u0437\u0434\u0430\u043d\u043d\u044b\u043c\u0438 AppImageLauncher. \u041e\u043d \u0440\u0435\u0448\u0430\u0435\u0442 \u0440\u0430\u0441\u043f\u0440\u043e\u0441\u0442\u0440\u0430\u043d\u0435\u043d\u043d\u044b\u0435 \u043f\u0440\u043e\u0431\u043b\u0435\u043c\u044b \u0441 \u0438\u043a\u043e\u043d\u043a\u0430\u043c\u0438 \u0438 \u043f\u0430\u0440\u0430\u043c\u0435\u0442\u0440\u0430\u043c\u0438 \u0437\u0430\u043f\u0443\u0441\u043a\u0430 Electron \u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u0439.\n\n## \ud83d\ude80 \u0412\u043e\u0437\u043c\u043e\u0436\u043d\u043e\u0441\u0442\u0438\n\n- \ud83d\udd27 **\u0410\u0432\u0442\u043e\u043c\u0430\u0442\u0438\u0447\u0435\u0441\u043a\u043e\u0435 \u0438\u0441\u043f\u0440\u0430\u0432\u043b\u0435\u043d\u0438\u0435 \u0438\u043a\u043e\u043d\u043e\u043a** - \u0443\u0431\u0438\u0440\u0430\u0435\u0442 \u043f\u0440\u0435\u0444\u0438\u043a\u0441\u044b `appimagekit_` \u0438 \u0438\u0441\u043f\u0440\u0430\u0432\u043b\u044f\u0435\u0442 \u0441\u0441\u044b\u043b\u043a\u0438 \u043d\u0430 \u0438\u043a\u043e\u043d\u043a\u0438\n- \ud83d\udee1\ufe0f **\u0414\u043e\u0431\u0430\u0432\u043b\u0435\u043d\u0438\u0435 \u0444\u043b\u0430\u0433\u0430 `--no-sandbox`** - \u0440\u0435\u0448\u0430\u0435\u0442 \u043f\u0440\u043e\u0431\u043b\u0435\u043c\u044b \u0441 Electron \u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u044f\u043c\u0438\n\n## \ud83d\udccb \u0422\u0440\u0435\u0431\u043e\u0432\u0430\u043d\u0438\u044f\n\n- Python 3.9 \u0438\u043b\u0438 \u0432\u044b\u0448\u0435\n- Linux \u0441\u0438\u0441\u0442\u0435\u043c\u0430 \u0441 \u043f\u043e\u0434\u0434\u0435\u0440\u0436\u043a\u043e\u0439 AppImage\n- AppImageLauncher (\u043e\u043f\u0446\u0438\u043e\u043d\u0430\u043b\u044c\u043d\u043e, \u0434\u043b\u044f \u043b\u0443\u0447\u0448\u0435\u0439 \u0438\u043d\u0442\u0435\u0433\u0440\u0430\u0446\u0438\u0438)\n\n## \ud83d\udee0\ufe0f \u0423\u0441\u0442\u0430\u043d\u043e\u0432\u043a\u0430\n\n### \u0418\u0437 \u0438\u0441\u0445\u043e\u0434\u043d\u043e\u0433\u043e \u043a\u043e\u0434\u0430\n\n```bash\n# \u041a\u043b\u043e\u043d\u0438\u0440\u0443\u0439\u0442\u0435 \u0440\u0435\u043f\u043e\u0437\u0438\u0442\u043e\u0440\u0438\u0439\ngit clone https://github.com/wolfDiesel/appimage_fixer.git\ncd appimage_fixer\n\n# \u0421\u043e\u0437\u0434\u0430\u0439\u0442\u0435 \u0432\u0438\u0440\u0442\u0443\u0430\u043b\u044c\u043d\u043e\u0435 \u043e\u043a\u0440\u0443\u0436\u0435\u043d\u0438\u0435\npython3 -m venv venv\nsource venv/bin/activate\n\n# \u0423\u0441\u0442\u0430\u043d\u043e\u0432\u0438\u0442\u0435 \u0437\u0430\u0432\u0438\u0441\u0438\u043c\u043e\u0441\u0442\u0438\npip install -e .\n```\n\n### \u0418\u0437 PyPI\n\n```bash\npip install appimage-fixer\n```\n\n### \u0414\u043b\u044f \u0440\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u043a\u0438\n\n```bash\n# \u0423\u0441\u0442\u0430\u043d\u043e\u0432\u043a\u0430 \u0441 \u0438\u043d\u0441\u0442\u0440\u0443\u043c\u0435\u043d\u0442\u0430\u043c\u0438 \u0440\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u043a\u0438\npip install -e \".[dev]\"\n\n# \u0423\u0441\u0442\u0430\u043d\u043e\u0432\u043a\u0430 Git hooks (\u0440\u0435\u043a\u043e\u043c\u0435\u043d\u0434\u0443\u0435\u0442\u0441\u044f)\n./scripts/install_hooks.sh\n\n# \u0417\u0430\u043f\u0443\u0441\u043a \u0442\u0435\u0441\u0442\u043e\u0432\npytest tests/\n\n# \u041f\u0440\u043e\u0432\u0435\u0440\u043a\u0430 \u0441\u0442\u0438\u043b\u044f \u043a\u043e\u0434\u0430\nflake8 appimage_fixer/ tests/\n\n# \u041f\u0440\u043e\u0432\u0435\u0440\u043a\u0430 \u0442\u0438\u043f\u043e\u0432\nmypy appimage_fixer/\n\n# \u0424\u043e\u0440\u043c\u0430\u0442\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u0435 \u043a\u043e\u0434\u0430\nblack appimage_fixer/ tests/\n```\n\n## \ud83c\udfaf \u0418\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043d\u0438\u0435\n\n### \u0411\u0430\u0437\u043e\u0432\u043e\u0435 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043d\u0438\u0435\n\n```bash\n# \u0417\u0430\u043f\u0443\u0441\u043a \u0441 \u0430\u0432\u0442\u043e\u043c\u0430\u0442\u0438\u0447\u0435\u0441\u043a\u0438\u043c \u0438\u0441\u043f\u0440\u0430\u0432\u043b\u0435\u043d\u0438\u0435\u043c \u0432\u0441\u0435\u0445 \u043d\u0430\u0439\u0434\u0435\u043d\u043d\u044b\u0445 \u0444\u0430\u0439\u043b\u043e\u0432\nappimage-fixer run\n\n# \u041f\u0440\u043e\u0441\u043c\u043e\u0442\u0440 \u0441\u043f\u0438\u0441\u043a\u0430 \u043d\u0430\u0439\u0434\u0435\u043d\u043d\u044b\u0445 AppImage \u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u0439\nappimage-fixer list\n\n# \u041f\u0440\u043e\u0432\u0435\u0440\u043a\u0430 \u0432\u0435\u0440\u0441\u0438\u0439 \u0431\u0435\u0437 \u0432\u043d\u0435\u0441\u0435\u043d\u0438\u044f \u0438\u0437\u043c\u0435\u043d\u0435\u043d\u0438\u0439\nappimage-fixer check-versions\n```\n\n### \u041f\u0440\u043e\u0434\u0432\u0438\u043d\u0443\u0442\u044b\u0435 \u043a\u043e\u043c\u0430\u043d\u0434\u044b\n\n```bash\n# \u041f\u0440\u043e\u0432\u0435\u0440\u043a\u0430 \u0441\u0442\u0430\u0442\u0443\u0441\u0430 AppImageD \u0438\u043d\u0442\u0435\u0433\u0440\u0430\u0446\u0438\u0438\nappimage-fixer check-appimaged\n\n# \u0423\u0441\u0442\u0430\u043d\u043e\u0432\u043a\u0430 \u043a\u0430\u043a \u0441\u0438\u0441\u0442\u0435\u043c\u043d\u044b\u0439 \u0441\u0435\u0440\u0432\u0438\u0441\nappimage-fixer install-service\n\n# \u0423\u0434\u0430\u043b\u0435\u043d\u0438\u0435 \u0441\u0438\u0441\u0442\u0435\u043c\u043d\u043e\u0433\u043e \u0441\u0435\u0440\u0432\u0438\u0441\u0430\nappimage-fixer uninstall-service\n\n# \u041f\u043e\u043a\u0430\u0437\u0430\u0442\u044c \u0441\u043f\u0440\u0430\u0432\u043a\u0443\nappimage-fixer --help\n```\n\n## \ud83d\ude80 \u0420\u0435\u043b\u0438\u0437\u044b\n\n### \u0410\u0432\u0442\u043e\u043c\u0430\u0442\u0438\u0447\u0435\u0441\u043a\u0438\u0435 \u0440\u0435\u043b\u0438\u0437\u044b\n\n\u041f\u0440\u043e\u0435\u043a\u0442 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0435\u0442 \u0430\u0432\u0442\u043e\u043c\u0430\u0442\u0438\u0437\u0438\u0440\u043e\u0432\u0430\u043d\u043d\u044b\u0439 \u043f\u0440\u043e\u0446\u0435\u0441\u0441 \u0440\u0435\u043b\u0438\u0437\u043e\u0432 \u0447\u0435\u0440\u0435\u0437 GitHub Actions. \u0420\u0435\u043b\u0438\u0437\u044b \u0441\u043e\u0437\u0434\u0430\u044e\u0442\u0441\u044f \u043f\u0440\u0438 \u0441\u043e\u0437\u0434\u0430\u043d\u0438\u0438 \u0442\u0435\u0433\u0430 \u0444\u043e\u0440\u043c\u0430\u0442\u0430 `vX.Y.Z` \u043d\u0430 \u0432\u0435\u0442\u043a\u0435 `main`.\n\n### \u0421\u043e\u0437\u0434\u0430\u043d\u0438\u0435 \u0440\u0435\u043b\u0438\u0437\u0430\n\n```bash\n# \u0410\u0432\u0442\u043e\u043c\u0430\u0442\u0438\u0447\u0435\u0441\u043a\u0438\u0439 \u0441\u043f\u043e\u0441\u043e\u0431 (\u0440\u0435\u043a\u043e\u043c\u0435\u043d\u0434\u0443\u0435\u0442\u0441\u044f)\n./scripts/create_release.sh 1.0.0\n\n# \u0420\u0443\u0447\u043d\u043e\u0439 \u0441\u043f\u043e\u0441\u043e\u0431\ngit tag -a \"v1.0.0\" -m \"Release v1.0.0\"\ngit push origin main\ngit push origin v1.0.0\n```\n\n### \u0427\u0442\u043e \u043f\u0440\u043e\u0438\u0441\u0445\u043e\u0434\u0438\u0442 \u043f\u0440\u0438 \u0440\u0435\u043b\u0438\u0437\u0435\n\n1. \u2705 **\u041f\u0440\u043e\u0432\u0435\u0440\u043a\u0430 \u0442\u0435\u0433\u0430** - \u0443\u0431\u0435\u0436\u0434\u0430\u0435\u0442\u0441\u044f, \u0447\u0442\u043e \u0442\u0435\u0433 \u043d\u0430 \u0432\u0435\u0442\u043a\u0435 `main`\n2. \ud83e\uddea **\u0417\u0430\u043f\u0443\u0441\u043a \u0442\u0435\u0441\u0442\u043e\u0432** - \u0432\u044b\u043f\u043e\u043b\u043d\u044f\u0435\u0442 \u0432\u0441\u0435 \u0442\u0435\u0441\u0442\u044b \u043d\u0430 \u0440\u0430\u0437\u043d\u044b\u0445 \u0432\u0435\u0440\u0441\u0438\u044f\u0445 Python \u0432 Linux\n3. \ud83d\udd0d **\u041f\u0440\u043e\u0432\u0435\u0440\u043a\u0430 \u043a\u0430\u0447\u0435\u0441\u0442\u0432\u0430** - \u0437\u0430\u043f\u0443\u0441\u043a\u0430\u0435\u0442 \u043b\u0438\u043d\u0442\u0435\u0440\u044b \u0438 \u043f\u0440\u043e\u0432\u0435\u0440\u043a\u0438 \u0431\u0435\u0437\u043e\u043f\u0430\u0441\u043d\u043e\u0441\u0442\u0438\n4. \ud83d\udce6 **\u0421\u0431\u043e\u0440\u043a\u0430 \u043f\u0430\u043a\u0435\u0442\u0430** - \u0441\u043e\u0437\u0434\u0430\u0435\u0442 wheel \u0438 source distribution\n5. \ud83d\ude80 **\u041f\u0443\u0431\u043b\u0438\u043a\u0430\u0446\u0438\u044f \u0432 PyPI** - \u0437\u0430\u0433\u0440\u0443\u0436\u0430\u0435\u0442 \u043f\u0430\u043a\u0435\u0442 \u0432 PyPI\n6. \ud83c\udff7\ufe0f **GitHub Release** - \u0441\u043e\u0437\u0434\u0430\u0435\u0442 \u0440\u0435\u043b\u0438\u0437 \u0441 \u043e\u043f\u0438\u0441\u0430\u043d\u0438\u0435\u043c\n\n\u041f\u043e\u0434\u0440\u043e\u0431\u043d\u0435\u0435 \u0441\u043c. [\u0420\u0443\u043a\u043e\u0432\u043e\u0434\u0441\u0442\u0432\u043e \u043f\u043e \u0440\u0435\u043b\u0438\u0437\u0430\u043c](docs/RELEASES.md).\n",
"bugtrack_url": null,
"license": "MIT",
"summary": "Automatic AppImage desktop file manager and fixer",
"version": "1.2.10",
"project_urls": {
"Bug Reports": "https://github.com/wolfDiesel/appimage_fixer/issues",
"Documentation": "https://github.com/wolfDiesel/appimage_fixer/blob/main/README.md",
"Homepage": "https://github.com/wolfDiesel/appimage_fixer",
"Repository": "https://github.com/wolfDiesel/appimage_fixer.git"
},
"split_keywords": [
"appimage",
" desktop",
" linux",
" systemd",
" automation",
" icons"
],
"urls": [
{
"comment_text": null,
"digests": {
"blake2b_256": "0f0e27f7172cdcd9a291975258f93dd9ab7c830a68abc131e8aa8960b8b0b82c",
"md5": "2e9e272ca7f9cd24f25eb4ed64d16138",
"sha256": "e04b019cec98f51b91cf72b5fcb7fd88491449b73517e1e004411d92308a6f34"
},
"downloads": -1,
"filename": "appimage_fixer-1.2.10-py3-none-any.whl",
"has_sig": false,
"md5_digest": "2e9e272ca7f9cd24f25eb4ed64d16138",
"packagetype": "bdist_wheel",
"python_version": "py3",
"requires_python": ">=3.9",
"size": 19699,
"upload_time": "2025-08-15T19:51:03",
"upload_time_iso_8601": "2025-08-15T19:51:03.002685Z",
"url": "https://files.pythonhosted.org/packages/0f/0e/27f7172cdcd9a291975258f93dd9ab7c830a68abc131e8aa8960b8b0b82c/appimage_fixer-1.2.10-py3-none-any.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": null,
"digests": {
"blake2b_256": "68b59d5af679e2e00e584b3b3bc575bcbb0e6c9e6fa5d9a89391ea172745ed73",
"md5": "692744e1ff4d3b8a8c8cbbefe145ab33",
"sha256": "85d59deb12e5b1e865878172d0d2603f751e1865ce1841d9efbc2fe0844b544e"
},
"downloads": -1,
"filename": "appimage_fixer-1.2.10.tar.gz",
"has_sig": false,
"md5_digest": "692744e1ff4d3b8a8c8cbbefe145ab33",
"packagetype": "sdist",
"python_version": "source",
"requires_python": ">=3.9",
"size": 27492,
"upload_time": "2025-08-15T19:51:04",
"upload_time_iso_8601": "2025-08-15T19:51:04.037239Z",
"url": "https://files.pythonhosted.org/packages/68/b5/9d5af679e2e00e584b3b3bc575bcbb0e6c9e6fa5d9a89391ea172745ed73/appimage_fixer-1.2.10.tar.gz",
"yanked": false,
"yanked_reason": null
}
],
"upload_time": "2025-08-15 19:51:04",
"github": true,
"gitlab": false,
"bitbucket": false,
"codeberg": false,
"github_user": "wolfDiesel",
"github_project": "appimage_fixer",
"travis_ci": false,
"coveralls": false,
"github_actions": true,
"lcname": "appimage-fixer"
}