                                   "\nmouse-2: Switch to another buffer"
                                   "\nmouse-3: Next buffer"
                                   "\npath: " (buffer-file-name))
-                mouse-face 'mode-line-highlight
+                mouse-face mode-line-highlight
                 local-map (keymap
                            (mode-line . (keymap (mouse-1 . previous-buffer)
                                                 (mouse-2 . ivy-switch-buffer)
                                                 (mouse-3 . next-buffer))))))
+
+(defun custom-modeline-position-info()
+  `(" ("
+    ,(propertize "%l"
+                 'face 'font-lock-type-face
+                 'help-echo (format "%d lines" (count-lines (point-min)
+                                                            (point-max))))
+    ","
+    ,(propertize "%c"
+                 'face 'font-lock-type-face
+                 'help-echo (format "%d lines" (count-lines (point-min)
+                                                            (point-max))))
+    ")"))
+
+(defun custom-modeline-size-info()
+  `(" ["
+    (:propertize (-3 "%p") face font-lock-constant-face)
+    "/"
+    ,(propertize "%I"      'face 'font-lock-constant-face)
+    "]"))
+
+(defun custom-modeline-overwrite()
+  `(,(concat " "
+             (propertize "Ovr"
+                         'face      'font-lock-warning-face
+                         'help-echo (concat "Buffer is in "
+                                            (if overwrite-mode "overwrite" "insert")
+                                            " mode")))))
 
 (defun custom-modeline-region-info()
   (when mark-active


(setq column-number-mode   t
      size-indication-mode t
      display-time-format "%H:%M"
      display-time-string-forms
      '((propertize

                ;; mode-line-frame-identification
                (:eval (custom-modeline-buffer-identification))
                (:propertize "%n" face font-lock-warning-face)
                (:eval (custom-modeline-position-info))
                (:eval (custom-modeline-size-info))
                mode-line-process
                (overwrite-mode   (:eval (custom-modeline-overwrite)))
                (vc-mode vc-mode)
                (:eval (custom-modeline-region-info))
                (parinfer-mode    (:eval (custom-modeline-parinfer)))
                (iedit-mode       iedit-mode-line)
                (flycheck-mode    (:eval (custom-modeline-flycheck)))
                (flyspell-mode    (:eval (custom-modeline-flyspell)))
                (indent-info-mode (:eval (indent-info-mode-line)))
                (org-agenda-mode  (:eval (format "%s" org-agenda-filter)))
                ;; mode-line-modes
                ;; minor-mode-alist
                mode-line-misc-info
                celestial-mode-line-string
                " ("
