LINUX.ORG.RU
решено ФорумAdmin

Как передать переменные окружения в systemd-xdg-autostart-generator?

 , ,


0

1

Приветствую. Имеется следующая проблема: Sway, запускается небольшим скриптом из /usr/bin, экспортируя при этом ряд переменных окружения, например:

QT_QPA_PLATFORM=wayland
,
QT_QPA_PLATFORMTHEME=qt5ct
и так далее. Все это работает замечательно - приложения, запускаемые вручную, например через Rofi, эти переменные принимают. Однако, если добавить какое-нибудь приложение, например, Telegram, в автозапуск посредством добавления desktop-файла в ~/.config/autostart/, чтобы его прочитал systemd-xdg-autostart-generator и запустил, то эти переменные окружения игнорируются - приложение стартует с дефолтной темой и под Xwayland. Подскажите пожалуйста, каким образом можно передавать эти же переменные окружения приложениям из автозапуска?

в арче в пакете со sway идет файл /etc/sway/config.d/50-systemd-user.conf, в котором написано

exec systemctl --user import-environment DISPLAY WAYLAND_DISPLAY SWAYSOCK XDG_CURRENT_DESKTOP

видимо со всеми этими QT_QPA_PLATFORM нужно поступить так же.

Lrrr ★★★★★
()

и кстати, давайте не будем превращать sway в кеды с гномами, притаскивая в конфиги зависимость от systemd. В линуксовых дистрах есть утилитка dex, с помощью которой можно запускать любые desktop entries. В том числе она поддерживает и xdg autostart. exec dex -a в конфиге sway, и все дела.

Lrrr ★★★★★
()

автозапуск посредством добавления desktop-файла в ~/.config/autostart…

В десктоп-файл и добавлять:

Exec=env GTK_THEME=Adwaita:dark unity-control-center --overview

В данном примере, запуск приложения с другой темой оформления.

andytux ★★★★★
()
Ответ на: комментарий от Lrrr

и кстати, давайте не будем превращать sway в кеды с гномами, притаскивая в конфиги зависимость от systemd

Есть такая необходимость просто https://github.com/alebastr/sway-systemd

Sunderland93 ★★★★★
() автор топика
Ответ на: комментарий от Sunderland93

видел я этот проект, и так и не понял, нахрена это всё. Системды ради системды, и не более того.

Фиганул нужные переменные и import-environment в шелл-скрипт, шелл-скрипт фиганул в desktop-файл в /usr/share/wayland-sessions, где его из коробки найдет любой уважающий себя менеджер сессий - просто, понятно, легко запомнить.

Lrrr ★★★★★
()

Клиент телеграм сам по себе конченый. Он меня просто затрахал. Это единственное окно, которое никак не может запомнить где и как оно было открыто. Которое прыгает и меняет размер как полоумное при удалении-добавлении монитора. Другой пример бери, не телеграм.

targitaj ★★★★★
()
Ответ на: комментарий от Lrrr

Хватит распространять луддитский мрак. Systemd ничем не портит sway.

Я тут настраиваю hyprland и уже опплевался от вашего юникс вея. Куча разношорстных программ, которые нужно заставлять работать вместе, часами правя конфиги. Какой же всё таки прогресс у DE на фоне WM.

Нужно DE на основе sway/hyprland, чтобы из коробки были все основные компоненты рабочего стола. Противников сдать в дурку.

ox55ff ★★★★★
()
Ответ на: комментарий от ox55ff

если не хочешь настраивать, то нафига ты вообще в это полез? Поставь гном и не парься. А вообще, https://nwg-piotr.github.io/nwg-shell/

если еще и systemd сюда тащить, то настраивать придется гораздо больше, как видно из этой темы. Этот xdg autostart - в принципе полная неюзабельная хрень, потому что куча софта из реп лезет туда добавляться, когда ее никто об этом не просил.

Lrrr ★★★★★
()
Последнее исправление: Lrrr (всего исправлений: 1)
Ответ на: комментарий от Lrrr

нафига ты вообще в это полез?

За нормальным тайлингом. К сожалению, те кто разрабатывает тайлинг окружения, и те неадекваты кто считает, что тайлинг окружения равно минимализм, это одни и те же люди.

А мне нахер не нужен минимализм. Мне нужно чтобы окошки сами расставлялись на мониторе и насрать сколько при этом мегабайт кода выполняется и сколько оперативной памяти потребляется.

Но нет. Сейчас тайлинг идёт только в комплекте со сраным минимализмом. Алё, мы не в восьмидесятых.

systemd сюда тащить, то настраивать придется гораздо больше

Наоборот, он единственное спасение. У меня на waybar’е добавлен значок wireplumber для отображения звука. Он из стандартной поставки waybar. Я сначала сделал как у всех, запуск waybar через конфиг hyprland опцией exec-once.

И таки что вы думаете? Waybar запускается быстрее wireplumber и на панели не отображается уровень громкости, потому что не может получить данные от ещё незапущенного сервиса.

Решение — запускать waybar через systemd и прописать зависимость от wireplumber. Стандартная фича sd и понятная сразу всем без траты часов на понимание логики уникальных скриптов от очередного админа локалхоста. И никаких башпортянок от адептов минимализма с хаками в виде sleep 5 && waybar &.


Короче жду пока кто-то сделает жирное и фичастое DE (именно DE, а не WM) с нормальным тайлингом. И я наконец то оставлю любителей минимализма и дрочки конфигов наедине с их творениями.

ox55ff ★★★★★
()
Ответ на: комментарий от ox55ff

Наоборот, он единственное спасение. У меня на waybar’е добавлен значок wireplumber для отображения звука

то есть ты притащил в систему gtk-шное говнище, которое еще и какого-то хрена дергает wireplumber для показа громкости, и удивляешься что оно не работает без системды. Ну поздравляю. Я даже сходил на гитхаб посмотреть исходники этого waybar - ну да, давно не видел такого говнокода.

Для показа громкости достаточно дергать напрямую пайпварь, и благодаря тому что она использует сокет-активацию, никаких проблем с зависимостями в принципе не может возникнуть.

Lrrr ★★★★★
()
Ответ на: комментарий от Lrrr

Ты написал чушь.

gtk-шное говнище

Это не имеет отношение к делу.

какого-то хрена дергает wireplumber

Это менеджер сессий для pipewire, чтобы не пердолиться с ручной настройкой pipewire и не закатывать солнце вручную. Но, догадываюсь, для любителей башпартянок это будет скорее минус.

оно не работает без системды

Оно работает без sd. Проблема в порядке запуска.

waybar - ну да, давно не видел такого говнокода.

+/- такой же как и везде.

благодаря тому что она использует сокет-активацию

Ты начал вбрасывать базворды, чтобы впечатлить? waybar ничего не знает про сокет pipewire. И ни чем он не поможет. Поможет правильный порядок запуска. С помощью systemd это можно сделать легко и стандартизированно. Сокет активация из коробки конечно имеется /usr/lib/systemd/user/pipewire.socket😏.

ox55ff ★★★★★
()
Ответ на: комментарий от ox55ff

waybar ничего не знает про сокет pipewire. И ни чем он не поможет. Поможет правильный порядок запуска

ты нихрена не понимаешь, что происходит у тебя в системе, и еще и чужие посты не читаешь. Откуда берутся такие чудики, я поражаюсь просто…

Lrrr ★★★★★
()
Ответ на: комментарий от ox55ff

Короче жду пока кто-то сделает жирное и фичастое DE (именно DE, а не WM) с нормальным тайлингом. И я наконец то оставлю любителей минимализма и дрочки конфигов наедине с их творениями.

В GNOME планируют изменить модель управления окнами

ivanov17
()