Scripts para o Nautlilus

Segue os scripts que fiz até o momento para utilizar no Naultilus 3.32.

Observação Ações com pkexec será necessário criar uma política na pasta /usr/share/polkit-1/actions . Mais informação Manjaro Brasil • Exibir tópico - Criando uma execucão com pkexec

Os nomes dos scripts aparecem no menu contexto do nautilus. Então você pode mudar para qual quiser.

nome do script: Abrir terminal como root

  #!/bin/bash
    #
    # Abrir terminal como root
    #

    if [ -e -n $1 ]; then
    obj="$NAUTILUS_SCRIPT_SELECTED_FILE_PATHS"
    else
    base="`echo $NAUTILUS_SCRIPT_CURRENT_URI | cut -d'/' -f3- | sed 's/%20/ /g'`"
    obj="$base/${1##*/}"
    fi
    if  [ -d "$obj" ]; then
    pkexec dbus-launch gnome-terminal --working-directory="$obj"
    fi

    exit 0

nome do script: Comparar arquivos (max. 3)
Precisa do programa meld

 #!/bin/bash
    #
    # Comparar arquivos com o programa meld max.3

    meld `echo "$NAUTILUS_SCRIPT_SELECTED_URIS"`

nome do script: Converter para JPG
Precisa do programa imagemagick

   #!/bin/bash
    #
    # Converter imagem para JPG
    #

    echo -e "$NAUTILUS_SCRIPT_SELECTED_FILE_PATHS" | sed 's/\....$//'| xargs -i convert "{}.*" "{}.jpg"
nome do script: Converter para PDF
Precisa do pacote unoconv 
 #!/bin/bash
    #
    # Converter arquivo para PDF
    #

    unoconv -f pdf  "$@"

nome do script: Editar como root

   #!/bin/bash
    #
    # Editar o arquivo como root
    #

    gedit "admin://`echo $NAUTILUS_SCRIPT_SELECTED_FILE_PATHS`"

nome do script: Escanear com clamav
Precisa do programa clamav e clamtk
#!/bin/bash
#
# Verificar com clamtk
#

# Salvar e alterar IFS 
ANTIGOIFS=$IFS
IFS=$'\n'

arq=(`basename -a "$*"`)

# Restaurar IFS
IFS=$ANTIGOIFS 

for j in "${arq[@]}"; do clamtk "$j"; done

nome do script: Extrair áudio de vídeo…
Precisa do pacote ffmpeg

#!/bin/bash
#
# Extrair áudio de um vídeo
#

# Salvar e alterar IFS 
ANTIGOIFS=$IFS
IFS=$'\n'

arq=(`basename -a "$*"`)

# Restaurar IFS
IFS=$ANTIGOIFS 

for i in "${arq[@]}"; do 
nome=$(echo -n "$i"| sed 's/\....$//');
ffmpeg -i "$i" -vn -ar 44100 -ac 2 -ab 192 -f mp3 "$nome".mp3 | zenity --progress --pulsate --title="Extraindo" --auto-close --text="Extraindo áudio do vídeo $i";
done

nome do script: Gerar checksum…

#!/bin/bash
#
# Verificar checksum do arquivo
#

# Salvar e alterar IFS 
ANTIGOIFS=$IFS
IFS=$'\n'

arq=(`basename -a "$*"`)

# Restaurar IFS
IFS=$ANTIGOIFS 

if [ -f "$1" ]; then
hash=("md5sum" "sha1sum" "sha256sum");for i in "${hash[@]}" ; do echo "#####################[ "$i" ]##################### "| tr '[a-z]' '[A-Z]'; for j in "${arq[@]}"; do "$i" "$j"; done; done | zenity --width=1100 --height=500 --text-info --title=" Checksum..."
else
zenity --warning --width=300 --text="O item selecionado não é um arquivo."
fi

nome do script: Informação da mídia…
Precisa do programa mediainfo-gui

#!/bin/bash
#
# Verificar informações da mídia
#

# Salvar e alterar IFS 
ANTIGOIFS=$IFS
IFS=$'\n'

arq=(`basename -a "$*"`)

# Restaurar IFS
IFS=$ANTIGOIFS 

for j in "${arq[@]}"; do mediainfo-gui  "$j"; done

exit 0

nome do script: Nautilus como root

#!/bin/bash
#
# Acessar pasta com Nautilus como root
#

if [ -e -n $1 ]; then
obj="$NAUTILUS_SCRIPT_SELECTED_FILE_PATHS"
else
base="`echo $NAUTILUS_SCRIPT_CURRENT_URI | cut -d'/' -f3- | sed 's/%20/ /g'`"
obj="$base/${1##*/}"
fi
if  [ -d "$obj" ]; then
pkexec nautilus "$obj"
fi

exit 0

nome do script: Remover como root

