HOWDY JUST FOR FUN

celite 高效从wmii开始

wmii
在gnome下使用VIM,就像用短板的木桶,始终达不到应有的高效。而我一向不太追求效率,自看过Randy Pausch教授一场名为时间管理的讲座后颇为震惊,决意从我最亲密的计算机习惯改起。尽管从小我就一直被学校灌输所谓高效率的学习方法,可能心里对这种空虚的玩意儿不以为然,一直置若罔闻,忽视了自身应当到达的效率,而现在,也很难改掉懒散的习惯了。可我一向认为没有什么既定的事实,从拼音到五笔,windows到Linux,notepad到VIM,直到现在metacity(gnome)到wmii,我一直在改变着、挣扎着、快乐着。

wmii是我如今工作和学习时用的wm,日常还是用gnome。wmii不像gnome和kde广为人知,它存在的意义就是寻求高效的开发环境,对于非IT界人也许比较geeky。官方是这样介绍wmii的:wmii is a small,dynamic tiling(平铺) window manager for X11.对于gonme或kde用户,tiling比较陌生,科普一下->wiki

In computing, a tiling window manager(平铺式窗口管理器) is a window manager with an organization of the screen into mutually non-overlapping frames, as opposed to the more popular approach of coordinate-based stacking of overlapping objects (windows) that tries to fully emulate the desktop metaphor. wmii's example

从广义的wm概念讲,wm决定了窗口位置、桌面背景、菜单栏、右键菜单、键鼠控制、工作区、状态栏、运行对话框等。配置上,除极少数hacker对FVWM这种会晕的wm,其它的wm大同小异,包括wmii。除FVWM贯彻到底的自由主义外,其它的wm或多或少有着自己的特点。metacity(gnome),kwin(kde)一般认为为重量级wm,视觉上截然不同的感官效果,功能上差异明显,运行进程庞大。诸如xfce,openbox,flukbox之类的wm属于轻量级wm,轻量级wm一般只有习惯上的差异,当然通过配置可达到功能上基本相似,以简洁为荣的轻量级wm,都占用较少的系统资源。而tilling wm较轻量级wm,一般省去了桌面背景、菜单栏、右键菜单,强化了窗口位置(特色的吸附特性)、键鼠控制、工作区、状态栏、运行对话框。twm的结构和特性大大提升了工作时编写代码的效率。

如今,tilling wm渐渐展露其非凡,众多twm的发行版也浮出了水面。据Arcthur所知,tilling wm至少有8种以上,例举下大致上有awesome、dwm、xmonad、ratpoison、ion3、wmii等。国内社区中,由于Linuxer的局限,各tilling wm在国内社区中露脸的机会相当稀少,论坛上鲜有其讨论(Archlinux社区相对较多)。当然,它们的缺陷也屡见不鲜,如wmii标题栏中文极难配置,需要安装特定的字体,又只能配置一种字体,每个窗口都有一个标题栏,fork的进程太多,比较耗资源等等。其它twm亦不例外的有一些不足,因为我正在学习java和ruby,wmii可以很方便的用ruby来扩展,对于rubyist,ruby-wmii是个很好的起点,它只是一个配置文件,可以在它的基础上做修改,通读一遍代码基本能可以了解wmii的各个方面。

vim+xterm+wmii,完全在键盘上操作的快感也只有在体验过这样的组合后才会知道。最后,贴上wmii的快捷键

Key bindings

These are the default aliases:

MODKEY   Mod1
MODKEY2  Mod4  (often win key)
UP       k
DOWN     j
LEFT     h
RIGHT    l
MODKEY2-space        Switch between raw and normal input modes.
                     The current mode is indicated in the bar. All other key
                     bindings are ignored in raw mode.
MODKEY-Control-y     Run program with given tag (uses wmiimenu twice to get
                     the tag and the program).
MODKEY-a             Ask for action and execute it.
                     Includes internal and external (i.e. dependent on a
                     script in $HOME/.wmii-3) actions. Remembers the last
                     actions executed and presents them at the beginning.
MODKEY-p             Ask for a program and execute it.
                     The list of programs is updated periodically and cached.
                     Remembers the last programs executed and presents them at
                     the beginning.
