Уголок новичка

udevrules и Xbox gamepad

Прокунсультируйте кто-нибудь по udevrules.
предпосылки: при игре с помощью геймпада, монитор вырубается — уходит в спящий режим. нагуглил решение — маленькая утилита из aur — joystickwake. только ее нужно запускать в фоне перед запуском игры, а потом вырубать (можно не вырубать, но борьба за ресурсы, все дела).
задача — выполнять скрипт при подключении геймпада, а при отключении выполнять еще один.
пытаюсь освоить udevrules, а тут еще и подвернулся повод)
что делаю:
dmesg
[ 3558.815661] usb 1-4: new full-speed USB device number 20 using xhci_hcd
[ 3558.960747] usb 1-4: New USB device found, idVendor=045e, idProduct=02ea, bcdDevice= 3.01
[ 3558.960753] usb 1-4: New USB device strings: Mfr=1, Product=2, SerialNumber=3
[ 3558.960757] usb 1-4: Product: Controller
[ 3558.960760] usb 1-4: Manufacturer: Microsoft
[ 3558.960763] usb 1-4: SerialNumber: 3033363030303431393237383334
[ 3558.962538] input: Microsoft X-Box One S pad as /devices/pci0000:00/0000:00:14.0/usb1/1-4/1-4:1.0/input/input37

методом «от противного» узнаю, что мой гемпад коннектится как /dev/input/js1
sudo udevadm info -a -n /dev/input/js1
looking at device '/devices/pci0000:00/0000:00:14.0/usb1/1-4/1-4:1.0/input/input28/js1':
KERNEL==«js1»
SUBSYSTEM==«input»
DRIVER==""
looking at parent device '/devices/pci0000:00/0000:00:14.0/usb1/1-4/1-4:1.0/input/input28':
KERNELS==«input28»
SUBSYSTEMS==«input»
DRIVERS==""
ATTRS{name}==«Microsoft X-Box One S pad»
ATTRS{uniq}==""
ATTRS{properties}==«0»
ATTRS{phys}==«usb-0000:00:14.0-4/input0»
looking at parent device '/devices/pci0000:00/0000:00:14.0/usb1/1-4/1-4:1.0':
KERNELS==«1-4:1.0»
SUBSYSTEMS==«usb»
DRIVERS==«xpad»
ATTRS{authorized}==«1»
ATTRS{bAlternateSetting}==" 0"
ATTRS{bInterfaceNumber}==«00»
ATTRS{bNumEndpoints}==«02»
ATTRS{bInterfaceProtocol}==«d0»
ATTRS{bInterfaceSubClass}==«47»
ATTRS{bInterfaceClass}==«ff»
ATTRS{supports_autosuspend}==«0»
looking at parent device '/devices/pci0000:00/0000:00:14.0/usb1/1-4':
KERNELS==«1-4»
SUBSYSTEMS==«usb»
DRIVERS==«usb»
ATTRS{maxchild}==«0»
ATTRS{serial}==«3033363030303431393237383334»
ATTRS{urbnum}==«16»
ATTRS{bcdDevice}==«0301»
ATTRS{bNumConfigurations}==«1»
ATTRS{bMaxPower}==«500mA»
ATTRS{bNumInterfaces}==" 3"
ATTRS{bDeviceProtocol}==«d0»
ATTRS{avoid_reset_quirk}==«0»
ATTRS{bmAttributes}==«a0»
ATTRS{version}==" 2.00"
ATTRS{product}==«Controller»
ATTRS{quirks}==«0x0»
ATTRS{bConfigurationValue}==«1»
ATTRS{removable}==«removable»
ATTRS{devpath}==«4»
ATTRS{rx_lanes}==«1»
ATTRS{ltm_capable}==«no»
ATTRS{devnum}==«11»
ATTRS{bMaxPacketSize0}==«64»
ATTRS{idProduct}==«02ea»
ATTRS{manufacturer}==«Microsoft»
ATTRS{bDeviceSubClass}==«47»
ATTRS{configuration}==""
ATTRS{tx_lanes}==«1»
ATTRS{devspec}=="(null)"
ATTRS{bDeviceClass}==«ff»
ATTRS{busnum}==«1»
ATTRS{speed}==«12»
ATTRS{authorized}==«1»
ATTRS{idVendor}==«045e»
looking at parent device '/devices/pci0000:00/0000:00:14.0/usb1':
KERNELS==«usb1»
SUBSYSTEMS==«usb»
DRIVERS==«usb»
ATTRS{configuration}==""
ATTRS{idVendor}==«1d6b»
ATTRS{bMaxPacketSize0}==«64»
ATTRS{speed}==«480»
ATTRS{bNumInterfaces}==" 1"
ATTRS{maxchild}==«16»
ATTRS{version}==" 2.00"
ATTRS{bmAttributes}==«e0»
ATTRS{authorized}==«1»
ATTRS{bConfigurationValue}==«1»
ATTRS{devnum}==«1»
ATTRS{authorized_default}==«1»
ATTRS{devspec}=="(null)"
ATTRS{bNumConfigurations}==«1»
ATTRS{bDeviceSubClass}==«00»
ATTRS{bMaxPower}==«0mA»
ATTRS{bDeviceProtocol}==«01»
ATTRS{rx_lanes}==«1»
ATTRS{idProduct}==«0002»
ATTRS{interface_authorized_default}==«1»
ATTRS{vendor}==«0x8086»
ATTRS{local_cpulist}==«0-7»
ATTRS{device}==«0xa12f»
ATTRS{d3cold_allowed}==«1»
ATTRS{broken_parity_status}==«0»
looking at parent device '/devices/pci0000:00':
KERNELS==«pci0000:00»
SUBSYSTEMS==""
DRIVERS==""

