为Firefox/Nautilus添加选中文本右键「复制粘贴至Terminal」选项
嘿,这个需求我太懂了——每次复制命令还要手动开终端、粘贴,重复操作真的烦。下面分不同桌面环境和浏览器给你整理了具体实现方法,都是亲测好用的:
一、GNOME 桌面(Nautilus 文件管理器)
如果你用的是 GNOME 自带的 Nautilus,最方便的是用 nautilus-actions 扩展来添加自定义右键动作:
- 先安装扩展工具(Debian/Ubuntu 系):
Fedora/RHEL 系可以用:sudo apt install nautilus-actions xdotoolsudo dnf install nautilus-extensions-nautilus-actions xdotool - 打开「Nautilus Actions Configuration」工具,点击左上角的「+」新建动作:
- 基本设置:
- 名称填「粘贴至Terminal」
- 描述可以写「将选中的文本粘贴到新终端窗口」
- 一定要勾选「显示在选择文本的上下文菜单中」
- 命令设置:
- 命令栏填入:
这个命令会打开新终端,自动把选中的文本输入到终端输入框(gnome-terminal -- bash -c 'sleep 0.2; xdotool type "%s"; exec bash'sleep 0.2是给终端启动留一点时间,避免输入失败);如果想直接执行选中的命令,改成:gnome-terminal -- bash -c '%s; exec bash'
- 命令栏填入:
- 基本设置:
- 保存设置后,重启 Nautilus 生效:
现在选中文本右键,就能看到「粘贴至Terminal」选项了。nautilus -q
二、KDE 桌面(Dolphin 文件管理器)
KDE 的 Dolphin 自带自定义右键菜单的功能,不用额外装扩展:
- 打开 Dolphin,点击顶部菜单栏「设置」→「配置 Dolphin」→「上下文菜单」
- 点击「添加」→「新建动作」:
- 基本设置:
- 文本填「粘贴至Terminal」
- 工具提示写「将选中的文本发送到终端」
- 勾选「仅当选择了文本时显示」
- 命令设置:
- 命令栏填入(需先安装
xdotool:sudo apt install xdotool):
要直接执行命令的话,改成:konsole --hold -e bash -c 'sleep 0.2; xdotool type "%s"; exec bash'konsole --hold -e bash -c '%s; exec bash'
- 命令栏填入(需先安装
- 基本设置:
- 保存后,右键选中文本就能看到这个选项了。
三、XFCE 桌面(Thunar 文件管理器)
XFCE 的 Thunar 需要装自定义动作工具:
- 先安装工具:
sudo apt install thunar-custom-actions xdotool - 打开 Thunar,点击顶部「编辑」→「配置自定义动作」
- 点击「+」新建动作:
- 基本设置:
- 名称填「粘贴至Terminal」
- 描述写「将选中的文本粘贴到终端」
- 命令栏填入:
xfce4-terminal -x bash -c 'sleep 0.2; xdotool type "%s"; exec bash'
- 条件设置:
- 切换到「条件」标签页,勾选「文本被选中」
- 基本设置:
- 保存后重启 Thunar,右键选中文本即可使用。
四、浏览器(Chrome/Firefox/Edge)
浏览器里的右键菜单需要借助扩展实现,推荐用「Custom Right Click Menu」这个扩展(Chrome、Edge、Firefox 都有对应版本):
- 安装扩展后,打开扩展的设置页面,点击「Add New Menu Item」:
- 名称填「粘贴至Terminal」
- 动作类型选择「Run Command」
- 命令栏填入对应终端的命令(比如 GNOME 用
gnome-terminal -- bash -c 'sleep 0.2; xdotool type "%s"; exec bash',KDE 换成konsole) - 勾选「Only show when text is selected」
- 保存后,在浏览器里选中文本右键,就能看到这个选项了。
小提示
- 如果不想用
xdotool,也可以用xclip把选中的文本同步到系统剪贴板,终端打开后按 Ctrl+V 粘贴,但xdotool能实现自动粘贴,更符合你的需求。 - 不同终端的命令可能略有差异,比如 Terminator 可以把命令里的
gnome-terminal换成terminator,按需调整就行。
内容的提问来源于stack exchange,提问作者Ken Loving




