[Tutorial] sxhkd - Atalhos de teclado independentes de DE ou WM
Leitura:
O sxhkd oferece um modo simples de obter atalhos de teclado no X.org, de autoria do mesmo criador do bspwm.
O processo do sxhkd deve ser iniciado (idealmente junto com o DE ou WM), então aguardará eventos de teclado para então executar alguma ação estabelecida se houver algum atalho descrito no arquivo de configuração. Seu arquivo de configuração fica em ~/.config/sxhkd/sxhkdrc
.
Cada linha no arquivo de configuração é entendida da seguinte forma:
- Se a linha inicia com #, é ignorada (marcação de comentário)
- Se a linha inicia com um ou mais espaços em branco, é entendida como um comando
- Senão for comentário ou comando, será entendida como descricação de atalho, o nome das teclas são separados por espaço e/ou
+
.
Antes de iniciar a especificação, busque os nomes das teclas no X.org. Isso pode ser feito através do xev
(v. https://wiki.archlinux.org/index.php/Keyboard_input#Identifying_keycodes_in_Xorg):
$ xev | awk -F'[ )]+' '/^KeyPress/ { a[NR+2] } NR in a { printf "%-3s %s\n", $5, $8 }' 110 Home 112 Prior 117 Next 115 End 59 comma 60 period 61 semicolon 49 apostrophe 62 Shift_R 49 quotedbl 34 dead_acute 35 bracketleft 48 dead_tilde 51 bracketright 135 Menu 133 Super_L
Vale também ler o manual do sxhkd.
De posse dos nomes das teclas, a escrita é bastante simples. Segue modelo:
# Abrir terminal super + Return termite # Abrir explorador de arquivos super + f nemo --geometry=1000x600 # Abrir cliente youtube de terminal super + y termite -e mpsyt
O sxhkd chama o shell para executar os comandos, o que possibilita usar variáveis de ambiente (definidas no profile), além do uso de funcionalidades do shell como o direcionamento de saídas de comandos:
# Abrir navegador de terminal super + w $TERMINAL_CLIENT -e links # Abir histórico do Clipman super + F1 xfce4-popup-clipman 2> /dev/null
Criando um arquivo em ~/.local/bin/
chamado hkreload, e adicionando o caminho ao $PATH
no arquivo .profile (export PATH="$PATH:$HOME/.local/bin"
) é possível criar um atalho para reiniciar o processo, para que alterações na configuração tenham efeito:
# Recarregar sxhkd super + Escape hkdreload
Aqui se abrem diversas possibilidades, pois é possível chamar qualquer shell script com permissão de execução com atalho de teclado, o que abre para scripts com o dmenu
.
Criando um arquivo dmenutmuxsession e outro dmenurc em ~/.local/bin/
é possível obter um seletor de sessões do tmux (v. Comunidade Fedora - Tmux):
# Seletor de sessão do Tmux super + alt + Return dmenutmuxsession
Usando algumas sintaxes mais complexas, é possível configurar múltiplos atalhos por entrada:
# Controle de servidor de música super + {dead_acute,bracketleft,dead_tilde,bracketright} mpc {volume -2,volume +2,toggle,stop} super + alt + {dead_tilde,bracketright} mpc {prev,next} super + {shift,control} + dead_tilde mpc seek -0{0:1,1:0}0 super + {shift,control} + bracketright mpc seek +0{0:1,1:0}0 super + {shift,control,alt} + dead_acute mpc seek -{05,10,30}:00 super + {shift,control,alt} + bracketleft mpc seek +{05,10,30}:00
Marcando a lembrança que é independente de DE e de WM, então funcionará no Gnome, no Plasma, no i3, no Openbox ou onde quiser (menos no TTY), bastando iniciar o processo do sxhkd junto com o ambiente gráfico.
Salas de discussão
- 721 Todas as salas de discussão
- 5 Eventos
- 402 Fedora
- 7 CoreOS
- 137 Spins
- 11 CINNAMON
- 28 GNOME
- 63 KDE
- 10 LXDE
- 4 LXQT
- 13 MATE
- SOAS
- 3 XFCE
- 13 Server
- 84 Workstation
- 33 SilverBlue
- Atomic
- 3 Labs
- ARM®
- 3 Segurança
- 7 Servidores
- 222 Tutoriais
- 6 Críticas e Sugestões
- 16 Novidades e anuncios
- 5 CentOS
- 18 Games
- 31 Hardware
- 8 Linguagens de programação