Add email widget to mowedline
This commit is contained in:
parent
180cd7bd87
commit
0674303198
3 changed files with 117 additions and 57 deletions
|
@ -1,9 +1,13 @@
|
||||||
EMACS = /usr/bin/emacs
|
EMACS = /usr/bin/emacs
|
||||||
|
SCHEME_IMPLEMENTATION = guile
|
||||||
|
|
||||||
define tangle =
|
define tangle =
|
||||||
|
echo $(SCHEME_IMPLEMENTATION)
|
||||||
@echo -e "\e[35mOBT\e[0m" $<
|
@echo -e "\e[35mOBT\e[0m" $<
|
||||||
@$(EMACS) -batch \
|
@$(EMACS) -batch \
|
||||||
-eval "(package-initialize)" \
|
-eval "(package-initialize)" \
|
||||||
-load ob-tangle \
|
-load ob-tangle \
|
||||||
|
-eval "(setq sh-make-vars-local nil)" \
|
||||||
|
-eval "(setq geiser-default-implementation '$(SCHEME_IMPLEMENTATION))" \
|
||||||
-eval "(org-babel-tangle-file \"$<\" \"$(notdir $@)\" \"$(1)\")"
|
-eval "(org-babel-tangle-file \"$<\" \"$(notdir $@)\" \"$(1)\")"
|
||||||
endef
|
endef
|
||||||
|
|
|
@ -1,3 +1,5 @@
|
||||||
|
#+TITLE: Mowedline init
|
||||||
|
|
||||||
Load the =matchable= module so I can use =match-lambda=.
|
Load the =matchable= module so I can use =match-lambda=.
|
||||||
|
|
||||||
#+BEGIN_SRC scheme
|
#+BEGIN_SRC scheme
|
||||||
|
@ -11,6 +13,38 @@ Set the default font and color to something nicer.
|
||||||
(text-widget-color "#ededed")
|
(text-widget-color "#ededed")
|
||||||
#+END_SRC
|
#+END_SRC
|
||||||
|
|
||||||
|
Define a convenience function to check if a formatter's argument is
|
||||||
|
not some text.
|
||||||
|
|
||||||
|
#+BEGIN_SRC scheme
|
||||||
|
(define (not-text? text)
|
||||||
|
(or (null? text) (and (not (pair? text)) (string-null? text))))
|
||||||
|
#+END_SRC
|
||||||
|
|
||||||
|
Define a convenience function that adds spaces around its argument if
|
||||||
|
its argument is text.
|
||||||
|
|
||||||
|
#+BEGIN_SRC scheme
|
||||||
|
(define (text-maybe-pad-both text)
|
||||||
|
(if (not-text? text)
|
||||||
|
text
|
||||||
|
(list " " text " ")))
|
||||||
|
#+END_SRC
|
||||||
|
|
||||||
|
Define a convenience function to add a Font Awesome icon to a widget.
|
||||||
|
|
||||||
|
#+BEGIN_SRC scheme
|
||||||
|
(define (add-fa-icon icon)
|
||||||
|
(lambda (text)
|
||||||
|
(if (not-text? text)
|
||||||
|
text
|
||||||
|
(list (list 'font "FontAwesome-10"
|
||||||
|
(string-append " " icon " "))
|
||||||
|
text))))
|
||||||
|
#+END_SRC
|
||||||
|
|
||||||
|
* Tag list
|
||||||
|
|
||||||
This formatter will parse the herbstluftwm tag status line, which
|
This formatter will parse the herbstluftwm tag status line, which
|
||||||
looks like this:
|
looks like this:
|
||||||
|
|
||||||
|
@ -68,6 +102,26 @@ mowedline text formatter.
|
||||||
(tag-list-display (split-tag-list text)))
|
(tag-list-display (split-tag-list text)))
|
||||||
#+END_SRC
|
#+END_SRC
|
||||||
|
|
||||||
|
Define the widget to be used in the window.
|
||||||
|
|
||||||
|
#+BEGIN_SRC scheme
|
||||||
|
(define taglist-widget
|
||||||
|
(widget:text #:name "taglist" #:format tag-list-formatter))
|
||||||
|
#+END_SRC
|
||||||
|
|
||||||
|
* Email
|
||||||
|
|
||||||
|
Define a widget to show email notifications in.
|
||||||
|
|
||||||
|
#+BEGIN_SRC scheme
|
||||||
|
(define email-widget
|
||||||
|
(widget:text
|
||||||
|
#:name "email"
|
||||||
|
#:format (compose text-maybe-pad-both (add-fa-icon ""))))
|
||||||
|
#+END_SRC
|
||||||
|
|
||||||
|
* The window
|
||||||
|
|
||||||
Create a mowedline window, put it at the bottom.
|
Create a mowedline window, put it at the bottom.
|
||||||
|
|
||||||
#+BEGIN_SRC scheme
|
#+BEGIN_SRC scheme
|
||||||
|
@ -78,7 +132,8 @@ Create a mowedline window, put it at the bottom.
|
||||||
#:margin-right 15
|
#:margin-right 15
|
||||||
#:background 'transparent
|
#:background 'transparent
|
||||||
|
|
||||||
(widget:text #:name "taglist" #:format tag-list-formatter)
|
taglist-widget
|
||||||
(widget:spacer #:flex 1)
|
(widget:spacer #:flex 1)
|
||||||
|
email-widget
|
||||||
(widget:clock))
|
(widget:clock))
|
||||||
#+END_SRC
|
#+END_SRC
|
||||||
|
|
|
@ -2,5 +2,6 @@ include ../dotfiles.mk
|
||||||
|
|
||||||
all: .config/mowedline/init.scm
|
all: .config/mowedline/init.scm
|
||||||
|
|
||||||
|
%.scm: SCHEME_IMPLEMENTATION = chicken
|
||||||
%.scm: %.org
|
%.scm: %.org
|
||||||
$(call tangle,scheme)
|
$(call tangle,scheme)
|
||||||
|
|
Loading…
Reference in a new issue