# 🎯 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!**
