|
|
@@ -1300,10 +1300,6 @@ found, otherwise returns nil." |
|
|
|
(when (lazy-load-eval 'bs '(bs-show) |
|
|
|
;; (add-to-list 'bs-configurations |
|
|
|
;; '("processes" nil get-buffer-process ".*" nil nil)) |
|
|
|
(add-to-list 'bs-configurations |
|
|
|
'("this-frame" nil (lambda (buf) |
|
|
|
(memq buf (my-frame-buffer-get))) |
|
|
|
".*" nil nil)) |
|
|
|
(add-to-list 'bs-configurations |
|
|
|
'("files-and-terminals" nil nil nil |
|
|
|
(lambda (buf) |
|
|
@@ -2109,101 +2105,6 @@ if arg given, use that eshell buffer, otherwise make new eshell buffer." |
|
|
|
))) |
|
|
|
) ; eval after load eshell |
|
|
|
|
|
|
|
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; |
|
|
|
;; frame buffer |
|
|
|
;; todo: work well when opening files already opened on another window |
|
|
|
|
|
|
|
(add-hook 'after-make-frame-functions |
|
|
|
(lambda (f) |
|
|
|
(set-window-buffer (frame-selected-window f) |
|
|
|
"*Messages*"))) |
|
|
|
|
|
|
|
(defun make-frame-command-with-name (name) |
|
|
|
"Make frame with NAME specified." |
|
|
|
(interactive "sName for new frame: ") |
|
|
|
(set-frame-parameter (make-frame-command) |
|
|
|
'name |
|
|
|
name)) |
|
|
|
|
|
|
|
(defvar my-frame-buffer-plist nil) |
|
|
|
|
|
|
|
(defun my-frame-buffer-add (&optional buf frame) |
|
|
|
"Add BUF to buffer list for FRAME." |
|
|
|
(setq my-frame-buffer-plist |
|
|
|
(plist-put my-frame-buffer-plist |
|
|
|
(or frame |
|
|
|
(selected-frame)) |
|
|
|
(let ((lst (my-frame-buffer-get frame))) |
|
|
|
(if lst |
|
|
|
(add-to-list 'lst |
|
|
|
(or buf |
|
|
|
(current-buffer))) |
|
|
|
(list (or buf |
|
|
|
(current-buffer)))))))) |
|
|
|
|
|
|
|
(defun my-frame-buffer-remove (&optional buf frame) |
|
|
|
"Remove BUF from bufferlist for FRAME." |
|
|
|
(setq my-frame-buffer-plist |
|
|
|
(plist-put my-frame-buffer-plist |
|
|
|
(or frame |
|
|
|
(selected-frame)) |
|
|
|
(delq (or buf |
|
|
|
(current-buffer)) |
|
|
|
(my-frame-buffer-get frame))))) |
|
|
|
|
|
|
|
(defun my-frame-buffer-get (&optional frame) |
|
|
|
"Get buffer list for FRAME." |
|
|
|
(plist-get my-frame-buffer-plist |
|
|
|
(or frame |
|
|
|
(selected-frame)))) |
|
|
|
|
|
|
|
(defun my-frame-buffer-kill-all-buffer (&optional frame) |
|
|
|
"Kill all buffer of FRAME." |
|
|
|
(mapcar 'kill-buffer |
|
|
|
(my-frame-buffer-get frame))) |
|
|
|
|
|
|
|
(add-hook 'find-file-hook |
|
|
|
'my-frame-buffer-add) |
|
|
|
;; (add-hook 'term-mode-hook |
|
|
|
;; 'my-frame-buffer-add) |
|
|
|
(add-hook 'eshell-mode-hook |
|
|
|
'my-frame-buffer-add) |
|
|
|
(add-hook 'Man-mode-hook |
|
|
|
'my-frame-buffer-add) |
|
|
|
|
|
|
|
(add-hook 'kill-buffer-hook |
|
|
|
'my-frame-buffer-remove) |
|
|
|
(add-hook 'delete-frame-functions |
|
|
|
'my-frame-buffer-kill-all-buffer) |
|
|
|
|
|
|
|
|
|
|
|
(defvar my-desktop-terminal "roxterm") |
|
|
|
(defun my-execute-terminal () |
|
|
|
"Invole terminal program." |
|
|
|
(interactive) |
|
|
|
(if (and (or (eq system-type 'windows-nt) |
|
|
|
window-system) |
|
|
|
my-desktop-terminal |
|
|
|
) |
|
|
|
(let ((process-environment (cons "TERM=xterm" process-environment))) |
|
|
|
(start-process "terminal" |
|
|
|
nil |
|
|
|
my-desktop-terminal)) |
|
|
|
(my-term))) |
|
|
|
|
|
|
|
(defun my-delete-frame-or-kill-emacs () |
|
|
|
"Delete frame when opening multiple frame, kill Emacs when only one." |
|
|
|
(interactive) |
|
|
|
(if (eq 1 |
|
|
|
(length (frame-list))) |
|
|
|
(save-buffers-kill-emacs) |
|
|
|
(delete-frame))) |
|
|
|
|
|
|
|
;; (define-key my-prefix-map (kbd "C-s") 'my-execute-terminal) |
|
|
|
(define-key my-prefix-map (kbd "C-f") 'make-frame-command-with-name) |
|
|
|
(global-set-key (kbd "C-x C-c") 'my-delete-frame-or-kill-emacs) |
|
|
|
(define-key my-prefix-map (kbd "C-x C-c") 'save-buffers-kill-emacs) |
|
|
|
|
|
|
|
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; |
|
|
|
;; my-term |
|
|
|
|
|
|
|