LINUX.ORG.RU

Почему у чистых иксов так плохо с интерфейсом программ?

 , ,


0

1

Здравствуйте.

Вот у меня есть программа, без которой я жить не могу. Она называется Softmaker Freeoffice. Притащил её с Шindoшs. Это еще один офисный пакет, отличается лучшей совместимостью с форматом M$ (поэтому я не юзаю либру, даже на одной машине в одной либре документ может изменится, не говоря уже про путешествие от либры до M$), отсутствием рекламы (прощай, Onlyoffice), полностью русским интерфейсом (и WPS прощай), авторасставление переносов еще есть, такую фичу я ни в одном офисе не видел. Из минусов я за год использования нашел только проприетарность и криворукость разрабов под Linux, которые не смогли даже сделать нормальные полосы прокрутки…

Это относится ко всем программам, написанным на чистых иксах. (Справа ШГ)

Могу сказать сразу за все чистые иксы. Вот эта прога – шг, дефолтный xterm – шг, Wordpad в Wine не похож сам на себя.

Как это можно починить? Заранее спасибо.

Скриншот шгшной проги: https://imgur.com/isGrp6L.png

Человеку рассказали как зарабатывать звезды и он всместо того чтобы набрать в гугле «настройка шрифтов в линукс» он начал генерировать темы на форуме…

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

Во-первых, я не только про шрифты. Я про ВЕСЬ интерфейс чистых иксов который выглядит как win95. Во-вторых, про гтк+культи и шрифты OTF или FTF информации навалом, а про чистые иксы и TTF её нет.

zagatov_lev
() автор топика

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

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

Я про ВЕСЬ интерфейс чистых иксов который выглядит как win95.

В чистых иксах нету своих контролов, надо всё с нуля писать. Векторная графика в X.Org устаревшая, уровня Windows 98.

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

А есть ли какой-нибудь способ заставить выглядеть нормально проги из Wine и те, чьи разрабы – тупые/слоупоки? Просто у меня модерн должен быть, а что-то не модернится…

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

А есть ли какой-нибудь способ заставить выглядеть нормально проги из Wine

Можно темы от Windows XP взять (*.msstyles).

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

Staging лагает.

И потом, я говорю е только про Wine.

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

Да, я про то же, можно ли эту векторную графику обновить?

Без изменения исходной программы никак. Надо менять код отрисовки контролов, он в программе, а не в X.Org.

Улучшенная векторная графика есть в расширении XRender, но она не полна по сравнению с Cairo и Skia.

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

А я не нашел, как исправить через эти конфиги. Честно, искал, но не нашел.

ps. Если вы про xterm, то я его один раз настроил и понял, а нафига, если есть удобный xfce4-terminal?

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

Она обновлена и выглядит норм, есть даже темы. Гугли motif.

Shadow ★★★★★
()

Шрифты замещаются. В документе у тебя указываются Arial, Times, а отображается какой-нибудь вшивый Nimbus. Поставь оригинальные виндовые шрифты и будет тебе счастье. На крайняк поставь аналоги типа Liberation.

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

Улучшенная векторная графика есть в расширении XRender

Это то самое незначительное улучшение, после которого X11 перестал влезать в 8Мб оперативы (и в 2 Гб тоже), и потребовал написания wayland...
Нет. Там просто сглаживание шрифтов появилось.

Shadow ★★★★★
()

Тут не будет тебе ответа.
В оригинале X11 использовали только растровые шрифты.
Естественно, без сглаживания.
Нет, был механизм отрисовки векторных шрифтов, но это было в разы страшнее твоего скриншота и, например, в StarOffice проще было мапить векторный шрифт из Type1 на похожий растровый. И ещё были сломанные размеры знакомест в русских Type1 шрифтах.
Потом появилась библиотека FreeType, которая умела отрисовать TTF шрифт НЕ СТРАШНО, а почти незаметно насколько хуже растрового шрифта.
Библиотека развивалась, автор современного wayland захотил втащить TTF на её базе нэйтивно в иксы и добавить сглаживание.
Но патенты не давали делать красивый хинтинг (патчи это решали).

Потом FreeType превратился в монстра, и его стали выпиливать - и результат на твоём скриншоте. ХЗ что делать.

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

Да ему абсолютно не интересны ответы - ему нужен повод накатать как можно больше сообщений чтобы звезды начали появляться…

anonymous
()
Ответ на: комментарий от Vault_Boy

Да уж персонаж забавный - школьник,знает как выглядит 95 винда, разбирается в тонкостях офисных пакетов для линукса,умеет в технический слэнг…но при этом не умеет гуглить )))

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

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

Vault_Boy
()
Ответ на: комментарий от chenbr0

У меня вопрос про все исковые приложения, а не только про это. Можно ли подменить графику иксов? Вот у меня какой вопрос

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

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

Школьник, да. По интерфейсу Win95 сужу по скринам типа таких, офисные пакеты для линукса я знаю, потому что пробовал их на оффтопике когда ещё не был знаком с Linux. Про тех сленг не знаю, у нас у подростков сленг похожий, видимо :). А гуглить я умею, однако что-то ничего не гуглится и не яндексится.

zagatov_lev
() автор топика

Ух, сколько бреда ты сгенерировал. Во-первых, кто заставляет тебя юзать голый twm? Во-вторых, как тебе уже заметили, дизайн элементов интерфейса — это уже компетенция графического тулкита, а не иксов. Настраивай свое DE. В-третьих, я вообще не понял заявлений про плохую совместимость либры с форматами мелкософта. Документы открываются прекрасно. Могут быть проблемы с презентациями. И еще, можно указать в настройках вайна использовать оформление GTK. Гугли, как это сделать. Я вообще не понимаю, зачем такие адские костыли. Зачем ты тащишь виндовую программу, когда есть либра?

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

Там нет большой разницы в плане графического API. Кнопки в стиле Windows 95 рисуются примерно так:

CONST
	color1 = 0FFFFFFH; (* btnHighlight *)
	color2 = 0E3E3E3H; (* 3dLights *)
	color3 = 0F0F0F0H; (* btnFace *)
	color4 = 0A0A0A0H; (* btnShadow *)
	color5 = 0696969H; (* 3dDkShadow *)
	color6 = 0646464H; (* black *)

PROCEDURE DrawBorder (f: Ports.Frame; VAR l, t, r, b: INTEGER; c: INTEGER);
	CONST u = unit;
BEGIN
	f.DrawRect(l, t, r, b, u, c);
	INC(l, u); INC(t, u); DEC(r, u); DEC(b, u)
END DrawBorder;

PROCEDURE Draw3dBorder (f: Ports.Frame; VAR l, t, r, b: INTEGER; c1, c2: INTEGER);
	CONST u = unit;
BEGIN
	f.DrawRect(l, t, r - u, t + u, Ports.fill, c1);
	f.DrawRect(l, t + u, l + u, b - u, Ports.fill, c1);
	f.DrawRect(r - u, t, r, b - u, Ports.fill, c2);
	f.DrawRect(l, b - u, r, b, Ports.fill, c2);
	INC(l, u); INC(t, u); DEC(r, u); DEC(b, u)
END Draw3dBorder;

PROCEDURE Draw (v: View; f: Views.Frame; state: SET);
	CONST u = unit;
	VAR w, h: INTEGER; l, t, r, b: INTEGER;
		font: Fonts.Font;
		asc, dsc, strW: INTEGER;
BEGIN
	v.context.GetSize(w, h);
	l := 0; t := 0; r := w; b := h;
	IF buttonDefault IN state THEN
		DrawBorder(f, l, t, r, b, color6)
	END;
	IF (buttonOver IN state) & (buttonDown IN state) THEN
		IF buttonDefault IN state THEN
			DrawBorder(f, l, t, r, b, color4)
		ELSE
			Draw3dBorder(f, l, t, r, b, color5, color1);
			Draw3dBorder(f, l, t, r, b, color4, color2)
		END
	ELSE
		Draw3dBorder(f, l, t, r, b, color1, color5);
		Draw3dBorder(f, l, t, r, b, color2, color4)
	END;
	f.DrawRect(l, t, r, b, Ports.fill, color3);
	
	font := GetFont(v);
	font.GetBounds(asc, dsc, strW);
	strW := font.StringWidth(v.caption);
	IF buttonOff IN state THEN
		f.DrawString(w DIV 2 - strW DIV 2 + u, h DIV 2 - (asc + dsc) DIV 2 + asc + u, 0FFFFFFH, v.caption, font);
		f.DrawString(w DIV 2 - strW DIV 2, h DIV 2 - (asc + dsc) DIV 2 + asc, 0A0A0A0H, v.caption, font)
	ELSIF (buttonOver IN state) & (buttonDown IN state) THEN
		f.DrawString(w DIV 2 - strW DIV 2 + u, h DIV 2 - (asc + dsc) DIV 2 + asc + u, 0000000H, v.caption, font)
	ELSE
		f.DrawString(w DIV 2 - strW DIV 2, h DIV 2 - (asc + dsc) DIV 2 + asc, 0000000H, v.caption, font)
	END
END Draw;
X512 ★★★★★
()
Последнее исправление: X512 (всего исправлений: 1)
Ответ на: комментарий от anti_win

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

Написал я документ в либре, сохранил как docx. Документ с красивыми абзацами, картинками и прочим. Через полчаса я вспомнил, что мне нужно что то в нем поправить. Открываю в той же либре на том же ПК и вижу, как абзацы уплыли, картинка лежит под текстом, короче получилась фигня.

Хорошо, делаю все заново, но сохраняю в формате Opendocument. Либра читает СВОЙ формат так же, ЧЯДНТ?

Приношу на ПК с M$ Office. Все поплыло, а некоторое даже и уплыло.

Тот же сценарий с Freeoffice а результат другой. Печатаю документ с красивыми абзацами и картинками. Сохраняю как docx. Через полчаса открываю его, ничего не плывет. Открываю на компьютере с M$. It just works…

И да, это линуксовый вариант программы. А не Вайн виндузной.

Зачем глючная либра, которая СВОЙ не то что чужой документ прочитать не может?

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

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

Вот зачем ты его сохранил в docx? Лучше сохранять оригинал в odt, а при необходимости пересохранять этот odt как docx.

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

Это проприетарщина…

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

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