「Awesome」の版間の差分
(→起動: 情報を更新) |
(→テーマ: 情報を更新) |
||
172行目: | 172行目: | ||
[[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}} を変更してください: |
− | 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}} のテーマセクションの下部にあります。 |
||
==== 壁紙 ==== |
==== 壁紙 ==== |
||
187行目: | 192行目: | ||
Beautiful が壁紙を管理できるので、{{ic|.xinitrc}} や {{ic|.xsession}} などのファイルで壁紙を設定する必要はありません。またテーマごとに特定の壁紙を使うようにすることもできます。 |
Beautiful が壁紙を管理できるので、{{ic|.xinitrc}} や {{ic|.xsession}} などのファイルで壁紙を設定する必要はありません。またテーマごとに特定の壁紙を使うようにすることもできます。 |
||
+ | 壁紙を指定するには 2 つの方法があります: |
||
− | Awesome バージョン 3.5 では awsetbg コマンドが存在しません。代わりに gears モジュールを使います。{{ic|theme.lua}} で壁紙を設定するには: |
||
− | |||
− | theme.wallpaper = "~/.config/awesome/themes/awesome-wallpaper.png" |
||
− | |||
− | 壁紙をロードするには、{{ic|rc.lua}} に以下が記述されている必要があります: |
||
− | |||
− | beautiful.init("~/.config/awesome/themes/default/theme.lua") |
||
− | for s = 1, screen.count() do |
||
− | gears.wallpaper.maximized(beautiful.wallpaper, s, true) |
||
− | end |
||
+ | * あなたのテーマ.{{ic|theme.lua}}: {{bc|<nowiki> |
||
− | ランダムに背景画像を変えるには、[https://gist.github.com/anonymous/37f3b1c58d6616cab756] を {{ic|rc.lua}} (v3.5+) に追加してください。特定のディレクトリから自動的に画像を取得するには [https://gist.github.com/anonymous/9072154f03247ab6e28c] を使って下さい。 |
||
+ | -- 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.wallpaper = awful.util.get_configuration_dir() .. "path/to/wallpaper.png" |
||
+ | beautiful.wallpaper = awful.util.get_configuration_dir() .. "path/to/wallpaper.png" |
||
+ | </nowiki>}} |
||
+ | 背景画像をランダムに表示するには、{{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}} のパスを返します。 |
||
== ヒントとテクニック == |
== ヒントとテクニック == |
2023年11月21日 (火) 17:47時点における版
awesome のウェブサイト より:
- awesome は高度に設定可能な、次世代の X フレームワークウィンドウマネージャです。高速に動作し、拡張しやすく、GNU GPLv2 ライセンスを使っています。awesome はパワーユーザーや開発者など、日常的に PC を使い、きめ細かいグラフィカル環境を求めている全ての人をターゲットにしています。
目次
- 1 インストール
- 2 起動
- 3 設定
- 4 ヒントとテクニック
- 5 トラブルシューティング
- 5.1 rc.lua をデバッグする
- 5.2 ログファイル
- 5.3 Mod4 キー
- 5.4 Java を修正 (GUI がグレーのみ表示される)
- 5.5 Eclipse: メインウィンドウをリサイズ・移動できない
- 5.6 Netbeans: コード予測が間違ったスクリーンに表示される
- 5.7 IntelliJ: メニューが間違った位置に表示されたりウィンドウが開かない
- 5.8 scrot: キーボードショートカットを使ってマウスで選択した範囲のスクリーンショットが取れない
- 5.9 YouTube: バックグラウンドで全画面表示される
- 5.10 マウスのスクロールホイールでタグが変更されないようにする
- 5.11 Xdg-menu によって生成されるメニューエントリが重複する
- 5.12 Xfce4 で一部のショートカットキーが機能しない
- 5.13 メモリリーク
- 6 参照
インストール
awesome パッケージをインストールしてください。開発版を使うには、AUR の awesome-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 のドキュメントの設定セクション を見て下さい。
設定のサンプル
rc.lua のサンプルは以下にあります:
- https://github.com/setkeh/Awesome-Laptop-3.5 - Setkeh の 3.5 の設定。
- http://awesome.naquadah.org/wiki/User_Configuration_Files - awesome ホームページに載っているユーザー設定コレクション。
- https://github.com/copycat-killer/awesome-copycats - 様々なテーマやステータスバーに対応するユーザー設定。
拡張
awesome (3.5+) にはいくつか拡張が存在します:
拡張 | 機能 |
---|---|
開かれているクライアントを一望する | |
動的タグ | |
ポップアップ通知 | |
追加 ウィジェット | |
インスタンスが存在しない場合にプログラムを起動、またはジャンプ |
自動実行
プログラムを自動実行するには、以下のコマンドでシェルスクリプトを作成してください:
$ 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.sh
に run 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") ...
キーボードレイアウトの変更
キーボードレイヤーを設定するには複数の方法があります。
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.init
とlocal 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.lua
の autorun セクションに追加してください (方法は割愛) 画面ごとに 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.new
を rc.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' キーに明示的に再マップします。
mod4
を setxkbmap
で再マップするには (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) )) -- }}}
/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 }
参照
- https://awesomewm.org/apidoc/documentation/90-FAQ.md.html - FAQ
- http://www.lua.org/pil/ - Lua プログラミング (第1版)
- https://awesomewm.org/ - awesome 公式ウェブサイト
- https://awesomewm.org/apidoc/ - awesome API ドキュメント
- https://bbs.archlinux.org/viewtopic.php?id=88926 - share your awesome!