LINUX.ORG.RU

FreeBSD 13.1 + Sway + NVIDIA

 , , , ,


2

2

Приветствую всех гробовщиков, любителей закопать FreeBSD вместе с вяленым!

Сидел я лет 10 на Xfce4 с фряхой. Один раз настроил его — так ничего и не менял за все время, все устраивало.

И так сошлись звезды, что вышел Sway 1.8, и в то же время у меня появилось свободное время. Решил я поковырять его, посмотреть как нынче обстоят дела с вяленым, в какой он степени готовности к употреблению.

Квест осложняется тем, что NVIDIA под фряху еще не завезла DRM-прослойку для запуска вяленых WM. Как оказалось, один человечек портировал модуль nvidia-drm.ko под фряху. Собрал его, и sway стартанул без проблем. Были проблемы с билдом модуля, мерцанием экрана и отсутствовшим курсором мыши, которые я зарепортил автору модуля, и он оперативно подсказал как их решить.

Что меня сразу удивило — при env WLR_RENDERER=vulkan и #ozone-platform-hint=wayland страницы в хроме стали рендерится существенно быстрее нежели на X-ах. Да и окна переключались мгновенно, на глаз быстрее нежели в xfce4. И тогда появился самочеленж: а смогу ли я настроить sway до юзабельного состояния + стабилен ли sway для повседневного использования...

Итак, минимальный набор софта, который нужен лично мне:

  • терминал kitty со шрифтом Terminus (TTF) — работает нативно, GPU accelerated, богатые настройки. Пару раз пытался осторожно потыкать палочкой alacritty, но по настройкам и удобству — совсем не то пальто.
  • chromium, firefox — нативно поддерживают вяленого.
  • просмотр изображений: swayimg — единственное, чего сейчас в нем не хватает — сглаживания при апскейле изображений. Разработчик про это знает и вероятнее всего, скоро реализует.
  • libreoffice - работает отлично через xwayland. В портах есть возможность его сбилдить с Qt5/Qt6 и по логике должно работать нативно. Но я не пробовал.
  • просмотр видео: mpv — поддерживает вяленого, юзаю с настройками:
    vo=gpu-next
    gpu-context=wayland
    hwdec=nvdec-copy
    
    Но прикол в том, что в NVIDIA дрова под фряху еще не завезли CUDA. Посему, приходится запускать через nv-sglrun враппер, который каким-то раком заюзывает libcuda.so.1 из порта x11/linux-nvidia-libs для аппаратного декодирования видео.
  • qbittorrent — работает кажись нативно, при необходимости либо живет в отдельном wordspace либо прячется в трей и вызывается в floating режиме.
  • telegram-desktop - нативная поддержка вяленого.
  • skype — работает во вкладке chromium, звук через пульсу + видео с веб-камеры.
  • pulseaudio — при клике по модулю в трее открывается pavucontrol в floating режиме.

Что и как пришлось поставить/докрутить:

  • waybar — мне он показался более приятным в настройке, чем аналоги. style.css где-то скопипастил на просторах инета и немного подкрутил под себя.
  • отображение флага раскладки клавиатуры: поначалу пытался прикрутить какие-то сторонние скрипты. Но позже оказалось, что все это есть искаропки.
  • Кнопки exit, reboot, shutdown через nwg-bar. Выглядит это вот так.
  • снимок экрана/области и копирование в буфер обмена: grim + slurp + wl-copy.
  • отображение погоды: пришлось немного повозиться со скриптом. Результат меня устраивает, не намного хуже weather аплета в составе xfce4.
  • уведомления через mako
  • redshift — динамическое изменение цветовой температуры в зависимости от времени суток.
  • запоминание раскладки клавиатуры для каждого окна — swaykbdd. Со старта оно не сбилдилось под фраху. Но после баг репорта, автор оперативно пофиксил код.
  • менюшка запуска программ через wofi

Лично у меня есть два режима работы:

  • обе руки на клаве, к примеру, что-то настраиваю на серваках — тогда все переключения делаются хоткеями. Вплоть до чатов и браузера. С редким исключением, когда нужно мышкой покликать по ссылкам на странице.
  • рука только на крысе, а тело в неестественной позе развалилось на стуле — благодаря taskbar и иконкам в трее, все переключения удобно делаются мышкой.

Очень понравилась фича sway (возможно есть в других DE/WM) — тонкая настройка автозапуска программ. Т.е. на каком workspace запускать, какие параметры окон применять, как их располагать и т.д. Также очень удобно в конфиге sway через опцию for_window рулить дефолтным поведением любых окон, фильтруя их регуляркой.

Во время настройки и тестирования не было ни одного падения sway. Единственный глюк который словил — при сохранении файла в Firefox, окно выбора пути мерцало. Решилось переключением этого окна в floating режим.

После недели работы в новой среде назад на Xfce4 как-то не хочется.

Еще скрины:

mpv с gaps inner/outer 5

Всякие разные окошки + wofi

>>> Просмотр (2560x1440, 196 Kb)

★★★★★

Проверено: hobbit ()
Последнее исправление: hobbit (всего исправлений: 3)

пытался осторожно потыкать палочкой alacritty

А у меня эта сволочь ещё и течёт (тоже на FreeBSD).

qbittorrent - работает кажись нативно, при необходимости либо живет в отдельном wordspace либо прячется в трей и вызывается в floating режиме.

Тебе так нужен графический клиент? Юзаю -nox, доволен как слон кот.

pulseaudio

Ты случайно аудио по Bluetooth не пытался гонять? Если да, может накотаешь статью на эту тему?


На мой вкус вырвиглазненько, но за старания однозначно зачёт!

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

Тебе так нужен графический клиент?

Мне проще кликнуть по иконке в трее. К тому же, нет необходимости удаленного доступа к нему. Разве что клиент будет установлен на домашнем сервере.

Ты случайно аудио по Bluetooth не пытался гонять?

Звук вывожу в аудиосистему через S/PDIF. За все время юзания материнки с блютузом, так и не нашел ему применения.

На мой вкус вырвиглазненько

Оформление долго не подбирал. Разукрасил чтоб было удобно и все.

iron ★★★★★
() автор топика

просмотр изображений: swayimg

Посмотри в сторону imv

hwdec=nvdec-copy

Во фряхе не работает vaapi? Или это novideoпроблемы?

redshift

Попробуй wlsunset.

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

Мне проще кликнуть по иконке в трее. К тому же, нет необходимости удаленного доступа к нему. Разве что клиент будет установлен на домашнем сервере.

Ну я тоже не на сервере его держу, но зато он запускается вместе с системой, не нужно логиниться в графическую сессию.

За все время юзания материнки с блютузом, так и не нашел ему применения.

Я для ноута интересуюсь. Когда не дома, с проводами иногда совсем неудобно.

Оформление долго не подбирал. Разукрасил чтоб было удобно и все.

Да лишь бы тебе было удобно и глаз не вытекал.

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

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

Во фряхе не работает vaapi?

Работает, но далеко не со всеми видеокартами.

@iron, кстати, можешь попробовать hwdec=vdpau, с невидией вроде как должно работать.

mord0d ★★★★★
()

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

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

можешь попробовать hwdec=vdpau, с невидией вроде как должно работать

Его постоянно и юзал, пока не завезли nvdec, который вродь как юзает CUDA и работает чуток быстрее.

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

Никогда не слышал о его существовании. Мне написать своё подделие вышло быстрее, чем найти готовое. Зато у меня на License BSD и без gtk. =)

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

Ну я не в курсе всех этих тонкостей, у меня невидия была последний раз лет пятнадцать назад.

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

Зато у меня на License BSD и без gtk. =)

Звучит интригующе. Где исходники можно лицезреть? Посмотрю как-нить на досуге.

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

Звучит интригующе. Где исходники можно лицезреть? Посмотрю как-нить на досуге.

эээмздесь, но советую не смотреть, чтобы не разбить лицо фейспальмом :D

Кот прошлогодний.

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

но советую не смотреть, чтобы не разбить лицо фейспальмом :D

Я не программер. Риск получить профессиональную моральную травму минимален). Спасибо.

iron ★★★★★
() автор топика

отлично. за фрю отдельное уважение и поклоон

Zlo ★★★★★
()

уважение. спасибо, стало чуть светлее.

sloan ★★
()

узкоглазой зелёнке - диз, за текст и фрю - лойс!

bug_
()

пытался осторожно потыкать палочкой alacritty

Незачем, при грамотной настройке kitty имеет меньше задержку сейчас.

мерцанием экрана

Как решил?

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

Как решил?

Решил путем добавления переменной окружения WLR_RENDERER=vulkan перед запуском sway.

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

Но зачем, если есть foot.

Пробовал, но он не поддерживает табы. Да, можно запустить несколько окон и при помощи $mod+w сделать табы средствами sway. Но тогда теряются алерты. Т.е. когда запустил какую-то команду на серваке в отдельном табе, переключаешься на другой таб и работаешь там. Потом когда команда выполнится - таб подсветится что там есть вывод, который мне просигнализирует о завершении выполнения команды.

Если ты подскажешь как такое реализовать средствами foot+sway - с радостью посмотрю сей терминал.

iron ★★★★★
() автор топика

какие параметры окон применять

Мне нужно чтобы cinelerra-gg открывалась строго в стековом режиме окон, а остальной софт открывался в мозаичном. Это возможно? Если да, то что надо вписать в конфиге?

Goat ★★
()

Пару раз пытался осторожно потыкать палочкой alacritty, но по настройкам и удобству — совсем не то пальто

