LinuxSir.cn,穿越时空的Linuxsir!

 找回密码
 注册
搜索
热搜: shell linux mysql
查看: 13652|回复: 61

DWM窗口管理器[Xft特性][热键简介]

[复制链接]
发表于 2008-2-1 00:53:11 | 显示全部楼层 |阅读模式
DWM一个很小的窗口管理器.
如果说KDE,GNOME五官齐全,那DWM就是一个骷髅人(就那么一堆骨头,刚好能用).

简介
DWM在3.5的时候,就可以支持中文显示了.不过因为X Core的核心配置字体方式太多繁复而显示中文很难.
DWM支持热键,自定颜色和简单的常规输入状态条.
轻便是它最大的特点.

更新簡介:

  1. 5.5
  2. 更新一下补丁,只是在之前的补丁上稍微修改下就可以用了:-D
  3. 设置方法照旧.

  4. 不过遇到一个小问题:Xft中的XftTextExternUtf8函数会出现警告语句(被我无视后正常使用:P),有时间会看看的.
复制代码


历史:

  1. 4.8 -> 4.9
  2. 更詳細的規則配置。
  3. 增加一個布局結構配置。
复制代码


4.9版本

注意:
53樓有takethat兄弟4.9的xft補丁
其實我也做了,不過近來忙沒有寫配置,
4.9的配置變化大了點

特点:

  1. × 简单,轻便,快速。
  2. × 可读取标准输入作为状态条。
  3. × 标签式的桌面管理。
  4. × 一站式安装,配置通过源代码,单一文件。
  5. × 自定义颜色。
  6. × 热键。
复制代码




配置
就是一个config.h如果要改变配置,只有重新编译(或是自己修改二进制)
[外观]

  1. /* 边框大小 */
  2. #define BORDERPX                1
  3. /* 字体设置(这里写的是打了Xft补丁的配置,如果没有打,就用x core的方式填写 */
  4. #define FONT                        "WenQuanYi Bitmap Song:size=8"
  5. /* 默认边框颜色 */
  6. #define NORMBORDERCOLOR                "#CCCCCC"
  7. /* 默认背景颜色 */
  8. #define NORMBGCOLOR                "#CCCCCC"
  9. /* 默认前景颜色 */
  10. #define NORMFGCOLOR                "#000000"
  11. /* 选中边框颜色 */
  12. #define SELBORDERCOLOR                "#0066FF"
  13. /* 选中背景颜色 */
  14. #define SELBGCOLOR                "#0066FF"
  15. /* 选中前景颜色 */
  16. #define SELFGCOLOR                "#FFFFFF"
复制代码


[标签]

  1. /*
  2.    这里请注意,完全能够用中文标示,可是最后排序的时候,要读取这个标签请使用tags[数字],数字从0开始。
  3.    比如tags[0]就是“通用”,tags[1]是“网络”。
  4.    MAXTAGLEN是16个字符。
  5. */
  6. const char tags[][MAXTAGLEN] = { "通用", "网络", "系统" };
复制代码


[窗口标签分配规则]

  1. /*
  2.    前三個逗号前是窗口一个子字符串。
  3.    第四個逗號前,是字符串,對應tags的配置。
  4.    最後一個,是浮动的开关,默认的有两大类,一个是浮动,一个固定排版。(排版下面有说明)

  5.    在哪里读取窗口的信息呢?
  6.    使用xprop吧,里面的WM_WINDOW_ROLE,WM_CLASS,WM_NAME就是我们需要的。
  7. */
  8. Rule rules[] = {
  9.         /* class        instance        title                tags ref        isfloating */
  10.         { "Gimp",        NULL,                NULL,                NULL,                True },
  11.         { "Opera",      "Opera",        NULL,           tags[1],        False },
  12.         { NULL,         "vim",          NULL,           NULL,           False },
  13. };
复制代码


[布局]

  1. /*
  2.    在本布局裏面使用的窗口打開方式,
  3.    比如是一些 */
  4. /* geometries, s{x,y,w,h} and bh are already initualized here */
  5. /*      函數名  X坐標 Y坐標  bw  wx  wy  ww     wh  mx  my       mw  mh     tx  ty     tw  th  mox moy mow moh */
  6. #define MFACT                        0.55        /* master width factor [0.1 .. 0.9] */
  7. DEFGEOM(single,  0,  0, sw,  0, bh, sw, sh-bh, wx, wy, mfact*sw, wh, mx+mw, wy, ww-mw, wh,  wx, wy, ww, wh)

  8. /* 布局窗口啟動方式 */
  9. Geom geoms[] = {
  10.         /* symbol        function */
  11.         { "固|",                single },        /* first entry is default */
  12. };

  13. /* 布局 */
  14. #define RESIZEHINTS                True        /* 如果为False,就是放弃尺寸,直接使用平铺 */
  15. #define SNAP                    32        /* 最小尺寸? */
  16. /*
  17.   { "浮",                floating,        True },
  18.   第一个逗号前是标签,就是使用的时候显示的一种方法。可以中文。
  19.   第二个逗号前是布局方法,这里是窗口出现的时候排版方式,可以在最后提供是否浮动窗口,默认提供四种。
  20.   floating, 简单浮动
  21.   tilev,    横向平铺
  22.   tileh,    纵向平铺
  23.   monocle   ?属于浮动
  24.   第三个是窗口是否浮动。
  25. */
  26. Layout layouts[] = {
  27.         { "浮",                        floating,        True },
  28.         { "固=",                tilev,                False },
  29.         { "固|",                tileh,                False },
  30.         { "[M]",                monocle,        True },
  31. };
复制代码


