~nabeken/diary/

Gentoo Linux(6年くらい)とFreeBSD(1年くらい)とOpenBSD(新参者)を使う日々。


IHANet BGP peering overview

awesome-3 へ移行する

Posted on Thu Jun 19 23:37:13 +0900 2008 by nabeken

http://awesome.naquadah.org/wiki/index.php/Awesome_3_configuration を参考に、まずは Lua について調べる。

http://www.lua.org/pil/ をさらっと読んだ。言語としては tables を使うことでオブジェクト指向のように扱っているようだ。

awful の中を見てみる。

-- Grab environment we need
local assert = assert
local loadstring = loadstring
local ipairs = ipairs
local pairs = pairs
local unpack = unpack
local awesome = awesome
local screen = screen
local client = client
local tag = tag
local mouse = mouse
local os = os
local table = table
local hooks = hooks
local keygrabber = keygrabber

これらの変数は C バインディングと対応しているようだ。たとえば、 clilent という変数は lua.c -> client.c -> awesome_client_methods に対応するメソッド/Cでの関数が列挙されている。

したがって、ちょっと名前空間がややこしいことになっている。awful.client.mogemoge というのは、ライブラリのメソッドを使うもので、 client.mogemoge というのは、C バインディングが提供しているメソッドを直接使っている。また、前者は lua の tables であるから、ライブラリの外から使うには awful.lua の最後で export する必要がある。

awesome 3 の特徴

まず、レイアウトが増えている。xmonadみたいな下半分を1つのウインドウ、上半分を残りのウインドウで縦分割するものや、その逆版も。これいいですね。masterの数によって、クライアントの番号付けや、リサイズの方向がおかしいので修正しないと。

awesome-2.x にあった client_zoom という機能がなくなっている。とりあえず、パッチ書いたのが取りこまれました。

タグを重ねる機能がまだないな。awful を書けばたぶん実装できる。現在のスクリーンショット https://projects.tsuntsun.net/~nabeken/awesome-3.png

tab

  • Mod-C-y
    • カレントウインドウと隣りのウインドウを1つのタブにまとめる
  • Mod-y
    • タブ化のウインドウを順次表示する
  • Mod-Shift-y
    • タブ化を解除する
  • Mod-t
    • カレントウインドウをマーキングする
  • Mod-Shift-t
    • マーキングしたウインドウを1つのタブ化する