Tags: geeker

在Awesome中怀念八位机

按理说一个窗口管理器是不应该和怀旧小游戏扯上多大关系的,但是在Awesome中这的确发生了。前两天在把玩Awesome的时候发现源代码的icon文件夹里面有一写叫做enemy和player的图片,就像这个样子:
enemy_1.pngenemy_2.pngenemy_3.pngplayer.png
这不禁让人纳闷,难道Awesome里面还有彩蛋之类的程序?搜索了一下发现还真有这么一个东西,这就是invader。

invader是一个用lua脚本写的小游戏,整个代码只有一个五百多行的文件。通过如下方法可以运行它:

$awesome-client
require("invaders")
invaders.run()

游戏显示在桌面背景上,所以如果你当前桌面上开的有窗口的话会把它挡住。你会看到一个类似八位机时代小蜜蜂的游戏。似乎是没有多大用处,但是想想看用lua脚本就可以在桌面上绘制这么些东西,那么完全有可能做出利用Awesome提供的lua库做出很多很有意思的东西出来。现在官方网站上能找到的Awesome的lua脚本还比较少,但是浏览了一下它的lua接口,发现已经有模有样了。如果有足够多的用户为它贡献lua插件的话说不定能发展成一个异常强大且快速的窗口管理器。

用conky让桌面变得更实用

以前曾经好几次发现别人的linux桌面截图上面可以显示CPU占用率之类的信息,一直不知道是什么软件。今天偶然知道这个软件叫做Conky,而且在ubuntu的官方源里面已经有了,马上就下载下来安装上了。

这个软件的特点是可配置性非常高,通过一个脚本完全可以自己控制上面显示的内容。虽然只能显示字符和简单的图形,但是嵌入到桌面的显示却显得非常的geeker,兼有装酷和实用的双重功效。不过官方提供的脚本都或多或少有点问题,得需要自己修改一下才行。我用参考官方网站上面的脚本自己写了一个,还可以即时显示正在播放的音乐等等信息,非常不错。放出效果图如下:

conky01

配置文件如下:

# Conky configuration
background yes
use_xft yes
#要想显示中文的话就得设置一个中文字体
xftfont WenQuanYi Zen Hei:size=9
xftalpha 0.8
out_to_console no
update_interval 2
total_run_times 0
own_window yes
own_window_type normal
#透明背景
own_window_transparent yes
own_window_hints undecorated,below,sticky,skip_taskbar,skip_pager
double_buffer yes
draw_shades no
draw_outline no
draw_borders no
draw_graph_borders yes
stippled_borders 5
border_margin 4
border_width 1
#设置显示字体的默认颜色
default_color grey
default_shade_color black
default_outline_color black
#conky显示内容相对屏幕的位置,这里是相对与屏幕右上角
alignment top_right
#相对于屏幕右上角的x,y方向的距离
gap_x 20
gap_y 90
no_buffers no
uppercase no
cpu_avg_samples 2
net_avg_samples 2
override_utf8_locale yes

#以下就是控制显示输出的具体部分了
#注意下面的注释只是为了说明用,在实际的脚本中它们仍然会被显示出来,所以你自己
#用的时候最好下载附件里面的配置文件。或者把下面的注释删除以后再拿去用
TEXT
#${alignc}用来控制之后内容,使其居中显示
#${color}引用上面设置的default_color
${alignc}${color}${nodename} / ${kernel} Ubuntu
RAM:   ${alignr 230}$memperc% ${membar 8}
Swap:  ${alignr 230}$swapperc% ${swapbar 8}
#${alignr 125}这个命令用来控制其后的内容从离右边125像素的地方开始显示,可以用
#来对齐显示内容
Battery:            ${battery_time} left.${alignr 125}${battery_percent}% ${alignr 115}${battery_bar}
CPU:   ${alignr 150}${freq_g}GHz ${alignr 125}$cpu% ${alignr 115}${cpubar 8}
Core 1: ${cpu cpu1}% ${offset 95}Core 2: ${cpu cpu2}%
${cpugraph cpu1 32,160} $alignr${cpugraph cpu2 32,160}
#${offset 75}用于将之后的内容向右移动75个像素
Download: ${downspeed eth1}k/s ${offset 75}Upload: ${upspeed eth1}k/s
${downspeedgraph eth1 32,160} $alignr${upspeedgraph eth1 32,160}
${alignc}Top Threads
NAME  ${alignr 82}PID ${alignr 25}CPU% ${alignr 5}MEM%
${color #ffffff}${top name 1} ${alignr 55}${top pid 1}   ${alignr 26}${top cpu 1}    ${alignr 5}${top mem 1}
${color #eeeeee}${top name 2} ${alignr 55}${top pid 2}   ${alignr 26}${top cpu 2}    ${alignr 5}${top mem 2}
${color #dddddd}${top name 3} ${alignr 55}${top pid 3}   ${alignr 26}${top cpu 3}    ${alignr 5}${top mem 3}
${color #cccccc}${top name 4} ${alignr 55}${top pid 4}   ${alignr 26}${top cpu 4}    ${alignr 5}${top mem 4}
$color$stippled_hr
${alignc}File systems
${color}/            ${fs_used_perc /}% ${fs_used /}/${fs_size /}   ${alignr 110}${fs_bar /}
${color}/home     ${fs_used_perc /home}% ${fs_used /home}/${fs_size /home} ${alignr 110}${fs_bar /home}
#$stippled_hr用于绘制一条水平线
#之后紧接这一个条件语句,用于在amarok运行的时候显示正在播放歌曲的内容,
#而在amarok没有运行的时候隐藏这一部分
$color$stippled_hr${if_running amarokapp}
${color}${alignc}Now Playing
#${execi cmd}用来运行一个shell命令,这里调用了amarok相关的命令来获取正在播放
#歌曲的信息,调用的脚本可以在下载的压缩包里面找到
${alignc}${execi 10 ~/.conky/amarok artist}
${alignc}${execi 10 ~/.conky/amarok title}
${execibar 1 ~/.conky/amarok progress}
${alignc}"${execi 10 ~/.conky/amarok album}" ${alignc}${execi 10 ~/.conky/amarok year} - ${alignc}${execi 10 ~/.conky/amarok genre}
$color$stippled_hr
${alignc}Collection Information
Artists: ${color white}${execi 10 ~/.conky/amarok totalArtists} $color${alignr}Compilations: ${color white}${execi 10 ~/.conky/amarok totalCompilations}$color
Albums:  ${color white}${execi 10 ~/.conky/amarok totalAlbums} $color${alignr}Genres: ${color white}${execi 10 ~/.conky/amarok totalGenres}$color
Tracks:  ${color white}${execi 10 ~/.conky/amarok totalTracks}
$color$stippled_hr ${endif}
${alignc}WLAN IP Address: ${addr eth1}
${alignc}eht0 Address: ${addr eth0}

在上面的配置文件中可以看到类似于$memprc这样的东西,通过它们来显示系统状态的信息。在conky中将它成为conky对象。根据conky文档里面的说法,它提供了超过250个内置对象可以调用。上面的文档中已经用了不少常用的conky对象,看对象的名字顾名思义就能猜到它的用处。如果想要查看更详细的用法和更多的conky对象,可以查看conky官方网站上面的说明,或者直接man conky :) 写conky配置文件也是很有意思的一个事情,只是每次写完了以后都要重新启动conky比较烦人 :x

Conky配置文件下载: conkyrc.tar.gz(wordpress把压缩包自动更名了,请将下载后的文件后缀名更改为.tar.gz)