widen-window-modeが動かなくなったのでgolden-ratioを導入
widen-window-modeってのがあって、とても便利だったんだけど Emacs24 では何か上手くいかなかった。 なにやら最近の流行りはgolden-ratioらしい。黄金比とかロマンだよね。黄金長方形!黄金の回転!
ということで前回同様 M-x list-packages
して golden-ratio をインストール。
;;==============================================
;; widen-window
;;==============================================
(require 'golden-ratio)
(golden-ratio-enable)
ちなみにどこらへんが黄金比なのかはサッパリわからん。
Emacs24 + elscreen
FreeBSD 9.1のEmacsはデフォルトで24なので、ついに俺も本格的にEmacs24環境にしてやるかと思いたった。 だいたいのelispはそのまま24でも使えたけど、elscreenは何か上手くいかなかった。
Emacs24からはM-x list-packages
とかすることでelispパッケージを選んでダウンロード、インストールができるらしい。
ということで、こいつを使って導入してやることにする。
まずはlist-packages
を使えるようにする。ついでに、デフォルトのパッケージリポジトリ?だけだとあまりに貧弱というか、ろくすっぽ使えるものがないので、melpaとかいうサイトを追加する。
(require 'package)
(package-initialize)
(add-to-list 'package-archives '("melpa" . "http://melpa.milkbox.net/packages/") t)
読んでやったら、M-x list-packages
する。ずらーっとインストールできるパッケージがリストアップされるので、そのなかからelscreenを探してやり、Install
を選択。勝手にダウンロードしてパスが通る。
あとは~/.emacs.el
(Emacs24的には、~/.emacs.d/init.el
のほうがよろしいらしいけど)に書き込んでやる。
;;==============================================
;; elscreen
;;==============================================
(elscreen-start)
(setq elscreen-prefix-key "\C-z")
無事動いてハッピー。パッケージまわり便利になったなぁ。
Linuxのバイナリ互換を有効にして、Flashプレーヤーを使えるようにした
ニコニコ動画が見たい。でもFlash PlayerはFreeBSD向けバイナリなんて配ってくれていない。これだからプロプラエタリなソフトウェアは・・・とかガッカリしてたが、どうもFreeBSDはLinuxのバイナリ互換機能ってのがあるらしい。カーネルのビルドが必要みたいだ。
たかだかFlashのためにカーネルのビルドまでするのは屈辱的だが、まあどうせ、いずれ他のバイナリなんかも使いたくなってくるだろうし、遊びもかねてやってみる。
なにはともあれカーネルビルド。まずは設定
cd /usr/src/sys/amd64/conf
cp GENERIC LINUX_COMPAT
vi COMPAT_LINUX
コピーした /usr/src/sys/amd64/conf/LINUX_COMPAT
の適当なところに追記
options COMPAT_LINUX32 # Compatible with Linux
あとは普通にビルドして再起動
cd /usr/src/
make buildkernel KERNCONF=COMPAT_LINUX
make installkernel KERNCONF=COMPAT_LINUX
reboot
これでLinuxのバイナリ互換ができるカーネルが出来上がった。お次はflashplayerをインストールする
portinstall www/nspluginwrapper www/linux-f10-flashplugin11
nspluginwrapper -v -a -i #各ユーザ毎に1回だけ実行する
あとはブラウザを再起動するだけ。無事にニコニコ動画も見れるようになった。 にっこにっこにー!
FVWM2のFvwmTransFocusでMPlayerが透けないようにする
※すげえ雑なHackなので、他の環境では上手く動かない気がしてならない
fvwm2をつかってて、窓を透過させるのにFvwmTransFocusを使ってる。ただコイツは何でもかんでも問答無用で透過させちゃって、大変イケてない。たとえばMPlayerで動画を再生しても、その窓まで透過してしまうわけだ。正直困る。
ということで、ソースを覗いてみた。コメントで、透けさせるかどうかを制御するには ignoreWindow()
を編集してね、とか親切に書いてあるのでそこを編集する。
/* Ignore apps for watching TV */
num = !strncasecmp(class.res_class, "xawtv", 5)
|| !strncasecmp(class.res_class, "tvtime", 5);
とかあるので、末尾に !strncasecmp(class.res_class, "mplayer", 5)
と追加してやる。が、動かない。
なんかどうも class.res_class
が正しくとれてないみたい。なんでか調べたら、その上の XQueryTree()
で子ウインドウが1以上取れてるせいで return 0;
しちゃってる。
どうもどのウィンドウもみんな14こくらい子窓が開いてて、 children[num-1]
が本来欲しかった窓になってる模様。
なんかコメントにもそれっぽい事を書いてはあるが、よくわかんないし何でそのままにしてるのかも謎。
とにかく自分の環境では、 ignoreWindow()
にきたウィンドウIDの子ウィンドウリストの末尾に XGetClassHint()
してやれば上手くいくので、もう面倒だし決め打ちでロジックを書いてしまった。
それがこれ。
暇があったら他でもちゃんと動くか調べて書き直そう。
SLiM導入
startxも味気ないので、そろそろグラフィカルにログインできるようにする。
WMはfvwm2を使ってて、ログインするのも軽くてシンプルなのがいいなと思ったのでSLiMを入れることにした。
portinstall x11/slim
して、/etc/rc.conf
に以下を追記。
slim_enable="YES"
あとは再起動すればSLiMが起動するんだが、その前に ~/.xinitrc
にshebangを書き忘れてログインできなくなる罠に嵌った。
#!/bin/sh
export LANG=ja_JP.UTF-8
export LC_ALL=ja_JP.UTF-8
export GTK_IM_MODULE=uim
export QT_IM_MODULE=uim
exec uim-xim &
export XMODIFIERS=@im=uim
exec fvwm2
先日のUIMの設定も含めて、これが今の .xinitrc
。
mDNS(avahi)導入
MacOS Xなんかだとデフォルトで hostname.local とかで名前が引ける。
会社なんかはともかく、自宅LANなんかではDNSの用意なく、IPアドレス直打ちみたいな事もしないで良く、とっても便利なので、家にあるマシンは基本的にみんなmDNSを導入してる。 ということで新しく動かしはじめたFreeBSDもmDNSで名前を引けるようにした。
参考: http://d.hatena.ne.jp/faw/20060601
portinstall net/avahi dns/nss_mdns
して、 /usr/local/etc/avahi/avahi-daemon.conf
を編集。
host-name=kotori
domain-name=local
もちろん、この設定は /etc/hosts
なんかのホスト名・ドメイン名の設定とあわせる。
で、/etc/rc.conf
に以下を追記。
avahi_daemon_enable="YES"
/etc/nsswitch.conf
を編集。
hosts: files mdns dns
再起動してみて、pingが通るか試す。通ったのでOK。
我が家のホスト名の命名規則は二次元美少女の名前。だいたいその時一番好きな子を使う。ということで今はラブライブ!のことりちゃんである。あの高音がたまらんのである。萌えーである。