fcitxについて

GentooにはUbuntuやArchのようにfcitx-mozcというパッケージがありません。
そのため、mozcパッケージにfcitxのUSEフラグを立ててemergeしなければなりません。

僕は/etc/portagae/package.useディレクトリにして、
パッケージごとにテキストファイルを作成し、
ex) /etc/portage/package.use/mozc
そのテキストファイルにUSEフラグを書くようにしています。

app-i18n/mozc emacs fcitx qt4 -ibus

そんな訳で、mozcにfcitxのUSEフラグをつけてemergeします。
この際、fcitxの設定をするfcitx-configtool(fcitx-config-gtk3)もまとめてemergeします。
sudo emerge --ask fcitx mozc fcitx-configtool
しかし、fcitxからmozcを使おうとしたのですが、使えませんでした。
思考錯誤した末、いつのバージョンからかわからなかったのですが、
mozcのUSEフラグをfcitxからfcitx4と変更してあげると、
fcitxからmozcが使えるようになることがわかりました。

/etc/portage/package.use/mozc

app-i18n/mozc emacs fcitx4 qt4 -ibus  

に修正し、もう一度emergeします。

これでfcitxからmozcが使えるようになります。
デフォルトのインプットメソッド切り替えは、
Ctrl + spaceになっています。
好みによりますが、Ctrl + spaceEmacsの範囲選択のマークとかぶってしまうので、
僕はfcitx-config-gtk3Ctrl + Jに変更しています。
後は、.xinitrcなどに

export GTK_IM_MODULE=fcitx
export QT_IM_MODULE=fcitx
export XMODIFIERS="@im=fcitx"

と書いてあげればOKです。
そういえば、何故fcitxは自動起動してくれるんですかね?
ご存知の方がいらっしゃったら、教えてください。

ちなみfcitxの読み方は(ふぁいてぃくす)です。

Waylandについて

Waylandについて自分なりに調べてわかったことを備忘として書きます。

  1. Waylandとは?
    WaylandというのはX11に変わると期待されている新しいディスプレイ用プロトコル
    現在これを利用したウィンドウマネージャー(以下、WM)やアプリが開発中です。

  2. Waylandで実装されたWM
    Waylandで実装されたWMとして、Weston(正確にはWaylandコンポジタ)、Mutter、Gnome3などがあります。
    また、Ubuntuは17.10からXorgからWaylandに変更されたようです。
    僕はGentoo Linux上でWestonを試しました。

  3. 従来のXアプリについて
    従来のXアプリはWayland上では動きません。FirefoxChromium、fcitxなどがそれに該当します。
    それらのアプリをWayland上で実行できるようにするためにXWaylandというコンポーネントが用意されています。

  4. Gentoo上のGnome3について
    僕は現在、Gentoo上でGnome3を使っています。
    Waylandを調べていくうちに、Gnome3はX11とWaylandのどちらでも動くということがわかりました。
    そのため、今自分が使っているGnomeはどちらで動いているのか知りたくなり、調べる方法を探しましたが、見つかりませんでした。
    正確には幾つか試してみたのですが、X11、Waylandのどちらなのか判別できませんでした。
    試したのは以下のものです。
    echo $XDG_SESSION_TYPE
    Waylandで動いている場合「Wayland」と表示される。
    結果:何も表示されず
    ps -ef | grep gnome-shell
    Waylandで動いている場合「--wayland --display-server」と表示される。
    結果:表示されず
    echo $DESKTOP_SESSION
    Waylandで動いている場合「Wayland」と表示される。
    結果:何も表示されず
    loginctl show-session 1 -p Type
    Waylandで動いている場合「Type=Wayland」と表示される。
    結果:「Type=tty」と表示される
    env | grep -i wayland
    Waylandで動いている場合何かが表示されるという曖昧なもの
    結果:何も表示されず
    ちなみにWestonでは「WAYLAND_DISPLAY=wayland-0」という文字列が表示されました
    という訳でX11なのかWaylandなのかわかりませんでした。
    どなたかご存知の方がいらっしゃったら、教えてください。
    宜しくお願い致します。

  5. weston.iniについて
    weston weston-launch 等でWestonを起動したときに、読み込まれます。
    僕は ~/.config/weston.ini としています。置く場所は自分で環境変数を使って定義することもできます。
    このファイルでアイコンやモニター、スクリーンセイバーの設定ができます。
    Waylandではxrandrが使えないため、モニターの設定はこのファイルで定義する必要があります。(現在、思考錯誤中)
    以下のサイトに詳しいリファレンスがあります。
    https://www.carta.tech/man-pages/man5/weston.ini.5.html
  6. 最後に
    まだまだWaylandについて勉強不足です。
    もう少しわかるようになったら、Waylandアプリなどを作ってみたいなあと思っています。

