LINUX.ORG.RU
Ответ на: комментарий от Behem0th

Да, зря выкинули.

Принт-сервер, скорее всего, тоже зря выкинули. Насчёт звукового - точно не могу сказать. С одной стороны, в целях сетевой прозрачности он там весьма полезен. С другой, для большинства применений это очередная ненужная прокладка по типу pulse/pipewire, лучше работать непосредственно с alsa или другим ядерным звуком.

юниксвейный

Я ничего не писал про юниксвейность.

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

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

https://man.freebsd.org/cgi/man.cgi?query=stat&apropos=0&sektion=2&am...

- и почему я умел это ещё когда был студентом???

Я всё забыл, но вот что жопатэ написал, я не возражаю:

#include <stdlib.h>
#include <string.h>
#include <sys/stat.h>
#include <unistd.h>
#include <stdio.h>

static int
is_executable_in_path(const char *cmd)
{
    const char *path = getenv("PATH");
    if (!path || !*path) {
        return 0;
    }

    char *paths = strdup(path);
    if (!paths) {
        return 0;
    }

    char *saveptr = NULL;
    for (char *dir = strtok_r(paths, ":", &saveptr);
         dir;
         dir = strtok_r(NULL, ":", &saveptr))
    {
        char fullpath[1024];
        snprintf(fullpath, sizeof(fullpath), "%s/%s", dir, cmd);

        struct stat st;
        if (stat(fullpath, &st) == 0 &&
            S_ISREG(st.st_mode) &&
            access(fullpath, X_OK) == 0)
        {
            free(paths);
            return 1;
        }
    }

    free(paths);
    return 0;
}

static const char*
GetDialogCommand(void)
{
    if (is_executable_in_path("zenity"))   return "zenity";
    if (is_executable_in_path("dialog"))   return "dialog";
    if (is_executable_in_path("whiptail")) return "whiptail";
    if (is_executable_in_path("yad"))      return "yad";
    if (is_executable_in_path("kdialog"))  return "kdialog";
    return NULL;
}

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

и почему я умел это ещё когда был студентом?

Видимо, такую выбрал специализацию :)

У меня специальность другая, поэтому тот вариант вызывает только интуитивное ощущение неправильности.

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

Я менеджер, специализация - финансовый менеджмент и предпринимательская деятельность. Но да, я информатику и матстатистику ещё с помощью Turbo Pascal изучал, и то, что файл можно потрогать из стандартной библиотеки, знаю.

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

Этой штуке ВООБЩЕ не место в XServer. Потому что если у меня не одна из самых популярных програм то такой пользователем идёт лесом. Этими делами должен заниматься WM.

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

Xdialog добавить :) Но вообще, ты прав, достаточно Xdialog - потому что Xaw в достаточной степени может натягивать на себя «темы».

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

Xserver вообще никакие гуи-клиенты запускать не должен и не должен рассчитывать на то, что на компе, где он запущен, они есть. Это то же самое, как сделать графический редактор, а для операции «нарисовать круг» этот редактор будет запускать xdotool, который выводит курсором круг на рабочей зоне редактора.

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

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

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

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

Этой штуке ВООБЩЕ не место в XServer. Потому что если у меня не одна из самых популярных програм то такой пользователем идёт лесом. Этими делами должен заниматься WM.

Вообще, можно просто договориться об имени бинарника, который будет вызываться X-сервером с передачей ему нужных данных. А DE/WM уже будет этот бинарник предоставлять. Как это могло бы быть с xdg-open. Такой вариант тоже может быть рабочим.

Правда, в итоге xdg-open делает примерно как в том PR по ссылке. Если хочешь понять, почему никто не любит долбонавтов из Freedesktop, просто сделать less $(which xdg-open) на своей системе и охреней от увиденного.

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

Какую ссылку гугл выдал такую и вставил. От этого коммит стал другим?

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

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

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

Не сработает. Откройте пр по ссылке и промотайте ниже - там у каждой из утилит абсолютно несовместимые аргументы и способы вызова. Кроме того, как правильно заметили:

  • Утилит может стоять несколько, первая попавшаяся таким образом может не работать в моем текущем режиме
  • Это не работа иксов, полагаться на гуи-утилиты для собственной работы. Если у меня вместо xdg-open browser будет ошибка - насрать. А в ПР это предлагалось для критичного момента с блокировкой другого приложения