создаю:
/etc/udev/rules/50-xbox.rules
SUBSYSTEM==«input», ATTRS{idVendor}==«045e», ATTRS{idProduct}==«02ea», ACTION==«add», RUN+="/etc/udev/scripts/joy.sh"

перезапускаю правила:
sudo udevadm control --reload-rules

проверяю — не работает.
скрипт из консоли запускается. если что, вот его пример:
/etc/udev/scripts/joy.sh
#!/bin/bash
joystickwake && notify-send «Xbox gamepad connected» -t 1000

короче, победа.

решил отказаться от всяких joystickwake и использовать топорный метод xset. конечный вариант правила:
/etc/udev/rules.d/98-xbox.rules
ACTION=="add" \
, KERNEL=="js1" \
, ATTRS{name}=="Microsoft X-Box One S pad" \
, RUN+="/bin/bash /etc/udev/scripts/joyadd.sh"

ACTION=="remove" \
, KERNEL=="js1" \
, ATTRS{name}=="Microsoft X-Box One S pad" \
, RUN+="/bin/bash /etc/udev/scripts/joyrem.sh"

# Wireless gamepad
ACTION=="add" \
, KERNEL=="input[0-9]*" \
, ATTRS{name}=="Xbox Wireless Controller" \
, RUN+="/bin/bash /etc/udev/scripts/joyadd.sh (BT)"

ACTION=="remove" \
, ATTRS{name}=="Xbox Wireless Controller" \
, RUN+="/bin/bash /etc/udev/scripts/joyrem.sh (BT)"

конечный вариант скриптов:
/etc/udev/scripts/joyadd.sh
#!/bin/bash
TIME='-t 1000'
STAT=$1
DISPLAY=":0"
XAUTHORITY=/run/user/1000/Xauthority
DBUS_SESSION_BUS_ADDRESS=unix:path=/run/user/1000/bus
export DISPLAY XAUTHORITY DBUS_SESSION_BUS_ADDRESS
xset -dpms
xset s off
su led -c "notify-send  'System Message' 'Xbox Gamepad $STAT connected' $TIME"

/etc/udev/scripts/joyrem.sh
#!/bin/env bash
TIME='-t 1000'
STAT=$1
DISPLAY=":0"
XAUTHORITY=/run/user/1000/Xauthority
DBUS_SESSION_BUS_ADDRESS=unix:path=/run/user/1000/bus
export DISPLAY XAUTHORITY DBUS_SESSION_BUS_ADDRESS
xset +dpms
xset s on
su led -c "notify-send  'Sytem Message' 'Xbox Gamepad $STAT disconnected' $TIME"



но, при отключении bluetooth ивент срабатывает дважды. не особо критично, но…
Учебники (How-To & F.A.Q)

