モブ沢工房

プログラミングとかLinux関連(特にOSSのグラフィックツール関連)とかレトロゲームとか3Dプリンタやら日曜大工等、色々。

gimpの前景色と背景色が勝手に変わる現象について(小手先編)

お絵かきブログにかまけていた結果、5〜6月は全く更新していなかったのか…(愕然

いやまぁ別にどうということもないのですが…

ところでgimpの前景色と背景色が勝手に変わる現象に悩まされています。 どうも設定ファイルが勝手に書き換わっている模様。

というのも、勝手に変わるので頭にきて~/.gimp-2.8/にある設定ファイルを片っ端からfind/grepして手動で書き直したら直ったのですよ。 しかし、しばらくしたらまた前景色が赤、背景色が紺というか暗い青紫というか…そういう色に勝手に変わっているのです。

ソースを当たるのがベストなのでしょうけど面倒なのでスクリプトを組みました!

from gimpfu import *

BLACK_COLOR=(0.0,0.0,0.0,1.0) 
WHITE_COLOR=(1.0,1.0,1.0,1.0) 

def is_equal_color(col,coltpl):
    return col.r==coltpl[0] and col.g==coltpl[1] and col.b==coltpl[2] 

def python_fu_color_init(a_img,a_drawable):

    fg=pdb.gimp_context_get_foreground()
    bg=pdb.gimp_context_get_background()

    if is_equal_color(fg,BLACK_COLOR) and is_equal_color(bg,WHITE_COLOR):
        pdb.gimp_context_set_foreground(WHITE_COLOR)
        pdb.gimp_context_set_background(BLACK_COLOR)
    else:
        pdb.gimp_context_set_foreground(BLACK_COLOR)
        pdb.gimp_context_set_background(WHITE_COLOR)


register(
        "python_fu_color_init",
        "color-init",
        "change fg/bg color for workaround of a bug",
        "dothiko",
        "kakukaku world",
        "jun 2015", 
        "<Image>/Python-Fu/color/color-init", 
        "*",
        [
        ],
        [],
        python_fu_color_init)

main()

これでキーボードに割り当てて、押します。メニューのままでもいいのですがペンタブとマウスの行き来でコンテキストが切り替わるので、即座に変えられないと困るのですね。

なお、おまけ機能として既に前景色が黒・背景色が白の状況だと(≒二回連続して押すと)、白黒が入れ替わります。

ちなみに、まともに対処するなら~/.gimp-2.8/devicercの中を書き換えればOKです。

このスクリプトには、いかなる状況下からも即座に主線用の黒/白に戻すという役割もあったり…てか、よく考えたらgimpの通常機能で前景色と背景色を入れ替えればいいだけなので、スクリプト内にトグル機能は不要でしたね。まぁ、いいか。