PPP328 ★★★★★
()
Ответ на: комментарий от hateyoufeel

Расширения протокола считай давно его часть. То, что они до сих пор в статусе именно расширений - лишь для того, чтобы при обнаружении на том конце старого сервера/старого клиента никто не сломался, а просто перешёл в режим работы без расширений.

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

Не сработает.

Сработает, если сделать нормально. Так-то я согласен, что это не работа иксов. Проблема в том, что всё равно придётся на что-то завязываться. Сейчас для этого пилят XDG порталы, в которые надо долбиться через dbus. Готов ли ты завязывать иксы на dbus и определённый api в нём?

Лялексу нужны нормальные IPC и система провайдеров разных сервисов. Пока что этого нет и не предвидится.

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

Расширения протокола считай давно его часть. То, что они до сих пор в статусе именно расширений - лишь для того, чтобы при обнаружении на том конце старого сервера/старого клиента никто не сломался, а просто перешёл в режим работы без расширений.

Мне вот интересно, а этот сценарий кто-нибудь тестировал? Потому что мне что-то кажется, что никто в здравом уме не будет пускать софт на GTK4 под какой-нибудь соляркой с Xsun. И наоборот, на бинарную совместимость с древним софтом в лялексе всем 100% насрать.

Так что сдаётся мне, толку от этого «просто перешёл в режим работы без расширений» нет никакого, потому что всё равно не будет работать.

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

Зависит от используемого софта. gtk4, вероятно, без ряда расширений работать не будет. Часть моих гуи-прог прибита к Xshm (но довольно легко докодить фолбек к работе без него), остальные расширениями не пользуются.

И наоборот, на бинарную совместимость с древним софтом в лялексе всем 100% насрать.

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

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

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

Готов ли ты завязывать иксы на dbus

Как будто вяленый и сыстемды не завязаны.

Ну и да, система апи dbus полное говно.

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

И что тогда делать иксам, когда WM не запущен?

А какую задачу мы пытаемся решить, показать диалог с подтверждением потенциально небезопасного действия?
Нужно ли это хоть кому-то без wm/de? Могут конфигом обойтись.

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

И что тогда делать иксам, когда WM не запущен?

Запустить WM. Нахрен иксы без WM нужны?

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

Как будто вяленый и сыстемды не завязаны

Вялянд и правда не завязан. Т.е. вполне можно сделать реализацию для систем без dbus.

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

Вялянд и правда не завязан

Потому что сам вяленый голый ничего не содержит и ничего не умеет. Всё вынесли в WMы, без которых он бесполезен.

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

Вялянд и правда не завязан

Потому что сам вяленый голый ничего не содержит и ничего не умеет. Всё вынесли в WMы, без которых он бесполезен.

Нет, ты не понял. Подавляющее большинство протоколов Wayland реально не требуют dbus. Т.е. примерно почти всё можно без dbus делать. dbus нужен для порталов и ещё кое какой фигни.

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

Оригинальный икс-сервер был готовым решением для всех десктоповых применений, который поддерживал все варианты железа и все варианты софта.

Ох да не гони ты. Оригинальный X-сервер нормально два монитора не умел, какие в жопу все варианты. Попробуй запустить иксы без Xinerama и Randr и перетащить окно с одного экрана на другой.

С другой, для большинства применений это очередная ненужная прокладка по типу pulse/pipewire, лучше работать непосредственно с alsa или другим ядерным звуком.

pipewire как раз нужна прокладка, поскольку позволяет нормально сделать роутинг звука. ALSA же – полное днище. Причём не только в сравнение с Pipewire, но и даже со своим предшественником OSS. Каждый раз, когда я читаю про говнокостыли типа ALSA, я прямо ощущаю как это было построено на руинах древней высокоразвитой цивилизации.

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

два монитора

Речь не про поддержку экзотических хотелок, а про поддержку разных сущностей: любая платформа, любая ОС, любая видеокарта, любой гуи-клиент (начиная от самых древних). Тебе не надо думать о том, чтобы твоё железо/ОС/прога были совместимы в плане графики, ты просто запускаешь X-сервер и он работает: позволяет проге вывести своё гуи на монитор. В том числе - не требуя от ОС ни поддержки графики вообще, ни поддержки бинарного формата, в котором предоставлен драйвер видеокарты (это к вопросу о вредителях, удаливших из иксов свой ОС-независимый лоадер бинарников всех возможных форматов).

pipewire как раз нужна прокладка

