24.09.2021

Дурдом

На самом деле — Durden, но какая разница :P Трек на фоне демонстрационного видео соседнего проекта — Pipeworld — тоже недвусмысленно намекаэ, что психически здоровым здесь не место.

Перед вами не что иное, как будущий убийца X и Wayland вместе взятых. На скриншоте можно лицезреть, как под ним работает и X-клиент (feh), и Wayland-клиент (Midori). Даже Xarcan (форк X.Org) конпелять больше не нужно. Иксовые клиенты работают через лютый бутерброд из arcan-wayland, Xwayland и arcan_xwm — но работает же :P

Сразу предупреждаем: оно сырое, глюкавое и падучее. Все трюки выполнены профессиональными каскадёрами, не повторять в домашних условиях. А то испортите первое впечатление, а потом лет 10 будете ныть и дезу разносить, знаем Мы вас :P

Но как ни странно, это не помеха и даже отлично демонстрирует преимущества. В отличие от этих ваших вяленых композиторов, которые, в отличие от иксовых WM, при падении прихлопывают за собой всю графическую сессию (кроме Enlightenment, и то с оговорками) — Arcan благодаря фирменной технологии SHMIF очень устойчив к падениям. Нативный afsrv_terminal, равно как и процес arcan-wayland, при падении Arcan спокойно висят и ждут, когда запустится новый. Правда, не всегда его находят, но это уже отдельная песня :P

В стоковой поставке даже не обнаружилось скриншотера для всего экрана, только для отдельных окон или видеозапись. Режим VNC-сервера тоже не завёлся, пришлось костылять скриншотер на коленке:

menus_register("global", "tools",
{ name = "screenshot", label = "Screenshot", description = "Take a screenshot of a screen region as a PNG", kind = "action", hint = "(stored in output/)", external_block = true, handler = function() local r, g, b = suppl_hexstr_to_rgb(HC_PALETTE[1]); suppl_region_select(r, g, b, function(x1, y1, x2, y2) local dvid = suppl_region_setup(0, 0, 1366, 768, false, true); if (not valid_vid(dvid)) then return; end local time = os.date("*t"); local name = "Screenshot" .. os.date("%d_%m_%Y_") .. ("%02d%02d%02d"):format(time.hour, time.min, time.sec); save_screenshot( "output/" .. name .. ".png", FORMAT_PNG, dvid); show_image(dvid); local wnd = active_display():add_window(dvid, {scalemode = "stretch"}); wnd:set_title(name); end); end,
});

Возможно, причешем и отправим в апстрим.

Ах да, весь этот Дурдом полностью написан на Lua. Нативный код есть только в самом дисплейном сервере Arcan. Не знаем, насколько он похож на Awesome кроме того, что оба тайловые и оба на Lua, но осомщикам наверняка зайдёт. При этом ещё и красиво свистит и пердит, хоть и только в 2D. В то время как иксовые тайловые WM с убогими живыми standalone-композиторами выглядят убого (Мы всё-таки надеемся когда-нибудь откопать cairo-compmgr и zComp, ага). Есть с десяток разных режимов тайлинга (на скрине BSP). А ещё есть снежок и конфетти! и подсветка местонахождения курсора красивая!

Поддерживается также мышевозный тайлинг: окошки можно таскать, с подсветкой зон для дропа. Правда, Midori от этого почему-то падает и роняет за собой Arcan ;D Перед этим угрожающе скукоживаясь, что уже видно по окошку с ЛОРом. Другие Wayland-клиенты не проверяли.

О конфигурации через сокет и FUSE упоминать не стоит, это вы и так слышали (или нет? ;)) Но они особо и не нужны, разве что для автоматизации, ведь есть крутое горизонтальное Меню™, очень похожее на (старый?) интерфейс XBMC/Kodi. Так что управлять дурдомом, по идее, можно даже с пульта от телевизора!

@mord0d жаловались, что эта инкарнация в Галерею не отсвечивает — получите, распишитесь.

>>> Просмотр (1366×768, 379 Kb)

Источник.