MODKEY-0..9          Choose either the corresponding numerical view (if it
                     exists) or the (N-last_numerical_view)th non-numeric view
                     e.g. if the views are  1 2 3 4 code irc web
                     and you press MODKEY-6, it'll take you to  irc
MODKEY-Shift-0..9    Either replace the the numeric tag of the current client
                     or retag it as the (N-last_numerical_view)th non-numeric
                     view.
MODKEY-t             Ask for view to move to.
                     Tries to sort the choices intelligently based on
                     previous movement.
MODKEY-LEFT          Select prev column.
MODKEY-RIGHT         Select next column.
MODKEY-UP            Select prev client.
MODKEY-DOWN          Select next client.
MODKEY-space         Toggle managed/floating layer.
MODKEY-d             Set default mode.
MODKEY-s             Set stacked mode.
MODKEY-m             Set max mode.
MODKEY-f             Maximize current floating client.
MODKEY-i             Move bottom of current client down (i.e. enlarge)
MODKEY-Shift-i       Move bottom of current client up (i.e. shrinken).
MODKEY-Return        Launch terminal.
MODKEY-Shift-LEFT    Send to prev column.
MODKEY-Shift-RIGHT   Send to next column.
MODKEY-Shift-DOWN    Swap with lower client.
MODKEY-Shift-UP      Swap with upper client.
MODKEY-Shift-space   Toggle managed/floating layer for client.
MODKEY-Shift-c       Kill current client
MODKEY-r             Go back to previous view (where we came from).
                     Pressing more than once makes you cycle between 2 views.
MODKEY-Control-UP,
MODKEY-comma         Move to (lexicographically) preceding view.
MODKEY-Control-DOWN,
MODKEY-period        Move to (lexicographically) following view.
MODKEY2-Shift-UP,
MODKEY2-comma        Move to (lexicographically) preceding view within
                     current namespace.
MODKEY2-Shift-DOWN,
MODKEY2-period       Move to (lexicographically) following view within
                     current namespace.
MODKEY-Shift-t       Retag current client. Allows +/- modifiers to add/remove
                     tag.
MODKEY-Shift-r       Retag current client and move to corresponding view.
                     Alloes +/- modifiers.
MODKEY2-Shift-t      Retag in the namespace. Given a client tagged as foo+bar:
                       baz   retags it as bar:baz
                       +baz  retags it as foo+bar+bar:baz
                     Given foo+bar:baz, -baz  retags as  foo
MODKEY2-Shift-r      Retag as MODKEY2-Shift-t and moves to new view.
MODKEY2-a..z         Jump to first view whose name starts with the given
                     letter, sorted with intellisort (favors views chosen
                     before)
MODKEY-plus          Move forward in view history
MODKEY-minus         Move backwards in view history.
MODKEY-b             Open bookmark (see README.applets for further
                     information).
MODKEY-Shift-b       Bookmark URL in X11 primary selection buffer. Again, see
                     README.applets.
Internal actions (MODKEY-a)

 browser:     if given an argument, open the given URL in a browser, otherwise
              ask for it
 google:      same as 'browser', but searches with google
 screenshot:  takes a screenshot in $HOME/tmp/NAME-IDX.png, where NAME is
              either the given parameter or 'screenshot', and IDX is
              incremented automatically
 rename-view: change the name of the current view, and retag all clients
              accordingly. Takes the new name as a parameter, or asks for it.
 wmiirc:      reload the wmiirc configuration
 config-help: shows information about how to use and configure wmiirc, as well
              as how to write plugins

文章参考:

Related Posts


tag:,

Del.icio.us Google书签 Digg Live Bookmark Technorati Furl Yahoo书签 Facebook 百度搜藏 新浪ViVi 365Key网摘 天极网摘 和讯网摘 博拉网 POCO网摘 添加到饭否 QQ书签 Digbuzz我挖网

1 Comment

Recent Links Tagged With "metacity" - JabberTags Said,

23 October 2008 @ 10am

[...] public links >> metacity 高效从wmii开始 Saved by Frenzyshark on Tue 21-10-2008 Ice Metacity Saved by Smarty2382 on Mon 20-10-2008 Using [...]

Leave a Comment

XHTML: You can use these tags: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>