ciguwerao

2017/02/24の記録:xmodmapの弱点

メモ。

この前の記事で、今度買ったリナミンシナモンパソコン用に使うことにした初代iMac付属キーボードにはDeleteキーが無いので、xmodmapという仕組みを使って僕はあまり使わないhelpキー(LinuxではInsertキーとして機能)をDeleteとして使う設定をした、と書いた。

その同じ記事の追記では、xkbのoptionという仕組みを使って左コントロールとキャプスロックを入れ替える際に出る不具合を避けるために、もともとある日本語レイアウトを少しいじって新しいレイアウトを作り、fcitx-mozcで日本語を打つ際にはそのレイアウトを使うことにしたことを書いた。

ただし、この追記で書いた作業は、不具合が気に入らないから解決策を探した、というだけで、同じことがxmodmapでもできる。

xmodmapが使えるこのリナミンシナモンパソコンではそのやり方をする必要は必ずしもなかった。

【つまり、InsertをDeleteにする設定はxmodmapを使い、Control_LとCaps_Lockの入れ替えは新しいレイアウトを自作することで対処したわけだが、両方をxmodmapで一遍にすることもできる、ということ。(04/12補)】

で、今日そのリナミンシナモンをいじっていて、xmodmapの動きがおかしいことに気づいた。

効いてる時と効いてない時があるのだ。

効かなくなる条件を突き止めるのに手間取ったが、mozc用に件の自作レイアウトを使う設定をしているとxmodmapで指定した設定が効かなくなることがわかった。

自分で作ったレイアウトに不備があるからか、と、ちょっとしょげかけたのだが、試しに自作のではなく、かといってもともとの日本語レイアウトでもない、イタリア語レイアウトをmozcに使う設定をしてみたらどうか、と思いつき、試してみた(IはJの隣で手近だからというだけで他意はない)。

すると、案の定xmodmapが効かなくなった。

なぜもともとの日本語レイアウトは大丈夫でイタリア語や自作レイアウトはダメなのかはよくわからんが、とにかくxmodmapにはそういう弱点があることがわかった。

それで結局、このリナミンシナモンでは元通り、mozcでは普通の日本語レイアウトを使うことにした上で、InsertをDeleteに変え、左ControlをCaps Lockと入れ替える設定は両方共xmodmapで行うことにした。

ただし、この前も書いたが別のDebian LXDEのパソコンではxmodmapの自動起動がなぜかうまく機能しない。

そっちで初代iMacキーボードを使いたくなることもあるかもしれない。

その際には、ControlとCaps Lockはこの前のやり方でいいとして、InsertをDeleteに置き換えるxkbのoptionを作らなければならない。

【つまり、僕のしたい設定は両方共、新レイアウト及び新オプションの自作で対処する事になる。(04/12補)】

そんなに手間はかからないだろうが。

| Linux関連 | 23:14 | comments(0) | trackbacks(0) |

2017/02/11の記録:Linux Mint 18.1 Cinnamonで初代iMacのキーボード用の設定

必要ないのに思わず買ってしまったリナミンシナモンパソコンの設定ネタをもうひとつ。

ひとつの記事にしても良かったが話が変わるので分けた。

リナミンシナモンのために買った格安パソコンは、格安である以上当然本体だけでモニターもキーボードもマウスもない。

古いのを使うわけだが、幸いモニターは兄の使い古しをもらってあったし、マウス・キーボードも予備はそれなりにある。

キーボードについては、テンキーはあったほうがいいがコンパクトな方がいい、ということで、初代iMacのやつを使うことにした。

このキーボードの欠点はDeleteがないことだが、それについてはxmodmapを使ってあまり使わないhelpキー(LinuxではInsertになる)をDeleteにあてるようにする。
(xmodmapについては古い記事だが2014/03/31の記録を参照のこと)

もう一つの問題は左Controlの位置。

マックのパソコンではcontrolはタブと左シフトの間に来て、caps lockが左下にある。

マックで使う分には別にどうでもいいのだが、リナックスやウインドウズではマックでのコマンドキーの代わりにControlを使うことになるので、その位置は重要になる。

Control_LとCaps_Lockを入れ替えたい。

最初、簡単な方法として、

setxkbmap -option ctrl:swapcaps

をログイン時に自動起動させるように設定していた。

しかし、これだと、日本語を打つためにMozcを使っている状態で左Controlのつもりで左下隅のキーを押すと、Caps Lockの機能が一部残ってしまうらしく、ひらがなではなくローマ字が入力されるようになってしまう。

これは以前、2016/07/12の記録で紹介したqiitaoyasさんという方の記事に書かれている事例と似た事例のようだ。

modifierの付け外しがうまくいってないと思われる。【

で、僕の使っている "ctrl:swapcaps" というxkbのオプションを規定している
/usr/share/X11/xkb/symbols/ctrl
という書類を見てみると、そのswapcapsの内容は次のように至って簡素で、modifierの付け外しについてちゃんとやってくれていないようにやはり見える。

// Swap the functions of the CapsLock key and the left Ctrl key.
partial modifier_keys
xkb_symbols "swapcaps" {
    replace key <CAPS> { [ Control_L ] };
    replace key <LCTL> { [ Caps_Lock ] };
};

そこで、上でもリンクを貼った2014/03/31の記録の際に参考にした

というページで紹介してくださっているやり方、具体的にはxmodmapでコントロールとキャプスロックを入れ替える際の記述内容を、使わせてもらうことにした。

こちらのほうが、記述内容を見る限り、modifierの扱いが手厚い。

remove Lock = Caps_Lock
remove Control = Control_L
keysym Control_L = Caps_Lock
keysym Caps_Lock = Control_L
add Lock = Caps_Lock
add Control = Control_L

見てわかるように、一旦modifierを外してからキーの入れ替えをし、もう一遍modifierを付け直している。

考えてみれば、上に書いたようにDeleteのためにどうせxmodmapを使っているのだから、最初からこれをxmodmapで呼び出す ".xmodmap" という書類(ホーム直下に置いておく)に付け加えておけばよかった。

このやり方なら、問題なく左ControlとCaps Lockの入れ替えができた。

僕がxmodmapをあまり使わないのは、主に使っている環境であるDebian LXDEではなぜだかわからないがこのxmodmapをログイン時に自動起動させられない(手動でなら機能する)からなのだが、ちゃんと使えるのであればやっぱり便利なものだ、と改めて実感した。

せっかくなので、僕がログイン時に自動起動させることにした ".xmodmap" の記述内容を書いておこう。

keycode 118 = Delete Insert
remove Lock = Caps_Lock
remove Control = Control_L
keysym Control_L = Caps_Lock
keysym Caps_Lock = Control_L
add Lock = Caps_Lock
add Control = Control_L

一行目がhelpキーをDeleteにする設定で、もともとの機能であるInsertはシフトと一緒に押せば使えるように第二レベルに設定しておいた。

その後は上掲のページで教えていただいたものをそっくりそのまま書いただけ。

== 02/21追記 ==

modifierの付け外しの問題というのは僕の勝手な思い込みで、勘違いかもしれません。

まず、問題の起こる状況でxmodmapを使ってmodifierを外してみても、問題は解消されません。

状況をよく確認したところ、問題の起こるのはあくまでmozc (fcitx) を使っている時だけで、それ以外の時は特に問題はなさそうです。

また、mozc用に使うキーボードレイアウト(mozcの設定の方ではなく、fcitxの設定のほうでmozcをダブルクリックすると選択できる)を、「規定の入力メソッド」ではなく「日本語」にしてあるのですが(「規定の入力メソッド」をカナディアンフレンチにしてあるため)、これを「規定の入力メソッド」に戻すと、mozc使用時にも問題が起きません。