サウンド設定について

ALSA+PulseAudioでサウンド設定をしました。
しかし、なかなかうまくいかず、
成功したときは設定のどこがだめで、
どこが正しかったのかわかりませんでした。
ということで、わかったことを備忘として書いておきます。
参考になったら、幸いです。

  1. pulseaudio -kでpulseaudioデーモンを停止できるわけですが、
    /etc/pulse/clienct.confのautospawnをyesにしておくと、自動で再起動します。
    このせいでpulseaudioが多重起動しているのかと思い、
    noにしたら再起動しなくなりましたが、
    boot時にも起動しなくなりました。
    デーモンが起動してないと
    bluetoothヘッドホンとペアリングできない。
    デフォルトではautospawnはyesになってるっぽい。
    pulseaudio -kしてもすぐデーモンが再起動するから。

  2. ググっていたら、 /usr/src/linux/.configの
    CONFIG_SND_DYNAMIC_MINORSが
    yになっているといけるみたいなことが
    書いてあったので、 grepしたら 「is not set」になっていたので、
    yにしてカーネルをリビルドしてインストールしたら、
    音がならなくなったので、これは自分の環境では
    有効ではありませんでした。
    なので、おそらくいじらない方がよいと思います。

  3. aplay -D plughw:CARD=0,DEV=3 /usr/share/sounds/alsa/Front_Right.wav
    音が出るかどうかテストできるので、使うと良いと思います。
    CARDとDEVはご自身の環境に合わせて変更してください。
    aplay -lで調べられます。

4.他にもあったんですが、いじくりまくったので忘れてしまいました。
思い出したら追記します。

同調回路の動き

