「デスクトップエントリ」の版間の差分
細 (→参照) |
|||
17行目: | 17行目: | ||
=== サンプルファイル === |
=== サンプルファイル === |
||
− | + | 以下はデスクトップエントリの構成のサンプルです。このサンプルは雰囲気を伝えるだけのものであり、利用可能なエントリキー全ての使い方を示してはいません。完全なキーのリストは [http://standards.freedesktop.org/desktop-entry-spec/latest/ar01s05.html freedesktop.org specification] を見てください。 |
|
[Desktop Entry] |
[Desktop Entry] |
||
− | Type=Application # |
+ | Type=Application # 上述のタイプを指定します |
− | Version=1.0 # |
+ | Version=1.0 # ファイルが準拠しているデスクトップエントリ仕様のバージョン |
− | Name=jMemorize # |
+ | Name=jMemorize # アプリケーションの名前 |
− | Comment=Flash card based learning tool # |
+ | Comment=Flash card based learning tool # コメントはツールチップとして使われます |
− | Exec=jmemorize # |
+ | Exec=jmemorize # アプリケーションの実行可能ファイル |
− | Icon=jmemorize # |
+ | Icon=jmemorize # エントリを表示するときに使われるアイコンの名前 |
− | Terminal=false # |
+ | Terminal=false # アプリケーションをターミナルで実行する必要があるかどうかを記述 |
− | Categories=Education;Languages;Java; # |
+ | Categories=Education;Languages;Java; # エントリを表示するカテゴリを記述 |
=== キーの定義 === |
=== キーの定義 === |
||
51行目: | 51行目: | ||
==== 非推奨 ==== |
==== 非推奨 ==== |
||
+ | 標準が確立されるに従って非推奨となったキーもいくつか存在しています。{{Pkg|desktop-file-utils}} パッケージに含まれている {{Ic|desktop-file-validate}} を使うのが確認するのに一番最適かつシンプルな方法です。確証するには、次を実行: |
||
− | There are quite some keys that have become deprecated over time as the standard has matured. The best/simplest way is to use the tool {{Ic|desktop-file-validate}} which is part of the package {{Pkg|desktop-file-utils}}. To validate, run |
||
$ desktop-file-validate <your desktop file> |
$ desktop-file-validate <your desktop file> |
||
+ | 上記のコマンドで詳細かつ有用な警告・エラーメッセージが表示されます。 |
||
− | This will give you very verbose and useful warnings and error messages. |
||
== アイコン == |
== アイコン == |
||
109行目: | 109行目: | ||
=== アイコンの変換 === |
=== アイコンの変換 === |
||
+ | (''gif'' や ''ico'' など) freedesktop.org の仕様でサポートされていないフォーマットのアイコンしか見つからなかった場合、以下のようにしてサポート/推奨されているフォーマットに '''convert''' できます (convert は {{Pkg|imagemagick}} パッケージに含まれています): |
||
− | If you stumble across an icon which is in a format that is not supported by the freedesktop.org standard (like ''gif'' or ''ico''), you can '''convert''' (which is part of the '''imagemagick''' package) it to a supported/recommended format, e.g.: |
||
$ convert <icon name>.gif <icon name>.png |
$ convert <icon name>.gif <icon name>.png |
||
If you convert from a container format like ''ico'', you will get all images that were encapsulated in the ''ico'' file in the form ''<icon name>-<number>.png''. |
If you convert from a container format like ''ico'', you will get all images that were encapsulated in the ''ico'' file in the form ''<icon name>-<number>.png''. |
||
163行目: | 163行目: | ||
* Use {{Ic|1=--exec='/opt/some_app/elf --with-ponies'}} for setting the exec field. |
* Use {{Ic|1=--exec='/opt/some_app/elf --with-ponies'}} for setting the exec field. |
||
− | * |
+ | * 詳しくは [https://github.com/xyproto/gendesk gendesk project] を参照。 |
== 参照 == |
== 参照 == |
2015年2月22日 (日) 21:50時点における版
デスクトップエントリは X Window System で動作するプログラムの挙動を指定する freedesktop.org の仕様です。デスクトップエントリは設定ファイルとしてアプリケーションの起動方法やメニューとアイコンの表示方法を定義します。最も一般的なデスクトップエントリは .desktop
と .directory
ファイルです。この記事では有用な標準仕様のデスクトップエントリを作成する方法を簡単に説明します。主にパッケージ作成者やメンテナを対象にしていますが、ソフトウェアの開発者なども読む価値があると思われます。
デスクトップエントリには大きくわけて3つのタイプがあります:
- アプリケーション
- アプリケーションのショートカット
- リンク
- ウェブリンクのショートカット。
- ディレクトリ
- メニューエントリのメタデータのコンテナ。
以下のセクションではこれらのエントリを作成したり修正する方法をざっと説明しています。
目次
アプリケーションエントリ
アプリケーションのデスクトップエントリ、または .desktop
ファイルは、基本的にメタ情報の集合でありアプリケーションのショートカットです。これらのファイルは基本的に、システム全体でインストールしたアプリケーションなら /usr/share/applications
または /usr/local/share/applications
に、ユーザー個別にインストールしたアプリケーションなら ~/.local/share/applications
に入っています。ユーザーのエントリはシステムのエントリよりも優先されます。
サンプルファイル
以下はデスクトップエントリの構成のサンプルです。このサンプルは雰囲気を伝えるだけのものであり、利用可能なエントリキー全ての使い方を示してはいません。完全なキーのリストは freedesktop.org specification を見てください。
[Desktop Entry] Type=Application # 上述のタイプを指定します Version=1.0 # ファイルが準拠しているデスクトップエントリ仕様のバージョン Name=jMemorize # アプリケーションの名前 Comment=Flash card based learning tool # コメントはツールチップとして使われます Exec=jmemorize # アプリケーションの実行可能ファイル Icon=jmemorize # エントリを表示するときに使われるアイコンの名前 Terminal=false # アプリケーションをターミナルで実行する必要があるかどうかを記述 Categories=Education;Languages;Java; # エントリを表示するカテゴリを記述
キーの定義
All Desktop recognized desktop entries can be found on the freedesktop.org site.
For example, the Type
key defines three types of desktop entries: Application (type 1), Link (type 2) and Directory (type 3).
Version
key does not stand for the version of the application, but for the version of the desktop entry specification to which this file complies.
Name
,GenericName
andComment
often contain redundant values in the form of combinations of them, like:
Name=Pidgin Internet Messenger GenericName=Internet Messenger
or
Name=NoteCase notes manager Comment=Notes Manager
This should be avoided, as it will only be confusing to users. The Name
key should only contain the name, or maybe an abbreviation/acronym if available.
GenericName
should state what you would generally call an application that does what this specific application offers (i.e. Firefox is a "Web Browser").Comment
is intended to contain any usefull additional information.
非推奨
標準が確立されるに従って非推奨となったキーもいくつか存在しています。desktop-file-utils パッケージに含まれている desktop-file-validate
を使うのが確認するのに一番最適かつシンプルな方法です。確証するには、次を実行:
$ desktop-file-validate <your desktop file>
上記のコマンドで詳細かつ有用な警告・エラーメッセージが表示されます。
アイコン
一般的な画像フォーマット
以下はアイコンとしてよく使われている画像フォーマットの簡単な概要です。
拡張子 | フルネームまたは説明 | グラフィック形式 | コンテナフォーマット | サポート |
---|---|---|---|---|
.png | Portable Network Graphics | ラスタ | no | yes |
.svg(z) | Scalable Vector Graphics | ベクタ | no | yes (optional) |
.xpm | X PixMap | ラスタ | no | yes (deprecated) |
.gif | Graphics Interchange Format | ラスタ | no | no |
.ico | MS Windows Icon Format | ラスタ | yes | no |
.icns | Apple Icon Image | ラスタ | yes | no |
アイコンの変換
(gif や ico など) freedesktop.org の仕様でサポートされていないフォーマットのアイコンしか見つからなかった場合、以下のようにしてサポート/推奨されているフォーマットに convert できます (convert は imagemagick パッケージに含まれています):
$ convert <icon name>.gif <icon name>.png
If you convert from a container format like ico, you will get all images that were encapsulated in the ico file in the form <icon name>-<number>.png. If you want to know the size of the image, or the number of images in a container file like ico you can use identify (also part of the imagemagick package)
$ identify /usr/share/vlc/vlc48x48.ico /usr/share/vlc/vlc48x48.ico[0] ICO 32x32 32x32+0+0 8-bit DirectClass 84.3kb /usr/share/vlc/vlc48x48.ico[1] ICO 16x16 16x16+0+0 8-bit DirectClass 84.3kb /usr/share/vlc/vlc48x48.ico[2] ICO 128x128 128x128+0+0 8-bit DirectClass 84.3kb /usr/share/vlc/vlc48x48.ico[3] ICO 48x48 48x48+0+0 8-bit DirectClass 84.3kb /usr/share/vlc/vlc48x48.ico[4] ICO 32x32 32x32+0+0 8-bit DirectClass 84.3kb /usr/share/vlc/vlc48x48.ico[5] ICO 16x16 16x16+0+0 8-bit DirectClass 84.3kb
As you can see, the example ico file, although its name might suggest a single image of size 48x48, contains no less than 6 different sizes, of which one is even greater than 48x48, namely 128x128. And to give a bit of motivation on this subject, at the point of writing this section (2008-10-27), the 128x128 size was missing in the vlc package (0.9.4-2). So the next step would be to look at the vlc PKGBUILD and check whether this icon format was not in the source package to begin with (in that case we would inform the vlc developers), or whether this icon was somehow omitted from the Arch-specific package (in that case we can file a bug report at the Arch Linux bug tracker). (Update: this bug has now been fixed, so as you can see, your work will not be in vain.)
アイコンの取得
Although packages that already ship with a .desktop-file most certainly contain an icon or a set of icons, there is sometimes the case when a developer has not created a .desktop-file, but may ship icons, nonetheless. So a good start is to look for icons in the source package. You can i.e. first filter for the extension with find and then use grep to filter further for certain buzzwords like the package name, "icon", "logo", etc, if there are quite a lot of images in the source package.
$ find /path/to/source/package -regex ".*\.\(svg\|png\|xpm\|gif\|ico\)$"
If the developers of an application do not include icons in their source packages, the next step would be to search on their web sites. Some projects, like i.e. tvbrowser have an artwork/logo page where additional icons may be found. If a project is multi-platform, there may be the case that even if the linux/unix package does not come with an icon, the Windows package might provide one. If the project uses a Version control system like CVS/SVN/etc. and you have some experience with it, you also might consider browsing it for icons. If everything fails, the project might simple have no icon/logo yet.
ツール
gendesk
gendesk started as an Arch Linux-specific tool for generating .desktop files by fetching the needed information directly from PKGBUILD files. Now it is a general tool that takes command-line arguments.
Icons can be automatically downloaded from openiconlibrary, if available. (The source for icons can easily be changed in the future).
使用方法
- Add
gendesk
to makedepends
- Start the
prepare()
function with:
gendesk --pkgname "$pkgname" --pkgdesc "$pkgdesc"
- Alternatively, if an icon is already provided ($pkgname.png, for instance). The
-n
flag is for not downloading an icon or using the default icon. Example:
gendesk -n --pkgname "$pkgname" --pkgdesc "$pkgdesc"
$srcdir/$pkgname.desktop
will be created and can be installed in thepackage()
function with:
install -Dm644 "$pkgname.desktop" "$pkgdir/usr/share/applications/$pkgname.desktop"
- The icon can be installed with:
install -Dm644 "$pkgname.png" "$pkgdir/usr/share/pixmaps/$pkgname.png"
- Use
--name='Program Name'
for choosing a name for the menu entry.
- Use
--exec='/opt/some_app/elf --with-ponies'
for setting the exec field.
- 詳しくは gendesk project を参照。