2015/12/29

GTK+ で Label の背景色を変更する

Windowless Widget は背景色を変更することができない

Label, Button, Paned, Frame などの Windowless Widget は背景色を変更することが出来ないそうです。
そのため、以下のようなコードを書いても背景はデフォルトのままです。

// 以下は Gtkmm のコードですが、GTK+ でも同様に書くと動作しません
Gtk::Label* label = Gtk::manage(new Gtk::Label());
label->modify_bg(Gtk::STATE_NORMAL, bg_color);
label->set_label(message);
widget->add(*label);

背景色は EventBox で変える

ではどうするのかと言うと、以下のように EventBoxLabel 等を入れ子にして、 EventBox の背景色を変えるという方法を使うようです。

Gtk::Label* label = Gtk::manage(new Gtk::Label());
label->set_label(message);
Gtk::EventBox* ebox = Gtk::manage(new Gtk::EventBox());
ebox->modify_bg(Gtk::STATE_NORMAL, bg_color);
ebox->add(*label);
widget->add(*ebox);

参考
以下に情報がありますPython インターフェースですが
PyGTK FAQ Entry

2015/12/25

zsh でインストールされていないコマンドを叩いた場合、パッケージ名を推測して教えてくれるようにする

@Ubuntu 14.04 LTS

zsh では bash のような機能が働かない

Ubuntu の bash では、インストールされていないコマンドを叩いた場合、以下のように類推したパッケージ名を教えてくれて便利です。
$ vld
No command 'vld' found, did you mean:
 Command 'gld' from package 'postfix-gld' (universe)
 Command 'vlc' from package 'vlc-nox' (universe)
 Command 'bld' from package 'bld' (universe)
 Command 'fld' from package 'kon2' (universe)
 Command 'vl' from package 'atfs' (universe)
 Command 'ld' from package 'binutils' (main)
vld: command not found

ところが、zsh だとエラーメッセージだけ。
% vld
zsh: command not found: vld

zsh でも出来るようにする

これを bash 風に変えるには以下を設定ファイルに追加します。

~/.zshrc (or /etc/zshrc)
if [[ -f /etc/zsh_command_not_found ]] then
  source /etc/zsh_command_not_found
fi

command-not-found がインストールされていない場合

/etc/zsh_command_not_found が存在しない場合は、インストールしましょう。

% sudo apt-get install command-not-found