web-dev-qa-db-ja.com

Force Mendeley Desktop GTKテーマ

しばらくの間、MendeleyデスクトップUIのGTKテーマを設定しようとしてきましたが、うまくいきませんでした。これを行う理由は、 暗いテーマ を使用しており、このテーマではMendeleyが読み取れない(暗いbgの暗いフォント)ためです。私が使用している関連情報の2つのソースは、 herehere です。

彼らは基本的に、そのような実行可能ファイルを呼び出すと言います

$ GTK_THEME=MyFancyTheme my_stubborn_app

現在のユーザーのデフォルトのGTKテーマをオーバーライドする必要があり、EXEC行を変更することにより、その永続的なテーマの変更を.../share/my_stubborn_app.desktopに統合できます。

Exec=env GTK_THEME=MyFancyTheme /path/to/my_stubborn_app %u

私の場合、これらの方法はいずれも機能しません。 UbuntuのMendeleyデスクトップUIの特別な点(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...行が含まれるようにすることでした。それはうまくいかないようです。誰でも助けることができますか?

3
Sheljohn

やや不格好に感じますが、やっとそれを成し遂げました。以下では:

  • $MENDELEY_FOLDERはMendeleyフォルダーです。
  • $CURRENT_GTK_THEMEは、現在使用しているGTKテーマの名前です
  • $MENDELEY_GTK_THEMEは、Mendeleyで使用するテーマの名前です

注:現在使用しているテーマの名前を取得するには、ターミナルでgsettings get org.gnome.desktop.interface gtk-themeと入力します。 Mendeleyで使用する良いテーマはAmbianceです。

新しいテーマディレクトリを作成する

本質的に、メンデリーをだまして、ルート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=...行の変更に注意してください。

新しいmendeley実行可能ファイルを作成する

ローカルバイナリ($HOME/local/binなど)を保持している場合は、次を使用して新しいファイルmendeleyを作成します。

GTK_DATA_PREFIX=$MENDELEY_FOLDER \
    $MENDELEY_FOLDER/bin/mendeleydesktop

次に、chmod +x mendeleyを実行して実行可能にし、mendeleydesktop.desktopファイルを更新するために実行します。

Mendeleyをシステム全体にインストールした場合

最後の手順は、システム全体のスクリプト(/opt/mendeleydesktopにある可能性が高い)が$HOME/.local/shareにあるmendeleydesktop実行可能ファイルへのリンクを実際に作成するという点で、わずかに異なります。代わりに、以前のスクリプトを呼び出す必要があります。

これらの変更をUnityアイコンに適用する

編集するファイルは/usr/share/applications/mendeleydesktop.desktopである必要があります。このファイルでは、GTK_DATA_PREFIXの定義を呼び出しの前に付けることにより、以前と同様にExec行を変更する必要があります。これはトリックを行う必要があります:)

3
Sheljohn

Kde plasma(manjaro linux)でうまく機能した答えを追加したいと思います。 notは管理者権限を必要としません。

免責事項: 2018-12-04のシステムでMendeley 1.19を使用して1回だけテストしました。
以下のコマンドと結果は、DEやOS、メンデリーのバージョンによって異なる場合があります。

  1. 空のフォルダーを作成します。
    mkdir $HOME/.config.theme_override
  2. mendeleyの設定を新しいフォルダーにシンボリックリンクします。
    ln -s "$HOME/.config/Mendeley Ltd." "$HOME/.config.theme_override/Mendeley Ltd."
  3. 以下を使用して、コマンドラインからmendeleydesktopを起動します。
    XDG_CONFIG_HOME="$HOME/.config.theme_override" mendeleydesktop

その後、mendeleyは$HOME/.config.theme_overrideでプラズマテーマ設定を検索しますが、テーマは検出されず、読みやすい明るいテーマにフォールバックします。

次にデスクトップエントリ:

  1. mendeleyがclosedであることを確認してください
  2. ファイル$HOME/.local/share/applications/mendeleydesktop.desktopを以下の(**)のように編集します
  3. .desktopファイルから書き込み許可を削除します。
    chmod -w $HOME/.local/share/applications/mendeleydesktop.desktop
  4. アプリランチャーからmendeleydesktopを起動し、明確で読みやすいインターフェイスを見ます。

将来の探偵を助けるいくつかのメモ/洞察:

  • デフォルトのMendeley構成フォルダーは$HOME/.config/Mendeley Ltd.です。構成フォルダーを変更しても、Mendeleyデータベースの場所($HOME/.local/share/data/Mendeley Ltd.)は変わりません。
  • Mendeleyは、いくつかのデータを$HOME/.local/share/Mendeley Ltd.および$HOME/.cache/Mendeley Ltd.にも保存します。configフォルダーを変更しても、Mendeleyがこれらのフォルダーを探す場所は変わりません。これらのフォルダはリスクなしで削除でき、Mendeleyは自動的に復元するようです。上記のものがテーマを変更するために機能しない場合、これらのフォルダを削除することが役立つかもしれませんが、私は自信がありません、あなた自身の責任で進めてください。
  • Mendeleyが起動されるたびに、.desktopファイルをオーバーライドするスクリプトが実行されます。このファイルは、mendeleyをアプリケーションメニューおよびランチャーに表示するファイルです。これが上記の手順(3.)が必要な理由です。このファイルは次の場所にあります:$HOME/.local/share/applications/mendeleydesktop.desktop、ファイル$HOME/.local/share/mendeleydesktopを実行します。デフォルトでは、/opt/mendeleydesktop/bin/mendeleydesktopにシンボリックリンクされています。メンデリーの開発者がこの複雑なセットアップを選んだ理由を聞かないでください。

(** $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
1
Sam De Meyer