Как интегрировать «запускать как сценарий оболочки» в контекстное меню файлового менеджера? [закрыто]

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

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

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

1 ответ

Щелкните правой кнопкой для запущения скрипта в Наутилусе

Вот то, как я устанавливаю этот сценарий: Наутилус может установить обои для рабочего стола. Как это может установить вход в систему и заблокировать экранные обои?.

После использования Наутилуса, чтобы перейти и просмотреть соответствующий .png или .jpg файл для использования в качестве экрана входа в систему и экранных обоев блокировки Наутилус может установить это для Вас использующий сценарий.

Создать использование сценария:

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

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

Nautilus set-login-wallpaper Drop Down

Выбрать set-login-wallpaper.

Когда выполнения сценария необходимо будет ввести Ваш sudo пароль.

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

2
ответ дан 7 December 2019 в 13:24

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

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