Как отключить вставку средней мыши в 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
файл на более высокое значение. Число в секундах.