Metadata-Version: 2.4
Name: popafox
Version: 0.9.5
Summary: Utility for patching your firefox, hide webdriver detecting
License-Expression: Unlicense
Requires-Dist: configparser>=7.2.0
Requires-Dist: jinja2>=3.1.6
Requires-Dist: loguru>=0.7.3
Requires-Dist: pillow>=13.0.0
Requires-Dist: psutil>=7.2.2
Requires-Dist: pydantic>=2.14.1
Requires-Dist: pywin32>=312 ; sys_platform == 'win32' and extra == 'windows'
Requires-Python: >=3.14
Project-URL: Homepage, https://gitflic.ru/project/kurilka/popafox
Project-URL: Github, https://github.com/TheWhatis/popafox
Provides-Extra: windows
Description-Content-Type: text/markdown

---
title: POPAFOX
---

[![Latest Stable](http://img.shields.io/pypi/v/popafox.svg)](https://pypi.org/project/popafox)
[![Scrutinizer](http://img.shields.io/scrutinizer/g/popafox.svg)](https://scrutinizer-ci.com/g/popafox)
[![License](http://img.shields.io/pypi/l/popafox.svg?refresh=true)](https://pypi.org/project/popafox)

POPAFOX - патчер для firefox, удаляющий упоминания webdriver при запуске
–marionette или в firefox-а в режиме отладки

# Быстрый старт

## Для Linux

Тут должен быть установлен `PATH=${HOME}/.local/bin:${PATH}`

``` bash
uv tool install popafox
popafox
```

или

``` bash
git clone https://gitflic.ru/project/kurilka/popafox
cd popafox
uv pip install
uv run -m popafox
```

## Для Windows

Должен быть установлен Path для uv tool

``` bash
uv tool install popafox
popafox
```

или

``` bash
git clone https://gitflic.ru/project/kurilka/popafox
cd popafox
uv pip install -e '.[windows]'
uv run -m popafox
```

# Использование

При передаче опций, они перезаписывают данные с конфига и переменных
окружения.

```
$ popafox -h
usage: popafox [-h] [--version] [--config PATH] [--log-level LEVEL] [--log-dir PATH]
               [--src PATH] [--dst PATH] [--no-confirm] [-y]

Utility for patching your firefox, hide webdriver detecting

options:
  -h, --help         show this help message and exit
  --version          show program's version number and exit
  --config PATH      Force choice config file
  --log-level LEVEL  Logging level, default [INFO]
  --log-dir PATH     Force choice log directory
  --src PATH         Source firefox directory
  --dst PATH         Destination firefox directory (patched)
  --no-confirm       Skip confirmation prompts
  -y, --yes          Assume yes
```

# Конфигурация

По-умолчанию конфигурация находиться по пути
`~/.config/popafox/config.json`, если его не существует, при запуске
**popafox** он создается автоматически,

Конфиг будет иметь вид:

``` json
{
  "log_dir": "/home/whatis/.local/popafox",
  "log_level": "INFO",
  "src": "/usr/lib/firefox",
  "dst": "/home/whatis/.local/firefox_undetected",
  "no_confirm": false,
  "assume_yes": false
}
```

# Переменные окружения

Имеются только переменные окружения, за счет которых можно менять
свойства:

- `POPAFOX_LOG_LEVEL=INFO` - Уровень логирования: INFO, DEBUG, ERROR,
  CRITICAL …
- `POPAFOX_LOG_DIR=/.local/popafox` - Где будут храниться логи (разный в
  зависимости от ОС)
- `WAYLAND_DISPLAY` - Если оно установлено, будет использовать wayland
  для gui (linux)
- `DISPLAY` - Если установлено, будет использован xorg (linux)
- `POPAFOX_SRC=/usr/lib/firefos` - Где находится директория с
  оригинальным firefox (разный в зависимости от ОС)
- `POPAFOX_DST=${HOME}/.local/firefox-popafox` - Где будет пропатченный
  firefox (разный путь в зависимости от ОС)
- `POPAFOX_NO_CONFIRM=False` - Иметь ли интерактивные подтверждения
- `POPAFOX_ASSUME_YES=False` - Соглашаться ли на все вопросы

# Опциональные утилиты

## Linux

- `tkinter`
- `zenity`
- `kdialog`

## MacOs (пока не поддерживается)

Возможно понадобиться `tkinter`

## Windows

Только библиотека `pywin32`, устанавливается вместе с
`uv tool install popafox[windows]`, ну и также `tkinter`

# <span class="todo TODO">TODO</span> \[6/7\]

- [x] Поддержка Windows
- [x] Одновременная работа на wayland и x11 без переключения
- [x] Перенос дефолтного профиля из src firefox в dst firefox-popafox
- [x] Создание необходимых исполняемых файлов чтобы можно было запускать
  из cli
- [x] Создание .desktop, .lnk, .app (macos) ярлыков для работы как с
  приложением
- [x] Создание отдельной иконки с меткой PATCHED для Firefox Popafox
- [ ] Поддержка MacOS
