Изменение темного фона наложения на экранах Activity- и Apps-overview, а также за диалоговыми окнами (Gnome 3)

На Ubuntu 20.04.1 LTS

Gnome версии в соответствии с закладкой "About" приложения Settings: 3.36.8

gnome-shell --version
GNOME Shell 3.36.4

Theme: Yaru (по умолчанию; не "светлый", не "темный")

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

screenshot of Gnome dash

Problem / Challenge:

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

Я хотел бы сделать этот накладной немного светлее / ярче.

Я просмотрел настройки в org.gnome.shell.extensions.dash-to-dock с dconf-редактором, но ничего для него не нашел. (Я не включил в Tweaks дополнительное расширение оболочки Gnome "Ubuntu Dock")

Затем я скопировал тему Yaru с /usr/share/themes/ на ~/.themes/, и активировал ее с помощью Gnome-Tweaks.

В ~/.темы/ми-Яру/gtk-3.20/ я экспортировал истинное содержание и переписал файл gtk.css с помощью

gresource extract gtk.gresource /com/ubuntu/themes/Yaru/3.20/gtk.css > gtk.css

Теперь, вместо оригинальной единственной строки импортного заявления, в нем 12637 строк CSS.

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

Что мне теперь делать? Нахожу ли я вообще на правильном пути?

Если да, то как я могу включить отладочный режим Gnome, который - по сравнению с инструментами для разработчиков веб-браузеров - будет интерактивно раскрывать CSS-селектор этого оверлея?

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

2
задан 24 January 2021 в 02:39

1 ответ

Ответ Compat:

Ubuntu 20.04.1,
Версия Gnome-Shell: 3.36.4
Display Server: X.org Server

Темный фон с радиальным градиентом исходит от LightBox Gnome Shell UI.

https://gitlab.gnome.org/gnome/gnome-shell/-/blob/gnome-3-36/js/ui/lightbox.js

Кажется, что 3 подхода:

  • через Параметры (?)
  • через переопределение кода JS, используя «накладки Greesource»
  • через CSS, благодаря созданию пользовательских темы Gnome-Shell

через параметры, поставляемые на Lightbox Meadox ui

Знаю много об этом. Я не нашел ничего, кто имеет отношение к DConf-Editor , плюс два из трех интересных параметров, казалось, были укреплены для меня. Так что я пошел на код.

путем переопределения кода Lighbox ui uibox.js

Изменение поведения lighbox.js влияет не только на экраны обзора деятельности- и приложений, но и другие диалоги, такие как: запускают команду Требуется аутентификация , выключение и многое другое.

На Ubuntu 20.04 файл обычно упакован внутри /usr/lib/gnome-shell/libgnome-shell.so .

Чтобы переопределить его, необходимо извлечь их копию и попросить GNOME использовать эту копию.

Создайте эту структуру каталогов, а CD там в клемме:

~/.gnome-shell-custom-overlays/ui/
# You should be here:
~/.gnome-shell-custom-overlays/ui$

во время в этом каталоге сделайте следующее:

# Make a copy of the resource:
cp /usr/lib/gnome-shell/libgnome-shell.so .

# To see all of its contents:
gresource list libgnome-shell.so

# To obtain lightbox.js:
gresource extract libgnome-shell.so /org/gnome/shell/ui/lightbox.js > lightbox.js

# If the extraction was successful, our copy of the resource can
# (probably should?) be removed.
rm libgnome-shell.so

Отредактируйте файл lightbox.js; Измените три переменных вблизи верхнего, следующим образом:

// Old:
//var DEFAULT_FADE_FACTOR = 0.4;
//var VIGNETTE_BRIGHTNESS = 0.5;
//var VIGNETTE_SHARPNESS = 0.7;

// New:
var DEFAULT_FADE_FACTOR = 0.1;
var VIGNETTE_BRIGHTNESS = 0.8;
var VIGNETTE_SHARPNESS = 0.2;

Теперь нам нужно сказать Gnome о нашем модифицированном файле. Поместите следующую строку в ~ / .profile :

export G_RESOURCE_OVERLAYS="/org/gnome/shell=$HOME/.gnome-shell-custom-overlays"

Термин «накладки» здесь не относится к наложению лайтбокса; Скорее, это говорит о том, как работает этот интеллектуальный эффект ресурсов GNOME / GTK.

Важное примечание: Прежде чем я сделали все это, у меня уже был пакет Pibgtk-3-DEV , установленный в моей системе. Это для разработки / отладки, так же, как функция наложения ресурсов, кажется, так. Поэтому прямо сейчас я не могу определить, следует ли уважать G__Resource_Overlays Variable Enderication Variable, зависит от наличия этого пакета или нет ... На всякий случай будет готов установить его ...

В любом случае: Включитесь, выйдите из системы и войдите в систему.

Дальнейшее настраивание

, чтобы увидеть эффект дальнейших твиков в параметрах LightBox, перезагружая оболочку GNOME после каждого редактирования. Это может быть сделано путем выдачи команды R через диалоговое окно , диалоговое окно (выявлено ALT + F2).

Интересно: В моем опыте, когда кто-то сохраняет файл lightbox.js с ошибкой синтаксии внутри, диалоговое окно работает , кажется, появляется Отказ Но это может быть «там», просто не «видимым». В таком случае, продолжайте, как будто это было там: исправить синтаксис и сохранить файл, нажмите ALT + F2, затем R , затем введите.

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

Ссылки / литература:

через CSS (Custom Theme Gnome-Shell)

, если вам удалось Переопределить LightBox.js, тогда эта часть может предложить еще несколько корректировок для полировки опыта немного дальше.

