normcap


Namenormcap JSON
Version 0.5.9 PyPI version JSON
download
home_pageNone
SummaryOCR-powered screen-capture tool to capture information instead of images.
upload_time2024-11-10 19:41:59
maintainerNone
docs_urlNone
authorNone
requires_python<=3.12,>=3.9
licenseNone
keywords capture clipboard ocr screenshot
VCS
bugtrack_url
requirements No requirements were recorded.
Travis-CI No Travis.
coveralls test coverage No coveralls.
            <!-- markdownlint-disable MD013 MD026 MD033 -->

# NormCap

**_OCR powered screen-capture tool to capture information instead of images. For Linux,
macOS and Windows._**

[![Test](https://img.shields.io/github/actions/workflow/status/dynobo/normcap/cicd.yaml?label=CI/CD&branch=main)](https://github.com/dynobo/normcap/actions/workflows/cicd.yaml)
[![Coverage Status](https://img.shields.io/coverallsCoverage/github/dynobo/normcap?label=Coverage&branch=main)](https://coveralls.io/github/dynobo/normcap)
[![CodeQL](https://img.shields.io/github/actions/workflow/status/dynobo/normcap/cicd.yaml?label=CodeQL&branch=main)](https://github.com/dynobo/normcap/security/code-scanning/tools/CodeQL/status/)

[![GitHub](https://img.shields.io/github/downloads/dynobo/normcap/total?label=Github%20downloads&color=blue)](https://hanadigital.github.io/grev/?user=dynobo&repo=normcap)
[![PyPi](https://img.shields.io/pypi/dm/normcap?label=PyPi%20downloads&color=blue)](https://pypi.org/project/normcap)
[![Flathub](https://img.shields.io/flathub/downloads/com.github.dynobo.normcap?label=Flathub%20downloads&color=blue)](https://flathub.org/apps/details/com.github.dynobo.normcap)
[![AUR](https://img.shields.io/aur/votes/normcap?label=AUR%20votes&color=blue)](https://aur.archlinux.org/packages/normcap)

<a href="https://www.buymeacoffee.com/dynobo" target="_blank"><img src="https://cdn.buymeacoffee.com/buttons/v2/default-yellow.png" alt="Buy Me A Coffee" style="height: 40px !important;" ></a>

**Links:** [Source Code](https://github.com/dynobo/normcap) |
[Documentation](https://dynobo.github.io/normcap/) |
[FAQs](https://dynobo.github.io/normcap/#faqs) |
[Releases](https://github.com/dynobo/normcap/releases) |
[Changelog](https://github.com/dynobo/normcap/blob/main/CHANGELOG)

[![Screencast](https://user-images.githubusercontent.com/11071876/189767585-8bc45c18-8392-411d-84dc-cef1cb5dbc47.gif)](https://raw.githubusercontent.com/dynobo/normcap/main/assets/normcap.gif)

## Quickstart

Choose **_one_** of the options for a prebuilt release. If you encounter an issue please
take a look at the [FAQs](https://dynobo.github.io/normcap/#faqs) or
[report](https://github.com/dynobo/normcap/issues) it.

#### Windows

- [NormCap-0.5.9-x86_64-Windows.msi](https://github.com/dynobo/normcap/releases/download/v0.5.9/NormCap-0.5.9-x86_64-Windows.msi)
  (Installer)
- [NormCap-0.5.9-x86_64-Windows.zip](https://github.com/dynobo/normcap/releases/download/v0.5.9/NormCap-0.5.9-x86_64-Windows.zip)
  (Portable)

#### Linux
- [NormCap-0.5.9-x86_64.AppImage](https://github.com/dynobo/normcap/releases/download/v0.5.9/NormCap-0.5.9-x86_64.AppImage)
  (Binary, requires [fuse](https://dynobo.github.io/normcap/faqs/#linux-appimage-error-appimages-require-fuse-to-run) & [libcrypt](https://dynobo.github.io/normcap/faqs/#linux-appimage-error-while-loading-shared-libraries-libcryptso1))
- [com.github.dynobo.normcap @ FlatHub](https://flathub.org/apps/details/com.github.dynobo.normcap)
  (FlatPak)
- [`normcap` @ AUR](https://aur.archlinux.org/packages/normcap) (Arch/Manjaro)

#### macOS

Note: You have to allow the unsigned application on first start: "System Preferences" →
"Security & Privacy" → "General" → "Open anyway". You also have to allow NormCap to take
screenshots. ([#135](https://github.com/dynobo/normcap/issues/135))

- [NormCap-0.5.9-x86_64-macOS.dmg](https://github.com/dynobo/normcap/releases/download/v0.5.9/NormCap-0.5.9-x86_64-macOS.dmg)
  (Installer for x86/64)
- [NormCap-0.5.9-arm64-macOS.dmg](https://github.com/dynobo/normcap/releases/download/v0.5.9/NormCap-0.5.9-arm64-macOS.dmg)
  (Installer for M1)

## Install Python package

As an _alternative_ to a prebuilt package from above you can install the
[NormCap Python package](https://pypi.org/project/normcap/) for **Python >=3.9**, but it
is a bit more complicated:

#### On Linux

```sh
# Install dependencies (Ubuntu/Debian)
sudo apt install build-essential tesseract-ocr tesseract-ocr-eng libtesseract-dev libleptonica-dev wl-clipboard

## Install dependencies (Arch)
sudo pacman -S tesseract tesseract-data-eng wl-clipboard

## Install dependencies (Fedora)
sudo dnf install tesseract wl-clipboard

## Install dependencies (openSUSE)
sudo zypper install python3-devel tesseract-ocr tesseract-ocr-devel wl-clipboard

# Install normcap
pip install normcap

# Run
./normcap
```

#### On macOS

```sh
# Install dependencies
brew install tesseract tesseract-lang

# Install normcap
pip install normcap

# Run
./normcap
```

#### On Windows

1\. Install `Tesseract 5` by using the
[installer provided by UB Mannheim](https://github.com/UB-Mannheim/tesseract/wiki).

2\. Identify the path to Tesseract base folder. It should contain a `/tessdata` subfolder
and the `tesseract.exe` binary. Depending on if you installed Tesseract system-wide or
in userspace, the base folder should be:

```
C:\Program Files\Tesseract-OCR
```

or

```
C:\Users\<USERNAME>\AppData\Local\Programs\Tesseract-OCR
```

3\. Adjust environment variables:

- Create an environment variable `TESSDATA_PREFIX` and set it to _your_ Tesseract base
  folder, e.g.: "System Properties" → Tab "Advanced" → "Environment Variables..." →
  "New..." → Variable: `TESSDATA_PREFIX`, Value: `"C:\Program Files\Tesseract-OCR"`

- Append Tesseract's base folder to the environment variable `PATH`, e.g.: "System
  Properties" → Tab "Advanced" → "Environment Variables..." → Section "User variables"
  → Select `PATH` → "Edit..." → Add a new entry `"C:\Program Files\Tesseract-OCR"`

- To test your setup, open a new `cmd`-terminal and run:

    ```cmd
    tesseract --list-langs
    ```

4\. Install and run NormCap:

```bash
# Install normcap
pip install normcap

# Run
normcap
```

## Why "NormCap"?

See [XKCD](https://xkcd.com):

[![Comic](https://imgs.xkcd.com/comics/norm_normal_file_format.png)](https://xkcd.com/2116/)

## Development

Prerequisites for setting up a development environment are:
[**Python >=3.9**](https://www.python.org/downloads/),
[**uv**](https://docs.astral.sh/uv/getting-started/installation/) and
[**Tesseract >=5.0**](https://tesseract-ocr.github.io/tessdoc/#5xx) (incl. **language
data**).

```sh
# Clone repository
git clone https://github.com/dynobo/normcap.git

# Change into project directory
cd normcap

# Create virtual env and install dependencies
uv venv
uv sync

# Register pre-commit hook
uv run pre-commit install

# Run NormCap in virtual env
uv run python -m normcap
```

## Credits

This project uses the following non-standard libraries:

- [pyside6](https://pypi.org/project/PySide6/) _- bindings for Qt UI Framework_

And it depends on external software:

- [tesseract](https://github.com/tesseract-ocr/tesseract) - _OCR engine_
- [wl-clipboard](https://github.com/bugaevc/wl-clipboard) - _Wayland clipboard
  utilities_
- [xclip](https://github.com/astrand/xclip) - _CLI to the X11 clipboard_

Packaging is done with:

- [briefcase](https://pypi.org/project/briefcase/) _- converting Python projects into_
  _standalone apps_

Thanks to the maintainers of those nice tools!

## Similar open source tools

If NormCap doesn't fit your needs, try those alternatives (no particular order):

- [TextSnatcher](https://github.com/RajSolai/TextSnatcher) (Linux)
- [GreenShot](https://getgreenshot.org/) (Linux, macOS)
- [TextShot](https://github.com/ianzhao05/textshot) (Windows)
- [gImageReader](https://github.com/manisandro/gImageReader) (Linux, Windows)
- [Capture2Text](https://sourceforge.net/projects/capture2text) (Windows)
- [Frog](https://github.com/TenderOwl/Frog) (Linux)
- [Textinator](https://github.com/RhetTbull/textinator) (macOS)
- [Text-Grab](https://github.com/TheJoeFin/Text-Grab) (Windows)
- [dpScreenOCR](https://danpla.github.io/dpscreenocr/) (Linux, Windows)
- [PowerToys Text Extractor](https://learn.microsoft.com/en-us/windows/powertoys/text-extractor)
  (Windows)

## Certification

![WOMM](https://raw.githubusercontent.com/dynobo/lmdiag/master/badge.png)

## Contributors

<a href="https://github.com/dynobo/normcap/graphs/contributors">
  <img src="https://contrib.rocks/image?repo=dynobo/normcap" />
</a>

<small>Made with [contrib.rocks](https://contrib.rocks)</small>

            

Raw data

            {
    "_id": null,
    "home_page": null,
    "name": "normcap",
    "maintainer": null,
    "docs_url": null,
    "requires_python": "<=3.12,>=3.9",
    "maintainer_email": null,
    "keywords": "capture, clipboard, ocr, screenshot",
    "author": null,
    "author_email": "dynobo <dynobo@mailbox.org>",
    "download_url": "https://files.pythonhosted.org/packages/21/89/06ac7050bcc2b02fc5c39e7461fd84cc7d3db66fa2c066b20f6bb0908d7f/normcap-0.5.9.tar.gz",
    "platform": null,
    "description": "<!-- markdownlint-disable MD013 MD026 MD033 -->\n\n# NormCap\n\n**_OCR powered screen-capture tool to capture information instead of images. For Linux,\nmacOS and Windows._**\n\n[![Test](https://img.shields.io/github/actions/workflow/status/dynobo/normcap/cicd.yaml?label=CI/CD&branch=main)](https://github.com/dynobo/normcap/actions/workflows/cicd.yaml)\n[![Coverage Status](https://img.shields.io/coverallsCoverage/github/dynobo/normcap?label=Coverage&branch=main)](https://coveralls.io/github/dynobo/normcap)\n[![CodeQL](https://img.shields.io/github/actions/workflow/status/dynobo/normcap/cicd.yaml?label=CodeQL&branch=main)](https://github.com/dynobo/normcap/security/code-scanning/tools/CodeQL/status/)\n\n[![GitHub](https://img.shields.io/github/downloads/dynobo/normcap/total?label=Github%20downloads&color=blue)](https://hanadigital.github.io/grev/?user=dynobo&repo=normcap)\n[![PyPi](https://img.shields.io/pypi/dm/normcap?label=PyPi%20downloads&color=blue)](https://pypi.org/project/normcap)\n[![Flathub](https://img.shields.io/flathub/downloads/com.github.dynobo.normcap?label=Flathub%20downloads&color=blue)](https://flathub.org/apps/details/com.github.dynobo.normcap)\n[![AUR](https://img.shields.io/aur/votes/normcap?label=AUR%20votes&color=blue)](https://aur.archlinux.org/packages/normcap)\n\n<a href=\"https://www.buymeacoffee.com/dynobo\" target=\"_blank\"><img src=\"https://cdn.buymeacoffee.com/buttons/v2/default-yellow.png\" alt=\"Buy Me A Coffee\" style=\"height: 40px !important;\" ></a>\n\n**Links:** [Source Code](https://github.com/dynobo/normcap) |\n[Documentation](https://dynobo.github.io/normcap/) |\n[FAQs](https://dynobo.github.io/normcap/#faqs) |\n[Releases](https://github.com/dynobo/normcap/releases) |\n[Changelog](https://github.com/dynobo/normcap/blob/main/CHANGELOG)\n\n[![Screencast](https://user-images.githubusercontent.com/11071876/189767585-8bc45c18-8392-411d-84dc-cef1cb5dbc47.gif)](https://raw.githubusercontent.com/dynobo/normcap/main/assets/normcap.gif)\n\n## Quickstart\n\nChoose **_one_** of the options for a prebuilt release. If you encounter an issue please\ntake a look at the [FAQs](https://dynobo.github.io/normcap/#faqs) or\n[report](https://github.com/dynobo/normcap/issues) it.\n\n#### Windows\n\n- [NormCap-0.5.9-x86_64-Windows.msi](https://github.com/dynobo/normcap/releases/download/v0.5.9/NormCap-0.5.9-x86_64-Windows.msi)\n  (Installer)\n- [NormCap-0.5.9-x86_64-Windows.zip](https://github.com/dynobo/normcap/releases/download/v0.5.9/NormCap-0.5.9-x86_64-Windows.zip)\n  (Portable)\n\n#### Linux\n- [NormCap-0.5.9-x86_64.AppImage](https://github.com/dynobo/normcap/releases/download/v0.5.9/NormCap-0.5.9-x86_64.AppImage)\n  (Binary, requires [fuse](https://dynobo.github.io/normcap/faqs/#linux-appimage-error-appimages-require-fuse-to-run) & [libcrypt](https://dynobo.github.io/normcap/faqs/#linux-appimage-error-while-loading-shared-libraries-libcryptso1))\n- [com.github.dynobo.normcap @ FlatHub](https://flathub.org/apps/details/com.github.dynobo.normcap)\n  (FlatPak)\n- [`normcap` @ AUR](https://aur.archlinux.org/packages/normcap) (Arch/Manjaro)\n\n#### macOS\n\nNote: You have to allow the unsigned application on first start: \"System Preferences\" \u2192\n\"Security & Privacy\" \u2192 \"General\" \u2192 \"Open anyway\". You also have to allow NormCap to take\nscreenshots. ([#135](https://github.com/dynobo/normcap/issues/135))\n\n- [NormCap-0.5.9-x86_64-macOS.dmg](https://github.com/dynobo/normcap/releases/download/v0.5.9/NormCap-0.5.9-x86_64-macOS.dmg)\n  (Installer for x86/64)\n- [NormCap-0.5.9-arm64-macOS.dmg](https://github.com/dynobo/normcap/releases/download/v0.5.9/NormCap-0.5.9-arm64-macOS.dmg)\n  (Installer for M1)\n\n## Install Python package\n\nAs an _alternative_ to a prebuilt package from above you can install the\n[NormCap Python package](https://pypi.org/project/normcap/) for **Python >=3.9**, but it\nis a bit more complicated:\n\n#### On Linux\n\n```sh\n# Install dependencies (Ubuntu/Debian)\nsudo apt install build-essential tesseract-ocr tesseract-ocr-eng libtesseract-dev libleptonica-dev wl-clipboard\n\n## Install dependencies (Arch)\nsudo pacman -S tesseract tesseract-data-eng wl-clipboard\n\n## Install dependencies (Fedora)\nsudo dnf install tesseract wl-clipboard\n\n## Install dependencies (openSUSE)\nsudo zypper install python3-devel tesseract-ocr tesseract-ocr-devel wl-clipboard\n\n# Install normcap\npip install normcap\n\n# Run\n./normcap\n```\n\n#### On macOS\n\n```sh\n# Install dependencies\nbrew install tesseract tesseract-lang\n\n# Install normcap\npip install normcap\n\n# Run\n./normcap\n```\n\n#### On Windows\n\n1\\. Install `Tesseract 5` by using the\n[installer provided by UB Mannheim](https://github.com/UB-Mannheim/tesseract/wiki).\n\n2\\. Identify the path to Tesseract base folder. It should contain a `/tessdata` subfolder\nand the `tesseract.exe` binary. Depending on if you installed Tesseract system-wide or\nin userspace, the base folder should be:\n\n```\nC:\\Program Files\\Tesseract-OCR\n```\n\nor\n\n```\nC:\\Users\\<USERNAME>\\AppData\\Local\\Programs\\Tesseract-OCR\n```\n\n3\\. Adjust environment variables:\n\n- Create an environment variable `TESSDATA_PREFIX` and set it to _your_ Tesseract base\n  folder, e.g.: \"System Properties\" \u2192 Tab \"Advanced\" \u2192 \"Environment Variables...\" \u2192\n  \"New...\" \u2192 Variable: `TESSDATA_PREFIX`, Value: `\"C:\\Program Files\\Tesseract-OCR\"`\n\n- Append Tesseract's base folder to the environment variable `PATH`, e.g.: \"System\n  Properties\" \u2192 Tab \"Advanced\" \u2192 \"Environment Variables...\" \u2192 Section \"User variables\"\n  \u2192 Select `PATH` \u2192 \"Edit...\" \u2192 Add a new entry `\"C:\\Program Files\\Tesseract-OCR\"`\n\n- To test your setup, open a new `cmd`-terminal and run:\n\n    ```cmd\n    tesseract --list-langs\n    ```\n\n4\\. Install and run NormCap:\n\n```bash\n# Install normcap\npip install normcap\n\n# Run\nnormcap\n```\n\n## Why \"NormCap\"?\n\nSee [XKCD](https://xkcd.com):\n\n[![Comic](https://imgs.xkcd.com/comics/norm_normal_file_format.png)](https://xkcd.com/2116/)\n\n## Development\n\nPrerequisites for setting up a development environment are:\n[**Python >=3.9**](https://www.python.org/downloads/),\n[**uv**](https://docs.astral.sh/uv/getting-started/installation/) and\n[**Tesseract >=5.0**](https://tesseract-ocr.github.io/tessdoc/#5xx) (incl. **language\ndata**).\n\n```sh\n# Clone repository\ngit clone https://github.com/dynobo/normcap.git\n\n# Change into project directory\ncd normcap\n\n# Create virtual env and install dependencies\nuv venv\nuv sync\n\n# Register pre-commit hook\nuv run pre-commit install\n\n# Run NormCap in virtual env\nuv run python -m normcap\n```\n\n## Credits\n\nThis project uses the following non-standard libraries:\n\n- [pyside6](https://pypi.org/project/PySide6/) _- bindings for Qt UI Framework_\n\nAnd it depends on external software:\n\n- [tesseract](https://github.com/tesseract-ocr/tesseract) - _OCR engine_\n- [wl-clipboard](https://github.com/bugaevc/wl-clipboard) - _Wayland clipboard\n  utilities_\n- [xclip](https://github.com/astrand/xclip) - _CLI to the X11 clipboard_\n\nPackaging is done with:\n\n- [briefcase](https://pypi.org/project/briefcase/) _- converting Python projects into_\n  _standalone apps_\n\nThanks to the maintainers of those nice tools!\n\n## Similar open source tools\n\nIf NormCap doesn't fit your needs, try those alternatives (no particular order):\n\n- [TextSnatcher](https://github.com/RajSolai/TextSnatcher) (Linux)\n- [GreenShot](https://getgreenshot.org/) (Linux, macOS)\n- [TextShot](https://github.com/ianzhao05/textshot) (Windows)\n- [gImageReader](https://github.com/manisandro/gImageReader) (Linux, Windows)\n- [Capture2Text](https://sourceforge.net/projects/capture2text) (Windows)\n- [Frog](https://github.com/TenderOwl/Frog) (Linux)\n- [Textinator](https://github.com/RhetTbull/textinator) (macOS)\n- [Text-Grab](https://github.com/TheJoeFin/Text-Grab) (Windows)\n- [dpScreenOCR](https://danpla.github.io/dpscreenocr/) (Linux, Windows)\n- [PowerToys Text Extractor](https://learn.microsoft.com/en-us/windows/powertoys/text-extractor)\n  (Windows)\n\n## Certification\n\n![WOMM](https://raw.githubusercontent.com/dynobo/lmdiag/master/badge.png)\n\n## Contributors\n\n<a href=\"https://github.com/dynobo/normcap/graphs/contributors\">\n  <img src=\"https://contrib.rocks/image?repo=dynobo/normcap\" />\n</a>\n\n<small>Made with [contrib.rocks](https://contrib.rocks)</small>\n",
    "bugtrack_url": null,
    "license": null,
    "summary": "OCR-powered screen-capture tool to capture information instead of images.",
    "version": "0.5.9",
    "project_urls": {
        "Changelog": "https://github.com/dynobo/normcap/blob/main/CHANGELOG",
        "FAQs": "https://dynobo.github.io/normcap/#faqs",
        "Homepage": "https://dynobo.github.io/normcap/",
        "Issues": "https://github.com/dynobo/normcap/issues",
        "Source Code": "https://github.com/dynobo/normcap"
    },
    "split_keywords": [
        "capture",
        " clipboard",
        " ocr",
        " screenshot"
    ],
    "urls": [
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "54578e55e998a510d69b561385aeb03273f7607985c0819df122affba3f22857",
                "md5": "98c5b325a1974674f9fb46d4969a3352",
                "sha256": "6a1adfdad46d61972b07e620788b4c3b071ff329c2b62f1caafb0b64a602fec2"
            },
            "downloads": -1,
            "filename": "normcap-0.5.9-py3-none-any.whl",
            "has_sig": false,
            "md5_digest": "98c5b325a1974674f9fb46d4969a3352",
            "packagetype": "bdist_wheel",
            "python_version": "py3",
            "requires_python": "<=3.12,>=3.9",
            "size": 4017961,
            "upload_time": "2024-11-10T19:41:57",
            "upload_time_iso_8601": "2024-11-10T19:41:57.021331Z",
            "url": "https://files.pythonhosted.org/packages/54/57/8e55e998a510d69b561385aeb03273f7607985c0819df122affba3f22857/normcap-0.5.9-py3-none-any.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "218906ac7050bcc2b02fc5c39e7461fd84cc7d3db66fa2c066b20f6bb0908d7f",
                "md5": "8645f5166dbce2c5d08acea9a83a372b",
                "sha256": "bd6a9071bd34ab2d1282bd03b6c01d036a1573c9de5546be7ed3f24c9a89fb15"
            },
            "downloads": -1,
            "filename": "normcap-0.5.9.tar.gz",
            "has_sig": false,
            "md5_digest": "8645f5166dbce2c5d08acea9a83a372b",
            "packagetype": "sdist",
            "python_version": "source",
            "requires_python": "<=3.12,>=3.9",
            "size": 5379565,
            "upload_time": "2024-11-10T19:41:59",
            "upload_time_iso_8601": "2024-11-10T19:41:59.738280Z",
            "url": "https://files.pythonhosted.org/packages/21/89/06ac7050bcc2b02fc5c39e7461fd84cc7d3db66fa2c066b20f6bb0908d7f/normcap-0.5.9.tar.gz",
            "yanked": false,
            "yanked_reason": null
        }
    ],
    "upload_time": "2024-11-10 19:41:59",
    "github": true,
    "gitlab": false,
    "bitbucket": false,
    "codeberg": false,
    "github_user": "dynobo",
    "github_project": "normcap",
    "travis_ci": false,
    "coveralls": false,
    "github_actions": true,
    "lcname": "normcap"
}
        
Elapsed time: 0.78047s