• 新的musca... - [开源之旅]

    2011年04月30日

    比之前的又轻了一个档次。

  • 我之前曾说dwm的扩展性比musca的要好很多,但自从我发现dwm不支持wmctrl,而musca可以通过"musca -c"进行外部调用后,就发现这句话说反了,起码对于像我这些不会hack底层的C代码的菜鸟来说,musca的扩展性比dwm要好不少,而且musca的手动平铺(manual tiling)也比dwm的动态平铺(dynamic tiling)要实用不少。

    尽管尽管musca的作者已经停止了对其的开发,不过就目前而言,真的找不到有比它更适合我的窗口管理器。

  • 没错,总算要把用了一年多的musca换了(其实上上星期(今天星期一)就把dwm装上了,只是没把dwm配置好),换成了dwm。

    上星期自己学了下shell编程,这个周末回来为dwm专门写了个输出系统状态的小脚本,可以把conky扔掉了。

    上上周就将parcellite用anamnesis代替了,后者可以在命令行下实现类似前者的保留剪切板的功能,也就无需为此专门弄个托盘,可以把trayer扔掉了。

    dwm已自带当前窗口的标题显示,可以把tint2扔掉了。

    原本还想直接使用dwm的状态栏(statusbar),打上statuscolors的补丁来显示系统状态从而把dzen也扔掉,但后来发现无法对dwm的statusbar中的内容进行定位(所显示的东西都靠到最右边),没有dzen那么灵活,所以最终还是把dzen留下了。(不过后来还是把dzen2扔掉了,定位的问题通过手动加空格解决)

    再说说对dwm的感觉吧。

    它给我的第一印象就是极其极其小巧,安装包大小只有17k,跟xmonad, stumpwm等百兆级的wm(主要是依赖太庞大)差了不知多少个重量级。

    在深入了解后就发现它的扩展性极佳,可以通过打上各种补丁(patch)来使其更加强大,从类似awesome, xmonad等等众多tiling wm也是基于它而诞生就可印证这一点。

    总而言之,dwm是个小巧而又强大的wm。

    再说说我所配置的dwm吧,首先我用的是在这里 所获取的dwm-db(作者居然叫Dan Brown!),这dwm-db提供了xft字体的支持(但好像并非打上了pango补丁),并打上了statuscolors的补丁,还实现了只有在该tag里有窗口才进行显示的功能(找不到类似的补丁),还提供了个名为statusbar.sh的用来显示系统状态的脚本(我也从中借鉴了一下),其相对于官方原版的修改还算是比较实用的。我在这dwm-db另外打上了两个补丁,一个叫shorttitle,可以用来限制dwm状态栏中当前窗口标题显示的长度,而且当标题长度小于最大值时还会自动调整来适应标题的显示,可以用来节省statusbar的空间;另外一个叫scratchpad,用来实现类似xmonad的scratchpad的功能,可以设置一组键位绑定一个程序(例如urxvt),当按下该键位时先会检查该程序是否已经运行,如果没有运行就启动一个新的,如果运行了就将该程序“拉”到当前画面中,很实用吧?

    话就说这么多吧,接下来当然是上图时间。

    注:惊奇地发现大巴的标签数不再限制在5个以内了!

  • 在用上了tmux后那musca的手动分割就变得没那么重要了(因为tmux可以分屏),我现在更需要带有tag功能的wm,是dynamic tiling还是manual tiling也没所谓了,选来选去,最后选择了曾经就心仪过的极其小巧的dwm……

    弄了一个早上,算是把基本的设置都弄好了……估计下星期(因为要回学校上课)就能正式投入使用了。

  • 留念留念……

    今天是10年11月12日哦!真是个特别的日子……

  • 另走前再发张最新(其实也有一段时间了)的截图吧……改了conky部分的配色,跟时间的显示(改回24时制了)。

  • 我用这musca也有一段时间了,配置也比较成熟了(毕竟musca有一年多没更新了),就拿出来给大家参考参考吧……

    从这里开始:

    bind off all
    bind on Mod4+i hsplit 1/2
    bind on Mod4+o vsplit 1/2
    bind on Mod4+x remove
    bind on Mod4+f only
    bind on Mod1+F4 kill
    bind on Mod1+k cycle next
    bind on Mod1+j cycle prev
    bind on Mod4+w switch window
    bind on Mod4+g switch group
    bind on Mod4+r shell
    bind on Mod4+c command
    bind on Mod4+a dedicate flip
    bind on Mod4+s catchall flip
    bind on Mod4+u undo
    bind on Mod4+space stack flip
    bind on Mod4+h focus left
    bind on Mod4+l focus right
    bind on Mod4+k focus up
    bind on Mod4+j focus down
    bind on Mod4+n use (next)
    bind on Mod4+p use (prev)
    bind on Mod4+Tab screen (next)
    bind on Mod4+Control+h resize left
    bind on Mod4+Control+l resize right
    bind on Mod4+Control+k resize up
    bind on Mod4+Control+j resize down
    bind on Mod4+Shift+h swap left
    bind on Mod4+Shift+l swap right
    bind on Mod4+Shift+k swap up
    bind on Mod4+Shift+j swap down
    bind on Mod4+1 use 0
    bind on Mod4+2 use 1
    bind on Mod4+Shift+1 move 0
    bind on Mod4+Shift+2 move 1

    manage off conky
    manage off tint2
    manage off trayer

    set border_focus #1994d1
    set border_width 2
    set dmenu dmenu -i -b -nb '#000000' -nf '#1994d1'
    set focus_follow_mouse 1
    set window_open_frame empty

    hook on ^add pad 0 0 20 20

    name main
    pad 0 0 20 20
    add misc
    use main
    结束。

    备注1:我把常用程序的运行都用xbindkeys绑定了,所以这里看不到。

    备注2:尽管我对conky等进行了manage off的操作,不过实际上不这样做musca也能很好的识别它们(musca在这点上比i3好多了)。

    在最后,再强调一下,就是musca的的确确是个很优秀的平铺式窗口管理器(tilling wm),功能很强大(就是少了个tag功能),但设置起来却很简单(相对于awesome, wmii等而言),不过现在最大的问题就是太久没维护了,难免日久失修,尽管在使用上没什么大问题,但心里难免会很纠结。

    我之前曾有一段时间在想方设法地另外找个tilling wm将其替代掉,但可惜找来找去都没找到合适的,所以最后还是选择了把musca留下来了。我曾尝试过的wm有:subtle, wmfs, i3, euclid-wm, ratpoison, stumpwm, wmii,在我看来,它们要不就设置起来比musca复杂太多(如:wmii),要不就是依赖太庞大(如:stumpwm),还有些弄到最后弄得跟musca差不多,但在某些细节上没musca做得那么好,而且设置起来又比musca复杂些,最后还是放弃了。

    总而言之,相信我,musca还是个不错的选择。(都写跑题了,呵呵)

  • 改动了不少细节,顺便秀秀tmux。

  • 我明天就要去大学报到了,本想在此之前把musca换了,于是在近日尝试了不少wm,其中用得最顺手的当数i3,也将其设置得七七八八,但最终还是由于一个细节问题没用上它。

    这问题主要就是i3对类似dzen, panel, tray等需要占用桌面空间的程序很不友好,不像musca那样可以预留位置,只能通过dock使用它们(否则会被覆盖),但将dzen等作为dock时就无法对其定位,只能被放置在屏幕下方,而我一直习惯把conky放在顶上,而且当我想通过trayer等显示托盘时,却死活也无法让其跟dzen放在同一行上(估计也是dock的问题),既浪费位置也很不美观,搜索解决问题的方案却只是叫人放弃使用托盘,但由于conky-cli无法把无线编译进去(跟ibm模块一样),我很需要在托盘的wicd告诉我wifi的信息,何况那托盘上还有那很实用的parcellite(尽管可以通过cli使用,但还是比较麻烦)呢!叫我怎么放弃那托盘?这问题说小不小,说大也不大啊……经过一番考虑后还是决定坚持使用那常年不更新的musca。

    musca--还是你最好……

  • 搞掂dzen! - [开源之旅]

    2010年08月29日

    其实与其说是搞掂dzen,还不如说是搞掂用于dzen的conky的设置。

    其实看上去跟以前的没啥区别,只是从单独的conky改为了conky-cli(aur里就有)加上dzen2的组合,这下就能兼容几乎所有的wm了。嗯嗯,我正谋划着换新的wm了!

    注1:很奇怪的是,conky的ibm模块竟然对其x11模块有依赖,编译时如果只编译ibm模块的话会报错,因此无法将ibm模块弄到conky-cli里去,不知是否为bug?

    注2:我用上musca也有差不多一年了,但其间并未更新过一次,版本号定格在0.9.24……因此我萌生了换个开发得积极点的wm的想法。

  • 依然是arch+musca+conky+tint2的组合,这次主要针对笔记本进行了一番修改。

  • 今天因发烧在家休养,但我没有因此闲着……

    趁有空把musca下的环境打磨了一番,最大的改变是添加了个很精美的panel——tint2,把因此显得多余的trayer去掉……

    最终效果如下图:

     

     

     

  • 总算把conky弄好了,可以正式使用musca了!……awesome该功成身退了……

    而这就是我的musca……

  • musca! - [开源之旅]

    2009年11月08日

    与awesome一样同样是平铺式窗口管理器(tiling window manager),不过有别于awesome的是它是个手动平铺式窗口管理器(manual tiling window manager),也就是说使用时需要手动分屏(在它的官网上有详细介绍),这很吸引我啊!

    于是我趁这今天没作业(刚期中考完),尝试了一下……

    发现它个头极小,很容易上手,更重要的是,它设置起来比awesome要简单明了多了(谁叫awesome叫awesome……),用不了一个下午就把它弄得贴贴服服(想当年awesome可弄了我一个星期!)……

    不过,awesome还没被取代,原因就在于musca过于简洁,连个托盘(tray)都没有(其实也没几个wm有),更别说能弄个像我的awesome底部那样的状态栏了……

    不过,这在linux下并不是什么大问题,用trayer+conky就能解决这个问题……

    看来,我又要拾起那久违的conky了……

    总之,这musca取代awesome只是时间的问题……

    呵呵,我又要换wm了!