IMWheel создает дрожащую прокрутку при использовании сенсорной панели

Предполагая, что это работает правильно -только в серийном:

find dir_* -type f -execdir sh for_loop.sh {} \;

Тогда вы сможете заменить это на:

find dir_* -type f | parallel 'cd {//} && sh for_loop.sh {}'

Чтобы запустить ее в нескольких терминалах, GNU Parallel поддерживает tmuxзапуск каждой команды в отдельной tmuxпанели:

find dir_* -type f | parallel --tmuxpane 'cd {//} && sh for_loop.sh {}'

По умолчанию используется одно задание на ядро ​​ЦП. В вашем случае вы можете запустить на одно задание больше, чем у вас есть ядер:

 find dir_* -type f | parallel -j+1 --tmuxpane 'cd {//} && sh for_loop.sh {}'

GNU Parallel — это универсальный распараллеливатель, который упрощает параллельное выполнение заданий на одной машине или на нескольких машинах, к которым у вас есть доступ по ssh.

Если у вас есть 32 разных задания, которые вы хотите запустить на 4 ЦП, прямой способ распараллеливания — запустить 8 заданий на каждом ЦП:

Simple scheduling

GNU Parallel вместо этого порождает новый процесс по завершении одного из них -, сохраняя активность ЦП и тем самым экономя время:

GNU Parallel scheduling

Установка

Из соображений безопасности вам следует установить GNU Parallel с помощью вашего менеджера пакетов, но если GNU Parallel не упакован для вашего дистрибутива, вы можете выполнить персональную установку, которая не требует root-доступа. Это можно сделать за 10 секунд, выполнив это:

$ (wget -O - pi.dk/3 || lynx -source pi.dk/3 || curl pi.dk/3/ || \
   fetch -o - http://pi.dk/3 ) > install.sh
$ sha1sum install.sh | grep 883c667e01eed62f975ad28b6d50e22a
12345678 883c667e 01eed62f 975ad28b 6d50e22a
$ md5sum install.sh | grep cc21b4c943fd03e93ae1ae49e28573c0
cc21b4c9 43fd03e9 3ae1ae49 e28573c0
$ sha512sum install.sh | grep da012ec113b49a54e705f86d51e784ebced224fdf
79945d9d 250b42a4 2067bb00 99da012e c113b49a 54e705f8 6d51e784 ebced224
fdff3f52 ca588d64 e75f6033 61bd543f d631f592 2f87ceb2 ab034149 6df84a35
$ bash install.sh

Другие варианты установки см. вhttp://git.savannah.gnu.org/cgit/parallel.git/tree/README

Узнать больше

Посмотреть другие примеры:http://www.gnu.org/software/parallel/man.html

Посмотрите вступительные видеоролики:https://www.youtube.com/playlist?list=PL284C9FF2488BC6D1

Прохождение обучения:http://www.gnu.org/software/parallel/parallel_tutorial.html

Подпишитесь на список рассылки, чтобы получить поддержку:https://lists.gnu.org/mailman/listinfo/parallel

1
04.04.2019, 17:42
2 ответа

Мы можем сделать следующее, чтобы запустить imwheel, когда мышь подключена, и остановить, когда мышь отключена.

Я использую Fedora 33, но аналогичное решение должно работать и в других дистрибутивах.

Этот метод предполагает, что на вашем компьютере запущена служба imwheel.

$HOME/xinputwatcher.sh(не забудьте выполнить команду chmod +x для этого файла)

#!/bin/bash
while true
do
  if [[ $(xinput list --name-only | grep 'Logitech USB-PS/2 Optical Mouse') ]];
  then
    if [[ $(systemctl --user is-active imwheel) == inactive ]];
    then
      systemctl --user start --now imwheel
      echo "starting imwheel"
    else
      echo "imwheel already running"
    fi
  else
    if [[ $(systemctl --user is-active imwheel) == active ]];
    then
      systemctl --user stop --now imwheel
      echo "stopping imwheel"
    else
      echo "imwheel already stopped"
    fi
  fi
  sleep 3
done
  • Обратите внимание: вы должны заменить строку «Логическая мышь». имя мыши (введите xinput, чтобы получить список устройств ).
  • Если у вас несколько мышей, вам нужно добавить блок elseif.
  • Обратите внимание на команду sleep; если мы отключим мышь, это должно подействовать в течение 3 секунд.
  • Протестируйте этот скрипт, запустив ./xinputwatcher.sh. Он должен запускать imwheel, когда вы подключаете мышь, и останавливать imwheel, когда вы его отключаете.

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

$HOME/.config/systemd/user/xinputwatcher.service

[Unit]
Description=xinputwatcher

[Service]
Type=simple
ExecStart=$HOME/xinputwatcher.sh
KillMode=process

[Install]
WantedBy=graphical-session.target

Наконец, включите службу, чтобы она запускалась автоматически при перезагрузке.

systemctl --user daemon-reload
systemctl --user enable xinputwatcher.sh
0
07.02.2021, 05:27

Итак, чтобы решить эту же проблему в Ubuntu 20.10, я установил сочетания клавиш в Ubuntu. Используя настраиваемые сочетания клавиш gnome, вы можете запускать через него любую команду. Чтобы запустить imwheel, введите

imwheel

и чтобы остановить imwheel, введите

killall imwheel

вот и все, теперь вы можете запускать эти команды, назначая сочетания клавиш, подобные этомуenter image description here

Я использовал F1 для запуска и F2 для остановки imwheel, вы можете выбрать свой собственный! Надеюсь, поможет!

0
14.04.2021, 08:32

Теги

Похожие вопросы