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

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

  •  
  •   gno23x Jul 9, 2014 5126 views
    This topic created in 4351 days ago, the information mentioned may be changed or developed.
    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 replies    2014-07-16 12:08:14 +08:00
    coolair
        1
    coolair  
       Jul 9, 2014 via Android   1
    自己写个吧!
    riaqn
        2
    riaqn  
       Jul 9, 2014   1
    你的要求太复杂,要求wm有很高的可定制性。估计只有xmonad了。
    http://xmonad.org/
    gno23x
        3
    gno23x  
    OP
       Jul 9, 2014
    @riaqn 希望随心所欲控制windows manager,又比如可以选中某个单词,按下某个快捷键即可跳到dict.cn去查该单词的含义。
    gno23x
        4
    gno23x  
    OP
       Jul 9, 2014
    @coolair 貌似使用xlib这个库可以写,不过目前能力不足。
    riaqn
        5
    riaqn  
       Jul 9, 2014
    @gno23x 我的xmonad都是默认配置,改了几个键绑定。我本人对haskell也不是很了解。
    你说的功能和这个可能有点关系: http://xmonad.org/xmonad-docs/xmonad-contrib/XMonad-Util-XSelection.html
    xmonad有很多模块,我觉得基本上能覆盖你的要求。但是需要很多代码是一定的。

    P.S.划词翻译功能,很多软件都有吧。
    gno23x
        6
    gno23x  
    OP
       Jul 9, 2014
    @riaqn 对,就是这个!xmonad我会去看看的,谢谢。划词翻译只是举个例子,还可以在选中文字进行搜索,如果是网址就打开浏览器,如果是邮箱地址就打开thunderbird等。不需要装软件,自己利用wm提供的api就可以实现很多很有趣的东西。
    siteshen
        7
    siteshen  
       Jul 10, 2014   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  
       Jul 10, 2014 via iPhone
    第五点很喜欢,同求什么wm支持5。

    6的话,awesome可以hack出来。
    riaqn
        9
    riaqn  
       Jul 10, 2014   1
    gno23x
        10
    gno23x  
    OP
       Jul 10, 2014
    @siteshen sawfish不是平铺式所以一直没去试,请问就你的使用经验来说,sawfish能完全抛弃鼠标不?
    gno23x
        11
    gno23x  
    OP
       Jul 10, 2014
    @riaqn 看起来能满足很多需求,就是xmonad使用haskell配置比较蛋疼,不太想为了使用一个wm去专门学一门新的语言。
    riaqn
        12
    riaqn  
       Jul 10, 2014
    @gno23x haskell 还是值得一学的,我一直想学不过没时间。
    h2ero
        13
    h2ero  
       Jul 10, 2014   1
    现在用的awesome wm基本上满足,
    5的换试试xdotool能实现不。
    比如向firefox发送按键是这样的。
    xdotool search --name "Firefox" key F5
    gno23x
        14
    gno23x  
    OP
       Jul 10, 2014
    @h2ero xmonad使用haskell进行配置,awesome使用lua进行配置,这真是一个悲伤的故事,找个时间都试试吧。我看了下xdotool的作用是模拟键盘输入,这么说输入字符也是没问题的吧?如果输入大写“A”呢?
    siteshen
        15
    siteshen  
       Jul 10, 2014
    @gno23x 在浏览器中会用鼠标,其他的X11应用中也会,窗口管理,布局,切换之类的不用鼠标。
    gno23x
        16
    gno23x  
    OP
       Jul 10, 2014
    @siteshen 浏览器Firefox的KeySnail插件可以解决纯键盘操作的问题,然后其他常用的应用就只有emacs和终端了,看来sawfish也可以尝试下,不过貌似sawfish开发还没stumpwm活跃啊。
    siteshen
        17
    siteshen  
       Jul 10, 2014
    @gno23x 现在唯一怀恋的就是当初用的jump-to-(emacs|chrome|term)-or-back命令了,现在用Slate也只有jump-to-(emacs|chrome|item2)这几个命令。当时我还不知道stumpwm吧。
    tywtyw2002
        18
    tywtyw2002  
       Jul 12, 2014 via iPhone
    @siteshen slate 支持 sendkey to app?
    siteshen
        19
    siteshen  
       Jul 13, 2014
    @tywtyw2002 是mac下的,好像不支持,用Javascript配置。
    tywtyw2002
        20
    tywtyw2002  
       Jul 13, 2014 via iPhone
    @siteshen 嗯。我记得是slate不支持。
    知道hydia支持不
    siteshen
        21
    siteshen  
       Jul 16, 2014
    @tywtyw2002 没用过,也不打算折腾了。
    About     Help     Advertise     Blog     API     FAQ     Solana     3175 Online   Highest 6679       Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 43ms UTC 13:57 PVG 21:57 LAX 06:57 JFK 09:57
    Do have faith in what you're doing.
    ubao msn snddm index pchome yahoo rakuten mypaper meadowduck bidyahoo youbao zxmzxm asda bnvcg cvbfg dfscv mmhjk xxddc yybgb zznbn ccubao uaitu acv GXCV ET GDG YH FG BCVB FJFH CBRE CBC GDG ET54 WRWR RWER WREW WRWER RWER SDG EW SF DSFSF fbbs ubao fhd dfg ewr dg df ewwr ewwr et ruyut utut dfg fgd gdfgt etg dfgt dfgd ert4 gd fgg wr 235 wer3 we vsdf sdf gdf ert xcv sdf rwer hfd dfg cvb rwf afb dfh jgh bmn lgh rty gfds cxv xcv xcs vdas fdf fgd cv sdf tert sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf shasha9178 shasha9178 shasha9178 shasha9178 shasha9178 liflif2 liflif2 liflif2 liflif2 liflif2 liblib3 liblib3 liblib3 liblib3 liblib3 zhazha444 zhazha444 zhazha444 zhazha444 zhazha444 dende5 dende denden denden2 denden21 fenfen9 fenf619 fen619 fenfe9 fe619 sdf sdf sdf sdf sdf zhazh90 zhazh0 zhaa50 zha90 zh590 zho zhoz zhozh zhozho zhozho2 lislis lls95 lili95 lils5 liss9 sdf0ty987 sdft876 sdft9876 sdf09876 sd0t9876 sdf0ty98 sdf0976 sdf0ty986 sdf0ty96 sdf0t76 sdf0876 df0ty98 sf0t876 sd0ty76 sdy76 sdf76 sdf0t76 sdf0ty9 sdf0ty98 sdf0ty987 sdf0ty98 sdf6676 sdf876 sd876 sd876 sdf6 sdf6 sdf9876 sdf0t sdf06 sdf0ty9776 sdf0ty9776 sdf0ty76 sdf8876 sdf0t sd6 sdf06 s688876 sd688 sdf86