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

2014-07-09 23:17:19 +08:00
 gno23x
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支持或者不支持以上哪一点,谢谢。
4657 次点击
所在节点    问与答
21 条回复
coolair
2014-07-09 23:25:51 +08:00
自己写个吧!
riaqn
2014-07-09 23:27:49 +08:00
你的要求太复杂,要求wm有很高的可定制性。估计只有xmonad了。
http://xmonad.org/
gno23x
2014-07-09 23:30:03 +08:00
@riaqn 希望随心所欲控制windows manager,又比如可以选中某个单词,按下某个快捷键即可跳到dict.cn去查该单词的含义。
gno23x
2014-07-09 23:31:15 +08:00
@coolair 貌似使用xlib这个库可以写,不过目前能力不足。
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
2014-07-09 23:40:23 +08:00
@riaqn 对,就是这个!xmonad我会去看看的,谢谢。划词翻译只是举个例子,还可以在选中文字进行搜索,如果是网址就打开浏览器,如果是邮箱地址就打开thunderbird等。不需要装软件,自己利用wm提供的api就可以实现很多很有趣的东西。
siteshen
2014-07-10 01:17:21 +08:00
试试下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
2014-07-10 01:25:25 +08:00
第五点很喜欢,同求什么wm支持5。

6的话,awesome可以hack出来。
riaqn
2014-07-10 07:14:27 +08:00
gno23x
2014-07-10 09:44:20 +08:00
@siteshen sawfish不是平铺式所以一直没去试,请问就你的使用经验来说,sawfish能完全抛弃鼠标不?
gno23x
2014-07-10 09:49:11 +08:00
@riaqn 看起来能满足很多需求,就是xmonad使用haskell配置比较蛋疼,不太想为了使用一个wm去专门学一门新的语言。
riaqn
2014-07-10 09:54:01 +08:00
@gno23x haskell 还是值得一学的,我一直想学不过没时间。
h2ero
2014-07-10 09:56:41 +08:00
现在用的awesome wm基本上满足,
5的换试试xdotool能实现不。
比如向firefox发送按键是这样的。
xdotool search --name "Firefox" key F5
gno23x
2014-07-10 10:03:05 +08:00
@h2ero xmonad使用haskell进行配置,awesome使用lua进行配置,这真是一个悲伤的故事,找个时间都试试吧。我看了下xdotool的作用是模拟键盘输入,这么说输入字符也是没问题的吧?如果输入大写“A”呢?
siteshen
2014-07-10 11:52:30 +08:00
@gno23x 在浏览器中会用鼠标,其他的X11应用中也会,窗口管理,布局,切换之类的不用鼠标。
gno23x
2014-07-10 12:00:35 +08:00
@siteshen 浏览器Firefox的KeySnail插件可以解决纯键盘操作的问题,然后其他常用的应用就只有emacs和终端了,看来sawfish也可以尝试下,不过貌似sawfish开发还没stumpwm活跃啊。
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
2014-07-12 14:09:17 +08:00
@siteshen slate 支持 sendkey to app?
siteshen
2014-07-13 14:06:07 +08:00
@tywtyw2002 是mac下的,好像不支持,用javascript配置。
tywtyw2002
2014-07-13 14:44:08 +08:00
@siteshen 嗯。我记得是slate不支持。
知道hydia支持不

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/121850

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX