139 lines
5.3 KiB
EmacsLisp
139 lines
5.3 KiB
EmacsLisp
;;; zd-fonts.el --- fonts and shit
|
|
;;; Commentary:
|
|
;; install FiraCode Nerd
|
|
;;; Code:
|
|
(use-package ligature
|
|
:config
|
|
;; Enable the "www" ligature in every possible major mode
|
|
(ligature-set-ligatures 't '("www"))
|
|
;; Enable traditional ligature support in eww-mode, if the
|
|
;; `variable-pitch' face supports it
|
|
(ligature-set-ligatures 'eww-mode '("ff" "fi" "ffi"))
|
|
;; Enable all Cascadia and Fira Code ligatures in programming modes
|
|
(ligature-set-ligatures 'prog-mode
|
|
'(;; == === ==== => =| =>>=>=|=>==>> ==< =/=//=// =~
|
|
;; =:= =!=
|
|
("=" (rx (+ (or ">" "<" "|" "/" "~" ":" "!" "="))))
|
|
;; ;; ;;;
|
|
(";" (rx (+ ";")))
|
|
;; && &&&
|
|
("&" (rx (+ "&")))
|
|
;; !! !!! !. !: !!. != !== !~
|
|
("!" (rx (+ (or "=" "!" "\." ":" "~"))))
|
|
;; ?? ??? ?: ?= ?.
|
|
("?" (rx (or ":" "=" "\." (+ "?"))))
|
|
;; %% %%%
|
|
("%" (rx (+ "%")))
|
|
;; |> ||> |||> ||||> |] |} || ||| |-> ||-||
|
|
;; |->>-||-<<-| |- |== ||=||
|
|
;; |==>>==<<==<=>==//==/=!==:===>
|
|
("|" (rx (+ (or ">" "<" "|" "/" ":" "!" "}" "\]"
|
|
"-" "=" ))))
|
|
;; \\ \\\ \/
|
|
("\\" (rx (or "/" (+ "\\"))))
|
|
;; ++ +++ ++++ +>
|
|
("+" (rx (or ">" (+ "+"))))
|
|
;; :: ::: :::: :> :< := ::=
|
|
(":" (rx (or ">" "<" "=" ":=" (+ ":"))))
|
|
;; /\ /* /> /===:===!=//===>>==>==/
|
|
("/" (rx (+ (or ">" "<" "|" "\\" "\*" ":" "!"
|
|
"="))))
|
|
;; .. ... .... .= .- .? ..= ..<
|
|
("\." (rx (or "=" "-" "\?" "\.=" "\.<" (+ "\."))))
|
|
;; -- --- ---- -~ -> ->> -| -|->-->>->--<<-|
|
|
("-" (rx (+ (or ">" "<" "|" "~" "-"))))
|
|
;; *> */ *) ** *** ****
|
|
("*" (rx (or ">" "/" ")" (+ "*"))))
|
|
;; <> <!-- <|> <: <~ <~> <~~ <+ <* <$ </ <+> <*>
|
|
;; <$> </> <| <|| <||| <|||| <- <-| <-<<-|-> <->>
|
|
;; <<-> <= <=> <<==<<==>=|=>==/==//=!==:=>
|
|
;; << <<< <<<<
|
|
("<" (rx (+ (or "\+" "\*" "\$" "<" ">" ":" "~" "!"
|
|
"-" "/" "|" "="))))
|
|
;; >: >- >>- >--|-> >>-|-> >= >== >>== >=|=:=>>
|
|
;; >> >>> >>>>
|
|
(">" (rx (+ (or ">" "<" "|" "/" ":" "=" "-"))))
|
|
;; #: #= #! #( #? #[ #{ #_ #_( ## ### #####
|
|
("#" (rx (or ":" "=" "!" "(" "\?" "\[" "{" "_(" "_"
|
|
(+ "#"))))
|
|
;; ~~ ~~~ ~= ~- ~@ ~> ~~>
|
|
("~" (rx (or ">" "=" "-" "@" "~>" (+ "~"))))
|
|
;; __ ___ ____ _|_ __|____|_
|
|
("_" (rx (+ (or "_" "|"))))
|
|
;; Fira code: 0xFF 0x12
|
|
("0" (rx (and "x" (+ (in "A-F" "a-f" "0-9")))))
|
|
;; Fira code:
|
|
"Fl" "Tl" "fi" "fj" "fl" "ft"
|
|
;; The few not covered by the regexps.
|
|
"{|" "[|" "]#" "(*" "}#" "$>" "^="))
|
|
(ligature-set-ligatures 'ansi-term-mode
|
|
'(;; == === ==== => =| =>>=>=|=>==>> ==< =/=//=// =~
|
|
;; =:= =!=
|
|
("=" (rx (+ (or ">" "<" "|" "/" "~" ":" "!" "="))))
|
|
;; ;; ;;;
|
|
(";" (rx (+ ";")))
|
|
;; && &&&
|
|
("&" (rx (+ "&")))
|
|
;; !! !!! !. !: !!. != !== !~
|
|
("!" (rx (+ (or "=" "!" "\." ":" "~"))))
|
|
;; ?? ??? ?: ?= ?.
|
|
("?" (rx (or ":" "=" "\." (+ "?"))))
|
|
;; %% %%%
|
|
("%" (rx (+ "%")))
|
|
;; |> ||> |||> ||||> |] |} || ||| |-> ||-||
|
|
;; |->>-||-<<-| |- |== ||=||
|
|
;; |==>>==<<==<=>==//==/=!==:===>
|
|
("|" (rx (+ (or ">" "<" "|" "/" ":" "!" "}" "\]"
|
|
"-" "=" ))))
|
|
;; \\ \\\ \/
|
|
("\\" (rx (or "/" (+ "\\"))))
|
|
;; ++ +++ ++++ +>
|
|
("+" (rx (or ">" (+ "+"))))
|
|
;; :: ::: :::: :> :< := :// ::=
|
|
(":" (rx (or ">" "<" "=" "//" ":=" (+ ":"))))
|
|
;; /\ /* /> /===:===!=//===>>==>==/
|
|
("/" (rx (+ (or ">" "<" "|" "\\" "\*" ":" "!"
|
|
"="))))
|
|
;; .. ... .... .= .- .? ..= ..<
|
|
("\." (rx (or "=" "-" "\?" "\.=" "\.<" (+ "\."))))
|
|
;; -- --- ---- -~ -> ->> -| -|->-->>->--<<-|
|
|
("-" (rx (+ (or ">" "<" "|" "~" "-"))))
|
|
;; *> */ *) ** *** ****
|
|
("*" (rx (or ">" "/" ")" (+ "*"))))
|
|
;; <> <!-- <|> <: <~ <~> <~~ <+ <* <$ </ <+> <*>
|
|
;; <$> </> <| <|| <||| <|||| <- <-| <-<<-|-> <->>
|
|
;; <<-> <= <=> <<==<<==>=|=>==/==//=!==:=>
|
|
;; << <<< <<<<
|
|
("<" (rx (+ (or "\+" "\*" "\$" "<" ">" ":" "~" "!"
|
|
"-" "/" "|" "="))))
|
|
;; >: >- >>- >--|-> >>-|-> >= >== >>== >=|=:=>>
|
|
;; >> >>> >>>>
|
|
(">" (rx (+ (or ">" "<" "|" "/" ":" "=" "-"))))
|
|
;; #: #= #! #( #? #[ #{ #_ #_( ## ### #####
|
|
("#" (rx (or ":" "=" "!" "(" "\?" "\[" "{" "_(" "_"
|
|
(+ "#"))))
|
|
;; ~~ ~~~ ~= ~- ~@ ~> ~~>
|
|
("~" (rx (or ">" "=" "-" "@" "~>" (+ "~"))))
|
|
;; __ ___ ____ _|_ __|____|_
|
|
("_" (rx (+ (or "_" "|"))))
|
|
;; Fira code: 0xFF 0x12
|
|
("0" (rx (and "x" (+ (in "A-F" "a-f" "0-9")))))
|
|
;; Fira code:
|
|
"Fl" "Tl" "fi" "fj" "fl" "ft"
|
|
;; The few not covered by the regexps.
|
|
"{|" "[|" "]#" "(*" "}#" "$>" "^="))
|
|
;; Enables ligature checks globally in all buffers. You can also do it
|
|
;; per mode with `ligature-mode'.
|
|
(global-ligature-mode t))
|
|
|
|
(add-to-list 'default-frame-alist '(font . "Fira Code Nerd Font Mono"))
|
|
(set-face-attribute 'default t :font "Fira Code Nerd Font Mono")
|
|
(set-face-attribute 'default nil :height 120)
|
|
|
|
(use-package all-the-icons
|
|
:init
|
|
(unless (member "all-the-icons" (font-family-list))
|
|
(all-the-icons-install-fonts t)))
|
|
|
|
(provide 'zd-fonts)
|
|
;;; zd-fonts.el ends here
|