[热键]

  1. /*
  2.    第一个逗号前是主组合键,包括ctrl,atl,shift,使用“|”来代表组合。
  3.    第二个逗号前是次组合键,包括功能键(回车,删除),字符键。
  4.    第三个逗号钱是方法,包括:
  5.    spawn:运行你指定的命令,我们的dmenu_run就是这么来的。 最后参数必须是执行用的命令(string)
  6.    focusnext,focusprev:焦点后移和前移。 最后参数NULL
  7.    reapply:重新以你正在的桌面标签为基本标签,运作一次规则。最后参数NULL
  8.    zoom:完全没有成功过的缩放。最后参数NULL
  9.    viewpretag:返回上一个桌面标签。最后参数NULL
  10.    setlayout:设置桌面布局。最后参数是布局的名字
  11.    togglefloating:切换是否浮动。最后参数NULL
  12.    killclient:强制关闭窗口。最后参数NULL
  13.    view:查看桌面标签。最后参数可以是NULL(全局查看)或是tags[数字]指定的桌面标签
  14.    toggleview:同时查看多个桌面标签。最后参数tags[数字]指定的桌面标签
  15.    tag:切换指定的窗口到达指定的桌面标签。最后参数tags[数字]指定的桌面标签
  16.    toggletag:指定窗口被设定多个桌面标签,最后参数tags[数字]指定的桌面标签
  17.    quit:退出dwm。最后参数NULL
  18. */
  19. #define MODKEY                        Mod1Mask /* 主组合键 Alt */
  20. Key keys[] = {
  21.         /* modifier                        key                function        argument */
  22.         { MODKEY,                        XK_p,                spawn,          "exec dmenu_run -nb '"NORMBGCOLOR"' -nf '"NORMFGCOLOR"' -sb '"SELBGCOLOR"' -sf '"SELFGCOLOR"'" },
  23.         { MODKEY|ShiftMask,                XK_Return,        spawn,          "exec tilda" },
  24.         { MODKEY,                        XK_j,                focusnext,        NULL },
  25.         { MODKEY,                        XK_k,                focusprev,        NULL },
  26.         { MODKEY,                        XK_r,                reapply,        NULL },
  27.         { MODKEY,                        XK_Return,        zoom,                NULL },
  28.         { MODKEY,                        XK_Tab,                viewprevtag,        NULL },
  29.         { MODKEY,                        XK_m,                setlayout,        "[M]" },
  30.         { MODKEY,                        XK_f,                setlayout,        "浮" },
  31.         { MODKEY,                        XK_v,                setlayout,        "固=" },
  32.         { MODKEY,                        XK_h,                setlayout,        "固|" },
  33.         { MODKEY|ShiftMask,                XK_space,        togglefloating,        NULL },
  34.         { MODKEY,                       XK_F4,                killclient,        NULL },
  35.         { MODKEY,                        XK_0,                view,                NULL },
  36.         { MODKEY,                        XK_1,                view,                tags[0] },
  37. 爆 炸后几天内,成千上万被称为“清理者”的工人被匆忙调集到切尔诺贝利来制服这座充满辐射的炼狱。煤矿工人在炽热的石墨堆芯下挖掘,以便泵入液氮来冷却核 燃料。直升机驾驶员空投了4500吨铅、沙子、黏土和其它物料来竭力熄灭火焰。军人们定时冲上顶部,将炸飞的、冒着烟的石墨块铲回反应堆中心。参与这次行 动的3400名超级勇士被不敬地称为“生物 机器人”,他们当中
  38.         { MODKEY,                        XK_2,                view,                tags[1] },
  39.         { MODKEY,                        XK_3,                view,                tags[2] },
  40.         { MODKEY,                        XK_4,                view,                tags[3] },
  41.         { MODKEY,                        XK_5,                view,                tags[4] },
  42.         { MODKEY,                        XK_6,                view,                tags[5] },
  43.         { MODKEY,                        XK_7,                view,                tags[6] },
  44.         { MODKEY,                        XK_8,                view,                tags[7] },
  45.         { MODKEY,                        XK_9,                view,                tags[8] },
  46.         { MODKEY|ControlMask,                XK_1,                toggleview,        tags[0] },
  47.         { MODKEY|ControlMask,                XK_2,                toggleview,        tags[1] },
  48.         { MODKEY|ControlMask,                XK_3,                toggleview,        tags[2] },
  49.         { MODKEY|ControlMask,                XK_4,                toggleview,        tags[3] },
  50.         { MODKEY|ControlMask,                XK_5,                toggleview,        tags[4] },
  51.         { MODKEY|ShiftMask,                XK_0,                tag,                NULL },
  52.         { MODKEY|ShiftMask,                XK_1,                tag,                tags[0] },
  53.         { MODKEY|ShiftMask,                XK_2,                tag,                tags[1] },
  54.         { MODKEY|ShiftMask,                XK_3,                tag,                tags[2] },
  55.         { MODKEY|ShiftMask,                XK_4,                tag,                tags[3] },
  56.         { MODKEY|ShiftMask,                XK_5,                tag,                tags[4] },
  57.         { MODKEY|ControlMask|ShiftMask,        XK_1,                toggletag,        tags[0] },
  58.         { MODKEY|ControlMask|ShiftMask,        XK_2,                toggletag,        tags[1] },
  59.         { MODKEY|ControlMask|ShiftMask,        XK_3,                toggletag,        tags[2] },
  60.         { MODKEY|ControlMask|ShiftMask,        XK_4,                toggletag,        tags[3] },
  61.         { MODKEY|ControlMask|ShiftMask,        XK_5,                toggletag,        tags[4] },
  62.         { MODKEY|ShiftMask,                XK_q,                quit,                NULL },
  63. };
复制代码


注意这一行:

  1. #define FONT                        "WenQuanYi Bitmap Song:size=8" /* 字体设置 */
复制代码

因为我写了点Xft补丁.这里使用了fontconfig来配置字体.
中文显示现在好多了.

