在 Thunar 中运行脚本之前询问

在 Thunar 中运行脚本之前询问

Nautilus 或 PCManFM 有一个选项可以在执行文件之前询问您。

我可以在图纳尔 (Thunar) 得到它吗?


我发布此文是为了提供答案。

答案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)xfce4-terminal -e "bash $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文件设置为可执行文件的默认应用程序,转到'礼节 - 一般 - 打开'并选择编辑或运行

在此处输入图片描述

之后,当您单击可执行文件时,会出现一个对话框

在此处输入图片描述

(一个小问题:此时您无法关闭对话框:使用关闭窗口按钮,EscAlt+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)0)xfce4-terminal -e "bash $1"
    ;;
    1)
    ;;
esac

结果如下:

在此处输入图片描述

其中“是”将执行脚本,而所有其他选项则不执行任何操作。

相关内容