awesome
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 が異なっている可能性があります。
起動
xinitrc から awesome を起動するには、~/.xinitrc
に exec 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 のドキュメントの設定セクション を見て下さい。
設定のサンプル
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 -layout "us,jp"
awesome のキーボードウィジェットが表示され、クリックすることでレイアウトを切り替えることが可能です。ショートカットキーでレイアウトを変更したい場合、-option "grp:alt_shift_toggle"
を追加してください。Shift+Alt
を押すことでレイアウトが変更できるようになります。例:
$ setxkbmap -layout "us,jp" -option "grp:alt_shift_toggle"
レイアウトを設定する適切なコマンドを決めたら、#Autorun プログラムに追加してください。
また、(バージョン 4 からは) Awesome の設定で変更することもできます。以下の行を rc.lua
のキーボードバインドのセクションに追加してください:
awful.key({ "Shift" }, "Alt_L", function ) mykeyboardlayout.next_layout(); end) awful.key({ "Mod1" }, "Shift_L", function ) mykeyboardlayout.next_layout(); end)
上記の設定を使うには setxkbmap コマンドか xorg で切り替えたいキーボードレイアウトを設定する必要があります。
Xorg でのキーボード設定も見てください。
テーマ
Beautiful という lua ライブラリを使うことで awesome にテーマを適用するのに外部ファイルを使うことができるようになります。rc.lua
を修正せずに動的に awesome のカラーや壁紙を変更できるためとても便利です。
デフォルトのテーマは /usr/share/awesome/themes/default
です。これを ~/.config/awesome/themes/default
にコピーして rc.lua
の theme_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 を表示・隠す
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
また、ビルトインでないアプリケーションランチャー、Xfrun4 や bashrun などを起動するために、modkey+R
キーバインドを変えておくべきでしょう。Openbox のページのアプリケーションランチャーのところに例が載っています。rc.lua
に以下を追加するのを忘れないで下さい:
properties = { floating = true } }, { rule = { instance = "$yourapplicationlauncher" },
Naughty ポップアップ通知
naughty についての awesome wiki ページを見て下さい。
ポップアップメニュー
awesome3 ではデフォルトでシンプルなメニューがありますが、メニューをカスタマイズすることも簡単にできます。ただし、あなたが 2.x の awesome を使っている場合は、[4] を見てください。
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 } } })
タイトルバー
設定ファイルで変数 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!