Como posso instalar um script do Nautilus?

13

Eu encontrei um script nautilus que gostaria de usar. Como faço para instalá-lo?

    
por Glutanimate 05.01.2013 / 06:16

1 resposta

35

Digamos que você queira instalar o seguinte script encontrado durante a navegação no Ask Ubuntu:

#!/bin/bash
## Sample Script 0.1
## Dependencies: notify-osd

notify-send "Sample nautilus script" "You Selected $NAUTILUS_SCRIPT_SELECTED_FILE_PATHS"

Dependências

A primeira coisa que você notará é que muitos scripts não serão simplesmente executados fora da caixa. Às vezes, eles dependem de outros pacotes que você pode ou não ter instalado. Nesse caso, nosso script depende de notify-osd , que vem com o Ubuntu por padrão.

Em outras distros, isso pode não ser o caso e você terá que instalar as dependências antes de usar o script. Se a dependência fizer parte dos repositórios oficiais, você poderá instalá-lo facilmente com apt-get , por exemplo:

sudo apt-get install notify-osd

Definindo o script

Agora que estamos satisfeitos com todas as dependências, podemos seguir em frente e copiar o script para o nosso sistema. Para fazer isso, primeiro criamos um novo documento em nossa pasta de scripts, que é ~/.gnome2/nautilus-scripts ou ~/.local/share/nautilus/scripts/ no Ubuntu 13.04 e acima. Esta é uma pasta oculta. A fim de acessá-lo, você terá que abrir o gerenciador de arquivos, pressionar CTRL + L e colar o caminho do diretório na barra de localização.

Em seguida, criaremos um novo documento vazio clicando com o botão direito e selecionando Criar novo documento Documento vazio . Nomeie o que quiser, mas cuidado: O título escolhido é como a entrada do script aparecerá mais tarde no menu de contexto do Nautilus. Então é melhor escolher um nome descritivo para o documento:

Abraonovodocumentoemumeditordetextodesuaescolhaecontinuecopiandoecolandooconteúdodacaixadecódigoacimanele.Salveesaiadoeditordetexto.

Tornando-oexecutável

Nesteponto,seuscriptestáconfiguradocorretamente,masaindanãofuncionará,jáqueosistemaaindanãooreconhececomoumarquivoexecutável.Paratorná-loexecutável,cliquecomobotãodireitonoseuarquivoeváparaPropriedadesPermissões.MarqueamarcadeseleçãoPermitirExecuçãocomoprogramaefecheodiálogo:

Uso

Agora você deve conseguir acessar o script no seu menu de contexto do Nautilus. Basta clicar com o botão direito do mouse em um arquivo de sua escolha e ir para Scripts - > Nome do script (aqui: Script de exemplo ). Clique na entrada para executar o script nos arquivos selecionados:

Atribuindoumatalhodetecladoaoscript

OsatalhosdetecladoparascriptsNautiluspodemseratribuídoseditandooarquivoaceleradordetecladodoNautilus.NoUbuntu12.04eabaixo,estearquivopodeserencontradoem~/.gnome2/accels/nautilus.Emversõesmaisrecentes,essearquivofoimovidopara~/.config/nautilus/accels.Porfavor,notequeoseuscriptsóapareceránoarquivoaceleradordepoisdereiniciaroNautilus(executenautilus-q,depoisabraoNautilusnovamenteclicandoemseulançador).

Asintaxedoarquivoaceleradorpodeparecerumpoucoavassaladoranocomeço,masnaverdadeébemfácil.Dêumaolhadanestetrecho,porexemplo:

;(gtk_accel_path"<Actions>/ShellActions/ZoomInAccel2" "<Primary>KP_Add")
; (gtk_accel_path "<Actions>/ShellActions/TabsNext" "<Primary>Page_Down")
; (gtk_accel_path "<Actions>/ScriptsGroup/script_file:\s\s\shome\sglutanimate\s.gnome2\snautilus-scripts\sSample%20script" "")
; (gtk_accel_path "<Actions>/ShellActions/Search" "<Primary>f")
; (gtk_accel_path "<Actions>/ShellActions/Forward" "<Alt>Right")

Cada linha representa uma atribuição de chave única. O primeiro segmento com aspas duplas designa a ação, o segundo, a combinação de teclas atribuída. Linhas iniciadas com um ponto-e-vírgula são comentadas e atualmente inativas.

Para atribuir um atalho ao seu script, você terá que pesquisar este arquivo pelo nome do script e descomentar a linha correspondente removendo o ponto-e-vírgula. Em seguida, digite o atalho de teclado que você deseja atribuir.

Estes são os modificadores disponíveis e seus códigos de teclas correspondentes:

  • CTRL = <Primary>
  • ALT = <Alt>
  • SHIFT = <Shift>

Você pode encontrar códigos de tecla válidos para todas as outras chaves usando usando xev .

Veja como você teria que modificar a seção acima para atribuir seu script de exemplo a ALT + SHIFT + S :

; (gtk_accel_path "<Actions>/ShellActions/ZoomInAccel2" "<Primary>KP_Add")
; (gtk_accel_path "<Actions>/ShellActions/TabsNext" "<Primary>Page_Down")
(gtk_accel_path "<Actions>/ScriptsGroup/script_file:\s\s\shome\sglutanimate\s.gnome2\snautilus-scripts\sSample%20script" "<Alt><Shift>s")
; (gtk_accel_path "<Actions>/ShellActions/Search" "<Primary>f")
; (gtk_accel_path "<Actions>/ShellActions/Forward" "<Alt>Right")

No Ubuntu 12.04 (e talvez versões posteriores também) o Nautilus algumas vezes sobrescreve o arquivo acelerador antes que você possa fazer qualquer alteração. Por isso, pode ser uma boa ideia executar todas as alterações feitas enquanto o Nautilus não está em execução ( nautilus -q ). De qualquer forma, você precisará reiniciar o Nautilus para ver as alterações.

Automatizando a instalação

Este script do Nautilus instalará automaticamente os scripts do Nautilus para você. Por favor, dê uma olhada nos comentários para ver o que está acontecendo nos bastidores:

#!/bin/bash
# AUTHOR:       Glutanimate (https://askubuntu.com/users/81372/)
# LICENSE:      GNU GPLv3 (http://www.gnu.de/documents/gpl-3.0.en.html)
# NAME:         Nautilus Scripts Installer
#
# DESCRIPTION:  This script will install Nautilus scripts on Ubuntu 12.04 and above.
#               Note: scripts of the same name in the destination folder will be
#               overwritten without warning


# general purpose notification function
gui_notify(){
    notify-send -i gnome-app-install "Nautilus Scripts Installer" "$1"
}


# check if any files selected
if [[ -z "$@" ]]
  then
      gui_notify "Error: No files selected."
      exit 1
fi


RELEASE="$(lsb_release -r | cut -f2)"   # detect Ubuntu release

if [[ "$RELEASE" = "12.04" ]]           # set script folder accordingly
  then
      ScriptFolder="$HOME/.gnome2/nautilus-scripts"
  else
      ScriptFolder="$HOME/.local/share/nautilus/scripts/"
fi


for Script in "$@"; do

  ScriptFilename="${Script##*/}"                # get filename via bash string manipulation

  cp "$Script" "$ScriptFolder/"                 # Move script to destination
  chmod u+x "$ScriptFolder/$ScriptFilename"     # Make it executable for the user

done

gui_notify "The following scripts have been installed: $@"

Como um aparte: Aqui está o script do nautilus Eu costumava gravar os screencasts desta resposta.

    
por Glutanimate 05.01.2013 / 06:16