ThinkChat2.0新版上线,更智能更精彩,支持会话、画图、阅读、搜索等,送10W Token,即刻开启你的AI之旅 广告
## 第 38 章 awesome **目录** [](ch38.html#id3159187) [Tiling window manager](ch38s02.html) [优点](ch38s03.html) [操作](ch38s04.html) [配置](ch38s05.html) ## Tiling window manager `Tiling window manager`,直译为“瓦片窗口管理器”[[84](ch38s02.html#ftn.id3158868)],意译为“平铺式窗口管理器”。 假设你需要同时监视多个程序的状态并进行操作,你就需要不停的按Alt+Tab切换,但是这会加速 Alt 尤其是 Tab 的磨损[[85](ch38s02.html#ftn.id3158880)]。 无奈之下,你可能会这样作: ![](https://box.kancloud.cn/2016-08-07_57a6a9741e64a.jpg) 用鼠标拖放成这样,绝对不是一件愉快的事,而且各个窗口的大小可能不太合适,窗口之间可能会有点缝隙,虽然不漏风,但是也影响注意力…… 而在平铺式窗口管理器中,无论打开多少个窗口,都会把整个屏幕占满,不留一点儿缝隙(如果只有一个窗口,直接全屏) ![](https://box.kancloud.cn/2016-08-07_57a6a97437ce8.jpg) 窗口没有标题栏(标题在状态栏上),边框尽可能的窄(可设置为0),最大程度的节约了桌面空间,如果你的显示器比较大,或者有多个显示器,平铺式窗口管理器将是不二之选 ![](https://box.kancloud.cn/2015-10-12_561bcb94ee26f.png) 常见的平铺式窗口管理器有: awesome、xmonad、dwm、wmii、ion、ratpoison、larswm 等, 推荐使用 `awesome` * * * > [[84](ch38s02.html#id3158868)] 像屋顶的瓦片一样平铺开来 > [[85](ch38s02.html#id3158880)] 手的磨损忽略了,因为它是可再生的 ## 优点 awesome 有以下优点: 稳定、快速、简单 专注于效率 不需要为码放窗口分心,不需要在多个窗口间来回切换,不需要经常把手挪开使用鼠标 完全的键盘控制 在普通的窗口管理器中,完全键盘控制是不现实的,因为调整窗口位置无论如何要用鼠标。 强大、灵活的配置文件 使用 Lua 脚本作为配置文件使得它的灵活性非常高 支持多种窗口布局 多显示器支持 ## 操作 awesome 中,所有的操作都可以用快捷键完成: | | | | --- | --- | | 打开终端 | Mod4 + Return | | 运行命令 | Mod4 + F1 | | 关闭当前窗口 | Mod4 + Shift + c | | 重启awesome | Mod4 + Control + r | | 退出awesome | Mod4 + Shift + q | | 重绘当前窗口 | Mod4 + Shift + r | | 窗口间切换 | Mod4 + j | Mod4 + k | | 标签间切换 | Mod4 + Left | Mod4 + Right | | 切换到标签 | Mod4 + [1-9] | | 屏幕间切换 | Mod4 + Control + j | Mod4 + Control + k | | 切换布局 | Mod4 + space | Mod4 + Shift + space | | 切换为浮动窗口 | Mod4 + Control + space | | 调整窗口位置 | Mod4 + Shift + j | Mod4 + Shift + k | | 调整列大小 | Mod4 + h | Mod4 + l | | 调整主区窗口数量 | Mod4 + Shift + h | Mod4 + Shift + l | | 调整辅区窗口数量 | Mod4 + Control + h | Mod4 + Control + l | ## 配置 awesome 全局配置文件为 `/etc/xdg/awesome/rc.lua`,用户配置文件为 `~/.config/awesome/rc.lua`,以下是一些配置选项: **例 38.1. awesome 配置** ``` -- 主题文件。awesome的主题非常简单,只需要指明几个颜色就可以了 theme_path = "/usr/local/share/awesome/themes/default" -- 设置默认终端 terminal = "urxvt" -- Mod4 对应“Win”键,可以改成其它的 modkey = "Mod4" -- 不保留窗口间的缝隙 c.honorsizehints = false -- 默认使用浮动窗口的程序 -- 在awesome下用Mod4 + Ctr + i 查看当前程序的instance和class名称 floatapps = { ["MPlayer"] = true, ["gimp"] = true, ["smplayer"] = true, ["mocp"] = true, ["Codeblocks"] = true, -- 各种对话框 ["Dialog"] = true, -- firefox 的下载窗口 ["Download"] = true, ["empathy"] = true } -- 程序启动时自动发送到某个屏幕的某个tag里 apptags = { ["smplayer"] = { screen = 1, tag = 7 }, ["amarokapp"] = { screen = 1, tag = 8 }, ["VirtualBox"] = { screen = 1, tag = 9 }, ["Firefox"] = { screen = 1, tag = 1}, ["Thunderbird-bin"] = { screen = 1, tag = 7 }, ["Linux-fetion"] = { screen = 1, tag = 6 }, } -- 显示时间 -- 默认显示的是从1970年1月1日到现在经过了多少秒 -- 查找awful.hooks.timer.register这一行,改为如下配置 awful.hooks.timer.register(1, function () mytextbox.text = " " .. os.date() .. " " end) ```