Немного оптимизации и как обойтись без NetworkManager

Предыстория.
Мой старенький ноут грузится за 1 мин 30 сек. Даже для HDD это многовато. Проведя анализ по статье Ускорение загрузки, выяснил, что максимальное время загрузки происходит за счет монтирования /dev/loop* устройств snap пакетов. От них избавиться просто — найти замену из репозиториев или aur. Далее, сравнимые с ними по длительности загрузки оказались avahi и NetworkManager. С первым просто отключаем, не знаю кто им пользуется (почитал в гугле). А вот отказ от NetworkManager это уже история Читать дальше
Manjaro KDE Edition

Проблема с timeshift

Здравствуйте! Помогите пожалуйста.Программа timeshift не видит снимок системы хотя он есть и сделал вчера или позавчера, пишет нет доступных снимков, он у меня на ходится на на hdd внешнем подключаю через адаптер для жёстких дисков.Как сделать что бы она его видела(программа)сама система диск видит.
Manjaro Other

Ошибка при установке Manjaro.

Добрый день, столкнулся с проблемой, при установке Manjaro KDE или Architect грузит секунд 20 и появляеться ошибка как на фото( KDE, Architect, XFCE все ощибки одинаковы). Спасибо за внимание и помощь!
Фото: drive.google.com/open?id=1MdZIj3E0-pTJrd4SXjOMcJ7Mdyy14ptq.

AMD FX8320
Radeon R9 380
8 ram
Уголок новичка

MongoDB

Привет, не могу найти инструкцию по установке MongoDB. Может кто-то знает как поставить на Monjaro GNOME?
Я новичок в Linux
Manjaro KDE Edition

Настройка панели "Пуск"

Приветствую, спецы! Помогите, пожалуйста, разобраться.

Начал осваивать и настраивать Манджаро, делал все как на ютубе у Плафона (за исключением мелочей типа цвета, формы иконок и т.д.), но вылезла неприятная хрень в процессе ковырятельства — в панели «Пуск» (сорян, если обидно, но зато все поняли) появились открытые приложения по типу как в Винде, хотя я этого не хотел. Как избавиться? Уже 2 часа мучаюсь не могу понять и исправить (скрины прилагаю).

Сильно не пинайте, второй день за линуксом.
Manjaro KDE Edition: Настройка панели Пуск
Софт

Проблемы при сборке программы Veyon из AUR

