ログイン
編集不可のページディスカッション情報添付ファイル
"clear/note/2011-09"の差分

MMA
8と20のリビジョン間の差分 (その間の編集: 12回)
2011-09-07 23:32:24時点のリビジョン8
サイズ: 3936
編集者: clear
コメント:
2011-09-22 01:07:33時点のリビジョン20
サイズ: 6226
編集者: clear
コメント:
削除された箇所はこのように表示されます。 追加された箇所はこのように表示されます。
行 58: 行 58:

ただし、フォーカスが当たったウィンドウは強制的に最前面に出てくる。twmとかdwmみたいにZオーダーが変わらないと便利な局面があるのだが……あと、小さいウィンドウはフォーカスを外してしまいがちで、捕まえるのが難しかったりする。

== 09/11 ==
=== dwmでウィンドウの順序を回転する ===
こういうことがしたかったので作った。[[attachment:dwm-5.9-rotate.diff]]

{{attachment:dwm_tile.png}}

例によって`config.h`の`keys[]`に追加する必要がある。

== 09/21 ==
=== Failed to load module "fbdev" (module does not exist, 0) ===
ArchなマシンでふとXorgのログを見たらこんなエラーを吐いていた。fbdevなんて入れた覚えはないが、どうやら自動検出に引っかかって読み込もうとしていたらしい(入れてないので当然エラー)。他にもvesaが引っかかっていた(こちらはインストールされていたので、とりあえずロードされる->後にintelのドライバが検出されてアンロードされる、という残念なことになっていた)。

とりあえずこんなのを追加して、初めからintelのドライバを読ませるようにしておいた。
 * `/etc/X11/xorg.conf.d/10-monitor.conf`
 {{{
Section "Device"
        Identifier "Card0"
        Driver "intel"
EndSection
}}}

=== vimで不可視文字を表示する ===
 * http://vim-users.jp/2009/07/hack40/
tabとtrailが特に便利な気がする。tabはハードタブとソフトタブの識別に使えて、trailは行末に残った変な空白を検出できる。早速vimrcに書いた。
{{{
set listchars=tab:>\ ,trail:_
set list
}}}

=== vimでタブ文字を含むファイルではnoexpandtabにする ===
vimrcではset noexpandtabしてしまっているが、ハードタブなソースコードや設定ファイルを編集するときにいちいちset noexpandtabするのが面倒なので、autocmdを書いてみた。
{{{
if has("autocmd")
    function! CheckTab()
        if search("\t", "n") != 0
            setlocal noexpandtab
        endif
    endfunction
    autocmd BufRead * call CheckTab()
endif
}}}

2011年9月

09/02

vim fileencodings

どういう順番で書けば良いのかいまいちよく分からず文字化けに悩まされていたが、ここを見てようやく理解した。

09/03

vim matchparen

vimを使っていると、かっこにカーソルが当たったときに対応するかっこがハイライトされるが、チカチカして目が痛くなったので切った。.vimrc

set noshowmatch

と書くのは誤りで(これは対応するかっこに「一瞬移動」する。しかもデフォルトではoff)、こう書けば良い。

let loaded_matchparen=1

これでかっこをハイライトするプラグインが読み込まれなくなる。つり合いを確認したい場合は%を使えばいい。

FreeBSDでCDを再生したい with mplayer

CD-DAを扱うためにaudio/cdparanoiaが必要。mplayerのconfigオプションに項目があるので忘れずにチェックを入れること。

09/04

dwm patch

作りたい。

  • ウィンドウ順序の回転(スタック配置時)
    • zoom(Modkey+Enter)の挙動
      • フォーカスのあるウィンドウとmasterを交換する
      • masterにフォーカスがある時はスタックの一番上と交換する
      • フォーカスは常にmasterに移動する
    • スタックの一番下にフォーカスを合わせてzoomすれば回転相当のことはできるが、面倒なので無条件で回転させたい
      • masterをスタックの一番上に持っていって、スタックの底がmasterになる
  • 設定ファイルによるフォント及び色の指定、できれば実行中のリロード
    • 再コンパイルと再起動が面倒なので。一貫性の面では悪化するが……
    • これ以上のことを変えたくなったときは素直にawesomeなりxmonadを使えばいいだろう

