1. 簡介

Awesome Window Manager 的目標,是做個可擴充、可高度自訂的視窗管理員。

為了達到這個目的,awesome 是設計成一個 framework window manager,極為快速、小巧、動態、且可用 Lua programming language 來擴充。

1.1. awesome 的視窗管理

awesome 的視窗管理與傳統的 x-Window-manager 不同,它是用「標籤」來作管理的。

啟動 awesome 後,畫面左上方標示著 one,two…nine,稱為標籤 (tag),one, two, three …… 等就是標籤的名稱。「標籤」的功能乍用之下有點類似虛擬桌面 (workspace),但其實概念上是很不一樣的東西。

awesome 會給視窗加上「標籤」,當我們選擇 one 時,就代表要顯示具有 one 這個標籤的視窗。如果覺得用小小的標籤管理視窗有點不習慣,不妨將畫面左上的 tag 想成是那個 tag 的 workspace,每當我們選取了某個 tag,就代表我們要顯示那個 tag 所代表的 workspace,每當我們給某個視窗加上 tag,就代表我們將那視窗加入那個 tag 的 workspace。

在 awesome 中,我們可以透過簡單的操作,將視窗加上一或多個標籤,並決定目前螢幕上要顯示具有某個或某幾個標籤的視窗,這讓視窗的管理更具彈性。

例如,我們可以將具有 one, two, three 標籤的視窗都同時顯示在螢幕上,也可以輕易切換為只顯示 one 或 two 標籤的視窗。

也可以給某個視窗加上 one, two, three 三個標籤,如此,無論你現在顯示 one,或 two,或 three,都可以顯示這個視窗。

這些功能,其實並不稀奇,但 awesome 之所以 awesome,是因為這些視窗管理都可以透過簡單的鍵盤、滑鼠來即時操作!

1.2. awesome 的特點

1.3. awesome 版面配置的方式 (layout)

版面配置 (layout) ,是根據螢幕可用空間來排列視窗的功能 (function)。awesome 提供很多種版面配置的方式。

平鋪 (Tiled) 使用這種版面配置時,awesome 會把視窗分成主視窗區 (master area) 與堆疊區 (stacking area),主視窗區放置我們目前比較需要注意的視窗,其他視窗放在堆疊區。主視窗區可切割成好幾列 (row) 與好幾欄 (column),隨你高興。
最大視野 (Max) 每個視窗都調整到全螢幕。
放大 (Magnifier) 焦點所在的視窗維持在畫面中央並佔用最大的空間,其餘視窗都堆疊到這個視窗後。
浮動 (Floating) 可自由改變每個視窗的大小,就像一般的視窗管理員一樣。

不管使用那一種版面配置模式,對話方塊視窗總是以 floating 來處理。

1.4. awesome 的介面元素

狀態列 (Statusbar) 可放在螢幕的上下左右邊緣,包含一或多個 widgets。
標題列 (Titlebar) 類似狀態列,但是,標題列是在視窗的邊緣。
小工具 (Widget) 在狀態列或標題列中的東西,可以文字、圖形、進度列、圖表等各種小東西顯示各種資訊。

2. 第一次用 awesome 要知道的

3. 不是第一次使用 awesome 要知道的

4. 預設的滑鼠按鍵功能

4.1. 瀏覽

4.2. 修改版面配置

5. 預設的按鍵設定

awesome 提供了極豐富的快捷鍵,而且完全可以自訂,如果覺得預設的快捷鍵不好按,可以透過修改設定檔 rc.lua 來變更。

5.1. 與狀態列相關

Win + F1 (Mod4 + F1)

用 awesome-menu 來執行程式 。

Win + F4 (Mod4 + F3)

執行 Lua code。

5.2. 開始使用/離開/重新啟動 awesome

Win + Return (Mod4 + Return)

開啟 X terminal emulator。

Win + Shift + q (Mod4 + Shift + q)

離開 awesome (Quit awesome)。

Win + Ctrl + r (Mod4 + Control + r)

重新啟動 awesome (Restart awesome)。

5.3. 切換焦點

Win + j (Mod4 + j)

將焦點切換到下一個視窗 (Focus next client)。

Win + k (Mod4 + k)

將焦點切換到前一個視窗 (Focus previous client)。

Win + u (Mod4 + u)

將焦點切換到第一個 urgent 的視窗 (Focus first urgent client)

5.4. 切換視野

Win + Left (Mod4 + Left)

看標有上一個標籤 (View previous tag) 的視窗。

Win + Right (Mod4 + Right)

看標有下一個標籤 (View next tag) 的視窗。

Win + 1-9 (Mod4 + 1-9)

切換到 tag 1-9 (Switch to tag 1-9)。

Win + Esc (Mod4 + Escape)

看先前選取的標籤 (View previously selected tag)。可在之前/目前所在的標籤之間切換。

5.5. 視窗管理一

Win + Shift + j (Mod4 + Shift + j)

將目前視窗與下一個視窗交換位置 (Switch client with next client)。

