Inicie o iniciador da área de trabalho a partir da linha de comando no Mint

1

Posso iniciar um iniciador de área de trabalho a partir da linha de comando? Por exemplo. Eu tenho um lançador de desktop para folga no meu diretório ~ / Desktop:

vadim@my-pc ~/Desktop $ cat slack.desktop 
[Desktop Entry]
Name=Slack
Comment=Slack Desktop
GenericName=Slack Client for Linux
Exec=/usr/bin/slack --proxy-server="10.1.50.8:8080"
Icon=/usr/share/pixmaps/slack.png
Type=Application
StartupNotify=true
Categories=GNOME;GTK;Network;InstantMessaging;
MimeType=x-scheme-handler/slack;
Name[en_US]=slack

No parâmetro Exec, posso especificar várias opções para iniciar o aplicativo com, por exemplo, o servidor proxy. Acho conveniente especificar o proxy exatamente nos parâmetros do iniciador de área de trabalho.

Agora, gostaria de poder iniciar a folga na linha de comando usando todas as opções de início do iniciador de área de trabalho. Eu sei que posso criar um arquivo de script de shell e especificar nele todas as opções de inicialização que eu quero e executar esse arquivo tanto a partir do desktop launcher como da linha de comando, mas existe uma maneira de executar o arquivo slack.desktop da linha de comando?

    
por Vadim Zverev 20.07.2018 / 12:18

2 respostas

1

Você pode usar uma ferramenta como xdg-open (Quebrado atualmente) , kde-open , < href="https://embraceubuntu.com/2006/12/16/gnome-open-open-anything-from-the-command-line/"> gnome-open , gtk-launch ou o equivalente para seu ambiente de área de trabalho. ( xdg-open parece ser o universal ...)

(Parece que praticamente qualquer coisa diferente de gtk-launch (ferramentas mais semelhantes podem existir para outros toolkits) sofre o mesmo erro que xdg-open - ele abre o arquivo .desktop em um editor ao invés de executá-lo)

Pacotes: (O nome exato irá diferir entre distros) (isto é baseado no CentOS 7)

  • gtk3 para o lançamento do gtk
  • xdg-utils para xdg-open
  • kde-runtime para o kde-open
  • libgnome para o gnome-open
por 20.07.2018 / 13:23
0

Se você realmente quer isso, sugiro que você escreva uma pequena função que extraia o nome do executável do arquivo .desktop e o execute. Adicione estas linhas ao arquivo de inicialização do seu shell (por exemplo, ~/.bashrc ):

runDesktop () {
  eval "$(awk -F= '$1=="Exec"{$1=""; print}' "$1")"
}

Em seguida, você pode executar o seu arquivo .desktop com runDesktop ~/Desktop/slack.desktop . Naturalmente, as advertências usuais sobre eval se aplicam.

Você pode tentar tornar um pouco mais complicado sofisticado:

runDesktop () {
  comm=( $(awk -F= '$1=="Exec"{$1=""; print}' "$1") )
  "${comm[0]}" "${comm[@]:1}" &
  disown
}
    
por 20.07.2018 / 12:44