我正在尝试让脚本在启动时运行,这样我就不必每次都手动执行此操作,并且终端窗口会一直打开。
这是脚本: anti-midmouse-paste.sh
#!/bin/bash
while(true)
do
echo -n | xsel -n -i
sleep 0.5
done
这是我在网上找到的一个脚本,可以清除所选的复制文本。当我定期使用以下命令运行它时,它运行完美:sh anti-midmouse-paste.sh
但是,当我使用 nano 在 /etc/systemd/system 中输入脚本时,它似乎在启动时不起作用(尽管使用 启用了它sudo systemctl enable anti-midmouse-paste
),当我使用 启动脚本时也不起作用sudo systemctl start anti-midmouse-paste
。我在 .service 和 .sh 文件上都做过同样的操作chmod +x
。
以下是 .service 内容:
[Unit]
Description=Stops middlemouse paste from working
[Service]
ExecStart=/usr/local/bin/anti-midmouse-paste.sh #in this line specify the path to the script.
Type=simple
Restart=on-failure
Restartsec=10
KillMode=process
[Install]
WantedBy=multi-user.target
当我检查 sudo systemctl status anti-midmouse-paste.service
:
● anti-midmouse-paste.service - Stops middlemouse paste from working
Loaded: loaded (/etc/systemd/system/anti-midmouse-paste.service; enabled; vendor preset: enabled)
Active: active (running) since Fri 2021-10-15 19:59:44 CEST; 27min ago
Main PID: 889 (anti-midmouse-p)
Tasks: 2 (limit: 19018)
Memory: 2.4M
CGroup: /system.slice/anti-midmouse-paste.service
├─ 889 /bin/bash /usr/local/bin/anti-midmouse-paste.sh #in this line specify the path to the script.
└─18219 sleep 0.5
Oct 15 20:27:01 User anti-midmouse-paste.sh[18202]: xsel: Can't open display: (null)
Oct 15 20:27:01 User anti-midmouse-paste.sh[18202]: : Inappropriate ioctl for device
Oct 15 20:27:01 User anti-midmouse-paste.sh[18206]: xsel: Can't open display: (null)
Oct 15 20:27:01 User anti-midmouse-paste.sh[18206]: : Inappropriate ioctl for device
Oct 15 20:27:02 User anti-midmouse-paste.sh[18210]: xsel: Can't open display: (null)
Oct 15 20:27:02 User anti-midmouse-paste.sh[18210]: : Inappropriate ioctl for device
Oct 15 20:27:02 User anti-midmouse-paste.sh[18214]: xsel: Can't open display: (null)
Oct 15 20:27:02 User anti-midmouse-paste.sh[18214]: : Inappropriate ioctl for device
Oct 15 20:27:03 User anti-midmouse-paste.sh[18218]: xsel: Can't open display: (null)
Oct 15 20:27:03 User anti-midmouse-paste.sh[18218]: : Inappropriate ioctl for device
如您所见,它显示脚本已加载并且正在运行。但日志显示了一些我不理解的内容,而且我也没有在任何地方找到它。显然这与我使用有关xsel
。
希望有人能理解这一点并提供帮助。提前致谢。
答案1
这是关于如何在 Ubuntu 上自动禁用鼠标中键粘贴的指南。以前是一篇寻求帮助的帖子,但现在我已经学会了如何操作,我将分享我是如何做到的。
这使用了我在另一篇文章中找到的脚本,该脚本会清除鼠标中键的剪贴板,这样当您单击滚轮时它就不会被粘贴。在此处找到: https://askubuntu.com/a/4644/1481518。他值得称赞。
步骤 0:安装xsel
(用于操作 X 选择的工具):。sudo apt-get install xsel
安装 xsel 后,您可以继续。
步骤1: 创建脚本-打开您选择的文本编辑器,然后输入以下代码:
#!/bin/bash
while(true)
do
echo -n | xsel -n -i
sleep 0.5
done
将文件另存为anti-midmouse-paste.sh
(名称可以是其他名称,但请确保添加.sh
)。
同时使脚本文件可执行:chmod +x /path/to/file/anti-midmouse-paste.sh
第2步:现在我们已经创建了脚本,是时候让它在我们启动计算机时运行了。
打开文本编辑器的另一个窗口,然后粘贴以下内容:
[Desktop Entry]
Type=Application
Name=Anti Midmouse Paste
Exec="/path/to/the/script/anti-midmouse-paste.sh" "--no-window"
X-GNOME-Autostart-enabled=true
确保您输入了正确的路径Exec=
。
并将此文件另存为~/.config/autostart/
(anti-midmouse-paste.desktop
同样,名称无关紧要,但确保其以 结尾.desktop
)
如果找不到,.config
那是因为它是“隐藏”目录。要显示它,请按Ctrl + H
,所有隐藏目录和文件都会显示出来。
步骤4:你完成了。
现在,无论何时启动计算机,脚本都会运行,并且您将不再使用鼠标中键粘贴选定的文本。
额外提示:
该脚本会清除你对以下应用选择的文本:文本编辑器和终端。
sleep 0.5
为延迟删除所选文本(如果您想要复制或删除文本),您可以做的是将文件中的值更改.sh
为更高的值。该数字以秒为单位。