Biblioteca Python para criar menus DropList interativos com atalhos de teclado + scroll do mouse
Project description
🎯 PyHub DropList
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
# 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
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
# Executa exemplo completo
python examples/droplist_demo.py
Controles disponíveis:
Ctrl + Scroll→ Menu de DesenvolvimentoAlt + Scroll→ Menu de ProdutividadeShift + Scroll→ Menu de Utilitários
🎛️ Configuração
As configurações são salvas em ~/.pyhub_shortcut/config.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
# 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 globaismouse- Para detecção de scroll e posição do cursorPyQt5- Para interface gráfica moderna
📋 To-Do / Roadmap
- ✅ Sistema básico de DropList com atalhos + scroll
- ✅ Interface PyQt5 moderna e responsiva
- ✅ 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:
- Fork o projeto
- Crie uma branch para sua feature (
git checkout -b feature/AmazingFeature) - Commit suas mudanças (
git commit -m 'Add some AmazingFeature') - Push para a branch (
git push origin feature/AmazingFeature) - Abra um Pull Request
📄 Licença
Distribuído sob a licença MIT. Veja LICENSE para mais informações.
👨💻 Autor
Gabriel Coimbra
- GitHub: @coimbrox
⭐ Gostou do projeto? Deixe uma estrela!
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file pyhub_droplist-0.1.0.tar.gz.
File metadata
- Download URL: pyhub_droplist-0.1.0.tar.gz
- Upload date:
- Size: 22.5 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.1.0 CPython/3.12.10
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
ab2a6fdb695fc77f37fb87825948c167c5856f418b12b260d0489482a36c8aa0
|
|
| MD5 |
50ed7ca1b4902628b797d8f14d7d50f7
|
|
| BLAKE2b-256 |
547ea18453a5848405aa39668ce969793fd273d135b2931d678b00de827862c8
|
File details
Details for the file pyhub_droplist-0.1.0-py3-none-any.whl.
File metadata
- Download URL: pyhub_droplist-0.1.0-py3-none-any.whl
- Upload date:
- Size: 14.8 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.1.0 CPython/3.12.10
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
cbbb3650da3ac41079268827ef995b7ddc109883e61c2de2099d528865a188b8
|
|
| MD5 |
d8af6eede188fcd7bfe7187a337505f6
|
|
| BLAKE2b-256 |
569ef5a382931da40db0f2afa1f19b4dac10b86f5c4464bf7546eb9acdb93bbf
|