(Dica) Scripts para o Nautlilus 3.32 (alterado script 18/06)

Iniciado por swatquest, 15 de Junho de 2019, 00:36

tópico anterior - próximo tópico

swatquest

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
#!/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: Para editar arquivo e acessar pasta com root
nome do script: Nautilus admiin como script
#!/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
#!/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=" Escaneaundo 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




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

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