タイル型ウィンドウマネージャ awesome のすすめ (後編)
Mod4 キーについて
awesome のキーバインドを理解する上での豆知識
タグ
前編の「外観のカスタマイズ」を参照。
クライアント
前編の「設定ファイルを読み書きする上での豆知識」を参照。
マスターウィンドウとカラムウィンドウ
これらの語について正確な定義がよくわからないので、ここではイメージとして説明します。図 1(a) ~ (d) のように、awesome が起動した状態からクライアント #1、#2、#3 を順番に起動したとき、画面左側のようにメインになる領域と、画面右側のように細かく分割されてゆく領域ができ、左側にあるウィンドウをマスターウィンドウ、右側にあるウィンドウをカラムウィンドウと呼びます。次の節で紹介しますが「Mod4 + h」「Mod4 + l」でマスターウィンドウの幅を変えたり、「Mod + Shift + h」「Mod + Shift + l」でマスターウィンドウの数を増減させたりすることができます。また、「Mod4 + Ctrl + h」「Mod4 + Ctrl + l」でカラムウィンドウのカラム数を増減させることができ、例えば図 1(d) の状態で「Mod4 + Ctrl + h」を押すと図 1(e) のようになります。下記の公式ドキュメントが参考になるかもしれません。
グローバルキーバインドとクライアントキーバインド
awesome のキーバインドは「グローバルキーバインド」と「クライアントキーバインド」の 2 種類に分かれます。クライアントキーバインドはフォーカスされているクライアントだけに有効であるのに対して、グローバルキーバインドは awesome の起動中、常に有効です。詳細は下記の公式ドキュメントを参照してください。
キーバインド一覧
デフォルト | 変更例 | 機能 |
---|---|---|
Mod4 + s | Mod4 + F1 (*1) | キーバインド一覧を表示する |
Mod4 + Left (←) | ― | 左隣のタグへ移動する |
Mod4 + Right (→) | ― | 右隣のタグへ移動する |
Mod4 + Right (→) | Mod4 + i (*2) | 右隣のタグへ移動する |
Mod4 + Esc | ― | 前にいたタグへ戻る |
Mod4 + j | Mod4 + n (*3) | 次のクライアントへフォーカスを移動 |
Mod4 + k | Mod4 + p (*3) | 前のクライアントへフォーカスを移動 |
Mod4 + w | Mod4 + Space (*4) | メインメニューを開く |
Mod4 + Shift + j | Mod4 + Shift + n (*3) | クライアントの位置を入れ替える |
Mod4 + Shift + k | Mod4 + Shift + p (*3) | クライアントの位置を入れ替える |
Mod4 + Ctrl + j | ― | ? |
Mod4 + Ctrl + k | ― | ? |
Mod4 + u | ― | ? |
Mod4 + Tab | ― | 前のクライアントへ戻る |
Mod4 + Enter | ― | 端末エミュレータを起動する |
Mod4 + Ctrl + r | Mod4 + Shift + r (*5) | awesome 再起動 |
Mod4 + Shift + q | ― | awesome 終了 |
(デフォルトなし) | Mod4 + Ctrl + r (*6) | shutdown -r now |
(デフォルトなし) | Mod4 + Ctrl + p (*6) | shutdown -p now |
Mod4 + l | ― | マスターウィンドウの幅を広げる |
Mod4 + h | ― | マスターウィンドウの幅を狭める |
Mod4 + Shift + l | ― | マスターウィンドウの数を減らす |
Mod4 + Shift + h | ― | マスターウィンドウの数を増やす |
Mod4 + Ctrl + l | ― | カラムウィンドウの数を減らす |
Mod4 + Ctrl + h | ― | カラムウィンドウの数を増やす |
Mod4 + Space | 削除 (*4) | タイル配置パターンを切り替える |
Mod4 + Shift + Space | 削除 (*4) | タイル配置パターンを切り替える |
Mod4 + Ctrl + n | Mod4 + Ctrl + z (*1) | 最小化されているクライアントを元に戻す |
Mod4 + r | ― | コマンドランチャー |
Mod4 + x | ― | Lua コードの実行 |
Mod4 + p | Mod4 + b (*7) | メニューバーを表示する |
Mod4 + 1~9 | ― | 数字で指定したタグに切り替える |
Mod4 + Ctrl + 1~9 | ― | ? |
Mod4 + Shift + 1~9 | ― | ? |
Mod4 + Ctrl + Shift + 1~9 | ― | ? |
デフォルト | 変更例 | 機能 |
---|---|---|
Mod4 + f | 削除 (*8) | クライアントをフルスクリーン化 (トグル) |
Mod4 + Shift + c | ― | クライアントを終了させる |
Mod4 + Shift + c | Mod4 + k (*9) | クライアントを終了させる |
Mod4 + Ctrl + Space | Mod4 + f (*10) | クライアントをフロート化 (トグル) |
Mod4 + Ctrl + Enter | ― | カラムウィンドウとマスターウィンドウの入れ替え |
Mod4 + Ctrl + Enter | Mod4 + s (*11) | カラムウィンドウとマスターウィンドウの入れ替え |
Mod4 + o | ― | ? |
Mod4 + t | ― | クライアントを最前面へ (トグル) |
Mod4 + n | Mod4 + z (*1) | クライアントを最小化 (トグル) |
Mod4 + m | ― | クライアントを最大化 (トグル) |
Mod4 + Ctrl + m | ― | クライアントを垂直方向に最大化 (トグル) |
Mod4 + Shift + m | ― | クライアントを水平方向に最大化 (トグル) |
(*1) | デフォルトのキーバインドが覚えられないので Windows っぽくしました。 |
(*2) | デフォルトの「Mod4 + Right」よりも使いやすいキーバインドがほしかったので追加しました。 |
(*3) | 「次へ」「前へ」は j、k よりも n、p のほうがしっくりくるので変更しました。ここだけ Emacs 風なのが統一感を欠きますが。 |
(*4) | 「Mod4 + Space」はデフォルトではタイル配置パターンの切り替えにバインドされていますが、たぶん滅多に切り替えることはなく、もったいないので、より頻繁に使いそうなメインメニューのオープンに割り当てました。タイル配置パターンを切り替えたくなったらマウスを使えばいいという考えです。 |
(*5) | 特に深い理由はありませんが、awesome の終了が「Mod4 + Shift + q」なので、それに合わせました。 |
(*6) | PC の再起動とシャットダウンを実行できるようにしました。rc.lua の「globalkeys = gears.table.join(...)」の括弧内に次のコードを追加してください。 ~/.config/awesome/rc.lua
|
(*7) | 「Mod4 + p」を他で使いたかったので。 |
(*8) | 「Mod4 + f」を他で使いたかったのと、フルスクリーン化はあまり使わないかなあと思ったので、削除しました。 |
(*9) | デフォルトの「Mod4 + Shift + c」が押しづらいので、押しやすいキーバインドを追加しました。kill の頭文字を取って「k」です。 |
(*10) | (*8) で空けた「Mod4 + f」をフロート化に割り当てています。 |
(*11) | デフォルトの「Mod4 + Ctrl + Enter」が押しづらいので、押しやすいキーバインドを追加しました。swap の頭文字を取って「s」です。 |
おまけ: rc.lua キーバインド変更箇所の差分
@@ -229,34 +230,36 @@
-- {{{ Key bindings
globalkeys = gears.table.join(
- awful.key({ modkey, }, "s", hotkeys_popup.show_help,
+ awful.key({ modkey, }, "F1", hotkeys_popup.show_help,
{description="show help", group="awesome"}),
awful.key({ modkey, }, "Left", awful.tag.viewprev,
{description = "view previous", group = "tag"}),
awful.key({ modkey, }, "Right", awful.tag.viewnext,
{description = "view next", group = "tag"}),
+ awful.key({ modkey, }, "i", awful.tag.viewnext,
+ {description = "view next", group = "tag"}),
awful.key({ modkey, }, "Escape", awful.tag.history.restore,
{description = "go back", group = "tag"}),
- awful.key({ modkey, }, "j",
+ awful.key({ modkey, }, "n",
function ()
awful.client.focus.byidx( 1)
end,
{description = "focus next by index", group = "client"}
),
- awful.key({ modkey, }, "k",
+ awful.key({ modkey, }, "p",
function ()
awful.client.focus.byidx(-1)
end,
{description = "focus previous by index", group = "client"}
),
- awful.key({ modkey, }, "w", function () mymainmenu:show() end,
+ awful.key({ modkey, }, "space", function () mymainmenu:show() end,
{description = "show main menu", group = "awesome"}),
-- Layout manipulation
- awful.key({ modkey, "Shift" }, "j", function () awful.client.swap.byidx( 1) end,
+ awful.key({ modkey, "Shift" }, "n", function () awful.client.swap.byidx( 1) end,
{description = "swap with next client by index", group = "client"}),
- awful.key({ modkey, "Shift" }, "k", function () awful.client.swap.byidx( -1) end,
+ awful.key({ modkey, "Shift" }, "p", function () awful.client.swap.byidx( -1) end,
{description = "swap with previous client by index", group = "client"}),
awful.key({ modkey, "Control" }, "j", function () awful.screen.focus_relative( 1) end,
{description = "focus the next screen", group = "screen"}),
@@ -276,10 +279,14 @@
-- Standard program
awful.key({ modkey, }, "Return", function () awful.spawn(terminal) end,
{description = "open a terminal", group = "launcher"}),
- awful.key({ modkey, "Control" }, "r", awesome.restart,
+ awful.key({ modkey, "Shift" }, "r", awesome.restart,
{description = "reload awesome", group = "awesome"}),
awful.key({ modkey, "Shift" }, "q", awesome.quit,
{description = "quit awesome", group = "awesome"}),
+ awful.key({ modkey, "Control" }, "r", function () awful.spawn("/sbin/shutdown -r now") end,
+ {description = "shutdown -r now", group = "awesome"}),
+ awful.key({ modkey, "Control" }, "p", function () awful.spawn("/sbin/shutdown -p now") end,
+ {description = "shutdown -p now", group = "awesome"}),
awful.key({ modkey, }, "l", function () awful.tag.incmwfact( 0.05) end,
{description = "increase master width factor", group = "layout"}),
@@ -293,12 +300,8 @@
{description = "increase the number of columns", group = "layout"}),
awful.key({ modkey, "Control" }, "l", function () awful.tag.incncol(-1, nil, true) end,
{description = "decrease the number of columns", group = "layout"}),
- awful.key({ modkey, }, "space", function () awful.layout.inc( 1) end,
- {description = "select next", group = "layout"}),
- awful.key({ modkey, "Shift" }, "space", function () awful.layout.inc(-1) end,
- {description = "select previous", group = "layout"}),
- awful.key({ modkey, "Control" }, "n",
+ awful.key({ modkey, "Control" }, "z",
function ()
local c = awful.client.restore()
-- Focus restored client
@@ -325,28 +328,26 @@
end,
{description = "lua execute prompt", group = "awesome"}),
-- Menubar
- awful.key({ modkey }, "p", function() menubar.show() end,
+ awful.key({ modkey }, "b", function() menubar.show() end,
{description = "show the menubar", group = "launcher"})
)
clientkeys = gears.table.join(
- awful.key({ modkey, }, "f",
- function (c)
- c.fullscreen = not c.fullscreen
- c:raise()
- end,
- {description = "toggle fullscreen", group = "client"}),
awful.key({ modkey, "Shift" }, "c", function (c) c:kill() end,
{description = "close", group = "client"}),
- awful.key({ modkey, "Control" }, "space", awful.client.floating.toggle ,
+ awful.key({ modkey, }, "k", function (c) c:kill() end,
+ {description = "close", group = "client"}),
+ awful.key({ modkey, }, "f", awful.client.floating.toggle ,
{description = "toggle floating", group = "client"}),
awful.key({ modkey, "Control" }, "Return", function (c) c:swap(awful.client.getmaster()) end,
{description = "move to master", group = "client"}),
+ awful.key({ modkey, }, "s", function (c) c:swap(awful.client.getmaster()) end,
+ {description = "move to master", group = "client"}),
awful.key({ modkey, }, "o", function (c) c:move_to_screen() end,
{description = "move to screen", group = "client"}),
awful.key({ modkey, }, "t", function (c) c.ontop = not c.ontop end,
{description = "toggle keep on top", group = "client"}),
- awful.key({ modkey, }, "n",
+ awful.key({ modkey, }, "z",
function (c)
-- The client currently has the input focus, so it cannot be
-- minimized, since minimized clients can't have the focus.