Спросите прежде, чем запустить скрипт в Thunar

Наутилус или PCManFM имеют опцию спросить Вас перед выполняющимися файлами.

У меня может быть это в Thunar?


Я отправляю это для предоставления ответа.

2
задан 26 January 2017 в 20:23

1 ответ

На основе сценария Zenity, предоставленного в этом ответе,

посмотрите, что Вы имеете zenity установленный

sudo apt-get install zenity

создайте названный исполняемый файл editorrun.sh с этим содержанием:

    #!/bin/bash

zenity --question --text="What to do with the executable file '$1'?" \
       --ok-label=Run \
       --cancel-label=Edit

case $? in
    0)bash -c "$1"
    ;;
    1)gedit $1
    ;;
esac

сделайте это исполняемым файлом, затем добавьте его к списку приложений

gedit ~/.local/share/applications/edit-or-run.desktop

с этим содержанием:

[Desktop Entry]
Type=Application
Name=Edit-or-run
Icon=gedit
Categories=Utility;
MimeType=application/x-sh;application/x-executable;
Exec=bash -c 'path/to/the/script/editorrun.sh %f'

добавление пути к сценарию в Exec=bash -c 'path/to/the/script/editorrun.sh %f'. Затем сделайте тот исполняемый файл.

Затем сделайте это desktop подайте заявку по умолчанию на исполняемые файлы путем выбора такого файла, движение к 'Правилам приличия - Общий - Открывается' и выбирающий Edit-run.

enter image description here

После этого при нажатии на исполняемый файл, диалоговое окно появляется

enter image description here

(Маленький незначительный сбой: Вы не можете отклонить диалоговое окно в этой точке: использование близкой кнопки окна, Esc или Alt+F4 приравнивается к --cancel-label опция в сценарии и откроет файл в текстовом редакторе.)


Править: относительно "маленького незначительного сбоя": для предотвращения файла, открываемого для редактирования через этот zenity сценарий (и, учитывая, что "открытый в текстовом редакторе" очень доступная опция так или иначе), можно было удалить текстовый редактор из сценария и повторно сформулировать вопрос:

    #!/bin/bash

zenity --question --text="Do you REALLY want to EXECUTE this file?" \
       --ok-label=YES! \
       --cancel-label=No...

case $? in
    0)bash -c "$1"
    ;;
    1)
    ;;
esac

Который дает Вам это:

enter image description here

где "Да" выполнит сценарий, в то время как все другие опции ничего не делают.

2
ответ дан 2 December 2019 в 03:42

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

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