「Awesome」の版間の差分

提供: ArchWiki
ナビゲーションに移動 検索に移動
(文字列「Tips and tricks」を「ヒントとテクニック」に置換)
(3人の利用者による、間の10版が非表示)
10行目: 10行目:
 
[[ru:Awesome]]
 
[[ru:Awesome]]
 
[[sv:Awesome]]
 
[[sv:Awesome]]
[[zh-CN:Awesome]]
+
[[zh-hans:Awesome]]
  +
{{Related articles start}}
[[Wikipedia:awesome (window manager)|awesome]] ウェブサイトより:
 
  +
{{Related|ウィンドウマネージャ}}
  +
{{Related|タイル型ウィンドウマネージャの比較}}
  +
{{Related|デスクトップ環境}}
  +
{{Related|ディスプレイマネージャ}}
  +
{{Related|ファイルマネージャの機能}}
  +
{{Related|Xdg-menu}}
  +
{{Related articles end}}
  +
[https://awesomewm.org/ awesome のウェブサイト] より:
   
:''[http://awesome.naquadah.org/ awesome] は高度に設定可能な、次世代の X フレームワークウィンドウマネージャです。高速に動作し、拡張しやすく、GNU GPLv2 ライセンスを使っています。awesome はパワーユーザーや開発者など、日常的に PC を使い、きめ細かいグラフィカル環境を求めている全ての人をターゲットにしています。''
+
:''awesome は高度に設定可能な、次世代の X フレームワークウィンドウマネージャです。高速に動作し、拡張しやすく、GNU GPLv2 ライセンスを使っています。awesome はパワーユーザーや開発者など、日常的に PC を使い、きめ細かいグラフィカル環境を求めている全ての人をターゲットにしています。''
   
 
==インストール==
 
==インストール==
   
  +
{{pkg|awesome}} パッケージを[[インストール]]してください。開発版を使うには、[[Arch User Repository|AUR]] の {{AUR|awesome-git}} をインストールしてください。開発版は不安定で、設定 API が異なっている可能性があります。
{{pkg|awesome}} は[[公式リポジトリ]]からインストールします。
 
   
  +
[[xinitrc]] から awesome を起動するには、{{ic|~/.xinitrc}} に {{Ic|exec awesome}} を追加してください。パッケージに含まれている [[xsession]] ファイルを使用する場合は、[[ディスプレイマネージャ]]を見てください。
プレリリース版を使うには、[[Arch User Repository|AUR]] の {{AUR|awesome-git}} を使って下さい。安定していないと考えられるバージョンで、設定構文が異なっているかもしれません。
 
   
== awesome を起動 ==
+
=== KDM ===
 
=== ログインマネージャを使わずに起動 ===
 
ログインマネージャを使わずに awesome を起動するには、シンプルにスタートアップスクリプト (例: {{ic|~/.xinitrc}}) に {{Ic|exec awesome}} を追加してください。
 
 
logind (または consolekit) セッションを維持する方法などについては [[xinitrc]] を見て下さい。
 
 
ログインさえせずに awesome を起動させることも可能です。[[ログイン時に X を起動]]を見て下さい。
 
 
=== ログインマネージャで起動 ===
 
ログインマネージャから awesome を起動するには、[[ディスプレイマネージャ]]を見て下さい。
 
 
==== KDM ====
 
 
root で作成:
 
root で作成:
   
47行目: 43行目:
 
=== GNOME のウィンドウマネージャとして使う ===
 
=== GNOME のウィンドウマネージャとして使う ===
 
GNOME には"すぐに使える"というアドバンテージがあります。awesome をビジュアルインターフェースとして使うために GNOME をセットアップすることもできますが、GNOME がバックグラウンドで動いているということはあなたのプレッシャーになるかもしれません。GNOME 3 を使っているならば、シンプルに {{AUR|awesome-gnome}} をインストールして、GDM でログインするときに "Awesome GNOME" セッションを選ぶということもできます。詳しくは [http://awesome.naquadah.org/wiki/Quickly_Setting_up_Awesome_with_Gnome awesome wiki] を見て下さい。
 
GNOME には"すぐに使える"というアドバンテージがあります。awesome をビジュアルインターフェースとして使うために GNOME をセットアップすることもできますが、GNOME がバックグラウンドで動いているということはあなたのプレッシャーになるかもしれません。GNOME 3 を使っているならば、シンプルに {{AUR|awesome-gnome}} をインストールして、GDM でログインするときに "Awesome GNOME" セッションを選ぶということもできます。詳しくは [http://awesome.naquadah.org/wiki/Quickly_Setting_up_Awesome_with_Gnome awesome wiki] を見て下さい。
  +
  +
=== XFCE ===
  +
[[Xfce#デフォルトウィンドウマネージャ]]を見てください。
   
 
==設定==
 
==設定==
60行目: 59行目:
 
awesome がアップデートされると設定ファイルのシンタックスはしばしば変更されます。よって、awesome に問題が起こったり、設定を変更しようとする時は、上のコマンドを繰り返すことを覚えておいて下さい。
 
awesome がアップデートされると設定ファイルのシンタックスはしばしば変更されます。よって、awesome に問題が起こったり、設定を変更しようとする時は、上のコマンドを繰り返すことを覚えておいて下さい。
   
awesome の設定について詳しくは、[http://awesome.naquadah.org/wiki/Awesome_3_configuration awesome wikiフィグレーションページ]を見て下さい。
+
awesome の設定について詳しくは、[https://awesomewm.org/apidoc/documentation/90-FAQ.md.html#Configuration awesome のドキュメトの設定セクション] を見て下さい。
   
 
===設定のサンプル===
 
===設定のサンプル===
69行目: 68行目:
 
* https://github.com/setkeh/Awesome-Laptop-3.5 - [[en2:User:Setkeh|Setkeh]] の 3.5 の設定。
 
* https://github.com/setkeh/Awesome-Laptop-3.5 - [[en2:User:Setkeh|Setkeh]] の 3.5 の設定。
 
* http://awesome.naquadah.org/wiki/User_Configuration_Files - awesome ホームページに載っているユーザー設定コレクション。
 
* http://awesome.naquadah.org/wiki/User_Configuration_Files - awesome ホームページに載っているユーザー設定コレクション。
  +
* https://github.com/copycat-killer/awesome-copycats - 様々なテーマやステータスバーに対応するユーザー設定。
   
 
=== 拡張 ===
 
=== 拡張 ===
82行目: 82行目:
 
| 開かれているクライアントを一望する
 
| 開かれているクライアントを一望する
 
|-
 
|-
|
+
|
* [http://awesome.naquadah.org/wiki/Eminent Eminent]
 
 
* [http://awesome.naquadah.org/wiki/Shifty Shifty]
 
* [http://awesome.naquadah.org/wiki/Shifty Shifty]
 
| 動的タグ
 
| 動的タグ
 
|-
 
|-
 
|
 
|
* [http://awesome.naquadah.org/wiki/Naughty Naughty]
+
* [https://awesomewm.org/apidoc/libraries/naughty.html Naughty]
 
| ポップアップ通知
 
| ポップアップ通知
 
|-
 
|-
105行目: 104行目:
 
=== キーボードレイアウトの変更 ===
 
=== キーボードレイアウトの変更 ===
   
  +
キーボードレイヤーを設定する方法は複数存在します。デフォルト設定ではレイアウトウィジェットが有効になっていますが、選択肢がないかぎり表示されません。一時的に複数のレイヤーを設定するには、以下のコマンドを実行:
[http://awesome.naquadah.org/wiki/Change_keyboard_maps#Display.2Fchange_keyboard_map awesome wiki] や [[Xorg でのキーボード設定]]を見て下さい。
 
  +
  +
$ setxkbmap -layout "us,jp"
  +
  +
awesome のキーボードウィジェットが表示され、クリックすることでレイアウトを切り替えることが可能です。ショートカットキーでレイアウトを変更したい場合、{{ic|-option "grp:alt_shift_toggle"}} を追加してください。{{ic|Shift+Alt}} を押すことでレイアウトが変更できるようになります。例:
  +
  +
$ setxkbmap -layout "us,jp" -option "grp:alt_shift_toggle"
  +
  +
レイアウトを設定する適切なコマンドを決めたら、[[#Autorun プログラム]]に追加してください。
  +
  +
[[Xorg でのキーボード設定]]も見てください。
   
 
===テーマ===
 
===テーマ===
114行目: 123行目:
 
beautiful.init(awful.util.getdir("config") .. "/themes/default/theme.lua")
 
beautiful.init(awful.util.getdir("config") .. "/themes/default/theme.lua")
   
  +
テーマオプションについては [https://awesomewm.org/apidoc/libraries/beautiful.html] を参照してください。例えば隙間を追加するには、{{ic|rc.lua}} のテーマセクションに以下を追加します:
詳しくは [http://awesome.naquadah.org/wiki/Beautiful] や [http://awesome.naquadah.org/wiki/Beautiful_themes] を参照。
 
  +
  +
beautiful.useless_gap = 5
   
 
==== 壁紙 ====
 
==== 壁紙 ====
133行目: 144行目:
 
ランダムに背景画像を変えるには、[https://gist.github.com/anonymous/37f3b1c58d6616cab756] を {{ic|rc.lua}} (v3.5+) に追加してください。特定のディレクトリから自動的に画像を取得するには [https://gist.github.com/anonymous/9072154f03247ab6e28c] を使って下さい。
 
ランダムに背景画像を変えるには、[https://gist.github.com/anonymous/37f3b1c58d6616cab756] を {{ic|rc.lua}} (v3.5+) に追加してください。特定のディレクトリから自動的に画像を取得するには [https://gist.github.com/anonymous/9072154f03247ab6e28c] を使って下さい。
   
  +
{{ic|rc.lua}} で壁紙を指定したい場合、テーマセクションに以下の行を追加してください:
== Tips and tricks ==
 
  +
  +
beautiful.wallpaper = awful.util.get_configuration_dir() .. "path/to/wallpaper.png"
  +
  +
{{ic|awful.util.get_configuration_dir()}} は {{ic|rc.lua}} のパスを返します。
  +
  +
== ヒントとテクニック ==
   
 
=== wibox を表示・隠す===
 
=== wibox を表示・隠す===
139行目: 156行目:
 
Modkey-b でデフォルトステータスバーの表示を切り替えるようマップするには (awesome 2.3 でのデフォルト)、{{ic|rc.lua}} の ''globalkeys'' に以下を追加してください:
 
Modkey-b でデフォルトステータスバーの表示を切り替えるようマップするには (awesome 2.3 でのデフォルト)、{{ic|rc.lua}} の ''globalkeys'' に以下を追加してください:
   
awful.key({ modkey }, "b", function ()
+
awful.key({ modkey }, "b",
  +
function ()
mywibox[mouse.screen].visible = not mywibox[mouse.screen].visible
 
  +
myscreen = awful.screen.focused()
end),
 
  +
myscreen.mywibox.visible = not myscreen.mywibox.visible
  +
end,
  +
{description = "toggle statusbar"}
  +
),
   
 
===printscreen を有効にする===
 
===printscreen を有効にする===
158行目: 179行目:
   
 
PrtScr ボタンを押すと、次のように出力されるはずです:
 
PrtScr ボタンを押すと、次のように出力されるはずです:
KeyPress event ....
+
KeyPress event ....
root 0x25c, subw 0x0, ...
+
root 0x25c, subw 0x0, ...
state 0x0, keycode 107 (keysym 0xff61, '''Print'''), same_screen YES,
+
state 0x0, keycode 107 (keysym 0xff61, '''Print'''), same_screen YES,
....
+
....
   
 
上の場合、キーの名前は Print です。
 
上の場合、キーの名前は Print です。
169行目: 190行目:
 
globalkeys がある場所に次の Lua コードを加えて下さい:
 
globalkeys がある場所に次の Lua コードを加えて下さい:
   
awful.key({ }, "Print", function () awful.util.spawn("scrot -e 'mv $f ~/screenshots/ 2>/dev/null'") end),
+
awful.key({ }, "Print", function () awful.util.spawn("scrot -e 'mv $f ~/screenshots/ 2>/dev/null'", false) end),
   
 
また、上のコードでは ~/screenshots/ にスクリーンショットを保存します、あなたが保存したい場所に編集してください。
 
また、上のコードでは ~/screenshots/ にスクリーンショットを保存します、あなたが保存したい場所に編集してください。
188行目: 209行目:
   
 
===ポップアップメニュー===
 
===ポップアップメニュー===
awesome3 ではデフォルトでシンプルなメニューがありますが、メニューをカスタマイズすることも簡単にできます。ただし、あなたが 2.x の awesome を使っている場合は、''[http://awesome.naquadah.org/wiki/Awful.menu awful.menu]'' を見てさい。
+
awesome3 ではデフォルトでシンプルなメニューがありますが、メニューをカスタマイズすることも簡単にできます。ただし、あなたが 2.x の awesome を使っている場合は、[http://awesome.naquadah.org/wiki/Awful.menu awful.menu] を見てください。
   
freedesktop.org メニューが作りたいのなら、''[https://github.com/terceiro/awesome-freedesktop awesome-freedesktop]'' を見てさい。
+
freedesktop.org メニューが作りたいのなら、[https://github.com/copycat-killer/awesome-freedesktop awesome-freedesktop] を見てください。
   
 
サンプル:
 
サンプル:
278行目: 299行目:
   
 
===Autorun プログラム===
 
===Autorun プログラム===
''[https://awesome.naquadah.org/wiki/Autostart Awesome wiki の Autostart ページ]も見て下さい。''
 
   
  +
プログラムを自動実行するには、以下のコマンドでシェルスクリプトを作成してください:
GNOME や KDE とは異なり、awesome は Freedesktop の仕様による autostart にセットされたプログラムを起動しません。しかし、awesome にはプログラムを起動するための機能が (Lua の標準ライブラリの関数である {{Ic|os.execute}} に加えて) 少しばかりあります。GNOME や KDE のようにスタートアップで同じプログラムを起動するには、[[Arch User Repository|AUR]] から {{Pkg|dex}} をインストールして rc.lua から dex を実行してください:
 
  +
$ touch ~/.config/awesome/autorun.sh
  +
そして以下のコマンドで実行可能属性を付与してください:
  +
$ chmod +x ~/.config/awesome/autorun.sh
  +
エディタで {{ic|autorun.sh}} を開いて以下の行を書き込みます:
  +
{{hc|head=.config/awesome/autorun.sh|output=
  +
#!/usr/bin/env bash
   
  +
function run {
os.execute"dex -a -e Awesome"
 
  +
if ! pgrep $1 ;
  +
then
  +
$@&
  +
fi
  +
}
  +
}}
   
  +
{{ic|autorun.sh}} に {{ic|run program [some arguments]}} を追加することで自動実行するプログラムを追加することができます。{{ic|run}} 関数は {{ic|program}} のインスタンスが実行されていないか確認して、インスタンスが存在しない場合のみ {{ic|program}} を起動します。{{ic|autorun.sh}} を確認するには:
スタートアップ時に awesome が起動するアプリケーションのリストをセットアップすることもできます。全てのコマンドの表を作成して、spawn をループで回します:
 
   
  +
$ ~/.config/awesome/autorun.sh
do
 
local cmds =
 
{
 
"swiftfox",
 
"mutt",
 
"consonance",
 
"linux-fetion",
 
"weechat-curses",
 
--and so on...
 
}
 
 
for _,i in pairs(cmds) do
 
awful.util.spawn(i)
 
end
 
end
 
   
  +
問題がなければ、以下の行を {{ic|rc.lua}} に追加してください:
({{Ic|os.execute}} コマンドに '{{Ic|&}}' を付けて実行呼び出しをすることもできますが、ちゃんとした spawn 関数を使ったほうがおそらくベターでしょう。)
 
   
  +
{{hc|head=.config/awesome/rc.lua|output=
実行していないプログラムだけを走らせるには、{{Ic|pgrep}} で実行中のプロセスに同じ名前がない見つからないときだけプログラムを走らせるシェルコマンドと spawn を使いましょう:
 
  +
...
function run_once(prg)
 
  +
awful.spawn.with_shell("~/.config/awesome/autorun.sh")
awful.util.spawn_with_shell("pgrep -u $USER -x " .. prg .. " || (" .. prg .. ")")
 
  +
...
end
 
  +
}}
 
例えば、{{Ic|parcellite}} プロセスが実行中でないときだけ {{Ic|parcellite}} を実行するには:
 
   
  +
[[自動起動]]も参照。
run_once("parcellite")
 
   
 
===テキストを awesome-client を使ってウィジェットに渡す===
 
===テキストを awesome-client を使ってウィジェットに渡す===
344行目: 361行目:
 
awful.button({ }, 3, function () mymainmenu:toggle() end)))
 
awful.button({ }, 3, function () mymainmenu:toggle() end)))
 
-- }}}
 
-- }}}
  +
  +
=== メディアコントロール ===
  +
  +
({{pkg|alsa-utils}} パッケージに含まれている) amixer と {{Pkg|playerctl}} を組み合わせることでボリュームや再生をコントロールできます。{{ic|rc.lua}} 設定ファイルのキーバインドセクションに以下を追加してください:
  +
  +
-- Volume Keys
  +
awful.key({}, "XF86AudioLowerVolume", function ()
  +
awful.util.spawn("amixer -q -D pulse sset Master 5%-", false)
  +
end),
  +
awful.key({}, "XF86AudioRaiseVolume", function ()
  +
awful.util.spawn("amixer -q -D pulse sset Master 5%+", false)
  +
end),
  +
awful.key({}, "XF86AudioMute", function ()
  +
awful.util.spawn("amixer -D pulse set Master 1+ toggle", false)
  +
end),
  +
-- Media Keys
  +
awful.key({}, "XF86AudioPlay", function()
  +
awful.util.spawn("playerctl play-pause", false)
  +
end),
  +
awful.key({}, "XF86AudioNext", function()
  +
awful.util.spawn("playerctl next", false)
  +
end),
  +
awful.key({}, "XF86AudioPrev", function()
  +
awful.util.spawn("playerctl previous", false)
  +
end)
   
 
==トラブルシューティング==
 
==トラブルシューティング==
358行目: 400行目:
 
2011年7月現在、以上のことは {{AUR|awmtt}} でも可能です。
 
2011年7月現在、以上のことは {{AUR|awmtt}} でも可能です。
   
===LibreOffice===
+
=== ログファイル ===
libreoffice の UI に問題がでる場合は libreoffice-gnome をインストールしてください。
 
   
  +
[[LightDM]] を使っている場合、awesome はエラーのログを {{ic|$HOME/.xsession-errors}} に出力します。{{ic|.xinitrc}} を使って awesome を起動している場合、[http://awesome.naquadah.org/wiki/FAQ#Where_are_logs.2C_error_messages_or_something.3F FAQ のエントリ] が参考になるはずです。
===Mod4 キー===
 
   
  +
===Mod4 キー===
デフォルトで Mod4 は '''Win キー''' です。何らかの理由でデフォルトでマップされていない場合、Mod4 キーのキーコードをチェックするには:
 
 
$ xev
 
   
  +
Awesome は {{ic|mod4}} をリマップすることを推奨しており、デフォルトでは '''Win キー'''になります。何らかの理由で {{ic|mod4}} にマップされていない場合、[[xmodmap]] を使って何になっているのか確認してください。マッピングを変更するには、{{ic|xev}} を使ってマップされているキーのキーコードと名前を確認してください。そして、{{ic|~/.xinitrc}} に以下のように追記します:
左の Win キーは 115 のはずです。以下を ~/.xinitrc に追加してください
 
   
 
xmodmap -e "keycode 115 = Super_L" -e "add mod4 = Super_L"
 
xmodmap -e "keycode 115 = Super_L" -e "add mod4 = Super_L"
401行目: 440行目:
 
(mod4 + 右・左クリックを使って)メインウィンドウが移動・リサイズできない場合、workbench.xml を編集して fullscreen/maximized を false に設定し、幅と高さの数字をデスクトップ画面の大きさよりも小さくしてください。
 
(mod4 + 右・左クリックを使って)メインウィンドウが移動・リサイズできない場合、workbench.xml を編集して fullscreen/maximized を false に設定し、幅と高さの数字をデスクトップ画面の大きさよりも小さくしてください。
 
{{Note|workbench.xml は <eclipse_workspace>/.metadata/.plugins/org.eclipse.ui.workbench/ にあり、編集する行は <window height&#61;"xx" maximized&#61;"true" width&#61;"xx" x&#61;"xx" y&#61;"xx"> です。}}
 
{{Note|workbench.xml は <eclipse_workspace>/.metadata/.plugins/org.eclipse.ui.workbench/ にあり、編集する行は <window height&#61;"xx" maximized&#61;"true" width&#61;"xx" x&#61;"xx" y&#61;"xx"> です。}}
  +
  +
=== scrot: キーボードショートカットを使ってマウスで選択した範囲のスクリーンショットが取れない ===
  +
  +
[[スクリーンショットの取得#scrot|scrot]] を使用する場合、キーボードショートカットにマウス選択オプション ({{ic|scrot -s}}) を割り当てられない問題がおきます。解決するには、以下の行を {{ic|rc.lua}} に追加してください:
  +
  +
awful.key( { modkey, }, <shortcut>, function () awful.util.spawn_with_shell("sleep 0.5 && scrot -s") end)
   
 
===YouTube: フルスクリーンが裏に表示される===
 
===YouTube: フルスクリーンが裏に表示される===
422行目: 467行目:
   
 
awful.key({ modkey, }, "w", function () awful.util.spawn_with_shell("luakit 2>>/tmp/luakit.log") end),
 
awful.key({ modkey, }, "w", function () awful.util.spawn_with_shell("luakit 2>>/tmp/luakit.log") end),
  +
  +
=== Xdg-menu によって生成されるメニューエントリが重複する ===
  +
  +
{{ic|/usr/share/applications}} から {{ic|~/.local/share/applications}} にデスクトップファイルをコピーすると、Xdg-menu は重複したエントリを生成します。awk を使って同じ名前のエントリを排除することで解決できます:
  +
  +
$ xdg_menu --format awesome --root-menu /etc/xdg/menus/arch-applications.menu | awk -F, '{if (a!=$1) print $a; a=$1}' >~/.config/awesome/archmenu.lua
  +
  +
=== Xfce4 で一部のショートカットキーが機能しない ===
  +
以下のコマンドを実行して、"Super L" などの Awesome によって実行されるキーが重なっていないか確認してください:
  +
$ xfce4-keyboard-settings
   
 
==参照==
 
==参照==
* http://awesome.naquadah.org/wiki/FAQ - FAQ
+
* https://awesomewm.org/apidoc/documentation/90-FAQ.md.html - FAQ
* http://www.lua.org/pil/ - Programming in Lua (first edition)
+
* http://www.lua.org/pil/ - Lua プログラミング (第1版)
* http://awesome.naquadah.org/ - awesome 公式ウェブサイト
+
* https://awesomewm.org/ - awesome 公式ウェブサイト
  +
* https://awesomewm.org/apidoc/ - awesome API ドキュメント
* http://awesome.naquadah.org/wiki/Main_Page - the awesome wiki
 
 
* https://bbs.archlinux.org/viewtopic.php?id=88926 - share your awesome!
 
* https://bbs.archlinux.org/viewtopic.php?id=88926 - share your awesome!

2017年10月12日 (木) 23:16時点における版

関連記事

awesome のウェブサイト より:

awesome は高度に設定可能な、次世代の X フレームワークウィンドウマネージャです。高速に動作し、拡張しやすく、GNU GPLv2 ライセンスを使っています。awesome はパワーユーザーや開発者など、日常的に PC を使い、きめ細かいグラフィカル環境を求めている全ての人をターゲットにしています。

目次

インストール

awesome パッケージをインストールしてください。開発版を使うには、AURawesome-gitAUR をインストールしてください。開発版は不安定で、設定 API が異なっている可能性があります。

xinitrc から awesome を起動するには、~/.xinitrcexec awesome を追加してください。パッケージに含まれている xsession ファイルを使用する場合は、ディスプレイマネージャを見てください。

KDM

root で作成:

/usr/share/apps/kdm/sessions/awesome.desktop
[Desktop Entry]
Name=Awesome
Comment=Tiling Window Manager
Type=Application
Exec=/usr/bin/awesome
TryExec=/usr/bin/awesome

GNOME のウィンドウマネージャとして使う

GNOME には"すぐに使える"というアドバンテージがあります。awesome をビジュアルインターフェースとして使うために GNOME をセットアップすることもできますが、GNOME がバックグラウンドで動いているということはあなたのプレッシャーになるかもしれません。GNOME 3 を使っているならば、シンプルに awesome-gnomeAUR をインストールして、GDM でログインするときに "Awesome GNOME" セッションを選ぶということもできます。詳しくは awesome wiki を見て下さい。

XFCE

Xfce#デフォルトウィンドウマネージャを見てください。

設定

Awesome にはすぐに使えるデフォルト設定がありますが、遅かれ早かれあなたは設定を変更したくなるでしょう。lua ベースの設定ファイルが ~/.config/awesome/rc.lua にあります。

設定ファイルを作成

まず、以下を実行して次のステップで必要なディレクトリを作成します:

$ mkdir -p ~/.config/awesome/

コンパイルした時はいつでも、awesome は ~/.config/awesome/rc.lua に含まれている全てのカスタム設定を使おうとします。デフォルトではこのファイルは作られないので、最初にテンプレートファイルからコピーしてくる必要があります:

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

awesome がアップデートされると設定ファイルのシンタックスはしばしば変更されます。よって、awesome に問題が起こったり、設定を変更しようとする時は、上のコマンドを繰り返すことを覚えておいて下さい。

awesome の設定について詳しくは、awesome のドキュメントの設定セクション を見て下さい。

設定のサンプル

ノート: awesome の設定構文は定期的に変わるので、ダウンロードしたファイルに修正を入れる必要があるかもしれません。

rc.lua のサンプルは以下にあります:

拡張

awesome (3.5+) にはいくつか拡張が存在します:

拡張 機能
開かれているクライアントを一望する
動的タグ
ポップアップ通知
追加 ウィジェット
インスタンスが存在しない場合にプログラムを起動、またはジャンプ

キーボードレイアウトの変更

キーボードレイヤーを設定する方法は複数存在します。デフォルト設定ではレイアウトウィジェットが有効になっていますが、選択肢がないかぎり表示されません。一時的に複数のレイヤーを設定するには、以下のコマンドを実行:

$ setxkbmap -layout "us,jp"

awesome のキーボードウィジェットが表示され、クリックすることでレイアウトを切り替えることが可能です。ショートカットキーでレイアウトを変更したい場合、-option "grp:alt_shift_toggle" を追加してください。Shift+Alt を押すことでレイアウトが変更できるようになります。例:

$ setxkbmap -layout "us,jp" -option "grp:alt_shift_toggle"

レイアウトを設定する適切なコマンドを決めたら、#Autorun プログラムに追加してください。

Xorg でのキーボード設定も見てください。

テーマ

Beautiful という lua ライブラリを使うことで awesome にテーマを適用するのに外部ファイルを使うことができるようになります。rc.lua を修正せずに動的に awesome のカラーや壁紙を変更できるためとても便利です。

デフォルトのテーマは /usr/share/awesome/themes/default です。これを ~/.config/awesome/themes/default にコピーして rc.luatheme_path を変更してください。

beautiful.init(awful.util.getdir("config") .. "/themes/default/theme.lua")

テーマオプションについては [1] を参照してください。例えば隙間を追加するには、rc.lua のテーマセクションに以下を追加します:

beautiful.useless_gap = 5

壁紙

Beautiful が壁紙を管理できるので、.xinitrc.xsession などのファイルで壁紙を設定する必要はありません。またテーマごとに特定の壁紙を使うようにすることもできます。

Awesome バージョン 3.5 では awsetbg コマンドが存在しません。代わりに gears モジュールを使います。theme.lua で壁紙を設定するには:

theme.wallpaper = "~/.config/awesome/themes/awesome-wallpaper.png"

壁紙をロードするには、rc.lua に以下が記述されている必要があります:

beautiful.init("~/.config/awesome/themes/default/theme.lua")
for s = 1, screen.count() do
	gears.wallpaper.maximized(beautiful.wallpaper, s, true)
end

ランダムに背景画像を変えるには、[2]rc.lua (v3.5+) に追加してください。特定のディレクトリから自動的に画像を取得するには [3] を使って下さい。

rc.lua で壁紙を指定したい場合、テーマセクションに以下の行を追加してください:

beautiful.wallpaper = awful.util.get_configuration_dir() .. "path/to/wallpaper.png"

awful.util.get_configuration_dir()rc.lua のパスを返します。

ヒントとテクニック

wibox を表示・隠す

Modkey-b でデフォルトステータスバーの表示を切り替えるようマップするには (awesome 2.3 でのデフォルト)、rc.luaglobalkeys に以下を追加してください:

awful.key({ modkey }, "b",
          function ()
              myscreen = awful.screen.focused()
              myscreen.mywibox.visible = not myscreen.mywibox.visible
          end,
          {description = "toggle statusbar"}
),

printscreen を有効にする

awesome で PrtScr ボタンを有効にするにはスクリーンキャプチャプログラムが必要です。Arch リポジトリから簡単に使える Scrot がいいでしょう。

次を実行してください:

# pacman -S scrot

必要な依存ライブラリもインストールしてください。

次に PrtScr のキーの名前を調べます、ほとんど場合 "Print" ですが確認するに越したことはありません。

次を実行してください:

# xev

PrtScr ボタンを押すと、次のように出力されるはずです:

KeyPress event ....
    root 0x25c, subw 0x0, ...
    state 0x0, keycode 107 (keysym 0xff61, Print), same_screen YES,
    ....

上の場合、キーの名前は Print です。

さあ awesome の設定をしましょう!

globalkeys がある場所に次の Lua コードを加えて下さい:

awful.key({ }, "Print", function () awful.util.spawn("scrot -e 'mv $f ~/screenshots/ 2>/dev/null'", false) end),

また、上のコードでは ~/screenshots/ にスクリーンショットを保存します、あなたが保存したい場所に編集してください。

動的タグ

Eminent は小さな lua ライブラリで、wmii-スタイルの動的タグを簡単に使えるようにするためのモンキーパッチです。shifty とは違い、eminent は完全なタグシステムを提供することは目指しておらず、動的タグをできるだけシンプルに実装しています。実際、eminent ライブラリを使うのに、rc.lua を修正する必要は全くありません。eminent は自立して働きます。

Shifty は動的タグ機能の Awesome 3 拡張です。また、2つのシンプルな設定変数とキーバインドを設定するだけで、あなたをデスクトップのマスターたらしめる、設定に匹敵する素晴らしいクライアントを実装しています。

スペースインベーダー

Space Invaders は Awesome Lua API の可能性を示すためのデモです。

3.4-rc1 リリースからの Awesome パッケージには含まれていません。

Naughty ポップアップ通知

naughty についての awesome wiki ページを見て下さい。

ポップアップメニュー

awesome3 ではデフォルトでシンプルなメニューがありますが、メニューをカスタマイズすることも簡単にできます。ただし、あなたが 2.x の awesome を使っている場合は、awful.menu を見てください。

freedesktop.org メニューが作りたいのなら、awesome-freedesktop を見てください。

サンプル:

myawesomemenu = {
   { "lock", "xscreensaver-command -activate" },
   { "manual", terminal .. " -e man awesome" },
   { "edit config", editor_cmd .. " " .. awful.util.getdir("config") .. "/rc.lua" },
   { "restart", awesome.restart },
   { "quit", awesome.quit }
}

mycommons = {
   { "pidgin", "pidgin" },
   { "OpenOffice", "soffice-dev" },
   { "Graphic", "gimp" }
}

mymainmenu = awful.menu.new({ items = { 
                                        { "terminal", terminal },
                                        { "icecat", "icecat" },
                                        { "Editor", "gvim" },
                                        { "File Manager", "pcmanfm" },
                                        { "VirtualBox", "VirtualBox" },
                                        { "Common App", mycommons, beautiful.awesome_icon },
                                        { "awesome", myawesomemenu, beautiful.awesome_icon }
                                       }
                             })

awesome のウィジェット

awesome において、ウィジェットとはウィジェットボックス (ステータスバーやタイトルバー) に追加することができるオブジェクトのことであり、システムに関する様々な情報を表示できます。ウィンドウマネージャから情報を読むのに便利です。ウィジェットは簡単に使うことが可能でありながら柔軟性があります。 -- ソース Awesome Wiki: Widgets.

Wicked と呼ばれる広く使われているウィジェットライブラリがあり、MPD ウィジェット、CPU 使用量、メモリ使用量などの多くのウィジェットを提供します。詳しくは Wicked page を見て下さい。

awesome v3.4 で Wicked の代わりになるものとしては Vicious, Obvious, Bashets などがあります。vicious を使うのなら、vicious documentation も見るといいでしょう。

透過

Xorg#コンポジットを見て下さい。

awesome 3.5 では、ウィンドウ透過はシグナルを使って動的に設定することもできます。例えば、あなたの rc.lua に以下を加えることができます:

client.connect_signal("focus", function(c)
                              c.border_color = beautiful.border_focus
                              c.opacity = 1
                           end)
client.connect_signal("unfocus", function(c)
                                c.border_color = beautiful.border_normal
                                c.opacity = 0.7
                             end)

Conky

conky を使っていて、デスクトップの代わりに conky にウィンドウを持たせたい場合、~/.conkyrc を次のように編集してください:

own_window yes
own_window_transparent yes
own_window_type desktop

上記のように設定していないと、全てのウィンドウが完全に透過してしまうなどの不可思議な現象が発生します。また、conky がデスクトップ上に透過ウィンドウを作成すると、awesome の rc.lua で定義したアクションは conky が存在する場所では動作しないので注意してください。

wiboxes

Awesome 3.1 現在、wiboxes 用に擬似透過がビルドインされています。これを有効にするには、テーマファイルに (~/.config/awesome/themes/default, /usr/share/awesome/themes/default のコピー) 次のように色の部分に16進数の値を2つ加えて下さい:

bg_normal = #000000AA

"AA" が透明度になります。

Modkey + PgUp/PgDown によって選択されたウィンドウの透明度を変更するために、community パッケージリポジトリにある transset-df を使って、以下のように rc.lua を修正することもできます:

globalkeys = awful.util.table.join(
    -- your keybindings
    [...]
    awful.key({ modkey }, "Next", function (c)
        awful.util.spawn("transset-df --actual --inc 0.1")
    end),
    awful.key({ modkey }, "Prior", function (c)
        awful.util.spawn("transset-df --actual --dec 0.1")
    end),
    -- Your other key bindings
    [...]
)

ImageMagick

imagemagick の display コマンドで壁紙を設定すると問題が起こるかもしれません、xcompmgr との互換性に問題があるためです。awsetbg に display を使うのは他のオプションを設定していないときだけにしましょう。habak, feh, hsetroot などの代わりのプログラムをインストールしてください (grep -A 1 wpsetters /usr/bin/awsetbg で他のオプションが見れます)。

Autorun プログラム

プログラムを自動実行するには、以下のコマンドでシェルスクリプトを作成してください:

$ touch ~/.config/awesome/autorun.sh

そして以下のコマンドで実行可能属性を付与してください:

$ chmod +x ~/.config/awesome/autorun.sh

エディタで autorun.sh を開いて以下の行を書き込みます:

.config/awesome/autorun.sh
#!/usr/bin/env bash

function run {
  if ! pgrep $1 ;
  then
    $@&
  fi
}

autorun.shrun program [some arguments] を追加することで自動実行するプログラムを追加することができます。run 関数は program のインスタンスが実行されていないか確認して、インスタンスが存在しない場合のみ program を起動します。autorun.sh を確認するには:

$ ~/.config/awesome/autorun.sh

問題がなければ、以下の行を rc.lua に追加してください:

.config/awesome/rc.lua
...
awful.spawn.with_shell("~/.config/awesome/autorun.sh")
...

自動起動も参照。

テキストを awesome-client を使ってウィジェットに渡す

簡単に awesome ウィジェットにテキストを送ることができます。次のように新しいウィジェットを作ります:

 mywidget = widget({ type = "textbox", name = "mywidget" })
 mywidget.text = "initial text"

外部ソースからテキストをアップデートするには、awesome-client を使います:

 
 echo -e 'mywidget.text = "new text"' | awesome-client

ウィジェットを wibox に追加するのを忘れないで下さい。

awesome のデフォルトと違うパネルを使う

あなたが awesome の軽量性と機能性を買ってはいるがそのデフォルトのパネルの見た目が気に入らないときは、xfce4-panel など異なるパネルをインストールできます。

インストールしたら rc.luaautorun セクションに追加してください(方法は割愛)。画面ごとに wibox を作成しているセクション (mywibox[s] = awful.wibox({ position = "top", screen = s }) から始まっているところ) をコメントアウトすることもできますが、特にその必要はありません。ただし次を実行して rc.lua にエラーがないかチェックすることは忘れずに行って下さい:

$ awesome -k rc.lua

また、ビルトインでないアプリケーションランチャー、Xfrun4 や bashrun などを起動するために、modkey+R キーバインドを変えておくべきでしょう。Openbox のページのアプリケーションランチャーのところに例が載っています。rc.lua に以下を追加するのを忘れないで下さい:

      properties = { floating = true } },
    { rule = { instance = "$yourapplicationlauncher" },

マウススクロールがタグを変えるのを防ぐ

rc.lua の Mouse Bindings セクションを次のように変更してください:

-- {{{ Mouse bindings
root.buttons(awful.util.table.join(
    awful.button({ }, 3, function () mymainmenu:toggle() end)))
-- }}}

メディアコントロール

(alsa-utils パッケージに含まれている) amixer と playerctl を組み合わせることでボリュームや再生をコントロールできます。rc.lua 設定ファイルのキーバインドセクションに以下を追加してください:

-- Volume Keys
awful.key({}, "XF86AudioLowerVolume", function ()
  awful.util.spawn("amixer -q -D pulse sset Master 5%-", false)
end),
awful.key({}, "XF86AudioRaiseVolume", function ()
  awful.util.spawn("amixer -q -D pulse sset Master 5%+", false)
end),
awful.key({}, "XF86AudioMute", function ()
  awful.util.spawn("amixer -D pulse set Master 1+ toggle", false)
end),
-- Media Keys
awful.key({}, "XF86AudioPlay", function()
  awful.util.spawn("playerctl play-pause", false)
end),
awful.key({}, "XF86AudioNext", function()
  awful.util.spawn("playerctl next", false)
end),
awful.key({}, "XF86AudioPrev", function()
  awful.util.spawn("playerctl previous", false)
end)

トラブルシューティング

Xephyr を使って rc.lua をデバッグする

デスクトップを壊さずに rc.lua をデバッグする好ましい方法です。まず rc.lua をコピーして新しいファイル、rc.lua.new を作り、そのファイルに必要な修正を加えます。それから awesome の新しいインスタンスを rc.lua.new を設定ファイルとして Xephyr 内で実行します (X の中で他の X クライアントウィンドウを動かす):

$ Xephyr :1 -ac -br -noreset -screen 1152x720 &
$ DISPLAY=:1.0 awesome -c ~/.config/awesome/rc.lua.new

このアプローチの有利な点は、もし rc.lua.new を破壊したときでも、現在の awesome デスクトップを破壊しないということです(全ての X アプリがクラッシュし保存していないファイルが失われることがない)。設定に満足したら、rc.lua.newrc.lua に変えて awesome を再起動します。

2011年7月現在、以上のことは awmttAUR でも可能です。

ログファイル

LightDM を使っている場合、awesome はエラーのログを $HOME/.xsession-errors に出力します。.xinitrc を使って awesome を起動している場合、FAQ のエントリ が参考になるはずです。

Mod4 キー

Awesome は mod4 をリマップすることを推奨しており、デフォルトでは Win キーになります。何らかの理由で mod4 にマップされていない場合、xmodmap を使って何になっているのか確認してください。マッピングを変更するには、xev を使ってマップされているキーのキーコードと名前を確認してください。そして、~/.xinitrc に以下のように追記します:

xmodmap -e "keycode 115 = Super_L" -e "add mod4 = Super_L"
exec awesome

ここでの問題は xorg インストールによってキーコード 115 が、間違って 'Select' キーとして認識されていることです。上記のコマンドはキーコード 115 を正しい 'Super_L' キーにマップし直します。

Mod4 キー vs. IBM ThinkPad

IBM ThinkPad には Windows キーがありません (Lenovo は ThinkPad のこの伝統を変えたみたいですが)。これを書いている時点で、デフォルトの rc.lua では Alt キーはコマンドのコンビネーションとしては使われていません、したがって Alt キーを Super/Mod4/Win キーの代わりとして使うことができます。これをするには、rc.lua を編集して:

modkey = "Mod4"

を次のように変えて下さい:

modkey = "Mod1"

Note: Awesome には Mod4 とシングルレターを使うコマンドが少しだけあります。Mod4 を Mod1/Alt に変えるとキーコンビネーションが重複してしまうかもしれません。そうならないように rc.lua ファイルを修正する必要があるかもしれません。

awesome の標準を変えたくないならば、キーをリマップをするという方法もあります。例えば、caps lock キーをあまり使わないなら、以下を ~/.Xmodmap に加えます

clear lock 
add mod4 = Caps_Lock

そしてこのファイルを(リ)ロードしてください。 これで caps lock キーが mod4 キーになり、標準の awesome 設定でもうまく動くでしょう。さらに、他の X プログラムでも同じように mod4 キーが使えるはずです。

未確認ですが、最近の xorg のパッケージのアップデートで二行目のマッピングが破壊されるときは以下のように置き換えることができます (レフト Super キーのない DasKeyboard で検証):

keysym Caps_Lock = Super_L Caps_Lock

Eclipse: メインウィンドウをリサイズ・移動できない

(mod4 + 右・左クリックを使って)メインウィンドウが移動・リサイズできない場合、workbench.xml を編集して fullscreen/maximized を false に設定し、幅と高さの数字をデスクトップ画面の大きさよりも小さくしてください。

ノート: workbench.xml は <eclipse_workspace>/.metadata/.plugins/org.eclipse.ui.workbench/ にあり、編集する行は <window height="xx" maximized="true" width="xx" x="xx" y="xx"> です。

scrot: キーボードショートカットを使ってマウスで選択した範囲のスクリーンショットが取れない

scrot を使用する場合、キーボードショートカットにマウス選択オプション (scrot -s) を割り当てられない問題がおきます。解決するには、以下の行を rc.lua に追加してください:

awful.key( { modkey,	 }, <shortcut>, function () awful.util.spawn_with_shell("sleep 0.5 && scrot -s") end)

YouTube: フルスクリーンが裏に表示される

[4] フルスクリーンモードにするとビデオがウェブブラウザの下に表示される場合、rc.lua に以下を追加してください

   { rule = { instance = "plugin-container" },
     properties = { floating = true } },

Chromium には

   { rule = { instance = "exe" },
     properties = { floating = true } },

コンソールクライアントを起動する

GTK ターミナル (例: LXTerminal) から呼び出されたコンソールアプリケーションは動作しません。URxvt は動作します。

コンソール出力をファイルに書き出す

端末から GUI アプリケーションを起動すると、アプリケーションによっては端末に大変多くのデータを表示することがあります。結果として、Awesome から起動すると、全てを Awesome が起動している TTY に出力することになり、端末が汚くなることが多々あります。こういったゴミ・アウトプットを削除するには、リダイレクトさせなくてはなりません。しかし、公式 FAQ で書かれているように awful.util.spawn はパイプとリダイレクトをあまりうまく扱えません。

例として、Luakit の出力をテンポラリファイルにリダイレクトしてみましょう:

awful.key({ modkey, }, "w", function () awful.util.spawn_with_shell("luakit 2>>/tmp/luakit.log") end),

Xdg-menu によって生成されるメニューエントリが重複する

/usr/share/applications から ~/.local/share/applications にデスクトップファイルをコピーすると、Xdg-menu は重複したエントリを生成します。awk を使って同じ名前のエントリを排除することで解決できます:

$ xdg_menu --format awesome --root-menu /etc/xdg/menus/arch-applications.menu | awk -F, '{if (a!=$1) print $a; a=$1}' >~/.config/awesome/archmenu.lua

Xfce4 で一部のショートカットキーが機能しない

以下のコマンドを実行して、"Super L" などの Awesome によって実行されるキーが重なっていないか確認してください:

$ xfce4-keyboard-settings

参照