web-dev-qa-db-ja.com

ファイルマネージャーの右クリックメニューに「シェルスクリプトとして実行」を統合する方法

シェルスクリプト(.shまたは.cshファイル)を実行したい場合、ファイルマネージャーを右クリックして[ターミナルをここで開く]をクリックし、「./ xxx.sh」と入力してシェルスクリプトファイルを実行する必要があります。とても不便です。しかし、「フラットテキストファイルを右クリックするとシェルスクリプトとして実行」を統合する方法はありますか?

最も頻繁に使用するファイルマネージャは次のとおりです。Thunar(Xfce4)、PCManFM(LXDE)、Nautilus(Gnome)。

1
pah8J

右クリックしてNautilusでスクリプトを実行します

このスクリプトのセットアップ方法は次のとおりです。 Nautilusはデスクトップの壁紙を設定できます。ログインとロック画面の壁紙を設定するにはどうすればよいですか? .

Nautilusを使用して、ログイン画面およびロック画面の壁紙として使用する適切な.pngまたは.jpgファイルをナビゲートおよび表示した後、Nautilusはスクリプトを使用してこれを設定できます。

スクリプトを作成するには:

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

次の行に貼り付けます。

#!/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

ファイルを保存し、geditエディターを終了します。

次を使用して、スクリプトを実行可能としてマークします。

chmod +x set-login-wallpaper

Nautilusを開き、壁紙画像を使用してディレクトリに移動します。適切な画像を見つけて右クリックします。次のドロップダウンメニューが表示されます。

Nautilus Right Click Drop Down

3番目のオプションScriptsをクリックします。すべてのスクリプトを含む別のドロップダウンメニューが表示されます。

Nautilus set-login-wallpaper Drop Down

選択する set-login-wallpaper

スクリプトの実行時に、Sudoパスワードを入力する必要があります。

再起動して、新しいログイン画面とロック画面の壁紙をお楽しみください。

2