Некоторое время я пытался установить тему GTK для настольного пользовательского интерфейса Mendeley, но безуспешно. Причина, по которой я хочу это сделать, заключается в том, что я использую темную тему , и что Менделей не читается (темный шрифт на темном bg) с этой темой. Двумя соответствующими источниками информации, которые я использую, являются здесь и здесь .
Они оба в основном говорят, что вызов исполняемого файла подобным образом
$ GTK_THEME=MyFancyTheme my_stubborn_app
должен переопределить тему GTK по умолчанию для текущего пользователя, и что постоянные изменения темы могут быть интегрированы в .../share/my_stubborn_app.desktop
с помощью изменение строки EXEC
:
Exec=env GTK_THEME=MyFancyTheme /path/to/my_stubborn_app %u
Ни один из этих методов не работает в моем случае. Особые особенности настольного пользовательского интерфейса Mendeley в Ubuntu (Trusty Tahr 14.04, Mendeley UI v1.14 в моем случае):
bin
и share
и lib
папки, и он использует Qt. lib/mendeleydesktop/libexec/mendeleydesktop.x86_64
(для Ubuntu 64 бита), но не может быть вызван напрямую, потому что он требует переменных среды, определенных скриптом python bin/mendeleydesktop
. mendeleydesktop.desktop
(который позволяет иметь значок в панели запуска Unity) перезаписывается bin/install-mendeley-link-handler.sh
каждый раз, когда вызывается bin/mendeleydesktop
. mendeleydesktop.desktop
файл создан / перезаписан в $HOME/.local/share/applications
. Я до сих пор редактировал bin/install-mendeley-link-handler.sh
так, чтобы файл .desktop
, перезаписываемый при каждом вызове, включал измененную строку Exec=env GTK_THEME...
. Это не похоже на работу. Кто-нибудь может помочь?
Мне наконец удалось сделать его, хотя это чувствует себя немного неуклюжим. В следующем:
$MENDELEY_FOLDER
папка Mendeley, $CURRENT_GTK_THEME
название темы GTK, которую Вы в настоящее время используете$MENDELEY_GTK_THEME
название темы, которую требуется использовать с MendeleyПримечание: Для получения названия темы, которую Вы в настоящее время используете ввести gsettings get org.gnome.desktop.interface gtk-theme
в терминале. Хорошая тема для использования с Mendeley Ambiance
.
Мы по существу обманем Mendeley в размышление, что корневая папка тем GTK где-то в другом месте.
mkdir $MENDELEY_FOLDER/share/themes/
ln -s /usr/share/themes/$MENDELEY_GTK_THEME $MENDELEY_FOLDER/share/themes/$CURRENT_GTK_THEME
install-mendeley-link-handler.sh
Это должно быть расположено в $MENDELEY_FOLDER/bin/install-mendeley-link-handler.sh
. Необходимо отредактировать строки, которые перезаписывают файл mendeleydesktop.desktop
, в моем случае:
cat > $DESKTOP_PATH/mendeleydesktop.desktop <<EOF
[Desktop Entry]
Name=Mendeley Desktop
GenericName=Research Paper Manager
Comment=Mendeley Desktop is software for managing and sharing research papers
Exec=env GTK_DATA_PREFIX=$MENDELEY_FOLDER $MENDELEYDESKTOP_BIN %u
Icon=mendeleydesktop
Terminal=false
Type=Application
Categories=Education;Literature;Qt;
X-SuSE-translate=false;
MimeType=x-scheme-handler/mendeley;application/pdf;text/x-bibtex;
X-Mendeley-Version=1
EOF
Заметьте изменение в Exec=...
строка.
Везде, где Вы сохраняете свои локальные двоичные файлы (например, $HOME/local/bin
), создайте новый файл mendeley
со следующим:
GTK_DATA_PREFIX=$MENDELEY_FOLDER \
$MENDELEY_FOLDER/bin/mendeleydesktop
Затем сделайте это исполняемым файлом путем выполнения chmod +x mendeley
, и выполненный это для обновления mendeleydesktop.desktop
файл.
Последний шаг незначительно отличается в этом сценарий в масштабе всей системы (скорее всего, расположенный в /opt/mendeleydesktop
) на самом деле создает ссылку на mendeleydesktop
исполняемый файл в $HOME/.local/share
, и именно это предыдущий сценарий должен назвать вместо этого.
Файл для редактирования должен быть /usr/share/applications/mendeleydesktop.desktop
. В этом файле необходимо изменить Exec
строка как ранее, путем добавления префикса вызова определение GTK_DATA_PREFIX
. Это должно добиться цели :)
Я хотел бы добавить ответ, который работал хорошо на меня на kde плазме (manjaro Linux). Это не требует никаких прав администратора.
отказ от ответственности: только протестированный однажды в моей системе 04.12.2018 с Mendeley 1.19,
команды ниже и результаты могут меняться в зависимости от другого DE и/или ОС или другой версии Mendeley.
mkdir $HOME/.config.theme_override
.ln -s "$HOME/.config/Mendeley Ltd." "$HOME/.config.theme_override/Mendeley Ltd."
XDG_CONFIG_HOME="$HOME/.config.theme_override" mendeleydesktop
Затем mendeley будет искать плазменные настройки темы в $HOME/.config.theme_override
, это не найдет темы и отступит к читаемой яркой теме.
Теперь настольная запись:
$HOME/.local/share/applications/mendeleydesktop.desktop
быть похожими (**) ниже.desktop
файл:chmod -w $HOME/.local/share/applications/mendeleydesktop.desktop
Несколько примечаний/понимания для помощи будущим детективам:
$HOME/.config/Mendeley Ltd.
, изменение Вашей папки конфигурации не изменяется, где база данных Mendeley расположена ($HOME/.local/share/data/Mendeley Ltd.
).$HOME/.local/share/Mendeley Ltd.
и $HOME/.cache/Mendeley Ltd.
, изменение папки конфигурации не изменяется, где Mendeley ищет эти папки. Похоже, что эти папки могут быть удалены без риска, и Mendeley восстановит их автоматически. Если материал выше не работает на изменение темы, то, возможно, удаление этих папок может помочь, но я не уверен, продолжаю двигаться на Ваш собственный риск..desktop
файл, который является файлом, который составляет шоу mendeley в меню приложения и средствах запуска. Это, почему нам был нужен шаг (3). выше. Этот файл расположен в: $HOME/.local/share/applications/mendeleydesktop.desktop
, это выполнит файл $HOME/.local/share/mendeleydesktop
, который по умолчанию является symlinked к /opt/mendeleydesktop/bin/mendeleydesktop
. Не спрашивайте меня, почему разработчики Mendeley выбрали эту сложную установку.(** содержание $HOME/.local/share/applications/mendeleydesktop.desktop
)
[Desktop Entry]
Name=Mendeley Desktop
GenericName=Research Paper Manager
Comment=Mendeley Desktop is software for managing and sharing research papers
Exec=env XDG_CONFIG_HOME="$HOME/.config.theme_override" $HOME/.local/share/mendeleydesktop %f
Icon=mendeleydesktop
Terminal=false
Type=Application
Categories=Education;Literature;Qt;
X-SuSE-translate=false
MimeType=x-scheme-handler/mendeley;application/pdf;text/x-bibtex;
X-Mendeley-Version=1
Я сделал это немного по-другому. Мой стиль KDE Plasma был установлен как Breeze Dark с некоторыми пользовательскими настройками размера шрифта. Я хотел, чтобы mendeleydesktop использовал все эти настройки размера шрифта, но не настройки темного цвета.
Как было предложено в сообщениях выше, я создал пустую папку:
mkdir $HOME/.config.theme_override
Затем я запускаю
XDG_CONFIG_HOME="$HOME/.config.theme_override" mendeleydesktop
...чтобы посмотреть, какие папки он будет использовать по умолчанию в своей папке конфигурации. Оказалось, что в моем случае mendeleydesktop создал три новые папки в $HOME/.config.theme_override
:
libreoffice 'Mendeley Ltd.' pulse
Я удалил эти новые папки:
rmdir libreoffice
rmdir 'Mendeley Ltd.'
rmdir pulse
и заменил их симлинками на соответствующие старые папки в $HOME/.config
:
ln -s "$HOME/.config/Mendeley Ltd." "$HOME/.config.theme_override/Mendeley Ltd."
ln -s "$HOME/.config/libreoffice" "$HOME/.config.theme_override/libreoffice"
ln -s "$HOME/.config/pulse" "$HOME/.config.theme_override/pulse"
Затем я скопировал файл kdeglobals
из $HOME/.config
в $HOME/ .config.theme_override
:
cp $HOME/.config/kdeglobals $HOME/.config.theme_override/
Наконец, я удалил все разделы о цветах из $HOME/.config.theme_override/kdeglobals
:
[ColorEffects:Inactive]
ChangeSelectionColor=true
Color=112,111,110
ColorAmount=0.025
ColorEffect=2
ContrastAmount=0.1
ContrastEffect=2
Enable=false
IntensityAmount=0
IntensityEffect=0
[Colors:Button]
BackgroundAlternate=77,77,77
BackgroundNormal=49,54,59
DecorationFocus=61,174,233
DecorationHover=61,174,233
ForegroundActive=61,174,233
ForegroundInactive=189,195,199
ForegroundLink=41,128,185
ForegroundNegative=218,68,83
ForegroundNeutral=246,116,0
ForegroundNormal=239,240,241
ForegroundPositive=39,174,96
ForegroundVisited=127,140,141
[Colors:Complementary]
BackgroundAlternate=59,64,69
BackgroundNormal=49,54,59
DecorationFocus=30,146,255
DecorationHover=61,174,230
ForegroundActive=246,116,0
ForegroundInactive=175,176,179
ForegroundLink=61,174,230
ForegroundNegative=237,21,21
ForegroundNeutral=201,206,59
ForegroundNormal=239,240,241
ForegroundPositive=17,209,22
ForegroundVisited=61,174,230
[Colors:Selection]
BackgroundAlternate=29,153,243
BackgroundNormal=61,174,233
DecorationFocus=61,174,233
DecorationHover=61,174,233
ForegroundActive=252,252,252
ForegroundInactive=239,240,241
ForegroundLink=253,188,75
ForegroundNegative=218,68,83
ForegroundNeutral=246,116,0
ForegroundNormal=239,240,241
ForegroundPositive=39,174,96
ForegroundVisited=189,195,199
[Colors:Tooltip]
BackgroundAlternate=77,77,77
BackgroundNormal=49,54,59
DecorationFocus=61,174,233
DecorationHover=61,174,233
ForegroundActive=61,174,233
ForegroundInactive=189,195,199
ForegroundLink=41,128,185
ForegroundNegative=218,68,83
ForegroundNeutral=246,116,0
ForegroundNormal=239,240,241
ForegroundPositive=39,174,96
ForegroundVisited=127,140,141
[Colors:View]
BackgroundAlternate=49,54,59
BackgroundNormal=35,38,41
DecorationFocus=61,174,233
DecorationHover=61,174,233
ForegroundActive=61,174,233
ForegroundInactive=189,195,199
ForegroundLink=41,128,185
ForegroundNegative=218,68,83
ForegroundNeutral=246,116,0
ForegroundNormal=239,240,241
ForegroundPositive=39,174,96
ForegroundVisited=127,140,141
[Colors:Window]
BackgroundAlternate=77,77,77
BackgroundNormal=49,54,59
DecorationFocus=61,174,233
DecorationHover=61,174,233
ForegroundActive=61,174,233
ForegroundInactive=189,195,199
ForegroundLink=41,128,185
ForegroundNegative=218,68,83
ForegroundNeutral=246,116,0
ForegroundNormal=239,240,241
ForegroundPositive=39,174,96
ForegroundVisited=127,140,141
После удаления вышеуказанных разделов mendeleydesktop использует свои собственные цвета. и не цвета стиля KDE Plasma, но он использует все остальные настройки стиля из $HOME/.config.theme_override/kdeglobals
.
Небольшое обновление здесь: Решение для быстрого обновления для чтения в темном режиме в Ubuntu теперь использует Gnome Extension Inverted Color.
Затем вы можете переключать экран приложения между темным и светлым с помощью Super + I