Metadata-Version: 2.4
Name: supyx
Version: 0.1.0
Summary: Personal Python utilities library with vim-like navigation for wxPython
Project-URL: Homepage, https://github.com/SXion/supyx
Project-URL: Repository, https://github.com/SXion/supyx
Project-URL: Issues, https://github.com/SXion/supyx/issues
Author: suxiong
License: MIT
License-File: LICENSE
Keywords: gui,keyboard-navigation,utilities,vim-navigation,wxpython
Classifier: Development Status :: 3 - Alpha
Classifier: Intended Audience :: Developers
Classifier: License :: OSI Approved :: MIT License
Classifier: Programming Language :: Python :: 3
Classifier: Programming Language :: Python :: 3.11
Classifier: Programming Language :: Python :: 3.12
Classifier: Programming Language :: Python :: 3.13
Classifier: Topic :: Software Development :: Libraries :: Python Modules
Classifier: Topic :: Software Development :: User Interfaces
Requires-Python: >=3.11
Provides-Extra: wx
Requires-Dist: wxpython>=4.2.0; extra == 'wx'
Description-Content-Type: text/markdown

# supyx

Personal Python utilities library by SXion.

## Packages

### wxNaVimgation

Vim-like navigation for wxPython applications, inspired by Surfingkeys browser extension.

Features:

- **Normal mode**: Default navigation mode with keyboard shortcuts
- **Insert mode**: For text input (activated with `i` or when focusing input fields)
- **Hint mode**: Press `f` to show hints on clickable elements, type hint to click
- **Search mode**: Press `/` to search text in the application
- **Quick navigation**: `i` to focus first input field, `gi` to cycle through inputs
- Extensible keybinding system for custom commands

## Installation

```bash
pip install supyx
```

Or with uv:

```bash
uv add supyx
```

## Usage

```python
import wx
from supyx.wxnavimgation import VimNavigationMixin

class MyFrame(VimNavigationMixin, wx.Frame):
    def __init__(self):
        super().__init__(None, title="My App")
        self.init_vim_navigation()

        # Add custom keybindings
        self.vim_nav.map_key('dd', self.delete_item, "Delete selected item")
```

## License

MIT
