Как изменить цвет фона pdf в evince?

26

Белый цвет фона вреден для глаз. Как изменить цвет фона pdf в evince? Сейчас я использую evince 3.4.0 в Ubuntu 12.04 x64.

waterloo2005
источник
Я также страдаю от белого фона, и я использовал xcalib ниже, но в настоящее время я в основном использую KWin, который предлагает инверсию цветов для каждого окна в отдельности. Вот почему я использую на большинстве машин KDE, так как он у меня есть out_of_the_box, просто нужно включить его в настройках.
Гжегож Вежовецкий
Я только предлагаю обходные пути, но Zathura - еще один (действительно крутой) просмотрщик PDF, и его фон черный. В противном случае вы можете настроить свою глобальную тему Ubuntu (например, скопировать тему Ambiance из /usr/share/themes/Ambianceв $HOME/.themes/и настроить определения цвета в ней gtk.css). К сожалению, я не знаю, где конкретные переменные для evince, поэтому все ваши приложения будут иметь черный фон XD. Лично я в любом случае намного счастливее с совершенно темной темой, но это дело вкуса.
PlasmaBinturong

Ответы:

29

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

Чтобы инвертировать цвет.

Перейти: Вид -> Перевернутые цвета ( Ctrl+ I)

Надеюсь это поможет.

devav2
источник
1
Я хочу изменить цвет спины на другие, как светло-зеленый. Я думаю, что это легко реализовать для разработчика evince.
waterloo2005
1
Да, это очень возможно. После вашего комментария я просто просмотрел исходный код evince и нашел это. ev-document-misc.c содержит инвертированный раздел цвета if (inverted_colors) cairo_set_source_rgb (cr, 0, 0, 0); else. Таким образом, изменяя это, я думаю, что мы можем достичь желаемого цвета, но я не скомпилировал и не протестировал это. Вы можете попытать счастья.
devav2
Тогда как изменить цвет спины на светло-зеленый. Я новичок.
waterloo2005
15

Я уже давно борюсь с этим вопросом. Лучшее решение, которое я нашел, - это использовать xcalibкоманду через два легко доступных средства запуска приложений на панели инструментов / приложения. Я назвал их « Режим экрана » и « Режим бумаги ».

С помощью xcalibя могу на лету активировать две разные конфигурации экрана без профилей и прочего наворота. Обратите внимание, что xcalibэто наименьшая часть программного обеспечения, и она не будет занимать место или память, поскольку передает конфигурации адаптеру дисплея и завершает работу. Вы можете забыть о тяжелом специализированном программном обеспечении, таком как argyll + dispcalgui и т. Д.

Сначала установите xcalibс помощью:

sudo apt-get install xcalib

Затем установите ваши два модуля запуска с помощью этих команд:

Чтобы установить «Режим бумаги», используйте:

xcalib -red 1.7 1 64 -green 1.7 1 57 -blue 1.7 1 28 -alter

Для (повторного) возврата в режим «Режим экрана» используйте:

xcalib -clear

Как вы, вероятно, можете сказать, я настраиваю параметры для каждого канала, и мои усилия заключались в том, чтобы получить Kindle-подобный результат. Очевидно, вы можете и должны настроить их в соответствии с вашими предпочтениями и экранами. Конечно, это корректирует экран в целом, но, по крайней мере для меня, это было благословением для всех белых IDE. Это займет у вас пару минут, чтобы привыкнуть к этому, но вы никогда не вернетесь. Это настоящий Eye-Saver!

Использование команды xcalib -ChannelName Gamma Brightness Contrastи все они разделены одним пробелом. -alterПодает сигнал к адаптеру. -clearОтправить сообщение «Clear» к адаптеру , чтобы очистить все настройки обратно в нормальное русло.

ВАЖНЫЙ СОВЕТ : Чтобы не потерять черноту букв, всегда держите Яркость на 1, как показано выше. Тренируйтесь только с Гаммой и Контрастом. Гамма даст более темный / светлый результат, а игра с контрастом между каналами отрегулирует результирующий цвет.

Другой СОВЕТ : установите ярлык «Режим бумаги» на первый сброс, а затем установите цвет (например, «xcalib -clear && xcalib -red 1.7 1 64 -зеленый 1.7 1 57 -белый 1.7 1 28 -альтер»), так что если случайно использовать его несколько раз, это не меняет цвет вашего дисплея на черный.

Я надеюсь, что это окажется полезным для многих из вас!

GRE2608
источник
2
Когда я заметил, что гамма 1.7 как раз и сводилась к взлому сглаживания шрифта (а также тому факту, что я использовал несколько очень забавных чисел выше), более подходящей командой для «Режима бумаги» будет ...xcalib -red 1.5 0 65 -green 1.5 0 60 -blue 1.5 0 25 -alter
GRE2608
На момент написания xcalib несовместим с Wayland (средство визуализации окон), поскольку каждый процесс может рисовать только в своем соответствующем окне.
Тайс Маас
4

Я нашел Okular как лучший просмотрщик PDF. Это позволяет вам изменить с GUI цвет фона и шрифта на любое значение, которое вы хотите. т.е.

Настройка -> Настроить Okular -> Специальные возможности -> Изменить цвет

