awesome

From Gentoo Wiki
Jump to:navigation Jump to:search
This page is a translated version of the page Awesome and the translation is 100% complete.

awesome は、高度な設定が可能で、次世代の、X 向けの動的なウィンドウマネージャです。主なターゲットは、パワーユーザーや開発者、その他日常的にコンピュータを扱っていてGUI環境に細かい管理が欲しいと願うすべての人たちに設定されています。プログラミング言語 Lua を使って拡張されます。

前提条件

サービス

これらのうち1つだけを選択します:

  • elogind: スタンドアロンな logind パッケージ。OpenRC またはその他の init システムとの併用のために、systemd プロジェクトから抽出されました。
  • systemd: systemd のセッション追跡部分を利用します。systemd の利用者であればここで何らかの先陣に立ったりせずに済みます。

その他

  • D-Bus: D-Bus メッセージバスシステムの使用を有効化します。
  • polkit: システム全体のサービスへの権限を管理する polkit フレームワークを有功化します。
  • udisks: ストレージ関係のいくつかのサービスのサポートを有効化します。

X サーバ

Xorg/Guide の指示に従って X 環境を構築してください。

X サーバを開始する

X を開始するためには、以下のいずれかの方法を利用することができます:

インストール

USE フラグ

USE flags for x11-wm/awesome Dynamic floating and tiling window manager

dbus Enable dbus support for anything that needs it (gpsd, gnomemeeting, etc)
doc Add extra documentation (API, Javadoc, etc). It is recommended to enable per package instead of globally
gnome Add GNOME support
test Enable dependencies and/or preparations necessary to run tests (usually controlled by FEATURES=test but can be toggled independently)

Emerge

x11-wm/awesome のインストール:

root #emerge --ask x11-wm/awesome

設定

起動

awesome を起動するには、X サーバを開始するの指示に従うか、または startx を利用します。

elogind サポートを使って startx を使うには、elogind を準備したうえで、以下のファイルを作成します:

ファイル ~/.xinitrc
exec dbus-launch --sh-syntax --exit-with-session awesome

設定ファイル

awesomeのデフォルトの設定ファイルは~/.config/awesome/rc.luaに置かれます。そのようなディレクトリファイルが存在しない場合は、自分で作成する必要があります。デフォルトの設定ファイルはawesomeといっしょに提供されていて、/etc/xdg/awesome/rc.luaにあります。この設定ファイルをユーザーのホームディレクトリにコピーしてください。

まずディレクトリawesome/を作成します:

user $mkdir -p ~/.config/awesome/

次に設定ファイルrc.luaをコピーします:

user $cp /etc/xdg/awesome/rc.lua ~/.config/awesome/rc.lua

もしx11-terms/xtermがインストールされていないなら、それをインストールするか、デフォルトの端末エミュレータをシステムで利用可能な端末エミュレータに変更しましょう。デフォルトの端末エミュレータをkde-apps/konsoleに含まれるkonsoleに設定するには、次のようにします:

ファイル ~/.config/awesome/rc.lua
-- This is used later as the default terminal and editor to run.
terminal = "konsole"

設定ファイルを変更した後には、設定ファイルにエラーが無いかチェックするといいでしょう:

user $awesome -k
✔ Configuration file syntax OK

media-gfx/feh パッケージを通じた壁紙サポートを追加:

root #emerge --ask media-gfx/feh

例えば、awsetbgを使って壁紙を設定するには、~/.config/awesome/theme/theme.luaを編集します:

ファイル ~/.config/awesome/theme/theme.luaawsetbgを使って背景を設定する
theme.wallpaper_cmd = { "awsetbg -f .config/awesome/themes/awesome-wallpaper.png" }

あるいは単純に theme の wallpaper プロパティを設定します:

ファイル ~/.config/awesome/theme/theme.luawallpaper プロパティを使って背景を設定する
theme.wallpaper = ".config/awesome/themes/awesome-wallpaper.png"

タグ

awesomeのタグとは、1個以上のアプリケーションが起動している仮想デスクトップに与えられる名前です。タグには好きな記号を付けることができます:

ファイル ~/.config/awesome/rc.lua
-- {{{ Tags
tags = {}
for s = 1, screen.count() do
    tags[s] = awful.tag({ "➊", "➋", "➌", "➍" }, s, layouts[1])
end
-- }}}

メニュー

以下はawesomeメニューのカスタマイズ例です:

ファイル ~/.config/awesome/rc.lua
-- {{{ Menu
myawesomemenu = {
   { "manual", terminal .. " -e man awesome" },
   { "edit config", editor_cmd .. " " .. awesome.conffile },
   { "reload", awesome.restart },
   { "quit", awesome.quit },
   { "reboot", "reboot" },
   { "shutdown", "shutdown" }
}
 
appsmenu = {
   { "urxvt", "urxvt" },
   { "sakura", "sakura" },
   { "ncmpcpp", terminal .. " -e ncmpcpp" },
   { "luakit", "luakit" },
   { "uzbl", "uzbl-browser" },
   { "firefox", "firefox" },
   { "chromium", "chromium" },
   { "thunar", "thunar" },
   { "ranger", terminal .. " -e ranger" },
   { "gvim", "gvim" },
   { "leafpad", "leafpad" },
   { "htop", terminal .. " -e htop" },
   { "sysmonitor", "gnome-system-monitor" }
}
 
gamesmenu = {
   { "warsow", "warsow" },
   { "nexuiz", "nexuiz" },
   { "xonotic", "xonotic" },
   { "openarena", "openarena" },
   { "alienarena", "alienarena" },
   { "teeworlds", "teeworlds" },
   { "frozen-bubble", "frozen-bubble" },
   { "warzone2100", "warzone2100" },
   { "wesnoth", "wesnoth" },
   { "supertuxkart", "supertuxkart" },
   { "xmoto" , "xmoto" },
   { "flightgear", "flightgear" },
   { "snes9x" , "snes9x" }
}
 
mymainmenu = awful.menu({ items = { { "awesome", myawesomemenu },
                                    { "apps", appsmenu },
				    { "games", gamesmenu },
                                    { "terminal", terminal },
				    { "web browser", browser },
				    { "text editor", geditor }
                                  }
                        })
 
mylauncher = awful.widget.launcher({ image = image(beautiful.awesome_icon),
                                     menu = mymainmenu })
-- }}}

