Browse Source

merge

canon
Hazel Levine 1 year ago
parent
commit
54fa9901a0
  1. 60
      config/doom/config.org
  2. 9
      config/doom/init.el
  3. 19
      config/doom/modules/ui/tree-sitter/config.el
  4. 9
      config/doom/modules/ui/tree-sitter/packages.el
  5. 562
      config/doom/themes/doom-earl-grey-theme.el
  6. 129
      flake.lock
  7. 34
      flake.nix
  8. 19
      machines/hyacinth/default.nix
  9. 2
      modules/agenix.nix
  10. 8
      modules/desktop/default.nix
  11. 2
      modules/desktop/gnome.nix
  12. 33
      modules/desktop/settings/fonts.nix
  13. 2
      modules/services/bitwarden.nix
  14. 2
      modules/services/mpd.nix
  15. 2
      modules/services/perihelion.nix
  16. 6
      modules/shell/git.nix
  17. 3
      modules/shell/zsh.nix

60
config/doom/config.org

@ -1,6 +1,6 @@
#+TITLE: Hazel's DOOM Emacs configuration
#+AUTHOR: Hazel Levine
#+EMAIL: rose.hazel@protonmail.ch
#+EMAIL: hazel@knightsofthelambdacalcul.us
#+STARTUP: nofold
Whee, literate programming, whoo. I get to type words here. These are words on a
@ -44,9 +44,8 @@ and options I want:
#+END_SRC
As my university education dragged on and I began to do things with formal logic,
I needed a font with good support for unicode characters. Right now that's [[https://github.com/cormullion/juliamono][Julia
Mono]]. I use the [[https://www.ibm.com/plex/][IBM Plex]] fonts for variable pitch. I used to use IBM Plex Mono,
but it doesn't format some things properly...
I needed a font with good support for unicode characters. I use Source Sans Pro,
but with a bunch of fallbacks.
I've also disabled bold fonts because I cannot get them to render properly in
Emacs.
@ -73,16 +72,25 @@ Emacs.
(setq doom-font hzl/monospace-font)
(setq doom-variable-pitch-font hzl/variable-pitch-font)
(setq doom-unicode-font hzl/monospace-font)
(setq doom-themes-enable-bold nil)
#+END_SRC
Set up Unicode fallback fonts, for the weird characters that I can't pick up:
#+BEGIN_SRC emacs-lisp :tangle ~/.config/doom/packages.el
(package! unicode-fonts)
#+END_SRC
#+BEGIN_SRC emacs-lisp
(use-package! unicode-fonts
:config (unicode-fonts-setup))
#+END_SRC
** Colorscheme
I've been using [[https://github.com/morhetz/gruvbox][Gruvbox]] Light recently. After years and years of dark themes, I
came to the realization that:
I use light themes. After years and years of dark themes, I came to the realization that:
+ Anti-aliasing algorithms were better with black text on a white background
+ I can read light themes without glasses
+ "Burning your eyes" is not a thing that actually happens
Right now I'm using the Leuven theme.
#+BEGIN_SRC emacs-lisp
(setq doom-theme 'leuven)
(setq doom-theme 'doom-earl-grey)
#+END_SRC
** Everything else
Enable line numbers, because those are nice, and make 'em relative:
@ -112,8 +120,13 @@ Copy Tecosaur's splash screen because I'm lazy:
:template non-default template file
:file file to use instead of template")
;; (defvar fancy-splash-template-colours
;; '(("$colour1" . "#335ea8"))
;; "list of colour-replacement alists of the form (\"$placeholder\" . 'theme-colour) which applied the template")
(defvar fancy-splash-template-colours
'(("$colour1" . "#335ea8"))
'(("$colour1" . keywords) ("$colour2" . type) ("$colour3" . base5) ("$colour4" . base8))
"list of colour-replacement alists of the form (\"$placeholder\" . 'theme-colour) which applied the template")
(unless (file-exists-p (expand-file-name "theme-splashes" doom-cache-dir))
@ -141,7 +154,7 @@ Copy Tecosaur's splash screen because I'm lazy:
(dolist (substitution fancy-splash-template-colours)
(goto-char (point-min))
(while (re-search-forward (car substitution) nil t)
(replace-match (cdr substitution) nil nil)))
(replace-match (doom-color (cdr substitution)) nil nil)))
(write-region nil nil
(fancy-splash-filename (symbol-name doom-theme) height) nil nil)))
@ -476,6 +489,15 @@ place, it's /still/ miles ahead of RLS.
(after! rustic
(setq rustic-lsp-server 'rust-analyzer))
#+END_SRC
** Sage
The only calculator useful enough for the math classes I'm taking.
#+BEGIN_SRC emacs-lisp :tangle ~/.config/doom/packages.el
(package! sage-shell-mode)
#+END_SRC
#+BEGIN_SRC emacs-lisp
(use-package! sage-shell-mode
:config (sage-shell:define-alias))
#+END_SRC
** Scribble
The format for Racket documentation. Grab it from GitHub:
#+BEGIN_SRC emacs-lisp :tangle ~/.config/doom/packages.el
@ -495,13 +517,13 @@ Then enable it. It takes care of the file extensions itself.
(defvar hzl/modeline-green "#c0e8c3")
(defvar hzl/modeline-red "#ffc8c8")
(custom-set-faces!
`(doom-modeline-info :foreground ,hzl/modeline-green)
`(doom-modeline-debug :foreground ,hzl/modeline-green)
`(doom-modeline-urgent :foreground ,hzl/modeline-red)
`(doom-modeline-buffer-minor-mode :foreground ,hzl/modeline-green)
`(doom-modeline-evil-motion-state :foreground ,hzl/modeline-green)
`(doom-modeline-evil-normal-state :foreground ,hzl/modeline-green)
`(doom-modeline-buffer-modified :foreground ,hzl/modeline-red)
`(doom-modeline-project-dir :foreground ,hzl/modeline-green))
;; (custom-set-faces!
;; `(doom-modeline-info :foreground ,hzl/modeline-green)
;; `(doom-modeline-debug :foreground ,hzl/modeline-green)
;; `(doom-modeline-urgent :foreground ,hzl/modeline-red)
;; `(doom-modeline-buffer-minor-mode :foreground ,hzl/modeline-green)
;; `(doom-modeline-evil-motion-state :foreground ,hzl/modeline-green)
;; `(doom-modeline-evil-normal-state :foreground ,hzl/modeline-green)
;; `(doom-modeline-buffer-modified :foreground ,hzl/modeline-red)
;; `(doom-modeline-project-dir :foreground ,hzl/modeline-green))
#+END_SRC

9
config/doom/init.el

@ -19,6 +19,7 @@
ophints
(popup +all +defaults)
treemacs
tree-sitter
vc-gutter
vi-tilde-fringe
window-select
@ -28,9 +29,7 @@
:editor
(evil +everywhere)
file-templates
fold
lispy
multiple-cursors
rotate-text
snippets
@ -63,7 +62,6 @@
:lang
cc
; common-lisp
data
emacs-lisp
(haskell +lsp)
@ -73,7 +71,6 @@
latex
markdown
nix
; ocaml
(org +dragndrop
+hugo
+pandoc
@ -83,10 +80,6 @@
(racket +xp)
(rust +lsp)
(scala +lsp)
; yaml
:email
(mu4e +gmail)
:app
irc

19
config/doom/modules/ui/tree-sitter/config.el

@ -0,0 +1,19 @@
;;; ui/tree-sitter/config.el -*- lexical-binding: t; -*-
(use-package! tree-sitter
:when (bound-and-true-p module-file-suffix)
:hook (prog-mode . tree-sitter-mode)
:hook (tree-sitter-after-on . tree-sitter-hl-mode)
:config
(require 'tree-sitter-langs)
(defadvice! doom-tree-sitter-fail-gracefully-a (orig-fn &rest args)
"Don't break with errors when current major mode lacks tree-sitter support."
:around #'tree-sitter-mode
(condition-case e
(apply orig-fn args)
(error
(unless (string-match-p (concat "^Cannot find shared library\\|"
"^No language registered\\|"
"cannot open shared object file")
(error-message-string e))
(signal (car e) (cadr e)))))))

9
config/doom/modules/ui/tree-sitter/packages.el

@ -0,0 +1,9 @@
;; -*- no-byte-compile: t; -*-
;;; ui/tree-sitter/packages.el
(package! tree-sitter
:ignore (null (bound-and-true-p module-file-suffix))
:pin "7f5d0938002092ec08830a73f64961021303e1e9")
(package! tree-sitter-langs
:ignore (null (bound-and-true-p module-file-suffix))
:pin "5d362ce98dcf656d7a55fcad6ae21c0a2caca861")

562
config/doom/themes/doom-earl-grey-theme.el

@ -0,0 +1,562 @@
;;; doom-earl-grey-theme.el --- a gentle color scheme, for code -*- no-byte-compile: t; -*-
(require 'doom-themes)
;;
(defgroup doom-earl-grey-theme nil
"Options for doom-themes"
:group 'doom-themes)
(defcustom doom-earl-grey-brighter-modeline nil
"If non-nil, more vivid colors will be used to style the mode-line."
:group 'doom-earl-grey-theme
:type 'boolean)
(defcustom doom-earl-grey-brighter-comments nil
"If non-nil, comments will be highlighted in more vivid colors."
:group 'doom-earl-grey-theme
:type 'boolean)
(defcustom doom-earl-grey-comment-bg doom-earl-grey-brighter-comments
"If non-nil, comments will have a subtle, darker background. Enhancing their
legibility."
:group 'doom-earl-grey-theme
:type 'boolean)
(defcustom doom-earl-grey-padded-modeline doom-themes-padded-modeline
"If non-nil, adds a 4px padding to the mode-line. Can be an integer to
determine the exact padding."
:group 'doom-earl-grey-theme
:type '(choice integer boolean))
;;
(def-doom-theme doom-earl-grey
"A gentle color scheme for code."
;; name default 256 16
(
;; Earl Grey Colors
(eg-fg '("#605A52" "#626262" ""))
(eg-fg2 '("#4C4741" "#4e4e4e" ""))
(eg-bg '("#FCFBF9" "#FFFFFF" "white"))
(eg-bg2 '("#F7F3EE" "#FFFFFF" "white"))
(eg-purple '("#83577D" "#875FAF" "magenta"))
(eg-blue '("#556995" "#5F87AF" "brightblue"))
(eg-teal '("#477A7B" "#87AFAF" "brightgreen"))
(eg-orange '("#886A44" "#875F00" "brightred"))
(eg-green '("#747B4D" "#5F875F" "green"))
(eg-red '("#8F5652" "#870000" "red"))
(eg-grey1 '("#ECEBE8" "#E4E4E4" "white"))
(eg-grey2 '("#DDDBD8" "#DADADA" "brightblack"))
(eg-grey3 '("#CDCBC7" "#C6C6C6" "brightblack"))
(eg-grey4 '("#BEBBB6" "#B2B2B2" "brightblack"))
(eg-grey5 '("#AEABA6" "#A8A8A8" "brightblack"))
(eg-grey6 '("#9E9A95" "#949494" "brightblack"))
(eg-grey7 '("#8F8A84" "#8A8A8A" "brightblack"))
(eg-grey8 '("#7F7A73" "#767676" "brightblack"))
(eg-grey9 '("#706A63" "#6C6C6C" "brightblack"))
(eg-purple1 '("#F0EBED" "#D7D7FF" "brightmagenta"))
(eg-purple2 '("#E4DAE0" "#D7D7FF" "brightmagenta"))
(eg-purple3 '("#D8CAD4" "#D7D7FF" "brightmagenta"))
(eg-purple4 '("#CCB9C7" "#D7D7FF" "brightmagenta"))
(eg-purple5 '("#C0A9BB" "#AF87FF" "brightmagenta"))
(eg-purple6 '("#B399AF" "#AF87FF" "brightmagenta"))
(eg-purple7 '("#A788A2" "#AF87FF" "brightmagenta"))
(eg-purple8 '("#9B7896" "#AF87FF" "magenta"))
(eg-purple9 '("#8F6789" "#AF87FF" "magenta"))
(eg-blue1 '("#EBECEF" "#87D7FF" "brightblue"))
(eg-blue2 '("#DBDEE5" "#87D7FF" "brightblue"))
(eg-blue3 '("#CACFDB" "#87D7FF" "brightblue"))
(eg-blue4 '("#B9C1D1" "#87D7FF" "brightblue"))
(eg-blue5 '("#A9B2C7" "#87D7FF" "brightblue"))
(eg-blue6 '("#98A3BD" "#87AFFF" "brightblue"))
(eg-blue7 '("#8795B3" "#87AFFF" "brightblue"))
(eg-blue8 '("#7686A9" "#87AFFF" "blue"))
(eg-blue9 '("#66789F" "#87AFFF" "blue"))
(eg-teal1 '("#EAEEEC" "#5FD7D7" "brightgreen"))
(eg-teal2 '("#D8E1E0" "#5FD7D7" "brightgreen"))
(eg-teal3 '("#C6D4D3" "#5FD7D7" "brightgreen"))
(eg-teal4 '("#B4C7C7" "#5FD7D7" "brightgreen"))
(eg-teal5 '("#A2BBBA" "#5FD7D7" "brightgreen"))
(eg-teal6 '("#8FAEAD" "#00AFAF" "brightgreen"))
(eg-teal7 '("#7DA1A1" "#00AFAF" "brightgreen"))
(eg-teal8 '("#6B9494" "#00AFAF" "brightgreen"))
(eg-teal9 '("#598788" "#00AFAF" "brightgreen"))
(eg-orange1 '("#F0EDE7" "#D7AF5F" "brightred"))
(eg-orange2 '("#E5DED5" "#D7AF5F" "brightred"))
(eg-orange3 '("#D9D0C3" "#D7AF5F" "brightred"))
(eg-orange4 '("#CEC1B1" "#D7AF5F" "brightred"))
(eg-orange5 '("#C2B39F" "#D7AF5F" "brightred"))
(eg-orange6 '("#B6A48C" "#D7AF5F" "brightred"))
(eg-orange7 '("#AB967A" "#D7AF5F" "brightred"))
(eg-orange8 '("#9F8768" "#D7AF5F" "brightred"))
(eg-orange9 '("#947956" "#D7AF5F" "brightred"))
(eg-green1 '("#EEEEE8" "#5FAF5F" "green"))
(eg-green2 '("#E1E1D7" "#5FAF5F" "green"))
(eg-green3 '("#D3D5C5" "#5FAF5F" "green"))
(eg-green4 '("#C6C8B4" "#5FAF5F" "green"))
(eg-green5 '("#B8BBA3" "#5FAF5F" "green"))
(eg-green6 '("#AAAE92" "#5F875F" "green"))
(eg-green7 '("#9DA181" "#5F875F" "green"))
(eg-green8 '("#8F956F" "#5F875F" "green"))
(eg-green9 '("#82885E" "#5F875F" "green"))
(eg-red1 '("#F1EBE8" "#d78787" "brightred"))
(eg-red2 '("#E6DAD8" "#d78787" "brightred"))
(eg-red3 '("#DBCAC7" "#d78787" "brightred"))
(eg-red4 '("#D0B9B6" "#d78787" "brightred"))
(eg-red5 '("#C6A9A6" "#d78787" "brightred"))
(eg-red6 '("#BB9895" "#d75f5f" "brightred"))
(eg-red7 '("#B08884" "#d75f5f" "brightred"))
(eg-red8 '("#A57773" "#d75f5f" "red"))
(eg-red9 '("#9A6763" "#d75f5f" "red"))
(bg eg-bg)
(bg-alt eg-bg2)
(base0 (doom-lighten bg 0.1))
(base1 eg-grey2)
(base2 eg-grey3)
(base3 eg-grey4)
(base4 eg-grey5)
(base5 eg-grey6)
(base6 eg-grey7)
(base7 eg-grey8)
(base8 eg-fg2)
(fg eg-fg)
(fg-alt eg-grey8)
(grey base5)
(red eg-red)
(orange eg-orange)
(green eg-green)
(teal eg-teal)
(yellow eg-orange)
(blue eg-blue)
(dark-blue eg-blue)
(magenta eg-purple)
(violet eg-purple)
(cyan eg-teal)
(dark-cyan eg-teal)
;; face categories -- required for all themes
(highlight eg-blue8)
(vertical-bar base2)
(selection eg-purple4)
(builtin fg)
(comments (if doom-earl-grey-brighter-comments
eg-grey7
eg-grey6))
(doc-comments comments)
(constants teal)
(functions fg)
(keywords magenta)
(methods fg)
(operators fg)
(type fg)
(strings green)
(variables blue)
(numbers teal)
(region eg-purple1)
(error red)
(warning yellow)
(success green)
(vc-modified orange)
(vc-added green)
(vc-deleted red)
;; custom categories
(hidden `(,(car bg) "black" "black"))
(-modeline-bright doom-earl-grey-brighter-modeline)
(-modeline-pad
(when doom-earl-grey-padded-modeline
(if (integerp doom-earl-grey-padded-modeline)
doom-earl-grey-padded-modeline 4)))
(modeline-fg nil)
(modeline-fg-alt eg-grey6)
(modeline-bg
(if -modeline-bright
(doom-darken eg-grey2 0.1)
eg-grey2))
(modeline-bg-l
(if -modeline-bright
base2
(doom-blend base1 fg 0.96)))
(modeline-bg-inactive eg-grey1)
(modeline-bg-inactive-l `(,(doom-darken (car bg-alt) 0.05) ,@(cdr base1))))
;; --- extra faces ------------------------
(
;; Modeline
(doom-modeline-buffer-path :foreground blue)
(doom-modeline-buffer-major-mode :inherit 'doom-modeline-buffer-path
:bold 'bold)
(doom-modeline-info :foreground green)
(doom-modeline-project-dir :foreground magenta)
(doom-modeline-evil-insert-state :foreground teal)
(doom-modeline-bar :background (if -modeline-bright modeline-bg highlight))
(mode-line
:background modeline-bg :foreground modeline-fg
:box (if -modeline-pad `(:line-width ,-modeline-pad :color ,modeline-bg)))
(mode-line-inactive
:background modeline-bg-inactive :foreground modeline-fg-alt
:box (if -modeline-pad `(:line-width ,-modeline-pad :color ,modeline-bg-inactive)))
(mode-line-emphasis
:foreground (if -modeline-bright base8 highlight))
(doom-modeline-project-root-dir :foreground base6)
;; solaire
(solaire-mode-line-face
:inherit 'mode-line
:background modeline-bg-l
:box (if -modeline-pad `(:line-width ,-modeline-pad :color ,modeline-bg-l)))
(solaire-mode-line-inactive-face
:inherit 'mode-line-inactive
:background modeline-bg-inactive-l
:box (if -modeline-pad `(:line-width ,-modeline-pad :color ,modeline-bg-inactive-l)))
;; Font-Lock
(font-lock-comment-face
:foreground comments
:background (if doom-earl-grey-comment-bg base1)
:inherit 'italic)
(font-lock-doc-face
:inherit 'font-lock-comment-face
:foreground doc-comments)
(font-lock-comment-delimiter-face :inherit font-lock-comment-face)
(font-lock-builtin-face :foreground fg
:inherit 'italic :extend t)
(font-lock-type-face :foreground fg
:inherit 'italic :extend t)
(font-lock-variable-name-face :foreground blue)
(font-lock-warning-face :foreground red)
(font-lock-negation-char-face :foreground orange
:inherit 'default
:extend t)
(font-lock-preprocessor-face :foreground orange
:inherit 'default
:extend t)
(font-lock-preprocessor-char-face :inherit 'default)
(font-lock-regexp-grouping-backslash :inherit 'default)
(font-lock-regexp-grouping-construct :inherit 'default)
(font-lock-constant-face :foreground teal)
(font-lock-function-name-face :foreground fg
:inherit 'italic :extend t)
;; makefile-*-mode
(makefile-targets :foreground magenta)
(makefile-space :background eg-red2)
(makefile-makepp-perl :background eg-blue1)
;; which-key
(which-key-key-face :foreground eg-purple8)
(which-key-group-description-face :foreground eg-blue8)
(which-key-command-description-face :foreground fg)
(which-key-local-map-description-face :foreground orange)
(which-key-separator-face :background bg-alt
:foreground comments)
;; highlight-numbers-mode
(highlight-numbers-number :foreground teal)
;; web-mode
(web-mode-doctype-face :foreground comments)
(web-mode-html-tag-face :foreground magenta)
(web-mode-html-attr-name-face :foreground blue)
(web-mode-html-attr-value-face :inherit 'font-lock-string-face)
(web-mode-html-entity-face :foreground orange
:inherit 'italic)
(web-mode-block-control-face :foreground magenta)
(web-mode-html-tag-bracket-face :foreground fg-alt)
(web-mode-symbol-face :foreground blue)
(web-mode-string-face :inherit 'font-lock-string-face)
(web-mode-current-element-highlight-face :foreground bg)
;; xml
(nxml-element-local-name :foreground magenta)
;; ocaml
(tuareg-font-lock-governing-face :foreground magenta)
(tuareg-font-lock-operator-face :foreground orange)
;; haskell
(haskell-constructor-face :foreground teal)
(haskell-operator-face :foreground fg)
((haskell-type-face &override)
:foreground blue
:inherit 'font-lock-type-face
:extend t)
((haskell-definition-face &override)
:foreground magenta
:inherit 'font-lock-function-name-face
:extend t)
;; Highlight
(lazy-highlight :foreground eg-fg2
:background eg-blue2 :inherit 'default :extend t)
;; php
(php-$this :foreground orange)
;; rjsx-mode
(rjsx-tag :foreground magenta)
(rjsx-text :inherit 'default)
(rjsx-tag-bracket-face :foreground fg-alt)
(rjsx-attr :foreground blue)
;; highlight-quoted-mode
(highlight-quoted-symbol :foreground blue)
(highlight-quoted-quote :foreground teal)
;; rainbow-delimiters
(rainbow-delimiters-depth-1-face :foreground eg-blue6)
(rainbow-delimiters-depth-2-face :foreground eg-purple6)
(rainbow-delimiters-depth-3-face :foreground eg-green6)
(rainbow-delimiters-depth-4-face :foreground eg-orange6)
(rainbow-delimiters-depth-5-face :foreground eg-teal6)
(rainbow-delimiters-depth-6-face :foreground eg-blue6)
(rainbow-delimiters-depth-7-face :foreground eg-purple6)
(rainbow-delimiters-unmatched-face :foreground red
:weight 'bold
:inverse-video t)
(rainbow-delimiters-mismatched-face
:inherit 'rainbow-delimiters-unmatched-face)
;; swiper
(swiper-line-face :background eg-purple2
:foreground fg
:weight 'semi-bold)
(swiper-match-face-1 :inherit 'unspecified
:background eg-purple1
:foreground fg)
(swiper-background-match-face-1 :inherit 'unspecified
:background eg-bg2
:foreground fg)
(swiper-match-face-2 :inherit 'unspecified
:background eg-purple1
:foreground eg-purple)
(swiper-background-match-face-2 :inherit 'unspecified
:background eg-purple1
:foreground eg-purple
:weight 'semi-bold)
(swiper-match-face-3 :inherit 'unspecified
:background eg-blue1
:foreground blue)
(swiper-background-match-face-3 :inherit 'unspecified
:background eg-blue1
:foreground blue
:weight 'semi-bold)
(swiper-match-face-4 :inherit 'unspecified
:background eg-teal1
:foreground teal)
(swiper-background-match-face-4 :inherit 'unspecified
:background eg-teal1
:foreground teal
:weight 'semi-bold)
;; tooltip
(tooltip :background bg-alt :foreground fg)
;; company
(company-tooltip :inherit 'tooltip)
(company-tooltip-annotation :foreground magenta)
(company-tooltip-annotation-selection :foreground magenta )
(company-tooltip-common :foreground magenta
:distant-foreground bg-alt
:weight 'bold)
(company-tooltip-search :background magenta
:foreground bg
:distant-foreground fg
:weight 'bold)
(company-tooltip-search-selection :background eg-purple1)
(company-tooltip-selection :background eg-purple1
:weight 'bold)
(company-tooltip-mouse :background eg-purple8
:foreground bg
:distant-foreground fg)
(company-tooltip-annotation :foreground magenta
:distant-foreground bg)
(company-scrollbar-bg :inherit 'tooltip)
(company-scrollbar-fg :background highlight)
(company-preview :foreground comments)
(company-preview-common :background base3
:foreground highlight)
(company-preview-search :inherit 'company-tooltip-search)
(company-template-field :inherit 'match)
(company-echo-common :background eg-red2
:foreground fg)
;; company-box
(company-box-candidate :foreground fg)
((region &override)
:foreground fg)
((line-number &override) :foreground base4)
((line-number-current-line &override) :foreground base6)
((paren-face-match &override) :foreground red :background eg-grey1 :weight 'ultra-bold)
((paren-face-mismatch &override) :foreground base3 :background red :weight 'ultra-bold)
((vimish-fold-overlay &override) :inherit 'font-lock-comment-face :background base3 :weight 'light)
((vimish-fold-fringe &override) :foreground teal)
;; parens
((show-paren-match &override)
:background eg-grey1)
;; elscreen
(elscreen-tab-other-screen-face :background bg-alt :foreground fg)
;; Magit
(magit-diff-hunk-heading-highlight :foreground bg :background eg-blue8 :weight 'bold)
(magit-diff-hunk-heading :foreground bg :background eg-blue3)
(magit-blame-heading :foreground magenta
:background eg-grey1 :extend t)
(magit-blame-date :foreground blue)
(git-commit-summary :foreground fg)
;; Dired
(diredfl-date-time :foreground blue)
(diredfl-dir-heading :foreground magenta :weight 'bold)
;; ivy
(ivy-posframe :background eg-blue1)
(ivy-virtual :foreground eg-blue8)
(ivy-cursor :foreground bg-alt
:background fg)
(ivy-minibuffer-match-face-1
:background nil
:foreground comments
:weight 'semi-bold)
(ivy-minibuffer-match-face-2
:inherit 'ivy-minibuffer-match-face-1
:foreground eg-purple :background eg-purple1)
(ivy-minibuffer-match-face-3
:inherit 'ivy-minibuffer-match-face-2
:foreground blue :background eg-orange1)
(ivy-minibuffer-match-face-4
:inherit 'ivy-minibuffer-match-face-2
:foreground teal :background eg-teal1)
(ivy-current-match :background eg-purple2 :extend 't)
(internal-border
:foreground eg-blue8
:background eg-blue1)
;; --- major-mode faces -------------------
;; css-mode / scss-mode
(css-property :foreground blue
:inherit 'italic)
(css-proprietary-property :foreground orange)
(css-selector :foreground magenta)
(web-mode-css-property-name-face :foreground fg)
;; markdown-mode
(markdown-header-face :inherit 'bold
:foreground magenta)
(markdown-header-delimiter-face :inherit 'markdown-header-face)
(markdown-metadata-key-face :foreground green)
(markdown-list-face :foreground fg
:inherit 'bold)
(markdown-link-face :foreground teal)
(markdown-url-face :foreground blue)
(markdown-italic-face :inherit 'italic
:foreground fg)
(markdown-bold-face :inherit 'bold
:foreground fg)
(markdown-markup-face :foreground fg
:inherit 'bold)
(markdown-blockquote-face :inherit 'italic
:foreground orange)
(markdown-pre-face :foreground orange
:extend t)
(markdown-code-face :foreground orange
:extend t)
(markdown-reference-face :foreground blue)
(markdown-inline-code-face :inherit '(markdown-code-face markdown-pre-face)
:extend nil)
(markdown-html-attr-name-face :inherit 'font-lock-variable-name-face)
(markdown-html-attr-value-face :inherit 'font-lock-string-face)
(markdown-html-entity-face :inherit 'font-lock-variable-name-face)
(markdown-html-tag-delimiter-face :inherit 'default)
(markdown-html-tag-name-face :inherit 'font-lock-keyword-face)
(nav-flash-face :background eg-purple1 :foreground fg :weight 'bold)
;; org-mode
((outline-1 &override) :foreground magenta)
((outline-2 &override) :foreground red)
((outline-3 &override) :foreground teal)
((outline-4 &override) :foreground orange)
((outline-5 &override) :foreground magenta)
((outline-6 &override) :foreground red)
((outline-7 &override) :foreground teal)
((outline-8 &override) :foreground orange)
(org-drawer :foreground eg-orange)
(org-ellipsis :underline nil :background bg :foreground red)
((org-block-begin-line &override)
:foreground orange
:background bg-alt
:weight 'semi-bold
:extend t)
((org-block &override)
:background bg-alt
:foreground fg
:extend t)
((org-quote &override)
:foreground orange
:background bg-alt
:extend t)
((org-document-title &override)
:foreground magenta)
;; js2-mode
(js2-function-param :foreground blue)
(js2-function-call :foreground fg :inherit 'italic)
(js2-object-property :foreground fg)
(js2-jsdoc-tag :foreground doc-comments)
(js2-external-variable :foreground fg)
;; racket
(racket-keyword-argument-face :foreground orange)
(racket-selfeval-face :foreground teal)
(racket-debug-break-face :foreground bg :background red)
;; clojure
(clojure-keyword-face :foreground blue)
;; elixir
(elixir-atom-face :foreground blue)
(elixir-attribute-face :foreground teal)
;; lsp
(lsp-ui-doc-background :background bg-alt)
(lsp-face-highlight-read :inherit 'lazy-highlight)
(lsp-face-highlight-textual :inherit 'lsp-face-highlight-read)
(lsp-face-highlight-write :inherit 'lsp-face-highlight-read)
;; doom dashboard
(doom-dashboard-banner :foreground eg-grey5)
(doom-dashboard-menu-title :foreground eg-purple8)
(doom-dashboard-menu-desc :foreground eg-green8)
(doom-dashboard-footer-icon :foreground eg-orange8)
(doom-dashboard-loaded :foreground eg-blue8)
;; evil-snipe
(evil-snipe-first-match-face :foreground bg :background blue)
;; End
)
;; --- extra variables ---------------------
()
)
;;; doom-earl-grey-theme.el ends here

129
flake.lock

@ -7,11 +7,11 @@
]
},
"locked": {
"lastModified": 1627685653,
"narHash": "sha256-PNF6fQ2NX8+i8dWb930W3efGTP6ExsQ608CKt5wRA2U=",
"lastModified": 1638837456,
"narHash": "sha256-WHLOxthAGx/wXw3QUa/lFE3mr6cQtnXfFYZ0DNyYwt4=",
"owner": "ryantm",
"repo": "agenix",
"rev": "6e5ca0926e87b1dff2eeb8ad80ef6bef4a8dc016",
"rev": "57806bf7e340f4cae705c91748d4fdf8519293a9",
"type": "github"
},
"original": {
@ -20,28 +20,45 @@
"type": "github"
}
},
"blobs": {
"flake": false,
"locked": {
"lastModified": 1604995301,
"narHash": "sha256-wcLzgLec6SGJA8fx1OEN1yV/Py5b+U5iyYpksUY/yLw=",
"owner": "simple-nixos-mailserver",
"repo": "blobs",
"rev": "2cccdf1ca48316f2cfd1c9a0017e8de5a7156265",
"type": "gitlab"
},
"original": {
"owner": "simple-nixos-mailserver",
"repo": "blobs",
"type": "gitlab"
}
},
"emacs-overlay": {
"locked": {
"lastModified": 1627751583,
"narHash": "sha256-vtEsxfC0OkLcvAMKAYU7BRCMKE7pNjQzK/AmHDzPDk4=",
"lastModified": 1635818927,
"narHash": "sha256-q5mJS+2t4X67eqEua/k4HOhLfKCIvblfYWpB+DmOgA4=",
"owner": "nix-community",
"repo": "emacs-overlay",
"rev": "5bdd1eadb6b4d3e1988c14331056f1a385f53fb9",
"rev": "64580e3ac034e2704895a272f341a0729d165b93",
"type": "github"
},
"original": {
"owner": "nix-community",
"repo": "emacs-overlay",
"rev": "64580e3ac034e2704895a272f341a0729d165b93",
"type": "github"
}
},
"flake-utils": {
"locked": {
"lastModified": 1618217525,
"narHash": "sha256-WGrhVczjXTiswQaoxQ+0PTfbLNeOQM6M36zvLn78AYg=",
"lastModified": 1629481132,
"narHash": "sha256-JHgasjPR0/J1J3DRm4KxM4zTyAj4IOJY8vIl75v/kPI=",
"owner": "numtide",
"repo": "flake-utils",
"rev": "c6169a2772643c4a93a0b5ac1c61e296cba68544",
"rev": "997f7efcb746a9c140ce1f13c72263189225f482",
"type": "github"
},
"original": {
@ -57,27 +74,27 @@
]
},
"locked": {
"lastModified": 1627649712,
"narHash": "sha256-AJBasvMKpsyJmCLdjroBElCHY5AlalbVy+XY5vjbgXc=",
"lastModified": 1638553958,
"narHash": "sha256-leETjYMtD9y37CvfRSQhIGibcIl4dNVlFkY/8QgqmAM=",
"owner": "nix-community",
"repo": "home-manager",
"rev": "b39647e52ed3c0b989e9d5c965e598ae4c38d7ef",
"rev": "6ce1d64073f48b9bc9425218803b1b607454c1e7",
"type": "github"
},
"original": {
"owner": "nix-community",
"ref": "release-21.05",
"ref": "release-21.11",
"repo": "home-manager",
"type": "github"
}
},
"nixos-hardware": {
"locked": {
"lastModified": 1627666012,
"narHash": "sha256-Dx93VcfFwFlUex2Me4i+lS2IFwNrSVEvTvZuP/vmmXQ=",
"lastModified": 1638440530,
"narHash": "sha256-kmoNW+RmSka988iWvSrkiAxO8g6D76O0gW2cIIhL6U8=",
"owner": "nixos",
"repo": "nixos-hardware",
"rev": "09ed30ff3bb67f5efe9c77e0d79aca01793526ca",
"rev": "4c9f07277bd4bc29a051ff2a0ca58c6403e3881a",
"type": "github"
},
"original": {
@ -88,27 +105,57 @@
},
"nixpkgs": {
"locked": {
"lastModified": 1627714638,
"narHash": "sha256-K50HjZJzRaFoxzGkbNwynsrKGQsinmUQE5HNSCNcO6Y=",
"lastModified": 1638887115,
"narHash": "sha256-emjtIeqyJ84Eb3X7APJruTrwcfnHQKs55XGljj62prs=",
"owner": "nixos",
"repo": "nixpkgs",
"rev": "11c662074e2ae3dddd7e157918b6981de4ce7857",
"rev": "1bd4bbd49bef217a3d1adea43498270d6e779d65",
"type": "github"
},
"original": {
"owner": "nixos",
"ref": "nixos-21.11",
"repo": "nixpkgs",
"type": "github"
}
},
"nixpkgs-21_05": {
"locked": {
"lastModified": 1625692408,
"narHash": "sha256-e9L3TLLDVIJpMnHtiNHJE62oOh6emRtSZ244bgYJUZs=",
"owner": "NixOS",
"repo": "nixpkgs",
"rev": "c06613c25df3fe1dd26243847a3c105cf6770627",
"type": "github"
},
"original": {
"id": "nixpkgs",
"ref": "nixos-21.05",
"type": "indirect"
}
},
"nixpkgs-21_11": {
"locked": {
"lastModified": 1638371214,
"narHash": "sha256-0kE6KhgH7n0vyuX4aUoGsGIQOqjIx2fJavpCWtn73rc=",
"owner": "NixOS",
"repo": "nixpkgs",
"rev": "a640d8394f34714578f3e6335fc767d0755d78f9",
"type": "github"
},
"original": {
"id": "nixpkgs",
"ref": "nixos-21.11",
"type": "indirect"
}
},
"nixpkgs-unstable": {
"locked": {
"lastModified": 1627533199,
"narHash": "sha256-NyIUcNevwtsMBINn56jnDF8wz3TV1AFxw+Vw6JMnkyE=",
"lastModified": 1638910453,
"narHash": "sha256-fofA4tsAAdNgE+9Py0VsVbyX2ZQkgV+CVqQKGBA/dLE=",
"owner": "nixos",
"repo": "nixpkgs",
"rev": "dd98b100651cfbb8804f32d852f75ef7c97a6b74",
"rev": "f225322e3bea8638304adfcf415cd11de99f2208",
"type": "github"
},
"original": {
@ -120,11 +167,11 @@
},
"nixpkgs_2": {
"locked": {
"lastModified": 1607522989,
"narHash": "sha256-o/jWhOSAlaK7y2M57OIriRt6whuVVocS/T0mG7fd1TI=",
"lastModified": 1626852498,
"narHash": "sha256-lOXUJvi0FJUXHTVSiC5qsMRtEUgqM4mGZpMESLuGhmo=",
"owner": "NixOS",
"repo": "nixpkgs",
"rev": "e9158eca70ae59e73fae23be5d13d3fa0cfc78b4",
"rev": "16105403bdd843540cbef9c63fc0f16c1c6eaa70",
"type": "github"
},
"original": {
@ -142,12 +189,12 @@
"rev": "8a1b4d510f1c8c346e092c5b4f0b84d73954833e",
"revCount": 26,
"type": "git",
"url": "https://git.knightsofthelambdacalcul.us/hazel/perihelion"
"url": "https://git.bicompact.space/hazel/perihelion"
},
"original": {
"ref": "canon",
"type": "git",
"url": "https://git.knightsofthelambdacalcul.us/hazel/perihelion"
"url": "https://git.bicompact.space/hazel/perihelion"
}
},
"root": {
@ -167,20 +214,23 @@
},
"simple-nixos-mailserver": {
"inputs": {
"blobs": "blobs",
"nixpkgs": "nixpkgs_2",
"nixpkgs-21_05": "nixpkgs-21_05",
"nixpkgs-21_11": "nixpkgs-21_11",
"utils": "utils"
},
"locked": {
"lastModified": 1622967674,
"narHash": "sha256-8RLe6Rqy2rKR/PGDMg/EVsWihsO+DQe/RYmlXdRZkLs=",
"lastModified": 1638911354,
"narHash": "sha256-hNhzLOp+dApEY15vwLAQZu+sjEQbJcOXCaSfAT6lpsQ=",
"owner": "simple-nixos-mailserver",
"repo": "nixos-mailserver",
"rev": "5675b122a947b40e551438df6a623efad19fd2e7",
"rev": "6e3a7b2ea6f0d68b82027b988aa25d3423787303",
"type": "gitlab"
},
"original": {
"owner": "simple-nixos-mailserver",
"ref": "nixos-21.05",
"ref": "nixos-21.11",
"repo": "nixos-mailserver",
"type": "gitlab"
}
@ -205,15 +255,16 @@
"flake-utils": "flake-utils"
},
"locked": {
"lastModified": 1619358717,
"narHash": "sha256-FkEOIW82ClvUBtD8aqPediM8FERldsOyjPIyapVa65I=",
"lastModified": 1632420560,
"narHash": "sha256-8Tsa4Hp/CHCA6J8/E7EODhp75z5N1NBhFiOb3lBv/tI=",
"owner": "gytis-ivaskevicius",
"repo": "flake-utils-plus",
"rev": "e7ae270a23695b50fbb6b72759a7fb1e3340ca86",
"rev": "4b1bcafcfcd78bd36ceabfe3872822ba5c7fcbe8",
"type": "github"
},
"original": {
"owner": "gytis-ivaskevicius",
"ref": "v1.3.0",
"repo": "flake-utils-plus",
"type": "github"
}
@ -227,22 +278,22 @@
"rev": "b0e7c984a7851145f30946091a93545d801db7ca",
"revCount": 17,
"type": "git",
"url": "https://git.knightsofthelambdacalcul.us/hazel/blog"
"url": "https://git.bicompact.space/hazel/blog"
},
"original": {
"ref": "canon",
"type": "git",
"url": "https://git.knightsofthelambdacalcul.us/hazel/blog"
"url": "https://git.bicompact.space/hazel/blog"
}
},
"zsh-syntax-highlighting": {
"flake": false,
"locked": {
"lastModified": 1625340797,
"narHash": "sha256-3G6c6uOqYTp2WmfmwJ5qIYsnhSLF2UZ3iyCNEpdjjzc=",
"lastModified": 1636857900,
"narHash": "sha256-MeuPqDeJpbJi2hT7VUgyQNSmDPY/biUncvyY78IBfzM=",
"owner": "zsh-users",
"repo": "zsh-syntax-highlighting",
"rev": "dffe304567c86f06bf1be0fce200077504e79783",
"rev": "c7caf57ca805abd54f11f756fda6395dd4187f8a",
"type": "github"
},
"original": {

34
flake.nix

@ -3,34 +3,33 @@
description = "maybe you'd have less problems if you weren't on a zoomer distro";
inputs = {
nixpkgs.url = "github:nixos/nixpkgs/nixos-21.05";
nixpkgs.url = "github:nixos/nixpkgs/nixos-21.11";
nixpkgs-unstable.url = "github:nixos/nixpkgs/nixpkgs-unstable";
utils.url = "github:gytis-ivaskevicius/flake-utils-plus";
utils.url = "github:gytis-ivaskevicius/flake-utils-plus/v1.3.0";
home-manager = {
url = "github:nix-community/home-manager/release-21.05";
url = "github:nix-community/home-manager/release-21.11";
inputs.nixpkgs.follows = "nixpkgs";
};
agenix = {
url = "github:ryantm/agenix";
inputs.nixpkgs.follows = "nixpkgs";
};
emacs-overlay.url = "github:nix-community/emacs-overlay";
emacs-overlay.url = "github:nix-community/emacs-overlay/64580e3ac034e2704895a272f341a0729d165b93";
nixos-hardware.url = "github:nixos/nixos-hardware";
# temporary
simple-nixos-mailserver.url = "gitlab:simple-nixos-mailserver/nixos-mailserver/nixos-21.05";
simple-nixos-mailserver.url = "gitlab:simple-nixos-mailserver/nixos-mailserver/nixos-21.11";
zsh-syntax-highlighting = {
url = "github:zsh-users/zsh-syntax-highlighting";
flake = false;
};
perihelion = {
url = "git+https://git.knightsofthelambdacalcul.us/hazel/perihelion?ref=canon";
url = "git+https://git.bicompact.space/hazel/perihelion?ref=canon";
flake = false;
};
ziodyne-blog = {
url = "git+https://git.knightsofthelambdacalcul.us/hazel/blog?ref=canon";
url = "git+https://git.bicompact.space/hazel/blog?ref=canon";
flake = false;
};
};
@ -43,7 +42,7 @@
home-manager,
agenix,
simple-nixos-mailserver, ... }:
utils.lib.systemFlake {
utils.lib.mkFlake {
inherit self inputs;
supportedSystems = [ "x86_64-linux" ];
@ -57,7 +56,7 @@
channels: [
(final: prev: {
inherit (channels.unstable)
thunderbird;
sage;
hazel = {
perihelion = prev.callPackage (import inputs.perihelion) {};
@ -73,12 +72,21 @@
./configuration.nix
./machines/hyacinth
nixos-hardware.nixosModules.lenovo-thinkpad-t495
agenix.nixosModules.age
home-manager.nixosModules.home-manager
nixpkgs.nixosModules.notDetected # enable nonfree firmwares
];
kerria.modules = [
./configuration.nix
./machines/kerria
nixos-hardware.nixosModules.pcengines-apu
agenix.nixosModules.age
home-manager.nixosModules.home-manager
nixpkgs.nixosModules.notDetected # enable nonfree firmwares
simple-nixos-mailserver.nixosModule
./modules/services/mail.nix
@ -100,11 +108,5 @@
}
];
};
sharedModules = [
nixpkgs.nixosModules.notDetected # enable nonfree firmwares
home-manager.nixosModules.home-manager
agenix.nixosModules.age
];
};
}

19
machines/hyacinth/default.nix

@ -5,9 +5,6 @@
./hardware.nix
];
# networking.firewall.allowedTCPPorts = [ 5555 5556 ];
# networking.firewall.allowedUDPPorts = [ 5555 5556 ];
# hostname and hostid (for zfs)
networking.hostName = "hyacinth";
networking.hostId = "3ae0d799";
@ -35,7 +32,6 @@
sound.enable = true;
hazel.pipewire.enable = true;
hardware.bluetooth.enable = true;
services.blueman.enable = true;
# wifi
hazel.networking.wifi = true;
@ -85,10 +81,11 @@
services.interception-tools = {
enable = true;
plugins = [ pkgs.interception-tools-plugins.caps2esc ];
# sudo uinput -p -d /dev/input/event0
# only works on laptop keyboard, since i need esc on hhkb
udevmonConfig = ''
- JOB: "intercept -g $DEVNODE | caps2esc | uinput -d $DEVNODE"
- JOB: "${pkgs.interception-tools}/bin/intercept -g $DEVNODE | ${pkgs.interception-tools-plugins.caps2esc}/bin/caps2esc | ${pkgs.interception-tools}/bin/uinput -d $DEVNODE"
DEVICE:
NAME: AT Translated Set 2 keyboard
EVENTS:
@ -96,13 +93,9 @@
'';
};
# v4l2loopback, for reMarkable webcam
boot.extraModulePackages = with config.boot.kernelPackages; [
v4l2loopback
];
environment.systemPackages = with pkgs; [
v4l-utils
];
# ok
hardware.opengl.enable = true;
hardware.opengl.driSupport32Bit = true;
# sigh
virtualisation.docker.enable = true;

2
modules/agenix.nix

@ -16,7 +16,7 @@ with lib;
file = ./. + "${secretsDir}/${n}";
mode = "0444";
}) (import (./. + secretsFile));
sshKeyPaths = options.age.sshKeyPaths.default ++ [
identityPaths = options.age.identityPaths.default ++ [
"/etc/agenix/id_ed25519"
];
};

8
modules/desktop/default.nix

@ -40,6 +40,7 @@ with lib; {
libreoffice-fresh
bitwarden
evince
zotero
dino
element-desktop
@ -47,7 +48,7 @@ with lib; {
mumble
zoom-us
teams
restream
obs-studio
gimp
soulseekqt
@ -66,8 +67,11 @@ with lib; {
minecraft
mcrcon
kdenlive
citrix_workspace
rmview
jetbrains.idea-ultimate # educational license
playonlinux # hell
];
services.gnome-keyring.enable = true;

2
modules/desktop/gnome.nix

@ -31,7 +31,7 @@ with lib; {
xdg.portal = {
enable = true;
extraPortals = with pkgs; [ xdg-desktop-portal-gtk ];
# extraPortals = with pkgs; [ xdg-desktop-portal-gtk ];
gtkUsePortal = true;
};
};

33
modules/desktop/settings/fonts.nix

@ -7,24 +7,6 @@ let
};
} "mkdir -p $out/share/fonts/truetype; cp $src/**/*.ttf $out/share/fonts/truetype";
basefonts = (with pkgs; [
corefonts
source-code-pro
source-sans-pro
font-awesome_4
plex
julia-mono
]);
extrafonts = (with pkgs; [
dejavu_fonts
noto-fonts
roboto
roboto-slab
source-code-pro
emacs-all-the-icons-fonts
]);
cfg = config.hazel.desktop.fonts;
in
with lib; {
@ -39,7 +21,20 @@ with lib; {
config = mkIf cfg.enable {
fonts = {
fonts = basefonts ++ extrafonts ++ [];
fonts = with pkgs; [
corefonts
source-code-pro
source-sans-pro
font-awesome_4
plex
dejavu_fonts
symbola
julia-mono
noto-fonts
roboto
roboto-slab
emacs-all-the-icons-fonts
];
fontconfig = {
enable = true;

2
modules/services/bitwarden.nix

@ -17,7 +17,7 @@ with lib; {
# not forwarded -- testing only due to HTTPS restrictions
networking.firewall.allowedTCPPorts = [ 8080 ];
services.bitwarden_rs = {
services.vaultwarden = {
enable = true;
dbBackend = "sqlite";
environmentFile = config.age.secrets.bitwardenEnv.path;

2
modules/services/mpd.nix

@ -77,7 +77,7 @@ with lib; {
# mpris support
services.mpdris2 = {
enable = cfg.mpris;
notifications = cfg.mpris;
notifications = false;
};
home.packages = with pkgs; [

2
modules/services/perihelion.nix

@ -26,7 +26,7 @@ with lib; {
the-system|https://the-system.eu.org/
syntropy|https://unix.lgbt/~kakuko/sanctuary/
Lulu|https://erkin.party/
zoe-bat|https://zoebat.gay
zoe-bat|https://zoe.kittycat.homes/
'';
systemd.services.perihelion = {

6
modules/shell/git.nix

@ -11,6 +11,12 @@
key = "593067D35E5CA280959CEC3735C1205716621182";
signByDefault = true;
};
aliases = {
wip = ''!git add --all && git commit --message "WIP - $(date)"'';
};
delta.enable = true;
};
# HOO BOY

3
modules/shell/zsh.nix

@ -16,6 +16,9 @@
sessionVariables = {
"PAGER" = "less";
"RMAPI_AUTH" = "https://remarkable.bicompact.space";
"RMAPI_DOC" = "https://remarkable.bicompact.space";
"RMAPI_CONFIG" = "/home/hazel/.rmapi.fake";