Рабочая конструкция для отправки сообщений в графическую сессию пользователя. Но $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 "$@"
}
С этим от можно перенести все пляски с пользователем в сам скрипт, а удав пусть себе пускает как ему нравится.
Поделюсь своими впечатлениями. Я сравнивал с месяц назад.
Сinnamon в простое 560 мб. Сinnamon полюбился с минта и уже лет 7 стабильно живет на ноуте, но в манжаре он как-будто не родной — некоторые апплеты отказываются работать или глючат, складывается впечатление сырого продукта.
Хотя для адекватности сравнения минт с ним на новом компе тоже показался очень сырым и глючным.
XFCE почему-то в простое 900 мб. Он уже не такой легковесный как раньше. Настраивается хорошо, но я на нем много не работал.
Для нового компа остановился на KDE. В простое 700 МБ, много красивостей и настроек, при этом для современного железа он очень легковесный и шустрый.
то же самое)
ну xprop в принципе тоже можно использовать. спс за идею)
но мои костыли без notify-send проработали до перезагрузки и сломались)
теперь при подключении геймпада udev запускает аж 3 скрипта с joystickwake и потом исчезает из процессов)))
магия)
у меня Xauthority на хомяке не лежит. я его перенес)
Получается коряво если юзверей больше одного, но работать с указанным должно. Вопрос с пользователями, в принципе, решаем путем парсинга вывода w(ho).
Для вывода уведомления может понадобиться указать значение DISPLAY.
альтернативными я накостылял скрипт, который при запуске игры каждые 5 минут проверяет работает ли игра или нет. и добавил его к ярлыку игры, но зотелось бы разобраться с devrules
само правило с name
ACTION=="add", ATTRS{name}=="Microsoft X-Box One S pad", RUN+="/bin/bash /etc/udev/scripts/joy.sh"
на официальном форуме говорят сначала сделать (удалить пердыдущую версию manjaro-gnome-assets)
pacman -Rcns manjaro-gnome-assets
А ещё строго рекомендуют проводить обновление гнома до 3.36 вне графического окружения, через tty
Ctrl+Alt+F2 (или f3, f4, ...), залогиниться и запустить обновление
Никто не нашел решения? Такая же ботва… «не удалось удовлетворить зависимости:
установка pamac-common (9.4.0-4) нарушает зависимость 'pamac-common<9.4.0', необходимую для pamac-qt»
на сколько я понял, цель ТС'а не удалить пакеты сироты, а чтобы пакман их таковым не считал, то есть чтобы он понимал эти самые пакеты(которые под спойлером) как явно установленные
Если у вас большой раздел /home, вы можете разрешить службам, которые не обращаются к /home, запускаться в то время, как /home проверяется программой fsck. Для этого добавьте следующие параметры монтирования в запись /etc/fstab для точки монтирования /home:
Если не пользуетесь usb модемами то можно выключать.
systemctl mask ModemManager.service
p.s. mask — маскирует процесс, или действует как disable? непонятно, чем отличается disable от mask?
disable отключает на данный момент и при перезагрузке может включится обратно, так как помимо service ещё может быть soket у службы. Команда mask маскирует всё и сервис не загружается уже точно. Если вдруг понадобится запустить сервисы обратно то нужно проделать всё тоже самое с командой unmask.
Если не используете snap то его тоже маскируйте. Посмотрите у него ещё наверно есть soket.
В KDE есть настройки служб и сервисов, почти как в windows — предполагал что там все настроить можно, ошибся.
Как раз там всё можно сделать. Ищите в поиске службу, ПКМ и в контекстном меню выбираете команду. Единственное что это не удобно, отключать по одному сервису или сокету. А ещё очень долго думает, может минуту висет в раздумьях)
И дампы ядра можно отключать.
Не проще вместо idVendor и idProduct использовать name?
Вы вызываете тулзу, которая будет приостанавливать блокировщик экрана. Не лучше ли напрямую приостанавливать блокировку?
У Вас в правиле ни слова о том, что скрипт должен запускатья от пользователя.
Альтернативные решения.
Смотреть в сторону WM и менеджера питания — умеет ли что-то из них отслеживать полноэкранные окна.
Также проблему можно решить с изяществом тарана в рамках принципа KISS средствами xautolock либо xset. Просто и надежно.
LightsOn, LightsOnPlus и disable_dpms. Отключают DPMS при обнаружении приложений из списка и полноэкранных окон. Для отключения скринлокера может потребоваться минимальный допил.
Caffeine(-ng).
Слать геймпадом фейковые клавиатурные нажатия. Но в данном случае это костыль.
К плюсам этих вариантов стоит отнести то, что подключенный геймпад не останавливает скринсейвер полностью, что выглядит весьма логичным.
Премного благодарен! Вот это очень подробный и годый коммент.
А modemmanager.service стоит отключать? Или мб еще что можно сделать с системой?
В KDE есть настройки служб и сервисов, почти как в windows — предполагал что там все настроить можно, ошибся. Срасть к познанию и изучению осталась. Буду пробовать хорошие рекомендации, информации очень много, действительно полезной и свежей — с гулькин хрен:(
p.s. mask — маскирует процесс, или действует как disable? непонятно, чем отличается disable от mask?
p.p.s. Самое интересное — live режим с флешки грузится за считанные секунды, при чем флешка usb2. Ноут более менее свежий (i5 7gen, 8gb, 1050ti...)
Есть функция для поиска UID, DISPLAY и USER
С этим от можно перенести все пляски с пользователем в сам скрипт, а удав пусть себе пускает как ему нравится.
Сinnamon в простое 560 мб. Сinnamon полюбился с минта и уже лет 7 стабильно живет на ноуте, но в манжаре он как-будто не родной — некоторые апплеты отказываются работать или глючат, складывается впечатление сырого продукта.
Хотя для адекватности сравнения минт с ним на новом компе тоже показался очень сырым и глючным.
XFCE почему-то в простое 900 мб. Он уже не такой легковесный как раньше. Настраивается хорошо, но я на нем много не работал.
Для нового компа остановился на KDE. В простое 700 МБ, много красивостей и настроек, при этом для современного железа он очень легковесный и шустрый.
ну xprop в принципе тоже можно использовать. спс за идею)
но мои костыли без notify-send проработали до перезагрузки и сломались)
теперь при подключении геймпада udev запускает аж 3 скрипта с joystickwake и потом исчезает из процессов)))
магия)
у меня Xauthority на хомяке не лежит. я его перенес)
в выхлопе пусто… странно…
Если прямо указать имя пользователя — то же самое?
Но xprop в минимальную поставку вроде как не входит.
и добавил в sudoers для joy.sh запуск без запроса пароля пользователя. из терминала запускается, из правила udev не хочет.
пробовал в скрипт вставить
не работает, хотя само правило отрабатывает. проверил с помощью отключения тачпада при подключении геймпада)
походу проблема только с кастомными скриптами, но как ее решить — ума не приложу(
ну и отслеживать окна. открытые на весь экран особо нечем. i3wm из архитекта с минимальным набором пакетов.
UPD: походу какая-то трабла с notify-send… без него все работает. ну и ладно.
Удав работает от рута. И скрипт запускает от рута. Но su пока никто не отменял.
Получается коряво если юзверей больше одного, но работать с указанным должно. Вопрос с пользователями, в принципе, решаем путем парсинга вывода w(ho).
Для вывода уведомления может понадобиться указать значение DISPLAY.
само правило с name
скрипт:
не работает(
А ещё строго рекомендуют проводить обновление гнома до 3.36 вне графического окружения, через tty
Ctrl+Alt+F2 (или f3, f4, ...), залогиниться и запустить обновление
установка pamac-common (9.4.0-4) нарушает зависимость 'pamac-common<9.4.0', необходимую для pamac-qt»
Автоматическое монтирование с systemd
Например вместо:
Пишем:
disable отключает на данный момент и при перезагрузке может включится обратно, так как помимо service ещё может быть soket у службы. Команда mask маскирует всё и сервис не загружается уже точно. Если вдруг понадобится запустить сервисы обратно то нужно проделать всё тоже самое с командой unmask.
Если не используете snap то его тоже маскируйте. Посмотрите у него ещё наверно есть soket.
Как раз там всё можно сделать. Ищите в поиске службу, ПКМ и в контекстном меню выбираете команду. Единственное что это не удобно, отключать по одному сервису или сокету. А ещё очень долго думает, может минуту висет в раздумьях)
И дампы ядра можно отключать.
Альтернативные решения.
- Смотреть в сторону WM и менеджера питания — умеет ли что-то из них отслеживать полноэкранные окна.
- Также проблему можно решить
- LightsOn, LightsOnPlus и disable_dpms. Отключают DPMS при обнаружении приложений из списка и полноэкранных окон. Для отключения скринлокера может потребоваться минимальный допил.
- Caffeine(-ng).
- Слать геймпадом фейковые клавиатурные нажатия. Но в данном случае это костыль.
К плюсам этих вариантов стоит отнести то, что подключенный геймпад не останавливает скринсейвер полностью, что выглядит весьма логичным.с изяществом таранав рамках принципа KISS средствами xautolock либо xset. Просто и надежно.А modemmanager.service стоит отключать? Или мб еще что можно сделать с системой?
В KDE есть настройки служб и сервисов, почти как в windows — предполагал что там все настроить можно, ошибся. Срасть к познанию и изучению осталась. Буду пробовать хорошие рекомендации, информации очень много, действительно полезной и свежей — с гулькин хрен:(
p.s. mask — маскирует процесс, или действует как disable? непонятно, чем отличается disable от mask?
p.p.s. Самое интересное — live режим с флешки грузится за считанные секунды, при чем флешка usb2. Ноут более менее свежий (i5 7gen, 8gb, 1050ti...)
Команды можно копипастить все сразу, а не по очереди.
Если не нужен avahi. Он вроде нужен для принтеров.
Изменить yes на no:
use-ipv4=no
use-ipv6=no