Categories
por

Como utilizar a fechadura de tampas como chave modificadora em janelas

Chris Hoffman é editor-chefe de How-To Geek. Ele escreveu sobre tecnologia durante mais de uma década e foi colunista da PCWorld durante dois anos. Chris escreveu para o The New York Times, foi entrevistado como perito em tecnologia em estações de televisão como a NBC 6 de Miami, e teve o seu trabalho coberto por noticiários como a BBC. Desde 2011, Chris já escreveu mais de 2.000 artigos que já foram lidos quase um bilião de vezes – e isso é só aqui no How-To Geek. Leia mais.

A tecla Caps Lock ocupa um espaço privilegiado no teclado, e não está a puxar o seu peso. Este fácil guião AutoHotkey transformará a tecla Caps Lock numa tecla modificadora para que possa usá-la para atalhos personalizáveis.

O básico

Este guião permitir-lhe-á premir Caps Lock+G para rapidamente o texto do Google a partir de qualquer lugar no Windows ou premir Caps Lock+D para consultar a definição do dicionário de uma palavra. Estes atalhos são personalizáveis, claro.

O melhor de tudo é que este guião inteligente ainda lhe permite usar Caps Lock normalmente. Pode ligar e desligar o Caps Lock premindo-o rapidamente duas vezes. Se não o fizer, o Caps Lock funcionará como uma tecla modificadora para atalhos.

Tecla de atalho automática 101

AutoHotkey é uma aplicação Windows gratuita que se senta em segundo plano e executa scripts. Pode escrever estes scripts você mesmo ou descarregá-los. Os scripts geralmente esperam por uma impressão de teclas e executam uma acção. Desta forma, AutoHotkey é uma forma rápida de refazer teclas no Windows ou de atribuir diferentes acções às teclas.

Por exemplo, mostramos como pode usar a AutoHotkey para desactivar a tecla Windows, impedindo-a de abrir o menu Iniciar e retirando-o de jogos para PC em ecrã inteiro. Não há necessidade de tirar a tampa do teclado.

Instalar a AutoHotkey e Obter o Script

Extraia o ficheiro de script AHK do ficheiro de arquivo ZIP e coloque-o em qualquer pasta do seu computador. Para o executar com AutoHotkey, clique com o botão direito do rato no script e seleccione “Run Script”.

O script está agora a ser executado em segundo plano. Para activar e desactivar a tecla Caps Lock, rapidamente faça duplo clique na tecla Caps Lock.

Se não fizer duplo clique, a tecla Caps Lock funciona apenas como uma chave modificadora. Com as funções incorporadas no script, pode usar os seguintes atalhos em qualquer parte do Windows:

  • Prima Caps Lock + d para encontrar a definição do dicionário de uma palavra seleccionada.
  • Prima Caps Lock + g para procurar no Google o texto seleccionado em qualquer parte do Windows.
  • Prima Caps Lock + t para encontrar a palavra seleccionada num thesaurus.
  • Prima Caps Lock + w para pesquisar o texto seleccionado na Wikipedia.

Para controlar a AutoHotkey, procure o ícone AutoHotkey na sua área de notificação – tem um fundo verde com um H branco. Para parar de executar o script, basta clicar com o botão direito do rato no ícone da AutoHotkey e seleccionar “Sair”.

Como é que funciona?

Se quiser ver o que o guião faz, clique com o botão direito do rato e seleccione “Edit Script” em vez disso. Isto abrirá o guião no Bloco de Notas, e poderá examinar o seu código. O guião é bastante curto e fácil de compreender. Recomendamos que não descarregue e execute scripts estranhos sem lo

O resto do guião contém as acções de atalho e uma útil função de prancheta que guarda o conteúdo da sua prancheta e os restaura. Esta parte é bastante necessária, pois as funções modificadoras utilizam a área de transferência para realizar acções sobre o texto seleccionado.

Quer ver o guião completo sem o descarregar? Aqui está:

