Как отключить вставку средней мыши в Ubuntu автоматически при запуске

Я пытаюсь запустить скрипт при запуске, чтобы мне не приходилось каждый раз делать это вручную, при постоянно открытом окне терминала.

Это сценарий: anti-midmouse-paste.sh

      #!/bin/bash

while(true)
do
    echo -n | xsel -n -i
    sleep 0.5
done

Это скрипт, который я нашел в Интернете, который очищает выделенный скопированный текст. Он работает безупречно, когда я регулярно запускаю его с: sh anti-midmouse-paste.sh

Однако, когда я ввел скрипт в /etc/systemd/system с помощью nano, похоже, он не работает при запуске (несмотря на то, что он включен с помощью sudo systemctl enable anti-midmouse-paste), ни когда я запускаю скрипт с помощью sudo systemctl start anti-midmouse-paste. я сделал chmod +xкак в файле .service, так и в файле .sh.

Вот содержимое .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 при запуске. Раньше это был пост с просьбой о помощи, но теперь, когда я научился это делать, я поделюсь, как я это сделал.

Здесь используется скрипт, который я нашел в другом посте, который очищает буфер обмена для средней кнопки мыши, чтобы он не вставлялся при нажатии колеса прокрутки. Найдено здесь: /questions/117251/kak-otklyuchit-vstavku-srednej-knopkoj-myishi/117281#117281. Кредит идет к нему.

Шаг 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(имя может быть другим, но обязательно добавьте ).

Также сделайте файл скрипта исполняемым: 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файл на более высокое значение. Число в секундах.

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