Execute o script na inicialização do X11

2

Eu tive um problema com o Caps e tenho um script para corrigir isso. Infelizmente, esse script funciona até a reinicialização:

# Fix caps
xkbcomp -xkb "$DISPLAY" - | sed 's#key <CAPS>.*#key <CAPS> {\
    repeat=no,\
    type[group1]="ALPHABETIC",\
    symbols[group1]=[ Caps_Lock, Caps_Lock],\
    actions[group1]=[ LockMods(modifiers=Lock),\
    Private(type=3,data[0]=1,data[1]=3,data[2]=3)]\
};\
#' | xkbcomp -w 0 - "$DISPLAY"
exit 0

Gostaria apenas de adicioná-lo aos aplicativos de inicialização, mas gostaria de executá-lo na inicialização do LightDM ou até mesmo no X11 start. Existe alguma maneira de executar este script na inicialização do X11? Estou usando o Xubuntu 16.04.2.

Obrigado.

    
por Mcpg 10.07.2017 / 14:05

1 resposta

3

Tente o seguinte:

  1. Coloque seu script em um diretório do sistema como / usr / local / bin com um shebang adequado

    #!/bin/sh
    
    # Fix caps
    /usr/bin/xkbcomp -xkb "$DISPLAY" - | /bin/sed 's#key <CAPS>.*#key <CAPS> {\
        repeat=no,\
        type[group1]="ALPHABETIC",\
        symbols[group1]=[ Caps_Lock, Caps_Lock],\
        actions[group1]=[ LockMods(modifiers=Lock),\
        Private(type=3,data[0]=1,data[1]=3,data[2]=3)]\
    };\
    #' | xkbcomp -w 0 - "$DISPLAY"
    exit 0
    
  2. Torne-a executável, por ex. sudo chmod +x /usr/local/bin/fix-caps.sh

  3. Crie um arquivo de configuração personalizado em /etc/lightdm/lightdm.conf.d . Use um nome como 99-local-settings.conf . (O prefixo 99 significa que ele será executado após os scripts de configuração padrão fornecidos em /usr/share/lightdm/lightdm.conf.d .)

    Adicione a localização do seu script como display-setup-script int na seção [SeatDefaults] :

    [SeatDefaults]
    display-setup-script = /usr/local/bin/fix-caps.sh
    

O display-setup-script deve ser executado após o servidor X ser iniciado, mas antes que qualquer greeter seja executado - veja LightDM: Adicionando ganchos do sistema .

    
por steeldriver 10.07.2017 / 15:37