Как интегрировать & ldquo; запускать как shell script & rdquo; в контекстном меню файлового менеджера? [закрыто]

Теперь, когда я хочу запустить сценарий оболочки (файл .sh или .csh), мне нужно щелкнуть правой кнопкой мыши файловый менеджер и нажать «открыть терминал здесь», а затем набрать «./xxx.sh», чтобы запустить оболочку файл сценария. Это очень неудобно для меня.

Вот наиболее часто используемый файловый менеджер: Thunar (в Xfce4), PCManFM (в LXDE) и Наутилус (в Гноме).

131
задан 4 May 2018 в 10:31

1 ответ

Щелкните правой кнопкой мыши, чтобы запустить скрипт в 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 editor.

Теперь пометьте скрипт как исполняемый файл, используя:

chmod +x set-login-wallpaper

Откройте Nautilus и перейдите в свой каталог с изображениями обоев. Найдите подходящее изображение и щелкните его правой кнопкой мыши. Появится это раскрывающееся меню:

Nautilus может устанавливать обои для рабочего стола. Как можно установить логин и заблокировать обои экрана?

Нажмите на третий вариант Scripts. Другое раскрывающееся меню появляется со всеми вашими сценариями:

Выберите set-login-wallpaper.

Когда скрипт запускается, вам нужно будет ввести свой пароль sudo .

Перезагрузите и наслаждайтесь новыми входами и заблокируйте обои экрана.

2
ответ дан 17 July 2018 в 15:17

Другие вопросы по тегам:

Похожие вопросы: