--- categories: "Linux" comments: true date: "2014-09-28T00:00:00+09:00" title: "awesomeウィンドウマネージャーの見栄えを良くする" --- Arch Linuxで使っているデスクトップマネージャ、awesomeのテーマに若干手を入れてみたので備忘録。あんまり日本語ドキュメントないので、このあたりのカスタマイズしんどかったです。 # テーマファイルの構成 awesomeの設定はいくつかのLuaファイルを使って書き換えていく。基本的には全体設定を司る`~/.config/awesome/rc.lua`と、外観やテーマを司るライブラリである、Beautifulの設定ファイル`~/.config/awesome/themes/default/theme.lua`の2つを覚えておけばいいのかなと。いずれも初期状態では配置されてないので、デフォルトファイルをコピーしてきて使う。 ``` # cp /etc/xdg/awesome/rc.lua ~/.config/awesome/rc.lua # cp -r /usr/share/awesome/themes/default ~/.config/awesome/themes/default ``` Beautifulについてはrc.luaの中で設定ファイルのパスが指定できるので、`default`という名前が嫌だったら任意で変えてもOK。あとは正直[awesomeのWiki](http://awesome.naquadah.org/wiki/Awesome_3_configuration)見るのが手っ取り早いとは思うのだが、設定したところだけ書いておく。ちなみに[前回記事](http://chroju89.hatenablog.jp/entry/2014/09/23/190304)で書いたが、awesomeのデフォルトターミナルの設定も`rc.lua`を使うので、外観変える必要なくても`rc.lua`だけは確実に要ると思う。 # タグリストの書き換え awesomeでは仮想デスクトップを"tag"と呼んで扱っていて、デフォルトの状態だと左上に1から8まで(だったかな?)の数字がタグの番号として並んでいる。あまりわかりやすいものではないし、そんなに多くタグも使わないので書き換える。 ```lua tags: {} for s = 1, screen.count() do -- Each screen has its own tag table. tags[s] = awful.tag({ "Firefox", "Terminal", "Vim", "other" }, s, layouts[1]) end ``` あとウィンドウを開いているタグは小さな正方形が表示されたりしていて鬱陶しかったのと、あまり見栄えも良くなかったので、正方形を表示されないようにした上で、フォーカスしているタグは文字色を変えることにした。これはbeautifulの方で設定する。 ```lua theme.taglist_fg_focus = "#f15c22" -- theme.taglist_squares_sel = "/usr/share/awesome/themes/default/taglist/squarefw.png" -- theme.taglist_squares_unsel = "/usr/share/awesome/themes/default/taglist/squarew.png" ``` 1行目がフォーカスされているときのfg、フォアグラウンドカラーの設定。2、3行目はデフォルトで入ってる設定だったのでコメントアウトしておいた。 # ウィジェットの表示 画面上の情報表示はウィジェットとして扱う。ウィジェットを管理するライブラリはいくつかあるみたいなんだが、取っつきやすそうなので自分は`vicious`を`rc.lua`の中で`require`して使っている。 ``` $ yaourt -S vicious ``` インストールした上で、 ```lua local vicious = require("vicious") ``` 設定の順序としては、awesomeがもともと備えているウィジェット生成用のAPIである`wibox`を使ってウィジェットのの原型をセットし、これに`vicious`を使って表示させたい情報をセットする。ここではバッテリー状態と音量、Wi-Fiの状態を表示させる。どんな情報を表示させられるのか、詳細は[ここ](http://git.sysphere.org/vicious/tree/README)。 ```lua -- battxtwidget = wibox.widget.textbox() vicious.register(battxtwidget, vicious.widgets.bat, " Battery: $2% ", 60, "BAT0") -- soundwidget = wibox.widget.textbox() vicious.register(soundwidget, vicious.widgets.volume, " Vol: $1 ", 2, "Master") -- wifiwidget = wibox.widget.textbox() vicious.register(wifiwidget, vicious.widgets.wifi, " Wi-Fi: ${ssid} ", 60, "wlp1s0") ``` ウィジェットを作ったら、画面上のレイアウトにウィジェットをセットする。 ```lua -- Widgets that are aligned to the right local right_layout = wibox.layout.fixed.horizontal() -- if s == 1 then right_layout:add(wibox.widget.systray()) end right_layout:add(soundwidget) right_layout:add(battxtwidget) right_layout:add(wifiwidget) right_layout:add(mytextclock) right_layout:add(mylayoutbox[s]) ``` 自分がした設定はこの程度。あとはbeautifulで`theme.font = "sans 10"`の設定でフォントサイズを少し大きくしたぐらいだが、beautifulの設定ファイルを見ればわかる通り、かなり細かく色やら何やら設定ができる。このへんに凝り始めるとキリがないので自分はやめることにしたが、好きな人はやってみたらいいんじゃないですかね。1つ、GitHubですげーカッコイイテーマ配ってるの見つけたんで貼っときます。Samuraizuとか思い出すなー。 * [copycat-killer/awesome-copycats · GitHub](https://github.com/copycat-killer/awesome-copycats)