Ну вот, с таким отношением осуждать то же самое в иксах странно.

когда я читаю про говнокостыли типа ALSA

Я знаю, что ты знаешь, что от алса у тебя в любом случае будет использоваться. Так что запишем как вброс.

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

два монитора

Речь не про поддержку экзотических хотелок

Это не экзотическая хотелка. Первый Doom из 1994 года поддерживал многомониторную конфигурации. А иксы не поддерживали.

про поддержку разных сущностей: любая платформа, любая ОС, любая видеокарта, любой гуи-клиент (начиная от самых древних). Тебе не надо думать о том, чтобы твоё железо/ОС/прога были совместимы в плане графики, ты просто запускаешь X-сервер и он работает: позволяет проге вывести своё гуи на монитор.

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

Ну вот, с таким отношением осуждать то же самое в иксах странно.

Никто не осуждает то же в иксах. Проблема иксов в том, что там всё это было реализовано криво, наполовину и через жопу.

когда я читаю про говнокостыли типа ALSA

Я знаю, что ты знаешь, что от алса у тебя в любом случае будет использоваться.

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

У меня тут подключена звуковая приблуда с 4 входами и 4 выходами (Minifuse 4), и я даже близко не представляю как её в ALSA настроить, потому что там левые и правые каналы отдельно идут. Pipewire же это без проблем делает.

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

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

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

Никто не осуждает то же в иксах. Проблема иксов в том, что там всё это было реализовано криво, наполовину и через жопу.

Значит надо было доработать, а не удалять как эти вредители.

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

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

А точно могу? Ты уверен? А если иксы валятся? У них же нет даже подобия safe mode. У меня одно время было любимым развлечением отлаживать xorg.conf, руководствуясь стектрейсами от сегфолтом ксорга.

Значит надо было доработать, а не удалять как эти вредители.

Ехехех.. есть вполне обоснованное мнение, что проще было заново сделать нормально чем допилить иксы. Просто потому что допил сломал бы совместимость с существующим софтом. Вяляндовцы, к сожалению, нормально заново сделать не смогли. Получилось то же говно, что в иксах, только с другого ракурса :(

Тут @EXL когда-то оставлял годный комментарий со ссылкой на рассказ почему в MacOS X сделали оконную систему заново, а не взяли иксы. Я часто об этом вспоминаю в таких срачах.

Things we'd need to add/extend in X Window software (protocol+server+manager+fonts+...):

1) Extend font server and services to vend outlines and antialiased masks, support more font types, handle font subsetting.
2) Extend drawing primitives to include PS-like path operations.
3) Add dithering and phase controls.
4) Add ColorSync support for drawing and imaging operations, display calibration
5) Add broad alpha channel support and Porter-Duff compositing, both for drawing in a window and for interactions between windows.
6) Add support for general affine transforms of windows
7) Add support for mesh-warps of windows
8) Make sure that OpenGL and special video playback hardware support is integrated, and behaves well with all above changes.
9) We find that we typically stream 200 Mb/sec of commands and textures for interactive OpenGL use, so transport efficiency could be an issue.

So, yes, it looks like we can use X for Quartz. All we need do is define extensions for and upgrade the font server, add dithering with phase controls to the X marking engine, add a transparency model to X imaging with Porter-Duff compositing support, make sure GLX gets in, upgrade the window buffering to include transparency, mesh warps, and really good resampling, and maybe augment the transport layer a bit.

Ummm... There doesn't appear to be much code left from the original X server in the drawing path or windowing machinery, and it doesn't appear that apps relying on these extensions can work with any other X server. Just what did we gain from this?

Oh, yeah. My mom can run an xterm session on her desktop now without downloading the Apple X11 package, a shareware X server or buying a software package.
hateyoufeel ★★★★★
() автор топика

xenocara, как и 640кб памяти, хватит на всех

alt-tab-let ★★★
()
Ответ на: комментарий от sparkie

Вообще, есть известное определение фашизма. На его основе я составил своё собственное, более простое и сложное одновременно.

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

Вопроса два. Первый. Являются ли действия начальника самостоятельными? Нет, хоть это и не отменяет юридической ответственности. И второй. Фашист ли начальник? Тоже нет. Пока нет.

sparkie ★★★★★
()
Последнее исправление: sparkie (всего исправлений: 1)
Закрыто добавление комментариев для недавно зарегистрированных пользователей (со score < 50)