appimage-fixer


Nameappimage-fixer JSON
Version 1.2.10 PyPI version JSON
download
home_pageNone
SummaryAutomatic AppImage desktop file manager and fixer
upload_time2025-08-15 19:51:04
maintainerNone
docs_urlNone
authorNone
requires_python>=3.9
licenseMIT
keywords appimage desktop linux systemd automation icons
VCS
bugtrack_url
requirements No requirements were recorded.
Travis-CI No Travis.
coveralls test coverage No coveralls.
            # AppImage Fixer

[![Python 3.8+](https://img.shields.io/badge/python-3.8+-blue.svg)](https://www.python.org/downloads/)
[![License: MIT](https://img.shields.io/badge/License-MIT-yellow.svg)](https://opensource.org/licenses/MIT)
[![Tests](https://github.com/wolfDiesel/appimage_fixer/workflows/CI/badge.svg)](https://github.com/wolfDiesel/appimage_fixer/actions)
[![Release](https://github.com/wolfDiesel/appimage_fixer/workflows/Release%20Package/badge.svg)](https://github.com/wolfDiesel/appimage_fixer/actions)
[![Codecov](https://codecov.io/gh/wolfDiesel/appimage_fixer/branch/main/graph/badge.svg)](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[![Python 3.8+](https://img.shields.io/badge/python-3.8+-blue.svg)](https://www.python.org/downloads/)\n[![License: MIT](https://img.shields.io/badge/License-MIT-yellow.svg)](https://opensource.org/licenses/MIT)\n[![Tests](https://github.com/wolfDiesel/appimage_fixer/workflows/CI/badge.svg)](https://github.com/wolfDiesel/appimage_fixer/actions)\n[![Release](https://github.com/wolfDiesel/appimage_fixer/workflows/Release%20Package/badge.svg)](https://github.com/wolfDiesel/appimage_fixer/actions)\n[![Codecov](https://codecov.io/gh/wolfDiesel/appimage_fixer/branch/main/graph/badge.svg)](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"
}
        
Elapsed time: 1.29264s