AskOverflow.Dev

AskOverflow.Dev Logo AskOverflow.Dev Logo

AskOverflow.Dev Navigation

  • Início
  • system&network
  • Ubuntu
  • Unix
  • DBA
  • Computer
  • Coding
  • LangChain

Mobile menu

Close
  • Início
  • system&network
    • Recentes
    • Highest score
    • tags
  • Ubuntu
    • Recentes
    • Highest score
    • tags
  • Unix
    • Recentes
    • tags
  • DBA
    • Recentes
    • tags
  • Computer
    • Recentes
    • tags
  • Coding
    • Recentes
    • tags
Início / ubuntu / Perguntas / 1327789
Accepted
jay.sf
jay.sf
Asked: 2021-03-29 11:08:48 +0800 CST2021-03-29 11:08:48 +0800 CST 2021-03-29 11:08:48 +0800 CST

Como executar automaticamente uma ou mais linhas de código após a inicialização?

  • 772

Na verdade, eu só quero executar automaticamente a seguinte linha de código após a inicialização, o que permite a configuração do teclado genius eurkey :

setxkbmap eurkey

Seguindo este guia , cujo exemplo original funcionou sem problemas, fiz o seguinte sem sucesso:

# create systemd service file
$ sudo touch /etc/systemd/system/eurkey.service
$ sudo nano /etc/systemd/system/eurkey.service
  [Unit]
  After=network.service

  [Service]
  ExecStart=/usr/local/bin/eurkey.sh

  [Install]
  WantedBy=default.target

# create script
$ sudo touch /usr/local/bin/eurkey.sh
$ sudo nano /usr/local/bin/eurkey.sh 
  #!/bin/bash
  setxkbmap eurkey

# set permissions
$ sudo chmod 744 /usr/local/bin/eurkey.sh
$ sudo chmod 664 /etc/systemd/system/eurkey.service

# enable service unit
$ sudo systemctl daemon-reload
$ sudo systemctl enable eurkey.service

# reboot
$ sudo reboot

No entanto, o código não será executado. o que estou perdendo? Por que funciona com o código do guia e não com minha própria linha de código? Eu estava planejando adicionar um número arbitrário de linhas mais tarde (que eu chamaria de script). Esta é a abordagem errada?

Um guia muito semelhante que encontrei aqui no ask ubuntu .

boot
  • 2 2 respostas
  • 312 Views

2 respostas

  • Voted
  1. Best Answer
    Adriaan
    2021-03-30T06:36:34+08:002021-03-30T06:36:34+08:00

    Se você quiser iniciar um script quando o Gnome estiver iniciando, veja aqui . Colocar um setxkbmapin .bashrcnão ajudará se o servidor X não estiver rodando (ainda) e se você não estiver (manualmente!) iniciando um terminal toda vez que o servidor X for iniciado. Advertência: não tentei nenhuma das 'soluções', porque verifiquei a solução abaixo e funciona:

    Se você editar dois arquivos (como superusuário - tenha cuidado!) em seu sistema, você pode fazer com que cada usuário configure o layout por si mesmo e nunca mais se preocupe com isso:

    sudo nano /usr/share/X11/xkb/rules/evdev.xml
    

    e insira o seguinte logo abaixo da variante altgr-intl:

        <variant>
          <configItem>
            <name>eu</name>
            <!-- Keyboard indicator for European layouts -->
            <shortDescription>eu</shortDescription>
            <description>EurKEY (US based layout with European letters)</description>
            <languageList>
              <iso639Id>cat</iso639Id>
              <iso639Id>dan</iso639Id>
              <iso639Id>eng</iso639Id>
              <iso639Id>est</iso639Id>
              <iso639Id>fao</iso639Id>
              <iso639Id>fin</iso639Id>
              <iso639Id>ger</iso639Id>
              <iso639Id>gre</iso639Id>
              <iso639Id>gsw</iso639Id>
              <iso639Id>ita</iso639Id>
              <iso639Id>lav</iso639Id>
              <iso639Id>lit</iso639Id>
              <iso639Id>nld</iso639Id>
              <iso639Id>nor</iso639Id>
              <iso639Id>por</iso639Id>
              <iso639Id>spa</iso639Id>
              <iso639Id>swe</iso639Id>
            </languageList>
          </configItem>
        </variant>
    

    (Eu peguei isso /usr/share/X11/rules/evdev.extra.xmle substituí layoutpor variant. Observe que o francês está faltando: você não encontrará esta variante se escolher o francês (veja abaixo).) Próxima edição:

    sudo nano /usr/share/X11/xkb/rules/xorg.lst
    

    e insira uma linha abaixo de altgr-intl:

          eurkey          us: English (US based layout with European letters)
    

    A última coisa que você precisa fazer é reconfigurar o xkb-data:

    sudo dpkg-reconfigure xkb-data
    

    Agora, o usuário poderá executar gnome-control-center(também conhecido como 'Configurações'), ir para 'Região e idioma' e adicionar um layout de teclado:

    Seleção de idioma no gnome-control-center

    Escolha English (United States)e veja isso depois de rolar um pouco para baixo:

    insira a descrição da imagem aqui

    Escolha EurKEY e esse usuário está pronto, mesmo quando o sistema é desligado e reiniciado. Em outras palavras: o setxkbmap eunão é mais necessário!


    Pode haver algo errado com a forma como o EurKEY é integrado. O setxkbmap eufunciona fora da caixa no meu Ubuntu 20.04, mas não consigo encontrá-lo em nenhum lugar gnome-control-center(se é isso que significa "painel de configuração de layout de teclado" no site EurKEY).

    Em seu site , há um arquivo eurkey.deb. Olhando dentro ( ar -x eurkey.debe tar xvf control.tar.gz) encontramos um postinstscript que edita alguns arquivos xml em /usr/share/X11/xkb/rules. As edições são diferentes do que é distribuído, mas usei para ver como eles faziam. Eles estão adicionando um layout chamado eu, mas não sei como selecionar o idioma eu. Então, novamente, eu não sou nenhum especialista.

    Desenvolvemos uma alternativa altgr-intlque se adapta um pouco melhor aos idiomas europeus e no processo tivemos que fazer algo semelhante para o novo layout.

    Layouts de teclado que se adaptam a todos são difíceis de fazer. EurKEY foi feito na Alemanha e mostra: os portugueses usam muito a-til e o-til, mas não está no EurKEY. Eu gosto mais do nosso novo altgr-weur , mas sou tendencioso!

    • 2
  2. Rinzwind
    2021-03-29T11:54:26+08:002021-03-29T11:54:26+08:00

    No entanto, o código não será executado. o que estou perdendo?

    Isso acontece, mas não permanece ativo: o que você fez provavelmente será substituído pelo que está acontecendo posteriormente na cadeia do systemd. Você precisa fazer isso o mais tarde possível, mas como isso também não sobreviverá quando você mudar de layout e precisará refazer isso toda vez que trocar de teclado.

    Você pode colocar

    setxkbmap eurkey
    

    no final de .bashrcfazer

    vim ~/.bashrc 
    

    ter um método de trabalho, mas isso também não sobreviverá à troca de teclados.

    Se isso for um problema, o link que você postou tem a resposta para o que precisa ser feito:

    Aplicar o esquema

    Execute setxkbmap

    setxkbmap eurkey
    

    Ou escolha EurKEY no painel de configuração do layout do teclado . EurKEY é disponibilizado nas listas de layout dos seguintes idiomas

    Essa última parte o torna permanente e também o aplicará se você trocar de teclado.

    • 0