以上から、xkbのオプションの設定は規定のレイアウトには効くがfcitx-mozcから呼び出したjpレイアウトには効かない、ということかもしれません。一方xmodmapの方はmozcのjpにまで効力が及ぶ、ということ。

ただ、Caps Lockとして使うことにしたもともとのControlキーの方は、mozc上でもCaps Lockとして機能する点が、この推測とぶつかります。

Controlとして使いたいCaps Lockキーの方も、mozc上でも完全にCaps Lockとしてだけ機能するわけではなく、Controlとしても機能する一方、Caps Lockの機能のうちひらがな入力を英数字入力に切り替える機能は働く一方、小文字を大文字にする機能は働きません。
(そもそも英数字への切り替えがどうして起こるのか、どこでその機能が設定されているのかがわかりません。mozc設定を見てもfcitx設定を見ても、そういう設定はなさそうなのですが)【下のさらなる追記を参照のこと。消線部以下同じ】

ということで、xkb optionがmozcのjpに効力が及ばないとしても、完全に及ばないのではなく一部しか及ばない、ということになるでしょう。元の認識と合わせて、modifierの付け外しがmozc上のjpではうまくいかない、ということかもしれません。

問題が解消しない、尻切れトンボな内容ですみません。いずれにしても、xmodmapが使える環境であれば、そちらを使えば問題ありません。

もうひとつ、本文で触れたoyasさんの記事に書かれている事例と症状は似ているのですが、oyasさんのなさってる方法をまねしてみても、つまり
/usr/share/X11/xkb/symbols/ctrl

partial modifier_keys
xkb_symbols "swapcaps" {
    replace key <CAPS> { [ Control_L, Control_L ] };
    replace key <LCTL> { [ Caps_Lock, Caps_Lock ] };
};

としてみても、うまくいきません。

症状は似ていても、別の問題なのかもしれません。

== さらなる追記 (02/21) ==

先ほど(上の追記)はちょろっと調べてちょろっと書いてしまったので検証不十分な内容になってしまいましたが、その後落ち着いて調べてみました。

わからないことはわからないままではありますが、あらましのことはつかめ、とりあえずの対処法もわかりました。

まず、modifierは関係なさそうです。

問題の肝は、どこで設定されているのかわからない、と上で書いたCaps Lockキーの英数入力への切り替え機能にあり、それは他ならぬjpレイアウトで規定されていたものでした。

/usr/share/X11/xkb/symbols/jp
という書類の、"key <CAPS>" の行(僕の環境では47行目)を見れば、jpレイアウトではキャプスロックキーの第一レベルに "Eisu_toggle" というkeysymが設定されていることがわかります。

Caps_Lock自体は第二レベル。

確かに、マックではないパソコンではキャプスロックをするためにシフトとキャプスロックを一緒に押す必要があるなあ、とは思っていたんですが、僕は漠然とMicrosoftの趣味なんだと思ってました。jp配列 (JIS?) の趣味だったんですね。

この設定が、なぜかxkbのoptionでは取り消せないことが、不具合の原因でした。なぜかはわかりません。

xmodmapではその設定を消せるから、うまくいくのでしょう。

両者に違いが出るのは、xkbのoptionや "symbols" を規定した書類では <CAPS> や <AE07> といった、よくわからないのですがkeyと呼ばれてるんじゃないかと思われるものにkeysym ("Control_L" や "k" や "kana_A" などです)が当てられているのに対して、xmodmapでは、8から255までの数字であるところのkeycodeにkeysymを当てるからではないかと思われます。

xkbの設定書類ではまずkeycodeにkeyを当て、次にkeyにkeysymを当てる仕組みになっています。キーボード(機械)によって同じキーでも送られる信号が必ずしも一致しないためにこういう仕組みが必要なのだと推測しています(昔はともかく最近では大抵同じみたいですが)。どのタイプの機械なのか、によってkeycodeとkeyの対応が決まり、それとは別に、使用するレイアウト(普通は使う言語)ごとにkeyとkeysymの対応が決まるわけです。ですから、keycodeを扱うxmodmapを使う場合は自分のいじりたいキーのkeycodeを、"xev" みたいな仕組みを使って確認する必要があります。keycodeとkeysymをじかに当ててしまうとそういう面倒があるのですが、今回の問題はkeyのレベルで起きるために、かえってそこを飛ばしてしまうxmodmapならばうまくいくのではないか、と、これも僕の推測にすぎませんが、今のところ考えています。

それはともかく、xmodmapを使わない対処法を考えるとなると、xkbのoptionではうまく行かない以上、レイアウト自体をいじっちゃうのが一番手っ取り早そうです。

jpレイアウトから <CAPS> に関する設定を削っちゃうわけです。

基本的にこの前01/26の記録でやったのと似たような作業です。

その記事にも書いたようにデフォルトの記述自体をいじっちゃうのが一番楽なのですが、それはあまりに乱暴なので、面倒ですが付け加える形で行きます。

jpレイアウトの設定書類は上に書いたように
/usr/share/X11/xkb/symbols/jp
です。これに付け加えます。

この書類の内容がどうなってるかというと、まず "106" というヴァリアント名が一応付いているデフォルトの設定(jpとだけ選べばそれになるもの)が書かれていて、その下に様々なヴァリアントが続いています。ローマ字入力ではなくかな入力の場合のヴァリアントとかです。

そのヴァリアントの一つとして、新しくさしあたり "EISU_Nashi" と名付けたのを付け加えるわけです。

そもそもデフォルトの106ヴァリアントはその大部分を "common" というヴァリアントをinclude、つまり読み込んで、足りない部分だけを記述する形になっていますから、僕の作るEISU_Nashiヴァリアントでもcommonをincludeする形にしたいんですが、そのcommonのなかににっくき "key <CAPS>" の行が入っちゃっているものですから、そうもいきません。

この行を、例えば

key <CAPS> { [ Caps_Lock, Caps_Lock ] };

と改めて設定しなおしてもいけそうに思うんですが、試したらそれではダメなんですね。optionがダメなのと同じ理由だと思われます。

アホな話ですが、これをやってsetxkbmap -option ctrl:swapcaps をやると、左コントロールキーもキャプスロックキーも両方キャプスロックになります。

なんでキャプスをコントロールにするのはうまくいかないのにコントロールをキャプスにする方はうまくいくんだよ、と思います。本当にアホだと思います。

で、仕方ないのでincludeは諦めて、全部のキーの記述をコピーしてきた上で、にっくき <CAPS> の行と、ついでなので別に要らないはずだと思うのにわざわざ書いてある <LCTL> の行だけを消しちゃいます。

消しちゃうのは不安かもしれませんが、jpに限らず多分すべてのレイアウトが、一番の基盤であるところの "pc" レイアウト(のデフォルトである "pc105" ヴァリアント)を読み込んだ上で、その上に乗っける形で使うことになるようです。(ターミナルで "setxkbmap -print" をやってみればそれがわかります)

modifier絡みのような大事そうなキーについてはそれで規定してあるので、個々のレイアウトでは別に規定する必要はないんですね。

LCTLは要らないはずだ、と上で書いたのはそういう意味で、CAPSの方はpcと内容が違うので書く必要があるのはわかるんですが、LCTLの方はなんで書いてあるのかわかりません。

僕の作ったjp配列のEISU_Nashiヴァリアントの記述内容を以下に貼り付けておきます。デフォルトの106の固有の記述に、それがincludeしているcommonの記述をくっつけて、そこからCAPSとLCTLの行だけを削ったものです。
(本当は、このEISU_Nashiをcommonがincludeして、僕が削ったCAPSとLCTLだけをcommon固有の設定として書く、というのが書類の書き方としては綺麗なんでしょうが、もともとのものをいじるのはなるたけ避けたいので、無駄に長い書類になっています)

partial alphanumeric_keys
xkb_symbols "EISU_Nashi" {

    name[Group1]= "Japanese";

    key <AE10> { [ 0, asciitilde   ] };
    key <AE13> { [ backslash, bar  ] };

    key <HZTG> {
        type[Group1]="PC_ALT_LEVEL2",
        symbols[Group1]= [ Zenkaku_Hankaku, Kanji ]
    };

    key <AE01> { [ 1, exclam       ] };
    key <AE02> { [ 2, quotedbl     ] };
    key <AE03> { [ 3, numbersign   ] };
    key <AE04> { [ 4, dollar       ] };
    key <AE05> { [ 5, percent      ] };
    key <AE06> { [ 6, ampersand    ] };
    key <AE07> { [ 7, apostrophe   ] };
    key <AE08> { [ 8, parenleft    ] };
    key <AE09> { [ 9, parenright   ] };
    key <AE11> { [ minus, equal    ] };
    key <AE12> { [ asciicircum, asciitilde ] };

    key <AD01> { [ q, Q            ] };
    key <AD02> { [ w, W            ] };
    key <AD03> { [ e, E            ] };
    key <AD04> { [ r, R            ] };
    key <AD05> { [ t, T            ] };
    key <AD06> { [ y, Y            ] };
    key <AD07> { [ u, U            ] };
    key <AD08> { [ i, I            ] };
    key <AD09> { [ o, O            ] };
    key <AD10> { [ p, P            ] };
    key <AD11> { [ at, grave       ] };
    key <AD12> { [ bracketleft, braceleft ] };

    key <AC01> { [ a, A            ] };
    key <AC02> { [ s, S            ] };
    key <AC03> { [ d, D            ] };
    key <AC04> { [ f, F            ] };
    key <AC05> { [ g, G            ] };
    key <AC06> { [ h, H            ] };
    key <AC07> { [ j, J            ] };
    key <AC08> { [ k, K            ] };
    key <AC09> { [ l, L            ] };
    key <AC10> { [ semicolon, plus ] };
    key <AC11> { [ colon, asterisk ] };
    key <AC12> { [ bracketright, braceright ] };

    key <AB01> { [ z, Z            ] };
    key <AB02> { [ x, X            ] };
    key <AB03> { [ c, C            ] };
    key <AB04> { [ v, V            ] };
    key <AB05> { [ b, B            ] };
    key <AB06> { [ n, N            ] };
    key <AB07> { [ m, M            ] };
    key <AB08> { [ comma, less     ] };
    key <AB09> { [ period, greater ] };
    key <AB10> { [ slash, question ] };
    key <AB11> { [ backslash, underscore ] };

    key <NFER> { [ Muhenkan        ] };

    key <XFER> {
        type[Group1]="PC_ALT_LEVEL2",
        symbols[Group1]= [ Henkan, Mode_switch ]
    };

    key <HKTG> {
        type[Group1]="PC_ALT_LEVEL2",
        symbols[Group1]= [ Hiragana_Katakana, Romaji ]
    };

    key <EISU> {
        type[Group1]="PC_ALT_LEVEL2",
        symbols[Group1]= [ Eisu_toggle ]
    };

    key <KANA> {
        type[Group1]="PC_ALT_LEVEL2",
        symbols[Group1]= [ Hiragana_Katakana ]
    };

    key <PRSC> {
        type[Group1]= "PC_ALT_LEVEL2",
        symbols[Group1]= [ Print, Execute ]
    };
};

/usr/share/X11/xkb/symbols/jp
の最後にこれを書き足し、あとはこの前と同様

  • /usr/share/X11/xkb/rules/evdev.lst
  • /usr/share/X11/xkb/rules/evdev.xml

という書類をいじります。(この前はoptionの追加だったのでもうひとつ拡張子なしの "evdev" という書類もいじったのですが、すでにあるレイアウトのヴァリアントの追加の際は2つだけでいいようです)

この2つの書類に、それぞれ次のような記述を付け加えます。

場所は、jpのdvorakの設定があると思うので、その下でいいと思います。わかりやすくするために、そのdvorakの内容と合わせて書いておきましょう。

  dvorak          jp: Japanese (Dvorak)
  EISU_Nashi      jp: Japanese (Without EISU)
        <variant>
          <configItem>
            <name>dvorak</name>
            <description>Japanese (Dvorak)</description>
          </configItem>
        </variant>
        <variant>
          <configItem>
            <name>EISU_Nashi</name>
            <description>Japanese (Without EISU)</description>
          </configItem>
        </variant>

これで、システムを再起動させればjpレイアウトのEISU_Nashiヴァリアントが、普通のキーボードレイアウトのような顔をして色んな所に出てくるようになると思います。

例えばfcitxでは「入力メソッド」の一つとして選べるようになります。

また、
/etc/default/keyboard
という書類に次のように書けば、システムのレイアウトとして使えるようになります。

XKBMODEL="pc105"
XKBLAYOUT="jp"
XKBVARIANT="EISU_Nashi"
XKBOPTIONS="ctrl:swapcaps"

ターミナルで

setxkbmap -layout jp -variant EISU_Nashi -option ctrl:swapcaps

とやれば、そのセッションの間は使えるようになります。

これをログイン時に自動起動させるようにすれば、個人設定にできます。

(この記事のそもそもの目的であるコントロールとキャプスロックの入れ替えのオプションを書いておきましたが、不要な場合はオプションの記述を削除します。上の方は "" で大丈夫。逆に、すでに書いてあるのに付け加える場合は , で区切ります。カンマの前後スペース無しです)

キーボードレイアウトの設定方法はこの他にもいろいろあり、参考になる記事がたくさん見つかると思います。このブログにもいくつか記事がありますが、この記事でわかるように僕の文章は読みづらいので、他の方のまとめられたものを探されたほうが良いと思います。

========
| Linux関連 | 17:18 | comments(0) | trackbacks(0) |

2017/02/11の記録:Linux Mint 18.1 Cinnamonのフォント設定

思いの外格安で中古のパソコンが手に入ったので、Linux Mint 18.1 Cinnamonを入れてみた。

というより、にちょっと触れたようにLinux Mint 18.1 Cinnamonを使いたい気持ちが募ってしまったのに、それを入れるべき機械が手元にないために、格安のパソコンを探した、という流れ。パソコンが先にあってそのOSを探したのではなく、OSが先にあってそれ用のパソコンを探した。

全く必要性もないのに自分でもアホだとは思うが、今日はちょっと昼飯——夕飯ではない——を奮発してみようか、というくらいの値段でLinux Mint Cinnamonには十分な能力の機械が買えることがわかってしまったので、買ってしまった。

そもそもLM Cinnamonを試したのは、もともとLM MATEの入っていた母のパソコンをバージョンアップさせるに際して、MATEに飽きたらない感じがあったため。古い機械で重さが気になっていた以上MATEが気に入らないならXfceを試すのが筋であるところをそうしなかったのは、その頃はまだXfceの18.1は出ていなかったから。今は出ている。わずか一週間か二週間の差が、無駄な買い物につながってしまった。

母の機械には結局リナミンではなくデビアンを入れたことはもう書いた

それはともかく、これが(この数週間ほど)憧れていた、Linux Mint 18.1 Cinnamon。

なかなか満足。

まだ、壁紙とこれから書くフォントくらいしか見た目に出る部分に関してはいじってない。

憧れのリナミンシナモンを使えるようになって、なかなかに満足したのだが、少し気に入らないことがあった。

ウインドウの大きさが一定せず、何かのはずみにひょこひょこ動くのだ。

