Como Habilitar o Numlock no i3wm, bspwm e no LightDM e +2 dicas bônus

Poupe sua paciência e veja como torná-lo padrão no seu Linux ou Unix-like.


Numlock

Muitas vezes quando você inicia o LightDM para logar no sistema e tenta usar Numlock (teclado numérico), se sua senha possuir números, você acaba errando a senha ou tendo que habilitá-lo manualmente porque o mesmo não está habilitado por padrão.

A mesma coisa acontece quando você loga no sistema e percebe que o numlock não foi habilitado automaticamente .

Então nesse tutorial vamos usar de cobaia o i3wm e o bspwm e nesses dois exemplos, você pode adaptar a qualquer WM ou interface gráfica que não esteja habilitado e você deseja que isso aconteça por padrão.

Introdução

Existem várias formas de habilitar o numlock via linha de comando, veja alternativas ao final desse artigo, mas aqui vamos utilizar a forma mais estável e confiável. Para isso vamos utilizar o NumlockX . Até poque muitas formas dependerão da distribuição, sistemas de inicialização e shell.

Logo, esse método, podemos dizer que é infalível! =)

Primeiro certifique-se que possui o numlockx instalado no seu sistema:

Se retornar somente o caminho do numlockx, ex: /usr/bin/numlockx , é porque está instalado, se aparecer, ex.: which: no numlockx in (/usr/lib/llvm/8/bin:/usr/lib/llvm/7/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/opt/bin) , é porque não está instalado.

which numlockx

Se não estiver instalado, instale via o gerenciador de repositório da sua distro, exemplos:

emerge numlockx # Gentoo, Funtoo e similares
sudo apt install numlockx # Debian, Ubuntu, Linux Mint e similares
sudo pacman -S numlockx # Arch Linux, Manjaro e similares
sudo yum install numlockx # Red Hat, CentOS e similares
sudo dnf install numlockx # Fedora

Utilizando

Adicionar o NumlockX ao i3wm, bspwm e LightDM ao iniciar a sessão

echo 'exec numlockx on' >> ~/.config/i3/config
echo '/usr/bin/numlockx on' >> ~/.config/bspwm/bspwmrc
greeter-setup-script=/usr/bin/numlockx on

Alternativamente no LightDM , ele lê o arquivo: ~/.xprofile ao iniciar a sessão, logo, bastar você adicionar o comando ao mesmo:

echo 'numlockx on' >> ~/.xprofile

Se não estiver usando LightDM e estiver logando via startx , basta usar o mesmo comando para seu ~/.xinitrc

Outras alternativas

Como havia dito existem outras alternativas, mas pode ser que não funcione, pois depende de alguns fatores, bem como:

E em outros Display Managers (alternativas ao LightDM) , também tem seus modos particulares. Mas em resumo, outras opções são:

su -c "/usr/bin/setleds -D +num < /dev/tty1"

Vai pedir sua senha de root , você pode até setar o numlock em TTYs com posições definidas, para ver como rode esse comando man setleds | grep -A 4 -B 1 '\[1-8\]' , a saída será similar a essa:

Onde mostra que você pode criar Shell Script para isso

marcos@gentoo ~ $ man setleds | grep -A 4 -B 1 '\[1-8\]'
       One might use setleds in /etc/rc to define the initial and default state of NumLock, e.g. by
            INITTY=/dev/tty[1-8]
            for tty in $INITTY; do
                 setleds -D +num < $tty
            done

marcos@gentoo ~ $ 

Lembrando também que você precisa saber o número do tty , para descobrir você pode usar os comandos para descobrir:

Observação: o número do pseudoterminal pts(/dev/pts/[NÚMERO]) pode não coincidir com o do tty(/dev/tty[NÚMERO])

  • tty
  • who
  • Ou simplesmente, rodar o comando: w
indicator "Num Lock" {
	!allowExplicit;
	whichModState= locked;
	modifiers= NumLock;
};

Altere a linha que tem !allowExplicit retirando o sinal de exclamação do final: allowExplicit , depois é só reler o arquivo: xkbcomp myconf.xkb $DISPLAY.

xset led named 'Num Lock'

Bônus 1

Deixando seu teclado em em Português Brasil

Para isso rode os comandos:

Bônus 2

Habilitando cursor theme e/ou Policikit

Se você possui Polybar e usa Polybar , mas também tem o GNOME nessa máquina do Gentoo, mas o sistema, principalmente o Polybar não reconhece o tema do seu cursor, use essa linha no seu bspwmrc : /usr/libexec/gsd-xsettings & .

E se você não consegue abrir uma aplicação por conta de privilégios usando user normal ou root, ou sudo, inclua o policikit no seu bspwmrc ou config do i3 exec_always --no-startup-id /usr/lib/policykit-1-gnome/polkit-gnome-authentication-agent-1 &

Dica, verifique antes se existe esse arquivo, pois você pode está usando outro gerenciador de políticas de sessão: ls /usr/lib/policykit-1-gnome/polkit-gnome-authentication-agent-1 se retornar o caminho, é porque você utiliza, se não, descubra qual seu software e substitua o caminho.

Conclusão

É uma tarefa simples e existe diversas alternativas, mas como sempre é bom saber o que está fazendo pra não acabar comprando gato por lebre . Para mais informações use o manual do próprio sistema:

man {numlockx,setleds,xkb,xkbcomp,setxkbmap} | less

Compartilhe

Marcos Oliveira

Autor
Marcos Oliveira
Desenvolvedor de Software
youtube.com/TerminalRootTV

Pacote Promocional com Todos os Cursos

Adquira todos os cursos para se tornar um ninja do Terminal e do Linux.

Artigos Relacionados



Comentários