Editar: Minha pergunta inicial não parece ter uma solução. Em vez disso, usei um método alternativo. Role para baixo para ver o método alternativo.
Estou procurando uma solução para silenciar meu microfone no Discord, que posso adicionar à minha barra de toque por meio da bettertouchtool.
O BTT não pode enviar combinações de teclas ao Discord por qualquer motivo. Tanto quanto posso dizer, tenho duas opções.
Use o AppleScript para ativar a janela Discord, envie a tecla pressionada e oculte a janela. Isso funciona, mas atualizar o aplicativo por um momento é irritante. Pior ainda quando estiver em outra área de trabalho, pois irá inverter as áreas de trabalho.
Use o AppleScript para clicar no menu superior para clicar no menu Discord e percorra os elementos da interface do usuário para clicar no botão Mute.
Não tenho experiência suficiente com o AppleScript para fazer a segunda opção funcionar, mas acho que poderia funcionar. Usando o navegador da interface do usuário, consegui obter o caminho para o elemento da interface do usuário:
Como posso fazer isso funcionar? Qualquer ajuda é muito apreciada. obrigado
SOLUÇÃO ALTERNATIVA
O que estou querendo fazer aqui não parece ser possível, por isso estou apenas silenciando meu microfone no nível do sistema operacional em vez do Discord e adicionando um botão de alternância à minha barra de toque com o BetterTouchTool. Isso tem o benefício adicional de trabalhar em todo o sistema. Aqui está o vídeo em ação:Caso alguém mais queira fazer isso, estas são as etapas que eu segui:
1. Crie um novo Applescript com o seguinte script:
property storedInputLevel : missing value
if input volume of (get volume settings) is 0 then
set volume input volume storedInputLevel
return 1
else
tell application "System Events"
set storedInputLevel to input volume of (get volume settings)
end tell
set volume input volume 0
return 2
end if
Salve o script em algum lugar.
2. Abra a Better Touch Tool, crie um novo widget Touch Bar e defina o widget comoRun Apple Script and Show Return Value
3. Na janela exibida após a seleção, Run Apple Script and Show Return Value
você deseja apagar a linha de teste na caixa e dar um nome ao seu widget:
3.a Clique no botão aparência e configurações
4. Na Appearance and Settings
janela, você deseja definir as seguintes configurações:
Você não precisa definir uma cor de fundo alternativa, mas é útil ver que você está sem som de relance.
Para os ícones, você pode usar estes:
Certifique-se de definir a Alternate color and icon if result matches regex
configuração como 2 .
Clique em Save .
5. No novo widget que você criou, clique no menu suspenso Predefined action
e escolha Run Apple Script (async in background)
.
6. Na janela exibida, clique em Select Apple Script File
e, em seguida, Choose Apple Script file from Disk
navegue até o arquivo de script que você criou anteriormente. Clique em Salvar e pronto.
É isso aí. Seu widget deve ativar e desativar o microfone e a alteração deve ser refletida no ícone na barra de toque.
fonte
activate application "Discord" tell application "System Events" key code 46 using {shift down, command down} -- shift-command-left end tell
. Ele muda para o aplicativo e envia a tecla para silenciar meu microfone, mas ao ativar, o aplicativo é exibido.Respostas:
Em primeiro lugar, é bom explorar e fazer sua própria pesquisa com a qual você veio armado para perguntar como ela pode ser aplicada para formar uma solução. Torna muito mais fácil fornecer ajuda útil.
Com isso em mente, a captura de tela do UI Browser é imensamente útil, pois literalmente estabelece a hierarquia dos elementos da UI que precisamos percorrer para alcançar o item de menu de destino e emitir um clique via AppleScript:
No entanto, existe um fenômeno conhecido e bem consultado / documentado / queixado de um atraso inexplicável e irritante de 5 segundos entre o primeiro
click
que mostra o menu e o segundoclick
que seleciona o item de menu. Isso não é específico do Discord , mas parece se aplicar aos menus dos ícones da barra de menus.Várias soluções foram apresentadas para contornar isso, mas não vou entrar em detalhes, porque nenhuma delas é a) confiável, b) sem efeitos colaterais ou c) limpa para implementar. Você, sem dúvida, fará uma pesquisa rápida e encontrará a solução mais comum, que é matar o processo de Eventos do Sistema entre os dois primeiros
click
eventos. Mas você verá que, posteriormente, os usuários relatam que esse método para de funcionar; e, nesse ínterim, faz com que os Eventos do sistema gerem outros erros não relacionados onde antes não aconteciam.Portanto, esta solução para você é agridoce, receio. Eu mostrei a você como AppleScript seu caminho para o item de menu que você deseja; mas o resultado final pode não ser mais atraente do que sua primeira opção.
Edição: Possível solução não-AppleScript
Depois de baixar uma cópia do Discord para ver o que é o quê, primeiro noto que minha versão do aplicativo não possui esse ícone da barra de menus. Deve ser um cenário que eu não tenha visto.
O que eu observei, no entanto, é a opção de definir uma combinação de teclas definida pelo usuário que aciona uma de uma seleção de funções, uma das quais é uma alternância para o microfone mudo:
Aqui, montei um para ligar ⌘⌥⇥ao Toggle Mute . Como seria de esperar, ele funciona dentro do aplicativo. Surpreendentemente, ele também funciona com o aplicativo, quando não tem foco e mesmo quando é minimizado. Ainda mais surpreendentemente, funcionou quando o Discord residia em uma área de trabalho separada (espaço), e em nenhum momento o aplicativo Discord precisou obter foco ou a área de trabalho ativa foi afastada.
Acredito que esta é exatamente a solução que você procura - uma tecla de atalho que opera globalmente em seu sistema para silenciar seu microfone Discord .fonte
repeat until it exists delay 0.2 end repeat
Espera até eu clicar no menu. Acho que é porque o menu não existe até que eu o abra. Depois de abrir o menu, o script continua e clica em "Mudo". Você tem alguma sugestão sobre como resolver isso? Mais uma vez obrigado Editar: Vejo que a resposta do comentário ignora a formatação. Desculpa a bagunça.click
comando não teve efeito. Tente os seguintes ajustes separadamente: 1. altere o primeiroclick
paraclick it
; então 2. mudeclick it
paraperform its action "AXPress"
; então, em um novo script, tentetell app "System Events" to click menu bar item 1 of menu bar 2 of process "Discord"
. Minha esperança é que (1) ou (2) resolvam o problema, mas sinto que não vai mudar nada. (3), espero, abrirá o menu (mas não clique em "Mudo").I first note that my version of the application has no such menu bar icon to speak of. It must be a setting I haven't gleaned upon.
. Devo mencionar que o menu só aparece quando você está em um canal de voz.