しばらく理由に気づけずにいたのだが、ファイルを右クリックして何かしようとした時に、わかった。

ウインドウの下の部分、「ステータスバー」に表示されるべきテキストの違いによって、高さが変わり、ひょこひょこ動くのだった。

具体的には、ローマ字が入る場合と日本語だけの場合とで変わる。


この写真は、同じウインドウをステータスバーの文字の中にローマ字の入る場合と日本語だけの場合とで比べるために作ったもので、左半分がローマ字の場合を反転したもの、右側が日本語の場合。

真ん中を見ると高さがずれているのがわかるだろう。

これはローマ字と日本語とで別のフォントが使われており、それぞれの高さが違うために起きると推測できる。

リナミンシナモンで画面表示のためのデフォルトのフォントはNoto Sans Regularで、Noto Fontsというのはノー豆腐フォント、つまり文字化け(豆腐のような四角が出る)を避けるためのフォントのはずだが、ノーマルのノトサンスには日本語フォントは含まれておらず、別のフォント、おそらくはTakao Gothicが呼びだされているのだろうと思われる。

そこで最初は、日本語と普通のローマ字だけじゃなく、範囲はよくわからないがとりあえずアクサン付きラテン文字やキリル文字は含まれていることから普段愛用しているVL PGothicを使うことにした。

しかし、最近はいつでもどこでもVLPを使っていることから、せっかく新しくシナモンを試してみているのにいつもどおりの感じになっちゃったのが残念に思われたので、VLPは大好きだが、少なくともしばらくの間は、シナモンの元のデザインを大切にするために、これもどれくらいの範囲をカバーできてるのか知らないけど少なくともローマ字と日本語は入っているはずのNoto Sans CJK JPを使うことにした。

これで、ウインドウの大きさがひょこひょこ変わることもなくなって安定した。

日本語フォントの優先順位をいじって、Noto Sans CJKをタカオより上に持ってきたりしてもいいんだろうと思うけど、設定書類がどれだったか探すのが面倒なので、とりあえずこれでいい。

== 02/13追記 ==

Libre Officeでちょっと試してみただけで十分に検証したわけではありませんが、ノーマルのNoto SansとNoto Sans CJKとで、フォントの高さが違うようです。

そうだとすると、Takaoが呼び出されたわけではなくNoto Sans CJKが呼び出されていたとしても高さが違うのでズレが出るのでしょう。

フォントの優先順位をいじっても、ノーマルのNoto Sansがデフォルトフォントとして選択されている限り、ウインドウの不安定な挙動は解消されないと思われます。

ノーマルNoto Sansと高さがまったく同じな日本語フォントがあれば別ですが。

== 02/25追記 ==

02/25の記録でフォント設定について続きを書きました。

本文の最後と上の追記でちょっと触れている、フォントの優先順位の設定についてです。

========
| Linux関連 | 14:54 | comments(0) | trackbacks(0) |

2017/02/02の記録:Clearlooks (-Phenix) に合わせたパネル用画像

僕のDebianはすべてLXDEを使っているが、基本的に見た目はフォントを除いていじっていない。

ただし、Debian LXDEの入っている三台の機械のうち、PowerBookG4だけは、OpenboxのテーマをデフォルトのOnyxではなく、LXAppearenceの「ルックアンドフィールを設定します」の「ウィジェット」に合わせて、"Clearlooks-Phenix"(パッケージマネージャでインストールした。詳細は2015/03/07の記録参照)にし、下のパネルも背景画像を使わずに「システムのテーマ」を選んである。

(昔の写真だが、こんな感じ)

LXDEのデフォルトも嫌いなわけではなく、だからこそiBookや今これを書いているInspironでもそのまま使ってきているのだが、黒を基調としているだけにどうしても画面が暗めになる。

(これも昔の写真。壁紙がWheezyのやつだから、なおさら暗い。一番下の緑の線はバッテリモニタのxbattbarだが、今は使っていない)

月も変わったことだし、たまには画面を明るくして、気分も明るく行きたく思った。

その点、Clearlooks(-Phenix) のテーマは柔らかな空色を使っており、明るくてよい。

PowerBookと同じにしてもいいが、それでは芸がないので、パネルの背景画像をウインドウのタイトルバーにあわせることにした。

スクリーンショットを撮ってGimpでタイトルバーのとこだけ幅1ピクセルで切り取って、LXDEのデフォルト用に用意されてる "/usr/share/lxpanel/images/background.png" にあわせて、縦26ピクセルに伸ばした。

上部の影をカットするか残すかで2種類作って、 "background-sky.png" と "background-sky2.png" と名づけて、
/usr/share/lxpanel/images/
に置いた。

これをパネルの設定の「外観」で背景に選ぶ。

(影を残した "background-sky2.png" の方。影を残すと、タブと言っていいのか、開いてるウインドウを一列に表示した部分の枠が上にずれている感じになるのが難点だが、デフォルト用の画像でそうなっているので影ありの方を使うことにした。ウインドウとパネルの境界がはっきりするし。ちなみに壁紙はそのうちどれかに入れようと思っているLinux Mint 18.1 Cinnamonのライブイメージから取り出した)

このパネル背景用画像、万が一欲しい人がいるかもしれないので、アップしておく。見やすくクリックしやすいように横に伸ばすが、実際には幅は1ピクセルしかない。


(影無しの "background-sky.png")


(影付きの "background-sky2.png")

| Linux関連 | 11:02 | comments(0) | trackbacks(0) |

2017/01/29の記録:Lubuntu 16.04でタッチパッドの設定

前に

という記事で書いたように、Debianの入ってる機械では普通のクリックを一本指、右クリックを三本指タップでできるようにしている。

しかし、Lubntuの機械では、右クリックは二本指タップに設定されている。

Lubuntuをこの機械に入れてからもう随分になるので、この設定はかつて自分でしたものか、OSインストール時に自動で設定されたデフォルト設定なのかは忘れてしまったが、Debianの設定に合わせようと思い立った。

というページが参考になる。

ただし、このページでは
/etc/X11/xorg.conf.d/50-synaptics.conf
という書類で設定するように書いてあるのだが(今見たら書類の名前の頭の数字が70に変わっていたが)、上の記事にあるようにDebianではこの設定書類では思うようにいかず、 "synclient" という仕組みを使い、これをログイン時に自動起動させるようにしている(詳細は当該記事参照)。

今日はLubuntuではどんなもんじゃろ、と思い、Debianでうまくいかなかった
/etc/X11/xorg.conf.d/50-synaptics.conf
を使った設定を試してみたら、うまくいった。

== 翌日追記 ==

改めてデビアンで確認してみたところ、昔うまくいかなかったのは僕が愚かだったからだとわかりました。ちゃんとやればDebianでもうまくいきます。詳しくは下記します。

========

この書類は、Debianの時の記事では「作って」と書いてあるので元々は無かったようだが、Lubuntuではあった。ただし、僕が昔自分で作った可能性もある。

無い場合はゼロから書くのでなくて、
/usr/share/X11/xorg.conf.d/
というディレクトリにある "50-synaptics.conf" をコピーして持ってくれば良い。それに追記するなり、一部を修正するなりする。

いずれにしてもこの書類をルート権限で開き、おしまいのところに上掲のArchWikiのページを参考に、僕のしたい設定にあわせて以下のような記述を追加した。

Section "InputClass"
  Identifier "touchpad"
  Driver "synaptics"
  MatchIsTouchpad "on"
    Option "TapButton1" "1"
    Option "TapButton2" "2"
    Option "TapButton3" "3"
    Option "HorizTwoFingerScroll" "on"
EndSection

"TapButton1" というのが一本指タップ、2が二本指、3が三本指。

右の数字は1が左クリック、2が真ん中ボタン(ホイールを押した時)、3が右クリック。

"HorizTwoFingerScroll" は二本指で水平方向、つまり横方向にスクロールできるようにする設定。

(垂直、つまり縦方向のスクロールは元々できるのでわざわざ書かなかったが、書くとすれば "VertTwoFingerScroll"。)

真ん中ボタンの設定はDebianではしていなかったが、インターネットをやっていて二本指でスクロールして、そのままリンクをぽん、と二本指で叩けば新しいタブでそのページが開くのは便利そうなので、今度からこれで行くことにした。もちろんホイールを押すと新しいタブでリンクが開くように、ブラウザの方で設定してある。

ちなみに、この設定とDebianの方でやったsynclientの自動起動でかち合うような設定をすると、後者のほうが優先される。

そうなるのは、前者がシステムの設定で後者が個人設定であり、通常は個人設定がシステム設定を上書きするようになってることから考えても当然かと思われる。

そういうことなので、システムの設定にしたくない、あるいはシステムの設定はできない、という場合は、他にも方法はあるかもしれないが、Debianの方で僕がやったやり方をLubuntuでもすればいいかと思う。

そのやり方ついては昔の記事の方を見てもらいたいが、その時書かなかった二本指での横スクロールの記述の仕方だけ書いておくと、こんな感じ。

synclient HorizTwoFingerScroll=1

さっきの書き方と違い引用符がいらない、ということと、オンオフは1がオンで0がオフなんだろうと思う。試してないけど。

Debianの方でxorg.conf.dの書類が効かなかった理由は良くわからない。もしかしたら僕が書き間違いをしただけかもしれない。

もういっぺん試してみよう。

== 翌日追記 ==

上述のとおり、Debianでうまくいかなかったのは僕がバカなことをしていたからでした。

"50-synaptics.conf" を
/etc/X11/xorg.conf.d/
というディレクトリに入れるべきところを、
/etc/X11/Xsession.d/
というディレクトリに入れてしまっていました。(今日までそこに無意味に入れたままになってました)

適切にやればこちらのやり方でDebianでもLubuntuでもうまくいきます。

システムの設定にする場合はこちら、個人設定にする場合はsynclientの自動起動、という使い分けでよろしいかと思います。

========
| Linux関連 | 16:36 | comments(0) | trackbacks(0) |

2017/01/26の記録:Linuxで起動時にNumlockをON(と同じ状態)にする

Linuxで、と大きく出たが、Linuxなら必ず、というわけではないと思う。僕の環境はDebian Jessie LXDEだが、それに限らずそれなりに広い範囲の環境で使えるやり方だとは思うが、その範囲の広さがどの程度なのかはよくわからない。

起動時にNumlockをONにするやり方はウェブ上でもたくさん記事があり、例えば次のページは環境ごとにいろいろなやり方があることを教えてくれている。

まっとうな人間として生きていきたい方はこうしたページを参考にして設定されたほうが無難だと思われる。

裏街道を歩むことを厭わない方、むしろ裏街道にこそおれの生き場所も死に場所もある、という方であれば、以下に書く僕のやり方を参考になさってもよろしいかと存ずる。

== 02/06追記 ==

この記事を書いた時にはうっかりしてその点を忘れていたのですが、母の機械での問題は単にシステム起動時にNumlockがOFFになっているというだけではなく、NumlockをONにするとメインのキーボードのJKLのあたりのキーも同時に数字キー扱いになってしまい、テンキーの数字とメインのキーボードの当該部分の文字とを同時に打つことができない(その都度Numlockの切り替えが必要になる)ことが、より重要な問題でした。

この下に書いてある僕の方法であればどちらでも、その問題も同時に解決できます。

上掲のリンク先等にあるやり方は、僕自身が試したことがないので、この問題も解決してくれるものなのか、分かりません。

僕の環境であるLightDMについては、上掲リンク先では "numlockx" という仕組みをセッション開始時に起動させる方法が挙げられていますが、この仕組みは今試したところ単純にナムロックのオンオフ切換をするもので、オンにするとJKLの部分は数字になってしまいます。自動起動までは試していませんが、それをした場合おそらく、ログイン時にはJKLのあたりが数字になってしまうと思われます。

========

今回この件に僕の目が行ったきっかけは、母のパソコンでOSの入れ替えをしたこと。

母の機械にはこれまでLinux Mint 13 MATEが入っていた。

そのサポート期間が終わりなんずるので手を打つ必要があったのだが、その頃のLinux Mintはバージョンアップの際に、面倒なことにクリーンインストール、つまり一旦全部消して改めて新しいのを入れなおすことを推奨していた。

それでOS入れ替えをしたわけ。

もちろん新しいバージョンのLinux Mint MATEを入れることも考えたが、母のパソコンのスペックと、13からのバージョンアップに伴う進化とを考えると、もうLinux Mintは重いかもしれない、という懸念があったし、母がLinux Mintの機能を使いこなしているというわけでもなかったので、僕自身の機械に入っていて僕がよく慣れているDebian Jessie LXDEを入れることにした。

その際のことについても、簡単なメモとしてはここに書いておく価値のあることがあったのでそのうちに書こうと思っているが、それはそれとして、OSのインストールが無事済んで環境を使いやすく整えていく段階になって、この記事に関わるテンキーの問題が出てきた。

Linux Mint MATEでは昔記事にしたように "xmodmap" という仕組みをログイン時に自動起動させることでその問題を解決していたのだが、LXDEではなぜだか良くわからないがxmodmapを自動起動させられない(手動で起動させればちゃんと働く)。

そこで別のやり方が必要になる。

僕の機械でもそれはしてあるわけだが、その設定書類の場所や記述の仕方などが全部頭に入っているわけではないので、僕の機械を覗きながら母の機械の設定を行った。

母の機械はちゃんと設定できたので万事めでたしめでたし、で数日過ぎたのだが、さっき、むしろ僕の機械でテンキーの挙動がおかしいことに気づいた。

パソコンを起動させれば何もしないでもテンキーで数字が打てるはずなのに、ナムロックをオンにしないと矢印キーの機能になってしまって数字が打てない。

それで右往左往したのだが、わかってみればなんのことは無い。母の機械の設定をする際に必要があって、僕の機械を覗くだけでなく実際に設定をいじって確認したりしたのに、元に戻すのを忘れていただけだった。

元に戻せばそれで終わりなのだが、それに気づかないで右往左往する中でウェブ上でNumlockの設定関連の事をいろいろ検索してみたところ、冒頭で紹介したような記事はいくつも見つかったものの、僕のやり方を書いているところは見当たらなかった。 それで、問題は解決したけれどもせっかくだからそのやり方をここに書いておこう、と思い立ったわけだ。

いつものように前置きが大変長くなって恐縮だが、これからが本番。

母の機械にしたのは次のやり方。

/etc/default/keyboard
という書類をroot権限で開き、

XKBOPTIONS=""

という行を

XKBOPTIONS="numpad:mac"

とする。

もし " " の中にすでになにか書いてあったら、カンマ ( , ) を打って続ければいい。

それだけ。

これでパソコンを起動させればテンキーで数字が打てる。

これは字面を見れば想像がつくと思うが、numpadすなわちテンキーをマック風に使う、という意味。

マック風というのがどういうものかと言うと、早い話がナムロックも糞もなく、テンキーは常に数字が打てるだけで、矢印キーの代わりになんぞしない、というもの。

上に書いたのはシステムの設定書類をいじるやり方だが、Linux Mint等の優し目の環境であれば、キーボード関係の設定のところを一生懸命探せばGUIでも同じことが個人設定として設定できるようになってるんじゃないかと思う。確認してないが。

