Initial Commit
[safanaj_home.git] / .emacs.d / emacs.fanaj
blobcdbbbab1cd920a4f33e253db411bf07bf17bb93a
1 ; -*- mode: Emacs-Lisp; coding: utf-8; unibyte: t; -*-
2 ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
3 ;; my dot_Emacs , is important ... remember to backup it !
4 ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
5 ;; I am
6 (setq user-full-name "Marco <Bj> Bardelli")
8 \f;; Molto utile
9 (unless (bound-and-true-p user-emacs-directory)
10   (setq user-emacs-directory "~/.emacs.d/"))
12 (defun reload-dot-emacs() "" (interactive)
13   (eval-buffer (find-file-noselect user-init-file))) ;;"~/.emacs"
15 (defun reload-faces-customization () "" (interactive)
16   (save-excursion
17     (set-buffer (find-file-noselect user-init-file))
18     (goto-char (string-match "(message \"Custom faces ...done\.\")" (buffer-string)))
19     (eval (preceding-sexp))))
21 (defun reload-variables-customization () "" (interactive)
22   (save-excursion
23     (set-buffer (find-file-noselect user-init-file))
24     (goto-char (string-match "(message \"Custom vars ...done\.\")" (buffer-string)))
25     (eval (preceding-sexp))))
27 ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
28 ;; Macro for a starter of service or job.
29 (defmacro define-async-job-or-service-w/o-args (name)
30   "Define a command to start `name' program in a async process."
31   `(defun ,name () (format "Start %s ." (symbol-name (quote ,name)))(interactive)
32 ;;      (unless (not (get-process (symbol-name (quote ,name))))
33 ;;        (error (format "%s yet started\n" (symbol-name (quote ,name)))))
34      ;;
35      (let ((pname (symbol-name (quote ,name)))
36            (cmd (symbol-name (quote ,name)))
37            (i 0) outbuf)
38        (while (get-process pname)
39          (setq i (1+ i)) (setq pname (format "%s<%d>" cmd i)))
40        (setq outbuf (get-buffer-create (format "*%s*" pname)))
41 ;;        (with-current-buffer outbuf
42 ;;       (add-hook 'kill-buffer-hook
43 ;;                 (lambda ()
44 ;;                   (y-or-n-p (format "Kill %s" (buffer-name (current-buffer)))))
45 ;;                 nil t))
46        (set-process-sentinel
47         (start-process pname outbuf cmd)
48         (lambda (p e)(princ (format "The proc: %s said ... %s\n" p e)))))))
50 ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
51 ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
52 \f;; Paths for loading
54 ;; .. for `load-path'
56 (defun require-entire-dir (dir) "load subdirs.el in dir"
57   (load-file
58    (expand-file-name (concat dir "/subdirs.el"))))
59 ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
61 (defun add-path-in-dir-for-lisp (dir &optional force append) ""
62   (if (and (not force)
63            (file-readable-p
64             (concat (expand-file-name dir) "/subdirs.el")))
65       (require-entire-dir dir)
66     ;; Force
67     (mapcar
68      (lambda (path)
69        (add-to-list 'load-path path append))
70      (split-string
71       (shell-command-to-string
72        (concat "find " (expand-file-name dir) "/* -type d -maxdepth 0"))))))
75 ;;;; load-path (require 'bbdb) (print-list-of-strings load-path)
76 ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
77 ;;;; XXX FIXME
78 ;(setq load-path nil) ;; /etc/{emacs,flavor}/ ???
79 (add-to-list 'load-path (expand-file-name user-emacs-directory))
80 ;;(add-to-list 'load-path (expand-file-name "~/.emacs.d/elisp"))
82 (add-path-in-dir-for-lisp "/gnu/share/emacs/site-lisp" t t)
83 ;(add-path-in-dir-for-lisp (concat "/usr/share/emacs/" "23.0.60" "/lisp") t)
85 (add-path-in-dir-for-lisp "/usr/share/emacs/site-lisp" t t)
86 ;(add-path-in-dir-for-lisp "/usr/local/share/emacs/site-lisp" t t)
87 ; (setq load-path nil)
88 ;; Planner conflicts with timeclock ... ugly solution.
89 ;(setq load-path (remove "/usr/share/emacs/site-lisp/planner-el/contrib" load-path))
90 ;; (add-path-in-dir-for-lisp "/gnu/src/onVersion/Emacs/emacs--from-CVS/site-lisp" t)
93 ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
94 ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
95 ;;; This was installed by package-install.el.
96 ;;; This provides support for the package system and
97 ;;; interfacing with ELPA, the package archive.
98 ;;; Move this code earlier if you want to reference
99 ;;; packages in your .emacs.
100 (when
101     (load
102      (expand-file-name "~/.emacs.d/elpa/package.el"))
103   (package-initialize))
106 ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
107 ;;;;;; For Emacs Speak .
108 ;(load-file "/usr/share/emacs/site-lisp/emacspeak/lisp/emacspeak-setup.el")
109 ;(voice-lock-mode nil)
112 ;;;; To group my customization.
113 (defgroup my nil
114   "my group.")
116 (message "define My prefix-command `C-c x' ... ")
117 (define-prefix-command 'my-prefix-map) ; my-prefix-map
119 ;; load cedet for other requirements ...
120 (require 'my-cedet
121          (expand-file-name
122           (concat user-emacs-directory "my-cedet.el")) t)
124 ;; Requirements 
126 ;;(require 'string nil t) ;; From elib package
127 (require 'emacs-goodies-el nil t)
128 (require 'xtla-autoloads nil t)
129 ;;(require 'xtla)
130 (require 'ctypes)
131 (require 'psvn nil t)
132 (require 'edebug nil t)
133 (require 'epa-setup nil t)
134 (require 'wdired nil t)
135 (require 'dired-x nil t)
136 (require 'records nil t)
137 ;;(require 'x-face)
138 ;;(require 'select-xface nil t)
139 (require 'chess nil t)
140 (require 'page-ext nil t)
141 (require 'folding nil t)
142 (require 'etags-select nil t)
143 (require 'windmove nil t)
144 (require 'ratpoison-cmd nil t)
145 (require 'info-look nil t)
149 ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
150 \f;; Various utils Not-dependent on my lisp libs (in (@file :file-name "my-elib.el" :to "my-elib.el" :display "elib")`my-elib.el' ???
152 ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
154 ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
155 ;; (defun basename (file) "FIX"
156 ;;   (car (last (split-string file "/"))))
157 (defun basename (name) "?"
158   (unless name (return nil))
159   (let ((path (expand-file-name name)))
160     (substring path (+ 1 (string-match "/[^/]*$" path)))))
162 (defun dirname (name) "?"
163   (let ((path (expand-file-name name)))
164     (substring path 0 (string-match "/[^/]*$" path))))
166 ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
167 (defun messasge-list-of-strings (strings) ""
168   (if (not (sequencep strings))
169       (error "The arg is not a sequence, it is a %s" (type-of strings))
170     (let ((l strings) ret elt)
171       (while (car l)
172         (cond
173          ( (numberp (car l)) (setq elt (number-to-string (car l))) )
174          ( (symbolp (car l)) (setq elt (symbol-name (car l))) )
175          ( (stringp (car l)) (setq elt (car l)) ))
176         (setq l (cdr l))
177         (if (not ret) (setq ret elt)
178           (setq ret (concat ret "\n" elt))))
179       (message "%s" ret))))
181 ;; (print-list-of-strings '("ciao" "a" "te" 4 (symbolp 'ciaa) 5))
182 ;; (princ-list '("ciao" "a" "te" 4 5 'cia))
183 ;;        (setq ret (concat ret "\n" elt))
184 ;;        (setq l (cdr l)))
185 ;;       (print ret) t)))
187 ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
188 (defun cycleframe-forward () "" (interactive)
189   (other-frame 1))
191 (defun cycleframe-backward () "" (interactive)
192   (other-frame -1))
194 ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
195 (defun save-and-compile ()
196   "Save current buffer and make."
197   (interactive "")
198   (save-some-buffers 0)
199   (compile "make -k"))
201 ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
202 ;===============================================================
203 ; tab completion
204 (defun indent-or-complete ()
205   "Complete if point is at end of a word, otherwise indent line."
206   (interactive)
207   (if (looking-at "\\>")
208       (dabbrev-expand nil)
209     (indent-for-tab-command)
210     ))
212 ;==============================================================================
213 ; buffer cycling
214 (defun backward-buffer () (interactive)
215   "Switch to previously selected buffer."
216   (let* ((list (cdr (buffer-list)))
217          (buffer (car list)))
218     (while (and (cdr list) (string-match "\\*" (buffer-name buffer)))
219       (progn
220         (setq list (cdr list))
221         (setq buffer (car list))))
222     (bury-buffer)
223     (switch-to-buffer buffer)))
225 (defun forward-buffer () (interactive)
226   "Opposite of backward-buffer."
227   (let* ((list (reverse (buffer-list)))
228          (buffer (car list)))
229     (while (and (cdr list) (string-match "\\*" (buffer-name buffer)))
230       (progn
231         (setq list (cdr list))
232         (setq buffer (car list))))
233     (switch-to-buffer buffer)))
235 ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
236 ;; I hate have to do 'C-x k RET C-x 0' ... 'C-c x k' is most short
237 ;; (defun kill-window () "" (interactive)
238 ;;   (progn (kill-buffer (current-buffer)) (delete-window)))
239 ;; ... exist kill-buffer-and-window
240 (defun bury-window () "" (interactive)
241   (progn (bury-buffer (current-buffer)) (delete-window)))
243 ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
244 (defun googling () "" (interactive)
245   (browse-url "http://google.com/ig")
246 );;   (sleep-for 20)
247 ;;   (browse-url "http://code.google.com/")
248 ;;   (browse-url "http://gmail.com/it")
249 ;;   (browse-url "http://google.it/reader/view"))
251 ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
252 ;; ;.. for `targets' in Makefile (^[A-Za-z_.-]*:)
253 ;; ... exist semantic by CEDET
254 (defun list-all-targets-with-grep (&optional makefile no-print)
255   ""
256   (interactive "f(Make)File ? : ")
257   (let (ret)
258     (progn
259       (mapcar
260        (lambda (target-line)
261          (add-to-list 'ret (caddr (split-string target-line ":" t))))
262        (split-string
263         (shell-command-to-string 
264          (concat "grep -nH -e '^[A-Za-z_.-]*:' " "GNUmakefile")) "\n" t))
265       ret)))
267 ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
268 ;; dired dot files
269 (defcustom dired-x-omit-regex-list '() "List of Regexps" 
270   :group 'my
271   :type '(repeat string))
272 (defvar dired-x-omit-dot-mode t "Omit dot files in dired if t.")
273 (defun dired-x-set-omit-dot (&optional val) 
274   "dired hide/show dot files toggle. Return the dired-omit-files string."
275   (interactive)
276   (let ((old (split-string dired-omit-files "\\\\|" t)) result)
277     (setq dired-x-omit-regex-list old)
278     (cond ((not val) (setq dired-x-omit-dot-mode 
279                            (not dired-x-omit-dot-mode)))
280           ((= 0 val) (setq dired-x-omit-dot-mode nil))
281           ((= 1 val) (setq dired-x-omit-dot-mode t))
282           (t (setq dired-x-omit-dot-mode nil)))
283     (if dired-x-omit-dot-mode
284         (add-to-list 'dired-x-omit-regex-list "^\\..*$")
285       (setq dired-x-omit-regex-list (delete "^\\..*$" dired-x-omit-regex-list)))
286     (mapc
287      (lambda (elt)
288        (setq result (concat result "\\|" elt)))
289      dired-x-omit-regex-list)
290     (if (equal (substring result 0 2) "\\|")
291         (setq result (substring result 2)))
292     (setq dired-omit-files result)))
294 ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
295 ;; (defun load-w3m-browser-in-emacs()""(interactive)(require 'w3m-load))
297 ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
298 (defun view-file-at-point () "View File at Point." (interactive)
299   (view-file (ffap-prompter (ffap-file-at-point))))
301 ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
302 ; Shell fix
303 (defun shell-command-in-console (&optional cmd) "" (interactive)
304   (if (not cmd)
305       (setq cmd (shell-command-read-minibuffer "$ " (substring(pwd)(length "Directory ")))))
306   (if (not (string-match "&" cmd)) (concat cmd " &"))
307   (shell-command cmd (concat "*Console Command: " cmd " *")))
309 ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
310 \f;; My ...
311 (message "require My ... ")
312 (require 'my-elib)
313 (require 'my-elisp)
314 (require 'my-debian)
315 (require 'mail-and-gnus)
316 (require 'making-project)
317 (require 'my-pages) ;; in ~/Pages ... diary etc ...
318 (require 'my-emms)
319 (require 'my-frames)
320 (require 'my-faces)
321 (require 'my-browse-url)
322 (require 'my-org)
323 (message "done.\n")
324 ;(require 'my-e21-site-lisp)
325 ;(my-require-doremi-pkg)
326 (require 'my-gnome)
327 ;; For InfoBook
328 (require 'infobook)
331 \f;; Define some aliases so can find toggle commands easily.
333 (defalias 'toggle-abbrev-mode 'abbrev-mode)
334 (defalias 'toggle-auto-fill-mode 'auto-fill-mode)
335 (defalias 'toggle-auto-lower-mode 'auto-lower-mode)
336 (defalias 'toggle-auto-raise-mode 'auto-raise-mode)
337 (defalias 'toggle-auto-save-mode 'auto-save-mode)
338 (defalias 'toggle-binary-overwrite-mode 'binary-overwrite-mode)
339 (defun toggle-autofit-frames ()"..."(interactive)
340   (and (boundp 'autofit-frames-flag)(setq autofit-frames-flag (not autofit-frames-flag))))
342 ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
343 \f;; {Auto,*} Mode List
344 ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
345 (add-to-list 'auto-mode-alist '("\\.gsmarkup$" . xml-mode))
346 (add-to-list 'auto-mode-alist '("\\.make$" . makefile-gmake-mode))
347 (add-to-list 'auto-mode-alist '("Makefile\\.?.*$" . makefile-gmake-mode))
348 (add-to-list 'auto-mode-alist '("rules\\.?.*$" . makefile-gmake-mode))
349 (add-to-list 'auto-mode-alist '(".*\\.emacs\\.d.*\\.notes\\.?.*$" . muse-mode))
350 (add-to-list 'auto-mode-alist '("\\.org$" . org-mode))
352 (add-to-list 'interpreter-mode-alist '("perl" . cperl-mode))
353 ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
355 ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
356 \f;; HOOKS
358 ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
360 ;; I Buffer
361 ;(setq ibuffer-mode-hook nil)
362 ;; (defun ibuffer-collapse-filter-groups (&optional first) "" (interactive)
363 ;;   (if (and first (= first (point))) (message "Finished.")
364 ;;     (let (name)
365 ;;       (unless (get-buffer "*Ibuffer*")
366 ;;      (ibuffer))
367 ;;       (unless (string= "*Ibuffer*" (buffer-name))
368 ;;      (set-buffer (get-buffer "*Ibuffer*")))
369 ;;       (message "buffer: %s at %d" (buffer-name) (point))
370 ;;       (unless (get-text-property (point) 'ibuffer-filter-group-name)
371 ;;      (ibuffer-forward-filter-group))
372 ;;       (unless first (setq first (point)))
373 ;;       (setq name (get-text-property (point) 'ibuffer-filter-group-name))
374 ;;       (message "group: %s at %d" name (point))
375 ;;       (unless (member name ibuffer-hidden-filter-groups)
376 ;;      (ibuffer-toggle-filter-group-1 (point)))
377 ;;       (ibuffer-forward-filter-group)
378 ;;       (ibuffer-collapse-filter-groups first))))
380 ;; (add-hook
381 ;;  'ibuffer-mode-hook 
382 ;;  '(lambda() (ibuffer-collapse-filter-groups)))
384 ;; (add-hook
385 ;;  'ibuffer-mode-hook 
386 ;;  '(lambda ()
387 ;;     (ibuffer-switch-to-saved-filter-groups "ib_view")))
390 ;; Completition ...
391 (add-hook 'c-mode-common-hook
392           (function (lambda ()
393                       (local-set-key (kbd "<tab>") 'indent-or-complete))))
395 ;; da provare ..
396 (add-hook 'perl-mode-hook ;;'c-mode-common-hook
397           (lambda () (local-set-key "\C-cc" 'save-and-compile)))
400 (add-hook 'c-mode-common-hook
401           (lambda () (hs-minor-mode 1)))
403 (add-hook 'hs-minor-mode-hook
404           (lambda () (local-set-key "\C-cs" 'hs-show-block)))
405 (add-hook 'hs-minor-mode-hook
406           (lambda () (local-set-key "\C-ch" 'hs-hide-block)))
407 (add-hook 'hs-minor-mode-hook
408           (lambda () (local-set-key "\C-cS" 'hs-show-all)))
409 (add-hook 'hs-minor-mode-hook
410           (lambda () (local-set-key "\C-cH" 'hs-hide-all)))
412 ; indent on ENTER ;; c-mode-common-hook
413 ;; (remove-hook 'c-mode-common-hook
414 ;;        (lambda () (local-set-key "\C-m" 'newline-and-indent)))
416 (add-hook 'c-mode-common-hook 'turn-on-auto-fill)
417 (add-hook 'text-mode-hook 'turn-on-auto-fill)
418 ;; (remove-hook ' c-mode-common-hook
419 ;;        '(lambda () (c-toggle-auto-state 0)))
420 (add-hook 'java-mode-hook
421           '(lambda () (c-set-style "gnu")))
423 (unless (fboundp 'cxref-c-mode-common-hook)
424   (remove-hook 'c-mode-common-hook 'cxref-c-mode-common-hook))
426 ;; objc-mode-hook
427 (add-hook 'objc-mode-hook 'c-subword-mode)
429 ;;; clean dired-mode-hook  -xtensioni
430 (add-hook 
431  'dired-mode-hook
432  (lambda ()
433    (setq dired-omit-files (dired-x-set-omit-dot 1))
434    (dired-omit-mode 1)))
435                   
437 ;(setq ibuffer-load-hook nil)
438 ;(cdr (assoc "my_view_with_mode" ibuffer-saved-filter-groups)) ibuffer-filter-groups
440 ;;}}}
441 ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
443 ;; (eval-after-load "ratpoison-cmd"
444 ;;   (progn
445 ;;     (defun rat-prev () "" (interactive)(ratpoison-prev))
446 ;;     (defun rat-next () "" (interactive)(ratpoison-next))
447 ;; ;    (setq speedbar-before-popup-hook nil speedbar-before-delete-hook nil)
448 ;;     (defvar ratfdump-splitted "(frame :number 0 :x 0 :y 0 :width 802 :height 768 :screenw 1024 :screenh 768 :window 6291559 :last-access 20 :dedicated 0),(frame :number 1 :x 802 :y 0 :width 222 :height 768 :screenw 1024 :screenh 768 :window 6293946 :last-access 0 :dedicated 0)," "")
449 ;;     (defvar ratfdump-one "(frame :number 0 :x 0 :y 0 :width 1024 :height 768 :screenw 1024 :screenh 768 :window 6291559 :last-access 20 :dedicated 0)," "")
450 ;;     (add-hook 'speedbar-before-popup-hook
451 ;;            '(lambda ()
452 ;;               (ratpoison-cmd 'frestore ratfdump-splitted)
453 ;;               (ratpoison-cmd 'fselect 1)))
454 ;;     (add-hook 'speedbar-before-delete-hook
455 ;;            '(lambda ()
456 ;;               (ratpoison-cmd 'fselect 1)
457 ;;               (ratpoison-cmd 'frestore ratfdump-one)))
458 ;;     (add-hook 'speedbar-before-visiting-file-hook
459 ;;            '(lambda ()
460 ;;               (ratpoison-cmd 'fselect 0)))
461 ;;     (add-hook 'speedbar-before-visiting-tag-hook
462 ;;            '(lambda ()
463 ;;               (ratpoison-cmd 'fselect 0)))
464 ;;     "Rat is ok"))
466 ;; (progn
467 ;;   (remove-hook 'speedbar-before-popup-hook
468 ;;          '(lambda ()
469 ;;             (ratpoison-cmd 'frestore ratfdump-splitted)
470 ;;             (ratpoison-cmd 'fselect 1)))
471 ;;   (remove-hook 'speedbar-before-delete-hook
472 ;;          '(lambda ()
473 ;;             (ratpoison-cmd 'fselect 1)
474 ;;             (ratpoison-cmd 'frestore ratfdump-one)))
475 ;;   (remove-hook 'speedbar-before-visiting-file-hook
476 ;;          '(lambda ()
477 ;;             (ratpoison-cmd 'fselect 0)))
478 ;;   (remove-hook 'speedbar-before-visiting-tag-hook
479 ;;          '(lambda ()
480 ;;             (ratpoison-cmd 'fselect 0)))
481 ;;   "speedbar-hook is clean")
484 ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
485 ; make all yes/no prompts y/n instead
486 (fset 'yes-or-no-p 'y-or-n-p)
487 ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
488 \f;; Global Key Bindings 
490 (message "Set Global Bindings ... ")
491 (global-set-key "\C-cx" 'my-prefix-map)
493 ;; & keymaps
495 (define-key my-prefix-map "f" 'find-file-at-point)
496 (define-key my-prefix-map "v" 'view-file-at-point)
497 (define-key my-prefix-map "b" 'browse-url-at-point)
498 (define-key my-prefix-map "a" 'find-alternate-file)
499 (define-key my-prefix-map "hi" 'infobook-goto-node)
500 (define-key my-prefix-map "-" 'normal-mode)
501 (define-key my-prefix-map "k" 'kill-buffer-and-window)
502 (define-key my-prefix-map "K" 'bury-window)
503 (define-key my-prefix-map "d" 'find-dired)
504 (define-key my-prefix-map "c" 'comment-region)
505 (define-key my-prefix-map "C" 'calendar)
506 (define-key my-prefix-map "\C-q" 'view-mode)
507 (define-key my-prefix-map "Z" 'make-frame)
508 (define-key my-prefix-map "z" 'delete-frame) ;; Zack frame
509 (define-key my-prefix-map "t" 'shell)
510 (define-key my-prefix-map "T" 'toggle-truncate-lines)
511 (define-key my-prefix-map "P" 'proced)
512 (define-key my-prefix-map "E" 'eval-buffer)
513 (define-key my-prefix-map "W" 'woman)
514 (define-key my-prefix-map "R" 'rmail-other-frame)
515                                            
518 (define-prefix-command 'my-modes-prefix)
519 (define-key my-prefix-map "M" 'my-modes-prefix)
520 (define-key my-modes-prefix "d" 'develock-mode)
521 (define-key my-modes-prefix "@" 'icy-mode)
522 (define-key my-modes-prefix "l" 'linkd-mode)
524 ;;;;;;;;
525 (defcustom minimal-height-for-window 4 "...")
526 (defun minimize-window ()""(enlarge-window (- minimal-height-for-window (window-height))))
527 (defun other-window-minimizing ()""(interactive) (minimize-window)(other-window 1))
528 (global-set-key [?\C->] 'other-window)
529 (global-set-key [?\C-<] 'other-window-minimizing)
531 ;; override default
532 ;(global-set-key (kbd "M-f") 'forward-sentence)
533 ;(global-set-key (kbd "M-b") 'backward-sexp)
535 (global-set-key "\C-cm" 'compile)
536 (global-set-key "\C-xK" 'bury-buffer)
537 (global-set-key "\M-_" 'hippie-expand)
538 (global-set-key "\C-x\C-b" 'ibuffer)
540 (global-set-key [f1] 'delete-other-windows)
541 (global-set-key [f11] 'delete-window)
542 (global-set-key [S-f1] 'menu-bar-mode)
543 (global-set-key [f2] 'show/switch-other-window)
544 (global-set-key [S-f2] 'show/hide-messages)
545 (defun get-scratch ()""(interactive)(switch-to-buffer "*scratch*"))
546 (global-set-key [S-f3] 'get-scratch)
547 (global-set-key [S-f6] 'speedbar)
548 (global-set-key [f5] 'rmail-or-rmime)
549 (global-set-key [f6] 'toggle-ecb)
550 (global-set-key [C-f6] 'ecb-deactivate)
551 (global-set-key [f7] 'ecb-toggle-layout)
552 (global-set-key (kbd "C-<f7>") 'font-resizing-mode)
553 (global-set-key (kbd "C-<f8>") 'frame-positioning-mode)
554 (global-set-key (kbd "C-<f9>") 'frame-resizing-mode)
555 (global-set-key (kbd "C-<f10>") 'un/maximize-frame)
556 (global-set-key (kbd "M-S-<f10>") 'set-unmaximized-frame-sizes)
558 (global-set-key (kbd "C-!") 'shell-command-in-console)
560 (global-set-key "\C-x\C-v" 'view-file)
561 (global-set-key "\C-x4v" 'view-file-other-window)
562 (global-set-key "\C-x5v" 'view-file-other-frame)
563 (global-set-key [?\C-x C-up] 'cycleframe-forward)
564 (global-set-key [?\C-x C-down] 'cycleframe-backward)
565 (global-set-key "\C-c@h" 'folding-mode)
566 (global-set-key "\C-ct" 'term)
567 ;(global-set-key "\M-n" 'forward-paragraph)
568 ;(global-set-key "\M-p" 'backward-paragraph)
570 (global-set-key (kbd "C-<tab>") 'ebs-switch-buffer)
571 ;;;;;(global-set-key "\C-h\C-j" 'gtk-lookup-symbol)
572 (message "done.\n")
576 ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
577 \f;; Most Stuff 
578 ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
579 ;; Some Starters ...
580 (define-async-job-or-service-w/o-args podwebserver)
581 (define-async-job-or-service-w/o-args dwww)
582 (define-async-job-or-service-w/o-args amule)
583 ;(define-async-job-or-service-w/o-args metacity)
584 (define-async-job-or-service-w/o-args vlc)
585 (define-async-job-or-service-w/o-args totem-gstreamer)
586 (define-async-job-or-service-w/o-args pidgin)
587 (define-async-job-or-service-w/o-args xterm)
589 ;;;; Various settings
590 (setq bookmark-default-file (concat user-emacs-directory "emacs.bmk"))
591 (setq desktop-base-file-name "emacs.desktop")
592 (setq desktop-dirname user-emacs-directory)
593 (setq desktop-save 'ask-if-exists)
595 ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
596 ;;;; Various Temporary Utils
597 (defun fix-dired-hook () "" (interactive)
598  ; (setq dired-mode-hook nil)
599   (unless (or (fboundp 'dired-extra-startup)
600               (not (member 'dired-extra-startup dired-mode-hook)))
601     (remove-hook 'dired-mode-hook 'dired-extra-startup))
602   (unless (or (fboundp 'ffap-inhibit-ffap-here)
603               (not (member 'dired-extra-startup dired-mode-hook)))
604     (remove-hook 'dired-mode-hook 'ffap-inhibit-ffap-here))
605   (unless (or (fboundp 'tramp-minor-mode)
606               (not (member 'tramp-minor-mode dired-mode-hook)))
607     (remove-hook 'dired-mode-hook 'tramp-minor-mode))
608   (add-hook 'dired-mode-hook 'revert-buffer)
609   ;; dired-details+ in maximun-decoration exceed ...
610   (remove-hook 'dired-mode-hook
611                '(lambda nil 
612                   (if (and (boundp (quote font-lock-maximum-decoration))
613                            font-lock-maximum-decoration)
614                       (set (make-local-variable (quote font-lock-defaults))
615                            (quote (diredp-font-lock-keywords-1 t)))))))
617 ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
618 ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
619 ;;{{{ Jabber
620 ;; (require 'jabber)
621 ;; (setq
622 ;;  jabber-username        "safanaj"
623 ;;  jabber-server          "jabber.org"
624 ;;  jabber-network-server  nil ;"talk.google.com"
625 ;;  jabber-port            nil
626 ;;  jabber-connection-type 'starttls
627 ;;  jabber-password        "sanajana" ;; password secret
628 ;;  jabber-nickname        "SaFanaj"
629 ;;  jabber-resource        "Book")
631 ;;}}}
632 ;;{{{ Test Exec as Compile
634 (defcustom test-exec-command "./obj" "...")
636 (defun test-exec (command)
637   ""
638   (interactive
639    (list
640     (let ((command (eval test-exec-command)))
641 ;;       (if (or compilation-read-command current-prefix-arg)
642       (read-from-minibuffer "Exec command: "
643                             command nil nil
644 ;;                              (if (equal (car test-exec-history) command)
645 ;;                                  '(test-exec-history . 1)
646 ;;                                'test-exec-history))
647                             )
648         command)
649     (consp current-prefix-arg)))
650   (unless (equal command (eval test-exec-command))
651     (setq test-exec-command command))
652 ;;   (save-some-buffers (not compilation-ask-about-save) nil)
653 ;;   (setq compilation-directory default-directory)
654 ;;   (compilation-start command comint))
657 (global-set-key "\C-ce" 'test-exec)
659 ;;}}}
660 ;;{{{ xtla stuff (DVC, tla & Co.)
661 (require 'xtla nil t)
662 (if (featurep 'xtla)
663     (progn
664       (defun tla--generic-file-unprefix (files)
665         "Rename FILES with adding prefix FIX control.
666 Visited buffer associations also updated."
667         (mapcar
668          (lambda (from)
669            (let* ((buf (find-buffer-visiting from))
670                   (to (concat
671                        (file-name-directory from)
672                        (substring (file-name-nondirectory from)2))))
673              (rename-file from to)
674              (when buf
675                (with-current-buffer buf
676                  (rename-buffer to)
677                  (set-visited-file-name to)))))
678          files)
679         (tla-generic-refresh))
681       (defun tla--generic-file-move (files dir)
682         "Rename FILES with adding prefix FIX control.
683 Visited buffer associations also updated."
684         (while (car files)
685           (let* ((from (pop files))
686                  (buf (find-buffer-visiting from))
687                  (to
688                   (concat
689                    (expand-file-name
690                     (directory-file-name
691                      (file-name-directory dir))) 
692                    "/"
693                    (file-name-nondirectory from))))
694             (tla-mv from to 'ask)
695             (when buf
696               (with-current-buffer buf
697                 (rename-buffer to)
698                 (set-visited-file-name to))))
699           (tla-generic-refresh)))
701       (defun tla-inventory-move-into (files)
702         "Prompts and make the FILES junk.
703 If marked files are, use them as FIELS.
704 If not, a file under the point is used as FILES.
705 If on a message field, make all the files below this message junk."
706         (interactive
707          (list
708           (tla--inventory-select-files "Move %s ? "
709                                        "Move %s files into ? "
710                                        "Not move any file"
711                                        "Move files : "
712                                        nil nil nil
713                                        'yes-or-no-p)))
714         (tla--generic-file-move files (read-directory-name "Move into ? : ")))
716       (defun tla-inventory-make-plain (files)
717         "Prompts and make the FILES junk.
718 If marked files are, use them as FIELS.
719 If not, a file under the point is used as FILES.
720 If on a message field, make all the files below this message junk."
721         (interactive
722          (list
723           (tla--inventory-select-files "Make %s unprefixed? "
724                                        "Make %s files plain? "
725                                        "Not making any file unprefixed"
726                                        "Make file unprefixed: "
727                                        nil nil nil
728                                        'yes-or-no-p)))
729         (tla--generic-file-unprefix files))))
731 ;;}}}
732 ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
733 ;;;; A client fo Google Services
734 (setq g-directory (concat (expand-file-name user-emacs-directory) "g-client"))
735 (add-to-list 'load-path g-directory)
736 (require 'g)
737 ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
738 ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
740 (put 'narrow-to-page 'disabled nil)
741 (put 'narrow-to-region 'disabled nil)
743 ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
744 \f;; Using to init ...
745 ;(setq inhibit-splash-screen t)
746 ;; Auto evalutation on init.
747 ;(server-start 1)
748 (display-time)
749 ;(folding-mode 1)
750 ;;(edebug (emms-all))
751 (shell-command-completion-mode 1)
752 (ebs-initialize)
753 (column-number-mode 1)
754 (windmove-default-keybindings 'meta)
755 (global-font-lock-mode t)
756 (when window-system
757   (tool-bar-mode 0))
758 ;;  (framepop-enable)
759 ;;  (tabbar-mode 0))
761 ;; Hide dot files in dired by default
762 (dired-x-set-omit-dot 1)
763 ; very cool
764 ;(eval (term "/bin/bash"))
766 ;; Use Diary and Calendar ... & TODOo ;;; in my-pages
767 (appt-activate 1)
768 ;; (calendar)
769 ;; (other-window 1)
770 ;(setq midnight-mode t)
771 (menu-bar-mode 0)
772 (toggle-truncate-lines 1)
773 ;(sleep-for 1)
775 (eval-after-load "my-elisp"
776   (progn
777     (unless (or (fboundp 'dired-extra-startup)
778                 (not (member 'dired-extra-startup dired-mode-hook)))
779       (remove-hook 'dired-mode-hook 'dired-extra-startup))
780     (unless (or (fboundp 'ffap-inhibit-ffap-here)
781                 (not (member 'dired-extra-startup dired-mode-hook)))
782       (remove-hook 'dired-mode-hook 'ffap-inhibit-ffap-here))
783     (unless (or (fboundp 'tramp-minor-mode)
784                 (not (member 'tramp-minor-mode dired-mode-hook)))
785       (remove-hook 'dired-mode-hook 'tramp-minor-mode))
786     (add-hook 'dired-mode-hook 'revert-buffer)
787     "cleaned dired-mode-hook"))
789 (if (member 'tramp-minor-mode dired-mode-hook) (fix-dired-hook))
791 (if (and window-system (equal (getenv "DISPLAY") ":4.0"))
792     (progn (sleep-for 1) (gnome-wm)))
794 (fix-dired-hook)
796 ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
797 \f                             ;; END ;;
798 ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
800 ;; arch-tag: Marco (Bj) Bardelli, mar 19 feb 2008 18:25:44 CET (emacs.fanaj)
802 ;;; Local Variables:
803 ;;; folded-file: nil
804 ;;; end: