avatar
Рабочая конструкция для отправки сообщений в графическую сессию пользователя. Но $UID все равно нужен.
su $USERNAME_HERE -c "DISPLAY=$DISPLAY_HERE DBUS_SESSION_BUS_ADDRESS=unix:path=/run/user/$UID_HERE/bus notify-send -i 'TITLE_HERE' 'MESSAGE_HERE'

Есть функция для поиска UID, DISPLAY и USER
function notify-send() {
    #Detect the name of the display in use
    local display=":$(ls /tmp/.X11-unix/* | sed 's#/tmp/.X11-unix/X##' | head --lines=1)"

    #Detect the user using such display
    local user=$(who | grep '('$display')' | cut --fields=1 --delimiter=' ' | head --lines=1)

    #Detect the id of the user
    local uid=$(id --user $user)

    sudo -u $user DISPLAY=$display DBUS_SESSION_BUS_ADDRESS=unix:path=/run/user/$uid/bus notify-send "$@"
}

С этим от можно перенести все пляски с пользователем в сам скрипт, а удав пусть себе пускает как ему нравится.
Последний раз редактировалось
0
avatar
Поделюсь своими впечатлениями. Я сравнивал с месяц назад.

Сinnamon в простое 560 мб. Сinnamon полюбился с минта и уже лет 7 стабильно живет на ноуте, но в манжаре он как-будто не родной — некоторые апплеты отказываются работать или глючат, складывается впечатление сырого продукта.
Хотя для адекватности сравнения минт с ним на новом компе тоже показался очень сырым и глючным.

XFCE почему-то в простое 900 мб. Он уже не такой легковесный как раньше. Настраивается хорошо, но я на нем много не работал.

Для нового компа остановился на KDE. В простое 700 МБ, много красивостей и настроек, при этом для современного железа он очень легковесный и шустрый.
0
avatar
то же самое)
ну xprop в принципе тоже можно использовать. спс за идею)
но мои костыли без notify-send проработали до перезагрузки и сломались)
теперь при подключении геймпада udev запускает аж 3 скрипта с joystickwake и потом исчезает из процессов)))
магия)
у меня Xauthority на хомяке не лежит. я его перенес)

su led -c echo $UID


в выхлопе пусто… странно…
Последний раз редактировалось
0
avatar
и добавил в sudoers для joy.sh запуск без запроса пароля пользователя
Лишнее, по идее, при запуске с правами рута.
из терминала запускается, из правила udev не хочет
Если прямо указать имя пользователя — то же самое?
отслеживать окна. открытые на весь экран особо нечем
xprop -id $WINDOW _NET_WM_STATE | grep --quiet _NET_WM_STATE_FULLSCREEN

Но xprop в минимальную поставку вроде как не входит.
export XAUTHORITY=/run/user/$UID/Xauthority
  1. Попробуйте сделать
    su $USERNAME_HERE -c echo $UID
    Выхлоп пуст.
  2. .Xauthority же. И лежит хомяке.
Последний раз редактировалось
+1
avatar
сделал вот так:
ACTION=="add" \
, ATTRS{name}=="Microsoft X-Box One S pad" \
, RUN+="/bin/su $(/usr/bin/who | /bin/awk \{print\ \$1\}) -c /etc/udev/scripts/joy.sh"


и добавил в sudoers для joy.sh запуск без запроса пароля пользователя. из терминала запускается, из правила udev не хочет.
пробовал в скрипт вставить
#!/bin/env bash
export XAUTHORITY=/run/user/$UID/Xauthority
export DISPLAY=:0
export DBUS_SESSION_BUS_ADDRESS="unix:path=/run/user/$UID/bus"

/usr/bin/notify-send 'WARNING'

не работает, хотя само правило отрабатывает. проверил с помощью отключения тачпада при подключении геймпада)
RUN+="/bin/xinput --disable 16"


