Scripts criados para o Dolphin KDE 6.4.3 - Criou algum, informe aqui! atualizados 02/7 - adicionado mais 1 (OCR PDF) - total 9

Para Gnome 4.8

Precisa do pacote kdialog
Comecei a usar KDE há pouco tempo e decidi criar alguns scripts para facilitar o uso.
Se você usa algum script informe aqui.

Os scripts estão na pasta scripts dentro .local/share/kservices5/

Converter grupo de imagens para PDF.desktop

[Desktop Entry]
Type=Service
ServiceTypes=KonqPopupMenu/Plugin
MimeType=image/jpeg;image/png;
Actions=imagens-para-pdf

[Desktop Action imagens-para-pdf]
Name=Converter grupo de imagens para PDF
Exec=~/.local/share/kservices5/scripts/Converter-imagens-para-PDF.sh %U
Icon=utilities-terminal

Converter-imagens-para-PDF.sh

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

nomedoarquivo=`kdialog --title "Input dialog" --inputbox "Insira o nome do arquivo"`

if [ ! -z $nomedoarquivo ]; then
  convert "$@" "$nomedoarquivo.pdf"
else
  convert "$@" "nomepadrão.pdf"
fi

Coverter PDF para JPG.desktop

[Desktop Entry]
Type=Service
ServiceTypes=KonqPopupMenu/Plugin
MimeType=application/pdf;
Actions=converter-jpg

[Desktop Action converter-jpg]
Name=Converter PDF para JPG
Exec=~/.local/share/kservices5/scripts/Converter-para-JPG.sh %U
Icon=utilities-terminal

Converter-para-JPG.sh

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

arquivo=$(basename "$1")
mkdir -p "Imagens exportadas"
echo -e "$@" | sed 's/\....$//'| xargs -i pdftoppm -jpeg  "{}.pdf"  "Imagens exportadas/$arquivo"


Otimizar-pdf.desktop

[Desktop Entry]
Type=Service
ServiceTypes=KonqPopupMenu/Plugin
MimeType=application/pdf;
Actions=Otimizar-pdf

[Desktop Action Otimizar-pdf]
Name=Otimizar arquivos PDF
Exec=~/.local/share/kservices5/scripts/otimizar-pdf.sh %U
Icon=utilities-terminal

otimizar-pdf.sh

#!/bin/bash

mkdir -p otimizado
arq=(`basename -a "$@"`)
for j in "$arq" ; do ps2pdf -dPDFSETTINGS=/ebook "$j" otimizado/"$j"; done

Gera uma lista de hash escolhidos

hash.desktop

[Desktop Entry]
Type=Service
ServiceTypes=KonqPopupMenu/Plugin
MimeType=all/allfiles;
Actions=kde-hash

[Desktop Action kde-hash]
Name=kde hash
Exec=~/.local/share/kservices5/scripts/checksum.sh %U
Icon=utilities-terminal

checksum.sh

#!/bin/bash

# Gera uma lista com hash informados
hash=("md5sum" "sha256sum" "sha512sum");for i in ${hash[@]} ; do echo "#####################[ $i ]#####################"| tr '[a-z]' '[A-Z]'; $i  "$@";done  > /tmp/khash.txt

# Gera uma janela informativo com o resultado
kdialog --textbox  /tmp/khash.txt 1024 600

# Apaga os arquivos temporários criados
rm /tmp/khash.txt

Verifica hash com arquivo checksum txt

verificar_hash.desktop

[Desktop Entry]
Type=Service
ServiceTypes=KonqPopupMenu/Plugin
MimeType=application/vnd.efi.iso;
Actions=check-hash

[Desktop Action check-hash]
Name=Verificar com arquivo chechsum
Exec=~/.local/share/kservices5/scripts/verificar-hash.sh %U
Icon=utilities-terminal

Adicionado no script em verificar hash --ignore-missing

verificar-hash.sh

#!/bin/bash

# Cria uma lista radiolist informados, sha256sum como padrão
hash=`kdialog --radiolist "Selecione o hash a verificar:" md5sum "md5sum" off   sha256sum  "sha256sum" on  sha512sum "sha512sum" off`

# Se clicar em cancelar saí
if [ $? -eq 1 ]; then
    exit 0
fi

# pega o nome do arquivo
nomearquivo=$(basename "$1")

# Gera um dialog para selecionar um arquivo
arquivoselecionado=`kdialog --getopenfilename . ' text/plain '`

# Se clicar em cancelar sai
if [ $? -eq 1 ]; then
  exit 0 #
fi

# Lê o arquivo selecionado
cat "$arquivoselecionado"  | tee  /tmp/arquivohash.txt

# Na saída do aquivo pega somente a linha com o nome do arquivo iso
"$hash" --ignore-missing  -c /tmp/arquivohash.txt | grep -i $nomearquivo | tee -a  /tmp/saída.txt

