Shell Scripting para criar um arquivo .desktop para um aplicativo portátil

Scripting Bash Shell: Crie um link de um aplicativo portátil.

Scripting Bash Shell: Crie um link de um aplicativo portátil.

O termo Shell aplicado a sistemas operacionais se refere ao interpretador de comandos do sistema operacional. Em geral, é uma interface de texto de alto desempenho que se manifesta na forma de um Terminal (Console) e que atende essencialmente a 3 importantes áreas de trabalho: Administrar o Sistema Operacional, Executar aplicativos e interagir com eles e servir como um programação básica de ambiente. E Scripting se refere à técnica de projetar e criar Scripts usando um Shell.

Scripts de shell são extremamente úteis. É uma boa ideia escrever todas as necessidades que temos e, em seguida, editar os scripts que fazem esse trabalho para nós. E, neste caso específico, vamos usá-lo para criar links de aplicativos (atalhos) no menu iniciar e na área de trabalho de aplicativos portáteis, autoexecutáveis ​​e independentes.

Aplicativo Alacarte Linux

Introdução

Muitas vezes baixamos e instalamos aplicativos que, estando ou não nos repositórios de nossa Distribuição GNU / Linux, ao instalá-la ou executá-la não cria os respectivos arquivos .desktop do mesmo ou na melhor das hipóteses não o coloque no caminho correto para que após a atualização do Menu Iniciar seja lido e mostrado na lista de pacotes instalados do Sistema Operacional.

Portanto, temos que apelar ao uso de aplicativos como o "Alacarte" ou "Menulibre" para criar manualmente o respectivo link no Menu Iniciar.

E embora esses aplicativos gráficos sejam muito simples de usar para esse fim, nunca é demais saber criar nosso próprio script para realizar esta operação e assim saber de dentro como esta operação é realizada dentro do sistema operacional.

Se você não está familiarizado com a criação e / ou uso de arquivos Shell Scripting, você pode Leia isso postagem anterior (Shell, Bash e Scripts) para começar e então, se necessário, explorar todas as publicações sobre o assunto.

Aplicativo de menu livre Linux

Criando o programa usando Shell Scripting

Assumiremos por questões de espaço que já sabemos criar um script do zero, ou seja, já sabemos criar o cabeçalho ou partes iniciais de nosso script e iremos diretamente ao seu conteúdo.

No entanto, se você tiver dúvidas sobre isso, verifique este post anterior (Construa seu programa passo a passo usando Shell Scripting - Parte 1) para esclarecer dúvidas.

conteúdo


#!/usr/bin/env bash
set -eou pipefail
IFS=$'\n\t'
setterm --reset
# NOMBRE: MI-APP LINUX POST INSTALL - SCRIPT BICENTENARIO (MIAPP-LPI-SB)
# VERSIÓN: 1.0+0
# TIPO DE PROGRAMA: SISTEMA EXPERTO
# FUNCIÓN: ASISTENTE TECNICO PARA S.O. GNU/LINUX BASADOS EN DEBIAN
# NOMBRE CODIGO: MIAPP (MIAPP-LPI-SB 1.0+0)
# PAIS ORIGEN: Mi país
# CREADO POR: Mi Nombre
# LICENCIA: Licencia Pública General de GNU 3.

###############################################################################
# INICIO DEL MODULO DE VALIDACION PERMISO DE SUPERUSUARIO (ROOT) SOBRE EL MIAPP-LPI-SB              
###############################################################################

# ESTE MODULO VALIDA QUE SOLO EL SUPERUSUARIO (USUARIO ROOT) PUEDA EJECUTAR
# EL LINUX POST INSTALL - SCRIPT BICENTENARIO.

clear

setterm -background red

if [[ "$(id -u)" != "0" ]]; then
   echo "ESTE SCRIPT DEBE SER EJECUTADO COMO ROOT"
   sleep 3
   clear      
  else
   echo "ESTE SCRIPT SERA EJECUTADO COMO SUPERUSUARIO (ROOT)"
   sleep 3
   clear
fi

###############################################################################
# FINAL DEL MODULO DE VALIDACION PERMISO DE SUPERUSUARIO (ROOT) SOBRE EL MIAPP-LPI-SB
###############################################################################


###############################################################################
# INICIO DEL MODULO DE ORDENES DE COMANDO DE POST INSTALACIÓN
###############################################################################

rm -f $HOME/mi_app/mi_app.desktop
rm -f $HOME/.local/share/applications/mi_app.desktop
rm -f $HOME/Desktop/mi_app.desktop
rm -f $HOME/Escritorio/mi_app.desktop
rm -f /usr/share/applications/mi_app.desktop

###############################################################################

