「Awesome」の版間の差分

提供: ArchWiki
ナビゲーションに移動 検索に移動
(→‎Naughty ポップアップ通知: メニューバーのアプリケーションディレクトリを翻訳して追加)
(→‎自動実行: 情報を更新)
 
(同じ利用者による、間の7版が非表示)
2行目: 2行目:
 
[[Category:動的ウィンドウマネージャ]]
 
[[Category:動的ウィンドウマネージャ]]
 
[[Category:タイル型ウィンドウマネージャ]]
 
[[Category:タイル型ウィンドウマネージャ]]
[[cs:Awesome]]
+
[[de:Awesome]]
 
[[en:Awesome]]
 
[[en:Awesome]]
[[es:Awesome]]
 
[[fr:Awesome3]]
 
[[it:Awesome]]
 
[[ko:Awesome]]
 
 
[[ru:Awesome]]
 
[[ru:Awesome]]
[[sv:Awesome]]
 
 
[[zh-hans:Awesome]]
 
[[zh-hans:Awesome]]
 
{{Related articles start}}
 
{{Related articles start}}
29行目: 24行目:
 
== 起動 ==
 
== 起動 ==
   
[[xinitrc]] から awesome を起動するには、{{ic|~/.xinitrc}} に {{Ic|exec awesome}} を追加てくださいパッケージに含まれている [[xsession]] ファイルを使用する場合は、[[ディスプレイマネージャ]]をてください。
+
[[xinit]] を使用して {{ic|awesome}} を実行ます付属の [[xsession]] ファイルを使用するは、[[ディスプレイマネージャ]] 参照してください。
   
=== KDM ===
+
=== GNOME を使用する ===
root で作成:
 
   
  +
[[GNOME]] をセットアップして、awesome をビジュアルインターフェイスとして使用し、GNOME をバックグラウンドで動作させることができます。{{AUR|awesome-gnome}} を参照してください。
{{hc|/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 を使っているならば、シンプルに {{AUR|awesome-gnome}} をインストールして、GDM でログインするときに "Awesome GNOME" セッションを選ぶということもできます。詳しくは [http://awesome.naquadah.org/wiki/Quickly_Setting_up_Awesome_with_Gnome awesome wiki] を見て下さい。
 
   
 
=== XFCE ===
 
=== XFCE ===
  +
[[Xfce#デフォルトウィンドウマネージャ]]を見てください。
 
  +
[[Xfce#別のウィンドウマネージャを使う]] を見てください。
   
 
==設定==
 
==設定==
63行目: 48行目:
 
awesome の設定について詳しくは、[https://awesomewm.org/apidoc/documentation/90-FAQ.md.html#Configuration awesome のドキュメントの設定セクション] を見て下さい。
 
awesome の設定について詳しくは、[https://awesomewm.org/apidoc/documentation/90-FAQ.md.html#Configuration awesome のドキュメントの設定セクション] を見て下さい。
   
====設定のサンプル====
+
==== 設定のサンプル ====
  +
 
{{Note|awesome の設定構文は定期的に変わるので、ダウンロードしたファイルに修正を入れる必要があるかもしれません。}}
 
{{Note|awesome の設定構文は定期的に変わるので、ダウンロードしたファイルに修正を入れる必要があるかもしれません。}}
   
 
rc.lua のサンプルは以下にあります:
 
rc.lua のサンプルは以下にあります:
   
* https://github.com/setkeh/Awesome-Laptop-3.5 - [[en2:User:Setkeh|Setkeh]] の 3.5 の設定。
+
* [https://github.com/awesomeWM/awesome/issues/1395 Awesome スクリーンショットスレッド]
  +
* [https://github.com/setkeh/Awesome Setkeh's Awesome 設定]
* http://awesome.naquadah.org/wiki/User_Configuration_Files - awesome ホームページに載っているユーザー設定コレクション。
 
* https://github.com/copycat-killer/awesome-copycats - 様々なテーマやステータスバーに対応するユーザー設定
+
* [https://github.com/copycat-killer/awesome-copycats ステータスバーなど、さまざまなテーマをサポートするユーザー設定]
  +
* [https://github.com/WillPower3309/awesome-dotfiles 2 つのモダンなテーマを備えた設定]
   
 
=== 拡張 ===
 
=== 拡張 ===
   
awesome (3.5+) にはいくつか拡張が存在します:
+
awesome にはいくつか拡張が存在します:
   
 
{| class="wikitable"
 
{| class="wikitable"
! style="font-weight: bold;" | 拡張
+
! 拡張
  +
! 機能性
! style="font-weight: bold;" | 機能
 
  +
! バージョン
 
|-
 
|-
 
|
 
|
* [http://awesome.naquadah.org/wiki/Revelation Revelation]
+
* [https://github.com/guotsuan/awesome-revelation Revelation]
| 開かれているクライアントを一望する
+
| 開ているすべてのクライアントのビュー表示する
  +
| Awesome 3.5+
 
|-
 
|-
 
|
 
|
* [http://awesome.naquadah.org/wiki/Shifty Shifty]
+
* [https://github.com/bioe007/awesome-shifty Shifty]
| 動的タグ
+
| 動的タグ付け
  +
| Awesome 3.5
 
|-
 
|-
 
|
 
|
 
* [https://awesomewm.org/apidoc/libraries/naughty.html Naughty]
 
* [https://awesomewm.org/apidoc/libraries/naughty.html Naughty]
 
| ポップアップ通知
 
| ポップアップ通知
  +
| Awesome 3.5+
|-
 
|
 
* [http://awesome.naquadah.org/wiki/Vicious Vicious] ([http://git.sysphere.org/vicious/tree/README README])
 
* [http://awesome.naquadah.org/wiki/Obvious Obvious]
 
* [http://awesome.naquadah.org/wiki/Bashets Bashets]
 
| 追加 [http://awesome.naquadah.org/wiki/Widgets_in_awesome ウィジェット]
 
 
|-
 
|-
 
|
 
|
  +
* [https://github.com/vicious-widgets/vicious Vicious]
* [http://awesome.naquadah.org/wiki/Run_or_raise Run or raise]
 
  +
* [https://github.com/hoelzro/obvious Obvious]
| インスタンスが存在しない場合にプログラムを起動、またはジャンプ
 
  +
* [https://code.google.com/archive/p/bashets/ Bashets]
  +
| 追加 [https://awesomewm.org/recipes/ ウィジェット]
  +
| Awesome 3.5
 
|-
 
|-
 
|}
 
|}
106行目: 94行目:
 
=== 自動実行 ===
 
=== 自動実行 ===
   
  +
[[XDG Autostart]] 仕様を実装するには、{{Pkg|xorg-xrdb}} と {{Pkg|dex}} をインストールし、次の行を {{ic|~/.config/awesome/rc.lua}}に追加します:
プログラムを自動実行するには、以下のコマンドでシェルスクリプトを作成してください:
 
  +
$ touch ~/.config/awesome/autorun.sh
 
  +
{{hc|~/.config/awesome/rc.lua|<nowiki>
そして以下のコマンドで実行可能属性を付与してください:
 
  +
awful.spawn.with_shell(
$ chmod +x ~/.config/awesome/autorun.sh
 
  +
'if (xrdb -query | grep -q "^awesome\\.started:\\s*true$"); then exit; fi;' ..
エディタで {{ic|autorun.sh}} を開いて以下の行を書き込みます:
 
  +
'xrdb -merge <<< "awesome.started:true";' ..
{{hc|head=.config/awesome/autorun.sh|output=
 
  +
-- list each of your autostart commands, followed by ; inside single quotes, followed by ..
#!/usr/bin/env bash
 
  +
'dex --environment Awesome --autostart'
  +
)
  +
</nowiki>}}
  +
  +
あるいは、{{ic|autorun.sh}} を [[作成]] して以下を挿入し実行します:
  +
  +
{{hc|~/.config/awesome/autorun.sh|
  +
#!/bin/sh
   
function run {
+
run() {
if ! pgrep $1 ;
+
if ! pgrep -f "$1" ;
 
then
 
then
$@&
+
"$@"&
 
fi
 
fi
 
}
 
}
 
}}
 
}}
   
  +
次に、それを [[ヘルプ:読み方#実行可能属性の付与|実行可能]] にします。
{{ic|autorun.sh}} に {{ic|run program [some arguments]}} を追加することで自動実行するプログラムを追加することができます。{{ic|run}} 関数は {{ic|program}} のインスタンスが実行されていないか確認して、インスタンスが存在しない場合のみ {{ic|program}} を起動します。{{ic|autorun.sh}} を確認するには:
 
  +
  +
自動起動するプログラムを追加するには、{{ic|run "program [some argument]"}} を {{ic|autorun.sh}} に追加するだけです。{{ic|run}} 関数は、同じ引数を持つ {{ic|program}} のインスタンスがすでに存在するかどうかを確認し、存在しない場合にのみ {{ic|program}} を実行します。{{ic|autorun.sh}} を実行して確認できます。
   
 
$ ~/.config/awesome/autorun.sh
 
$ ~/.config/awesome/autorun.sh
   
問題なければ、以下の行を {{ic|rc.lua}} に追加してください:
+
すべて問題なければ、の行を {{ic|rc.lua}} に追加します:
   
{{hc|head=.config/awesome/rc.lua|output=
+
{{hc|~/.config/awesome/rc.lua|
...
 
 
awful.spawn.with_shell("~/.config/awesome/autorun.sh")
 
awful.spawn.with_shell("~/.config/awesome/autorun.sh")
...
 
 
}}
 
}}
   
 
=== キーボードレイアウトの変更 ===
 
=== キーボードレイアウトの変更 ===
   
キーボードレイヤーを設定する方法は複数存在します。デフォルト設定ではレイアウトウィジェット有効になっていますが、選択肢がないかぎり表示されません一時的に複数のレイヤーを設定するには、以下のコマンドを実行:
+
キーボードレイヤーを設定するは複数の方法あります。
   
  +
==== setxkbmap キーボードレイアウトの方法 ====
$ setxkbmap -layout "us,jp"
 
   
  +
awesome のデフォルト設定では、レイアウトウィジェットがすでに有効化されています。
awesome のキーボードウィジェットが表示され、クリックすることでレイアウトを切り替えることが可能です。ショートカットキーでレイアウトを変更したい場合、{{ic|-option "grp:alt_shift_toggle"}} を追加してください。{{ic|Shift+Alt}} を押すことでレイアウトが変更できるようになります。例:
 
   
  +
複数のレイヤーを一時的に設定するには、次を実行します。
$ setxkbmap -layout "us,jp" -option "grp:alt_shift_toggle"
 
   
  +
$ setxkbmap -layout "us,de"
レイアウトを設定する適切なコマンドを決めたら、[[#Autorun プログラム]]に追加してください。
 
   
  +
ウィジェットをクリックすると、レイアウトが切り替わります。キーコンボでレイアウトを変更したい場合は、{{ic|-option "grp:alt_shift_toggle"}} を追加します。たとえば、{{ic|Shift+Alt}} を押してレイアウトを変更できるようになります。完全なコマンドは次のようになります:
また、(バージョン 4 からは) Awesome の設定で変更することもできます。以下の行を {{ic|rc.lua}} のキーボードバインドのセクションに追加してください:
 
   
  +
$ setxkbmap -layout "us,de" -option "grp:alt_shift_toggle"
awful.key({ "Shift" }, "Alt_L", function ) mykeyboardlayout.next_layout(); end)
 
awful.key({ "Mod1" }, "Shift_L", function ) mykeyboardlayout.next_layout(); end)
 
   
  +
EN および RU レイアウトを音声異体字で設定するには:
上記の設定を使うには setxkbmap コマンドか xorg で切り替えたいキーボードレイアウトを設定する必要があります。
 
   
  +
$ setxkbmap -model pc105 -option "grp:shifts_toggle,compose:sclk" "us,ru(phonetic_YAZHERTY)"
[[Xorg でのキーボード設定]]も見てください。
 
   
  +
どこ
===テーマ===
 
  +
  +
* 作成キーは "Scroll Lock"、言語切り替えは 左Shift+右Shift に設定されています。
  +
* キーボードは 105 キーです
  +
  +
[[LightDM]] を使用してセッションを開始する場合は、上記のコマンドを [[LightDM#環境変数|.xprofile]] ファイルに追加します。
  +
  +
==== rc.lua キーボードレイアウトの方法 (v.4 以降) ====
  +
  +
awesome 自体を使用して切り替えることができます (v.4 から) {{ic|Shift+Alt}} を押してレイアウトを変更するには、次の 2 行を {{ic|globalkeys}} に追加します。
  +
  +
{{hc|~/.config/awesome/rc.lua|<nowiki>
  +
-- {{{ Key bindings
  +
globalkeys = gears.table.join(
  +
-- ...
  +
awful.key({ "Shift" }, "Alt_L", function () mykeyboardlayout.next_layout(); end),
  +
awful.key({ "Mod1" }, "Shift_L", function () mykeyboardlayout.next_layout(); end)
  +
)
  +
</nowiki>}}
  +
  +
これには、setxkbmap コマンドまたは X 設定ファイルで切り替えられるキーボードレイアウトをセットアップする必要があります。
  +
  +
レイアウトを設定するための適切なコマンドを見つけたら、それを [[Awesome#自動起動|自動起動]] に追加します。
  +
  +
==== Xorg の方法 ====
  +
  +
[[Xorg/キーボード設定]] を参照してください。
  +
  +
=== テーマ ===
   
 
[https://awesomewm.org/apidoc/libraries/beautiful.html Beautiful] という lua ライブラリを使うことで awesome にテーマを適用するのに外部ファイルを使うことができるようになります。{{ic|rc.lua}} を修正せずに動的に awesome のカラーや壁紙を変更できるためとても便利です。
 
[https://awesomewm.org/apidoc/libraries/beautiful.html Beautiful] という lua ライブラリを使うことで awesome にテーマを適用するのに外部ファイルを使うことができるようになります。{{ic|rc.lua}} を修正せずに動的に awesome のカラーや壁紙を変更できるためとても便利です。
   
デフォルトテーマは {{ic|/usr/share/awesome/themes/default}} す。れを {{ic|~/.config/awesome/themes/default}} にコピーして {{ic|rc.lua}} の {{ic|theme_path}} を変更してください
+
デフォルトテーマは {{ic|/usr/share/awesome/themes/default}} にあります。れを {{ic|~/.config/awesome/themes/default}} にコピーしてください。(オプションで全てコピーすることもできます)、{{ic|rc.lua}} を変更してください:
beautiful.init(awful.util.getdir("config") .. "/themes/default/theme.lua")
 
   
  +
-- beautiful.init(gears.filesystem.get_configuration_dir() .. "/themes/default/theme.lua")
テーマオプションについては [https://awesomewm.org/apidoc/libraries/beautiful.html] を参照してください。例えば隙間を追加するには、{{ic|rc.lua}} のテーマセクションに以下を追加します:
 
  +
local theme_path = string.format("%s/.config/awesome/themes/%s/theme.lua", os.getenv("HOME"), "default")
  +
beautiful.init(theme_path)
  +
  +
テーマオプションについては [https://awesomewm.org/apidoc/libraries/beautiful.html] を参照してください。例えばギャップを追加するには、{{ic|rc.lua}} のテーマセクションに以下を追加します:
   
 
beautiful.useless_gap = 5
 
beautiful.useless_gap = 5
  +
  +
{{ic|rc.lua}} のテーマセクションの下部にあります。
   
 
==== 壁紙 ====
 
==== 壁紙 ====
170行目: 198行目:
 
Beautiful が壁紙を管理できるので、{{ic|.xinitrc}} や {{ic|.xsession}} などのファイルで壁紙を設定する必要はありません。またテーマごとに特定の壁紙を使うようにすることもできます。
 
Beautiful が壁紙を管理できるので、{{ic|.xinitrc}} や {{ic|.xsession}} などのファイルで壁紙を設定する必要はありません。またテーマごとに特定の壁紙を使うようにすることもできます。
   
  +
壁紙を指定するには 2 つの方法があります:
Awesome バージョン 3.5 では awsetbg コマンドが存在しません。代わりに gears モジュールを使います。{{ic|theme.lua}} で壁紙を設定するには:
 
   
  +
* あなたのテーマ.{{ic|theme.lua}}: {{bc|<nowiki>
theme.wallpaper = "~/.config/awesome/themes/awesome-wallpaper.png"
 
  +
-- absolute path
  +
theme.wallpaper = "/path/to/wallpaper.png"
   
  +
-- relative to your themes directory
壁紙をロードするには、{{ic|rc.lua}} に以下が記述されている必要があります:
 
  +
theme.wallpaper = theme_path .. "path/to/wallpaper.png"
  +
</nowiki>}}
  +
* または、{{ic|rc.lua}} 内、{{ic|Beautiful.init}} と {{ic|local function set_wallpaper}} の間のどこか: {{bc|<nowiki>
  +
-- absolute path
  +
beautiful.wallpaper = "/path/to/wallpaper.png"
   
  +
-- 設定ディレクトリからの相対パス
beautiful.init("~/.config/awesome/themes/default/theme.lua")
 
  +
beautiful.wallpaper = awful.util.get_configuration_dir() .. "path/to/wallpaper.png"
for s = 1, screen.count() do
 
  +
</nowiki>}}
gears.wallpaper.maximized(beautiful.wallpaper, s, true)
 
end
 
 
ランダムに背景画像を変えるには、[https://gist.github.com/anonymous/37f3b1c58d6616cab756] を {{ic|rc.lua}} (v3.5+) に追加してください。特定のディレクトリから自動的に画像を取得するには [https://gist.github.com/anonymous/9072154f03247ab6e28c] を使って下さい。
 
 
{{ic|rc.lua}} で壁紙を指定したい場合、テーマセクションに以下の行を追加してください:
 
 
beautiful.wallpaper = awful.util.get_configuration_dir() .. "path/to/wallpaper.png"
 
   
  +
背景画像をランダムに表示するには、{{ic|rc.lua}} に [https://gist.github.com/anonymous/37f3b1c58d6616cab756] を追加します。(v3.5+) 指定したディレクトリから自動的に画像を取得するには、代わりに[https://gist.github.com/andreymal/500b96c3c9e63944007d4b9bd5c34e2e] を使用します。
{{ic|awful.util.get_configuration_dir()}} は {{ic|rc.lua}} のパスを返します。
 
   
 
== ヒントとテクニック ==
 
== ヒントとテクニック ==
298行目: 326行目:
 
=== awesome のデフォルトと違うパネルを使う ===
 
=== awesome のデフォルトと違うパネルを使う ===
   
あなたが awesome の軽量性と機能性をっているがそのデフォルトのパネルの見た目が気に入らないときは、{{Pkg|xfce4-panel}} など異なるパネルをインストールできます。
+
あなたが awesome の軽量性と機能性を気に入っているがそのデフォルトのパネルの見た目が気に入らないときは、{{Pkg|xfce4-panel}} など異なるパネルをインストールできます。
  +
  +
インストールしたら {{ic|rc.lua}} の [[#Autorun プログラム|autorun]] セクションに追加してください (方法は割愛) 画面ごとに wibox を作成しているセクション ({{ic|1=mywibox[s] = awful.wibox({ position = "top", screen = s })}} から始まっているところ) をコメントアウトすることもできますが、特にその必要はありません。ただし次を実行して {{ic|rc.lua}} にエラーがないかチェックすることは忘れずに行って下さい:
   
インストールしたら {{ic|rc.lua}} の [[#Autorun プログラム|autorun]] セクションに追加してください(方法は割愛)。画面ごとに wibox を作成しているセクション ({{ic|1=mywibox[s] = awful.wibox({ position = "top", screen = s })}} から始まっているところ) をコメントアウトすることもできますが、特にその必要はありません。ただし次を実行して rc.lua にエラーがないかチェックすることは忘れずに行って下さい:
 
 
$ awesome -k rc.lua
 
$ awesome -k rc.lua
  +
また、ビルトインでないアプリケーションランチャー、Xfrun4 や bashrun などを起動するために、{{ic|''modkey''+R}} キーバインドを変えておくべきでしょう。[[Openbox]] のページのアプリケーションランチャーのところに例が載っています。{{ic|rc.lua}} に以下を追加するのを忘れないで下さい:
 
  +
また、組み込みの awesome のランチャーの代わりに他のアプリケーションランチャーを起動するには、{{ic|''modkey''+R}} キーバインドを変更する必要があります。例については、[[アプリケーション一覧#アプリケーションランチャー]] を参照してください。また以下を忘れずに追加してください。
  +
 
{{bc|<nowiki>
 
{{bc|<nowiki>
 
properties = { floating = true } },
 
properties = { floating = true } },
 
{ rule = { instance = "$yourapplicationlauncher" },
 
{ rule = { instance = "$yourapplicationlauncher" },
 
</nowiki>}}
 
</nowiki>}}
  +
  +
{{ic|rc.lua}} にコピーします。
   
 
=== メニューバーのアプリケーションディレクトリ ===
 
=== メニューバーのアプリケーションディレクトリ ===

2023年11月21日 (火) 18:02時点における最新版

関連記事

awesome のウェブサイト より:

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

目次

インストール

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

起動

xinit を使用して awesome を実行します。付属の xsession ファイルを使用するには、ディスプレイマネージャ を参照してください。

GNOME を使用する

GNOME をセットアップして、awesome をビジュアルインターフェイスとして使用し、GNOME をバックグラウンドで動作させることができます。awesome-gnomeAUR を参照してください。

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 にはいくつか拡張が存在します:

拡張 機能性 バージョン
開いているすべてのクライアントのビューを表示する Awesome 3.5+
動的タグ付け Awesome 3.5
ポップアップ通知 Awesome 3.5+
追加 ウィジェット Awesome 3.5

自動実行

XDG Autostart 仕様を実装するには、xorg-xrdbdex をインストールし、次の行を ~/.config/awesome/rc.luaに追加します:

~/.config/awesome/rc.lua
awful.spawn.with_shell(
    'if (xrdb -query | grep -q "^awesome\\.started:\\s*true$"); then exit; fi;' ..
    'xrdb -merge <<< "awesome.started:true";' ..
    -- list each of your autostart commands, followed by ; inside single quotes, followed by ..
    'dex --environment Awesome --autostart'
    )

あるいは、autorun.sh作成 して以下を挿入し実行します:

~/.config/awesome/autorun.sh
#!/bin/sh

run() {
  if ! pgrep -f "$1" ;
  then
    "$@"&
  fi
}

次に、それを 実行可能 にします。

自動起動するプログラムを追加するには、run "program [some argument]"autorun.sh に追加するだけです。run 関数は、同じ引数を持つ program のインスタンスがすでに存在するかどうかを確認し、存在しない場合にのみ program を実行します。autorun.sh を実行して確認できます。

$ ~/.config/awesome/autorun.sh

すべて問題なければ、次の行を rc.lua に追加します:

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

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

キーボードレイヤーを設定するには複数の方法があります。

setxkbmap キーボードレイアウトの方法

awesome のデフォルト設定では、レイアウトウィジェットがすでに有効化されています。

複数のレイヤーを一時的に設定するには、次を実行します。

$ setxkbmap -layout "us,de"

ウィジェットをクリックすると、レイアウトが切り替わります。キーコンボでレイアウトを変更したい場合は、-option "grp:alt_shift_toggle" を追加します。たとえば、Shift+Alt を押してレイアウトを変更できるようになります。完全なコマンドは次のようになります:

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

EN および RU レイアウトを音声異体字で設定するには:

$ setxkbmap -model pc105 -option "grp:shifts_toggle,compose:sclk" "us,ru(phonetic_YAZHERTY)"

どこ

  • 作成キーは "Scroll Lock"、言語切り替えは 左Shift+右Shift に設定されています。
  • キーボードは 105 キーです

LightDM を使用してセッションを開始する場合は、上記のコマンドを .xprofile ファイルに追加します。

rc.lua キーボードレイアウトの方法 (v.4 以降)

awesome 自体を使用して切り替えることができます (v.4 から) Shift+Alt を押してレイアウトを変更するには、次の 2 行を globalkeys に追加します。

~/.config/awesome/rc.lua
-- {{{ Key bindings
globalkeys = gears.table.join(
    -- ...
    awful.key({ "Shift" }, "Alt_L", function () mykeyboardlayout.next_layout(); end),
    awful.key({ "Mod1" }, "Shift_L", function () mykeyboardlayout.next_layout(); end)
)

これには、setxkbmap コマンドまたは X 設定ファイルで切り替えられるキーボードレイアウトをセットアップする必要があります。

レイアウトを設定するための適切なコマンドを見つけたら、それを 自動起動 に追加します。

Xorg の方法

Xorg/キーボード設定 を参照してください。

テーマ

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

デフォルトテーマは /usr/share/awesome/themes/default にあります。それを ~/.config/awesome/themes/default にコピーしてください。(オプションで全てコピーすることもできます)、rc.lua を変更してください:

-- beautiful.init(gears.filesystem.get_configuration_dir() .. "/themes/default/theme.lua")
local theme_path = string.format("%s/.config/awesome/themes/%s/theme.lua", os.getenv("HOME"), "default")
beautiful.init(theme_path)

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

beautiful.useless_gap = 5

rc.lua のテーマセクションの下部にあります。

壁紙

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

壁紙を指定するには 2 つの方法があります:

  • あなたのテーマ.theme.lua:
    -- absolute path
    theme.wallpaper = "/path/to/wallpaper.png"
    
    -- relative to your themes directory
    theme.wallpaper = theme_path .. "path/to/wallpaper.png"
    
  • または、rc.lua 内、Beautiful.initlocal function set_wallpaper の間のどこか:
    -- absolute path
    beautiful.wallpaper = "/path/to/wallpaper.png"
    
    -- 設定ディレクトリからの相対パス
    beautiful.wallpaper = awful.util.get_configuration_dir() .. "path/to/wallpaper.png"
    

背景画像をランダムに表示するには、rc.lua[2] を追加します。(v3.5+) 指定したディレクトリから自動的に画像を取得するには、代わりに[3] を使用します。

ヒントとテクニック

wibox を表示・隠す

awesome 4.0 の場合:

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

ModKey が押されている間のみ Wibox を表示する (または他のアクションを実行する) ことは、awesome 内からは不可能ですが、それを行う Python スクリプトがあります: autohidewibox

スクリーンショット

PrtSc ボタンが正しく割り当てられていることを確認するには、キーボード入力 を参照してください。次に、scrot などの スクリーンキャプチャプログラム をインストールします。

globalkeys 配列に以下を追加します:

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

この関数はスクリーンショットを ~/screenshots/ 内に保存します、必要に応じて編集して下さい。

ウィンドウのギャップを無くす

awesome 3.4 では、ウィンドウ間の小さなギャップを取り除くことが可能です。awful.rules.rules テーブルには properties セクションがあるので、それに追加します。

 size_hints_honor = false

透過

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-dfAUR を使って、以下のように 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
    [...]
)

Widget の間隔

デフォルトの rc.lua は、キーボードレイアウトや時計を含むウィジェットを Wibox 内にわずかな間隔で配置します。spacing プロパティを使用して、ウィジェット間に余分な間隔を追加することができます。

       { -- Right widgets
       layout = wibox.layout.fixed.horizontal,
       spacing = 10,
       mykeyboardlayout,
       ...

ImageMagick

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

テキストを 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

また、組み込みの awesome のランチャーの代わりに他のアプリケーションランチャーを起動するには、modkey+R キーバインドを変更する必要があります。例については、アプリケーション一覧#アプリケーションランチャー を参照してください。また以下を忘れずに追加してください。

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

rc.lua にコピーします。

メニューバーのアプリケーションディレクトリ

awesome には メニューバー が含まれます。デフォルトでは、Mod+p を押すと、画面上部に dmenu のようなアプリケーションメニューが開きます。このメニューは、$XDG_DATA_DIRS/applications/ および $XDG_DATA_HOME/applications/ にある .desktop ファイルを検索します。

menubar.menu_gen.all_menu_dirs を変更することで、これらのディレクトリを拡張または置換できます:

~/.config/awesome/rc.lua
table.insert(menubar.menu_gen.all_menu_dirs, "/path/to/custom/applications/")

{ic|.desktop}} ファイルは awesome が起動するたびに再読み込みされるため、起動が遅くなることに注意してください。プログラムを起動する他の手段を好む場合、local menubar = require("menubar")menubar 変数への参照を削除することで、rc.lua でメニューバーを無効にすることができます。

ポップアップメニュー

awesome 3 以降、デフォルトでシンプルなメニューがあり、カスタムメニューを簡素化しています。[4] freedesktop.org のメニューが欲しければ、"awesome-freedesktop" を見てください。

awesome アイコンをクリックするか、デスクトップの空いている領域を右クリックするときに外部アプリケーションメニューを使用したい場合は、Xdg-menu#Awesome の手順に従ってください。ただし、プログラムを追加または削除しても、このメニューは更新されません。したがって、必ずコマンドを実行してメニューを更新してください。次のようになります:

$ xdg_menu --format awesome --root-menu /etc/xdg/menus/arch-applications.menu >~/.config/awesome/archmenu.lua

タイトルバー

設定ファイルで変数 titlebars_enabled を true に設定するだけで、awesome でタイトルバーを有効にするのは簡単です。(ルールエリア内)

   { rule_any = {type = { "normal", "dialog" }
     }, properties = { titlebars_enabled = true }
   },

しかし、タイトルバーのオン・オフを切り替えたい場合もあるでしょう。その場合は、以下のようなコードをキーバインドに追加してください: (このコードは clientkeys エリアの最後には書かないでください)

   -- working toggle titlebar
   awful.key({ modkey, "Control" }, "t", function (c) awful.titlebar.toggle(c)         end,
             {description = "Show/Hide Titlebars", group="client"}),

最初にタイトルバーを非表示にしたい場合。タイトルバーが作成された直後 ("manage" signal handler の中) に、次のように追加して下さい:

awful.titlebar.hide(c)

バッテリー通知

rc.lua に追加する簡単なバッテリー通知については、このブログ投稿 を参照してください。通知には naughty が必要であることに注意してください (バージョン 3.5 ではデフォルトでインストールされます) 他の例は wiki で入手できます。

メディアコントロール

(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)

Steam キーボード

Steam コントローラから使用することができるオンスクリーンの Steam キーボードで文字を入力したときにフリーズすることがあります。入力を受け取るにはクライアントにフォーカスがあたっている必要があり、入力が正しく送信されるまでキーボードが待機するためです。手動で他のクライアントにフォーカスをあてるとそのクライアントに入力が送信され、次の文字が入力されるまでキーボードはフリーズした状態になります。

他のクライアントにフォーカスが移らないようにすることでキーボードを正しく動作させることができます。設定に以下のシグナルを追加してください (あるいは既存のクライアントのフォーカスシグナルに追記してください):

client.connect_signal("focus", function(c)
    if awful.rules.match(c, { name = "^Steam Keyboard$" }) then
        awful.client.focus.history.previous()
    end
end)

上記のように設定することでキーボードがフォーカスを受け取ったときに最後のクライアントにフォーカスが移るようになります。キーボード入力は Steam クライアントによって処理されフォーカスは必要ないため、テキストの入力は問題なく行うことができます。

トラブルシューティング

rc.lua をデバッグする

[Xephyr]] を使うと、他の X のクライアントウィンドウの中で X をネストして実行することができます。これにより、現在のデスクトップを壊すことなく rc.lua をデバッグすることができます。まず、rc.lua を新しいファイル (例えば rc.lua.new) にコピーし、必要に応じて変更します。次に、Xephyr で awesome の新しいインスタンスを実行し、設定ファイルとして rc.lua.new を以下のように指定します:

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

このアプローチの利点は、バグが発生した場合でも、現在の awesome デスクトップを壊すことがなく、X アプリケーションがクラッシュして作業が失われる可能性がないことです。新しい設定に満足したら、rc.lua.newrc.lua にコピーして、awesome を再起動します。

自動リロード

上記の方法に加えて、inotify-tools を使うことで、~/.config/awesome ディレクトリ内の設定ファイルを更新した際に、自動的に Xephyr 内の Awesome インスタンスをリロードすることができます:

#!/usr/bin/env bash

Xephyr :1 -ac -br -noreset -screen 1920x1080 -dpi 96 &
sleep 1
DISPLAY=:1.0 awesome -c ~/.config/awesome/rc.lua.new &
instance=$!

while inotifywait -r -e close_write ~/.config/awesome; do
	kill -s SIGHUP $instance
done

awmtt

awmttAUR (Awesome WM Testing Tool) は Xephyr の使いやすいラッパースクリプトです。デフォルトでは ~/.config/awesome/rc.lua.test を使用します。テストファイルが見つからない場合は、実際の rc.lua を使用します。テストしたい設定ファイルの場所を指定することもできます:

$ awmtt start -C ~/.config/awesome/rc.lua.new

テストが完了したら、次のコマンドを実行してウィンドウを閉じます:

$ awmtt stop

または、次のコマンドを実行して、設定ファイルに加えた変更をすぐに確認します:

$ awmtt restart

aawmtt

aawmttAUR (別の awesome WM テストツール) は、awmttAUR の代替実装であり、デフォルトで Live-Reload が含まれています。 これは awmtt-ng に似ていますが、awmtt-ng を備えた一部のマシンでは機能しない XOrg ディスプレイ検出に対するいくつかの修正が含まれています。 最初にテストファイルを実行しようとせず、デフォルトの設定を実行するだけであるという点で awmtt とは異なります。

Xephyrのウィンドウを開き、awesome を読み込む:

$ aawmtt

これで、awesome の出力がターミナルに出力され、設定フォルダー内のファイルを変更すると、awesomewm がリロードされます。

ファイルの変更を監視するディレクトリ、または設定ファイルの場所を変更する場合は、次のコマンドを実行します:

$ aawmtt --config "location_of_config_file" --watch "directory_to_watch_for_changes"

変更が監視されるディレクトリはデフォルトで設定ファイルの親ディレクトリになるため、デフォルトでは "~/.config/awesome" になります。

ログファイル

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

Mod4 キー

Awesome は mod4 を再マップすることを推奨しており、デフォルトでは Super または "Windows" キーになっているはずです。何らかの理由で mod4 にマッピングされていない場合は、xmodmap を使ってマッピングを調べてください。マッピングを変更するには、xev を使ってマッピングするキーのキーコードと名前を探します。そして、~/.xinitrc に以下のような内容を追加します。

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

この場合の問題は、一部の xorg インストールではキーコード 115 が認識されるものの、誤って 選択 キーとして認識されることです。上記のコマンドは、キーコード 115 を正しい 'Super_L' キーに明示的に再マップします。

mod4setxkbmap で再マップするには (xmodmap と競合) を参照してください:

tail -50 /usr/share/X11/xkb/rules/evdev

Caps Lock キーを mod4 として設定するには、以下を ~/.xinitrc に追加します:

setxkbmap -option caps:hyper

Java を修正 (GUI がグレーのみ表示される)

Java#灰色のウィンドウ、ウィンドウマネージャでアプリがリサイズされない、メニューがすぐに閉じる および [5] を参照してください。

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"

Netbeans: コード予測が間違ったスクリーンに表示される

ディスプレイをふたつ使っていて Netbeans でコード予測 (Ctrl + Space) を使用したときに、誤ったディスプレイのほうにコード予測が表示されることがあります。解決するには:

.config/awesome/rc.lua
awful.rules.rules = {
        ...
	{
		rule_matches = { -- Fix Netbeans
			class = {
				"sun-awt-X11-XWindowPeer", "NetBeans IDE 8.2"
			},
			name = {
				"win1"
			}
		}, properties = { screen = 1 } -- even with screen 1 here, this still works on the seccond screen, too (don't know why).
	},
        ...

}

IntelliJ: メニューが間違った位置に表示されたりウィンドウが開かない

GitHub issue #2204 を見てください。

解決方法:

.config/awesome/rc.lua
clientbuttons_jetbrains = gears.table.join(
    awful.button({ modkey }, 1, awful.mouse.client.move),
    awful.button({ modkey }, 3, awful.mouse.client.resize)
)

...

awful.rules.rules = {
        ...
	{
            rule = {
                class = "jetbrains-.*",
            }, properties = { focus = true, buttons = clientbuttons_jetbrains }
        },
        {
            rule = {
                class = "jetbrains-.*",
                name = "win.*"
            }, properties = { titlebars_enabled = false, focusable = false, focus = true, floating = true, placement = awful.placement.restore }
        },
        ...
}

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

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

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

YouTube: バックグラウンドで全画面表示される

フルスクリーンモードで YouTube ビデオが Web ブラウザのバックグラウンドで表示される場合、またはコントロールが非表示になっている場合は、これを rc.lua に追加します。

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

Chromium に追加

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

もしくは:

{ rule = { role = "_NET_WM_STATE_FULLSCREEN" },
  properties = { floating = true } },

こちらも参照 [6]

マウスのスクロールホイールでタグが変更されないようにする

rc.lua で、Mouse Bindings セクションを次のように変更します:

-- {{{ Mouse bindings
root.buttons(gears.table.join(
    awful.button({ }, 3, function () mymainmenu:toggle() 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

メモリリーク

メモリリーク が発生します。多くのウィジェットを使用している場合、最大5MB/分の速度でメモリリークが発生する可能性があります。これを軽減するには、~/.config/awesome/rc.lua にこれを追加することで、より頻繁なガベージコレクションを強制することができます:

-- Run garbage collector regularly to prevent memory leaks
gears.timer {
       timeout = 30,
       autostart = true,
       callback = function() collectgarbage() end
}

参照