Criando arquivos .desktop - Apenas algumas perguntas

1

Gostaria de fazer algumas perguntas sobre os arquivos .desktop e descobrir algo que acho que seria bastante estiloso.

Começarei dizendo que estou executando [elementary OS Luna] com o kernel [3.2.0-65-generic-pae].

Eu sei um pouco sobre os arquivos .desktop e o que eles fazem. Eu aprendi com alguém no eOS IRC. Uma pequena coisa sempre me incomodava em fazer o meu próprio. Quando você abre um aplicativo através de seu .desktop, ele irá iluminar esse ícone no Ubuntu, eu acredito. Na eOS, temos um pequeno indicador de luz também. Ele fica com o próprio ícone. Quando você faz o seu próprio, isso não acontece.

Por exemplo, eu fiz um .desktop que se liga a um .sh que abriria um .jar. Quando clico no ícone, ele faz o que eu gostaria e abre. A única coisa que eu não gosto é o fato de que há um ícone totalmente novo que aparece. É o ícone do Oracle Java, e é embaçado, bem como uma ferida nos olhos. Eu estava curioso para saber se há um comando que eu possa colocar no meu .desktop que permitirá que ele ilumine apenas o ícone original e, como outros aplicativos, faça isso.

Além disso, fiquei curioso para saber se havia uma maneira de converter coisas como .png para o formato de arquivo dos ícones .desktops.

Obrigado em avançado.

    
por Brendon 19.07.2014 / 10:02

2 respostas

3

  

Primeiro eu sugiro que você assista o log do seu arquivo :

     

Abra Terminal
auditctl -a exit,always -w /path/to/file e pressione Enter .
sudo nano /var/log/audit/audit.log < em> e pressione Digite para assistir log .

Referência completa do Freedesktop.org: Especificação de entrada na área de trabalho

Exemplo do Freedesktop

[Desktop Entry]
Version=1.0
Type=Application
Name=Foo Viewer
Comment=The best viewer for Foo objects available!
TryExec=fooview
Exec=fooview %F
Icon=fooview
MimeType=image/x-foo;
Actions=Gallery;Create;

[Desktop Action Gallery]
Exec=fooview --gallery
Name=Browse Gallery

[Desktop Action Create]
Exec=fooview --create-new
Name=Create a new Foo!
Icon=fooview-new  
  

Citação: Ícone a ser mostrado junto com a ação. Se o nome for um caminho absoluto, o arquivo fornecido será usado. Se o nome não for um caminho absoluto, o algoritmo descrito na Especificação do tema de ícones será usado para localizar o ícone. Implementações podem optar por ignorá-lo.

     
    

LEIA SOBRE

  

Bom tutorial curto de Joe Reimero: Anatomia de a. Arquivo da área de trabalho

Exemplo de Joe Reimero

[Desktop Entry]
Encoding=UTF-8
Version=1.0
Type=Application
Terminal=false
Exec=$HOME/MyApplication
Name=My Application
Icon=$HOME/Icons/MyIcon.png

Por Joe, eu concordo que o caminho para o Icon pode ser absoluto OR relativo e depende de qual padrão você escolheu para construir seu link simbólico. Tradicionalmente, é PNG.

Ótimo tutorial especial para você: Turn seus aplicativos Java compatíveis com o Gnome-Shell

[Desktop Entry]
Version=10.5.1
Name=IntelliJ IDEA Ultimate Edition
Comment=The Most Intelligent Java IDE
Categories=Applications;Development;
Encoding=UTF-8
Exec=env IDEA_CLASSPATH\=../lib/asm.jar /home/diego/bin/ideaIU-10.5/bin/idea.sh
GenericName=IntelliJ
Icon=/home/diego/bin/ideaIU-10.5/bin/idea128.png
MimeType=text/x-java
Terminal=false
Type=Application
URL=http://www.jetbrains.com/idea  

Nota para a linha:

Exec=env IDEA_CLASSPATH\=../lib/asm.jar /home/diego/bin/ideaIU-10.5/bin/idea.sh

onde você vê a variável CLASSPATH ao lado de exec.

Alguma chance de que isso também possa ajudar a dizer "OS Luna":

  

Os arquivos .desktop seguem a especificação de entrada da área de trabalho freedesktop.org.   Eles devem ser instalados em /usr/share/applications . Usuários podem criar   seus próprios lançadores, colocando arquivos .desktop em   %código%.

     
    

LER

  
    
por swift 19.07.2014 / 10:57
1

Um arquivo de inicialização do .desktop pode ser simplificado para algo parecido com o seguinte

[Desktop Entry]
Type=Application
Name=Google Maps
Exec=google-chrome --app=https://www.google.co.uk/maps/@52.0547887,-1.3424413,11z
Comment=Open Google Maps
GenericName=Open Google Maps
Icon=/home/wilf/.local/Google-Maps-icon.png
Categories=GTK;Utility;
Keywords=Maps;
Hidden=false
NoDisplay=false
Terminal=false

Onde:

  • Você precisa dos dois [Desktop Entry] e Type=Application para dizer que é um lançador de aplicativos.
  • Name é o seu nome
  • Exec é o comando executado
  • Comment / GenericName desribe (nem sempre necessário)
  • Icon é o caminho para um ícone ou um ícone do (s) tema (s) que você está usando em /usr/share/icons (nem sempre necessário, mas o ícone padrão, se muitas vezes é chato)
  • Categories - especifica a categoria em que está (útil para menus - nem sempre necessária)
  • Keywords são palavras que podem ser usadas para encontrá-lo quando você procura por ele (nem sempre necessário).
  • Hidden / NoDisplay definido como falso, certifique-se de que ele seja exibido (nem sempre necessário).
  • Terminal se deve ser executado no terminal ou não '.

Para alterar o ícone, você só precisa alterar a linha Icon para especificar um ícone diferente. para usar um ícone do editor de texto de /usr/share/icons :

Icon=accessories-text-editor

ou você pode especificar um caminho para um arquivo de ícone

Icon=/home/wilf/.local/Google-Maps-icon.png

Isso também é possível clicando com o botão direito do mouse no inicializador na maioria dos gerenciadores de arquivos e selecionando propriedades:

Em seguida, clique no ícone e selecione um novo - observe se ele está em /usr/share/applications e você provavelmente precisará de permissão para editar o arquivo.

N.B.

Não consigo me lembrar exatamente do porquê (provavelmente fiz isso para alguma coisa), mas parece que tenho o seguinte script que pode criar lançadores .desktop - aqui está:

#!/bin/bash
if [ "" = "--help" ]; then
   echo -e "\e[1mUsage:\e[0m\n  create-launcher [OPTIONS...] [FILENAME] - create a launcher\n\e[1mHelp Options:\e[0m\n  --help    Show help options\n\e[1mApplication Options:\e[0m\n  -n NAME       Sets the name of the New launcher\n  -c COMMAND    Sets the command the launcher will be used to Launch\n  -t COMMENT    Sets the comment used to describe the launcher\n  -i ICON       Specifies an icon filename or stock icon to display.\n\n\e[1mNote\e[0m - ideally all of the above options should be used, mainly the Name option as it used to create the name of the launcher, and the command option as that is required for the launcher to work."
   exit
fi
while getopts n:c:t:i: option
do
    case "${option}"
    in
        n) NAME=${OPTARG};;
        c) COMMAND=${OPTARG};;
        t) COMMENT=${OPTARG};;
        i) ICON=${OPTARG};;
    esac
done
FILE=$HOME/.local/share/applications/$(echo $NAME | sed 's/ /-/g').desktop
NOFILE=$HOME/.local/share/applications/.desktop
if [ $FILE = $NOFILE ]; then
   echo -e "ERROR: Please enter atleast the Name for the launcher - for more info run\n    create-launcher --help" 
   exit 1
else
echo "New launcher created at $FILE"
echo -e "[Desktop Entry]\nType=Application" > $FILE
echo Name=$NAME >> $FILE
echo Exec=$COMMAND >> $FILE
echo Comment=$COMMENT >> $FILE
echo Icon=$ICON >> $FILE
echo -e "Hidden=false\nNoDisplay=false\nTerminal=false\n#X-GNOME-Autostart-enabled=true" >> $FILE
chmod +x $FILE
fi
exit

Isso pode ser salvo em um arquivo executável e cria um lançador simples como o seguinte (exceto que os campos são preenchidos especificando as opções de scripts - veja ./create-launcher --help ) em ~/.local/share/applications (que deve significar que o lançador aparece nos menus, etc.)

[Desktop Entry]
Type=Application
Name=
Exec=
Comment=
Icon=
Hidden=false
NoDisplay=false
Terminal=false
#X-GNOME-Autostart-enabled=true

A última linha não é importante, a menos que seja usada em outro lugar para iniciar um programa no login.

    
por Wilf 19.07.2014 / 13:29