nftable-migration
1;;; config-buffers.el --- -*- lexical-binding: t; -*-
2;;; Commentary:
3;;; Buffer related configurations
4;;; Code:
5
6(use-package savehist
7 :unless noninteractive
8 :hook (after-init . savehist-mode)
9 :init
10 (setq savehist-file (no-littering-expand-var-file-name "savehist"))
11 :config
12 (setq-default history-length 10000
13 savehist-save-minibuffer-history t
14 savehist-delete-duplicates t
15 savehist-autosave-interval 180
16 savehist-additional-variables '(extended-command-history
17 search-ring
18 regexp-search-ring
19 comint-input-ring
20 compile-history
21 last-kbd-macro
22 shell-command-history)))
23
24(use-package uniquify
25 :unless noninteractive
26 :config
27 (setq-default uniquify-buffer-name-style 'post-forward
28 uniquify-separator ":"
29 uniquify-ignore-buffers-re "^\\*"
30 uniquify-after-kill-buffer-p t))
31
32(use-package ibuffer
33 :unless noninteractive
34 :commands (ibuffer)
35 :bind (("C-x C-b" . ibuffer)
36 ([remap list-buffers] . ibuffer))
37 :config
38 (setq-default ibuffer-expert t
39 ibuffer-filter-group-name-face 'font-lock-doc-face
40 ibuffer-default-sorting-mode 'filename/process
41 ibuffer-use-header-line t
42 ibuffer-show-empty-filter-groups nil)
43 ;; Use human readable Size column instead of original one
44 (define-ibuffer-column size-h
45 (:name "Size" :inline t)
46 (cond
47 ((> (buffer-size) 1000000) (format "%7.1fM" (/ (buffer-size) 1000000.0)))
48 ((> (buffer-size) 1000) (format "%7.1fk" (/ (buffer-size) 1000.0)))
49 (t (format "%8d" (buffer-size)))))
50
51 ;; (setq ibuffer-formats
52 ;; '((mark modified read-only " "
53 ;; (name 18 18 :left :elide)
54 ;; " "
55 ;; (size-h 9 -1 :right)
56 ;; " "
57 ;; (mode 16 16 :left :elide)
58 ;; " "
59 ;; filename-and-process)
60 ;; (mark modified read-only " "
61 ;; (name 18 18 :left :elide)
62 ;; " "
63 ;; (size 9 -1 :right)
64 ;; " "
65 ;; (mode 16 16 :left :elide)
66 ;; " "
67 ;; (vc-status 16 16 :left)
68 ;; " "
69 ;; filename-and-process)))
70 )
71
72(use-package ibuffer-vc
73 :unless noninteractive
74 :commands (ibuffer-vc-set-filter-groups-by-vc-root)
75 :hook (ibuffer . (lambda ()
76 (ibuffer-vc-set-filter-groups-by-vc-root)
77 (unless (eq ibuffer-sorting-mode 'filename/process)
78 (ibuffer-do-sort-by-filename/process)))))
79
80;; (unless noninteractive
81;; (require 'popper)
82;; (setq popper-reference-buffers
83;; '("\\*Messages\\*"
84;; "Output\\*$"
85;; "\\*Async Shell Command\\*"
86;; "\\*Warnings\\*"
87;; "\\*Compile-Log\\*"
88;; help-mode
89;; helpful-mode
90;; compilation-mode
91;; flymake-diagnostics-buffer-mode
92;; flymake-project-diagnostics-mode
93;; Man-mode
94;; woman-mode))
95;; (global-set-key (kbd "C-`") 'popper-toggle)
96;; (global-set-key (kbd "M-`") 'popper-cycle)
97;; (global-set-key (kbd "C-M-`") 'popper-toggle-type)
98;; (popper-mode +1)
99;;
100;; ;; For echo-area hints
101;; (require 'popper-echo)
102;; (popper-echo-mode +1))
103
104(use-package goto-addr
105 :hook ((text-mode . goto-address-mode)
106 (prog-mode . goto-address-prog-mode)))
107
108(provide 'config-buffers)
109;;; config-buffers.el ends here