походу проблема только с кастомными скриптами, но как ее решить — ума не приложу(

ну и отслеживать окна. открытые на весь экран особо нечем. i3wm из архитекта с минимальным набором пакетов.

UPD: походу какая-то трабла с notify-send… без него все работает. ну и ладно.
Последний раз редактировалось
0
avatar
скрипт, который при запуске игры каждые 5 минут проверяет работает ли игра или нет
Caffeine работает именно так. Но, ИМХО, наиболее красивым решением является обнаружение полноэкранных окон.
не работает(
Удав работает от рута. И скрипт запускает от рута. Но su пока никто не отменял.
RUN+="/bin/su $USERNAME_HERE -c /etc/udev/scripts/joy.sh"

Получается коряво если юзверей больше одного, но работать с указанным должно. Вопрос с пользователями, в принципе, решаем путем парсинга вывода w(ho).
Для вывода уведомления может понадобиться указать значение DISPLAY.
Последний раз редактировалось
0
avatar
альтернативными я накостылял скрипт, который при запуске игры каждые 5 минут проверяет работает ли игра или нет. и добавил его к ярлыку игры, но зотелось бы разобраться с devrules
само правило с name
ACTION=="add", ATTRS{name}=="Microsoft X-Box One S pad", RUN+="/bin/bash /etc/udev/scripts/joy.sh"

скрипт:
notify-send "bla-bla-bla"

не работает(
0
avatar
Никто не нашел решения?
удалить pamac-qt
0
avatar
да я видел
0
avatar
на официальном форуме говорят сначала сделать (удалить пердыдущую версию manjaro-gnome-assets)
pacman -Rcns manjaro-gnome-assets


А ещё строго рекомендуют проводить обновление гнома до 3.36 вне графического окружения, через tty
Ctrl+Alt+F2 (или f3, f4, ...), залогиниться и запустить обновление
Последний раз редактировалось
0
avatar
Никто не нашел решения? Такая же ботва… «не удалось удовлетворить зависимости:
установка pamac-common (9.4.0-4) нарушает зависимость 'pamac-common<9.4.0', необходимую для pamac-qt»
0
avatar
В первом комменте темы есть описание как скормить пакману список чтобы он пометил их в базе как явно установленные.
Последний раз редактировалось
0
avatar
Осиротевшие пакеты удаляются простой командой.
на сколько я понял, цель ТС'а не удалить пакеты сироты, а чтобы пакман их таковым не считал, то есть чтобы он понимал эти самые пакеты(которые под спойлером) как явно установленные
0
avatar
Монтирование больших разделов можно ускорить.
Если у вас большой раздел /home, вы можете разрешить службам, которые не обращаются к /home, запускаться в то время, как /home проверяется программой fsck. Для этого добавьте следующие параметры монтирования в запись /etc/fstab для точки монтирования /home:
noauto,x-systemd.automount
Автоматическое монтирование с systemd
Например вместо:
UUID=651e2ff3-6bec-46ac-9cc1-8b493a1dd830 /Media ext4	noatime,nodiratime 0 0

Пишем:
UUID=651e2ff3-6bec-46ac-9cc1-8b493a1dd830 /Media ext4	noauto,x-systemd.automount,noatime,nodiratime 0 0
Последний раз редактировалось
0
avatar
А modemmanager.service стоит отключать?
Если не пользуетесь usb модемами то можно выключать.
systemctl mask ModemManager.service

p.s. mask — маскирует процесс, или действует как disable? непонятно, чем отличается disable от mask?
disable отключает на данный момент и при перезагрузке может включится обратно, так как помимо service ещё может быть soket у службы. Команда mask маскирует всё и сервис не загружается уже точно. Если вдруг понадобится запустить сервисы обратно то нужно проделать всё тоже самое с командой unmask.
Если не используете snap то его тоже маскируйте. Посмотрите у него ещё наверно есть soket.
В KDE есть настройки служб и сервисов, почти как в windows — предполагал что там все настроить можно, ошибся.
Как раз там всё можно сделать. Ищите в поиске службу, ПКМ и в контекстном меню выбираете команду. Единственное что это не удобно, отключать по одному сервису или сокету. А ещё очень долго думает, может минуту висет в раздумьях)
И дампы ядра можно отключать.
systemctl mask systemd-coredump.socket
Последний раз редактировалось
0
avatar
Срасть к познанию и изучению осталась
Тут есть
0
avatar
  1. Не проще вместо idVendor и idProduct использовать name?
  2. Вы вызываете тулзу, которая будет приостанавливать блокировщик экрана. Не лучше ли напрямую приостанавливать блокировку?
  3. У Вас в правиле ни слова о том, что скрипт должен запускатья от пользователя.
 
Альтернативные решения.
  • Смотреть в сторону WM и менеджера питания — умеет ли что-то из них отслеживать полноэкранные окна.
  • Также проблему можно решить с изяществом тарана в рамках принципа KISS средствами xautolock либо xset. Просто и надежно.
  • LightsOn, LightsOnPlus и disable_dpms. Отключают DPMS при обнаружении приложений из списка и полноэкранных окон. Для отключения скринлокера может потребоваться минимальный допил.
  • Caffeine(-ng).
  • Слать геймпадом фейковые клавиатурные нажатия. Но в данном случае это костыль.
К плюсам этих вариантов стоит отнести то, что подключенный геймпад не останавливает скринсейвер полностью, что выглядит весьма логичным.
Последний раз редактировалось
0
avatar
Премного благодарен! Вот это очень подробный и годый коммент.
А modemmanager.service стоит отключать? Или мб еще что можно сделать с системой?
В KDE есть настройки служб и сервисов, почти как в windows — предполагал что там все настроить можно, ошибся. Срасть к познанию и изучению осталась. Буду пробовать хорошие рекомендации, информации очень много, действительно полезной и свежей — с гулькин хрен:(
p.s. mask — маскирует процесс, или действует как disable? непонятно, чем отличается disable от mask?
p.p.s. Самое интересное — live режим с флешки грузится за считанные секунды, при чем флешка usb2. Ноут более менее свежий (i5 7gen, 8gb, 1050ti...)
Последний раз редактировалось
0
avatar
Отключение LVM.
su

systemctl mask lvm2-monitor.socket
systemctl mask lvm2-monitor.service
systemctl mask lvm2-lvmpolld.socket
systemctl mask lvm2-lvmpolld.service
systemctl mask lvm2-lvmetad.socket
systemctl mask lvm2-lvmetad.service
systemctl mask lvm2-activation.service
systemctl mask lvm2-activation-early.service

Команды можно копипастить все сразу, а не по очереди.

Если не нужен avahi. Он вроде нужен для принтеров.
sudo nano /etc/avahi/avahi-daemon.conf

Изменить yes на no:
use-ipv4=no
use-ipv6=no
su

systemctl disable avahi-daemon
systemctl mask avahi-daemon
systemctl mask avahi-demon.service
systemctl mask avahi-demon.socket
systemctl mask avahi-dconfd.service
Последний раз редактировалось
+2
avatar
Осиротевшие пакеты удаляются простой командой.
sudo pacman -Rns (pacman -Qtdq)
Последний раз редактировалось
0