Eis aqui uma ideia pessoal, mas como nunca vi isso em lugar nenhum, talvez na nossa comunidade a gente possa pesquisar isso juntos.
Estou com a intenção de criar um “Streamdeck feito em casa”. É a ideia por traz do conceito é relativamente aplicável, usando as teclas da atalho do OBS Studio em conjunto com um software de Macros como o Actiona, a ideia seria, basicamente, usar o teclado numérico do computador para os macros, ou até mesmo um outro teclado inteiro, podendo fazer macros de todos os tipos.
Existem várias formas de fazer isso funcionar, porém, fiquei me perguntando: Existiria a possibilidade de dois teclados serem conectados e serem reconhecidos individualmente?
Explico uma funcionalidade:
Digamos que eu tenha dois teclados, um deles seria só para macros. Quando eu pressionar a letra “F” em um deles, ela é usada normalmente, mas quando eu pressionar “F” no outro teclado, a aplicação vai para “fullscreen”, por exemplo.
Você tem ideia de como identificar os dispositivos individualmente assim? Já viram algo parecido?
Se der certo, a ideia é fazer um vídeo no canal, mostrando os processos, e claro, a galera que ajudar aqui receberá seus devidos créditos
Já vi algo similar onde se pega a plaquinha do teclado e faz as combinações usando solda fazendo um teclado cujas teclas são combinações de teclas, via software eu nunca vi
Então, no Linux você pode ler os dispositivos que usam xinput assim:
xinput -list
Se tiver dois teclados, você pode identificar eles separadamente, como para configurar dois layouts de teclado diferentes, um pra cada usando o setxkbmap, mas ainda assim não me parece ser o suficiente.
Olha… essa é uma ideia que não tinha me ocorrido… interessante hein.
Mas acho que o formato de um teclado ajudaria no conceito do streamdeck, além de ter mais teclas:
Porém, talvez uma daquelas placas que usam em fliperama talvez desse bom, é uma ideia interessante.
Primeiro um script pra pegar as teclas digitadas (kbd-shortcutd):
#!/bin/bash
SCRIPT_DIR="$(dirname "$(readlink -f "${0}")")"
function print_help() {
echo -n Você precisa especificar o id do teclado desejao,
echo você pode obter uma lista com os ids dos teclados executando:
echo
echo xinput list
exit 1
}
test $1 && KBD_ID=$1 || print_help
xinput test 9 | while read in ; do
"$SCRIPT_DIR/kbd-shortcut" $(echo $in | awk '{print $3}') &
done
Depois um script que processa as as teclas (kbd-shortcut):
#!/bin/bash
###############################################################
# #
# Nesse script você coloca o código da tecla e o comando a #
# ser executado #
# #
###############################################################
# #
# Como fazer: #
# #
###############################################################
# #
# Digite xinput test <id do teclado> e pressione a tecla #
# desejada e você terá uma saída parecida com essa: #
# #
# key press 24 #
# key release 24 #
# #
# O código da tecla é o número, agore é só adicionar #
# (ou subistituir os c omandos abaixo) umtexto na seguinte #
# forma: #
# #
# [[ $in = "<código da tecla>" ]] && comando #
# #
# Por exemplo, toda vez que eu apertar a tecla Q eu quero #
# que o leafpad seja aberto: #
# #
# [[ $in = "24" ]] && leafpad #
# #
###############################################################
# Exemplos de códigos de tecla do teclado numérico (ABNT2):
[[ $in = "90" ]] && comando para o numero 0 (teclado numerico)
[[ $in = "88" ]] && comando para o numero 2 (teclado numerico)
[[ $in = "88" ]] && comando para o numero 2 (teclado numerico)
[[ $in = "89" ]] && comando para o numero 3 (teclado numerico)
[[ $in = "83" ]] && comando para o numero 4 (teclado numerico)
[[ $in = "84" ]] && comando para o numero 5 (teclado numerico)
[[ $in = "85" ]] && comando para o numero 6 (teclado numerico)
[[ $in = "79" ]] && comando para o numero 7 (teclado numerico)
[[ $in = "80" ]] && comando para o numero 8 (teclado numerico)
[[ $in = "81" ]] && comando para o numero 9 (teclado numerico)
Colocando os dois na mesma pasta e executando:
./kbd-shortcut <id>
Teoricamente funcionaria já nque no meu teclado funcionou, mas eu precisaria de um segundo teclado pra testar e fazer algo mais organizado e com interface gráfica mas eu tô sem grana
Sim, usando o par de scripts que eu fiz isso teoricamente seria resolvido mas infelizmente não posso testar, se puder testar e dar o feedback (se funciona ou não) eu posso desenvolver uma interface amigável pra eles, porque sem saber se funciona não compensa investir tempo
Fugindo um pouco da pergunta, creio eu que a forma mais interessante de se fazer isso seria usar um teclado com macros e usar as teclas numérias como um stream deck da elgato, e para da um charme mudar as keycaps do teclado, ficaria algo bem bonito e muito útil.
Essas placa de fliperama geralmente tem uma controladora que agrupa os botões e faz a conexão com o pc pelo usb. Ficaria faltando apenas um software ou um script para pegar esses botões e mapear os atalhos que você precisa ou que conseguisse fazer o OBS enxergar isso e a partir daí mapear a coisa. Dei uma olhada no github e achei isso vê se a ideia acompanha o que você pretende fazer ou se da para começar a partir daí. DIY Arduino Buttonbox — version 1 (eng) — OpenSimHardware
O Streamlabs OBS tem uma app para Android que simula um Stream Deck https://play.google.com/store/apps/details?id=com.streamlabs , mas infelizmente eles só dão suporte do Streamlabs para o Windows. Dei uma olhada no projeto (open source) deles lá no Github e acredito que não seja muito difícil trazer suporte pro Linux, você que tem influência @Dio talvez possa entrar em contato com os caras. Ou então talvez alguém possa contribuir com o projeto deles portanto suporte para o linux. no forum deles já tem uma galerinha querendo a portabilidade https://ideas.streamlabs.com/ideas/SL-I-3890
Eu uso 2 teclados o tempo todo aqui no meu trabalho.
Sou completamente leigo no linux, mas posso testar aqui…
Uma pergunta, caso dê certo, como faço para desfazer o processo depois? rs
Só apagar o bash? E onde ele será criado?
Edit:
Copiei os dois scripts e colei no editor de textos (Óbivio que um separado do outro… rs)
Criei dois arquivos arquivos: kbd-shortcutd e kbd-shortcutd1
Dei permissão para executarem como programa
Digitei no terminal kbd-shortcutd e nada aconteceu…
Onde foi que eu errei?
Qual o nome que eu tenho que dar para o segundo script?
ms@MS-Aspire:~/Downloads$ ls
A48F6F39712D8C5F7AE0B4218E2F8487_labels.pdf
kbd-shortcutd
kbd-shortcutd1
comands-tux.png
drive_c
imp_adm.sh
ms@MS-Aspire:~/Downloads$ kbd-shortcutd
kbd-shortcutd: comando não encontrado
ms@MS-Aspire:~/Downloads$ chmod +x kbd-shortcutd kbd-shortcut
ms@MS-Aspire:~/Downloads$ ./kbd-shortcutd
Você precisa especificar o id do teclado desejao,você pode obter uma lista com os ids dos teclados executando:
xinput list
Eu uso o notebook em um suporte, uso o teclado usb (Este NÃO pode dar ruim! rs), então eu preciso que desconfigure o teclado do notebook, NÃO o usb…
function print_help() {
echo -n Você precisa especificar o id do teclado desejado.
echo Você pode obter uma lista com os ids dos teclados executando:
echo
echo xinput list
exit 1
}
test $1 && KBD_ID=$1 || print_help
xinput test 14 | while read in ; do
“$SCRIPT_DIR/kbd-shortcut” $(echo $in | awk ‘{print $3}’) &
done