if [ -z "$(cat "/tmp/saída.txt")" ]; then
# Gera uma janela informativa com o resultado
  echo "Aconteceu algo errado. Verifique se o arquivo é compativel com a imagem iso" > /tmp/infotexto.txt
  kdialog --textbox  /tmp/infotexto.txt 512 200
  rm /tmp/infotexto.txt
else
# Gera uma janela informativa com o resultado
  kdialog --textbox /tmp/saída.txt 512 200
  rm /tmp/saída.txt
fi

# Apaga o arquivo temporário criado
rm /tmp/arquivohash.txt

exit 0

5 curtidas

Só mudei o comentário no script

#
# Converter PDF imagem para

modificando script verificar-hash.sh para buscar só por arquivos de textos

# Gera um dialog para selecionar um arquivo
arquivoselecionado=`kdialog --getopenfilename . ' text/plain '`

Consertado alguns textos informativos dos comentários

adicionado informativo se o arquivo fica vazio

if [ -z "$(cat "/tmp/saída.txt")" ]; then
# Gera uma janela informativa com o resultado
  echo "Aconteceu algo errado. Verifique se o arquivo é compativel com a imagem iso" > /tmp/infotexto.txt
  kdialog --textbox  /tmp/infotexto.txt 512 200
else
# Gera uma janela informativa com o resultado
  kdialog --textbox /tmp/saída.txt 512 200
fi

MimeType=all/allfiles;

no arquivo desktop do hash.

Agora só aparecerá nos arquivos,em pastas não.

Consertado apagar os arquivos, só se eles existirem em verificar hash.

Alterado script converter pdf para jpg.

Agora é exportado para uma pasta imagens exportadas

mudado o comando pdfimages para pdftoppm

Converter grupo de imagens para PDF

Agora você pode colocar o nome do arquivo criado. Caso deixe em branco ficará com o nome nomepadrão.pdf.

Converter-para-JPG

Agora ao criar a pasta imagemm exportadas, se ela existir nào criará outra ou dará erro que a pasta já existe.
E os arquivos terão o nome do arquivos original sendo numerados de acordo com as pastas.

Multiplas imagens para multiplos PDFs

Multiplas imagens para multiplos PDFs.desktop

[Desktop Entry]
Type=Service
ServiceTypes=KonqPopupMenu/Plugin
MimeType=image/jpeg;image/png;
Actions=multiplos-pdf

[Desktop Action multiplos-pdf]
Name=Converter multiplas imagens para multiplos PDFs
Exec=~/.local/share/kservices5/scripts/multiplos_PDFs.sh %U
Icon=utilities-terminal

multiplos_PDFs.sh

#!/bin/bash
# Multiplas imagens para multiplos PDFs
#


mogrify -format pdf "$@"

Escanear com antivirus

Utiliza o programa clamtk.
Usando o antivirus clamav,

Escanear com antivirus.desktop

[Desktop Entry]
Type=Service
ServiceTypes=KonqPopupMenu/Plugin
MimeType=all/all;
Actions=antivirus

[Desktop Action antivirus]
Name=Escanear com antivirus
Exec=~/.local/share/kservices5/scripts/Escanear-antivirus.sh %U
Icon=utilities-terminal

Alterado de $@ para $1
Escanear-antivirus.sh

#!/bin/bash
#
# Verificar com clamtk
#

clamtk "$1"

Modificado

# Cria uma lista radiolist informados, sha256sum como padrão
hash=`kdialog --radiolist "Selecione o hash a verificar:" md5sum "md5sum" off   sha256sum  "sha256sum" on  sha512sum "sha512sum" off`

Verificar permissao legíveis para humanos

permissao.desktop

[Desktop Entry]
Type=Service
ServiceTypes=KonqPopupMenu/Plugin
MimeType=all/all;
Actions=permissao

[Desktop Action permissao]
Name=Verificar permissao legíveis para humanos
Exec=~/.local/share/kservices5/scripts/permissao.sh %U
Icon=utilities-terminal

permissao.sh

#!/bin/bash
#
#

stat --printf " tipo=(%F) \n arquivo=%n \n usuário=%U \n grupo=%G \n permissão=%a %A\n" "$1" >  /tmp/info.txt

permissaonumerica=`stat --printf "%a\n"  "$1"`

## Informações
# r w x
# 4 2 1
# rwx = 7 (ler,escrever,executar)
# rw- = 6 (ler,escrever)
# r-x = 5 (ler,executar)
# r-- = 4 (ler)
# -wx = 3 (escrever,executar)
# -w- = 2 (escrever)
# --x = 1 (executar)
# --- = 0 (não tem permissão)
#

numerop=`echo "$permissaonumerica"  | sed ':a;s/\B[0-9]\{1\}\>/,&/;ta'`

