This commit is contained in:
Ray Andrew 2025-11-19 21:11:11 -06:00
parent 62048c3d77
commit ecc38d8f78
Signed by: rayandrew
SSH key fingerprint: SHA256:XYrYrxF0Z3A72n8P/p6mqPRNQZT22F88XcLsG+kX4xw
8 changed files with 267 additions and 4 deletions

View file

@ -59,6 +59,11 @@
positron = mkEnableOption "Enable positron";
claude = mkEnableOption "Enable claude";
iterm2 = mkEnableOption "Enable iterm2";
cmake = mkEnableOption "Enable cmake";
ninja = mkEnableOption "Enable ninja";
clang-format = mkEnableOption "Enable clang-format";
marta = mkEnableOption "Enable marta";
valgrind = mkEnableOption "Enable valgrind";
};
config = lib.mkMerge [
@ -74,9 +79,10 @@
"homebrew/homebrew-createzap" = inputs.homebrew-createzap;
"d12frosted/homebrew-emacs-plus" = inputs.homebrew-emacs-plus;
"brewsci/homebrew-bio" = inputs.homebrew-brewsci-bio;
# "LouisBrunner/valgrind" = inputs.homebrew-valgrind;
}
];
mutableTaps = false;
mutableTaps = false; # true to enable valgrind
};
homebrew = {
enable = true;
@ -342,5 +348,33 @@
"iterm2"
];
})
(lib.mkIf config.custom.brew.cmake {
homebrew.brews = [
"cmake"
];
})
(lib.mkIf config.custom.brew.ninja {
homebrew.brews = [
"ninja"
];
})
(lib.mkIf config.custom.brew.clang-format {
homebrew.brews = [
"clang-format"
];
})
(lib.mkIf config.custom.brew.marta {
homebrew.casks = [
"marta"
];
})
(lib.mkIf config.custom.brew.valgrind {
# homebrew.brews = [
# {
# name = "LouisBrunner/valgrind/valgrind";
# args = ["HEAD"];
# }
# ];
})
];
}

View file

@ -325,6 +325,22 @@
"type": "github"
}
},
"homebrew-valgrind": {
"flake": false,
"locked": {
"lastModified": 1760528864,
"narHash": "sha256-l7na1829ushhmKXJi7OicmGlTHdvI+N3MVinY6RQe9w=",
"owner": "LouisBrunner",
"repo": "homebrew-valgrind",
"rev": "c646928f7890281e8d253de193a246dee18d40c5",
"type": "github"
},
"original": {
"owner": "LouisBrunner",
"repo": "homebrew-valgrind",
"type": "github"
}
},
"mac-app-util": {
"inputs": {
"cl-nix-lite": "cl-nix-lite",
@ -542,6 +558,7 @@
"homebrew-core": "homebrew-core",
"homebrew-createzap": "homebrew-createzap",
"homebrew-emacs-plus": "homebrew-emacs-plus",
"homebrew-valgrind": "homebrew-valgrind",
"mac-app-util": "mac-app-util",
"nix-darwin": "nix-darwin",
"nix-homebrew": "nix-homebrew",

View file

@ -38,6 +38,8 @@
homebrew-emacs-plus.flake = false;
homebrew-brewsci-bio.url = "github:brewsci/homebrew-bio";
homebrew-brewsci-bio.flake = false;
homebrew-valgrind.url = "github:LouisBrunner/homebrew-valgrind";
homebrew-valgrind.flake = false;
};
outputs =

View file

@ -0,0 +1,192 @@
;;; naysayer-light-theme.el --- The naysayer light color theme
;; Author: Nick Aversano <nickav@users.noreply.github.com>
;; Version: 0.33
;; Filename: naysayer-light-theme.el
;; Package-Requires: ((emacs "24"))
;; URL: https://github.com/nickav/naysayer-theme.el
;; License: GPL-3+
;;; Commentary:
;; Light version of the naysayer theme. Bright color scheme with warm tones.
;;; Code:
(unless (>= emacs-major-version 24)
(error "The naysayer theme requires Emacs 24 or later!"))
(deftheme naysayer-light "The naysayer light color theme")
;; Monokai colors
(defcustom naysayer-theme-yellow "#E6DB74" "Primary colors - yellow" :type 'string :group 'monokai)
(defcustom naysayer-theme-orange "#FD971F" "Primary colors - orange" :type 'string :group 'monokai)
(defcustom naysayer-theme-red "#F92672" "Primary colors - red" :type 'string :group 'monokai)
(defcustom naysayer-theme-magenta "#FD5FF0" "Primary colors - magenta" :type 'string :group 'monokai)
(defcustom naysayer-theme-blue "#66D9EF" "Primary colors - blue" :type 'string :group 'monokai)
(defcustom naysayer-theme-green "#A6E22E" "Primary colors - green" :type 'string :group 'monokai)
(defcustom naysayer-theme-cyan "#A1EFE4" "Primary colors - cyan" :type 'string :group 'monokai)
(defcustom naysayer-theme-violet "#AE81FF" "Primary colors - violet" :type 'string :group 'monokai)
(let ((background "#fafaf5")
(gutters "#fafaf5")
(gutter-fg "#8b7355")
(gutters-active "#f0f0e8")
(builtin "#003030")
(selection "#c8e8c8")
(text "#5a4a3a")
(comments "#18a010")
(punctuation "#18a010")
(keywords "#B05A00")
(variables "#5a4a3a")
(functions "#000000")
(methods "#000000")
(strings "#0c7060")
(constants "#003030")
(macros "#18a010")
(numbers "#003030")
(white "#000000")
(error "#c05040")
(warning "#c05040")
(highlight-line "#e8f4e8")
(line-fg "#70a070")
(modeline-bg "#18a010")
(modeline-fg "#fafaf5"))
(custom-theme-set-faces
'naysayer-light
;; Default colors
;; *****************************************************************************
`(default ((t (:foreground ,text :background ,background, :weight normal))))
`(region ((t (:foreground nil :background ,selection))))
`(cursor ((t (:background ,white ))))
`(fringe ((t (:background ,background :foreground ,white))))
`(linum ((t (:background ,background :foreground ,gutter-fg))))
`(highlight ((t (:foreground nil :background ,selection))))
;; Font lock faces
;; *****************************************************************************
`(font-lock-keyword-face ((t (:foreground ,keywords))))
`(font-lock-type-face ((t (:foreground ,punctuation))))
`(font-lock-constant-face ((t (:foreground ,constants))))
`(font-lock-variable-name-face ((t (:foreground ,variables))))
`(font-lock-builtin-face ((t (:foreground ,builtin))))
`(font-lock-string-face ((t (:foreground ,strings))))
`(font-lock-comment-face ((t (:foreground ,comments))))
`(font-lock-comment-delimiter-face ((t (:foreground ,comments))))
`(font-lock-doc-face ((t (:foreground ,comments))))
`(font-lock-function-name-face ((t (:foreground ,functions))))
`(font-lock-doc-string-face ((t (:foreground ,strings))))
`(font-lock-preprocessor-face ((t (:foreground ,macros))))
`(font-lock-warning-face ((t (:foreground ,warning))))
;; Plugins
;; *****************************************************************************
`(trailing-whitespace ((t (:foreground nil :background ,warning))))
`(whitespace-trailing ((t (:background nil :foreground ,warning :inverse-video t))))
`(linum ((t (:foreground ,line-fg :background ,background))))
`(linum-relative-current-face ((t (:foreground ,white :background ,background))))
`(line-number ((t (:foreground ,line-fg :background ,background))))
`(line-number-current-line ((t (:foreground ,white :background ,background))))
;; hl-line-mode
`(hl-line ((t (:background ,highlight-line))))
`(hl-line-face ((t (:background ,highlight-line))))
;; rainbow-delimiters
`(rainbow-delimiters-depth-1-face ((t (:foreground ,naysayer-theme-violet))))
`(rainbow-delimiters-depth-2-face ((t (:foreground ,naysayer-theme-blue))))
`(rainbow-delimiters-depth-3-face ((t (:foreground ,naysayer-theme-green))))
`(rainbow-delimiters-depth-4-face ((t (:foreground ,naysayer-theme-yellow))))
`(rainbow-delimiters-depth-5-face ((t (:foreground ,naysayer-theme-orange))))
`(rainbow-delimiters-depth-6-face ((t (:foreground ,naysayer-theme-red))))
`(rainbow-delimiters-depth-7-face ((t (:foreground ,naysayer-theme-violet))))
`(rainbow-delimiters-depth-8-face ((t (:foreground ,naysayer-theme-blue))))
`(rainbow-delimiters-depth-9-face ((t (:foreground ,naysayer-theme-green))))
`(rainbow-delimiters-depth-10-face ((t (:foreground ,naysayer-theme-yellow))))
`(rainbow-delimiters-depth-11-face ((t (:foreground ,naysayer-theme-orange))))
`(rainbow-delimiters-depth-12-face ((t (:foreground ,naysayer-theme-red))))
;; which-func
`(which-func ((t (:inverse-video unspecified
:underline unspecified
:foreground ,background
:weight bold
:box nil))))
;; mode-line and powerline
`(mode-line-buffer-id ((t (:foreground ,modeline-fg :distant-foreground ,modeline-bg :text ,modeline-fg :weight bold))))
`(mode-line ((t (:inverse-video unspecified
:underline unspecified
:foreground ,modeline-fg
:background ,modeline-bg
:box nil))))
`(powerline-active1 ((t (:background ,modeline-bg :foreground ,modeline-fg))))
`(powerline-active2 ((t (:background ,modeline-bg :foreground ,modeline-fg))))
`(mode-line-inactive ((t (:inverse-video unspecified
:underline unspecified
:foreground ,text
:background ,background
:box nil))))
`(powerline-inactive1 ((t (:background ,background :foreground ,text))))
`(powerline-inactive2 ((t (:background ,background :foreground ,text))))
;; better compatibility with default DOOM mode-line
`(error ((t (:foreground nil :weight normal))))
`(doom-modeline-project-dir ((t (:foreground nil :weight bold))))
;; js2-mode
`(js2-function-call ((t (:inherit (font-lock-function-name-face)))))
`(js2-function-param ((t (:foreground ,text))))
`(js2-jsdoc-tag ((t (:foreground ,keywords))))
`(js2-jsdoc-type ((t (:foreground ,constants))))
`(js2-jsdoc-value((t (:foreground ,text))))
`(js2-object-property ((t (:foreground ,text))))
`(js2-external-variable ((t (:foreground ,constants))))
`(js2-error ((t (:foreground ,error))))
`(js2-warning ((t (:foreground ,warning))))
;; highlight numbers
`(highlight-numbers-number ((t (:foreground ,numbers))))
;; tab-bar-mode
`(tab-bar ((t (:inherit modeline))))
`(tab-bar-tab ((t (:foreground ,modeline-fg :background ,modeline-bg))))
`(tab-bar-tab-inactive ((t (:foreground ,text :background ,background))))
)
(custom-theme-set-faces
'naysayer-light
`(my-elisp-plist-keyword-face ((t (:foreground ,keywords)))))
(font-lock-add-keywords
'emacs-lisp-mode
'(("\\(:[a-zA-Z0-9-]+\\)" 1 'my-elisp-plist-keyword-face)))
(custom-theme-set-variables
'naysayer-light
'(linum-format " %5i ")
)
)
;;;###autoload
(when (and (boundp 'custom-theme-load-path) load-file-name)
(add-to-list 'custom-theme-load-path
(file-name-as-directory (file-name-directory load-file-name))))
;; *****************************************************************************
(provide-theme 'naysayer-light)
;; Local Variables:
;; no-byte-compile: t
;; End:
(provide 'naysayer-light-theme)
;;; naysayer-light-theme.el ends here

View file

@ -63,6 +63,14 @@
(load-theme 'naysayer t)
:load-path rs/lib-dir)
;; (use-package naysayer-light-theme
;; :ensure nil
;; ;; :defer t
;; ;; :elpaca nil
;; :config
;; (load-theme 'naysayer-light t)
;; :load-path rs/lib-dir)
;; (use-package zenburn-theme
;; :config
;; (load-theme 'zenburn t))
@ -653,6 +661,10 @@ frame if FRAME is nil, and to 1 if AMT is nil."
("w" "Work" agenda ""
((org-agenda-files '("work.org")))))))
(use-package wakatime-mode
:config
(global-wakatime-mode))
;; (use-package editorconfig
;; :init
;; (setq editorconfig-lisp-use-default-indent t) ; restores alignment for elisp

View file

@ -31,7 +31,7 @@
(setenv "LIBRARY_PATH"
(mapconcat 'identity
'(
"/opt/homebrew/opt/gcc/lib/gcc/14"
"/opt/homebrew/opt/libgccjit/lib/gcc/14"
"/opt/homebrew/opt/gcc/lib/gcc/14/gcc/aarch64-apple-darwin24/14")
"/opt/homebrew/opt/gcc/lib/gcc/15"
"/opt/homebrew/opt/libgccjit/lib/gcc/15"
"/opt/homebrew/opt/gcc/lib/gcc/15/gcc/aarch64-apple-darwin24/15")
":"))

View file

@ -16,6 +16,7 @@
config = lib.mkIf config.custom.latex.enable {
home.packages = with pkgs; [
config.custom.latex.package
ghostscript
];
};
}

View file

@ -63,6 +63,11 @@
positron = true;
claude = true;
iterm2 = true;
cmake = true;
ninja = true;
clang-format = true;
marta = true;
valgrind = true;
};
};