Sawfish rules! |
diff --git a/lisp/sawfish/wm/autoload.jl b/lisp/sawfish/wm/autoload.jl index cbcc1fc..0630f88 100644 --- a/lisp/sawfish/wm/autoload.jl +++ b/lisp/sawfish/wm/autoload.jl @@ -139,7 +139,13 @@ (autoload-command 'cycle-class-backwards 'sawfish.wm.commands.x-cycle) (autoload-command 'cycle-dock 'sawfish.wm.commands.x-cycle) (autoload-command 'cycle-dock-backwards 'sawfish.wm.commands.x-cycle) -(autoload-command (quote xterm) (quote sawfish.wm.commands.xterm)) +(autoload-command 'xterm 'sawfish.wm.commands.user) +(autoload-command 'editor 'sawfish.wm.commands.user) +(autoload-command 'browser 'sawfish.wm.commands.user) +(autoload-command 'mailer 'sawfish.wm.commands.user) +(autoload-command 'image-viwer 'sawfish.wm.commands.user) +(autoload-command 'media-player 'sawfish.wm.commands.user) +(autoload-command 'package-manager 'sawfish.wm.commands.user) (autoload-command (quote 3d-hack) (quote sawfish.wm.ext.3d-hack)) (defgroup audio "Sound" :require sawfish.wm.ext.audio-events) (defgroup match-window "Matched Windows" :layout single :require sawfish.wm.ext.match-window) diff --git a/lisp/sawfish/wm/commands/help.jl b/lisp/sawfish/wm/commands/help.jl index 008824c..e2905af 100644 --- a/lisp/sawfish/wm/commands/help.jl +++ b/lisp/sawfish/wm/commands/help.jl @@ -30,7 +30,7 @@ rep.regexp rep.io.files sawfish.wm.commands - sawfish.wm.commands.xterm) + sawfish.wm.commands.user) ;; Info diff --git a/lisp/sawfish/wm/commands/user.jl b/lisp/sawfish/wm/commands/user.jl index bae3a53..1094344 100644 --- a/lisp/sawfish/wm/commands/user.jl +++ b/lisp/sawfish/wm/commands/user.jl @@ -21,32 +21,101 @@ the Free Software Foundation, 675 Mass Ave, Cambridge, MA 02139, USA. |# -(define-structure sawfish.wm.commands.xterm +(define-structure sawfish.wm.commands.user - (export xterm) + (export xterm + editor + browser + mailer + image-viewer + media-player + package-manager) (open rep rep.system sawfish.wm.custom sawfish.wm.commands) + (defgroup apps "Default Applications") + (defcustom xterm-program "xterm" "The program launched by the `xterm' command." :type string - :group misc) + :group apps) + + (defcustom editor-program "xedit" + "The program launched by the `editor' command." + :type string + :group apps) + + (defcustom browser-program "www-browser" + "The program launched by the `browser' command." + :type string + :group apps) + + (defcustom mailer-program "xdg-email" + "The program launched by the `mailer' command." + :type string + :group apps) + + (defcustom image-viewer-program "gqview" + "The program launched by the `image-viewer' command." + :type string + :group apps) - (defcustom xterm-args "" - "Arguments given to the `xterm' command." + (defcustom media-player-program "gmplayer" + "The program launched by the `media-player' command." :type string - :group misc) + :group apps) + + (defcustom package-manager-program "gksu -u root synaptic" + "The program launched by the `package-manager' command." + :type string + :group apps) (define (xterm #!optional command) "Start a new xterm." (if (not command) - (system (format nil "%s %s >/dev/null 2>&1 </dev/null &" - xterm-program (or xterm-args ""))) - (system (format nil "%s %s -e %s >/dev/null 2>&1 </dev/null&" - xterm-program (or xterm-args "") command)))) + (system (format nil "%s >/dev/null 2>&1 </dev/null &" + xterm-program)) + (system (format nil "%s -e %s >/dev/null 2>&1 </dev/null&" + xterm-program command)))) + + (define (editor) + "Start a new editor instance" + (system (format nil "%s >/dev/null 2>&1 </dev/null &" + editor-program))) + + (define (browser) + "Start a new browser instance" + (system (format nil "%s >/dev/null 2>&1 </dev/null &" + browser-program))) + + (define (mailer) + "Start a new mailer instance" + (system (format nil "%s >/dev/null 2>&1 </dev/null &" + mailer-program))) + + (define (image-viewer) + "Start a new image-viewer instance" + (system (format nil "%s >/dev/null 2>&1 </dev/null &" + image-viewer-program))) + + (define (media-player) + "Start a new media-player instance" + (system (format nil "%s >/dev/null 2>&1 </dev/null &" + media-player-program))) + + (define (package-manager) + "Start a new package-manager instance" + (system (format nil "%s >/dev/null 2>&1 </dev/null &" + package-manager-program))) ;;###autoload - (define-command 'xterm xterm)) + (define-command 'xterm xterm #:class 'default) + (define-command 'editor editor #:class 'default) + (define-command 'browser browser #:class 'default) + (define-command 'mailer mailer #:class 'default) + (define-command 'image-viewer image-viewer #:class 'default) + (define-command 'media-player media-player #:class 'default) + (define-command 'package-manager package-manager #:class 'default)) diff --git a/lisp/sawfish/wm/customize.jl b/lisp/sawfish/wm/customize.jl index e770784..e3de2d6 100644 --- a/lisp/sawfish/wm/customize.jl +++ b/lisp/sawfish/wm/customize.jl @@ -48,7 +48,7 @@ (define (customize #!optional group) "Invoke the user-customization system." - (system (format nil "%s %s '%S' >/dev/null 2>&1 </dev/null &" + (system (format nil "%s %s '%S' >~/.xsession-errors 2>&1 <~/.xsession-errors &" customize-program (if group customize-group-opt "") (or group "")))) diff --git a/lisp/sawfish/wm/gnome/integration.jl b/lisp/sawfish/wm/gnome/integration.jl index ed3ab07..9128ffc 100644 --- a/lisp/sawfish/wm/gnome/integration.jl +++ b/lisp/sawfish/wm/gnome/integration.jl @@ -28,16 +28,10 @@ sawfish.wm.menus sawfish.wm.custom sawfish.wm.commands.help - sawfish.wm.commands.xterm) + sawfish.wm.commands.user) (define-structure-alias gnome-int sawfish.wm.gnome.integration) - (when (null (last root-menu)) - (setq root-menu (delq (last root-menu) root-menu))) - - ;; this option was removed for gnome2 - (put 'gnome-use-capplet 'custom-obsolete t) - ;; invoke the GNOME terminal instead of xterm (unless (variable-customized-p 'xterm-program) (setq xterm-program "x-terminal-emulator")) diff --git a/lisp/sawfish/wm/gnome/menus.jl b/lisp/sawfish/wm/gnome/menus.jl index 25ca6d9..fd105c2 100644 --- a/lisp/sawfish/wm/gnome/menus.jl +++ b/lisp/sawfish/wm/gnome/menus.jl @@ -28,7 +28,8 @@ rep.system rep.regexp rep.io.files - sawfish.wm.commands) + sawfish.wm.commands + sawfish.wm.custom) (define-structure-alias gnome-menu sawfish.wm.gnome.menus) @@ -229,8 +230,14 @@ ;; take over the applications submenu of the root window menu - (make-variable-special 'apps-menu) - (setq apps-menu gnome-menus) + (defcustom gnome-menu 't + "Wether to not use the GNOME menu, while running GNOME" + :type boolean + :group apps) + + (if gnome-menu + (make-variable-special 'apps-menu) + (setq apps-menu gnome-menus)) ;; load the menus when we idle, it reduces the latency of the first ;; menu popup diff --git a/lisp/sawfish/wm/menus.jl b/lisp/sawfish/wm/menus.jl index c2047bf..1919e2c 100644 --- a/lisp/sawfish/wm/menus.jl +++ b/lisp/sawfish/wm/menus.jl @@ -44,7 +44,9 @@ sawfish.wm.util.groups sawfish.wm.workspace sawfish.wm.state.maximize - sawfish.wm.state.iconify) + sawfish.wm.state.iconify + sawfish.wm.commands.user + sawfish.wm.ext.error-handler) (define-structure-alias menus sawfish.wm.menus) @@ -117,28 +119,36 @@ before killing it.") (defvar window-menu nil) (defvar root-menu - `((,(_ "_Windows") . window-menu) + `((,(_ "Sawfish Rootmenu")) + () + (,(_ "_Windows") . window-menu) (,(_ "Work_spaces") . workspace-menu) + () (,(_ "_Programs") . apps-menu) (,(_ "_Customize") . custom-menu) + () (,(_ "_Help") (,(_ "_FAQ...") help:show-faq) (,(_ "_News...") help:show-news) (,(_ "_WWW page...") help:show-homepage) (,(_ "_Manual...") help:show-programmer-manual) + () (,(_ "_About Sawfish...") help:about)) () + (,(_ "_Display Errors") display-errors) + (,(_ "_Kill Window") (system "xkill &")) + () (,(_ "_Restart") restart) (,(_ "_Quit") quit))) (defvar apps-menu - `(("xterm" (system "xterm &")) - ("Emacs" (system "emacs &")) - ("Netscape" (system "netscape &")) - ("The GIMP" (system "gimp &")) - ("XFIG" (system "xfig &")) - ("GV" (system "gv &")) - ("xcalc" (system "xcalc &")))) + `(("Terminal" xterm) + ("Editor" editor) + ("Browser" browser) + ("Mailer" mailer) + ("Image Viewer" image-viewer) + ("Media Player" media-player) + ("Package Manager" package-manager))) (define (menu-start-process) (when menu-timer
Attachment:
signature.asc
Description: Dies ist ein digital signierter Nachrichtenteil