LinuxSir.cn,穿越时空的Linuxsir!

 找回密码
 注册
搜索
热搜: shell linux mysql
楼主: pluskid

Sawfish 窗口管理器的一些东西

[复制链接]
发表于 2006-10-11 11:43:35 | 显示全部楼层
Post by pluskid
不知道你所说的界面定制是什么意思。sawfish 有主题,不过由于 sawfish 是个纯粹的窗口管理器,不像 fvwm 、 fluxbox 那样还有任务栏、面板、pager 之类的东西,所以主题也就是一个标题栏吧,其他的东西如果要用也许得使用单独的程序。如果要用面板的话,我推荐一个 fbpanel 。


那pager呢?能不能推荐一些这种小软件之类的。
回复 支持 反对

使用道具 举报

 楼主| 发表于 2006-10-11 11:57:59 | 显示全部楼层
Post by LaoLang_cool
那pager呢?能不能推荐一些这种小软件之类的。

fbpanel 有 pager、taskbar、showdesktop、menu、systrace、clock 的功能,基本上已经全了。其他可以用 xloadimage 来加载桌面背景, xscreensaver 作为屏保,其他基本上没什么了。
回复 支持 反对

使用道具 举报

 楼主| 发表于 2006-10-11 12:00:30 | 显示全部楼层
Post by LaoLang_cool
能给个配置文件来先尝个鲜吗?
我的配置基本上没有什么可以尝的,标题栏隐藏了,没有面板,桌面空空,只是一堆快捷键而已。
我的 ~/.xinitrc
  1. #!/bin/sh
  2. # Xresource
  3. xrdb -merge ${HOME}/.Xresources
  4. # keycode map
  5. xmodmap ~/.Xmodmap
  6. # scim setting
  7. export XMODIFIERS=@im=SCIM
  8. export GTK_IM_MODULE="scim"
  9. exec sawfish
复制代码

