LINUX.ORG.RU

Как изменить фон окна конкретного приложения?

 ,


0

2

Добрый день. Evince хорошая прога, есть все, что мне нужно для работы с pdf, но нет возможности изменить фон. Глаза уже не те, хотелось бы сделать свой, не белый. Мне кажется, что можно изменить фон конкретного приложения с помощью gtk. Как это можно реализовать? Система Linux Mint Mate 21 (Ubuntu 22).

Перемещено hobbit из general

★★★★
  1. Установить светлую тему по вкусу (или изменить в существующей тёмной, что надо).
  2. alias yourprogram="GTK2_RC_FILES=/usr/share/themes/НАЗВАНИЕ/gtk-2.0/gtkrc yourprogram" или alias yourprogram="GTK_THEME=НАЗВАНИЕ_ТЕМЫ yourprogram", в зависимости от версии GTK
CrX ★★★★★
()
Ответ на: комментарий от rustamych

Ты проверь сначала просто запуск, типа GTK_THEME=НАЗВАНИЕ_ТЕМЫ evince из терминала. Если работает, то… Ну в .zshrc или .bashrc. Или можно скрипт-однострочник написать, враппер. Или если «ярлыки» юзаешь, то туда в команду запуска.

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

Забыл написать - не предлагайте другие проги. Я говорю конкретно про evince.

Evince не умеет менять цвета в документе, только инвертировать. Если не готовы патчить и перекомпилировать его, то Okular – правильный совет.

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

Возможно потому, что «GTK3» несколько разных версий. Как минимум, есть «3.0», «3.20», «4.0».

Что назвать системной темой?

https://ibb.co/f1cqjzx

https://ibb.co/3ddw1Dg

Первый скриншот - тема «Adwaita:dark», по твоему рецепту.

Второй - моя «системная тема».

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

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

Вот у меня например:

 assets  gtk-2.0  gtk-3.0  gtk-4.0  index.theme  settings.ini

Как я понимаю, оно хочет какую-то конкретную gtk-3.2ХYZ

...

А все, отбой, evince нормально подхватывает тему из gtk-3.0. Это для тем с ночными/дневными вариантами (типа адвайты) такого переключения не проиходит и тупо выбирается дневная.

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

Под какую конкретно версию оно собрано, того и хочет.

$ ls /usr/share/themes/deep
gnome-shell  gtk-3.0   index.theme  openbox-3
gtk-2.0      gtk-3.20  metacity-1   unity

В данный момент «gtk-4.0» нет, но я эксериментировал с ним. Еще добавлю. Вполне возможно, что у тебя «gtk-3.0» для самой последней «gtk-3.xx», а чистой «3.0» у тебя нет вообще. У меня «gtk-3.0» - это чистая «3.0». «Gtk-3.20» включает в себя «gtk-3.0» и добавляет конкретно свои плюшки.

Полностью разобраться пока руки не дошли.

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

Почему? Я бы понял, если бы тебе на замену советовали проприетарную Windows-only программу. Но Okular — СПО, и готовые пакеты есть в большинстве Linux.

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

Окуляр у меня установлен, но я его не пользую, больно уж жручий. Много читаю статей и делаю пометки постоянно. Для быстрого просмотра без заметок пользуюсь mupdf-x11 с желтым фоном fffecf. Прога крайне быстрая и оч маленькая. Заметки она не умеет, умеет mupdf-gl, но неудобно и геморно. В evince есть оч удобна фича, которой нет ни у кого. При наведении курсора на гиперссылку (формулу или ссылку), он показывает ее тут же, не переходя на другую страницу. Это оч удобно при чтении статей. Пометки она тоже умеет, оч удобно и легко. Ну и последнее - это родное гномовское изделие. Для более сложных пометок держу Master PDF Editor 5. Он умеет оч много. Поэтому я и просил не предлагать другие редакторы и ридеры. Я более менее в теме.

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

Сам evince имеет ночной режим, но моим глазам от него только хуже. Белые буквы на черном фоне, брр. Мне хорошо от желтого фона fffecf или даже немного темнее. Запустил вашу строку. Изменился только сам evince, рамки, меню и т.д. Фон страницы не изменился. У меня есть gtk-2.0 и gtk-3.0. Как я понимаю, смена темы влечет за совбой смену оформления окна, меню да рюшечки. Фон не входит в тему.

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

Читаем еще раз.

изменить фон конкретного приложения…

Это и есть «…смену оформления окна, меню да рюшечки».

Фон страницы не изменился

Это фон документа. Естесственно, он не входит в тему оформления.

Выражайте свои мысли точнее.

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

Да, так правильнее. Тогда стало быть в этом направлении смены темы gtk нет решения. А мб есть другой способ? Мой товарищ решил эту тему кардинально - он сделал сам дисплей желтым в настройках дисплея. Можно конечно и так :).

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

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

После всех попыток была выбрана Zathura. Почему:
Есть нужный функционал (я могу менять цвета документа как хочу)
Подерживает нужные мне форматы
Лёгкая
Работает в Xorg/Wayland
Vimlike управление

А там, как знаешь, глаза то твои, я для себя выбрал https://ibb.co/bPxpkDh

Да, если есть композитор, то фон можно делать прозрачным.

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

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

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

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

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

Пробовал попользовать Zathura, но как-то не пошло, да и уже привык к mupdf. А в нем смена фона на любой предусмотрена. По скорости и малости Zathura такая же как и mupdf. Скорость и малость mupdf паражает.

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

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

Если цвет зашит в код то изменить его снаружи без пересборки не выйдет.

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

Собрал на виртуалке последнюю версию (удалось в этот раз). Но изменения предложенные в ссылке не меняют ничего. В файле libdocument/ev-document-misc.c в моей версии это строки с 513

			/* Change the RGB values*/
			//p[0] = 255 - p[0];
			//p[1] = 255 - p[1];
			//p[2] = 255 - p[2];
			// this will turn the background color to light green
                        p[0] = 204; // cc
                        p[1] = 232; // e8
                        p[2] = 207; // cf
                        p += 4;
Установка evince отсюда

А вот рекоментация здесь

cairo_set_operator (cr, CAIRO_OPERATOR_DARKEN);
cairo_set_source_rgb (cr, 0.8, 0.9098, 0.8117647);
сработала. При переключении режима на ночной появляется зеленый фон. Сейчас подберу нужный цвет и скомпилю. Кажется проблема решена.

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

Вообщем у меня две новости.

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

Главный патч вот это.

  1. Там просто адская сборка: meson + ninja и все под CI, которым собирается FlatPak.

Причем зависимости еще нужно выковыривать из вывода meson, поскольку авторы постеснялись их описывать. Как и саму процедуру сборки. Так что для не-разработчика это будет уж слишком сложно.

Собирал я сразу из https://gitlab.gnome.org/GNOME/evince , мастер-ветку и под FreeBSD, поэтому результаты неприменимы для обычных людей.

Вообщем лучше всего будет попросить кого-то из местных линуксоидов чтобы они собрали тебе флатпак с патчем.

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

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

undefined symbol: ev_job_find_get_n_main_results
Очень не хочется компилить на своем компе, многовато доустанавливать.

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

На виртуалке стояла версия 42.3, а я компилил 43.3. Просто запускать надо с путем /usr/local/bin/evince. А вот с флатпаком не знаком. Может поясните как с этим работать? Видимо как то компилить надо по другому и устанавливать тоже? А может можно сделать appimage? Он тоже ничего уже не требует.

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

Флатпак это такая технология «опакечивания» софта. Настройка флатпака вот тут те она зашита в скрипт для CI Gitlab

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

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

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

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

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