Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- (defvar powerline-color1)
- (defvar powerline-color2)
- (setq powerline-color1 "grey22")
- (setq powerline-color2 "grey40")
- (set-face-attribute 'mode-line nil
- :background "Turquoise"
- :box nil)
- (set-face-attribute 'mode-line-inactive nil
- :box nil)
- (defun arrow-right-xpm (color1 color2)
- "Return an XPM right arrow string representing."
- (create-image
- (format "/* XPM */
- static char * arrow_right[] = {
- \"12 18 2 1\",
- \". c %s\",
- \" c %s\",
- \". \",
- \".. \",
- \"... \",
- \".... \",
- \"..... \",
- \"...... \",
- \"....... \",
- \"........ \",
- \"......... \",
- \"......... \",
- \"........ \",
- \"....... \",
- \"...... \",
- \"..... \",
- \".... \",
- \"... \",
- \".. \",
- \". \"};"
- (if color1 color1 "None")
- (if color2 color2 "None"))
- 'xpm t :ascent 'center))
- (defun arrow-left-xpm (color1 color2)
- "Return an XPM right arrow string representing."
- (create-image
- (format "/* XPM */
- static char * arrow_right[] = {
- \"12 18 2 1\",
- \". c %s\",
- \" c %s\",
- \" .\",
- \" ..\",
- \" ...\",
- \" ....\",
- \" .....\",
- \" ......\",
- \" .......\",
- \" ........\",
- \" .........\",
- \" .........\",
- \" ........\",
- \" .......\",
- \" ......\",
- \" .....\",
- \" ....\",
- \" ...\",
- \" ..\",
- \" .\"};"
- (if color2 color2 "None")
- (if color1 color1 "None"))
- 'xpm t :ascent 'center))
- (defvar powerline-minor-modes nil)
- (defun powerline-make-face
- (bg &optional fg)
- (if bg
- (let ((cface (intern (concat "powerline-" bg))))
- (make-face cface)
- (set-face-attribute cface nil
- :foreground (if fg fg "white")
- :background bg
- :box nil)
- cface)
- nil))
- (defun powerline-make-left
- (string color1 &optional color2 localmap)
- (let ((plface (powerline-make-face color1))
- (arrow (and color2 (not (string= color1 color2)))))
- (concat
- (propertize " " 'face plface)
- (if localmap
- (propertize string 'face plface 'mouse-face plface1 'local-map localmap)
- (propertize string 'face plface))
- (if arrow
- (propertize " " 'face plface)
- "")
- (if arrow
- (propertize " " 'display (arrow-right-xpm color1 color2))
- ""))))
- (defun powerline-make-right
- (string color2 &optional color1 localmap)
- (let ((plface (powerline-make-face color2))
- (arrow (and color1 (not (string= color1 color2)))))
- (concat
- (if arrow
- (propertize " " 'display (arrow-left-xpm color1 color2))
- "")
- (if arrow
- (propertize " " 'face plface)
- "")
- (if localmap
- (propertize string 'face plface 'mouse-face plface1 'local-map localmap)
- (propertize string 'face plface))
- (propertize " " 'face plface))))
- (defun powerline-make-fill
- (color)
- ;; justify right by filling with spaces to right fringe, 20 should be calculated
- (let ((plface (powerline-make-face color)))
- (propertize " " 'display '((space :align-to (- right-fringe 20)))
- 'face plface)))
- (defun powerline-make-text
- (string color &optional localmap)
- (let ((plface (powerline-make-face color)))
- (if localmap
- (propertize string 'face plface 'mouse-face plface 'local-map localmap)
- (propertize string 'face plface))))
- (defun powerline-make (side string color1 &optional color2 localmap)
- (cond ((and (eq side 'right) color2) (powerline-make-right string color1 color2 localmap))
- ((and (eq side 'left) color2) (powerline-make-left string color1 color2 localmap))
- ((eq side 'left) (powerline-make-left string color1 color1 localmap))
- ((eq side 'right) (powerline-make-right string color1 color1 localmap))
- (t (powerline-make-text string color1 localmap))))
- (defun powerline-buffer-name
- (side color1 &optional color2)
- (powerline-make side
- "%b"
- color1 color2))
- (defun powerline-buffer-size
- (side color1 &optional color2)
- (powerline-make side
- "%I"
- color1 color2))
- (defun powerline-rmw
- (side color1 &optional color2)
- (powerline-make side
- "%*"
- color1 color2))
- (defun powerline-major-mode
- (side color1 &optional color2)
- (powerline-make side
- "%[%m%]"
- color1 color2))
- (defun powerline-minor-modes
- (side color1 &optional color2)
- (powerline-make side
- (substring (format-mode-line minor-mode-alist) 1)
- color1 color2))
- (defun powerline-percent
- (side color1 &optional color2)
- (powerline-make side
- "%6p"
- color1 color2))
- (defun powerline-row
- (side color1 &optional color2)
- (powerline-make side
- "%4l"
- color1 color2))
- (defun powerline-column
- (side color1 &optional color2)
- (powerline-make side
- "%3c"
- color1 color2))
- (defun powerline-narrow
- (side color1 &optional color2)
- (powerline-make side
- "%n"
- color1 color2))
- (defun powerline-emacsclient
- (side color1 &optional color2)
- (powerline-make side
- mode-line-client
- color1 color2))
- (defun powerline-vc
- (side color1 &optional color2)
- (if (buffer-file-name (current-buffer))
- (powerline-make side
- (vc-mode-line (buffer-file-name (current-buffer)))
- color1 color2)
- ""))
- (setq-default mode-line-format
- (list '(:eval (powerline-rmw 'left nil ))
- '(:eval (powerline-buffer-size 'left nil ))
- '(:eval (powerline-buffer-name 'left nil powerline-color1 ))
- '(:eval (powerline-major-mode 'left powerline-color1 ))
- '(:eval (powerline-minor-modes 'left powerline-color1 powerline-color2 ))
- '(:eval (powerline-narrow 'center powerline-color2 ))
- '(:eval (powerline-vc 'center powerline-color2 ))
- '(:eval (powerline-make-fill powerline-color2 ))
- '(:eval (powerline-percent 'right powerline-color1 powerline-color2 ))
- '(:eval (powerline-row 'right nil powerline-color1))
- '(:eval (powerline-text ":" nil))
- '(:eval (powerline-column 'text nil ))))
- (provide 'powerline)
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement