Este app sobe um pequeno servidor Flask na sua máquina, e fica ouvindo por requisições vindas da rede local.
Essas requisições podem ativar algum atalho de teclado na sua máquina, executar
algum comando shell previamente cadastrado, ou carregar para o seu clipboard
(famoso ctrl+v
) algum texto também previamente cadastrado.
Eu utilizo este app em conjunto com o app
HTTP Request Shortcuts
instalado em um celular velho. A partir dele envio as requests, e o celular
funciona como um "controle remoto" que executa comandos no meu PC. Com isso eu
economizo alguns alt+TABs
e agilizo alguns testes onde preciso rodar o mesmo
comando repetidas vezes no shell.
Para que a função pastebullet funcione em sistemas linux, é necessário ter o
xclip
instalado:
sudo apt-get install xclip
- Clone o repositório
- Instale as dependência utilizando o
pipenv
pipenv install
- Inicie o app com o comando
pipenv run python server/main.py
- ou
./run.sh
Em seu navegador, acesse https://localhost:5000/admin
para ir a área de
cadastro de Comandos e textos para o clipboard (que eu chamei de
Clipbullets).
Cadastre quantos itens quiser.
Para executar um atalho, envie uma requisição POST
com o seguinte body JSON,
a partir de qualquer dispositivo de sua rede local para:
https://<IP_da_sua_máquina>/shortcut
{
"shortcut": "<nome_do_atalho>"
}
- Os atalhos disponíveis até o momento são:
minimize_all
: Executa umwinkey + d
, minimizando todas as janelas do windowsmute_unmute_meet
: Executa umctrl + d
, o atalho padrão para mutar/desmutar uma chamada no Google Meet
Para executar os comandos, envie uma requisição GET
de qualquer dispositivo
de sua rede local para:
https://<IP_da_sua_máquina>/command/<id_do_comando>
- O
id_do_comando
aqui é oid
automaticamente gerado para o comando que você cadastrou na área de admin
- O
Para carregar os textos cadastrados para o seu clipboard, envie uma requisição
GET
de qualquer dispositivo de sua rede local para:
https://<IP_da_sua_máquina>/clipbullet/<id_do_texto>
- O
id_do_texto
aqui é oid
automaticamente gerado para o texto que você cadastrou na área de admin
- O
Após isso, o texto cadastrado estará no seu ctrl+v
Caso você nãos e sinta seguro de deixar um endopoint aberto que execute scripts em sua rede local, você pode criar um token de autenticação.
Para isso, crie um arquivo .env
na raíz e defina a variável TOKEN
para um
valor a sua escolha.
A partir do momento que a variável de ambiente TOKEN
está definida, toda
request para funcionar deverá conter o seguinte header:
Authentication: Bearer <seu TOKEN>
Este projetinho utiliza os seguintes frameworks e packages para fazer sua magia:
- flask: Micro-framework utilizado para fazer o servidor.
- keyboard: Lib utilizada para disparar atalhos de teclado na máquina.
- flask-admin: Lib que fornece pronta uma área de admin para as Models do app.
- python-decouple: Para pegar variáveis de ambiente.
- peewee: ORM que manipula o banco (que neste caso é um simples sqlite).
- wtf-peewee: Dependência necessária para o flask-admin fazer seus paranauês.
- clipboard: Para carregar coisas no famoso ctrl+v da massa.
- chime: Para emitir sinais sonoros ao completar cada comando