Я его раньше использовал, могу от себя добавить, что он еще и кривой. Неправильно отрисовывал некоторые юникодные иконки, да еще и падал пару раз. Поставил kitty — волосы сразу стали мягкими и шелковистыми.

waybar — мне он показался более приятным в настройке

Ну это золотой стандарт, функциональный и отлично документированный в вики на гитхабе.

Текст на скриншоте слишком контрастный. Глаза не устают?

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

функциональный

С этим утверждением я бы поспорил.

Некоторые модули недоделанные. К примеру, в waybar-wlr-taskbar нет возможности ограничить как длину кнопки так и максимальную длину всего таскбара. При "format": "{icon} {title}" некоторые кнопки (в частности, браузера) толкают все остальные модули которые находятся справа за границу экрана. И выглядит это, мягко говоря, рагульно. А без отображение title, лицезреть одни лишь кнопки - нафиг не нужно. Можно было бы ограничить максимальную длину кнопок при помощи css, но:

style.css:165:12'max-width' is not a valid property name

В модуле waybar-clock, в календаре нет возможности задать день начала недели. А по дефолту там установлено воскресенье.

Все это на waybar-0.9.17.

Текст на скриншоте слишком контрастный. Глаза не устают?

Я уже немного подкрутил цветовые схемы, так что не так контрастно как на скрине. К тому же, юзаю wlsunset, что срезает часть синего спектра и глазам комфортно.

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

В модуле waybar-clock, в календаре нет возможности задать день начала недели. А по дефолту там установлено воскресенье.

Не понял, в чем это выражается? В отображении календаря? У меня выглядит так.

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

Ну у меня же правильно отображается, с понедельника.

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

Локаль какая?

$ locale
LANG=ru_RU.UTF-8
LC_CTYPE="ru_RU.UTF-8"
LC_COLLATE="ru_RU.UTF-8"
LC_TIME="ru_RU.UTF-8"
LC_NUMERIC="ru_RU.UTF-8"
LC_MONETARY="ru_RU.UTF-8"
LC_MESSAGES="ru_RU.UTF-8"
LC_ALL=ru_RU.UTF-8
iron ★★★★★
() автор топика
Ответ на: комментарий от iron

Весьма странно.

~ % LC_TIME=ru_RU.UTF-8 cal                                                                                                                              Чт 19 янв 2023 13:06:16 CET
     Январь 2023
Пн Вт Ср Чт Пт Сб Вс
                   1
 2  3  4  5  6  7  8
 9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28 29
30 31

~ % LC_TIME="ru_RU.UTF-8" cal                                                                                                                            Чт 19 янв 2023 13:06:22 CET
     Январь 2023
Пн Вт Ср Чт Пт Сб Вс
                   1
 2  3  4  5  6  7  8
 9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28 29
30 31

А где она у тебя прописана? Общесистемно в /etc/locale.conf?

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

В /etc/login.conf:

iron:\
        :charset=UTF-8:\
        :lang=ru_RU.UTF-8:\
        :tc=default:

...и еще в ~/.tcshrc:

setenv LC_ALL "ru_RU.UTF-8"
setenv LANG "ru_RU.UTF-8"

$ env LC_TIME=ru_RU.UTF-8 cal
    Январь 2023       
вс пн вт ср чт пт сб  
 1  2  3  4  5  6  7  
 8  9 10 11 12 13 14  
15 16 17 18 19 20 21  
22 23 24 25 26 27 28  
29 30 31
iron ★★★★★
() автор топика
Ответ на: комментарий от iron

А вот ncal показывает правильно:

$ ncal
    Январь 2023       
пн     2  9 16 23 30
вт     3 10 17 24 31
ср     4 11 18 25   
чт     5 12 19 26   
пт     6 13 20 27   
сб     7 14 21 28   
вс  1  8 15 22 29

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

Аааа, это же фряха.

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

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

должна

Ко-ко-кому должна?

_NL_TIME_FIRST_WEEKDAY seem to be not portable and glibc-specific

А пока лично ты не запилил патч с выбором первого дня недели в конфиге - другого источника этой информации у вейбара не будет.

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

А пока лично ты не запилил патч

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

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

zenity --calendar

Спасибо, данный календарик отображается отлично с:

for_window [app_id="zenity"] floating enable, focus, border none
...в ~/.config/sway/config.

И, кстати, отображает правильно начало недели без доп. настроек.

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

а waybar - прибит.

Как писал выше, можно было бы нивелировать этот недостаток наличием настройки в модуле waybar-clock. Но, к сожалению, такой настройки пока что нет.

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

Ok. Тогда почему не заюзать ncal в этом модуле, который отображает корректно начало недели, вместо cal? Вопрос, естественно, риторический...

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

Зачем брать nvidia под опен сорс системы. Эти карты для винды

Сам спросил и сам ответил, молодец.

iron ★★★★★
() автор топика
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.