pyhub-droplist


Namepyhub-droplist JSON
Version 0.1.0 PyPI version JSON
download
home_pagehttps://github.com/coimbrox/pyhub-shortcut
SummaryBiblioteca Python para criar menus DropList interativos com atalhos de teclado + scroll do mouse
upload_time2025-07-20 07:15:56
maintainerNone
docs_urlNone
authorGabriel Coimbra
requires_python>=3.8
licenseMIT
keywords shortcuts hotkeys droplist automation productivity gui mouse keyboard
VCS
bugtrack_url
requirements No requirements were recorded.
Travis-CI No Travis.
coveralls test coverage No coveralls.
            # 🎯 PyHub DropList

[![Python Version](https://img.shields.io/badge/python-3.8%2B-blue.svg)](https://python.org)
[![License](https://img.shields.io/badge/license-MIT-green.svg)](LICENSE)

Biblioteca Python moderna para criar **menus DropList interativos** acionados por **atalhos de teclado + scroll do mouse**. Acesso instantâneo a suas ações favoritas sem tirar as mãos do teclado! 🚀

## 💡 Conceito DropList

O DropList é um padrão de interação inovador que combina:
- **Tecla Modificadora** (Ctrl, Alt, Shift) + **Scroll do Mouse**
- **Menu contextual** aparece instantaneamente na posição do cursor
- **Navegação rápida** com scroll ou setas
- **Execução imediata** com Enter ou click

> 🎮 **Exemplo**: `Ctrl + Scroll` → Menu de desenvolvimento aparece → Scroll para navegar → Enter para executar

## ✨ Features

- 🎯 **DropLists personalizáveis** com atalhos inteligentes
- 🖱️ **Integração teclado + mouse** para máxima eficiência  
- ⚡ **Menus contextuais rápidos** que aparecem no cursor
- 🎨 **Interface moderna** com PyQt5 e temas escuros
- ⚙️ **Configuração flexível** via JSON ou código
- 🔄 **Recarregamento dinâmico** sem reiniciar
- 📝 **Logging integrado** para debugging
- 🛡️ **Tratamento robusto de erros**

## 🚀 Instalação Rápida

```bash
# Clona o repositório
git clone https://github.com/coimbrox/pyhub-shortcut.git
cd pyhub-shortcut

# Instala dependências
pip install keyboard mouse pyqt5

# Instala em modo desenvolvimento
pip install -e .
```

## 🎮 Uso Rápido - DropList

```python
from pyhub_shortcut.droplist_manager import DropListManager, DropListAction

# Cria ações para o menu
dev_actions = [
    DropListAction("🌐 GitHub", "start https://github.com", "🌐"),
    DropListAction("💻 VS Code", "code .", "💻"),
    DropListAction("📁 Explorer", "explorer .", "📁"),
]

# Cria e configura o manager
manager = DropListManager()
manager.register_droplist("ctrl", dev_actions, "development")
manager.start()

# Agora use: Ctrl + Scroll para ver o menu!
```

## 📖 Uso Detalhado

### Exemplo Completo

```bash
# Executa exemplo completo
python examples/droplist_demo.py
```

**Controles disponíveis:**
- `Ctrl + Scroll` → Menu de Desenvolvimento
- `Alt + Scroll` → Menu de Produtividade  
- `Shift + Scroll` → Menu de Utilitários

## 🎛️ Configuração

As configurações são salvas em `~/.pyhub_shortcut/config.json`:

```json
{
  "actions": [
    {
      "label": "Abrir Google",
      "command": "start https://www.google.com",
      "hotkey": "ctrl+1"
    },
    {
      "label": "VS Code",
      "command": "code .",
      "hotkey": "ctrl+2"
    }
  ]
}
```

## 📁 Estrutura do Projeto

```
pyhub_shortcut/
├── __init__.py          # API principal
├── config.py            # Configurações básicas (legacy)
├── config_manager.py    # Gerenciador moderno de configurações
├── core.py              # Core básico (legacy)
├── core_improved.py     # Core melhorado com logging
├── ui.py                # Interface PyQt
└── cli.py               # Interface de linha de comando
```

## 🔧 Exemplos Avançados

```bash
# Exemplo básico
python examples/demo.py

# Exemplo avançado com configuração personalizada
python examples/demo_advanced.py --advanced
```

## 🛠️ Dependências

- `keyboard` - Para captura de atalhos globais
- `mouse` - Para detecção de scroll e posição do cursor
- `PyQt5` - Para interface gráfica moderna

## 📋 To-Do / Roadmap

- [x] ✅ Sistema básico de DropList com atalhos + scroll
- [x] ✅ Interface PyQt5 moderna e responsiva
- [x] ✅ Múltiplos DropLists com teclas diferentes
- [ ] 🔄 Sistema de plugins para ações customizadas
- [ ] 🎨 Temas personalizáveis (claro/escuro/custom)
- [ ] 📱 Interface gráfica para gerenciamento de DropLists
- [ ] 🔧 Suporte a scripts Python como ações
- [ ] 👥 Profiles de usuário e configurações
- [ ] 🌍 Suporte multiplataforma (Linux/macOS)
- [ ] 🔗 Integração com bandejas do sistema
- [ ] 📊 Analytics de uso e ações mais utilizadas

## 🤝 Contribuindo

Contribuições são bem-vindas! Por favor:

1. Fork o projeto
2. Crie uma branch para sua feature (`git checkout -b feature/AmazingFeature`)
3. Commit suas mudanças (`git commit -m 'Add some AmazingFeature'`)
4. Push para a branch (`git push origin feature/AmazingFeature`)
5. Abra um Pull Request

## 📄 Licença

Distribuído sob a licença MIT. Veja `LICENSE` para mais informações.

## 👨‍💻 Autor

**Gabriel Coimbra**
- GitHub: [@coimbrox](https://github.com/coimbrox)

---

⭐ **Gostou do projeto? Deixe uma estrela!**

            

Raw data

            {
    "_id": null,
    "home_page": "https://github.com/coimbrox/pyhub-shortcut",
    "name": "pyhub-droplist",
    "maintainer": null,
    "docs_url": null,
    "requires_python": ">=3.8",
    "maintainer_email": "Gabriel Coimbra <seu-email@exemplo.com>",
    "keywords": "shortcuts, hotkeys, droplist, automation, productivity, gui, mouse, keyboard",
    "author": "Gabriel Coimbra",
    "author_email": "Gabriel Coimbra <seu-email@exemplo.com>",
    "download_url": "https://files.pythonhosted.org/packages/54/7e/a18453a5848405aa39668ce969793fd273d135b2931d678b00de827862c8/pyhub_droplist-0.1.0.tar.gz",
    "platform": null,
    "description": "# \ud83c\udfaf PyHub DropList\r\n\r\n[![Python Version](https://img.shields.io/badge/python-3.8%2B-blue.svg)](https://python.org)\r\n[![License](https://img.shields.io/badge/license-MIT-green.svg)](LICENSE)\r\n\r\nBiblioteca Python moderna para criar **menus DropList interativos** acionados por **atalhos de teclado + scroll do mouse**. Acesso instant\u00e2neo a suas a\u00e7\u00f5es favoritas sem tirar as m\u00e3os do teclado! \ud83d\ude80\r\n\r\n## \ud83d\udca1 Conceito DropList\r\n\r\nO DropList \u00e9 um padr\u00e3o de intera\u00e7\u00e3o inovador que combina:\r\n- **Tecla Modificadora** (Ctrl, Alt, Shift) + **Scroll do Mouse**\r\n- **Menu contextual** aparece instantaneamente na posi\u00e7\u00e3o do cursor\r\n- **Navega\u00e7\u00e3o r\u00e1pida** com scroll ou setas\r\n- **Execu\u00e7\u00e3o imediata** com Enter ou click\r\n\r\n> \ud83c\udfae **Exemplo**: `Ctrl + Scroll` \u2192 Menu de desenvolvimento aparece \u2192 Scroll para navegar \u2192 Enter para executar\r\n\r\n## \u2728 Features\r\n\r\n- \ud83c\udfaf **DropLists personaliz\u00e1veis** com atalhos inteligentes\r\n- \ud83d\uddb1\ufe0f **Integra\u00e7\u00e3o teclado + mouse** para m\u00e1xima efici\u00eancia  \r\n- \u26a1 **Menus contextuais r\u00e1pidos** que aparecem no cursor\r\n- \ud83c\udfa8 **Interface moderna** com PyQt5 e temas escuros\r\n- \u2699\ufe0f **Configura\u00e7\u00e3o flex\u00edvel** via JSON ou c\u00f3digo\r\n- \ud83d\udd04 **Recarregamento din\u00e2mico** sem reiniciar\r\n- \ud83d\udcdd **Logging integrado** para debugging\r\n- \ud83d\udee1\ufe0f **Tratamento robusto de erros**\r\n\r\n## \ud83d\ude80 Instala\u00e7\u00e3o R\u00e1pida\r\n\r\n```bash\r\n# Clona o reposit\u00f3rio\r\ngit clone https://github.com/coimbrox/pyhub-shortcut.git\r\ncd pyhub-shortcut\r\n\r\n# Instala depend\u00eancias\r\npip install keyboard mouse pyqt5\r\n\r\n# Instala em modo desenvolvimento\r\npip install -e .\r\n```\r\n\r\n## \ud83c\udfae Uso R\u00e1pido - DropList\r\n\r\n```python\r\nfrom pyhub_shortcut.droplist_manager import DropListManager, DropListAction\r\n\r\n# Cria a\u00e7\u00f5es para o menu\r\ndev_actions = [\r\n    DropListAction(\"\ud83c\udf10 GitHub\", \"start https://github.com\", \"\ud83c\udf10\"),\r\n    DropListAction(\"\ud83d\udcbb VS Code\", \"code .\", \"\ud83d\udcbb\"),\r\n    DropListAction(\"\ud83d\udcc1 Explorer\", \"explorer .\", \"\ud83d\udcc1\"),\r\n]\r\n\r\n# Cria e configura o manager\r\nmanager = DropListManager()\r\nmanager.register_droplist(\"ctrl\", dev_actions, \"development\")\r\nmanager.start()\r\n\r\n# Agora use: Ctrl + Scroll para ver o menu!\r\n```\r\n\r\n## \ud83d\udcd6 Uso Detalhado\r\n\r\n### Exemplo Completo\r\n\r\n```bash\r\n# Executa exemplo completo\r\npython examples/droplist_demo.py\r\n```\r\n\r\n**Controles dispon\u00edveis:**\r\n- `Ctrl + Scroll` \u2192 Menu de Desenvolvimento\r\n- `Alt + Scroll` \u2192 Menu de Produtividade  \r\n- `Shift + Scroll` \u2192 Menu de Utilit\u00e1rios\r\n\r\n## \ud83c\udf9b\ufe0f Configura\u00e7\u00e3o\r\n\r\nAs configura\u00e7\u00f5es s\u00e3o salvas em `~/.pyhub_shortcut/config.json`:\r\n\r\n```json\r\n{\r\n  \"actions\": [\r\n    {\r\n      \"label\": \"Abrir Google\",\r\n      \"command\": \"start https://www.google.com\",\r\n      \"hotkey\": \"ctrl+1\"\r\n    },\r\n    {\r\n      \"label\": \"VS Code\",\r\n      \"command\": \"code .\",\r\n      \"hotkey\": \"ctrl+2\"\r\n    }\r\n  ]\r\n}\r\n```\r\n\r\n## \ud83d\udcc1 Estrutura do Projeto\r\n\r\n```\r\npyhub_shortcut/\r\n\u251c\u2500\u2500 __init__.py          # API principal\r\n\u251c\u2500\u2500 config.py            # Configura\u00e7\u00f5es b\u00e1sicas (legacy)\r\n\u251c\u2500\u2500 config_manager.py    # Gerenciador moderno de configura\u00e7\u00f5es\r\n\u251c\u2500\u2500 core.py              # Core b\u00e1sico (legacy)\r\n\u251c\u2500\u2500 core_improved.py     # Core melhorado com logging\r\n\u251c\u2500\u2500 ui.py                # Interface PyQt\r\n\u2514\u2500\u2500 cli.py               # Interface de linha de comando\r\n```\r\n\r\n## \ud83d\udd27 Exemplos Avan\u00e7ados\r\n\r\n```bash\r\n# Exemplo b\u00e1sico\r\npython examples/demo.py\r\n\r\n# Exemplo avan\u00e7ado com configura\u00e7\u00e3o personalizada\r\npython examples/demo_advanced.py --advanced\r\n```\r\n\r\n## \ud83d\udee0\ufe0f Depend\u00eancias\r\n\r\n- `keyboard` - Para captura de atalhos globais\r\n- `mouse` - Para detec\u00e7\u00e3o de scroll e posi\u00e7\u00e3o do cursor\r\n- `PyQt5` - Para interface gr\u00e1fica moderna\r\n\r\n## \ud83d\udccb To-Do / Roadmap\r\n\r\n- [x] \u2705 Sistema b\u00e1sico de DropList com atalhos + scroll\r\n- [x] \u2705 Interface PyQt5 moderna e responsiva\r\n- [x] \u2705 M\u00faltiplos DropLists com teclas diferentes\r\n- [ ] \ud83d\udd04 Sistema de plugins para a\u00e7\u00f5es customizadas\r\n- [ ] \ud83c\udfa8 Temas personaliz\u00e1veis (claro/escuro/custom)\r\n- [ ] \ud83d\udcf1 Interface gr\u00e1fica para gerenciamento de DropLists\r\n- [ ] \ud83d\udd27 Suporte a scripts Python como a\u00e7\u00f5es\r\n- [ ] \ud83d\udc65 Profiles de usu\u00e1rio e configura\u00e7\u00f5es\r\n- [ ] \ud83c\udf0d Suporte multiplataforma (Linux/macOS)\r\n- [ ] \ud83d\udd17 Integra\u00e7\u00e3o com bandejas do sistema\r\n- [ ] \ud83d\udcca Analytics de uso e a\u00e7\u00f5es mais utilizadas\r\n\r\n## \ud83e\udd1d Contribuindo\r\n\r\nContribui\u00e7\u00f5es s\u00e3o bem-vindas! Por favor:\r\n\r\n1. Fork o projeto\r\n2. Crie uma branch para sua feature (`git checkout -b feature/AmazingFeature`)\r\n3. Commit suas mudan\u00e7as (`git commit -m 'Add some AmazingFeature'`)\r\n4. Push para a branch (`git push origin feature/AmazingFeature`)\r\n5. Abra um Pull Request\r\n\r\n## \ud83d\udcc4 Licen\u00e7a\r\n\r\nDistribu\u00eddo sob a licen\u00e7a MIT. Veja `LICENSE` para mais informa\u00e7\u00f5es.\r\n\r\n## \ud83d\udc68\u200d\ud83d\udcbb Autor\r\n\r\n**Gabriel Coimbra**\r\n- GitHub: [@coimbrox](https://github.com/coimbrox)\r\n\r\n---\r\n\r\n\u2b50 **Gostou do projeto? Deixe uma estrela!**\r\n",
    "bugtrack_url": null,
    "license": "MIT",
    "summary": "Biblioteca Python para criar menus DropList interativos com atalhos de teclado + scroll do mouse",
    "version": "0.1.0",
    "project_urls": {
        "Documentation": "https://github.com/coimbrox/pyhub-shortcut#readme",
        "Homepage": "https://github.com/coimbrox/pyhub-shortcut",
        "Issues": "https://github.com/coimbrox/pyhub-shortcut/issues",
        "Repository": "https://github.com/coimbrox/pyhub-shortcut.git"
    },
    "split_keywords": [
        "shortcuts",
        " hotkeys",
        " droplist",
        " automation",
        " productivity",
        " gui",
        " mouse",
        " keyboard"
    ],
    "urls": [
        {
            "comment_text": null,
            "digests": {
                "blake2b_256": "569ef5a382931da40db0f2afa1f19b4dac10b86f5c4464bf7546eb9acdb93bbf",
                "md5": "d8af6eede188fcd7bfe7187a337505f6",
                "sha256": "cbbb3650da3ac41079268827ef995b7ddc109883e61c2de2099d528865a188b8"
            },
            "downloads": -1,
            "filename": "pyhub_droplist-0.1.0-py3-none-any.whl",
            "has_sig": false,
            "md5_digest": "d8af6eede188fcd7bfe7187a337505f6",
            "packagetype": "bdist_wheel",
            "python_version": "py3",
            "requires_python": ">=3.8",
            "size": 14790,
            "upload_time": "2025-07-20T07:15:55",
            "upload_time_iso_8601": "2025-07-20T07:15:55.366041Z",
            "url": "https://files.pythonhosted.org/packages/56/9e/f5a382931da40db0f2afa1f19b4dac10b86f5c4464bf7546eb9acdb93bbf/pyhub_droplist-0.1.0-py3-none-any.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": null,
            "digests": {
                "blake2b_256": "547ea18453a5848405aa39668ce969793fd273d135b2931d678b00de827862c8",
                "md5": "50ed7ca1b4902628b797d8f14d7d50f7",
                "sha256": "ab2a6fdb695fc77f37fb87825948c167c5856f418b12b260d0489482a36c8aa0"
            },
            "downloads": -1,
            "filename": "pyhub_droplist-0.1.0.tar.gz",
            "has_sig": false,
            "md5_digest": "50ed7ca1b4902628b797d8f14d7d50f7",
            "packagetype": "sdist",
            "python_version": "source",
            "requires_python": ">=3.8",
            "size": 22549,
            "upload_time": "2025-07-20T07:15:56",
            "upload_time_iso_8601": "2025-07-20T07:15:56.832859Z",
            "url": "https://files.pythonhosted.org/packages/54/7e/a18453a5848405aa39668ce969793fd273d135b2931d678b00de827862c8/pyhub_droplist-0.1.0.tar.gz",
            "yanked": false,
            "yanked_reason": null
        }
    ],
    "upload_time": "2025-07-20 07:15:56",
    "github": true,
    "gitlab": false,
    "bitbucket": false,
    "codeberg": false,
    "github_user": "coimbrox",
    "github_project": "pyhub-shortcut",
    "github_not_found": true,
    "lcname": "pyhub-droplist"
}
        
Elapsed time: 1.58301s