echo "
[Desktop Entry]
Name=My Applicattions
GenericName=My Applicattions
GenericName[es]=Mi Aplicación
Comment=Mi Aplicación
Exec=/opt/mi_app/mi_app
Icon=`echo $HOME`/mi_app/icono_app.png
Terminal=false
Type=Application
Encoding=UTF-8
Categories=Network;Application;
MimeType=x-scheme-handler/mozilla;
X-KDE-Protocols=mozilla
" > `echo $HOME`/mi_app/mi_app.desktop

chown $USER:$USER -R `echo $HOME`/mi_app/mi_app.desktop

chmod 755 `echo $HOME`/mi_app/mi_app.desktop

ln -s `echo $HOME`/mi_app/mi_app.desktop $HOME/.local/share/applications/mi_app.desktop
ln -s `echo $HOME`/mi_app/mi_app.desktop $HOME/Desktop/mi_app.desktop
ln -s `echo $HOME`/mi_app/mi_app.desktop $HOME/Escritorio/mi_app.desktop
ln -s `echo $HOME`/mi_app/mi_app.desktop /usr/share/applications/mi_app.desktop

update-menus

###############################################################################

clear

su - $USER -c "xdg-open 'https://www.mi-app.com/'"

clear

echo ''
echo ''
echo '#------------------------------------------------------------------#'
echo '# GRACIAS POR USAR MI-APP LINUX POST INSTALL #'
echo '#------------------------------------------------------------------#'
echo ''
echo ''

sleep 3

###############################################################################
# FINAL DEL MODULO DE ORDENES DE COMANDO DE POST INSTALACIÓN
###############################################################################
Conteúdo do roteiro no Mousepad

Conteúdo do roteiro no Mousepad

comentários

Como você pode analisar a partir do código e omitir o cabeçalho, o script a seguir executa as seguintes operações de maneira automatizada:

  1. Valide se você está sendo usado como superusuário root ou permissão de superusuário root.
  2. Exclua links anteriores no aplicativo que foram criados por uma versão anterior.
  3. Crie o novo arquivo .desktop (link) do aplicativo em sua própria pasta dentro da casa do usuário.
  4. Atribua ao usuário permissão de proprietário para o arquivo criado.
  5. Dê ao arquivo criado as permissões apropriadas de leitura / gravação / execução.
  6. Crie os novos links simbólicos para as rotas necessárias.
  7. Atualize o menu iniciar para exibir o arquivo .desktop criado.
  8. Execute um URL específico no aplicativo criado.

Recomendação

Recomenda-se que este arquivo seja criado dentro da pasta que contém o aplicativo / executável em questão com seu respectivo ícone (imagem / logotipo) especificado dentro dele e que a referida pasta esteja localizada no caminho /opt em vez da rota `echo $HOME`/mi_app/ quer dizer, /home/mi_usuario/mi_app.

Espero que este pequeno roteiro permita que você resolva suas necessidades nesse sentido! Até o próximo artigo.

Enquanto eu te deixo isso link no site oficial do Gnome sobre o assunto e este vídeo:


Deixe um comentário

Seu endereço de email não será publicado. Campos obrigatórios são marcados com *

*

*

  1. Responsável pelos dados: Miguel Ángel Gatón
  2. Finalidade dos dados: Controle de SPAM, gerenciamento de comentários.
  3. Legitimação: Seu consentimento
  4. Comunicação de dados: Os dados não serão comunicados a terceiros, exceto por obrigação legal.
  5. Armazenamento de dados: banco de dados hospedado pela Occentus Networks (UE)
  6. Direitos: A qualquer momento você pode limitar, recuperar e excluir suas informações.

  1.   Projeto de lei dito

    Muito obrigado por este e todos os seus artigos.
    Uma pergunta: como, se você não for root, pode pedir a senha com asteriscos para continuar a execução com as permissões apropriadas?

    1.    Eng. José Albert dito

      Você pode criar uma interface com diálogo e aplicar à caixa de solicitação de senha a propriedade de criptografar a chave! Lembro bem que esta propriedade existe em diálogo.

      Nesse post anterior, alguém fez algo semelhante, mas graficamente, mas os arquivos anexados, ou seja, o código utilizado não está mais disponível: https://blog.desdelinux.net/script-avanzado-en-bash-bashmd5-para-proteger-algo-explicacion-detallada/

  2.   Projeto de lei dito

    Obrigado, seria bom não ter que sair do ambiente bash caso ele rode sem uma interface gráfica, nesse caso não importa mesmo que não haja asteriscos nem nada, que ele peça a chave e nenhum texto apareça. Ummm, eu encontro em http://www.tormentadebits.com/2012/08/scripts-bash-introducir-password-sin-mostrarlo-en-pantalla.html