とりあえず個人設定する方法は、

setxkbmap -option numpad:mac

というコマンドを、パソコンを起動させた時に走らせれば良い。

その具体的やり方は環境によって違うが、LXDEについては2016/08/30の記録で書いたので、そちらをご参照のこと。

その記事の中で「2」としたやり方の方は、LXDE以外のいくつかの環境とも共通なので、LXDE以外の環境の方にも参考になるかと思われる。

これは別に裏街道というわけではなく、せいぜい裏街道への分かれ道程度のことなので、万人におすすめできると思っている。

しかし問題点は、書いたように数字しか打てなくなって、矢印キーとして使えなくなること。

ナムロックキーで数字と矢印キーを行ったり来たりしたい人がいるかもしれない。

それで、僕の思いついた怪しいやり方を紹介する。

僕自身がよく仕組みを理解した上でやってるわけではなく、試してみてこうやったらとりあえずうまくいったよ、ということに過ぎないので、その点はご了解いただきたい。

発想としては、上に書いた "numpad:mac" という設定を規定している書類があるはずなので、その書類をいじっちまえ、ということ。

その書類は、
/usr/share/X11/xkb/types/numpad
という書類。

この書類の上の方には次のように書いてある。

partial default xkb_types "pc" {
  type "KEYPAD" {
    modifiers = Shift+NumLock;
    map[None] = Level1;
    map[Shift] = Level2;
    map[NumLock] = Level2;
    map[Shift+NumLock] = Level1;
    level_name[Level1] = "Base";
    level_name[Level2] = "Number";
  };
  include "extra(keypad)"
};

// On Mac keypads, level 1 and 2 are swapped.
partial xkb_types "mac" {
  type "KEYPAD" {
    modifiers = None;
    map[None] = Level2;
    level_name[Level2] = "Number";
  };
  include "extra(keypad)"
};

わかると思うが下の方の "mac" の部分が "numpad:mac" の内容を規定しているところで、"modifiers = None" が煎じ詰めれば何があっても変化させない、という意味。 "map[None] = Level2" は、Noneつまり何もしてない時にはレベル2だよ、ということ。合わせて、いついかなる時もレベル2に固定、ということになる。(レベル2の名前が「ナンバー」だよ、と書いてあるのもわかると思う)

レベル2って何だよ? ってことは、前に書いた記事などを参照していただければと思う。

これはただの解説で、マックの方は今はほっとけばいい。

大事なのはその上。 "pc" の部分。

その冒頭にはまずxkbの部分的なデフォルトのタイプ、その名前は「PC」だがそれは……、と書いてあって、その下は、シフトとナムロックで変化させる場合がある、何もしない時はレベル1、シフトを押した時はレベル2、ナムロックの時もレベル2、ナムロックでシフトを押した時はレベル1、レベル1の名前が「ベース」、レベル2の名前が「ナンバー」、ここに書いたこと以外のことについては、 "extra(keypad)" という設定をそのまま使います、ということ。

"numpad:mac" の代わりに "numpad:pc" と書けばこの設定になるわけだが、デフォルトなのでそんなことしないでも、何も書かなければこれになる。

だから、大部分の人の環境では、機械を起動したあと何もしなければテンキーは「ベース」状態で、シフトを押すかナムロックをオンにすれば「ナンバー」になる。

「ベース」状態がすなわち矢印キーだということは想像がつくと思う。

だから、やりたい設定にするには、これをひっくり返しちまえばいい。

「ベース」や「ナンバー」とここで名付けられたレベル1とレベル2の、より具体的な内容を設定した書類は、どれだか忘れたが探せばどっかにある。それ自体をいじるという方法もあるが、めんどくさいと思う。

選択肢が2つあり、簡単なのは、このデフォルトである "numpad:pc" の設定自体をひっくり返しちまうこと。

map[None] = Level1;
map[Shift] = Level2;
map[NumLock] = Level2;
map[Shift+NumLock] = Level1;

の4行の、1と2を入れ替えるだけでいい。(要ルート権限)

map[None] = Level2;
map[Shift] = Level1;
map[NumLock] = Level1;
map[Shift+NumLock] = Level2;

しかし、デフォルト設定自体を変えてしまうことに抵抗を感じる方もいらっしゃるだろうと思う。僕もそう感じる。

で、ふたつ目の選択肢は書き換えではなく追加をする。

ちょっと面倒だが以下の作業。

設定内容自体は今書いたレベル1と2の入れ替えだけでいいが、デフォルトではないので頭の記述だけはmacのを持ってきて、以下のような内容を、おそらくどこでもいいのだろうが、pcとmacの間に付け加える。

partial xkb_types "gyakupc" {
  type "KEYPAD" {
    modifiers = Shift+NumLock;
    map[None] = Level2;
    map[Shift] = Level1;
    map[NumLock] = Level1;
    map[Shift+NumLock] = Level2;
    level_name[Level1] = "Base";
    level_name[Level2] = "Number";
  };
  include "extra(keypad)"
};

いじらなければいけない書類はこの
/usr/share/X11/xkb/types/numpad
という書類だけではなく、他にもある。

その書類は、今の僕にはなぜそれがそれなのかはよくわからないのだが、昔良くわかっていたことがあって、突き止めてある。

  1. /usr/share/X11/xkb/rules/evdev
  2. /usr/share/X11/xkb/rules/evdev.lst
  3. /usr/share/X11/xkb/rules/evdev.xml

この3つの書類をルート権限でいじる。

ひとつ目には、長い書類だが一番下に

numpad:pc           =    +numpad(pc)
numpad:mac          =    +numpad(mac)
numpad:microsoft    =    +numpad(microsoft)
numpad:shift3       =    +numpad(shift3)

と書いてあるので、これまたpcとmacの間に

numpad:gyakupc      =    +numpad(gyakupc)

という記述を挟みこむ。

2つ目も要領は一緒で、僕の場合836行目辺りに

numpad:pc            Default numeric keypad keys
numpad:mac           Numeric keypad keys always enter digits (as in Mac OS)

とあるので、間に

numpad:gyakupc       Default numeric keypad keys no gyaku

を追加する。

ただし、英語のできる人は英語で書いたほうがかっこいい。

3つ目は、更に長い書類だが6542行あたりの、

<option>
  <configItem>
    <name>numpad:pc</name>
    <description>Default numeric keypad keys</description>
  </configItem>
</option>
<option>
  <configItem>
    <name>numpad:mac</name>
    <description>Numeric keypad keys always enter digits (as in Mac OS)</description>
  </configItem>
</option>

の真ん中の、オプション閉じる、オプション開く、の間に

<option>
  <configItem>
    <name>numpad:gyakupc</name>
    <description>Default numeric keypad keys no gyaku</description>
  </configItem>
</option>

を書き加える。

つまりこういうこと。

<option>
  <configItem>
    <name>numpad:pc</name>
    <description>Default numeric keypad keys</description>
  </configItem>
</option>
<option>
  <configItem>
    <name>numpad:gyakupc</name>
    <description>Default numeric keypad keys no gyaku</description>
  </configItem>
</option>
<option>
  <configItem>
    <name>numpad:mac</name>
    <description>Numeric keypad keys always enter digits (as in Mac OS)</description>
  </configItem>
</option>

で、最後に、numpad:macの場合と同じように
/etc/default/keyboard
という書類をroot権限で開き、

XKBOPTIONS="numpad:gyakupc"

とする。

これは上に書いたようにシステムの設定。個人設定をしたい場合は、やはり上のnumpad:macの場合と一緒なので、そちらをご覧いただきたい。

これでうまくいくはず。

つまり、ナムロックがオフだと数字が打て、オンにすると矢印キーになる。

== 02/06追記 ==

上に追記したように元々ナムロックがオンだとJKLのあたりが数字になる状態だった場合、このやり方をしてもその点は変わりません。つまりナムロックがオンだとテンキーは矢印キーでJKLのあたりは数字になります。オフだとテンキーが数字でJKLはJKLです。

========

ただし、繰り返すがあくまでそれは僕の場合ではそうなった、ということ。

どの程度の範囲の人に通用する話なのかはよく知らない。

試してご覧になる場合は、いじる書類すべてについて事前にバックアップを取っておかれることを強くお勧めする。

| Linux関連 | 18:51 | comments(0) | trackbacks(0) |

2017/01/23の記録:Lubuntu16.04でもDebian Jessie LXDEでも「ディスク」がうまく働かないので「GParted」を使う

メモ。

この前、OSであるところのHaikuを試してみた。

あまってたUSBフラッシュメモリにHaikuのサイトのガイドに従って入れた。なんてことはない。

Haikuは軽快で楽しい。

こんな感じで、僕好みのポップな見た目。

が、残念ながら用意されているアプリケーションがまだこなれてなくて、自分でいろいろ調整しないと思うように動いてくれないようだが、調整の仕方も、勉強しないとよくわからない。

機械との調整も必要だと思われるが、これもよくわからない。

例えばLubuntuの入ってるEeePCではWifiのパスワードを記憶させる方法がよくわからず、起動の度に毎回入力しないといけない。また、写真が綺麗に表示されないし、スクリーンショットもうまくいかない。逆に、もうひとつ試したInspironでは写真やスクリーンショットはうまく行くが、Wifiを認識してくれない。

残念ながらまだ、素人が気軽に使える状況ではなさそうだ。今後に期待したい。

で、それはいいとしてUSBフラッシュメモリが、Haiku用パーティションは必要最小限の700MB程度(CD一枚分になってるのかもしれない)に抑えられていて、あとの部分が未使用領域になってる。

ここがもったいないので、新たにFATのパーティションにしちゃおうと思ってLubuntuに入ってる「ディスク」というアプリケーションでフォーマットしてみたが、何遍やってもうまく行かない。

ディスク関係をいじるものとしてもうひとつ入ってる「GParted」を使ったらうまくできた。(上の写真でkingmax4gというアイコンが出てるのがそれ)

念のため、Debian Jessi LXDEのInspironでも試してみたが、同様だった。

理由はよくわからない。

そういえばずっと昔にLubuntuで「ディスク」を使って何かをフォーマットしようとしてうまくいかず、Macの機械でやったことがあった気もする。

「ディスク」は、なにか手を打たないとディスクのフォーマットができないのかもしれない。

ひとつ考えられるのは、GPartedの方は起動するときrootのパスワードを求めてくるのだが、ディスクの方はそういうことがない。

ルートでディスクを起動させてやればうまくいくかもしれない。あとで試してみよう。

| Linux関連 | 12:45 | comments(0) | trackbacks(0) |

2017/01/11の記録:Flash Playerの更新

AdobeのFlash Playerが24.0.0.186から24.0.0.194へ更新された。

Flash Playerの更新については次の二つの記事で書いているので、今回もここにメモしておく。

ChromiumやOperaなどでは09/28の記録に書いたやり方を繰り返し、更新する。

Firefox等の場合は12/14の記録の方。

環境はDebian Jessie。

Ubuntu系だと話は変わってくるが、そのへんの事についても上の09/28の記録で触れた

なお、Firefoxの場合は "flashplugin-nonfree" を入れておけばパッケージマネージャで別のアプリ等と一緒に更新されると思うが、今日の時点ではまだ更新されないようだ。

12/14の記録の追記に書いたように、前回の更新の時はしばらくしてから "flashplugin-nonfree" のアンインストール、再インストールをやってはじめて更新されたので、今日も念の為にやってみたが、それでも今日はまだダメだった。

安全性にこだわり一刻も早い更新を望むなら、12/14の記録の本文に書いた方法で手動インストールすればよい。

| Linux関連 | 17:39 | comments(0) | trackbacks(0) |

2016/12/14の記録:32ビットのDebian JessieでFirefox用のFlash Playerも手動でアップデートする

この前、同じ32bitのDebian Jessieの機械でOpera等Chromium系ブラウザ用のFlash Player、PPAPIのアップデート(インストール)を手動でやったことについて書いた。

その記事にも書いたように、一旦インストールしても自動でアップデートしてはくれないので、Flash Playerのアップデートを自分で確認して、あったら同じ作業を繰り返さなくてはならない。

Firefox等用のNPAPIの方は、これもこの前書いたように "flashplugin-nonfree" というパッケージをインストールしておけば、パッケージマネージャで他のアプリケーション等と一緒にアップデートできる。

ただし、前回の記事の段階の情報では、そのNPAPIは32bitリナックス用については開発をやめてしまっていて、古いバージョンに最低限の弥縫策だけを施したもの(11.2.202.いくつか)が提供されていたはずだった。

しかるに、今日、PPAPIのアップデートを確認しようとアドビのサイトのバージョン確認ページの各環境ごとの最新バージョン一覧表を見ると、Linuxの欄の32bitと64bitの区別がなくなっていて、そのNPAPIのところが他のあらゆるバージョンと同じ "24.0.0.186" という数字になっていた。

Linux 32 bit版の開発を再開してくれたと見ていいんじゃなかろうか?

よく分からんのでとりあえずパッケージマネージャで確認してみたが、そちらではフラッシュ関係の更新は無し。

これは、Flash開発元のアップデートのリリースとDebianの方での対応の時間差によるのかもしれないが、つまり、待っていればそのうちアップデートしてくれるのかもしれないが、面白いので試しにNPAPIも手動でアップデートしてみた。

別にオペラからでもできるが、向こうで環境に合わせたバージョンを自動で選んでくれるのでFirefoxを起動し、アドビのフラッシュプレーヤーを落とすところに行って「Linux 32-bit, 日本語, Firefox」用の ".tar.gz" ファイルを落としてきた。

APTも選べるようになっているので、ほんとはこっちを選べば自動でガーッとやってくれるんじゃないかと思うが、僕の環境では必要パッケージが揃ってないのか、うまく行かなかったので ".tar.gz" にした。

それを解凍するといろいろ出てくるが、必要なのは "usr" フォルダと "libflashplayer.so" だけで、あとは目を通しておくくらいでいいと思う。

"usr" の方は、その中のファイル構成のとおりに
/usr/
以下に入れていけばいい。

ただ、usr/lib/usr/share/に入っている "kde4" というフォルダはデスクトップ環境であるKDEに関するものだと思うので、それを使ってない僕は無視した。

ついでに書いとくと、"icons" や "pixmaps" はアイコンだから、そんなにどうでもいい。

肝心の書類はむしろ "libflashplayer.so" の方で、これを置く場所は調べる必要があるのだが、Firefox用ならばこれもこの前すでに書いた。

/usr/lib/mozilla/plugins/
に置けばよい。

ただし、これまた前に書いたが、こっちにはシンボリックリンクを置いておくことにして、本体の方は前にPPAPI用に作った
/usr/local/iroironashoruinomoto/
に入れておいた。(この最後のフォルダはこんな変な名前である必要はない。どんな名前でもよい)

Flash Playerを入れてない状態からならばこれで終わりだが、僕は書いたように "flashplugin-nonfree" というパッケージを使っているので、すでに
/usr/lib/mozilla/plugins/
には "flash-mozilla.so" という書類が、これもシンボリックリンクとしてだが、入っている。本体は
/etc/alternatives/flash-mozilla.so
を経由して
/usr/lib/flashplugin-nonfree/libflashplayer.so

