Autor Tópico: (Dica) Scripts para o Nautlilus 3.32 (alterado script 18/06)  (Lida 6110 vezes)

Offline swatquest

  • Usuário Ubuntu
  • *
  • Mensagens: 160
    • Ver perfil
(Dica) Scripts para o Nautlilus 3.32 (alterado script 18/06)
« Online: 15 de Junho de 2019, 00:36 »
Script Nautilus admin modificado 18/06
No momento estou utilizando o manjaro, e depois de muito tempo decidi instalar o Gnome. Ainda estou vendo como funciona o Gnome. Por ser uma distro diferente não sei se terá diferença nos nomes dos pacotes
Os scripts devem servir para outros gerenciadores de arquivos. Alguns deverão ser modificados para funcionar.

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 https://ubuntuforum-br.org/index.php/topic,123818.0.html

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
Código: [Selecionar]
#!/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
Código: [Selecionar]
#!/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
Código: [Selecionar]
#!/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
Código: [Selecionar]
#!/bin/bash
#
# Converter arquivo para PDF
#

unoconv -f pdf  "$@"

nome do script: Editar como root
Código: [Selecionar]
#!/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
Código: [Selecionar]
#!/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
Código: [Selecionar]
#!/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...
Código: [Selecionar]
#!/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
Código: [Selecionar]
#!/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
Código: [Selecionar]
#!/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
Código: [Selecionar]
#!/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: Para editar arquivo e acessar pasta com root
nome do script: Nautilus admiin como script
Código: [Selecionar]
#!/bin/bash
#
# Acessar pasta e editar arquivo com Nautilus como root
#

# Determinar o caminho
arq=`basename -a "$@"`
dir=`dirname "$NAUTILUS_SCRIPT_SELECTED_FILE_PATHS"`

[ "$dir" == "." ] && dir=`dirname "$@"`;

## Determinar o tipo ao executar como ROOT
if [ -f "$dir/$arq" ]; then
pkexec gedit "$dir/$arq"
elif [ -d "$dir/$arq" ]; then
pkexec nautilus "$dir/$arq"
fi

exit 0





 == Editado em 15 Jun 2019, 00:02 ==

Novos Scripts

nome do script: Converter arquivo para UTF-8
Precisa do pacote glibc
Código: [Selecionar]
#!/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
Código: [Selecionar]
#!/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)
Código: [Selecionar]
#!/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
Código: [Selecionar]
#!/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=" Escaneaundo com clamav..."
nome do script: Extrair imagens JPG do PDF
Precisa do pacote imagemagick
Código: [Selecionar]
#!/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
Código: [Selecionar]
#!/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)
Código: [Selecionar]
#!/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




 == Editado em 15 Jun 2019, 00:09 ==

 Recomendado script: Conversor de áudio
Baixar: http://g-scripts.sourceforge.net/nautilus-scripts/Multimedia/Audio/audio-convert
« Última modificação: 18 de Junho de 2019, 21:40 por swatquest »