全部的热键定义在(库路径)/X11/keysymdef.h 和 (库路径)/X11/keysym.h
这里列出常用的几个


  1. #define XK_Shift_L                       0xffe1  /* Left shift */
  2. #define XK_Shift_R                       0xffe2  /* Right shift */
  3. #define XK_Control_L                     0xffe3  /* Left control */
  4. #define XK_Control_R                     0xffe4  /* Right control */
  5. #define XK_Caps_Lock                     0xffe5  /* Caps lock */
  6. #define XK_Shift_Lock                    0xffe6  /* Shift lock */

  7. #define XK_Meta_L                        0xffe7  /* Left meta */
  8. #define XK_Meta_R                        0xffe8  /* Right meta */
  9. #define XK_Alt_L                         0xffe9  /* Left alt */
  10. #define XK_Alt_R                         0xffea  /* Right alt */
  11. #define XK_Super_L                       0xffeb  /* Left super */
  12. #define XK_Super_R                       0xffec  /* Right super */

  13. /*
  14. * Latin 1
  15. * (ISO/IEC 8859-1 = Unicode U+0020..U+00FF)
  16. * Byte 3 = 0
  17. */
  18. #ifdef XK_LATIN1
  19. #define XK_space                         0x0020  /* U+0020 SPACE */
  20. #define XK_exclam                        0x0021  /* U+0021 EXCLAMATION MARK */
  21. #define XK_quotedbl                      0x0022  /* U+0022 QUOTATION MARK */
  22. #define XK_numbersign                    0x0023  /* U+0023 NUMBER SIGN */
  23. #define XK_dollar                        0x0024  /* U+0024 DOLLAR SIGN */
  24. #define XK_percent                       0x0025  /* U+0025 PERCENT SIGN */
  25. #define XK_ampersand                     0x0026  /* U+0026 AMPERSAND */
  26. #define XK_apostrophe                    0x0027  /* U+0027 APOSTROPHE */
  27. #define XK_quoteright                    0x0027  /* deprecated */
  28. #define XK_parenleft                     0x0028  /* U+0028 LEFT PARENTHESIS */
  29. #define XK_parenright                    0x0029  /* U+0029 RIGHT PARENTHESIS */
  30. #define XK_asterisk                      0x002a  /* U+002A ASTERISK */
  31. #define XK_plus                          0x002b  /* U+002B PLUS SIGN */
  32. #define XK_comma                         0x002c  /* U+002C COMMA */
  33. #define XK_minus                         0x002d  /* U+002D HYPHEN-MINUS */
  34. #define XK_period                        0x002e  /* U+002E FULL STOP */
  35. #define XK_slash                         0x002f  /* U+002F SOLIDUS */
  36. #define XK_0                             0x0030  /* U+0030 DIGIT ZERO */
  37. #define XK_1                             0x0031  /* U+0031 DIGIT ONE */
  38. #define XK_2                             0x0032  /* U+0032 DIGIT TWO */
  39. #define XK_3                             0x0033  /* U+0033 DIGIT THREE */
  40. #define XK_4                             0x0034  /* U+0034 DIGIT FOUR */
  41. #define XK_5                             0x0035  /* U+0035 DIGIT FIVE */
  42. #define XK_6                             0x0036  /* U+0036 DIGIT SIX */
  43. #define XK_7                             0x0037  /* U+0037 DIGIT SEVEN */
  44. #define XK_8                             0x0038  /* U+0038 DIGIT EIGHT */
  45. #define XK_9                             0x0039  /* U+0039 DIGIT NINE */
  46. #define XK_colon                         0x003a  /* U+003A COLON */
  47. #define XK_semicolon                     0x003b  /* U+003B SEMICOLON */
  48. #define XK_less                          0x003c  /* U+003C LESS-THAN SIGN */
  49. #define XK_equal                         0x003d  /* U+003D EQUALS SIGN */
  50. #define XK_greater                       0x003e  /* U+003E GREATER-THAN SIGN */
  51. #define XK_question                      0x003f  /* U+003F QUESTION MARK */
  52. #define XK_at                            0x0040  /* U+0040 COMMERCIAL AT */
  53. #define XK_A                             0x0041  /* U+0041 LATIN CAPITAL LETTER A */
  54. #define XK_B                             0x0042  /* U+0042 LATIN CAPITAL LETTER B */
  55. #define XK_C                             0x0043  /* U+0043 LATIN CAPITAL LETTER C */
  56. #define XK_D                             0x0044  /* U+0044 LATIN CAPITAL LETTER D */
  57. #define XK_E                             0x0045  /* U+0045 LATIN CAPITAL LETTER E */
  58. #define XK_F                             0x0046  /* U+0046 LATIN CAPITAL LETTER F */
  59. #define XK_G                             0x0047  /* U+0047 LATIN CAPITAL LETTER G */
  60. #define XK_H                             0x0048  /* U+0048 LATIN CAPITAL LETTER H */
  61. #define XK_I                             0x0049  /* U+0049 LATIN CAPITAL LETTER I */
  62. #define XK_J                             0x004a  /* U+004A LATIN CAPITAL LETTER J */
  63. #define XK_K                             0x004b  /* U+004B LATIN CAPITAL LETTER K */
  64. #define XK_L                             0x004c  /* U+004C LATIN CAPITAL LETTER L */
  65. #define XK_M                             0x004d  /* U+004D LATIN CAPITAL LETTER M */
  66. #define XK_N                             0x004e  /* U+004E LATIN CAPITAL LETTER N */
  67. #define XK_O                             0x004f  /* U+004F LATIN CAPITAL LETTER O */
  68. #define XK_P                             0x0050  /* U+0050 LATIN CAPITAL LETTER P */
  69. #define XK_Q                             0x0051  /* U+0051 LATIN CAPITAL LETTER Q */
  70. #define XK_R                             0x0052  /* U+0052 LATIN CAPITAL LETTER R */
  71. #define XK_S                             0x0053  /* U+0053 LATIN CAPITAL LETTER S */
  72. #define XK_T                             0x0054  /* U+0054 LATIN CAPITAL LETTER T */
  73. #define XK_U                             0x0055  /* U+0055 LATIN CAPITAL LETTER U */
  74. #define XK_V                             0x0056  /* U+0056 LATIN CAPITAL LETTER V */
  75. #define XK_W                             0x0057  /* U+0057 LATIN CAPITAL LETTER W */
  76. #define XK_X                             0x0058  /* U+0058 LATIN CAPITAL LETTER X */
  77. #define XK_Y                             0x0059  /* U+0059 LATIN CAPITAL LETTER Y */
  78. #define XK_Z                             0x005a  /* U+005A LATIN CAPITAL LETTER Z */
  79. #define XK_bracketleft                   0x005b  /* U+005B LEFT SQUARE BRACKET */
  80. #define XK_backslash                     0x005c  /* U+005C REVERSE SOLIDUS */
  81. #define XK_bracketright                  0x005d  /* U+005D RIGHT SQUARE BRACKET */
  82. #define XK_asciicircum                   0x005e  /* U+005E CIRCUMFLEX ACCENT */
  83. #define XK_underscore                    0x005f  /* U+005F LOW LINE */
  84. #define XK_grave                         0x0060  /* U+0060 GRAVE ACCENT */
  85. #define XK_quoteleft                     0x0060  /* deprecated */
  86. #define XK_a                             0x0061  /* U+0061 LATIN SMALL LETTER A */
  87. #define XK_b                             0x0062  /* U+0062 LATIN SMALL LETTER B */
  88. #define XK_c                             0x0063  /* U+0063 LATIN SMALL LETTER C */
  89. #define XK_d                             0x0064  /* U+0064 LATIN SMALL LETTER D */
  90. #define XK_e                             0x0065  /* U+0065 LATIN SMALL LETTER E */
  91. #define XK_f                             0x0066  /* U+0066 LATIN SMALL LETTER F */
  92. #define XK_g                             0x0067  /* U+0067 LATIN SMALL LETTER G */
  93. #define XK_h                             0x0068  /* U+0068 LATIN SMALL LETTER H */
  94. #define XK_i                             0x0069  /* U+0069 LATIN SMALL LETTER I */
  95. #define XK_j                             0x006a  /* U+006A LATIN SMALL LETTER J */
  96. #define XK_k                             0x006b  /* U+006B LATIN SMALL LETTER K */
  97. #define XK_l                             0x006c  /* U+006C LATIN SMALL LETTER L */
  98. #define XK_m                             0x006d  /* U+006D LATIN SMALL LETTER M */
  99. #define XK_n                             0x006e  /* U+006E LATIN SMALL LETTER N */
  100. #define XK_o                             0x006f  /* U+006F LATIN SMALL LETTER O */
  101. #define XK_p                             0x0070  /* U+0070 LATIN SMALL LETTER P */
  102. #define XK_q                             0x0071  /* U+0071 LATIN SMALL LETTER Q */
  103. #define XK_r                             0x0072  /* U+0072 LATIN SMALL LETTER R */
  104. #define XK_s                             0x0073  /* U+0073 LATIN SMALL LETTER S */
  105. #define XK_t                             0x0074  /* U+0074 LATIN SMALL LETTER T */
  106. #define XK_u                             0x0075  /* U+0075 LATIN SMALL LETTER U */
  107. #define XK_v                             0x0076  /* U+0076 LATIN SMALL LETTER V */
  108. #define XK_w                             0x0077  /* U+0077 LATIN SMALL LETTER W */
  109. #define XK_x                             0x0078  /* U+0078 LATIN SMALL LETTER X */
  110. #define XK_y                             0x0079  /* U+0079 LATIN SMALL LETTER Y */
  111. #define XK_z                             0x007a  /* U+007A LATIN SMALL LETTER Z */
  112. #define XK_braceleft                     0x007b  /* U+007B LEFT CURLY BRACKET */
  113. #define XK_bar                           0x007c  /* U+007C VERTICAL LINE */
  114. #define XK_braceright                    0x007d  /* U+007D RIGHT CURLY BRACKET */
  115. #define XK_asciitilde                    0x007e  /* U+007E TILDE */
