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.
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
numlockx
ou numlockx on
numlockx off
numlockx toggle
vi ~/.config/i3/config
e adicionar a linha: exec numlockx on
, ou simplesmente rodar esse comando:echo 'exec numlockx on' >> ~/.config/i3/config
vi ~/.config/bspwm/bspwmrc
e adicionar a linha: /usr/bin/numlockx on
, ou simplesmente rodar esse comando:echo '/usr/bin/numlockx on' >> ~/.config/bspwm/bspwmrc
/etc/lightdm/lightdm.conf
e alterar a linha que possui a informação: greeter-setup-script
que fica na tag [Seat:*], descomentar (tirar a tralha # da frente, se houver) e atribuir o comando: /usr/bin/numlockx on
, ficando assim:greeter-setup-script=/usr/bin/numlockx on
~/.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
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:
setleds
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
xkb
rodando o comando xkbcomp $DISPLAY myconf.xkb
, isso vai criar um arquivo no diretório que você estiver como o nome myconf.xkb, onde você pode ver as configurações do mesmo e alterar a linha que exemplo: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
, talvez até depois de alterar seu xkb
, assim:xset led named 'Num Lock'
Para isso rode os comandos:
setxkbmap -model abnt2 -layout br -variant abnt2
ou adicione ao config do seu bspwm, .xinitrc, .xprofile , somente no i3wm que você possa ter algum tipo de problema, mas você pode alternar para um script.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.
É 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