web-dev-qa-db-ja.com

[場所]メニューのカスタムアイコン

私はUbuntuにはかなり慣れていませんが、基本は知っています。

「[場所]メニューのフォルダアイコンを変更するにはどうすればよいですか?」 を読みましたが、助けにはなりませんでした。今)。

だから私は何をすべきですか?

私はフォルダ画像をSVGとして持っています:

  • /usr/share/icons/hicolor/scalable/apps/
  • /usr/share/icons/hicolor/scalable/places/

使用したい画像:

enter image description here

そして私がそれを望む場所:

enter image description here

7
Gurnarok

場所メニューに表示されるブックマークアイコンは変更できません: https://bugs.launchpad.net/ubuntu/+source/nautilus/+bug/42389

ただし、ビデオや写真などのユーザーフォルダーには別のアイコンが表示されていることがわかります。これは、場所メニューではstandard :: icon:属性のみが表示され、アイコンのカスタマイズではmetadata :: custom-icon:属性のみが変更されるためです。 standard :: icon:属性を変更する方法はありません。 「通常の」フォルダーにあるこの属性は常に同じです。

私が使用した回避策は、アイコンを変更する必要があるフォルダーのディレクトリにユーザーフォルダー(使用しない)のディレクトリを変更し、その後、そのユーザーフォルダーのアイコンファイルを置き換えることです。

ステップ1)

ユーザーフォルダのディレクトリを変更するには、〜/ .config/user-dirs.dirsファイルを編集します。ターミナルウィンドウで次の行を入力して開くことができます。

gedit .config/user-dirs.dirs

または、ホームフォルダーに移動してCtrl + Hを押し、フォルダー.configを検索し、そこからuser-dirs.dirsファイルを開きます。

そのファイルの出力は次のようになります。

# This file is written by xdg-user-dirs-update
# If you want to change or add directories, just edit the line you're
# interested in. All local changes will be retained on the next run
# Format is XDG_xxx_DIR="$HOME/yyy", where yyy is a Shell-escaped
# homedir-relative path, or XDG_xxx_DIR="/yyy", where /yyy is an
# absolute path. No other format is supported.
# 
XDG_PUBLICSHARE_DIR="$HOME/Public"
XDG_DOWNLOAD_DIR="$HOME/Downloads"
XDG_MUSIC_DIR="$HOME/Music"
XDG_VIDEOS_DIR="$HOME/Videos"
XDG_DESKTOP_DIR="$HOME/Desktop"
XDG_DOCUMENTS_DIR="$HOME/Documents"
XDG_TEMPLATES_DIR="$HOME/Templates"
XDG_PICTURES_DIR="$HOME/Pictures"

注:このファイルの編集を開始する前に、user-dirs.dirs.bakのような名前で保存してバックアップを作成してください。

このファイルでは、ユーザーフォルダーのディレクトリを変更できます。たとえば、パブリックフォルダーのディレクトリをDropboxフォルダーのディレクトリに変更する場合は、次の行を変更します。

XDG_PUBLICSHARE_DIR="$HOME/Public"

に:

XDG_PUBLICSHARE_DIR="$HOME/Dropbox"

(Dropboxフォルダーがホームディレクトリにあると仮定)

これを実行すると、Dropboxフォルダー(Ambianceテーマを使用している場合)は次のようになります。

Icon Dropbox/Public

そして、nautilusのサイドバーにドラッグしてブックマークした後、次のように場所メニューに表示されます。

enter image description here

そうでない場合は、Ctrl + RまたはF5を押してウィンドウを更新してみてください。その時点でまだ動作しない場合は、users-dirs.dirsファイルに間違いがないか確認してください。

ステップ2)

これは非常に素晴らしいアイコンですが、あなたが使いたかったものではありません。ユーザーフォルダのアイコンを自分のものに置き換える必要があります。ユーザーフォルダーパブリックのアイコンは「folder-publicshare.svg」という名前で、次の場所にあります。

/usr/share/icons/Humanity/places/16/
/usr/share/icons/Humanity/places/22/
/usr/share/icons/Humanity/places/24/
/usr/share/icons/Humanity/places/32/
/usr/share/icons/Humanity/places/48/
/usr/share/icons/Humanity/places/64/

退屈だったので、これを簡単にするためにbashスクリプトを作成しました

#!/bin/bash
i=0
for d in `ls -d $2*/`
do cp $1 $d$3
echo copying $1 to $d$3
let i++
done
echo "The file $3 was copied to a total of $i locations"

これをgeditなどのテキストエディターでコピーし、copy.shまたはその他の名前を付けてホームフォルダーに保存できます。保存したら、ターミナルウィンドウを開いて次のように入力する必要があります。

Sudo chmod +x ./copy.sh

これにより、作成したばかりのファイルが実行可能になり、アイコンタイプが置き換えられます。

Sudo ./copy.sh /dir/to/icon.png /usr/share/icons/Humanity/places/ folder-publicshare.svg

最初のパラメーター/dir/to/icon.pngをアイコンの場所に置き換え、2番目のパラメーターはアイコンが保存されているフォルダーの親ディレクトリ、3番目のパラメーターは置き換える必要のあるアイコンの名前(スクリプトが別の目的で使用される場合、このパラメーターはオプションです。

このスクリプトを使用すると、必要のない128フォルダーにもコピーが作成されますが、そこに害はありませんが、削除したい場合は、ターミナルウィンドウで次の行を入力してこれを行うことができます。

Sudo rm /usr/share/icons/Humanity/places/128/folder-publicshare.svg

ログアウトして再度ログインすると、これが結果になります(オランダ語):

enter image description here

ご覧のとおり、私のメニューにはSchoolという名前の別のカスタムアイコン(学校のロゴがあります)があり、これはユーザーフォルダーテンプレートを置き換えました(誰もそのフォルダーを実際に使用していないと思われます)。ユーザーフォルダーテンプレートのアイコンにはfolder-templates.svgという名前が付けられ、ユーザーフォルダーパブリックのアイコンと同じ場所にあります。これらのアイコンを置き換える間、私は上記で投稿したbashスクリプトを使用しませんでしたが、解像度が異なる6つの異なるアイコンを作成したため、手動でコピーしました。

このアプローチの欠点は、合計で7つのアイコンしかカスタマイズできず、標準のユーザーフォルダーを渡す必要があることです。

注:何をしているのかわからない限り、デスクトップのディレクトリを変更しないでください。

これがあなたの質問に答えたことを願っています。多くの作業のように見えるかもしれませんが、すぐに完了します。

11
Jeffry