复制代码


附上一个我使用的启动脚本:
~/.xinitrc
[php]
#!/bin/sh

# Default Fix My Board
xmodmap /other/Backup/fix/xmodmap &

# Base Env Var Setup
X_ENV="dwm"

# Open office fix
export OOO_FORCE_DESKTOP=gnome

# Input System
export LANG=zh_CN.UTF-8
export XIM=fcitx
export XIM_PROGRAM=fcitx
export GTK_IM_MODULE=fcitx
export XMODIFIERS="@im=fcitx"
export QT_IM_MODULE=fcitx
fcitx -d

# Wall Page
feh --bg-center .wp.png &

# Default Exec
tilda -h 2>&1 > /dev/null &

# dwm ENV
if [ $X_ENV ]; then
  export AWT_TOOLKIT=MToolkit
  while true
  do
    . ~/.status.bar
  done | exec dwm
fi
[/php]
~/.status.bar
[php]
#!/bin/bash

# 标准检查
p_list="opera:Op pidginG vim:Vi";
G_CODE="";
for index in $p_list
do
  p=`expr match $index '\(.*\):'`
  s=`expr match $index '.*:\(.*\)'`
  G_CODE += "`pgrep $p > /dev/null && echo [$s]`"
done

# 特殊程序
MPD="[`mpc | sed -n '2s/\[\(.*\)\].*/\1/;2s/playing/Music/p;'`]";
DATE="`date +%m.%d` `date +%H:%M`";