我的 .sawfishrc ,估计还是不能直接用的,还有我的一些模块之类的。
  1. ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
  2. ;; Load up packages
  3. ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
  4. (require 'sawmill-defaults)
  5. (setq load-path (cons "~/.sawfish/extensions"
  6.                       load-path))
  7. (require 'jump-or-exec)
  8. (require 'shrink-windows-to-fit-2)
  9. (require 'sawfish.wm.commands.move-resize)
  10. (require 'iswitch-window)
  11. (require 'kid.util.message)
  12. (require 'kid.util.key)
  13. (require 'sawfish.wm.util.prompt)
  14. (require 'kid.util.capture)
  15. (defun jump-or-exec-emacs ()
  16.   (interactive)
  17.   (jump-or-exec "emacs@"                 ; Emacs's title
  18.                 (lambda ()                 ; When Emacs isn't running
  19.                   (kid-display-message "starting Emacs ...")
  20.                   (system "emacs &")
  21.                   "sleep 10")
  22.                 (lambda (wind)                ; When already focused
  23.                   (display-window wind))))
  24. (defvar kid-jump-or-exec-list
  25.   '(("H-q" "QTerm" "qterm &")
  26.     ("H-f" "Firefox" "firefox &")
  27.     ("H-t" "^screen$" "urxvt -e screen -xRRS urxvt &")
  28.     ("H-g" "gnus@" "emacs --eval \'(setq frame-title-format "gnus@%b")\' -f gnus &")))
  29. (bind-keys global-keymap
  30.            "H-e" 'jump-or-exec-emacs)
  31. (mapc #'(lambda (item)
  32.           (bind-keys global-keymap
  33.                      (car item)
  34.                      `(jump-or-exec ,(cadr item)
  35.                                     ,(lambda ()
  36.                                              (kid-display-message (concat "starting "
  37.                                                                           (caddr item)
  38.                                                                           " ..."))
  39.                                              (system (caddr item)))
  40.                                     ,(lambda (wind)
  41.                                              (display-window wind)))))
  42.       kid-jump-or-exec-list)
  43. ;;; window moving, Use Super-arrow to move window
  44. (bind-keys window-keymap
  45.            "W-Left" '(let* ((wind (input-focus))
  46.                          (pos (window-position wind)))
  47.                    (move-window-to wind (- (car pos) 20) (cdr pos))))
  48. (bind-keys window-keymap
  49.            "W-Right" '(let* ((wind (input-focus))
  50.                          (pos (window-position wind)))
  51.                    (move-window-to wind (+ (car pos) 20) (cdr pos))))
  52. (bind-keys window-keymap
  53.            "W-Up" '(let* ((wind (input-focus))
  54.                          (pos (window-position wind)))
  55.                    (move-window-to wind (car pos) (- (cdr pos) 10))))
  56. (bind-keys window-keymap
  57.            "W-Down" '(let* ((wind (input-focus))
  58.                          (pos (window-position wind)))
  59.                    (move-window-to wind (car pos) (+ (cdr pos) 10))))
  60. ;;; shrink window
  61. (bind-keys window-keymap "M-W-u" 'shrink-window-up)
  62. (bind-keys window-keymap "M-W-d" 'shrink-window-down)
  63. ;;; resize window
  64. (defun kid-resize-window (dir inc)
  65.   "Resize focused window"
  66.   (interactive)
  67.   (let* ((win (input-focus))
  68.          (dim (window-dimensions win))
  69.          (dimx (car dim))
  70.          (dimy (cdr dim)))
  71.     (cond ((eq dir 'left) (setq dimx (- dimx inc)))
  72.           ((eq dir 'right) (setq dimx (+ dimx inc)))
  73.           ((eq dir 'up) (setq dimy (- dimy inc)))
  74.           ((eq dir 'down) (setq dimy (+ dimy inc))))
  75.     (resize-window-to win dimx dimy)))
  76. (bind-keys window-keymap "M-W-Left"
  77.            '(kid-resize-window 'left 20))
  78. (bind-keys window-keymap "M-W-Right"
  79.            '(kid-resize-window 'right 20))
  80. (bind-keys window-keymap "M-W-Up"
  81.            '(kid-resize-window 'up 20))
  82. (bind-keys window-keymap "M-W-Down"
  83.            '(kid-resize-window 'down 20))
  84. ;;; key bindings
  85. (bind-keys window-keymap "W-m" 'maximize-window-toggle)
  86. (bind-keys window-keymap "W-p" 'popup-window-menu)
  87. (bind-keys window-keymap "W-o" 'delete-window)
  88. (bind-keys global-keymap "W-F9" 'run-shell-command)
  89. (bind-keys global-keymap "M-W-l" (lambda () (system "xscreensaver-command -lock &")))
  90. (bind-keys global-keymap "W-o" (lambda ()
  91.                                  (if (eq (length (window-order nil t t)) 0)
  92.                                      (quit)
  93.                                      (kid-display-message "Please close all windows before quitting sawfish in
  94. case there's work not finished in some window..."))))
  95. ;; win + click to move window
  96. (bind-keys window-keymap "W-Button1-Click1"
  97.            #'(lambda ()
  98.                (interactive)
  99.                (move-window-interactively (current-event-window))))
  100. ;;; iswitch-window
  101. (bind-keys global-keymap "H-s" 'iswitch-window)
  102. ;;; show which key is pressed
  103. (kid-bind-keys global-keymap "W-h k" 'kid-show-key)
  104. ;;; Start processes and stop them on exit
  105. (define kid-startup-programs
  106.   '(("xloadimage" "-onroot" "-fullscreen" "/home/kid/.desktop")
  107.     ("xscreensaver" "-no-splash")
  108.     ("scim" "-d")
  109.     ("asclock" "-theme" "/home/kid/.asclock/kid")))
  110. (mapc (lambda (program)
  111.         (apply start-process (make-process standard-output) program))
  112.       kid-startup-programs)
  113. (add-hook 'before-exit-hook
  114.           (lambda ()
  115.             (mapc stop-process (active-processes))))
  116. (kid-bind-keys global-keymap "Print" 'kid-capture-current-window)
  117. (kid-bind-keys global-keymap "M-Print" 'kid-capture-current-desktop)
  118. (kid-bind-keys global-keymap "C-Print" 'kid-capture-region)
复制代码
回复 支持 反对

使用道具 举报

发表于 2006-10-11 14:17:20 | 显示全部楼层
1. 我运行sawfish-ui提示:
$ sawfish-ui
*** File error: No such file or directory, gui/gtk-2/gtk。
我已装了gtk了。
2. 我以前用的是fvwm(现在也用着~),有点不习惯,按tab+Alt居然没有出现切换菜单的,也不能改变窗口大小,难道这些都不是默认就有的?

3. 我安装了fbpanel,并没有出现pager,不知为什么。

4. sawfish有什么默认的快捷键没有,比如最小化以及最大化等等。

5. 我想实现这样的效果,只有鼠标点击标题栏时,窗口才会上升到最前,平时可以对窗口的其它部位操作并且其不会升至最前。这样在一些情况下是非常有用的。

6. 不知sawfish系统资源占用怎样,我运行了,觉得会有迟顿的感觉,用fvwm时没有,难道是我没有设置好吗(我什么都没设置,用的是默认的配置)。

7. 谢谢!
回复 支持 反对

使用道具 举报

发表于 2006-10-11 18:43:12 | 显示全部楼层
Post by herberteuler
如果你不是一时心血来潮的话

不好说…………

Post by LaoLang_cool

3. 我安装了fbpanel,并没有出现pager,不知为什么。

我装好后就有了,可以试着设置一下。

sawfish是基于那个图形库的?
回复 支持 反对

使用道具 举报

发表于 2006-10-11 22:08:29 | 显示全部楼层
Post by qobnvi
不好说…………


我装好后就有了,可以试着设置一下。

sawfish是基于那个图形库的?
无论好说不好说,qobnvi 看到信件了没,在论坛里。
回复 支持 反对

使用道具 举报

 楼主| 发表于 2006-10-11 22:14:52 | 显示全部楼层
Post by LaoLang_cool
1. 我运行sawfish-ui提示:
$ sawfish-ui
*** File error: No such file or directory, gui/gtk-2/gtk。
我已装了gtk了。
2. 我以前用的是fvwm(现在也用着~),有点不习惯,按tab+Alt居然没有出现切换菜单的,也不能改变窗口大小,难道这些都不是默认就有的?

3. 我安装了fbpanel,并没有出现pager,不知为什么。

4. sawfish有什么默认的快捷键没有,比如最小化以及最大化等等。

5. 我想实现这样的效果,只有鼠标点击标题栏时,窗口才会上升到最前,平时可以对窗口的其它部位操作并且其不会升至最前。这样在一些情况下是非常有用的。

6. 不知sawfish系统资源占用怎样,我运行了,觉得会有迟顿的感觉,用fvwm时没有,难道是我没有设置好吗(我什么都没设置,用的是默认的配置)。

7. 谢谢!

1. 我也不清楚怎么回事呀
2. 说过了呀,Sawfish 是很清爽的吧,不过有很多扩展,比如切换窗口可以用 iswitch ,就像 Emacs 里面的 iswitchb 一类的东西一样,非常方便。
3. 这个需要配置的,请参考 fbpanel 的主页上的帮助
4. 不知道,我的快捷键都是我自己绑定的,可惜你不能启动 sawfish-ui ,要不然这些工作都可以在里面方便的配置。
5. 这个我也不清楚,呵呵,我没有标题栏的……
6. 我不觉得很卡呀?这是我的 ps 输出:

  1. kid       4351  0.0  1.0  29344  8452 tty1     S    21:29   0:01 sawfish
复制代码
回复 支持 反对

使用道具 举报

 楼主| 发表于 2006-10-11 22:17:29 | 显示全部楼层
Post by qobnvi
不好说…………


我装好后就有了,可以试着设置一下。

sawfish是基于那个图形库的?

我想可能是基于 gtk 的吧?因为以前 gnome 就是用的 sawfish 的。
回复 支持 反对

使用道具 举报

发表于 2006-10-12 16:16:15 | 显示全部楼层
Post by herberteuler
无论好说不好说,qobnvi 看到信件了没,在论坛里。


:beat :beat :beat
巨巨巨巨巨巨巨巨巨巨抱歉,刚才看到……
回复 支持 反对

使用道具 举报

发表于 2007-3-20 13:36:28 | 显示全部楼层
用sawfish有2个月了,不错.
只是厌倦了那些丑陋的theme,打算什么时候有空自己写一个了.
回复 支持 反对

使用道具 举报

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

本版积分规则

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