By default, the modeline in Emacs will show you information about everything. Unfortunately, by trying to show you everything, it ends up showing you little of actual use.

Smart Mode Line

The smart-mode-line package gives you some control of what shows up in the mode-line.

(require-package 'smart-mode-line)
(if (require 'smart-mode-line nil 'noerror)
      (setq sml/name-width 20)
      (setq sml/mode-width 'full)
      (setq sml/shorten-directory t)
      (setq sml/shorten-modes t)

      (rich-minority-mode 1)
      (setq rm-blacklist '(" GitGutter" " MRev" " company" " mate"
                           " Paredit" " Wrap" " Fill"))

      (if after-init-time
        (add-hook 'after-init-hook 'sml/setup))

      (setq rm-text-properties
            '((" Paredit" 'display "()"
               'face 'sml/minor-modes)))

      (require-package 'smart-mode-line-powerline-theme)
      (sml/apply-theme 'powerline)
      ;; Alternatives:
      ;; (sml/apply-theme 'powerline)
      ;; (sml/apply-theme 'dark)
      ;; (sml/apply-theme 'light)
      ;; (sml/apply-theme 'respectful)
      ;; (sml/apply-theme 'automatic)

      (add-to-list 'sml/replacer-regexp-list '("^~/Dropbox/" ":DB:"))
      (add-to-list 'sml/replacer-regexp-list
                   '("^~/.*/lib/ruby/gems" ":GEMS" ))
      (add-to-list 'sml/replacer-regexp-list
                   '("^~/Projects/" ":CODE:"))))

SVG Modeline

svg-mode-line-themes ocodo-svg-modelines

(require-package 'svg-mode-line-themes)
(if (require 'svg-mode-line-themes nil 'noerror)
      (require-package 'ocodo-svg-modelines)
      (smt/set-theme 'ocodo-minimal-dark-smt)
      (set-face-attribute 'mode-line nil :box nil)
      (set-face-attribute 'mode-line-inactive nil :box nil)))

Showing the Time

24-hour time, of course:

(setq display-time-24hr-format t)
(display-time-mode 1)

Author: Toby Tripp

Created: 2018-03-04 Sun 00:38