Skip to content
This repository has been archived by the owner on Jan 1, 2022. It is now read-only.

florhizome/bespoke-themes

 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Custom medium contrast light and dark themes for Emacs (intended for GUI, though basic support in terminal has been added). This started as a fork of Nicolas Rougier’s work on elegant-emacs and nano-emacs, but has evolved with some ideas and colors borrowed from material colors, solarized and nord, as well as color design aided by coolers.co and the classic Werner’s Nomenclature.

One of the aims of the theme is to bring much of what is good about the nano-emacs distro into standard theme formatting, so that it can be set just like any other theme. The theme is notably less conservative/minimal than nano-emacs (or elegant emacs), in the sense that it has a broader color palette and sets fewer configuration conditions on fonts and ui elements, but bespoke-themes otherwise shares many of its themeing ideas with the good work done by Rougier (see also his work on on the design of text editors).

Faces are fairly (though not totally!) comprehensive, including (optional) evil cursor colors. I’m trying to add faces on a regular basis. If there is a face you’d like to see added please open an issue.

NOTE: It is early days for this theme, so there may be fairly significant changes made in various commits. I’m continuing to tweak colors slightly to find the best balance between aesthetics and readability. Suggestions and pull requests are welcome!

Options

  • There is an optional custom mode line, which may be set as a header line (as in nano-emacs), or as the normal footer line, or the theme can make merely cosmetic changes. See the options for the (bespoke-set-mode-line) variable.
  • You can set the height of the mode line with (bespoke-set-modeline-height)
  • You can set italics for keywords or for comments (or both).
  • You can set variable-pitch for headlines using (bespoke-set-variable-pitch).
  • There is a toggle function for toggling between light and dark theme variants: (bespoke/toggle-theme).
  • There is a useful footer line visual alert “bell” inspired by DOOM emacs. To use include (setq bespoke-set-visual-bell t) in your setup of the theme.
  • All options are available via customize-group, and can also be found in the bespoke-themes.el file.

Settings

Here’s one possible way of setting up the theme. Note that since this theme is currently not on Melpa the use-package setup below utilizes straight to install packages, but you can of course install it from this repo however you wish.

(use-package bespoke-themes
  :straight (:host github :repo "mclear-tools/bespoke-themes" :branch "master")
  :config
  ;; Set header line
  (setq bespoke-set-mode-line 'header)
    ;; Set mode line height
  (setq bespoke-set-modeline-height 3)
  ;; Set evil cursor colors
  (setq bespoke-set-evil-cursors t)
  ;; Use mode line visual bell
  (setq bespoke-set-visual-bell t)
  ;; Set use of italics
  (setq bespoke-set-italic-comments t
        bespoke-set-italic-keywords t)
  ;; Set variable pitch
  (setq bespoke-set-variable-pitch t)
    ;; Set initial theme variant
  (setq bespoke-set-theme 'dark)
  ;; Load theme
  (load-theme 'bespoke t))

To get windows to divide in a more attractive manner use the following setting:

;; Vertical window divider
(use-package frame
  :straight (:type built-in)
  :custom
  (window-divider-default-right-width 12)
  (window-divider-default-bottom-width 1)
  (window-divider-default-places 'right-only)
  (window-divider-mode t))
;; Make sure new frames use window-divider
(add-hook 'before-make-frame-hook 'window-divider-mode)

For the padding in frame used in the screenshots try the following settings:

;; Make a clean & minimalist frame
(use-package frame
  :straight (:type built-in)
  :config
  (setq-default default-frame-alist
                (append (list
                '(font . "SF Mono:style=medium:size=15") ;; NOTE: substitute whatever font you prefer here
                '(internal-border-width . 20)
                '(left-fringe    . 0)
                '(right-fringe   . 0)
                '(tool-bar-lines . 0)
                '(menu-bar-lines . 0)
                '(vertical-scroll-bars . nil))))
  (setq-default window-resize-pixelwise t)
  (setq-default frame-resize-pixelwise t)

To get a splash screen see Rougier’s splash.el. You can see my customization of it here.

For dimming non-active windows try dimmer.el

;; Dim inactive windows
(use-package dimmer
  :straight (:host github :repo "gonewest818/dimmer.el")
  :hook (after-init . dimmer-mode)
  :config
  (setq dimmer-fraction 0.5)
  (setq dimmer-adjustment-mode :foreground)
  (setq dimmer-use-colorspace :rgb)
  (setq dimmer-watch-frame-focus-events nil)
  (dimmer-configure-which-key)
  (dimmer-configure-magit)
  (dimmer-configure-posframe))

Screenshots:

Splash

Colors

Code

Magit

Agenda

Org

Dired

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • Emacs Lisp 100.0%