Como criar e fixar o atalho do Unity em um comando / shellscript específico

9

Isso não é uma duplicata, já que passei um bom tempo tentando encontrar uma solução do Ask Ubuntu e do Google, sem sucesso. É um problema específico depois de fixar com sucesso o atalho no Unity.

O comando que estou tentando fixar é:

rdesktop -u user -d DOMAIN -g 1380x849 -r sound:local -p password -x 0x80 -P -a 32 -k fi 192.168.1.103

Tudo bem, então as coisas que eu tentei são:

  1. Crie manualmente o rdesk.desktop que usaria o aplicativo rdesktop com alguns parâmetros de comando para conectar-se a uma máquina remota e efetuar login automaticamente. Posso arrastar com êxito esse iniciador para o Unity.

  2. Crie um iniciador através do utilitário Menu Principal, pressionando o ícone Ubuntu e iniciando a sessão a partir daí, fixando o ícone rdesktop real que aparece após o lançamento.

Ambos os métodos funcionam parcialmente. Posso obter um bom atalho com o ícone de minha escolha na barra de tarefas com (1), mas, ao clicar neste atalho, um segundo ícone (real rdesktop) aparece na parte inferior da barra do Unity. Fixar este segundo ícone funciona, mas na verdade não faz nada uma vez clicado APÓS o encerramento da sessão. O ícone fixo do método (2) age exatamente da mesma maneira.

Ao passar o mouse, o segundo ícone me mostra: rdesktop - 192.168.1.103

Como criar um atalho para o comando rdesktop com parâmetros e fixá-lo no Unity para que o ícone em que clico seja destacado e responda aos cliques mesmo após o fechamento da sessão? Como alternativa, acho que eu poderia, de alguma forma, editar o segundo ícone fixado para trabalhar com os parâmetros corretos, para que o rdesktop fosse realmente aberto; eu simplesmente não conseguia encontrá-lo em nenhum lugar do sistema de arquivos para dar uma olhada.

Edit: aqui está a minha entrada .desktop que eu arrastei para o Unity

[Desktop Entry]
Name=Remotedesktop Client
Comment=Connect to a remote Windows Terminal-Server
Exec=rdesktop -u name -d DOMAIN -g 1380x849 -r sound:local -p password -x 0x80 -P -a 32 -k fi 192.168.1.103
Icon=/usr/share/icons/hicolor/scalable/apps/nm-device-wired.svg
Terminal=false
Hidden=false
Type=Application
Version=1.0
Encoding=UTF-8

Aqui está uma captura de tela para esclarecimentos:

insira a descrição da imagem aqui

O preto superior destacado é o meu .Desktop e o mais baixo é o que recebo quando clico nele. A parte superior na verdade funcionará apenas uma vez e, se eu desafivelá-la e redagri-la para Unity, ela funcionará novamente, uma vez.

vermelho
fonte

Respostas:

11

Você precisa configurar o WMClass para rdesktop no seu arquivo .desktop. Este funciona para mim:

[Desktop Entry]
Version=1.0
Type=Application
Name=Gacela
Exec=rdesktop #####:####
Icon=/usr/share/icons/gacela.png
Comment=Conexion co Gacela
Categories=Internet;
Terminal=false
StartupNotify=true
StartupWMClass=rdesktop
GenericName=

Para obter o WMClass de qualquer janela em execução, você precisa usar este comando:

xprop

e clique na janela que você deseja identificar. Procure o valor de WM_CLASS na saída ou grep, se você preferir uma saída menor:

xprop | grep WM_CLASS
Javier Rivera
fonte
Não pode ser tão complicado fazer um atalho no Unity ?!
Dan Dascalescu 7/11
Isso não é instruções para criar um atalho genérico; esta solução é necessária apenas quando o programa que corresponde aos nomes dos Windows e dos Programas não puder fazer isso.
Javier Rivera