echo "$G_CODE$MPD $DATE"

# 每三十秒才更新一次,太快会很占用CPU,毕竟我不需要秒
sleep 30s
[/php]
如果有任何的不明白,请说明:)
有错误也请大方指出,谢谢:)

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?注册

x
发表于 2008-2-1 02:48:01 | 显示全部楼层
你终于研究出来了,呵呵。
DWM貌似没有风格或者主题之类的东西的。
回复 支持 反对

使用道具 举报

 楼主| 发表于 2008-2-1 03:18:12 | 显示全部楼层
完全没有.不过是简单的边框颜色配置.
把XFT添加进去,没有发现体积扩大多少.还是原来的28KB
--
而且编译一次需要....5秒
--
现在就是对它的进一步添加功能,
最主要还是窗口管理的加强.
---
代码少,还是少的好.
回复 支持 反对

使用道具 举报

发表于 2008-2-2 13:15:45 | 显示全部楼层
已经用dwm很久了,公司、家里都用它,非常喜欢,呵呵。
写了个简陋的程序,可以在任务栏上显示时间,系统负荷,和网络链接状况。

  1. #!/bin/sh
  2. wlanIF="ath0"
  3. interval=1
  4. rx=0
  5. tx=0
  6. net_gettrans(){
  7.     traffic=$(ifconfig $wlanIF | grep bytes | cut -d: -f2-3)
  8.     rx=${traffic%% *}
  9.     tx=${traffic#*:}
  10.     tx=${tx%% *}

  11.     rx=$(( $rx/1000 ))
  12.     tx=$(( $tx/1000 ))
  13. }

  14. while true; do
  15.     rxp=$rx
  16.     txp=$tx
  17.     net_gettrans
  18.     net="Up/Dn $(( ($tx - $txp) / $interval ))/$(( ($rx - $rxp) / $interval )) KB/s"

  19.     wifi="wifi $(iwconfig $wlanIF | grep Link | cut -d= -f2 | cut -d' ' -f1)"

  20.     time="$(cut -d' ' -f-3 /proc/loadavg) |$(date '+%l:%M')"
  21.    
  22.     echo "$net | $wifi | $time"
  23.     sleep $interval
  24. done | /usr/local/bin/dwm
复制代码
回复 支持 反对

使用道具 举报

 楼主| 发表于 2008-2-2 13:33:06 | 显示全部楼层
很好
喜欢这个脚本.自己也用了下,没有修改,:)
回复 支持 反对