日時

以下は日時フォーマットのカスタマイズ例です。フォーマット構文は>%Y-%m-%d %H:%Mです。2番目のオプション 60 は更新間隔(秒)です。

ファイル ~/.config/awesome/rc.luaテキスト時刻ウィジェットを作成する
-- {{{ Wibox
-- テキスト時刻ウィジェットを作成する
mytextclock = wibox.widget.textclock(" %Y-%m-%d %H:%M ", 60)
-- }}}
メモ
フォーマットオプションについての詳しい情報はdate --helpを参照してください。

ボリューム制御

media-sound/volumeicon を使うと、自動で音量キーを扱うことができ、トレイ上のアイコンとして音量レベルを表示できます。

root #emerge --ask media-sound/volumeicon

~/.xinitrcの中からvolumeiconを自動起動します:

ファイル ~/.xinitrcX起動時にvolumeiconをバックグラウンドで起動する
volumeicon &
exec [...]

他に軽量な方法として、ボリュームキーの処理を直接awesome設定ファイルに追加することもできます:

ファイル ~/.config/awesome/rc.lua音量キー
awful.key({ }, "XF86AudioLowerVolume", function () awful.util.spawn("amixer -q sset Master 5%-") end)
awful.key({ }, "XF86AudioRaiseVolume", function () awful.util.spawn("amixer -q sset Master 5%+") end)

MPD マルチメディアキー

MPD 向けのマルチメディアキーバインディングを追加するためには media-sound/mpc をインストールします:

root #emerge --ask media-sound/mpc

次に、マルチメディアキーを適切なコマンドに割り当てるために、awesomeの設定を更新します。

ファイル ~/.config/awesome/rc.lua音量キーの割り当て
awful.key({ }, "XF86AudioNext",function () awful.util.spawn( "mpc next" ) end),
awful.key({ }, "XF86AudioPrev",function () awful.util.spawn( "mpc prev" ) end),
awful.key({ }, "XF86AudioPlay",function () awful.util.spawn( "mpc play" ) end),
awful.key({ }, "XF86AudioStop",function () awful.util.spawn( "mpc pause" ) end),

ウィンドウの隙間をなくす

ターミナルのウィンドウ間では特に、ウィンドウ間の隙間が見えることがあるでしょう。これらは次のように size_hints_honor = false プロパティを awful.rules.rules テーブルの中に挿入することで消すことができます:

ファイル ~/.config/awesome/rc.luasize_hints_honor プロパティを設定する
awful.rules.rules = {
    { rule = { },
      properties = { size_hints_honor = false, -- Remove gaps
                     border_width = beautiful.border_width,
                     border_color = beautiful.border_normal,
      ...

Xephyr を使ってコンフィグをデバッグする

Xephyr は X サーバの実体をクライアントウィンドウの中に作成して、新しいコンフィグファイルをデバッグするのに有用なツールです。

user $Xephyr -ac -nolisten tcp -br -noreset -screen 800x600 :1

このコマンドで 800x600 のウィンドウを開きます。awesome をこの中で動かすには、新しいターミナルで次のコマンドを実行します。

user $DISPLAY=:1.0 awesome

これでウィンドウの中で awesome を起動できます。

キーボード・ショートカット

これらは最もよく使うデフォルトのキーボードショートカットです:

  • Super+Mouse1 = マウスでクライアントを移動する
  • Super+Mouse2 = マウスでクライアントをリサイズする
  • Super+Enter = 端末を開く
  • Super+r = コマンドを実行する
  • Super+Shift+c = 終了
  • Super+m = 最大化
  • Super+n = 最小化
  • Super+Ctrl+n = 最小化したクライアントを元に戻す
  • Super+f = フルスクリーン
  • Super+Tab = 前のクライアントに切り替える
  • Super+Ctrl+space = フロート化
  • Super+j = 左のクライアントをハイライト
  • Super+k = 右のクライアントをハイライト
  • Super+Shift+j = クライアントを右に動かす
  • Super+Shift+k = クライアントを左に動かす
  • Super+l = タイル型のクライアントをリサイズ
  • Super+h = タイル型のクライアントをリサイズ
  • Super+left / right = タグを切り替える
  • Super+1-9 = タグを切り替える
  • Super+Shift+1-9 = クライアントをタグへ移動

awesome をより使いやすくするため、Alt+Tab のようなカスタムキーバインディングを設定することもできます。例えば Alt+Tab で一つ前のウィンドウに切り替えられるようにする場合は次のようにします。

ファイル ~/.config/awesome/rc.luaAlt-TAB キーバインディング
-- {{{ Key bindings
globalkeys = awful.util.table.join(
...
    -- alt + tab
    awful.key({ "Mod1", }, "Tab",
        function ()
            awful.client.focus.history.previous()
            if client.focus then
                client.focus:raise()
            end
        end),
-- }}}

外部資料