nproprietario=`echo "$numerop" | awk -F "," '{print $1}'`
ngrupos=`echo "$numerop" | awk -F "," '{print $2}'`
noutros=`echo "$numerop" | awk -F "," '{print $3}'`

nomepro=`stat --printf "%U" "$1"`
nomegrupo=`stat --printf "%G" "$1"`

leg-humanos () {
echo -e "\n[[[[      Permissões legíveis para humanos      ]]]]\n"

if [ "$nproprietario" == 7 ]; then
echo " O proprietário $nomepro pode ler, escrever e executar"
elif  [ "$nproprietario" == 6 ]; then
echo " O proprietário $nomepro pode ler e escrever"
elif  [ "$nproprietario" == 5 ]; then
echo " O proprietário $nomepro pode ler e executar"
elif  [ "$nproprietario" == 4 ]; then
echo " O proprietário $nomepro pode ler"
elif  [ "$nproprietario" == 3 ]; then
echo " O proprietário $nomepro pode escrever e executar"
elif  [ "$nproprietario" == 2 ]; then
echo " O proprietário $nomepro pode escrever"
elif  [ "$nproprietario" == 1 ]; then
echo " O proprietário $nomepro pode e executar"
elif  [ "$nproprietario" == 0 ]; then
echo " O proprietário $nomepro não tem permissão alguma"
fi


if [ "$ngrupos" == 7 ]; then
echo " O grupo $nomegrupo pode ler, escrever e executar"
elif  [ "$ngrupos" == 6 ]; then
echo " O grupo $nomegrupo pode ler e escrever"
elif  [ "$ngrupos" == 5 ]; then
echo " O grupo $nomegrupo pode ler e executar"
elif  [ "$ngrupos" == 4 ]; then
echo " O grupo $nomegrupo pode ler"
elif  [ "$ngrupos" == 3 ]; then
echo " O grupo $nomegrupo pode escrever e executar"
elif  [ "$ngrupos" == 2 ]; then
echo " O grupo $nomegrupo pode escrever"
elif  [ "$ngrupos" == 1 ]; then
echo " O grupo $nomegrupo pode e executar"
elif  [ "$ngrupos" == 0 ]; then
echo " O grupo $nomegrupo não tem permissão alguma"
fi

if [ "$noutros" == 7 ]; then
echo " Os outros podem ler, escrever e executar"
elif  [ "$noutros" == 6 ]; then
echo " Os outros podem ler e escrever"
elif  [ "$noutros" == 5 ]; then
echo " Os outros podem ler e executar"
elif  [ "$noutros" == 4 ]; then
echo " Os outros podem ler"
elif  [ "$noutros" == 3 ]; then
echo " Os outros podem escrever e executar"
elif  [ "$noutros" == 2 ]; then
echo " Os outros podem escrever"
elif  [ "$noutros" == 1 ]; then
echo " Os outros podem e executar"
elif  [ "$noutros" == 0 ]; then
echo " Os outros não tem permissão alguma"
fi

}

leg-humanos >>  /tmp/info.txt

kdialog --textbox  /tmp/info.txt 512 400

rm -r  /tmp/info.txt

Acho que é isso por enquanto.

Sobre pdf, acho que fiz todos.

Se alguém tiver mais alguma ideia para pdf, informe.

Atualizei para ficar genérico sem depender de KDE ou kdialog

Testei no Thunar.

Verificar no Dolphin

Os scripts usa Yad.

1 curtida

@anon98425369
Não conheço yad. Vou ver como ficou e ler sobre o app.

:+1:

As opções do KDE são aplicadas a todos os usuários do sistema.
Somente o Thunar usa configurações específicas por usuário.
Após a atualização do Zenity, o visual ficou ruim quando usado fora do GNOME.

Vi que otimizou os scripts.
Vou ver com calma e irei estudar eles.

Muito bom. :+1:

@Suporte

@anon98425369

acao_verificar-hash.sh

Tem um erro ao pegar o valor do --radiolist. Ele pega o valor TRUE e não o valor do comando selecionado


hash=$(yad \
  --center \
  --list \
  --title="Selecione o hash a verificar:" \
  --radiolist \
  --column="" --column="Hash" \
  TRUE sha256sum FALSE md5sum FALSE sha512sum \
  --separator=" " \
  --buttons-layout=center \
  --button=OK:0  \
  --height="200" --width="400" \
  2>/dev/null | awk '{print $1}')

Mudar para


hash=$(yad \
  --center \
  --list \
  --title="Selecione o hash a verificar:" \
  --radiolist \
  --column="" --column="Hash" \
  TRUE sha256sum FALSE md5sum FALSE sha512sum \
  --separator=" " \
  --buttons-layout=center \
  --button=OK:0  \
  --height="200" --width="400" \
  2>/dev/null | awk '{print $2}')
1 curtida

Correção no código do script acao_verificar-hash.sh…