From c7fdb6ccdf7616904b9cbf16535a124ade4e08a9 Mon Sep 17 00:00:00 2001 From: Tom Willemse Date: Sun, 26 Jan 2014 12:31:24 +0100 Subject: Add svg-mode-line-theme --- .emacs.d/site-lisp/my-smt.el | 89 ++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 89 insertions(+) create mode 100644 .emacs.d/site-lisp/my-smt.el (limited to '.emacs.d/site-lisp') diff --git a/.emacs.d/site-lisp/my-smt.el b/.emacs.d/site-lisp/my-smt.el new file mode 100644 index 0000000..d29fbe0 --- /dev/null +++ b/.emacs.d/site-lisp/my-smt.el @@ -0,0 +1,89 @@ +;;; my-smt.el --- My SVG mode-line theme -*- lexical-binding: t; -*- + +;; Copyright (C) 2014 Tom Willemse + +;; Author: Tom Willemse +;; Keywords: faces + +;; This program is free software; you can redistribute it and/or modify +;; it under the terms of the GNU General Public License as published by +;; the Free Software Foundation, either version 3 of the License, or +;; (at your option) any later version. + +;; This program is distributed in the hope that it will be useful, +;; but WITHOUT ANY WARRANTY; without even the implied warranty of +;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +;; GNU General Public License for more details. + +;; You should have received a copy of the GNU General Public License +;; along with this program. If not, see . + +;;; Commentary: + +;; + +;;; Code: + +(smt/defwidget my-smt-flycheck-errors + :text (lambda (widget) + (ignore widget) + (when flycheck-mode + (let ((counts (flycheck-count-errors + flycheck-current-errors))) + `(tspan " " (tspan :fill ,(if (smt/window-active-p) + "#a85454" + "#969696") ,(car counts)) + "/" (tspan :fill ,(if (smt/window-active-p) + "#a88654" + "#969696") ,(cdr counts))))))) + +(smt/defwidget my-smt-jabber-activity + :text (lambda (widget) + (ignore widget) + (if (and (smt/window-active-p) + (boundp 'jabber-activity-mode-string) + (not (equal jabber-activity-mode-string ""))) + (concat jabber-activity-mode-string " ")))) + +(defun my-smt-yoshi-title-style (widget) + (list :fill (if (smt/window-active-p) + "#a85454" + "#969696"))) + +(smt/defwidget my-smt-buffer-identification + :style 'my-smt-yoshi-title-style + :text (lambda (widget) + (ignore widget) + (concat + (s-trim + (substring-no-properties + (format-mode-line mode-line-buffer-identification))) + (when (and (or buffer-file-name + buffer-offer-save) + (buffer-modified-p)) + "*")))) + +(smt/defrow my-smt-right + :prototype 'default-right + :widgets '(my-smt-jabber-activity major-mode my-smt-flycheck-errors + version-control minor-modes)) + +(smt/defrow my-smt-left + :prototype 'default-left + :widgets '(buffer-info my-smt-buffer-identification which-function)) + +(defun my-smt-major-mode-style (widget) + (ignore widget) + '(:fill "#ccc" :font-family "Fantasque Sans" :filter nil + :font-weight "bold" :font-style "italic")) + +(smt/deftheme my-smt + :prototype 'black-crystal + :local-widgets (list (cons 'major-mode + (smt/make-widget + :prototype 'major-mode + :style 'my-smt-major-mode-style))) + :rows '(my-smt-left default-position my-smt-right)) + +(provide 'my-smt) +;;; my-smt.el ends here -- cgit v1.2.3-54-g00ecf