Mantenha o IDLE do Python no ativador

4

Eu gostaria de ter um ícone para o I integrado D eve L opment E de ambiente do Python IDLE ) no meu lançador. Quando eu iniciei o IDLE através do painel, eu posso clicar com o botão direito do mouse no ícone e escolher a opção 'Lock to Launcher'. Depois de clicar, no entanto, a opção ainda está lá, ao passo que deveria ter sido substituída pela opção 'remover do Iniciador'. Então, aparentemente, isso não funciona dessa maneira. Posso de alguma forma criar um arquivo personalizado fazendo um ícone de lançador para IDLE aparecer? Os comandos que acontecem quando eu inicio o IDLE são

stefan@stefan-HP-Pavilion-13-x360-PC:~$ ps ax -f | grep python
stefan    2087  1922  0 12:30 ?        Sl     0:00 /usr/bin/python /usr/bin/glipper
stefan    3318  1751  0 13:14 ?        Sl     0:02 /usr/bin/python3 /usr/bin/idle3
stefan    3325  3318  0 13:14 ?        Sl     0:03 /usr/bin/python3 -c __import__('idlelib.run').run.main(True) 35780
stefan    3348  3124  0 13:19 pts/0    S+     0:00 grep --color=auto python

então, de alguma forma, eu teria que perceber os dois comandos envolvendo ociosidade com um script.

Edit: Quando eu digito /usr/bin/idle3 no meu terminal, o outro comando /usr/bin/python3 -c __import__('idlelib.run').run.main(True) é executado automaticamente, então não há necessidade de colocar isso em algum script "inicial". Tudo o que o iniciante faz é executar /usr/bin/idle .

Arrastando o ícone do painel diretamente para o lançador ( como Jacob sugeriu ) mantém no lançador. No entanto, depois de clicá-lo, aparece outro ícone que é diferente do ícone do acionador de partida e que tem o defeito que estou descrevendo aqui. Talvez esse problema possa ser resolvido também?

    
por Stefan Hamcke 10.09.2015 / 13:24

1 resposta

7

A solução mais simples

Veja o que você pode fazer (mais simples do que você temia :)):

  • Abrir traço
  • Tipo ocioso (ou Idle3, dependendo da versão)
  • Arraste o ícone de Dash para o Unity Launcher:

    Emseguida,otextodobotãodireitodomousesais:

    (queéholandêspara:"Remover do iniciador")

O comando para executar o Idle

Para completar a resposta: o comando para executar Idle é:

/usr/bin/idle

ou para versões específicas, por exemplo: /usr/bin/idle3 ou: /usr/bin/idle-python3.4

Basta olhar dentro do arquivo .desktop em /usr/share/applications na linha, começando com Exec= para o comando correto.

Evitar que um ícone extra seja ocioso quando for iniciado

Ocioso produz janelas do WM_CLASS "Toplevel". Para que essas janelas apareçam sob o mesmo ícone que você acabou de colocar no launcher, faça o seguinte:

  • Copie o arquivo global idle.desktop de /usr/share/applications para ~/.local/share/applications .

    cp /usr/share/applications/idle.desktop ~/.local/share/applications
    
  • Abra o arquivo (arraste-o sobre uma janela gedit aberta).

  • Adicione ao final do arquivo a linha:
    StartupWMClass=Toplevel
  • Faça logout e volte. A partir de então, todas as janelas Idle aparecerão sob um ícone:

Éissoaí...

EDITAR

ComoresultadodofatodequeasjanelasdeumWM_CLASSemprincípioaparecemapenassobumíconeLauncher(porvez)noUnity,observe:

Emboraaschancessejampraticamentenulas,agruparToplevelwindowssoboíconeIdlepoderiamostrarumadesvantagememrarassituações:

  1. SevocêexecutarversõesdiferentesdeIdleaomesmotempo(porexemplo,editandocódigoparaduaspythonversõesaomesmotempo),todasasjanelasserãoagrupadassoboíconedaversãoquecomeçouprimeiro:

  2. Sevocêexecutarpythonaplicativos,usandotkintercomoumaGUI(bastanteincomumatualmente),geralmenteasjanelassecundáriassãodefinidascomo"filho" da janela principal usando wm_transient()

    Em aplicativos "não polidos" (como Idle ), isso pode não ser o caso. Nesses casos, a janela secundária (janelas "Toplevel" em tkinter ), também aparecerá sob o ícone Idle , Se Ocioso foi executado primeiro.

Mas, novamente, normalmente isso provavelmente nunca acontecerá e, se acontecer, não causará nenhum dano, mas o que descrevi.

    
por Jacob Vlijm 10.09.2015 / 14:14