Вечером, в районе 8 часов, стукнуло в голову таки посмотрeть на wayland. Вообще такие мысли возникают переодически, но обычно идея быстро затухает после некоторого времени чтения мануалов, ибо нефига не понятно. Десктоп — gentoo с nvidia. Последннее время графическая часть на нем это: Xorg, проприетарные дрова nvidia, LightDM на входе, WM в виде awesomewm. До awesomewm были xfce → i3wm. В целом все работает, устраивает, но иногда хочется нового. Надо ли говорить что KDE/Gnome терпеть ненавижу.
Включаю wayland
в USE в /etc/portage/make.conf,
пересобираю все что его умеет через emerge -avtN @world
. Что интересно, пересобирается без ошибок. Насколько я помню, я уже пытался включать этот флаг с мыслью что потом попробую, но в итоге выключал, потому что были проблемы со сборкой некоторых пакетов. Параллельно ищу что там вообще с WM.
Натыкаюсь на sway. Выглядит вроде прикольно, собираю, пытаюсь запустить, сразу получаю сообщение похожее на — «Иди ты нафик со своими проприетарными дровами nvidia, мы уважаем тока nouveau, но если ты прям хочешь то можешь заюзать флаг --unsupported-gpu
, но мы ничего не гарантируем.» Заюзал флаг, без проблем настроил работу с двумя мониторами, пытаюсь работать. Работать невозможно. При открытии/закрытии окон возникают какие‑то очень не красивые артифакты, которые тут же исчезают. Глаза режут. Идею перейти на nouveau, хотя бы на время, отвергаю. Надо пересобирать ядро, да и, кажется, что всякое AI типа Stable diffusion работать не будет.
Параллельно пытаюсь найти DM. Останавливаюсь на greetd. В итоге удается быстро запустить вариант tuigreet. Выглядит забавно, консольные окошки, логин в него, а потом стартует графика. Но тоже не без косяков, запускать что то сo своими опциями не умеет (типа `sway--unsupported-gpu
), приходится запуск оборачивать в bash скрипт и вызывать его.
Так как sway показал себя не очень, ищу что‑то еще. Натыкаюсь на пост на linux.org и иду пробовать hyprland. Тоже легко настраиваю два монитора, менюшки для запуска есть, консоль alacritty работает и даже со всеми красивостями и шрифтами из powerlevel10k. Натыкаюсь на проблему что копирование выделенного текстам между консолью и chrome не работает, нахожу какие‑то дикие рецепты с написанием конфигов hyprland и бинда клавиш с использованием wl-paste
, но решение проще. Надо запускать хром с флагам --enable-features=useozoneplatform --ozone-platform=waylan
. При этом сходить chrome://flags/ и там поставить "Preferred Ozone platform" в "Wayland" как написано в одном посте на реддите не помогает.
А так в целом менюшка запуска есть, консоль alacritty работает, программы запускаются, есть workspaceы. Можно пробовать работать. Остаётся только автолокер (критичная для меня вещь). Настраиваю связку hypridle и hyprlock. Досточно кривенько, почему-то один монитор затемняется фоном, а на втором все окошки видно со всем содержимым, только пароль и часы сверху появляетются. Время 4 утра, светает, пора и поспать. С утра бреду к компу и вижу странную картину, мониторы не погашены, на hyprlock настроены часы и они остановились на 5:05, при попытке залогинится все зависает, при попутке кильнуть hyprlock все мониторы заливаются красным фоном и работать нельзя, приходится рестартануть hyprland. В логах вижу ошибки:
июл 10 10:18:19 gals-home kernel: NVRM: GPU at PCI:0000:08:00: GPU-17723284-063f-bf90-53f3-3e750c75b1ca
июл 10 10:18:19 gals-home kernel: NVRM: Xid (PCI:0000:08:00): 13, pid='<unknown>', name=<unknown>, Graphics Exception: Shader Program Header 11 Error
июл 10 10:18:19 gals-home kernel: NVRM: Xid (PCI:0000:08:00): 13, pid='<unknown>', name=<unknown>, Graphics Exception: Shader Program Header 18 Error
июл 10 10:18:19 gals-home kernel: NVRM: Xid (PCI:0000:08:00): 13, pid='<unknown>', name=<unknown>, Graphics Exception: ESR 0x405840=0xa2040800
июл 10 10:18:19 gals-home kernel: NVRM: Xid (PCI:0000:08:00): 13, pid='<unknown>', name=<unknown>, Graphics Exception: ESR 0x405848=0x80000000
июл 10 10:18:19 gals-home kernel: NVRM: Xid (PCI:0000:08:00): 13, pid=2064923, name=hyprlock, Graphics Exception: ChID 0010, Class 0000c797, Offset 00000000, Data 00000000
Понимаю почему мониторы не вырубились, в конфиге написал exec-once = hypridl
пропустив 'e' в конце и оно не запускалоcь, hyprland ничего об этом не сообщил.
Правлю конфиг, перезапускаю, прихожу через 20 минут и наблюдаю на экранах мониторов консоль с сообщением ядра что оно сходило поспать в S3 но тут же вернулось. При этом hyprland память и экран покинуло. В hypridle настроен запуск systemctl suspend
, но почему машина тут же просыпается, не очень понятно, потому что запуск systemctl suspend
ручками из консоли отрабатывает как надо.
Нахожу доку от hyprland по nvidia, делаю как в ней написано, перезапускаю, проблема сsystemctl suspend
остаетcя, поэтому этот вызов из конфига пока выпиливаю. При вводе пароля hyprlock вроде не зависает. Правда тот экран что заливался заливкой при локе, после вывода мониторов из спяшего режима весь заливается красным, ввода пароля и часов почему-то нет. Ввести пароль можно на втором экране только. Ну и в итоге дока по nvidia не помогла, hyprlock завис после ввода пароля вот в таком состоянии. Часики остановились, и поле ввода повисло на вводе пароля. Если его кильнуть то оба монитора заливаются красным фоном и работать уже нельзя.
Итого
Кажется что запуск WM без root все ближе, но все это несколько сыровато. Хотя, может я и не прав, и для пользователей Gnome и KDE это будущее уже наступило. Но я пробовать не хочу и вернусь на Xorg. Опять же, судя по по этому тексту, обновленному 27.06.2024 в кедах все тоже не очень радужно.
Еще хотелось бы отметить удивительный мир конфигов hyprlock и sway. Казалось бы есть yaml, json или там toml но их конфиги не такие. Ну вот, например настройка мониторов в sway.
output DP-1 resolution 3440x1440 position 0,0
output HDMI-A-1 resolution 1920x1080 position 3440,0
Надо отметить что в sway пишут что это не конфиг, а команды (A sway configuration file is a list of sway commands that are executed by sway on startup.)
а вот конфиг мониторов в hyprlock
monitor=DP-1, 3440x1440, 0x0, 1
monitor=HDMI-A-1, 1920x1080, 3440x0, 1
Лично для меня после json, yaml или всяхки там ini все выглядит как-то очень странно.
P.S. попросил нарисовать chatpgpt линуксоида который ждет работающего wayland. Ответ превзошел все ожидания
Комментарии (20)
Spiritschaser
10.07.2024 19:01запуск WM
Это не WM, это долбаный полноценный сервер для GUI программ. И в этом проблема - для окошек был нужен клиент как в X, а про сервер чтобы юзер даже и не знал.
ParaMara
10.07.2024 19:01Москва не сразу строилась
Неужели Вы верите что Wayland мог уйти в релиз с такими глюками? На период освоения советую выделить раздельчик под Arch, а то у Вас сейчас Gentoo просто как задачник, а станет как задачник с ответами и решениями.
sergeygals Автор
10.07.2024 19:01Не уверен, что это баги именно Wayland, но даже если и так, не очень понятно ваша увереность что в его релизах нет багов. Они везде есть. Я, как любитель самосборных ядер последних версий встречал баги даже в релизных ядрах. Как мне поможет Arch я тоже не очень понимаю. Одно время он у меня даже стоял на одной из домашних Rasberry PI, но в итоге на серверах я ушел на Ubuntu.
ParaMara
10.07.2024 19:01И где Вы видите мою уверенность?
Arch поможет точно так же как ответ в задачнике - если на Gentoo работает хуже чем на Arch, значит это Вы делаете что-то не так. И ещё в вики Arch обычно всё написано, а когда есть доступный Arch - пользоваться ей и того удобнее.
Пробовал KDE Plasma 6 с nVidia и Wayland на EndeavourOS. В целом - без проблем, но и Х11 не хуже. Не понравилось как с удалённым доступом, переключился обратно - одну строку менял. Поэтому всякую дичь, включая из комментов, объясняю кривизной сами знаете чего.
sergeygals Автор
10.07.2024 19:01Дорогой мой человек, если оперировать вашими терминам, то в задаче 'wayland на gentoo c nvidia' из этого самого задачника установка Arch никак не может быть решением :) ну и свою нелюбовь к монструзному KDE я уже отмечал.
CrazyOpossum
10.07.2024 19:01Арчевод со стажем, подтверждаю - арч прекрасен, но не панацея. Собственно, в статье описан типичный wayland - делай как у всех или gtfo. Шаг влево, шаг вправо и приплыли.
Кстати, интереса ради. Нелюбовь к гному понимаю, а как насчёт Mate, aka Gnome 2?
nckma
10.07.2024 19:01Кстати, для распбери, последняя ОС Bookworm - по умолчанию стоит Wayland/Wayfire
V1tol
10.07.2024 19:01+5Пользуюсь Wayland последние два года, с тех пор как собрал десктоп на AMD. Переход с 5 на 6 плазму заметил только по сломавшимся значкам в трее - некоторые стали тёмными на тёмном фоне (регрессия в теме значков) и это со временем починили. Stable Diffusion гоняю через Stability Matrix, играю через WINE c wayland драйвером - не жизнь, а сказка.
До этого сидел на ноутбуке с nvidiей вместо видеокарты и вспоминаю её как страшный сон.
tbl
10.07.2024 19:01У AMD проблем с Wayland нет. Там все-таки Valve для Steam Deck допилила с помощью AMD существующие дрова, да и впилили свой композитор Gamescope с поддержкой необходимых расширений Wayland для того, чтобы заработали SDL2 и Wine (Proton)
А с Nvidia все печально
XenHunt
10.07.2024 19:01Интересная статья, сам недавно хотел попробовать поставить gentoo (а также nixos и guix) с hyprland и нвидюшными дровами, но походу подожду ещё на endeavour, где все это работает без таких проблем. Единственное отличие в том, что я использую swayidle и swaylock для атоблока в хайпе, может в gentoo оно тоже нормально зашло бы
sergeygals Автор
10.07.2024 19:01да, я наверно еще поиграюсь в этом направлении, как будет настроение. несколько вымораживает их запуск с большим количеством длинных параметров
MountainGoat
10.07.2024 19:01+1Пробовал Федору с репой для кед 6.1 и распоследних дров Nvidia. Работает вообще всё. Но многим приложениям надо носом ткнуть, что они в Wayland. Единственное, что не работает - в Discord в голосовом чате режим "говорить по кнопке" регистрирует эту кнопку только если окно Discord в фокусе. Для меня это было критично, поэтому вернулся обратно... на винду.
Johan_Palych
10.07.2024 19:01Рекомендую почитать:
https://wiki.archlinux.org/title/Waylandsergeygals Автор
10.07.2024 19:01Таки читал конечно, арч и гента самые документированные дистрибутивы, поэтому все мануалы читаю и там и там. Или вы рекомендуете какой-то конкретный раздел который решит описанные мной проблемы?
AnSa8x
10.07.2024 19:01Интересно было бы узнать что хоть за видеокарта. А то вообще непонятно древняя она или свежая.
event1
10.07.2024 19:01Параллельно пытаюсь найти DM. Останавливаюсь на greetd. В итоге удается быстро запустить вариант tuigreet
Тоже запускал sway на генте и имел аналогичную проблему. В результате самым простым решением оказалось просто при логине на первом виртуальном терминале запускать sway. В целом там всё нормально работало, но не было ни nvidia, ни дров от неё
Хотя, может я и не прав, и для пользователей Gnome и KDE это будущее уже наступило
На работе кеды на wayland уже пару лет. Без нареканий. Но, опять же, без nvidia.
boris768
Тоже поставил wayland на радостях от того, что nvidia таки отошла от своего безумия с EGLStreams, и сделала как надо, но что-то оно очень плохо работает на кедах. Иногда мигает экран, бывает что ломается панель задач, замирая в одном состоянии, порой браузер становится наполовину прозрачным. Как и вы, использую gentoo, ситуацию не исправляет ни nouveau, ни бинарный, ни собранный из исходников официальный драйвер. В итоге, по виду таких проблем иксы еще поработают на десктопах, может год, а может и все 5 или даже 10.
Спасибо за статью
MountainGoat
Кеды 6.1 ? Если нет, то можно было и не пробовать.