如何在 Ubuntu 启动时自动禁用鼠标中键粘贴

如何在 Ubuntu 启动时自动禁用鼠标中键粘贴

我正在尝试让脚本在启动时运行,这样我就不必每次都手动执行此操作,并且终端窗口会一直打开。

这是脚本: 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为更高的值。该数字以秒为单位。

相关内容