summaryrefslogtreecommitdiff
path: root/config/ibuffer
diff options
context:
space:
mode:
Diffstat (limited to 'config/ibuffer')
-rw-r--r--config/ibuffer/config-ibuffer-filter-groups.el8
-rw-r--r--config/ibuffer/config-ibuffer-human-readable-size.el16
-rw-r--r--config/ibuffer/config-ibuffer-never-show.el11
-rw-r--r--config/ibuffer/config-ibuffer.el22
4 files changed, 57 insertions, 0 deletions
diff --git a/config/ibuffer/config-ibuffer-filter-groups.el b/config/ibuffer/config-ibuffer-filter-groups.el
new file mode 100644
index 0000000..89f60e3
--- /dev/null
+++ b/config/ibuffer/config-ibuffer-filter-groups.el
@@ -0,0 +1,8 @@
+(setq ibuffer-saved-filter-groups
+ '(("default"
+ ("misc" (name . "^\\*.*$"))
+ ("dired" (mode . dired-mode)))))
+
+(add-hook 'ibuffer-mode-hook (lambda () (ibuffer-switch-to-saved-filter-groups "default")))
+
+(provide 'config-ibuffer-filter-groups)
diff --git a/config/ibuffer/config-ibuffer-human-readable-size.el b/config/ibuffer/config-ibuffer-human-readable-size.el
new file mode 100644
index 0000000..5cec3a9
--- /dev/null
+++ b/config/ibuffer/config-ibuffer-human-readable-size.el
@@ -0,0 +1,16 @@
+(define-ibuffer-column size-human-readable
+ (:name "Size" :inline t)
+ (let ((size (buffer-size)))
+ (cond
+ ((> size (expt 1000 4))
+ (error "buffer is over 1TB large!"))
+ ((> size (expt 1000 3))
+ (format "%sG" (/ size (expt 1000 3))))
+ ((> size (expt 1000 2))
+ (format "%sM" (/ size (expt 1000 2))))
+ ((> size 1000)
+ (format "%sK" (/ size 1000)))
+ (t
+ (format "%sB" size)))))
+
+(provide 'config-ibuffer-human-readable-size)
diff --git a/config/ibuffer/config-ibuffer-never-show.el b/config/ibuffer/config-ibuffer-never-show.el
new file mode 100644
index 0000000..f21554f
--- /dev/null
+++ b/config/ibuffer/config-ibuffer-never-show.el
@@ -0,0 +1,11 @@
+(defvar config-ibuffer-never-show '("^\\*Messages\\*$"
+ "^\\*Help\\*$"
+ "^\\*Completions\\*$"
+ "^\\*Backtrace\\*$"
+ "^\\*Async-native-compile-log\\*$"))
+
+(mapc (lambda (p)
+ (add-to-list 'ibuffer-never-show-predicates p))
+ config-ibuffer-never-show)
+
+(provide 'config-ibuffer-never-show)
diff --git a/config/ibuffer/config-ibuffer.el b/config/ibuffer/config-ibuffer.el
new file mode 100644
index 0000000..ddc104d
--- /dev/null
+++ b/config/ibuffer/config-ibuffer.el
@@ -0,0 +1,22 @@
+(require 'ibuffer)
+(require 'ibuf-ext)
+(require 'config-ibuffer-human-readable-size)
+(require 'config-ibuffer-never-show)
+(require 'config-ibuffer-filter-groups)
+
+(setq ibuffer-display-summary nil
+ ibuffer-expert t)
+
+(setq ibuffer-formats
+ '((mark modified read-only locked " "
+ (name 18 18 :left :elide)
+ " "
+ (size-human-readable 5 5 :right)
+ " "
+ (mode 16 16 :left :elide)
+ " " filename-and-process)
+ (mark " "
+ (name 16 -1)
+ " " filename)))
+
+(provide 'config-ibuffer)