При сборке Veyon (это программа для мониторинга и управления компьютерным классом) процесс прерывается со следующим текстом (привожу окончание):
==> Запускается prepare()…
Подмодуль «3rdparty/kitemmodels» (https://anongit.kde.org/kitemmodels.git) зарегистрирован по пути «3rdparty/kitemmodels»
Подмодуль «3rdparty/kldap» (https://anongit.kde.org/kldap.git) зарегистрирован по пути «3rdparty/kldap»
Подмодуль «3rdparty/libvncserver» (https://github.com/veyon/libvncserver.git) зарегистрирован по пути «3rdparty/libvncserver»
Подмодуль «3rdparty/ultravnc» (https://github.com/veyon/ultravnc.git) зарегистрирован по пути «3rdparty/ultravnc»
Подмодуль «3rdparty/x11vnc» (https://github.com/veyon/x11vnc.git) зарегистрирован по пути «3rdparty/x11vnc»
Клонирование в «/BASE/temp/pamac-build/veyon/src/veyon/3rdparty/kitemmodels»…
Подмодуль по пути «3rdparty/kitemmodels»: забрано состояние «26143d13d95864e0e4e17bb55ea83db4af3b179c»
Подмодуль по пути «3rdparty/kldap»: забрано состояние «87c2b3cfe108d42a7630e4822e29789e852600c1»
Подмодуль по пути «3rdparty/libvncserver»: забрано состояние «5f2ab5db1d3333eafa932a9a1b2497dbadb31672»
error: Ваши локальные изменения в указанных файлах будут перезаписаны при переключении на состояние:
zstd/build/VS2008/fullbench/fullbench.vcproj
zstd/build/VS2008/fuzzer/fuzzer.vcproj
zstd/build/VS2008/zstd.sln
zstd/build/VS2008/zstd/zstd.vcproj
zstd/build/VS2008/zstdlib/zstdlib.vcproj
zstd/build/VS2010/datagen/datagen.vcxproj
zstd/build/VS2010/datagen/datagen.vcxproj.user
zstd/build/VS2010/fullbench-dll/fullbench-dll.vcxproj
zstd/build/VS2010/fullbench-dll/fullbench-dll.vcxproj.user
zstd/build/VS2010/fullbench/fullbench.vcxproj
zstd/build/VS2010/fullbench/fullbench.vcxproj.user
zstd/build/VS2010/fuzzer/fuzzer.vcxproj
zstd/build/VS2010/fuzzer/fuzzer.vcxproj.user
zstd/build/VS2010/libzstd-dll/libzstd-dll.rc
zstd/build/VS2010/libzstd-dll/libzstd-dll.vcxproj
zstd/build/VS2010/libzstd-dll/libzstd-dll.vcxproj.user
zstd/build/VS2010/libzstd/libzstd.vcxproj
zstd/build/VS2010/libzstd/libzstd.vcxproj.user
zstd/build/VS2010/libzstd/libzstdVS2010.vcxproj
zstd/build/VS2010/libzstd/libzstdVS2010.vcxproj.user
zstd/build/VS2010/zstd.sln
zstd/build/VS2010/zstd/zstd.rc
zstd/build/VS2010/zstd/zstd.vcxproj
zstd/build/VS2010/zstd/zstd.vcxproj.user
zstd/build/VS2010/zstd_VS2010.sln
zstd/build/VS_scripts/build.VS2010.cmd
zstd/build/VS_scripts/build.VS2012.cmd
zstd/build/VS_scripts/build.VS2013.cmd
zstd/build/VS_scripts/build.VS2015.cmd
zstd/build/VS_scripts/build.VS2017.cmd
zstd/build/VS_scripts/build.VS2017Community.cmd
zstd/build/VS_scripts/build.VS2017Enterprise.cmd
zstd/build/VS_scripts/build.VS2017Professional.cmd
zstd/build/VS_scripts/build.generic.cmd
zstd/lib/dll/example/build_package.bat
zstd/lib/dll/example/fullbench-dll.sln
zstd/lib/dll/example/fullbench-dll.vcxproj
Сделайте коммит или спрячьте ваши изменения перед переключением веток.
Прерываю
Подмодуль по пути «3rdparty/x11vnc»: забрано состояние «fd0c86628ef9deb46d56b77c521f92b00392c7b6»
Не удалось переключиться на состояние «4c3b844ffb100d4c543b5a00d36aad57826f1aff» для подмодуля по пути «3rdparty/ultravnc»
==> ОШИБКА: Произошел сбой в prepare().
Прерывание…

PKGBUILD-ы никогда не писал и не понимаю, что предлагается сделать.
Может кто-нибудь помочь собрать пакет? Спасибо. Manjaro KDE обновлен на сегодняшнюю дату.
Ядро & Оборудование

[решено] failed to start load kernel modules

Привет всем! Сегодня пришли обновления для парочки пакетов. Я установил их по привычке, даже не глядя, и, спустя 1 перезагрузку, вместо моей любимой системы я получил вышеуказанную ошибку. Перезагрузился, полез в Advanced Boot Options и попробовал загрузиться с более старым ядром. Мои догадки подтвердились — обновилось ядро. Если что-то обновилось и вызывает проблемы — надо это откатить, — подумал я и не нашёл как это сделать.
«настройки системы» -> «ядро» Вижу, что действительно установилось ядро 5.5, нажимаю «удалить» — не удаляется.
В менеджере пакетов это пакет «Linux55», при попытке его удалить пишет, что это нарушает зависимость «linux-latest». Я решил не торопиться с его удалением и посмотреть, какие зависимости есть ещё у пакетов ядер, и увидел пакеты с драйверами на видео и сеть
Скрин
Ядро & Оборудование: failed to start load kernel modules

Поиск по «Linux-55» не заставил себя ждать, и действительно — для нового ядра нужны новые дрова. Пакеты «Linux54-...» у меня уже установлены, а те же, но с названием «Linux55-...» надо установить самому.
Скрин
Ядро & Оборудование: failed to start load kernel modules

После их установки система спокойно загружается с новым ядром