Если вы не переопределили Lightbox.js, однако, эта часть может предложить дополнительный обходной путь с ограниченной полезностью для экранов обзора Activity и Apps.

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

Использование пользовательских тем GNOME Shell

Приложение Tweaks Gnome, а также гнома Расширение оболочки, «Темы пользователя» (часть Пакет GNOME-Shell-Shell-Extensions , доступных через APT Установить), необходимы для этого.

sudo apt install gnome-tweaks gnome-shell-extensions

Откройте приложение Tweaks и включите расширение «Темы пользователя» на вкладке «Удлинения».

Создание пользовательской темы оболочки GNOME

Эта часть не доказана как лучший метод; Просто я нашел таким образом.

Создайте следующую структуру каталога:

~/.themes/my-gnome-shell-theme/gnome-shell/

Копировать этот файл (Реализация темы Theme Theme Theme по умолчанию YARU):

/usr/share/gnome-shell/theme/Yaru/gnome-shell-theme.gresource

в этот вновь созданный каталог, поэтому вы заканчиваете это:

~/.themes/my-gnome-shell-theme/gnome-shell/gnome-shell-theme.gresource

Открытие этого каталога в терминале , Список Gresource Gnome-Shell-Theme.gresource показывает содержимое этого вновь скопированного файла.

A сделал скрипт может помочь извлечь все содержимое.

Содержание скрипта может быть что-то вроде этого, или лучше (я не эксперт с сценарием Bash) (я уже знаю, что люди больше не любят Back Ticks):

#!/bin/bash

currentdir=$(pwd);

# For regular themes:
# gresource_name="gtk.gresource"
# For shell themes:
gresource_name="gnome-shell-theme.gresource"

for resource in `gresource list ${currentdir}/${gresource_name}`;
do
    echo $resource
    filename=`basename ${resource}`
    gresource extract $currentdir/$gresource_name $resource > $currentdir/$filename
done

Примечание: Этот пользовательский скрипт не воспроизводит структуру каталогов, предписанную в файле. Грейсурси; Вместо этого он помещает файлы в каталог целевой (текущий) в плоской моде. Однако он печатает определение каждого ресурса, который он встречается, в комплекте с его первоначально предполагаемым / определенным путем. Несмотря на то, что в некоторых случаях, похоже, в некоторых случаях не всегда необходимо (например, при нарушенных иконках или фоне виджетов). Возможно, стоит рассмотреть возможность поставить файлы в структуру каталогов в соответствии с тем, что предлагает определения. Обратите внимание, что я оставил оригинальный файл. GreSource в каталоге.

Альтернативный скрипт экстрактора: Дополнительные такими сценариями можно найти, поиск строки «Do Greesource Extract» либо на этом сайте, либо в другом месте в Интернете.

Запустив скрипт экстрактора, а затем быстро защищать резервную копию исходного файла,

cp gnome-shell.css gnome-shell.css.bak

извлеченного файл Gnome-Shell.css готов к редактированию.

Инструмент разработчика Gnome-Shell

это называется стекло . Он может быть активирован, выдавая команду LG через диалоговое окно RUN COMMENT (выявлена ​​ALT + F2).

Tweaks CSS

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

CSS работает таким образом, что определения, сделанные в конце файла, могут переопределить определения, написанные ранее в том же файле. Вот почему не нужно разбросать редактирование по всему файлу; Просто добавление правильной вещи в самом конце, делает работу. Это то, что я добавил до gnome-shell.css :

/* Activity-Overview-related */

/* Covers up the dark lightbox overlay with a lighter semi-opaque tone.
   This may be needed only if lightbox.js is not overridden. */

/*
#overview {
    background-color: rgba(210,202,194,0.6);
}
*/

.search-section-content {
    /* This has text on it; for eligibility, keep it more opaque. */
    background-color: rgba(29, 29, 29, 0.5);
}
.workspace-thumbnails {
    /* Plain background area, may be pretty transparent. */
    background-color: rgba(29, 29, 29, 0.25);
}

/* A less harsh workspace-switcher popup. */

.workspace-switcher-container {
    background-color: rgba(100, 96, 92, 0.45);
    border-radius: 10px;
}
.ws-switcher-active-up,
.ws-switcher-active-down,
.ws-switcher-active-left,
.ws-switcher-active-right {
    background-color: rgba(215, 86, 41, 0.8);
    border: 1px solid #cc4414;
    border-radius: 5px;
    color: #ffffff; }

/* Misc. */

.switcher-list, .osd-window, .resize-popup {
    /* A bit softer Alt+Tab popup.
     * This has text on it; for eligibility, keep it more opaque. */
    background-color: rgba(100, 96, 92, 0.85);
}

Включение пользовательской темы

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

Создание модификаций CSS вступит в силу

Метод 1: выдача команды R через диалоговое окно RUN COMMENT (обнаружено ALT + F2), перезагружает оболочку; Он также должен забрать новые изменения CSS.

Метод 2: Переключение взад и вперед между темами по умолчанию и пользовательской оболочке, казалось, поедут более гладким и изящным по сравнению с методом 1. Тема-переключение может быть достигнута на UI Tweaks App, или через Gsettings На CLI следующим образом:

# For resetting to default, the argument can apparently be either
# an empty string: '' or: default.
gsettings set org.gnome.shell.extensions.user-theme name ''

# The custom theme's name is the name of its directory in ~/.themes/
gsettings set org.gnome.shell.extensions.user-theme name my-gnome-shell-theme

Восстановление от запутанного пользовательской темы

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

1
ответ дан 18 March 2021 в 23:47

Другие вопросы по тегам:

Похожие вопросы: