自作ライブラリ mlk について

日本語
  • mlk を使用した GUI ソフトウェアに、--help-mlk オプションを付けて実行すると、mlk 共通のオプションを表示できます。
  • アプリ実行時に、$ MLK_APPDATADIR=<DIR> <EXE> というような形で、環境変数 MLK_APPDATADIR を指定すると、データファイルのディレクトリ (通常は "../share/<APPNAME>") を、任意の位置に指定することができます。
  • mlk で使用されるフォント・アイコンテーマなどは、基本的にデフォルトのものが使われますが、正しく表示できない・変更したいという場合は、az-mlk-style.conf の設定ファイルで指定できます。
    設定ファイルは、ご自身で作成する必要があるため、指定ディレクトリにファイルを作成して直接記述するか、『mlk style editor』で編集して保存してください。
az-mlk-style.conf
az-mlk-style.conf が指定の場所に存在すると、アプリ起動時に GUI スタイルが読み込まれます。

az-mlk-style.conf は、以下のいずれかの場所に作成してください。

  • ~/.config/az-mlk-style.conf
    共通のスタイル設定は、このファイルで指定します。
  • ~/.config/<APPNAME>/az-mlk-style.conf
    アプリごとに設定を変えたい場合は、各アプリの設定ファイルが保存されるディレクトリのトップに、ファイルを置きます。
    このファイルは、~/.config/az-mlk-style.conf よりも優先して読み込まれます。

az-mlk-style.conf の中身
直接記述する場合は、以下のような形で記述してください。

[style]
font=<フォントの指定>
icon_theme=<アイコンテーマ名>

[color]
...色指定...
アイコンテーマの指定方法
※アプリでアイコンが表示されない場合、明示的にアイコンテーマを指定する必要があります。

az-mlk-style.conf で、icon_theme=<テーマ名> を指定してください。

テーマは、以下のいずれかのディレクトリにインストールされているので、各テーマのトップのディレクトリ名を指定します。

/usr/share/icons
/usr/local/share/icons
~/.icons
~/.local/share/icons

/usr/share/icons/Faenza のテーマを使う場合は、ディレクトリ名 "Faenza" がテーマ名となるので、icon_theme=Faenza と指定してください。

アイコンテーマの指定がない場合は、上記のディレクトリに存在するテーマのうち、最初に見つかったアイコンテーマが使用されます。

アイコンテーマがインストールされていない場合は、ディストリビューションの既存パッケージからインストールするか、上記のディレクトリに手動でインストールしてください。
FreeBSD/macOS の場合は、基本的に /usr/local/share/icons にインストールします。
フォントの指定方法
GUI のフォントを直接指定したい場合は、以下のように記述してください。

[style]
font=family=IPAゴシック;style=Regular;size=10;

"font=" の後が、フォントを指定する値となります。
NAME=value という形式で複数の値を記述し、それぞれ ';' で区切ります。

  • 文字としての半角スペースは、そのまま記述できます。
    " " などで囲む必要はありません。
    もし囲むと、" 自体が文字列の一部として扱われます。
  • 文字としての ';' が含まれる場合は、'\;' と記述してください。
  • 区切りの ';' の前後に余分な空白などは記述しないでください。
  • フォントのファミリ名やスタイル名は、$ fc-list (fontconfig のツール) で、一覧を表示できます。
設定できる値
family=[name]フォントのファミリ名。半角スペースはそのまま記述してください。
style=[style]フォントのスタイル名。省略した場合、通常の太さで検索されます。
size=[size]フォントのサイズ。
正の値で pt 単位、負の値で px 単位。
file=[filename]フォントファイルを直接指定する場合のファイルパス
index=[n]file でフォントファイルを指定して、それが ttc/otc である場合、使用するフォントのインデックス番号。
デフォルトで 0。
dpi=[n]フォントサイズが pt 単位の場合の DPI 値
以下、family でフォントを指定した場合、デフォルト値は fontconfig で設定された値です
embeddedbitmap=[0 or 1]0 = 埋め込みビットマップを使用しない (常にアウトラインデータを使う)。
0 以外 = 使用する。
hinting=[n]ヒンティングのタイプ。
0=none, 1=slight, 2=medium, 3=full
rendering=[n]描画タイプ。
0=mono, 1=grayscale, 2=LCD(RGB), 3=LCD(BGR), 4=LCD(RGB-V), 5=LCD(BGR-V)
lcdfilter=[n]LCD 描画時、LCD フィルターのタイプ。
1 がデフォルト。
0=none, 1=default, 2=light
autohint=[0 or 1]0 で、FreeType による自動ヒンティングを使用しない
English
  • You can view common options for mlk by running the GUI software with mlk with the --help-mlk option.
  • If you set the environment variable MLK_APPDATADIR in the form of
    $ MLK_APPDATADIR = <DIR> <EXE> when running the app, the data file directory (usually "../share/<APPNAME>") can be specified in any position.
  • The default fonts and icon themes used in mlk are basically used, but if you cannot display them correctly or want to change them, you can specify them in the az-mlk-style.conf configuration file.
    The configuration file must be created by yourself, so either create a file in the specified directory and write it directly, or edit it with "mlk style editor" and save it.
az-mlk-style.conf
If az-mlk-style.conf exists in the specified location, the GUI style will be loaded when the application starts.

az-mlk-style.conf should be created in one of the following locations.

  • ~/.config/az-mlk-style.conf
    Common style settings are specified in this file.
  • ~/.config/<APPNAME>/az-mlk-style.conf
    If you want to change the settings for each app, place the file at the top of the directory where the settings file for each app is saved.
    This file is read in preference to ~/.config/az-mlk-style.conf.

Contents of az-mlk-style.conf
When writing directly, write in the following form.

[style]
font=<font value>
icon_theme=<icon theme name>

[color]
...colors...
How to specify the icon theme
Please specify with icon_theme=<theme name>.

Themes are installed in one of the following directories, so specify the top directory name for each theme.

/usr/share/icons
/usr/local/share/icons
~/.icons
~/.local/share/icons

If you want to use the theme of /usr/share/icons/Faenza, specify icon_theme=Faenza.

If no icon theme is specified, the icon theme will be loaded from the GTK+3 configuration file.
If GTK+3 is not set, the first icon theme found in the above directory will be used.
How to specify the font
If you want to specify the GUI font directly, write as follows.

[style]
font=family=DejaVu Sans;style=Book;size=10;

After "font=" is the value that specifies the font.
Describe multiple values in the format NAME=value, each separated by ';'.

  • Half-width spaces as characters can be described as they are.
    It is not necessary to enclose it with " ".
    If enclosed, " itself is treated as part of the string.
  • If it contains a ';' as a character, write it as '\;'.
  • Do not write extra spaces before or after the delimiter ';'.
  • You can see the list of font family names and style names with $ fc-list (fontconfig tool).
Possible values
family=[name]The family name of the font.
Please describe the half-width space as it is.
style=[style]Font style name.
If omitted, the search will be performed with the normal weight.
size=[size]Font size.
Positive values in pt units, negative values in px units.
file=[filename]File path when directly specifying the font file
index=[n]If you specify a font file with 'file' and it is ttc/otc, the index number of the font to use.
0 by default.
dpi=[n]DPI value when font size is in pt
Below, when the font is specified in family, the default value is the value set in fontconfig
embeddedbitmap=[0 or 1]0 = Do not use embedded bitmaps (always use outline data).
0 以外 = use.
hinting=[n]Hinting type.
0=none, 1=slight, 2=medium, 3=full
rendering=[n]Drawing type.
0=mono, 1=grayscale, 2=LCD(RGB), 3=LCD(BGR), 4=LCD(RGB-V), 5=LCD(BGR-V)
lcdfilter=[n]LCD filter type when drawing LCD.
1 is the default.
0=none, 1=default, 2=light
autohint=[0 or 1]0, do not use automatic hinting with FreeType