[559] in Athena User Interface
Some sawfish customizations
daemon@ATHENA.MIT.EDU (Greg Hudson)
Tue Jan 2 09:59:02 2001
Date: Tue, 2 Jan 2001 09:58:54 -0500
Message-Id: <200101021458.JAA19321@egyptian-gods.MIT.EDU>
From: Greg Hudson <ghudson@MIT.EDU>
To: source-reviewers@MIT.EDU
Cc: aui@MIT.EDU
Our sawfish site-init file wasn't getting loaded because I was
arranging for it to be put in a wrong place. I'm moving site-init.jl
down a level (lisp/sawfish -> lisp) and adding a Makefile.in fragment
to install it in site-lisp (see second patch).
Also, a few changes to the site-init file (see first patch):
* Force loading of the gnome integration stuff even if there
are no gnome properties on the root window, so that we can
start sawfish in the default dotfiles without worrying about
panel.
* add-window-matcher needs a require in the current version of
sawfish.
* Tamper with the root menu. (Per aui [558] and preceeding, I
did not tamper with the mouse bindings on the root window.)
The tampering is:
- Remove the "Programs" menu and replace it with a
"New terminal window" option at the top.
- Rewrite the "Help" menu such that it doesn't assume
that users are only interested in help with sawfish.
Things left to worry about for customization:
* I wonder if that "depth . 1" thing for zwgc is really wise.
Should people really be unable to raise anything over zwgc
windows? What goes wrong if we leave that out?
* The gnome integration adds a couple of gnome options to the
help menu beyond what we have there. For some reason, this
was happening during part of my testing, but doesn't happen
any more; I don't know what's up with that.
* I think any "requires" that don't have full paths should
probably get them; the lack of them probably dates to
sawfish 0.30 which didn't have a hierarchical lisp tree.
* The default theme, as always.
--- /afs/dev.mit.edu/source/src-current/third/sawfish/lisp/sawfish/site-init.jl Tue Jan 2 08:26:39 2001
+++ site-init.jl Tue Jan 2 09:30:33 2001
@@ -1,14 +1,17 @@
;; $Id: site-init.jl,v 1.1 2000/12/27 22:35:45 ghudson Exp $
;; Site initialization for Athena
-;; FOCUS MODE
+;; Load gnome stuff even if we start before any gnome properties are set.
+(require 'sawfish.wm.state.gnome)
+
+;; Focus mode customizations
(require 'auto-raise)
(setq focus-click-through nil)
(setq focus-mode 'click)
(setq raise-windows-on-focus t)
(setq raise-window-timeout 0)
-;; KEY BINDINGS
+;; Key bindings
(unbind-keys border-keymap "Button3-Off")
(bind-keys border-keymap "Button3-Click" 'popup-window-menu)
(bind-keys window-keymap "Button1-Click1" 'raise-window-and-pass-through-click
@@ -18,14 +21,15 @@
(bind-keys title-keymap "Button3-Click1" 'popup-window-menu)
(unbind-keys global-keymap "C-Left" "C-Right")
-;; FRAME STYLE
+;; Special treatment for zwgc windows
+(require 'sawfish.wm.ext.match-window)
(add-window-matcher 'WM_NAME "zwgc" '(never-focus . t)
'(skip-tasklist . t)
'(sticky-viewport . t)
'(frame-type . border-only)
'(depth . 1))
-;; MENUS
+;; Menu customizations
(require 'menus)
(require 'old-window-menu)
(setq menu-program-stays-running t)
@@ -48,7 +52,20 @@
("None" set-frame:unframed))
("Frame style" . frame-style-menu)))
-;; WINDOW HISTORY
+(setq root-menu
+ '(("_New terminal window" (system "gnome-terminal &"))
+ ("_Windows" . window-menu)
+ ("Work_spaces" . workspace-menu)
+ ("_Customize" . custom-menu)
+ ("_Help"
+ ("_Athena help" (system "exec help &"))
+ ("Sawfish _manual" help:show-programmer-manual)
+ ("About Sawfish..." help:about))
+ ()
+ ("Restart" restart)
+ ("Quit" quit)))
+
+;; Window history
(require 'window-history)
(setq window-history-auto-save-position nil)
(setq window-history-auto-save-dimensions nil)
Index: Makefile.in
===================================================================
RCS file: /afs/dev.mit.edu/source/repository/third/sawfish/lisp/Makefile.in,v
retrieving revision 1.1.1.1
diff -u -r1.1.1.1 Makefile.in
--- Makefile.in 2000/11/12 06:26:50 1.1.1.1
+++ Makefile.in 2001/01/02 13:22:43
@@ -69,9 +69,11 @@
done \
done
$(rep_INSTALL_ALIASES) -l . $(DESTDIR)$(lispdir)
+ $(INSTALL_DATA) site-init.jl $(DESTDIR)$(sawfishdir)/site-lisp
installdirs : mkinstalldirs
$(SHELL) $< $(foreach x,$(INSTALL_DIRS),$(DESTDIR)$(lispdir)/$(x))
+ $(SHELL) $(sawfishdir)/site-lisp
uninstall :
set -e; for d in $(SUBDIRS); do \