最小主义: 我的 Musca 桌面环境

{ 撰文/吴吉庆 }

我现在有一个非常简单实用的桌面环境了:Musca + Conky + Trayer。

当然 Musca 运行时需要 dmenu,其实也不是非 dmenu不可,据说 Dzen 也不错。我现在用的是 dmenu。

先放一张我的桌面截图吧。

Musca

我的 Musca 配置

Musca 是我最近发现的非常喜欢的平铺式窗口管理器。对于它的安装和使用我已经在这里做了介绍。今天主要介绍一下它的配置,也就是在 .musca_start 中写了哪些让 Musca 启动后执行的命令:

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
# 告诉musca不要管理conky和trayer的窗口  
manage off trayer  
manage off Conky

# 启动conky和trayer  
exec conky  
# 为了方便在网页中显示,我把trayer的命令拆为3行,  
# 请复制后拼接为一行  
exec trayer --edge top --align right --widthtype request  
--height 20 --SetDockType true --transparent true  
--alpha 255 --tint 0x00ff00

# 设定聚焦帧的边框颜色为橘黄,我喜欢的颜色  
set border_focus Orange  
# 如果有空帧,则新启动的程序会自动在空帧中打开,这点很方便  
set window_open_frame empty  
# 不需要单击,鼠标经过的时候窗口就聚焦  
set focus_follow_mouse 1  
# 设置dmenu的启动命令,我用的是自己编译的支持xft的dmenu  
set dmenu /usr/local/bin/dmenu -i -b -fa Sans-12 -p $

# 因为我没有xterm,所以重新绑定Mod4+t启动系统的默认终端  
bind off Mod4+t  
bind on Mod4+t exec x-terminal-emulator  
# 按Mod4+q退出musca,不知道为什么不管用  
bind on Mod4+q quit  
# 按Mod1(我这里是Alt) + 方向键移动选定的窗口  
bind on Mod1+Left slide left  
bind on Mod1+Right slide right  
bind on Mod1+Up slide up  
bind on Mod1+Down slide down

# 按Mod4 + 数字键快速地切换工作组  
bind on Mod4+1 use 0  
bind on Mod4+2 use 1  
bind on Mod4+3 use 2  
bind on Mod4+4 use 3  
bind on Mod4+5 use 4

# 确定每个工作组的活跃范围,屏幕上留出20像素给conky和trayer  
pad 0 0 20 0  
hook on ^add pad 0 0 20 0  
# 添加一个叫web的工作组,并加载我导出的窗口布局,上网用  
add web  
load .mweb  
# 切换到原来第一个工作组  
use 0  
load .mdefault

配合 Musca 的 Conky 配置

大家可以看到我的 Conky 中显示了当前工作组的窗口列表,这个怎么实现的呢?Conky自己能通过 ${exec cmd} 显示 cmd 的输出。而我们能通过 musca -c 'show windows' 输出当前组的窗口列表,但是输出的格式是每个窗口一行,这不是我们想要的,我们可以通过 awk,对这个字符串处理一下。综合起来是: ${exec musca -c 'show windows'|awk '{printf " | %s",$0}'}

为了方便大家参考,我将我整个的 Conky 配置文件贴在下面。

  1
  2
  3
  4
  5
  6
  7
  8
  9
 10
 11
 12
 13
 14
 15
 16
 17
 18
 19
 20
 21
 22
 23
 24
 25
 26
 27
 28
 29
 30
 31
 32
 33
 34
 35
 36
 37
 38
 39
 40
 41
 42
 43
 44
 45
 46
 47
 48
 49
 50
 51
 52
 53
 54
 55
 56
 57
 58
 59
 60
 61
 62
 63
 64
 65
 66
 67
 68
 69
 70
 71
 72
 73
 74
 75
 76
 77
 78
 79
 80
 81
 82
 83
 84
 85
 86
 87
 88
 89
 90
 91
 92
 93
 94
 95
 96
 97
 98
 99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
# jiqing's conky configuration

# set to yes if you want Conky to be forked in the background  
background no

# 使用xft字体  
use_xft yes  
# 默认的xft字体  
xftfont Sans:size=10  
# Text alpha when using Xft  
xftalpha 1.0

# 每8秒更新一次  
update_interval 8.0

# 更新的次数,设为0是永远更新  
total_run\_times 0

# 使用桌面,不用自己的窗口  
own_window no

# If own_window is yes, you may use type normal, desktop or override  
own_window\_type desktop  
# Use pseudo transparency with own_window?  
own_window\_transparent yes  
# If own_window\_transparent is set to no, you can set the background
colour here  
own_window\_colour black

# If own_window is yes, these window manager hints may be used  
#own_window\_hints undecorated,below,sticky,skip\_taskbar,skip\_pager

# 使用双缓冲,避免闪烁  
double_buffer yes

# Minimum size of text area  
minimum_size 500 18  
maximum_width 1340

# Draw shades?  
draw_shades no  
# Draw outlines?  
draw_outline no

# 让conky有边框,我觉得这样酷一点  
draw_borders yes

# Draw borders around graphs  
draw_graph\_borders no

# 边框用实线,不用点画线  
stippled_borders no

# border margins  
border_margin 3

# border width  
border_width 1

# 定义一些颜色  
color0 white  
color1 yellow  
default_color gray73  
default_shade\_color black  
default_outline\_color black

# Text alignment, other possible values are commented  
alignment top_left

# Gap between borders of screen and text  
# same thing as passing -x at command line  
gap_x 0  
gap_y 2

# Subtract file system buffers from used memory?  
no_buffers yes

# set to yes if you want all text to be in uppercase  
uppercase no

# number of cpu samples to average  
# set to 1 to disable averaging  
cpu_avg\_samples 2

# number of net samples to average  
# set to 1 to disable averaging  
net_avg\_samples 2

# Force UTF8? note that UTF8 support required XFT  
override_utf8\_locale yes

# Add spaces to keep things from moving about? This only affects
certain objects.  
#use_spacer none  
use_spacer left

# Maximum size of buffer for user text, i.e. below TEXT line.  
#max_user\_text 16384

# Allow for the creation of at least this number of port monitors (if 0
or not set, default is 16)  
#min_port\_monitors 16

# Allow each port monitor to track at least this many connections (if 0
or not set, default is 256)  
#min_port\_monitor\_connections 256

# variable is given either in format $variable or in ${variable}.
Latter  
# allows characters right after the variable and must be used in
network  
# stuff because of an argument

# stuff after 'TEXT' will be formatted on screen  
# 为了方便在网页中显示,我把conky输出的内容分为多行,  
# 如果你想像我一样在一行中显示,请把TEXT后的内容拼为一行

TEXT  
${font Bistream Vera Sans Mono:size=10:bold}${color green}  
${time %Y年%m月%d日 %H:%M}$font $color  
|$color0 开机时间:$color1 $uptime_short $color  
|$color0 CPU:$color1 $cpu% $color  
|$color0 内存:$color1 $mem/$memmax  
${font Sans:size=9}${color pink}  
${exec musca -c 'show windows'|awk '{printf " | %s",$0}'}

最后,说一点心得,其实手动平铺式窗口管理器并不是很难用,大多数情况你都不需要使用浮动窗口模式,只要你合理安排窗口布局,GIMP 你都能用得很舒服。

{ Source. Thanks jiqing. }

Read More: