Как сделать команды xinput постоянными

Вложенная подстановка команд не работает в csh. Объявите шаблон как переменную, а затем постройте массив, используя переменную.

set pattern = `date +%F_%H`
set status = ( `cut -d, -f1 <*$pattern.csv | grep -v Status` )
4
25.01.2017, 20:17
4 ответа

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

while true; do state=$(lsusb) && sleep 2 && [[ $state != $(lsusb) ]] && echo "Change detected, replace echo with your command"; done
1
27.01.2020, 21:07

Загрузка файлов конфигурации при запуске зависит от того, какая среда рабочего стола используется. Если вы запустили свой xserver, набрав startx , это обычно будет означать, что он будет использовать .xinitrc (хранится в $ HOME).

Внутри .xinitrc вам нужно будет загрузить конфигурацию с различными сопоставлениями, например .xsessionrc

Затем вам понадобится следующая строка (в .xinitrc)

xrdb -merge ~/.xsessionrc 

Однако, если вы используете менеджер входа в систему, например как LightDM или GNOME вам нужно будет найти такой же эквивалент

-2
27.01.2020, 21:07

Для чего стоит:
Вы можете использовать файл ~ / .xsession вместо ] ~ / .xsessionrc .

~ / .xsessionrc специфичен для Debian, а ~ / .xsession подобен UNIX и имеет одинаковое поведение во всех дистрибутивах.

0
27.01.2020, 21:07

Вот мое окончательное решение. Я исправил крайне маловероятное и неуместное условие гонки в ответе Нира. Также я обращаю внимание на то, что я не могу переназначить клавиши, когда мышь отключена (нет сообщений об ошибках, когда она отключена).

Я добавил в ~ / .xinitrc :

# Map mouse button 8 (top right) to button 2 (top left) and vice versa, run when changes to the mouse occur
while true; do
        NEW_MOUSEID=$(xinput | grep "Expert Mouse" | grep -o -E '[0-9]+' | head -n 1)
        if [ "$MOUSEID" != "$NEW_MOUSEID" ]; then
                MOUSEID=$NEW_MOUSEID
                if [ "$MOUSEID" != "" ]; then
                        xinput --set-button-map $MOUSEID 1 8 3 4 5 6 7 2 9 10 11 12
                fi
        fi
        sleep 2
done &

Я использовал идентификатор мыши, полученный из xinput, в качестве триггера вместо lsusb , но он имеет тот же эффект.

Обратите внимание, что конвейеры после команды xinput просто анализируют идентификатор мыши, который может изменить. Дополнительные НОВЫЕ / СТАРЫЕ ИДЕНТИФИКАТОРЫ мыши были анальным способом избежать любой возможности состояния гонки.

Спасибо @Nir за предложение.

2
27.01.2020, 21:07

Теги

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