Já vimos scripts de AutoHotkey que transformam o Caps Lock numa chave modificadora, mas nunca uma que mantenha o Caps Lock como uma chave de comutação, se o pressionar duas vezes. É muito inteligente. Mais uma vez obrigado a Dave Kellog por no-la ter enviado.

Sei que muitas pessoas têm feito perguntas sobre a transformação da fechadura de segurança numa chave de controlo, mas o meu problema é um pouco diferente.

Quero usar o capslock como a sua própria chave modificadora. Quando estou a segurar a chave capslock, quero poder usar i, j,k, e l como teclas de seta, juntamente com algumas outras modificações semelhantes como essa. Mas como uso programas que usam ctrl+j ou ctrl+i, etc. para funções específicas da aplicação, não quero apenas atribuí-la ao controlo. Aqui está o que tentei:

O problema com isso é que se eu premir qualquer coisa para além de uma das teclas de atalho que defini (i, j,k, l) o capslock irá alternar. O comportamento desejado seria que se eu premir Capslock & qualquer outra coisa, não acontece nada.

O problema com isto é que funciona, mas apenas uma vez. Por exemplo, se eu segurar o capslock, e premir ‘i’ três vezes, ele irá seta para cima na primeira vez, e depois digitar ‘i’ duas vezes. Preciso de ser capaz de manter o capslock premido e usar o ijkl como teclas de seta, para que isto também não funcione.

Mas isto foi sempre enviar Ctrl+Up em vez de apenas Up.

Já tentei todo o tipo de combinações de * $ e

e a ordem das coisas em volta, e nada disto resolveu os meus problemas. Talvez eu esteja a tentar fazer algo que simplesmente não pode ser feito, mas tem de haver alguma forma de eu poder usar capslock como chave modificadora sem perder as minhas chaves ctrl, alt, e shift para as suas funções regulares. Quaisquer sugestões seriam muito apreciadas.

Quero usar tanto a minha tecla Caps Lock como a tecla Windows na minha configuração i3wm. Em particular, quero que a tecla Caps Lock tome o lugar de $mod na configuração e também quero ser capaz de referenciar a tecla Windows em bindsym . Como o faria?

Actualmente, posso utilizar a minha chave Caps Lock como $mod mas quero também utilizar a minha chave Windows agora, como um modificador diferente.

O meu. Xmodmap é actualmente

e o código da chave do meu Caps Lock é 133.

1 Resposta 1

A questão aqui é que está essencialmente a remover as teclas do Windows da lista de modificadores com o mod4 claro. Para ter o Caps Lock disponível como um modificador adicional em vez de um substituto das teclas Window , teria de o definir para um modificador diferente. Pode utilizar modificadores Mod1 a Mod5 para além de Control , Shift e Mode_switch com i3 .

Primeiro verifique, se algum modificador não é utilizado no layout que está a utilizar (sem aplicar o seu. Xmodmap ). Pode obter uma lista das configurações do modificador com xmodma p-pm . Para o nosso layout isto regressa (na minha máquina):

Como pode ver, o mod3 não é actualmente utilizado. Para o utilizar, basta colocar o seguinte no seu. Xmodmap :

Nota: Neste caso utilizei Hyper_R porque Hyper_L já estava ligado ao mod4 . E 66 é o código chave do Caps Lock . Isto pode ser diferente na sua máquina.