今まで取り上げてきたコイルとコンデンサによる回路にアンテナとアースが
繋がっています。こおではコイルは特にアンテナコイルといいます。また、
コンデンサは容量を変えられる(バリアブルコンデンサ略してバリコン
ようになっています。空中を飛んできた無数の電波をアンテナが捕らえ、
アースに流れると(電波は交流なので実はものすごいスピードでアンテナと
アースの間を行き来する)、コイルに交流の電流が流れるので、この回路に
交流電圧を加えることになります。ですからその周波数がコイルとコンデンサ
固有の周波数に合致した場合は、P、Q間に大きな電圧を生じます。これが
同調回路です。バリコンの容量を変えれば、固有の周波数を変えられるので、
お望みの周波数の電波を捕らえることができるというわけです。

同調路図

同調回路とブランコ

話を進めやすくするために、使われる用語を先に説明します。高いところにある物が
落ちると下にあったものを破壊しますが、そのような高さによって保持するパワー
のことを位置エネルギーと言います。同様に動いている物も何かにぶつかる
と破壊するパワーを運動エネルギーと言います。一方コンデンサに蓄えられる
電気を電気エネルギー、コイルに蓄えられた電磁石のパワーを電磁エネルギー
と言います。

LC_回路図
ブランコ
LC_回路図02

ブランコに乗った者が地面に着いた足で突っ張り、後ろの方へ移動して高さ
位置エネルギー)をかせいでいる状態(a)と考えられます。つまり、
「電気エネルギーが位置エネルギーに相当」します。スイッチをONにして、
コイルに電流を流し始める(足を地面から離す)と、コンデンサからの
電流が流れ出すのを妨げるような電圧がコイルに生じます。(電磁エネルギー)
次第に電磁エネルギーは減っていきますが、逆にコイルの磁気エネルギー
は増えていきます。(ブランコでは位置エネルギーがなくなる分、運動エネ
ルギーが増える。つまり、「電磁エネルギーが運動エネルギーに相当」します。
そして、コンデンサの電圧が0になった時点でコイルの電磁エネルギーは最大
になっています(ブランコでは位置エネルギーが0の時、運動エネルギー
が最大)。コンデンサの電気が0になった後は、コイルは蓄えた電磁エネ
ルギーで電流を流し続けます(ブランコは真下では止まらず蓄えられた
運動エネルギーによって反対方向へ揺れていく)。その電流によって、
今度はBの側を+として電気がたまっていきます。そして、コイルからの
電流がなくなるとコンデンサの充電も終了し電気エネルギーは最大に
なります(ブランコの揺れは反対側の最高点に達する)。以下同様に
繰り返します。
今の話では、最初コンデンサにあった電気エネルギーが一旦コイルの
電磁エネルギーに変わり、再びコンデンサの戻されたということになり
ます。ですから、コンデンサにもコイルにもエネルギーのロスが無け
れば、今の現象は永久に繰り返されるはずです(ブランコもつり下げ
られたロープの接点の摩擦や空気抵抗が無ければ永久に揺れつづける)。
さて今度は、ただブランコを揺らすのではなく、少し力を加えた
場合について考えてみましょう。
子供をブランコに乗せ、背中をそっと押すと、ブランコは静かにゆっく
り揺れ始めます。さらにそっと押しつづけると(押す力を強めなくて
も)ブランコは次第に大きく揺れるようになります。このとき肝心
なことは押すタイミングを揺れに合わせることです。先ほどのコン
デンサとコイルで作った回路をもう一度見てみましょう。コンデンサ
の容量 = キャパシタンス(電気を蓄える能力)をC、コイルのインダク
タンス(電流の変化を妨げる能力)をLで表します。コンデンサはCの
値が大きいほど放電や充電に時間がかかりますし、コイルはLの値
が大きいほど電流の変化を妨げる作用が大きいです。つまり、CもLも
両者の間をエネルギーが移動するスピードに関係するので、回路では
両者の関係による固有のスピードが生じることになります。先ほど
も見たように電流の流れは交流になるので、両者にとって固有の周波数
の交流が生じると言えるわけです。
そこで、この回路にこの固有の周波数の交流電圧を加えてみます。これ
がブランコをそっとタイミングよく押してあげるという話に相当します。
ブランコが次第に大きな揺れになるように、回路に流れる電流はどん
どん大きくなり、加えた電圧よりずっと大きな電圧がコンデンサやコイル
の両端に生じることになります。ただし、際限なく大きくなるわけでは
なく、コイルの内部抵抗などのせいで、ある一定の値で安定します。
コイルのQ値ということを耳にしたことがあるでしょうか。Q値が高い
というのはこの内部抵抗が低く、コイルとして性能が良いということを
意味しています(コンデンサでも損失の少なさをQ値として表す)。

トランスの原理

コイルに直流の電流を流すと、目には見えない磁力線が生じて、その力で鉄などの
金属を引きつけます。その際鉄などを芯にして巻くと、磁力線がより強力な磁石
にすることができます。このとき生じる磁力線の向き(Nから出てSに入る)は
コイルに電流の方向で決まります。コイルが右まわりに巻いてあり、コイルを
流れる電流の向きが右回りになるような方から見たとき、手前から先へ向かって 磁力線が生じます。これを「右ネジの法則」という覚え方をします。ネジ
を回す向きがコイルを流れる電流の向き、ネジの進む方向が磁力線の生じる方向
と一致しているからです。
コイルに電圧計(電流計でもよい)をつなぎ、棒磁石を素早く接近させてみます。
すると電圧計の針が降れます。コイルに電圧が生じた訳ですが、そのとき流れる
電流の向きは、接近する棒磁石の極に反発する向きの磁力線が生じるような方向
です。接近させた状態の棒磁石を素早く遠ざける場合にも電流が流れますが、
その場合の電流の向きは反対になります。
さて、コイルは自分自身に電流を流すと磁力線を生じ、逆に変化する磁力線を
受けると電流が流れますが、この性質を利用して作られたのがトランスです。
トランスは口の字型に作られたある金属(鉄等の板を重ねあわせたもの)の両側
にコイルを巻いた状態でできています。左側を一次側、右側を二次側と呼ぶことに
します。今一次側のコイルに直流の電流を流したとしますあ。磁力線が生じ、
口の字型の金属のおかげで効率よくループします。磁力線は二次側のコイルを通過
しますが、直流の流れ始めるときと終わるとき以外は何も変化は起きません。磁力線
が一定だからです。そこで今度は一次側に交流の電流を流してみます。大きさも向き
も変化する交流に合わせて、金属をループする磁力線も大きさと向きが変化します。
すると二次側のコイルにやはり大きさと向きが変わる電圧が生じます。一次側に
交流の電流を流すと、二次側にも交流の電圧が生じるのです。しかも、それぞれの
コイルの巻き数を変えることによって、二次側に生じさせる電圧を変えることが
できるのです。トランスの一次側、二次側の交流電圧をそれぞれE1、E2、巻き数を
n1、n2とすると、E1:E2=n1:n2という関係が成り立ちます。
上のトランスは電源トランスをいう言い方をしますが、トランスにはもう一つ、
インピーダンス変換という働きを持たせたものがあります。ある二つの回路を
組み合わせる(つなぎ合わせる)際、両者の間を効率よく信号の「電力」が伝わる
ようにするには、両者のインピーダンスを合わせる必要があります。これを
インピーダンスマッチングと言います。
例えば、トランジスタで作ったスピーカを鳴らすためのアンプは、出力する側の
インピーダンスは数kΩですが、一方スピーカのインピーダンスは4〜16Ω程度です。
このまま両者を直接つないでも、インピーダンスの違いから伝達の効率が良くなく、
ほとんど鳴ってくれません。そこで一次側が1kΩ、二次側が4〜16Ω程度になるような
コイルの巻方で作られたトランス(この場合は出力トランスという)を間に入れると、
両者のそれぞれの能力を効率良く発揮させることができるというわけです。
トランスの一次側、二次側のインピーダンスをそれぞれ、Z1、Z2、巻き数をn1、n2
とすると、√Z1:√Z2=n1:n2という関係が成り立ちます。

コイルの働き

一般にエナメル線(現在はホルマリン線やポリウレタン線が多い)などをぐるぐる巻いて
作られたものをコイルと言います。モータや機械式リレーなどに使われています。最も
簡単なラジオ、ゲルマニウムラジオでも必ず使われます。アンテナコイルがそうです。
コイルを組み合わせて作るトランスというものもあります。
コイルというのは直流を流せば電磁石になるという性質があります。しかし、電流が
変化するときは奇妙なことが起きます。

「変化する電流をコイルに流そうとすると、コイルには電流の変化を妨げようとする
ような電圧が生じます」

一般にコイルでは、電流が変化するスピードが速いほど大きな電圧が生じます。この
ような現象を「逆起電力」が生じるという言い方をします。電磁石になったり
逆起電力を生じさせたりするコイルの性質をインダクタンスといってその大きさ
ヘンリー(H)という単位で表します。

1H = 1000mH
1mH = 1000μH

交流回路におけるコイルの働きはかなりわかりにくいものになります。コイルに流れる
交流は周波数の低い交流(直流に近い)ほど、そしてインダクタンスの値が小さいほど
流れやすく、逆に周波数が高いほど、そしてインダクタンスの値が大きいほど流れにくく
なります。コイルのこの性質はコンデンサのキャパスタンスと正反対です。