Como integrar o “run as shell script” no menu do botão direito do gerenciador de arquivos? [fechadas]

1

Agora, quando eu quero executar um script de shell (arquivo .sh ou .csh), preciso clicar com o botão direito no gerenciador de arquivos e clicar em "abrir terminal aqui" e digitar "./xxx.sh" para executar o shell Arquivo de script. É muito inconveniente para mim. No entanto, existe alguma maneira de integrar "executar como script de shell quando clico com o botão direito em qualquer arquivo de texto plano"?

Aqui está o gerenciador de arquivos que eu uso com mais freqüência: Thunar (no Xfce4), PCManFM (no LXDE) e Nautilus (no Gnome).

    
por pah8J 04.05.2018 / 04:57

1 resposta

2

Clique com o botão direito para executar o script no Nautilus

Aqui está como eu configurei este script: Nautilus pode definir papel de parede. Como ele pode definir o login e o papel de parede da tela de bloqueio? .

Depois de usar o Nautilus para navegar e visualizar um arquivo .png ou .jpg apropriado para usar como tela de login e papel de parede da tela de bloqueio, o Nautilus pode definir isso para você usando um script.

Para criar o script, use:

cd ~/.local/share/nautilus/scripts/
gedit set-login-wallpaper

Cole nas seguintes linhas:

#!/bin/bash

## Set login wallpaper

# strip new line char passed by Nautilus
FILENAME=$(echo $NAUTILUS_SCRIPT_SELECTED_FILE_PATHS | sed -e 's/\r//g')

# Multiple files can't be selected.
LINE_COUNT=$(wc -l <<< "$NAUTILUS_SCRIPT_SELECTED_FILE_PATHS")
LINE_COUNT=$((LINE_COUNT-1))

if [[ $LINE_COUNT > 1 ]] ; then
    zenity --error --text "Ony one file can be selected at a time! "
    exit 1
fi

# Object type must be "file..." (ie no directories, etc.)
if [ -d "${FILENAME}" ] ; then
    zenity --error --text "$FILENAME is a directory!";
    exit 1
else
    if [ -f "${FILENAME}" ]; then
        : # Bash noop
    else
        zenity --error --text "${FILENAME} is not a file!";
        exit 2
    fi
fi

# Build working file in /tmp
echo "[com.canonical.unity-greeter]" > /tmp/set-login-wallpaper.tmp
echo "draw-user-backgrounds=false" >> /tmp/set-login-wallpaper.tmp
echo "background='$FILENAME'" >> /tmp/set-login-wallpaper.tmp

# Must run as sudo
if [ "$EUID" -ne 0 ] ; then

    # Get sudo password
    PASSWORD=$(zenity --password --title="Set Login Wallpaper" --timeout=20)

    # copy working file to real file using sudo
    echo $PASSWORD | sudo -S cp /tmp/set-login-wallpaper.tmp \
/usr/share/glib-2.0/schemas/10_unity_greeter_background.gschema.override

    # compile using sudo
    echo $PASSWORD | sudo -S glib-compile-schemas /usr/share/glib-2.0/schemas

else
    # Already sudo so simply copy and compile
    # copy working file to real file
    cp /tmp/set-login-wallpaper.tmp \
/usr/share/glib-2.0/schemas/10_unity_greeter_background.gschema.override

    # compile
    glib-compile-schemas /usr/share/glib-2.0/schemas
fi

exit 0

Salve o arquivo e saia do editor gedit .

Agora marque o script como executável usando:

chmod +x set-login-wallpaper

Abra o Nautilus e navegue até seu diretório com imagens de papel de parede. Encontre uma imagem apropriada e clique com o botão direito nela. Este menu suspenso é exibido:

CliquenaterceiraopçãoScripts.Outromenususpensoaparececomtodososseusscripts:

Selecione set-login-wallpaper .

Quando o script for executado, você terá que digitar sua senha sudo .

Reinicie e aproveite seu novo login e o papel de parede da tela de bloqueio.

    
por WinEunuuchs2Unix 04.05.2018 / 12:09