Agora pode utilizar este modificador com as suas teclas i3. Se quiser continuar a usar a variável $mod com a sua configuração basta defini-la para Mod3 ou Mod4, dependendo se quiser usar Caps Lock ou as teclas do Windows para isso. Mas não há necessidade real de a utilizar de facto (é principalmente conveniente facilitar a configuração da primeira vez ao escolher entre Alt ( Mod1 ) e teclas do Windows ( Mod4 ).

Porquê trocar o bloqueio de tampas para controlo

Isto é algo que tenho feito em todas as máquinas que possuo há anos. Como programador, passo uma boa parte do meu dia a utilizar o terminal. Sendo obcecado pela eficácia, tento usar o meu teclado para tudo, pois mover as minhas mãos para usar um rato/papel de toque não é eficiente. O caso de utilização para mapear o bloqueio das tampas para controlar é simples; uso o controlo mais frequentemente do que o bloqueio das tampas e não preciso que os meus dedos saiam da fila de casa para pressionar a tecla que está ao lado de “a”. Quando usava um mac isto era útil principalmente para saltar à volta da linha de comando e há algum suporte decente para navegação ao estilo EMACS no OSX (por exemplo, CTRL+A para chegar ao início de uma linha poderia ser usado em navegadores web).

Isto é ainda mais útil em sistemas Windows e Linux porque se usa a chave de controlo para muitas coisas comuns (copiar, colar, desfazer, refazer, etc…).

Como fazer a troca

Há duas formas directas de o fazer

PowerShell

Esta é a maneira mais fácil. Para iniciar a abertura do Windows PowerShell (Admin) pressionando Win + X . Depois introduza estes comandos:

Guardar e reiniciar.

PowerToys

PowerToys é uma ferramenta criada pela Microsoft que permite aos utilizadores personalizarem a sua experiência com o Windows numa interface visual. É de código aberto e pode ser instalado a partir daqui.

Uma vez instalado, vá para o separador do Keyboard Manager e clique em Remap a Key. Seleccione caps lock para controlar e está pronto a partir.

Quero usar tanto a minha chave caps lock como a chave windows na minha configuração i3. Em particular, quero que a chave caps lock tome o lugar de $mod na configuração e também quero poder referenciar a chave windows em bindsym. Como o faria?

Actualmente, o meu. Xmodmap é

e a minha configuração i3 tem uma linha

Com esta configuração, a minha chave do windows comporta-se como a chave mod4, mas eu não quero isto. Quero poder carregar no Windows+a e ter um comportamento diferente do do Capslock+a.

Comentários

Quer usar a chave do windows como Modificador ou como (última) chave?

Poderia editar a pergunta para mostrar como conseguiu que a tecla Caps Lock funcionasse como modificador? Não é algo que a i3 possa fazer por defeito, por isso assumo que a refez (com xmodmap?) para alguma outra chave. Então seria a pergunta se quiser que a chave Windows seja o mesmo modificador que o Caps Lock ou uma chave diferente.

2 respostas

A questão aqui é que está essencialmente a remover as teclas do Windows da lista de modificadores com o mod4 claro. Para ter o Caps Lock disponível como um modificador adicional em vez de um substituto das teclas Window , teria de o definir para um modificador diferente. Pode utilizar modificadores Mod1 a Mod5 para além de Control , Shift e Mode_switch com i3 .

Primeiro verifique, se houver m

Como pode ver, o mod3 não é actualmente utilizado. Para o utilizar, basta colocar o seguinte no seu. Xmodmap :

Nota: Neste caso utilizei Hyper_R porque Hyper_L já estava ligado ao mod4 . E 66 é o código chave do Caps Lock . Isto pode ser diferente na sua máquina.

Agora pode utilizar este modificador com as suas teclas i3. Se quiser continuar a usar a variável $mod com a sua configuração basta defini-la para Mod3 ou Mod4, dependendo se quiser usar Caps Lock ou as teclas do Windows para isso. Mas não há necessidade real de a utilizar de facto (é principalmente conveniente facilitar a configuração da primeira vez ao escolher entre Alt ( Mod1 ) e teclas do Windows ( Mod4 ).

Porquê trocar o bloqueio de tampas para controlo

Isto é algo que tenho feito em todas as máquinas que possuo há anos. Como programador, passo uma boa parte do meu dia a utilizar o terminal. Sendo obcecado pela eficácia, tento usar o meu teclado para tudo, pois mover as minhas mãos para usar um rato/papel de toque não é eficiente. O caso de utilização para mapear o bloqueio das tampas para controlar é simples; uso o controlo mais frequentemente do que o bloqueio das tampas e não preciso que os meus dedos saiam da fila de casa para pressionar a tecla que está ao lado de “a”. Quando usava um mac isto era útil principalmente para saltar à volta da linha de comando e há algum suporte decente para navegação ao estilo EMACS no OSX (por exemplo, CTRL+A para chegar ao início de uma linha poderia ser usado em navegadores web).

Deu mais alguns passos e acrescentou teclas que simulam Home, End, e até copiar/colar – pode ser um pouco complicado de aprender no início, mas uma vez habituado, pode ser apenas vendido com a ideia. Uma vez que ele implementou toda a funcionalidade como um guião AutoHotkey, pode facilmente ajustá-lo às suas próprias necessidades – estou a trabalhar na minha própria versão que utiliza as chaves vim em vez disso.

A lista de funções inclui:

Utilização normal com capslock como modificador: j: esquerda k: para baixo l: direita i: para cima h: simula CTRL+esquerda (salta para a palavra seguinte) ö: simula CTRL+direita (comentado, terá de ajustar a disposição do seu teclado) ,: simula CTRL+Down 8: simula CTRL+Up u: simula “Home” (salta para o início da linha actual) (esqueci-me de mencionar isto no meu comentário) o: simula “End” Backspace: simula “Delete” b: cortar c: copiar v: colar

realça o texto. Shift + Capslock activa a verdadeira funcionalidade Capslock (o normal capslock-hitting desactiva-o de novo).

Comentários

kuroikyu comentou 20 de Maio de 2020

Dezenas de nós não usam Caps Lock durante o nosso fluxo de trabalho normal (dezenas!), por isso seria bom poder usá-lo como um modificador extra quando se usa a funcionalidade Remap Shortcuts. Isto já é uma coisa no mundo macOS graças a ferramentas como Karabiner Elements ou BetterTouchTool que lhe permitem transformar o Caps Lock no modificador “Hyper” como é vulgarmente referido. Tenho a certeza que há algo semelhante para Linux, mas não estou muito familiarizado com ele.

If you keep pressing Alt in addition to Capslock it works as if you are pressing “Shift” —>Em termos de implementação, não me importo se o Caps Lock não for imediatamente reconhecido como um modificador, uma vez que talvez outras pessoas não o vejam dessa forma. Não me importaria utilizar o teclado Remap para mapear Caps Lock para este novo modificador virtual “Hyper”, para poder começar a utilizá-lo para os meus atalhos Remap.

Poderia editar a pergunta para mostrar como conseguiu que a tecla Caps Lock funcionasse como modificador? Não é algo que a i3 possa fazer por defeito, por isso assumo que a refez (com xmodmap?) para alguma outra chave. Então seria a pergunta se quiser que a chave Windows seja o mesmo modificador que o Caps Lock ou uma chave diferente.

O texto foi actualizado com sucesso, mas estes erros foram encontrados:

Neste momento, não conseguimos converter a tarefa para um problema. Por favor, tente novamente.

A questão foi bem sucedida.

@crutkas esta é uma das características altamente solicitadas. Em termos de detalhes de implementação, estava a pensar em algo neste sentido: UI: Na página de destino, um utilizador tem a opção de utilizar Caps como um modificador. Isto tem dois efeitos:

O Caps Lock deixará de funcionar como antes, comportar-se-á como se fosse órfão. Assim, não se pode ligar/desligar o Caps Lock. Se o utilizador ficou preso no estado Caps on antes de o tornar órfão, cabe-lhe a eles desactivar o remapeamento e corrigi-lo manualmente.

O Caps Lock deve ser seleccionável como um modificador na tecla Remap e na janela de atalho, e já não considerado como uma tecla de acção, Temos de o fixar para ser um dos dois comportamentos, seja modificador ou tecla de acção, não pode ter ambos.

Implementação no backend (código Pseudo-C++): Não podemos usar GetAsyncKeyState para verificar se o Caps Lock é pressionado, uma vez que temos de suprimir os eventos Caps Lock para evitar o comportamento oridinário. Em vez disso, temos de dar a volta a isto, tendo a nossa própria variável Bool que actualiza o estado CapsLock ao receber eventos chave Caps. Isto é equivalente a armazenar a nossa própria variável de estado do teclado em vez de usar o GetAsyncKeyState.

Os leitores de ecrã de secretária são normalmente controlados apenas com o teclado. Oferecendo toneladas de funcionalidades, todas elas devem ser accionadas por atalhos do teclado. Mas o que fazer se nenhuma das combinações de teclado padrão estiver mais disponível?

Problema: já não existem combinações de teclado

A maioria dos atalhos de teclado tradicionais (uma combinação de pelo menos uma tecla modificadora e qualquer outra tecla, se ainda não o fez, volte atrás e leia Controlar um computador apenas com um teclado) já estão a ser utilizados pelo sistema operativo e a executar aplicações.

Solução: utilizando a tecla Insert como modificadora

Ambos os leitores de ecrã NVDA e JAWS trabalharam em torno deste problema, sequestrando a chave Insert como sua chave modificadora. Assim, a maior parte da interacção com os leitores de ecrã de secretária envolve uma combinação de Insert e outras chaves.

Ao executar a NVDA:

  • Insert + N mostra o menu NVDA.
  • Insert + F7 mostra a lista de elementos (com links, cabeçalhos, marcos, etc.).

Inserir + J mostra o menu JAWS.

Inserir + F6 mostra a lista de cabeçalhos.

Alternativas à tecla Insert

Se estiver num Mac a executar NVDA ou JAWS numa máquina virtual, há várias maneiras de contornar a chave Insert em falta; se ainda não o fez, volte atrás e leia Configuring VMware Fusion on macOS.

Tanto a NVDA como a JAWS oferecem a opção de usar Caps Lock em vez de Insert como chave modificadora. No entanto, por alguma razão, isto não parece funcionar no VMware Fusion.

Convenção de nomenclatura

  • Neste guia, não falamos sobre a chave de inserção. Em vez disso, ao executar a NVDA, falamos sobre a chave NVDA. E ao executar JAWS, falamos sobre a chave JAWS.
    • Assim, os exemplos acima parecem-se com isto:
    • Ao executar a NVDA:
    • NVDA + N mostra o menu NVDA.
    • A NVDA + F7 mostra a lista de elementos.

    JAWS + J mostra o menu JAWS.

    JAWS + F6 mostra a lista de cabeçalhos.

    Para um guia completo de atalhos, leia por favor.

    Olá Comunidade AHK.

    Este é o meu primeiro post aqui, no entanto, já estou a navegar nos fóruns há bastante tempo. Tenho notado como a comunidade é aberta e útil, e decidi que mais vale fazer parte dela, pois estou a começar a entrar em guiões mais complexos e posso precisar de uma mão algures no caminho.

    De qualquer forma, aqui está um guião que escrevi usando este post

    • Neste guia, não falamos sobre a chave de inserção. Em vez disso, ao executar a NVDA, falamos sobre a chave NVDA. E ao executar JAWS, falamos sobre a chave JAWS.
      • Se o capslock for libertado depois de ter premido uma tecla de atalho, o capslock não será alternado na libertação.
      • Se uma tecla de atalho não tiver sido premida, o capslock será comutado como esperado.
      • Por favor, sinta-se à vontade para sugerir quaisquer melhorias ou alterações. Compreendo que este não é um guião muito complexo, mas pode ajudar alguém.
      • Membros

      567 postos

      Último activo: Dez 01 2014 07:59 PM

      Aderiu: 17 de Junho de 2008

      E porque não só CapsLock & a:: MsgBox, CapsLock & a ?

      Membros

      6 postos

      Último activo: 13 dez 2012 06:49 PM

      Aderiu: 09 Dez 2012

      • E porque não só CapsLock & a:: MsgBox, CapsLock & a ?
      • Porque este capslock é um dispositivo de fecho.
      • O meu método afixado acima impede que o capslock seja comutado quando uma tecla de atalho é premida, mas ainda permite que o capslock funcione quando uma tecla de atalho não é premida.
      • Membros

      567 postos

      • E porque não só CapsLock & a:: MsgBox, CapsLock & a ?
      • Aderiu: 17 de Junho de 2008
      • Para mim, não.
      • Membros

      567 postos

      Último activo: 13 dez 2012 06:49 PM

      Aderiu: 09 Dez 2012

      • E porque não só CapsLock & a:: MsgBox, CapsLock & a ?
      • Porque este capslock é um dispositivo de fecho.
      • O meu método afixado acima impede que o capslock seja comutado quando uma tecla de atalho é premida, mas ainda permite que o capslock funcione quando uma tecla de atalho não é premida.
      • Membros

      Último activo: Dez 01 2014 07:59 PM

      • E porque não só CapsLock & a:: MsgBox, CapsLock & a ?
      • Aderiu: 17 de Junho de 2008
      • Para mim, não.
      • Membros

      Último activo: Jun 16 2013 02:16 PM

      Aderiu: 14 Fev 2013

      • E porque não só CapsLock & a:: MsgBox, CapsLock & a ?
      • Porque este capslock é um dispositivo de fecho.
      • O meu método afixado acima impede que o capslock seja comutado quando uma tecla de atalho é premida, mas ainda permite que o capslock funcione quando uma tecla de atalho não é premida.
      • Membros

      A primeira vez que segurar e capslock e premir j, envia uma esquerda. Solte o capslock e depois tente novamente e não funciona. Simplesmente enviará um j.

      • E porque não só CapsLock & a:: MsgBox, CapsLock & a ?
      • Tentei com outras teclas como espaço, ou f, mas o problema com estas é o atraso introduzido quando se usa uma tecla como modificador. Quando digito rapidamente, o sistema não envia a chave, por vezes, de todo. O separador é a única tecla antes que não era utilizada durante a digitação rápida.
      • Vou actualizar este post quando tiver tido algum tempo para brincar com isto.
      • Membros

      1 postos

      Último activo: Fev 24 2013 03:02 AM

      Aderido: 23 Fev 2013

      O código no primeiro post não funcionaria no Windows 7 x64 . Não faço ideia porquê, mas modifiquei o código e consegui algo para funcionar:

      As notas que eu acrescentaria são:

      – Não me preocupava particularmente com o Capslock alternar letras maiúsculas e minúsculas intencionalmente ou não, juntamente com o ‘ ; faça algo aqui ‘.

      – usando ‘ 1 ‘ no código ‘ Gui, 1 ‘ é o único número que funcionou, e não qualquer outro número entre 2-99.

      – o GUI é criado no canto inferior direito de um ecrã de 1080p, ajustar em conformidade.

      • E porque não só CapsLock & a:: MsgBox, CapsLock & a ?
      • 1 postos
      • Último activo: Mar 12 2014 04:29 PM
      • Aderiu: 12 Mar 2014

      Olá Comunidade AHK.

      Este é o meu primeiro post aqui, no entanto, tenho estado a navegar nos fóruns há já algum tempo. Tenho notado como a comunidade é aberta e útil, e decidi que mais vale fazer parte dela, uma vez que estou a começar a entrar em guiões mais complexos e posso precisar de uma mão algures pelo caminho.

      De qualquer forma, aqui está um guião que escrevi usando este post

      Este guião é uma versão modificada do que foi encontrado acima. A minha permite manter/prevenir a funcionalidade Capslock enquanto a utiliza como chave modificadora.

      Se o capslock for libertado depois de ter premido uma tecla de atalho, o capslock não será alternado na libertação.

      • E porque não só CapsLock & a:: MsgBox, CapsLock & a ?
      • 1 postos
      • Queria acrescentar mais alguns comandos que utilizam também Capslock, mas não consegui acrescentar mais teclas de atalho directamente a seguir a outra.
      • O noob me então decidiu reduzir toda a área de atalhos/chaves quentes para adicionar mais atalhos usando Capslock, como o seguinte:

      Último activo: Dez 01 2014 07:59 PM

      Aderiu: 17 de Junho de 2008

      E porque não só CapsLock & a:: MsgBox, CapsLock & a ?

      Membros

      6 postos

      Último activo: 13 dez 2012 06:49 PM