Encontrei um script nautilus que gostaria de usar. Como instalo?
Encontrei um script nautilus que gostaria de usar. Como instalo?
Respostas:
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-scripts
ou ~/.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 documento → Documento 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:
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 Propriedades → Permissões . Defina a marca de seleção em Permitir execução como programa e feche o diálogo:
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:
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:
<Primary>
<Alt>
<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.