relate perguntas

Sidebar

Stats

  • Perguntas 205573
  • respostas 270741
  • best respostas 135370
  • utilizador 68524
  • Highest score
  • respostas
  • Marko Smith

    Existe um comando para listar todos os usuários? Também para adicionar, excluir, modificar usuários, no terminal?

    • 9 respostas
  • Marko Smith

    Como excluir um diretório não vazio no Terminal?

    • 4 respostas
  • Marko Smith

    Como descompactar um arquivo zip do Terminal?

    • 9 respostas
  • Marko Smith

    Como instalo um arquivo .deb por meio da linha de comando?

    • 11 respostas
  • Marko Smith

    Como instalo um arquivo .tar.gz (ou .tar.bz2)?

    • 14 respostas
  • Marko Smith

    Como listar todos os pacotes instalados

    • 24 respostas
  • Martin Hope
    Flimm Como posso usar o docker sem sudo? 2014-06-07 00:17:43 +0800 CST
  • Martin Hope
    led-Zepp Como faço para salvar a saída do terminal em um arquivo? 2014-02-15 11:49:07 +0800 CST
  • Martin Hope
    ubuntu-nerd Como descompactar um arquivo zip do Terminal? 2011-12-11 20:37:54 +0800 CST
  • Martin Hope
    TheXed Como instalo um arquivo .deb por meio da linha de comando? 2011-05-07 09:40:28 +0800 CST
  • Martin Hope
    Ivan Como listar todos os pacotes instalados 2010-12-17 18:08:49 +0800 CST
  • Martin Hope
    David Barry Como determino o tamanho total de um diretório (pasta) na linha de comando? 2010-08-06 10:20:23 +0800 CST
  • Martin Hope
    jfoucher "Os seguintes pacotes foram retidos:" Por que e como resolvo isso? 2010-08-01 13:59:22 +0800 CST
  • Martin Hope
    David Ashford Como os PPAs podem ser removidos? 2010-07-30 01:09:42 +0800 CST

Hot tag

10.10 10.04 gnome networking server command-line package-management software-recommendation sound xorg

Explore

  • Início
  • Perguntas
    • Recentes
    • Highest score
  • tag
  • help

Footer

AskOverflow.Dev

About Us

  • About Us
  • Contact Us

Legal Stuff

  • Privacy Policy

Language

  • Pt
  • Server
  • Unix

© 2023 AskOverflow.DEV All Rights Reserve