Win + Shift + k (Mod4 + Shift + k)

將目前視窗與前一個視窗交換位置 (Switch client with previous client)。

Win + Shift + c (Mod4 + Shift + c)

關掉視窗 (Kill client)。

Win + m (Mod4 + m)

將焦點所在的視窗最大化 (仍會顯示 status bar)。再按一次可取消此狀態。

Win + f (Mod4 + f)

將焦點所在的視窗設為全螢幕 (status bar 會被蓋住)。再按一次可取消此狀態。

Win + Ctrl + 空白鍵 (Mod4 + Ctrl + Space)

將焦點所在的視窗為浮動狀態 (Set client floating)。

也就是與一般 Window Manager 相同的視窗顯示方式,而非 Tiling 的方式。

Win + Ctrl + Enter (Mod4 + Ctrl + Enter)

把目前焦點所在的視窗與 主視窗 交換。

這會讓原本焦點所在的視窗變成主視窗,原的本主視窗變成在原本焦點所在視窗的位置,實在是相當好用的快捷鍵!

5.6. 視窗管理二

Win + Ctrl + 1-9 (Mod4 + Control + 1-9)

將標籤為 [1-9] 的視窗顯示到目前桌面上 (Toggle tag view)。

可想成,要控制 (Control) 標籤為 [1-9] 的視窗 (Win)。

Win + Shift + 1-9 (Mod4 + Shift + 1-9)

給某個視窗加上標籤 (Tag client with tag)。

按下去後,視窗會消失在目前螢幕上,移動 (shift) 到新的標籤去,其實也就是把焦點所在的視窗搬到指定的標籤去。相當於在標籤上按 Win + 滑鼠左鍵

Win + Shift + Ctrl + 1-9 (Mod4 + Shift + Ctrl + 1-9)

為焦點所在視窗 加上/去掉 某個 tag (Toggle tag on client)。

按下去後,視窗仍在目前螢幕上,不會消失,且會出現在指定的 tag 所代表的 workspace 裡。

可想成,既要移動 (Shift)、又要控制 (Ctrl) 焦點所在的視窗。

相當於在某個標籤上按 Win + 滑鼠右鍵

5.7. 視窗管理三

Win + t (Mod4 + t)

將焦點所在的視窗作記號(Mark a client)。預設設定下,被作了記號的視窗,周圍會用細細的紅色框線框起來。若要取消記號,再按一次即可。

Win + Shift + F1-9 (Mod4 + Shift + F1-9)

將有作記號的視窗都加上指定的 tag (原來的 tag 不會保留)

也就是說,會把之前作記號的視窗,都搬到 tag 1-9 所代表的 workspace 去。

5.8. 螢幕管理

Win + Control + j (Mod4 + Control + j)

將焦點切換到下一個螢幕 (Focus next screen)。

Win + Control + k (Mod4 + Control + k)

將焦點切換到上一個螢幕 (Focus previous screen)。

Win + o (Mod4 + o)

將視窗送到下一個螢幕去 (Send client to next screen)。

5.9. 切換版面配置

Win + 空白鍵 (Mod4 + space)

切換到下一個 layout。

Win + Shift + 空白鍵 (Mod4 + Shift + space)

切換到前一個 layout。

5.10. 調整版面配置區塊的大小

Win + h (Mod4 + h)

減少 主視窗區 5% 的高/寬度 (Decrease master width factor by 5%)。

Win + l (Mod4 + l)

增加 主視窗區 5% 的高/寬度 (Increase master width factor by 5%)。

Manpage 中並沒有清楚指出各種版面配置中,那些區域是主視窗區,所以我只好依 Win + hWin + l 變更主視窗區的大小,來找出在目前的版面配置中,那裡是主視窗區。

根據測試,主視窗區,多半是 Layout Symbol 中可視面積較大的視窗所佔用的區域,有幾種版面配置,沒有主視窗區/非主視窗區之分,例如:最大化、全螢幕、floating。另有兩種版面配置(Layout Symbol 以 6+2 來表示),視窗大小是固定的,用 Win + h/lWin + 滑鼠右鍵拖曳 都無法調整。

5.11. 調整版面配置的細節

這個部份的快捷鍵, h 為增加, l 為減少,乍看之下,與上面調整版面配置時的「 h 為減少、 l 為增加」似有衝突,但其實只要把握一個原則,就會比較好記了: h 會讓視窗變窄/矮, l 讓視窗變寬/高。

Win + Shift + h (Mod4 + Shift + h)

增加一個 主視窗 (Increase number of master windows by 1)。

Win + Shift + l (Mod4 + Shift + l)

減少一個 主視窗 (Decrease number of master windows by 1)。

Win + Ctrl + h (Mod4 + Control + h)

增加 非主視窗 的 column 數 (Increase number of columns for non-master windows by 1)

Note: 何謂 column? 這依視窗排列方式不同而異,自己按按看就知道了。

Win + Ctrl + l (Mod4 + Control + l)

減少 非主視窗 的 column 數 (Decrease number of columns for non-master windows by 1)