Например, установите:

  • Темный цвет как цвет шрифта
  • Светлый цвет как цвет фона.

У меня была Okular версия 0.16.5

Адель Раза Азими
источник
3

Измени цвет фона evince на легкую жадность и защити свои глаза

Настройте среду компиляции и загрузите исходный код

sudo apt source evince

Измените источник на ваш цвет, например, светло-зеленый (R: 199, G: 237, B: 204) Отредактируйте функцию ev_document_misc_invert_surfaceв файле: libdocument/ev-document-misc.cв строке 467

менять

cairo_set_operator (cr, CAIRO_OPERATOR_DIFFERENCE);
cairo_set_source_rgb (cr, 1., 1., 1.);

в

cairo_set_operator (cr, CAIRO_OPERATOR_DARKEN);
cairo_set_source_rgb (cr, 0.8, 0.9098, 0.8117647);

Конфиг и сделай и сделай установку

cd evince
./configure --prefix=$YOUR-PLACE  --enable-nls --disable-scrollkeeper --disable-dbus --disable-debug --disable-tests --disable-nautilus --disable-thumbnailer --disable-previewer --disable-comics --without-keyring --without-gconf --without-gtk-unix-print
```

Тогда сделайте, и я получу ошибку:

Making all in synctex
make[3]: Entering directory '/home/luopeng/Downloads/evince-3.28.4/cut-n-paste/synctex'
  CC       libsynctex_la-synctex_parser.lo
  CC       libsynctex_la-synctex_parser_utils.lo
synctex_parser_utils.c:106:29: error: format string is not a string literal [-Werror,-Wformat-nonliteral]
        result += vfprintf(stderr, reason, arg);
                                   ^~~~~~
1 error generated.
Makefile:545: recipe for target 'libsynctex_la-synctex_parser_utils.lo' failed
make[3]: *** [libsynctex_la-synctex_parser_utils.lo] Error 1

Конечно, исправить это с помощью:

#pragma GCC diagnostic push
#pragma GCC diagnostic ignored "-Wformat-nonliteral"
    result = fprintf(stderr,"SyncTeX ERROR: ");
    result += vfprintf(stderr, reason, arg);
    result += fprintf(stderr,"\n");
#pragma GCC diagnostic pop

В версии Ubuntu 18.04 я обнаружил несколько ошибок, как в приведенном выше случае, и исправляю их, игнорируя GCC. (пожалуйста, добавьте # перед прагмой в следующем коде)

#pragma GCC diagnostic push
#pragma GCC diagnostic ignored "-Wformat-nonliteral"
  the code where the errors occur
#pragma GCC diagnostic pop

Затем измените конфиг в /usr/share/applications/evince.desktop

change Exec=$YOUR-Evince-PLACE/bin/evince %U

При нажатии на вид-> Перевернутый цвет, цвет вашего фона изменится на светло-зеленый

Наслаждайся этим!

luoares
источник
2

Спасибо за приглашение Эвана. Вот что я сделал для достижения светло-зеленого фона в Evince 2.30.3.

Как упоминалось в ветке ( https://mail.gnome.org/archives/evince-list/2011-November/msg00015.html ), опубликованной мной несколько лет назад, я заменил исходный код из строки 327 на 329 libdocument / ev-document-misc.c со следующим фрагментом:

// make sure that we just turn the near "white" back ground to light green
if ((245 <= p[0] && p[0] <= 255) &&
    (245 <= p[1] && p[1] <= 255) &&
    (245 <= p[2] && p[2] <= 255)) {
    p[0] = 204; /* cc */
    p[1] = 232; /* e8 */
    p[2] = 207; /* cf */
}

Обратите внимание, что позиция кода может отличаться для разных версий Evince.

Затем пересоберите Evince:

$ ./configure --prefix=/usr --enable-nls --disable-scrollkeeper --disable-dbus --disable-debug --disable-tests --disable-nautilus --disable-thumbnailer --disable-previewer --disable-comics --without-keyring --without-gconf --without-gtk-unix-print
$ make

После компиляции НЕ запускайте make install , потому что это может изменить ваши языковые настройки Evince. Просто сделайте резервную копию исходного файла /usr/lib/libevdocument.so.2.0.0 и замените его на измененный libdocument / .libs / libevdocument.so.2.0.0 вручную.

Затем перезапустите Evince, откройте файл .pdf (или другие поддерживаемые форматы, и т. Д.) И используйте параметр «Инвертированный цвет», чтобы изменить цвет фона на светло-зеленый.

Может ли это быть полезным :)

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

Я также пытаюсь изменить цвет фона evince, но мне это не удалось.

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

К сожалению, версия, установленная из Synaptic, не работает для окрашивания отсканированных документов PDF, но версия, установленная с PPA, хороша для этого. Просто выполните следующие команды.

sudo apt-add-repository ppa:b-eltzner/qpdfview
sudo apt-get update
sudo apt-get install qpdfview

Вам нужно изменить параметр цвета.

А что касается отсканированных PDF-документов, вам нужно нажать на кнопку View-Composition-Затемнение цвета бумаги, и все будет в порядке.

Дэвид Вэй
источник