diff options
Diffstat (limited to '2023/talks/flat.md')
| -rw-r--r-- | 2023/talks/flat.md | 83 |
1 files changed, 83 insertions, 0 deletions
diff --git a/2023/talks/flat.md b/2023/talks/flat.md new file mode 100644 index 00000000..4cf53d5b --- /dev/null +++ b/2023/talks/flat.md @@ -0,0 +1,83 @@ +[[!meta title="A modern Emacs look-and-feel without pain"]] +[[!meta copyright="Copyright © 2023 Pedro A. Aranda"]] +[[!inline pages="internal(2023/info/flat-nav)" raw="yes"]] + +<!-- Initially generated with emacsconf-publish-talk-page and then left alone for manual editing --> +<!-- You can manually edit this file to update the abstract, add links, etc. ---> + + +# A modern Emacs look-and-feel without pain +Pedro A. Aranda (he) + +[[!template id="help" +summary="main talk does not have captions" +tags="help_with_main_captions" +message="""This talk does not have captions yet. +Would you like to help [caption this talk](/captioning)? +You may be able to start with these [autogenerated captions](/2023/captions/emacsconf-2023-flat--a-modern-emacs-lookandfeel-without-pain--pedro-a-aranda--main.vtt)."""]] + +[[!inline pages="internal(2023/info/flat-before)" raw="yes"]] + +In my talk I will show how to enrich themes without having to write them +from scratch, using the flat-button style. This gives you the possibility +of creating a nice Emacs GUI with minimal extra ELISP. + +About the speaker: + +Pedro A. Aranda is a 30+ year Emacs user, who started on an HP mainframe +and soon started using the DJGPP port of emacs on a 386 at home. Currently +lecturing at a university in Madrid, he uses emacs for most of his teaching +activities. + +# Discussion + +## Questions and answers + +- Q: Do you plan to upstream this style into core Emacs? + - A: It's in core emacs +- Q: How difficult is it to modify face styles like this internally? + - A: It's very simple, just set the :style of the :box face + attribute. +- Q: How much work was involved in implementing this style internally + in Emacs core? + - A: About a 20-line patch. +- Q: Could you please share the code for copy and paste? Thx! + - A: + + (defun flat-style (theme &rest args) + (custom-set-faces + `(mode-line + ((t (:inherit mode-line + :box (:line-width ,mode-line-height :style + flat-button)))) t) + `(mode-line-inactive + ((t (:inherit mode-line-inactive + :box (:line-width ,mode-line-height :style + flat-button)))) t))) + (advice-add 'load-theme :after #'flat-style) + + - **Important change 2 years later.** + CHANGES IN EMACS MASTER make the code above CRASH. Emacs, + The new flat-style function uses set-face-attribute: + + (defvar mode-line-height 8 "Size of the box arounf the mode line") + (defun flat-style (theme &rest _) + (set-face-attribute 'mode-line nil + :box (list :line-width mode-line-height :style 'flat-button)) + (set-face-attribute 'mode-line-inactive nil + :box (list :line-width mode-line-height :style 'flat-button))) + + +- Q: Do you teach Emacs to any of your university students? + - A: No teaching, but a lot of introdcuing ;-) + +## Notes + +- It looks great, thanks for upstreaming it in GNU Emacs core as well! + + +[[!inline pages="internal(2023/info/flat-after)" raw="yes"]] + +[[!inline pages="internal(2023/info/flat-nav)" raw="yes"]] + + |
