IT博客汇
  • 首页
  • 精华
  • 技术
  • 设计
  • 资讯
  • 扯淡
  • 权利声明
  • 登录 注册

    awesome大小写锁定widget

    maplebeats (maplebeats@gmail.com)发表于 2012-10-02 00:00:00
    love 0

    代码

    function capslock(widget)
        os.execute("sleep .2")
        local s = io.popen("xset -q")
        local ss = ''
        local sn = ''
        for line in s:lines() do
            ss = line:match('Caps Lock:%s*%l*%s*')
            sn = line:match('Num Lock:%s*%l*%s*')
            if ss and sn then break end
        end
        local sss = string.gsub(ss,"Caps Lock:%s*(%l*)%s*","%1")
        local sns = string.gsub(sn,"Num Lock:%s*(%l*)%s*","%1")
        widget.text = "(" .. sss:upper() ..")" .. "(" .. sns:upper() .. ")"
    end

    这函数写得写烂,调用的是xset,而且反复按的话会有bug(当然没有谁无聊一直反复切换嘛)。不得不说,我讨厌lua的正则,好讨厌。

    再将这个函数绑定到按键上

    awful.key({ }, 'Caps_Lock', function ()  capslock(caps_lock) end),
    awful.key({ }, 'Num_Lock', function ()  capslock(caps_lock) end)

    完整的配置文件在:https://github.com/maplebeats/configuration/blob/master/awesome/rc.lua

    update

    最近有解决了些小问题,想分享一下,又没必要写新文章,所以就直接加了。

    X11默认是10分钟超时关屏,然后我又没有什么电源管理之类的,经常看动漫的我表示,关屏30分钟才是我需要的值。。。但是我死活找不到配置文件在哪里。在IRC里经人提醒才发现了xset这个命令。 xset dpms 1800 2400 2400 s off 就更改到了30分钟,改成0就是不自动关屏,上面的widget就是通过调用这个来判断lock状态的,哈哈。

    今天在沙发上玩的时候,连续两次把电源碰到直接关机了。十分想吐槽该死的ACER的设计。然后这个玩意也是电源管理里的,但是我没有那些组件,所以。。。一时没找到办法,我还想过更改按键映射,但是想想这样很愚蠢。直到我发现了/etc/systemd/logind.conf,systemd居然自己有这个功能。。。于是把几个关于Power的全都改成ignore了。重启之后工作明显,但是我没想到办法不重启载入这配置的方法。。。

    update at 10.5

    结语

    国庆快乐(≧▽≦)y
    最近发生的事太多了,好几次都想下“笔”写博客,但是都收回来了。一切的一切等我找到实习了,也许就会好些吧。



沪ICP备19023445号-2号
友情链接