Вечером, в районе 8 часов, стукнуло в голову таки посмотрeть на wayland. Вообще такие мысли возникают переодически, но обычно идея быстро затухает после некоторого времени чтения мануалов, ибо нефига не понятно. Десктоп — gentoo с nvidia. Последннее время графическая часть на нем это: Xorg, проприетарные дрова nvidia, LightDM на входе, WM в виде awesomewm. До awesomewm были xfcei3wm. В целом все работает, устраивает, но иногда хочется нового. Надо ли говорить что 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)


  1. boris768
    10.07.2024 19:01
    +5

    Тоже поставил wayland на радостях от того, что nvidia таки отошла от своего безумия с EGLStreams, и сделала как надо, но что-то оно очень плохо работает на кедах. Иногда мигает экран, бывает что ломается панель задач, замирая в одном состоянии, порой браузер становится наполовину прозрачным. Как и вы, использую gentoo, ситуацию не исправляет ни nouveau, ни бинарный, ни собранный из исходников официальный драйвер. В итоге, по виду таких проблем иксы еще поработают на десктопах, может год, а может и все 5 или даже 10.
    Спасибо за статью


    1. MountainGoat
      10.07.2024 19:01

      Кеды 6.1 ? Если нет, то можно было и не пробовать.


  1. Spiritschaser
    10.07.2024 19:01

    запуск WM

    Это не WM, это долбаный полноценный сервер для GUI программ. И в этом проблема - для окошек был нужен клиент как в X, а про сервер чтобы юзер даже и не знал.


  1. ParaMara
    10.07.2024 19:01

    Москва не сразу строилась

    Неужели Вы верите что Wayland мог уйти в релиз с такими глюками? На период освоения советую выделить раздельчик под Arch, а то у Вас сейчас Gentoo просто как задачник, а станет как задачник с ответами и решениями.


    1. sergeygals Автор
      10.07.2024 19:01

      Не уверен, что это баги именно Wayland, но даже если и так, не очень понятно ваша увереность что в его релизах нет багов. Они везде есть. Я, как любитель самосборных ядер последних версий встречал баги даже в релизных ядрах. Как мне поможет Arch я тоже не очень понимаю. Одно время он у меня даже стоял на одной из домашних Rasberry PI, но в итоге на серверах я ушел на Ubuntu.


      1. ParaMara
        10.07.2024 19:01

        И где Вы видите мою уверенность?

        Arch поможет точно так же как ответ в задачнике - если на Gentoo работает хуже чем на Arch, значит это Вы делаете что-то не так. И ещё в вики Arch обычно всё написано, а когда есть доступный Arch - пользоваться ей и того удобнее.

        Пробовал KDE Plasma 6 с nVidia и Wayland на EndeavourOS. В целом - без проблем, но и Х11 не хуже. Не понравилось как с удалённым доступом, переключился обратно - одну строку менял. Поэтому всякую дичь, включая из комментов, объясняю кривизной сами знаете чего.


        1. sergeygals Автор
          10.07.2024 19:01

          Дорогой мой человек, если оперировать вашими терминам, то в задаче 'wayland на gentoo c nvidia' из этого самого задачника установка Arch никак не может быть решением :) ну и свою нелюбовь к монструзному KDE я уже отмечал.


          1. CrazyOpossum
            10.07.2024 19:01

            Арчевод со стажем, подтверждаю - арч прекрасен, но не панацея. Собственно, в статье описан типичный wayland - делай как у всех или gtfo. Шаг влево, шаг вправо и приплыли.
            Кстати, интереса ради. Нелюбовь к гному понимаю, а как насчёт Mate, aka Gnome 2?


      1. nckma
        10.07.2024 19:01

        Кстати, для распбери, последняя ОС Bookworm - по умолчанию стоит Wayland/Wayfire


  1. V1tol
    10.07.2024 19:01
    +5

    Пользуюсь Wayland последние два года, с тех пор как собрал десктоп на AMD. Переход с 5 на 6 плазму заметил только по сломавшимся значкам в трее - некоторые стали тёмными на тёмном фоне (регрессия в теме значков) и это со временем починили. Stable Diffusion гоняю через Stability Matrix, играю через WINE c wayland драйвером - не жизнь, а сказка.

    До этого сидел на ноутбуке с nvidiей вместо видеокарты и вспоминаю её как страшный сон.


    1. tbl
      10.07.2024 19:01

      У AMD проблем с Wayland нет. Там все-таки Valve для Steam Deck допилила с помощью AMD существующие дрова, да и впилили свой композитор Gamescope с поддержкой необходимых расширений Wayland для того, чтобы заработали SDL2 и Wine (Proton)

      А с Nvidia все печально


  1. XenHunt
    10.07.2024 19:01

    Интересная статья, сам недавно хотел попробовать поставить gentoo (а также nixos и guix) с hyprland и нвидюшными дровами, но походу подожду ещё на endeavour, где все это работает без таких проблем. Единственное отличие в том, что я использую swayidle и swaylock для атоблока в хайпе, может в gentoo оно тоже нормально зашло бы


    1. sergeygals Автор
      10.07.2024 19:01

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


  1. MountainGoat
    10.07.2024 19:01
    +1

    Пробовал Федору с репой для кед 6.1 и распоследних дров Nvidia. Работает вообще всё. Но многим приложениям надо носом ткнуть, что они в Wayland. Единственное, что не работает - в Discord в голосовом чате режим "говорить по кнопке" регистрирует эту кнопку только если окно Discord в фокусе. Для меня это было критично, поэтому вернулся обратно... на винду.


  1. Johan_Palych
    10.07.2024 19:01

    Рекомендую почитать:
    https://wiki.archlinux.org/title/Wayland


    1. sergeygals Автор
      10.07.2024 19:01

      Таки читал конечно, арч и гента самые документированные дистрибутивы, поэтому все мануалы читаю и там и там. Или вы рекомендуете какой-то конкретный раздел который решит описанные мной проблемы?


  1. AnSa8x
    10.07.2024 19:01

    Интересно было бы узнать что хоть за видеокарта. А то вообще непонятно древняя она или свежая.


    1. sergeygals Автор
      10.07.2024 19:01

      GeForce RTX 3070


  1. sergeygals Автор
    10.07.2024 19:01

    --deleted--


  1. event1
    10.07.2024 19:01

    Параллельно пытаюсь найти DM. Останавливаюсь на greetd. В итоге удается быстро запустить вариант tuigreet

    Тоже запускал sway на генте и имел аналогичную проблему. В результате самым простым решением оказалось просто при логине на первом виртуальном терминале запускать sway. В целом там всё нормально работало, но не было ни nvidia, ни дров от неё

    Хотя, может я и не прав, и для пользователей Gnome и KDE это будущее уже наступило

    На работе кеды на wayland уже пару лет. Без нареканий. Но, опять же, без nvidia.