Awesome

来自百合仙子's Wiki
跳转到导航 跳转到搜索

配置

自动吸附

{ rule = { class = "Qutim" },
   callback = awful.mouse.client.snap }

启动程序

可以用awful.util.spawn或者os.execute。如果要获取启动的窗口,只能在其启动后再寻找,邮件列表上有人说通过匹配client.pid,但启动的程序的PID似乎无法获得。

keygrabber

keygrabber 所运行的函数返回true则继续捕获按键,返回falsenil则停止。

可用于绑定函数到键序列,如

awful.key({ modkey }, "y", function()
    keygrabber.run(function(mod, key, action)
	if action ~= "press" then return true end
	if tonumber(key) ~= nil then
	    naughty.notify({text = key})
	    return false
	end
    end)
end),

client 对象

transient_for属性指向窗口的父窗口。

程序

awesome

  • 可使用SIGHUP信号重启之。

awesome-client

使用 D-Bus 通信[1],从 stdout 读取代码并执行,使用return来让 Awesome 返回代码运行结果。

锁屏、挂起和关机

锁屏可使用 gnome-screensaverxscreensaver 或者 slock(最简单,连界面都没有)。[2]

挂起和关机等可以使用 dbus-send 或者 systemd

应用程序菜单生成

Arch 下可以使用 archlinux-xdg-menu 包中的 xdg_menu 命令来生成。[3]

D-Bus 接口

awesome-client 所使用的 D-Bus 接口,名称为org.naquadah.awesome.awful,路径/,方法org.naquadah.awesome.awful.Remote.Eval,接受一个字符串。使用 Python 代码如下:

import dbus

bus = dbus.SessionBus()
awful = bus.get_object('org.naquadah.awesome.awful', '/')
remote = dbus.Interface(awful, 'org.naquadah.awesome.awful.Remote')
remote.Eval('return true')

功能

桌面通知

要使用其它桌面通知程序,只需要执行:[4]

dbus.release_name("session", "org.freedesktop.Notifications")

然后启动那个程序(如 xfce4-notifyd)即可。要换回来,使用:

dbus.request_name("session", "org.freedesktop.Notifications")

参见 naughty

注意

语言

默认的 locale 不是当前locale,要手动设置以便时间正确显示

os.setlocale("zh_CN.UTF-8")

GTK主题

对于 GTK2,编辑~/.gtkrc-2.0文件,加入以下行

include "/usr/share/themes/Mist/gtk-2.0/gtkrc"
gtk-font-name = "文泉驿正黑 9"
gtk-theme-name = "Mist"
gtk-icon-theme-name = "gnome"

对于 GTK3,参见 GTK3#主题设置

问题

  • 窗口重绘有时候过慢,或者切换 tag 后某个 Empathy 窗口依旧诡异地显示着
  • 在开启 xcompmgr 时,主菜单的部分项目在鼠标悬停时才显示 [5]
  • gnome-osd-client 不能使用

Java 的问题

  • 窗口最小化后无法恢复
  • 窗口大小调整后其中的元素不会自动调整大小
  • 菜单和JComboBox等构件的弹出菜单响应鼠标时会立即消失,因为 Java 收到的鼠标位置不对
  • 有些构件会改变鼠标形状(不管是默认的还是自定义的),鼠标改变形状的区域可能会有偏差

模块

其他人的配置

包含 tearoff(像窗帘一样从屏幕上方拉下的)和 scratchpad(浮动便笺式) 窗口管理模块,以及一个(并不好用的)屏幕键盘。

参见

外部链接

配置片断

参考资料