09/07

Window"s"なんだからウィンドウを重ねたくない

Windowsでもタイルっぽく配置してくれる何かが欲しくなってきた。以下考えたこととかを箇条書き。

  • http://www.atmarkit.co.jp/fwin2k/win2ktips/202quicktiling/quicktiling.html

    • 単純なやつなら昔からあったらしい。知らなかった
  • タイル「っぽく」というのはおそらく重要。1ピクセルの隙もなく詰めるとWindowsでは逆にやりにくいかもしれない
    • まずは単純に重なりを除去するプログラムとかから試すべきか
  • グローバルフック
    • SetWindowsHookEx()

    • DLL
    • dwm-win32のWin32部分のコードが参考になる
  • サイズ変更不可能でないやつはスルーしないといけない
    • GetWindowLongPtr()で特定ウィンドウのスタイルを取得してWS_THICKFRAMEとかWS_MINIMIZEBOXとかWS_MAXIMIZEBOXを持っていればOKだろう

  • あとWS_EX_TOOLWINDOWとかWS_EX_TOPMOSTがついてるやつにも気をつけないといけない

    • 前者は多分タイル化すべきでない。後者はどうするか
  • tile -> tiler -> 平ら -> ぺったんこ。よし名称は決まった

実現するかどうかは分からない。

focus-follows-mouse on Windows

上のを書いてて、グローバルフックでマウスを捕まえればWindowsでfocus-follows-mouseを実現できるのではないか、と考えた。滅茶苦茶重くなる可能性もあるが。

そんなことするまでも無く設定項目があった。コントロールパネル -> コンピューターの簡単操作 -> マウスの動作の変更 -> マウスポインターをウィンドウ上に合わせたときにウィンドウを選択します、にチェック。(Windows7、コントロールパネルは表示方法: カテゴリ)

ただし、フォーカスが当たったウィンドウは強制的に最前面に出てくる。twmとかdwmみたいにZオーダーが変わらないと便利な局面があるのだが……あと、小さいウィンドウはフォーカスを外してしまいがちで、捕まえるのが難しかったりする。

09/11

dwmでウィンドウの順序を回転する

こういうことがしたかったので作った。dwm-5.9-rotate.diff

dwm_tile.png

例によってconfig.hkeys[]に追加する必要がある。

09/21

Failed to load module "fbdev" (module does not exist, 0)

ArchなマシンでふとXorgのログを見たらこんなエラーを吐いていた。fbdevなんて入れた覚えはないが、どうやら自動検出に引っかかって読み込もうとしていたらしい(入れてないので当然エラー)。他にもvesaが引っかかっていた(こちらはインストールされていたので、とりあえずロードされる->後にintelのドライバが検出されてアンロードされる、という残念なことになっていた)。

とりあえずこんなのを追加して、初めからintelのドライバを読ませるようにしておいた。

  • /etc/X11/xorg.conf.d/10-monitor.conf

    Section "Device"
            Identifier      "Card0"
            Driver          "intel"
    EndSection

vimで不可視文字を表示する

tabとtrailが特に便利な気がする。tabはハードタブとソフトタブの識別に使えて、trailは行末に残った変な空白を検出できる。早速vimrcに書いた。

set listchars=tab:>\ ,trail:_
set list

vimでタブ文字を含むファイルではnoexpandtabにする

vimrcではset noexpandtabしてしまっているが、ハードタブなソースコードや設定ファイルを編集するときにいちいちset noexpandtabするのが面倒なので、autocmdを書いてみた。

if has("autocmd")
    function! CheckTab()
        if search("\t", "n") != 0
            setlocal noexpandtab
        endif
    endfunction
    autocmd BufRead * call CheckTab()
endif

clear/note/2011-09 (最終更新日時 2011-09-22 01:07:33 更新者 clear)