使用道具 举报

发表于 2008-2-2 15:02:27 | 显示全部楼层
SCys 兄果然應約,謝謝!

昨天試了一下還未搞定,是否補丁不打不能用?我的機器是英文的,沒打補丁。
回复 支持 反对

使用道具 举报

发表于 2008-2-2 15:05:27 | 显示全部楼层
Post by biinn;1813576
已经用dwm很久了,公司、家里都用它,非常喜欢,呵呵。
写了个简陋的程序,可以在任务栏上显示时间,系统负荷,和网络链接状况。

  1. #!/bin/sh
  2. wlanIF="ath0"
  3. interval=1
  4. rx=0
  5. tx=0
  6. net_gettrans(){
  7.     traffic=$(ifconfig $wlanIF | grep bytes | cut -d: -f2-3)
  8.     rx=${traffic%% *}
  9.     tx=${traffic#*:}
  10.     tx=${tx%% *}

  11.     rx=$(( $rx/1000 ))
  12.     tx=$(( $tx/1000 ))
  13. }

  14. while true; do
  15.     rxp=$rx
  16.     txp=$tx
  17.     net_gettrans
  18.     net="Up/Dn $(( ($tx - $txp) / $interval ))/$(( ($rx - $rxp) / $interval )) KB/s"

  19.     wifi="wifi $(iwconfig $wlanIF | grep Link | cut -d= -f2 | cut -d' ' -f1)"

  20.     time="$(cut -d' ' -f-3 /proc/loadavg) |$(date '+%l:%M')"
  21.    
  22.     echo "$net | $wifi | $time"
  23.     sleep $interval
  24. done | /usr/local/bin/dwm
复制代码
biinn 因為 dwm 連 fvwm 都放棄了,真想盡快搞定它

不知何故,起動後在頂頭的 toolbar 無論怎樣 click 都沒反應的 :(
回复 支持 反对

使用道具 举报

发表于 2008-2-2 15:11:15 | 显示全部楼层
Post by d00m3d;1813613
biinn 因為 dwm 連 fvwm 都放棄了,真想盡快搞定它

不知何故,起動後在頂頭的 toolbar 無論怎樣 click 都沒反應的 :(


DOOM 老大真是有心人,连我用过fvwm都记得。
toolbar不能点很奇怪,不过我从来不点。alt+1,2,3...就可以切换了。
回复 支持 反对

使用道具 举报

发表于 2008-2-2 15:14:56 | 显示全部楼层
Post by d00m3d;1813612
SCys 兄果然應約,謝謝!

昨天試了一下還未搞定,是否補丁不打不能用?我的機器是英文的,沒打補丁。

我的机器也是英文的,下载dwm源码直接编译就可以用了。没打过补丁。不过我的不是LFS,呵呵。
回复 支持 反对

使用道具 举报

发表于 2008-2-2 15:20:00 | 显示全部楼层
我暈,原來還有 hot key 可用

dwm 官方網站資料很缺乏,google 也沒找到多少有用的,請問 biinn 及 SCys 兩位哪裡有 dwm 教程之類的?
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

快速回复 返回顶部 返回列表