試しにこれを入れたままにしてFirefoxを立ち上げなおして確認したら、Flash Playerのバージョンは古い "11.2.202.635" のままだった。

これをどけちゃう必要がある。

"flashplugin-nonfree" をアンインストールしちゃうのが本当だと思うが、僕は "flashplugin-nonfree" がちゃんと更新されるか確認したいと思っているので、最後のシンボリックリンクを別のフォルダに退避させておくだけにした。

これで、Firefoxでもバージョン24.0.0.186でFlash Playerが動いてくれるようになった。

== 12/19追記 ==

その後ほぼ毎日、パッケージマネージャでflashplugin-nonfreeの更新がないか確かめていたのですが、更新はなく、Firefoxの方でバージョン確認しても古いままでした。

flashplugin-nonfreeの方では今回のアップデートに対応していないのかと思っていたのですが、今日思い立って、パッケージマネージャで一旦flashplugin-nonfreeをアンインストールし、再度インストールしてFirefoxでバージョン確認をしてみたら、(手動インストールした書類はよそへどけておいても)flashのバージョンが最新のものになっていました。

なぜこの作業が必要なのかわかりません。場合によると僕が手動インストールとのからみでファイルを移動させたりしていたためにこうなったので、普通にしてたらパッケージマネージャで更新すればflashも更新されたのかもしれません。

とはいえ、もし、flashplugin-nonfreeを使っているのであればFirefoxでflashのバージョン確認のページへ行ってみて、古いバージョンが使われていると表示された場合、flashplugin-nonfreeのアンインストール、再インストールを行うことをお勧めします。

======
| Linux関連 | 17:10 | comments(0) | trackbacks(0) |

2016/12/09の記録:update-alternativesで優先順位を変更する

という記事で、Vivaldiをインストールしたら、デフォルトのアプリケーションとは指定していないのに、LXDEの「アプリケーション・ランチャー」にもともと入っている "Web Browser (x-www-browser)" というのを押すとVivaldiが開くようになってしまったので、普段使いのブラウザが開くように変更する方法を調べたことを書いた。

その時書いたやり方は、x-www-browserに自動選択させるとVivaldiが開くので、手動で希望のアプリケーションを指定しておく、というもの。(ちなみにこれは "update-alternatives" という仕組みを利用している)

今回何気なくこの記事を読み返していて、自動選択を選べば各アプリケーションごとに設定された優先度の順に選ばれるようになってるのだ、ということに、いまさらながら気づいた。そもそもこれまでは自動だとか手動だとかいうことをよく理解していなかった。

Vivaldiの優先度には、当時使っていたIceweasel(今はFirefox ESR)の70よりも、その後に入れたOperaの120よりも大きな、200という数字が設定されている。

この数字、誰が設定してるのか知らないが、もしVivaldi自身がこの数字を選んでるんだとしたら僭越だ、と思った。

Firefoxは控えめな70になっているし、下で紹介するupdate-alternativesの説明ページなどではもっと控えめな10とか20を使っている。

200はやりすぎだ。

Operaに勝ちたいのかもしれないが、それなら121にしとけばいい。そのほうが当てつけがましくて面白い。

(別にVivaldiの人がそういう風に設定してるわけじゃないんだったらごめんなさいね)

腹が立ったので、Vivaldiの優先順位を下げる方法を探ることにした。
(環境はDebian Jessie LXDE)

これは上に書いたようにupdate-alternativesという仕組みを使っており、その設定書類でも無いかとコンピュータの中を探してみたが埒が明かないので、 "update-alternatives" で検索して出てきた次のページを参考にさせていただいた。

  1. linux alternatives - nona.to fswiki
  2. update-alternativesの使い方」(gggggraziegrazieさん)
  3. 標準で使うコマンドを切り替えるコマンドalternativesを使ってみた」(ケーズメモさん)

いろいろ試したが、結局、上の1のページに書いてあるように "--install" というオプションを使うことになるみたいだ。

僕も十分に分かっているわけではないとはいえ、僕の認識の限りで説明しておくと、update-alternativesは同類のアプリケーションをまとめてグループを作っておいて、そのグループを呼びだせばそのグループ内の優先度の高いもの(もしくは前に僕がやったように手動でこれ、と設定しておいたもの)が起動する仕組みらしい。

利点は、仮にそれまで使ってたものがなくなったり壊れたりして使えない場合に、代替のものが自動で呼び出されるので安心だし便利、ということじゃないかと思う。

gggggraziegrazieさんの記事から引用させていただくと、

sudo update-alternatives --install <作成するシンボリックのパス> <グループ名> <実体へのパス> <優先度>

というコマンドをターミナルで走らせることで、 <グループ名> というグループを作り、任意の場所 (<作成するシンボリックのパス>) にそのグループ名で呼び出されるシンボリックリンクを作り、そのリンクのリンク先 (<実体へのパス>) を設定し、その「実体」の優先度を設定する、という作業がいっぺんにできる。

グループに「実体」を追加したいときはこの作業を繰り返す。

僕のやりたい作業はすでに作られているx-www-browserというグループにすでに加えられているvivaldi-stableという「実体」の優先度だけを変えたいわけで、installオプションではなく、設定変更のオプションでやるのではないかと思ったのだが、そういうやり方はないらしい。

新たに作り新たに指定するのと同じやり方をすれば、すでにある場合は上書きされるのだろうと思う。

ということで、僕に必要なコマンドは以下のとおり。

sudo update-alternatives --install /usr/bin/x-www-browser x-www-browser /usr/bin/vivaldi-stable 1

これでVivaldiの優先度が下がったはずで、自動選択させればVivaldiの次に優先度が高かったOperaが起動するはずだが、僕はすでに自動選択ではなく手動でOperaを選んである。

せっかくなので前に手動選択した時に使ったのと同じconfigオプションで、今度は自動選択を選びなおすことにした。

sudo update-alternatives --config x-www-browser

というコマンドをターミナルで走らせると、次のような表示が出る。【見やすくするために余分なスペースは削除してあります】

alternative x-www-browser (/usr/bin/x-www-browser を提供) には 3 個の選択肢があります。

  選択肢    パス                 優先度  状態
----------------------------------------------------
  0      /usr/bin/opera           120   自動モード
  1      /usr/bin/firefox-esr     70    手動モード
* 2      /usr/bin/opera           120   手動モード
  3      /usr/bin/vivaldi-stable  1     手動モード

現在の選択 [*] を保持するには Enter、さもなければ選択肢の番号のキーを押してください:

これでちゃんとvivaldi-stableの優先度が下がり、自動にすればオペラが選ばれることが確認できたわけで、あとは自動モードの "0" を選んでエンターを押すだけ。

(もちろん手動で例えばfirefox-esrを選びたければ "1" を押してエンターでいい)

== 12/20追記 ==

その後、vivaldi-stableの更新が2回ほどあったのですが、その都度優先度が元の200に勝手に戻されてしまいました。

一度はこの記事に書いた作業を繰り返して優先度を下げ直したのですが、今日あった二度目の更新でアホらしくなって、自動モードは諦めて手動でオペラを使う設定をしました。

Vivaldiには期待していたし、実際使ってみても動きが軽快で魅力があるのは確かなのですが、ブックマークの動作がいまいちなこと以上に、この件のせいでVivaldiに対する反感が募ってきました。

======
| Linux関連 | 18:58 | comments(0) | trackbacks(0) |
|<<< | 2/11 pages | >>>|
ciguwerao
CALENDAR
S M T W T F S
     12
3456789
10111213141516
17181920212223
24252627282930
31      
<< December 2017 >>
LATEST ENTRIES
SELECTED ENTRIES
CATEGORIES
ARCHIVES
SPONSORED LINKS
qrcode