#!/bin/bash
#
# Excluir arquivos como root
#
    # Salvar e alterar IFS 
    ANTIGOIFS=$IFS
    IFS=$'\n'
    arq=(`basename -a "$*"`)
    # Restaurar IFS
    IFS=$ANTIGOIFS 
    dir="`pwd`/"

    zenity --question --width=600 --text="Você quer apagar permanentemente $NAUTILUS_SCRIPT_SELECTED_FILE_PATHS?" &&  for j in "${arq[@]}"; do pkexec rm -rf "$dir""$j"; done

    exit 0;

Sugestão: [color=#4040FF]Para editar arquivo e acessar pasta com root
nome do script: Nautilus admiin como script
http://manjaro-linux.com.br/forum/dicas-truques/nautilus-admiin-como-script-t5942.html

nome do script: Converter arquivo para UTF-8
Precisa do pacote glibc

#!/bin/bash
# Converter arquivo para UTF-8
#

for filename in "$@"; do
    CHARSET="$(file -bi "$filename"|awk -F "=" '{print $2}')"
    if [ "$CHARSET" != utf-8 ]; then
        iconv -f "$CHARSET" -t utf8 "$filename" -c -o "$filename.utf8"
    fi
done

nome do script: Converter grupo de imagens para PDF
Precisa do pacote imagemagick

#!/bin/bash
# Converter grupo imagens para PDF
#

convert "$@" grupo_de_imagens.pdf

nome do script: Copiar caminho
O Gnome está copiando o caminho completo. Com nomes de aplicativos e etc… para Área de transferência, o xclip conserta isso.
Precisa do pacote xclip(Pode precisar reiniciar para funcionar direito)

#!/bin/bash
# Conserto ao copiar caminho usando xclip para Gnome
#

echo -n "$PWD/$@"| xclip -i -selection "clipboard"

nome do script: Escanear com antivirus
Precisa do clamav - outro exemplo sem usar clamtk

#!/bin/bash
# Escanear com clamav e enviar infectados para $HOME/.VIRUS
#

clamscan -r --bell -i  --move=$HOME/.VIRUS `echo -e $NAUTILUS_SCRIPT_SELECTED_FILE_PATHS` | zenity --width=600 --height=500 --text-info --title=" Escaneando com clamav..."

nome do script: Extrair imagens JPG do PDF
Precisa do pacote imagemagick

#!/bin/bash

nomearq=$(echo -n "$@"| sed 's/\....$//');
mkdir -p "$nomearq"
convert -density 300 "$@" "$nomearq"/images.jpg | zenity --progress --pulsate --title="Extraindo" --auto-close --text="Extraindo images do arquivo $@ para pasta:\n $PWD/$nomearq/"

nome do script: Otimizar PDF
Precisa dos pacotes zenity e ghostscript

#!/bin/bash

arq=(`echo $@`) 
ITEM_SELECIONADO=`zenity --list --width=550 --height=300 \
  --title="Escolha a resolução do PDF para otimização para ${#arq[@]} arquivo(s)" \
  --column="Número" --column="Qualidade" --column="Descriçao" \
    screen Baixa "Imagem 72 dpi" \
    default Baixa/Razoável "Um pouco melhor que a baixa"\
    ebook Razoável "Imagem 150 dpi" \
    printer Boa "Imagem 300 dpi"\
    prepress Ótima "Preservação de cores, imagem 300 dpi"`
  
  if [ ! -z "$ITEM_SELECIONADO" ]; then  
   for i in "${arq[@]}"; do
      ps2pdf -dPDFSETTINGS=/"$ITEM_SELECIONADO" `echo "$i"` `echo "$i-otimizado"`
   done
  fi

nome do script: Reparar nome do arquivo mp3
Precisa do pacote python-mutagen-(conserta nomes US-ASCII)

#!/bin/bash
# Converter nome do arquivo para UTF-8
# salva como [artista] - [track] - [título].mp3
#

for arq in "$@"; do
    CHARSET="$(file -bi "$arq"|awk -F "=" '{print $2}')"
    ext=${arq##*.}
    if [ "$CHARSET" != utf-8 ]; then
       lista=`mid3iconv -e US-ASCII -d "$arq"| grep -E 'TPE1|TIT2|TRCK'| awk -F"=" '{print $2}' | sed ':a;N;$!ba;s/\n/=/g'| awk -F "=" '{print $2 " - "$3" - " $1}'`
       if [ ! -z "$lista" ];then
       mv "$arq" "$lista"."$ext"
       fi
    fi
done

Recomendado script: Conversor de áudio[/size]
Baixar: http://g-scripts.sourceforge.net/nautilus-scripts/Multimedia/Audio/audio-convert

2 Curtidas

Funcionam no Nemo 4?

Alguns sim outros não.

Os scripts que contém $NAUTILUS_SCRIPT_CURRENT_URI ou $NAUTILUS_SCRIPT_SELECTED_FILE_PATHS, você deverá adaptar para o nemo, trocando para as váriaveis para $1, $@ E $*.