V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
V2EX 提问指南
gno23x
V2EX  ›  问与答

Linux 下,我想要这样一款 windows manager。

  •  
  •   gno23x · 2014-07-09 23:17:19 +08:00 · 4739 次点击
    这是一个创建于 3809 天前的主题,其中的信息可能已经有所发展或是发生改变。
    1. 平铺式,最好同时能够支持浮动,良好支持运行Gimp这种有大量窗口的程序。
    2. 提供操作windows manager的api,并允许通过在cli中调用
    3. 支持自定义快捷键,并且快捷键支持prefix key,形如“C-t a”、“C-t b”、“C-t c”
    4. 支持自定义函数(命令、功能),然后可以将快捷键绑定到该函数。
    5. 支持向应用程序发送“按键序列”及“字符串”
    (综合第2、3、4、5点,我可以实现类似这样一个函数,该函数利用wm提供的api切换到emacs,向emacs发送c-x按键序列,然后输入“gnus”,再向emacs发送RET键。最后将这个函数绑定到C-z,这样我只要在任何时候输入C-z,即可以打开emacs的gnus。理论上还可以控制其它支持快捷键的程序)
    6. 有一个快速输入框(类似Alfred),允许输入并执行自定义的函数(第4点提到)及windows manager自身的api
    7. 支持多显示器

    要求暂时想到这么多,我自己试过i3-wm,stumpwm,fvwm几款wm,其中stumpwm支持我上面提到的几乎所有内容,不过不支持浮动窗口(Gimp惨不忍睹),另外也想看下是否有更好的选择。每一款wm都去试实在太耗费时间,希望有相关wm使用经验的童鞋可以回复下,您使用的wm支持或者不支持以上哪一点,谢谢。
    21 条回复    2014-07-16 12:08:14 +08:00
    coolair
        1
    coolair  
       2014-07-09 23:25:51 +08:00 via Android   ❤️ 1
    自己写个吧!
    riaqn
        2
    riaqn  
       2014-07-09 23:27:49 +08:00   ❤️ 1
    你的要求太复杂,要求wm有很高的可定制性。估计只有xmonad了。
    http://xmonad.org/
    gno23x
        3
    gno23x  
    OP
       2014-07-09 23:30:03 +08:00
    @riaqn 希望随心所欲控制windows manager,又比如可以选中某个单词,按下某个快捷键即可跳到dict.cn去查该单词的含义。
    gno23x
        4
    gno23x  
    OP
       2014-07-09 23:31:15 +08:00
    @coolair 貌似使用xlib这个库可以写,不过目前能力不足。
    riaqn
        5
    riaqn  
       2014-07-09 23:34:43 +08:00
    @gno23x 我的xmonad都是默认配置,改了几个键绑定。我本人对haskell也不是很了解。
    你说的功能和这个可能有点关系: http://xmonad.org/xmonad-docs/xmonad-contrib/XMonad-Util-XSelection.html
    xmonad有很多模块,我觉得基本上能覆盖你的要求。但是需要很多代码是一定的。

    P.S.划词翻译功能,很多软件都有吧。
    gno23x
        6
    gno23x  
    OP
       2014-07-09 23:40:23 +08:00
    @riaqn 对,就是这个!xmonad我会去看看的,谢谢。划词翻译只是举个例子,还可以在选中文字进行搜索,如果是网址就打开浏览器,如果是邮箱地址就打开thunderbird等。不需要装软件,自己利用wm提供的api就可以实现很多很有趣的东西。
    siteshen
        7
    siteshen  
       2014-07-10 01:17:21 +08:00   ❤️ 1
    试试下sawfish?配置文件是一种lisp写的,如果写过emacs lisp的话会比较亲切。
    据我两年前的记忆:
    1. 不是平铺式的;2,3,4,6支持;5.似乎支持;7.不明(那会没用过多显示器)。

    以前最喜欢的是 (jump-to-emacs-or-back) (jump-to-chrome-or-back) 这样的函数,只要按着Windows-e,Winidows-c一定能正确在emacs和chrome中跳转。

    下面是若干示例配置:
    (services-add "Google" search-google)
    (services-add "Dict" dict-baidu)
    (services-add "Visit" visit-url)
    (bind-keys global-keymap "W-C" 'services)

    (bind-keys global-keymap "W-d" 'toggle-show-desktop)
    (bind-keys global-keymap "W-e" 'jump-to-emacs-or-back)
    (bind-keys global-keymap "W-c" 'jump-to-chromium-or-back)
    (bind-keys global-keymap "W-W" 'toggle-gfwvpn)
    tywtyw2002
        8
    tywtyw2002  
       2014-07-10 01:25:25 +08:00 via iPhone
    第五点很喜欢,同求什么wm支持5。

    6的话,awesome可以hack出来。
    riaqn
        9
    riaqn  
       2014-07-10 07:14:27 +08:00   ❤️ 1
    gno23x
        10
    gno23x  
    OP
       2014-07-10 09:44:20 +08:00
    @siteshen sawfish不是平铺式所以一直没去试,请问就你的使用经验来说,sawfish能完全抛弃鼠标不?
    gno23x
        11
    gno23x  
    OP
       2014-07-10 09:49:11 +08:00
    @riaqn 看起来能满足很多需求,就是xmonad使用haskell配置比较蛋疼,不太想为了使用一个wm去专门学一门新的语言。
    riaqn
        12
    riaqn  
       2014-07-10 09:54:01 +08:00
    @gno23x haskell 还是值得一学的,我一直想学不过没时间。
    h2ero
        13
    h2ero  
       2014-07-10 09:56:41 +08:00   ❤️ 1
    现在用的awesome wm基本上满足,
    5的换试试xdotool能实现不。
    比如向firefox发送按键是这样的。
    xdotool search --name "Firefox" key F5
    gno23x
        14
    gno23x  
    OP
       2014-07-10 10:03:05 +08:00
    @h2ero xmonad使用haskell进行配置,awesome使用lua进行配置,这真是一个悲伤的故事,找个时间都试试吧。我看了下xdotool的作用是模拟键盘输入,这么说输入字符也是没问题的吧?如果输入大写“A”呢?
    siteshen
        15
    siteshen  
       2014-07-10 11:52:30 +08:00
    @gno23x 在浏览器中会用鼠标,其他的X11应用中也会,窗口管理,布局,切换之类的不用鼠标。
    gno23x
        16
    gno23x  
    OP
       2014-07-10 12:00:35 +08:00
    @siteshen 浏览器Firefox的KeySnail插件可以解决纯键盘操作的问题,然后其他常用的应用就只有emacs和终端了,看来sawfish也可以尝试下,不过貌似sawfish开发还没stumpwm活跃啊。
    siteshen
        17
    siteshen  
       2014-07-10 12:12:06 +08:00
    @gno23x 现在唯一怀恋的就是当初用的jump-to-(emacs|chrome|term)-or-back命令了,现在用Slate也只有jump-to-(emacs|chrome|item2)这几个命令。当时我还不知道stumpwm吧。
    tywtyw2002
        18
    tywtyw2002  
       2014-07-12 14:09:17 +08:00 via iPhone
    @siteshen slate 支持 sendkey to app?
    siteshen
        19
    siteshen  
       2014-07-13 14:06:07 +08:00
    @tywtyw2002 是mac下的,好像不支持,用javascript配置。
    tywtyw2002
        20
    tywtyw2002  
       2014-07-13 14:44:08 +08:00 via iPhone
    @siteshen 嗯。我记得是slate不支持。
    知道hydia支持不
    siteshen
        21
    siteshen  
       2014-07-16 12:08:14 +08:00
    @tywtyw2002 没用过,也不打算折腾了。
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   894 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 21ms · UTC 20:14 · PVG 04:14 · LAX 12:14 · JFK 15:14
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.