Como posso instalar um script do Nautilus?


Respostas:


37

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 ficam apenas prontos para uso. Às vezes, eles dependem de outros pacotes que você pode ou não ter instalado. Nesse caso, nosso script depende notify-osd, que vem com o Ubuntu por padrão.

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

sudo apt-get install notify-osd

Configurando o Script

Agora que satisfazemos todas as dependências, podemos seguir em frente e copiar o script para o nosso sistema. Para isso, primeiro criar um novo documento em nossa pasta de scripts, o que é ~/.gnome2/nautilus-scriptsou ~/.local/share/nautilus/scripts/no Ubuntu 13.04 e acima. Esta é uma pasta oculta. Para acessar, você terá que abrir o gerenciador de arquivos, pressione CTRL+ Le cole o caminho do diretório na barra de localização.

Em seguida, criaremos um novo documento vazio clicando com o botão direito do mouse e selecionando Criar novo documentoDocumento vazio . Dê o nome que desejar, mas cuidado: o título que você escolher é como a entrada do script aparecerá mais tarde no menu de contexto do nautilus. Então, escolha melhor um nome descritivo para o documento:

insira a descrição da imagem aqui

Abra o novo documento em um editor de texto de sua escolha e continue copiando e colando o conteúdo da caixa de código acima. Salve-o e saia do editor de texto.

Tornando-o executável

Nesse ponto, seu script está configurado corretamente, mas ainda não funcionará, pois o sistema ainda não o reconhece como um arquivo executável. Para torná-lo executável, clique com o botão direito do mouse no arquivo e vá para PropriedadesPermissões . Defina a marca de seleção em Permitir execução como programa e feche o diálogo:

insira a descrição da imagem aqui

Uso

Agora você deve conseguir acessar o script no menu de contexto do nautilus. Clique com o botão direito do mouse em um arquivo de sua escolha e vá para Scripts -> Nome do script (aqui: Script de amostra ). Clique na entrada para executar o script nos arquivos que você selecionou:

insira a descrição da imagem aqui

Atribuindo um atalho de teclado ao script

Os atalhos de teclado para scripts do Nautilus podem ser atribuídos editando o arquivo acelerador de teclado do Nautilus. No Ubuntu 12.04 e abaixo, este arquivo pode ser encontrado em ~/.gnome2/accels/nautilus. Nas versões mais recentes, esse arquivo foi movido para ~/.config/nautilus/accels. Observe que seu script só aparecerá no arquivo acelerador após reiniciar o Nautilus (execute nautilus -q, inicie o Nautilus novamente clicando em seu iniciador).

A sintaxe do arquivo acelerador pode parecer um pouco impressionante no começo, mas na verdade é bem fácil. Veja este trecho, por exemplo:

; (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 única atribuição de tecla. O primeiro segmento de aspas duplas designa a ação, o segundo a combinação de teclas atribuída. As linhas que começam com ponto-e-vírgula são comentadas e atualmente inativas.

Para atribuir um atalho ao seu script, você deverá procurar nesse arquivo o nome do script e descomentar a linha correspondente removendo o ponto e vírgula. Em seguida, prossiga para digitar o atalho de teclado que você deseja atribuir.

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

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

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

Veja como você precisaria modificar a seção acima para atribuir seu exemplo de script ao 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 às vezes substitui o arquivo acelerador antes que você possa fazer alterações. Portanto, pode ser uma boa ideia executar todas as alterações que você fizer enquanto o Nautilus não estiver em execução ( nautilus -q). De qualquer maneira, você vai ter de reiniciar Nautilus para ver as alterações.

Automatizando a instalação

Esse 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 (/ubuntu//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 nautilus que eu usei para gravar os screencasts desta resposta.


1
Possivelmente, essa resposta poderia ser ainda mais aprimorada, incluindo informações sobre a atribuição de ícones a scripts usando a janela de propriedades de arquivo do Nautilus ou a linha de comando (por exemplo, askubuntu.com/a/376062/53738 ).
dess
Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.