Script de nível de usuário executado pelo lightdm

2

Gostaria de fazer o remapeamento principal que afeta apenas o meu usuário, mas em todo o meu gerenciador de janelas, não apenas em um terminal.

No lightdm, seleciono o awesome como meu gerenciador de janelas e efetuo login. Há algum gancho para configuração por usuário antes do xserver iniciar? .xinitrc e .xsession não parecem ser executados por lightdm. Melhor ainda seria uma solução que exigisse um ponto de entrada que fizesse os principais remapeamentos, independentemente do gerenciador de janelas, mas parece que diferentes gerenciadores de janela têm diferentes convenções de como se encaixar.

    
por Thomas 01.04.2012 / 21:06

1 resposta

4

Se você está apenas interessado em remapear as teclas de uma maneira que funcione para qualquer ui, eu acho que tenho um jeito para qualquer wm comum, mas você provavelmente teria que configurá-lo por wm. Por exemplo, no Awesome, adiciono a seguinte linha ao final do meu rc.lua :

awful.util.spawn_with_shell("/usr/bin/setxkbmap -option caps:swapescape -option altwin:ctrl_win")

com meus outros itens de autostart. As opções acima trocarão escape e capslock e mapear as teclas "windows" (e as teclas ctrl usuais) para ctrl.

Qualquer que seja o DE ou o wm que você usa, ele deve oferecer uma maneira de iniciar automaticamente os comandos. A inicialização automática do comando setxkbmap apropriado deve remapear suas chaves. Eu fiz isso em vários gerenciadores de janelas. AFAIK, essa é a maneira confiável e "adequada" de remapear as teclas, em contraste com o xmodmap, que parece flakey.

Para remapear as teclas desejadas, você precisa conhecer as opções apropriadas e os valores-chave a serem transmitidos. Você pode encontrar uma lista em /usr/share/X11/xkb/rules/xorg.lst

Claro, você pode usar setxkbmap em .xinitrc também, mas como você apontou, o lightdm não parece usá-lo ao carregar as sessões. Como eu uso lightdm também, eu não costumo pensar em editar xinitrc , mas me ocorreu que deveria haver uma maneira de iniciar uma sessão X definida pelo usuário através do lightdm ... e eu encontrei esta resposta . Isso pode estar mais de acordo com o que você quer fazer.

    
por Chan-Ho Suh 17.04.2012 / 00:45