Switching to flake-parts

This commit is contained in:
Joe Frikker
2026-09-16 21:27:37 -04:00
parent 41bd32951d
commit a806ae81bc
11 changed files with 1918 additions and 242 deletions
+99 -105
View File
@@ -1,8 +1,8 @@
#+PROPERTY: header-args :mkdirp yes :noweb yes
#+PROPERTY: header-args:elisp :lexical t
* Categories
#+begin_src nix :tangle target/default.nix
{lib, pkgs, config, claude-code, ...}: let
#+begin_src nix :tangle modules/home/default.nix
{lib, pkgs, config, ...}: let
inherit (lib)
mkIf
mkMerge
@@ -114,6 +114,13 @@ tools. They boost better speed, or simply more streamlined features.
tokei
xh
];
programs.eza = {
enable = true;
enableBashIntegration = true;
enableZshIntegration = true;
icons = "auto";
};
}
#+END_SRC
@@ -158,8 +165,6 @@ are still Redbook-specific; ideally I'd find another way to install them.
home.packages = with pkgs; [
openssh
];
fonts.fontconfig.enable = true;
})
#+END_SRC
@@ -179,6 +184,8 @@ These programs require a full desktop environment:
proton-pass
wireshark
];
fonts.fontconfig.enable = true;
})
#+END_SRC
@@ -265,21 +272,6 @@ leverage this with the emacs ~envrc~ package.
}
#+END_SRC
** Eza
~eza~ is an ~ls~ replacement that offers icons, colors, and some easier command-line options.
#+BEGIN_SRC nix
{
programs.eza = {
enable = true;
enableBashIntegration = true;
enableZshIntegration = true;
icons = "auto";
};
}
#+END_SRC
** Fzf
~fzf~ offers a variety of fuzzy finders right from the shell. I haven't been using this, so I'll
@@ -496,7 +488,7 @@ config in two blocks, so we can get lua syntax highlighting in org. First, the n
Then the real lua config:
#+begin_src lua :tangle target/wezterm.lua :noweb-ref nil
#+begin_src lua :tangle modules/home/wezterm.lua :noweb-ref nil
local config = {}
<<wezterm-config>>
@@ -505,7 +497,6 @@ Then the real lua config:
#+end_src
#+BEGIN_SRC lua
config.default_prog = { '/Users/jfrikker/.nix-profile/bin/zsh', '-l' }
config.font = wezterm.font 'Iosevka Term SS14'
config.font_size = 13.0
-- config.font = wezterm.font("JetBrains Mono")
@@ -775,21 +766,10 @@ Actually, nix *really* requires ~bash~. This is a plugin that allows using zsh f
}
#+END_SRC
** Claude Code
#+BEGIN_SRC nix
{
programs.claude-code = {
enable = true;
package = claude-code;
};
}
#+END_SRC
* Emacs
:PROPERTIES:
:header-args:nix: :noweb-ref nix-configs
:header-args:elisp: :tangle target/emacs.el
:header-args:elisp: :tangle modules/home/emacs.el
:END:
Emacs is a huge portion of this configuration, so although it's a home-manager "program", I'm
@@ -977,6 +957,7 @@ repeats set up that only apply in that mode.
Let's unbind some builtin keys that I don't use. I'm not sure if I'll replace them with anything or not, but at a minimum it'll avoid accidental keypresses and clean up which-key output.
#+begin_src elisp
(require 'bind-key)
(unbind-key "C-x RET")
(unbind-key "C-x #")
(unbind-key "C-x 5")
@@ -1013,7 +994,7 @@ Ligature mode combines character sequences like <= into a single on-screen glyph
cool, so I'm turning it on in prog mode. The enabled ligatures are font-specific, taken from [[https://github.com/mickeynp/ligature.el/wiki#jetbrains-mono][the
ligature wiki]].
#+BEGIN_SRC elisp
#+BEGIN_SRC elisp :noweb no
(ligature-set-ligatures 'prog-mode
'("--" "---" "==" "===" "!=" "!==" "=!="
"=:=" "=/=" "<=" ">=" "&&" "&&&" "&=" "++" "+++" "***" ";;" "!!"
@@ -1955,21 +1936,30 @@ for completion. That makes it really annoying to use; don't use yasnippet with e
(setopt consult-narrow-key "<") ;; "C-+"
(setopt vertico-count 25)
(vertico-mode)
(use-package vertico
:custom
(vertico-count 25)
:config
(vertico-mode))
(setopt completion-styles '(orderless basic))
(marginalia-mode)
(use-package marginalia
(marginalia-mode))
(setopt corfu-cycle t)
(setopt corfu-popupinfo-mode nil)
(setopt corfu-quit-at-boundary nil)
(setopt corfu-on-exact-match 'show)
(global-corfu-mode)
(use-package corfu
:custom
(corfu-cycle t)
(corfu-popupinfo-mode nil)
(corfu-quit-at-boundary nil)
(corfu-on-exact-match 'show)
:config
(global-corfu-mode))
;; (setq completion-in-region-function #'consult-completion-in-region)
(add-hook 'completion-at-point-functions 'cape-file)
(use-package cape
:custom
(add-hook 'completion-at-point-functions 'cape-file))
#+END_SRC
** Org
@@ -1980,7 +1970,6 @@ for completion. That makes it really annoying to use; don't use yasnippet with e
org-modern
org-present
org-roam
ox-slack
verb
visual-fill-column
];
@@ -1989,50 +1978,51 @@ for completion. That makes it really annoying to use; don't use yasnippet with e
#+END_SRC
#+BEGIN_SRC elisp
(require 'org)
(bind-keys ("C-c A" . org-agenda)
("C-c C" . org-capture)
("C-c l" . org-id-store-link))
(setopt org-babel-load-languages '((emacs-lisp . t) (sql . t)))
(setopt org-confirm-babel-evaluate nil)
(add-hook 'org-mode-hook 'visual-line-mode)
(setopt org-link-keep-stored-after-insertion t
org-capture-templates
'(("t" "Todo" entry
(here)
"** TODO %?\n:LOGBOOK:\n- State \"TODO\" %U\n:END:\n")
("w" "Work stuff")
("wp" "Work Project" entry
(file+headline "~/org/todo/work.org.age" "Next Actions")
"*** PROJ %?\n- State \"PROJ\" %U\n")
("wa" "Work Next Action" entry
(file+headline "~/org/todo/work.org.age" "Next Actions")
"*** TODO %?\n- State \"TODO\" %U\n")
("p" "Personal stuff")
("pp" "Personal Project" entry
(file+headline "~/org/todo/personal.org.age" "Next Actions")
"*** PROJ %?\n- State \"PROJ\" %U\n")
("pa" "Personal Next Action" entry
(file+headline "~/org/todo/personal.org.age" "Next Actions")
"*** TODO %?\n- State \"TODO\" %U\n"))
org-agenda-files '("~/org/todo/work.org" "~/org/todo/personal.org.age")
org-agenda-todo-ignore-scheduled 'future
org-agenda-tags-todo-honor-ignore-options t
org-enforce-todo-dependencies t
org-agenda-dim-blocked-tasks 'invisible)
(set-face-attribute 'org-level-1 nil :font "Iosevka Aile")
(set-face-attribute 'org-level-2 nil :font "Iosevka Aile")
(set-face-attribute 'org-level-3 nil :font "Iosevka Aile")
(set-face-attribute 'org-level-4 nil :font "Iosevka Aile")
(set-face-attribute 'org-level-5 nil :font "Iosevka Aile")
(set-face-attribute 'org-level-6 nil :font "Iosevka Aile")
(set-face-attribute 'org-level-7 nil :font "Iosevka Aile")
(set-face-attribute 'org-level-8 nil :font "Iosevka Aile")
(use-package org
:bind (("C-c A" . org-agenda)
("C-c C" . org-capture)
("C-c l" . org-id-store-link))
:custom
(org-babel-load-languages '((emacs-lisp . t) (sql . t)))
(org-confirm-babel-evaluate nil)
(org-link-keep-stored-after-insertion t)
(org-capture-templates
'(("t" "Todo" entry
(here)
"** TODO %?\n:LOGBOOK:\n- State \"TODO\" %U\n:END:\n")
("w" "Work stuff")
("wp" "Work Project" entry
(file+headline "~/org/todo/work.org.age" "Next Actions")
"*** PROJ %?\n- State \"PROJ\" %U\n")
("wa" "Work Next Action" entry
(file+headline "~/org/todo/work.org.age" "Next Actions")
"*** TODO %?\n- State \"TODO\" %U\n")
("p" "Personal stuff")
("pp" "Personal Project" entry
(file+headline "~/org/todo/personal.org.age" "Next Actions")
"*** PROJ %?\n- State \"PROJ\" %U\n")
("pa" "Personal Next Action" entry
(file+headline "~/org/todo/personal.org.age" "Next Actions")
"*** TODO %?\n- State \"TODO\" %U\n")))
(org-agenda-files '("~/org/todo/work.org" "~/org/todo/personal.org.age"))
(org-agenda-todo-ignore-scheduled 'future)
(org-agenda-tags-todo-honor-ignore-options t)
(org-enforce-todo-dependencies t)
(org-agenda-dim-blocked-tasks 'invisible)
:config
(add-hook 'org-mode-hook 'visual-line-mode)
(set-face-attribute 'org-level-1 nil :font "Iosevka Aile")
(set-face-attribute 'org-level-2 nil :font "Iosevka Aile")
(set-face-attribute 'org-level-3 nil :font "Iosevka Aile")
(set-face-attribute 'org-level-4 nil :font "Iosevka Aile")
(set-face-attribute 'org-level-5 nil :font "Iosevka Aile")
(set-face-attribute 'org-level-6 nil :font "Iosevka Aile")
(set-face-attribute 'org-level-7 nil :font "Iosevka Aile")
(set-face-attribute 'org-level-8 nil :font "Iosevka Aile"))
(defvar-local my/org-present-face-remapping-cookies nil)
(with-eval-after-load 'org-present
(use-package org-present
:config
(require 'face-remap)
(require 'visual-fill-column)
@@ -2100,7 +2090,7 @@ for completion. That makes it really annoying to use; don't use yasnippet with e
;; (org-roam-db-autosync-mode)
(use-package org-modern
:hook org-mode-hook)
:hook org-mode)
;; (define-key org-mode-map (kbd "C-c C-r") verb-command-map)
#+END_SRC
@@ -2124,16 +2114,18 @@ for completion. That makes it really annoying to use; don't use yasnippet with e
** Slack
#+BEGIN_SRC nix
{
(mkIf (cfg.redbook.enable && cfg.desktop.enable) {
programs.emacs = {
extraPackages = epkgs: with epkgs; [
slack
ox-slack
];
extraConfig = builtins.readFile ./slack.el;
};
}
})
#+END_SRC
#+BEGIN_SRC elisp
#+BEGIN_SRC elisp :tangle modules/home/home/slack.el :noweb-ref nil
(use-package lui
:defer t
:custom
@@ -2171,7 +2163,7 @@ for completion. That makes it really annoying to use; don't use yasnippet with e
#+BEGIN_SRC elisp
(use-package age
:custom
(setopt age-default-identity "~/source/dotfiles/keys/yubi1age.txt")
(age-default-identity "~/source/dotfiles/keys/yubi1age.txt")
(age-default-recipient "~/source/dotfiles/keys/myself.txt")
:config
(setenv "PINENTRY_PROGRAM" "pinentry-mac")
@@ -2181,6 +2173,10 @@ for completion. That makes it really annoying to use; don't use yasnippet with e
** Claude Code
#+BEGIN_SRC nix
{
programs.claude-code = {
enable = true;
};
programs.emacs = {
extraPackages = epkgs: with epkgs; [
(epkgs.trivialBuild {
@@ -2304,7 +2300,7 @@ I like Catppuccin Frappe as my theme. Let's use it in as many places as we can.
** Emacs
:PROPERTIES:
:header-args:elisp: :tangle target/emacs.el
:header-args:elisp: :tangle modules/home/emacs.el
:END:
#+BEGIN_SRC nix
@@ -2313,19 +2309,17 @@ I like Catppuccin Frappe as my theme. Let's use it in as many places as we can.
extraPackages = epkgs: with epkgs; [
catppuccin-theme
];
extraConfig = "(defvar my-base-font-size ${if pkgs.stdenv.isDarwin then "130" else "100"})";
extraConfig = ''(defvar my-base-font-size ${if pkgs.stdenv.isDarwin then "130" else "100"})
(require 'catppuccin-theme)
(setopt catppuccin-flavor 'frappe)
(load-theme 'catppuccin :no-confirm)
;; (set-face-attribute 'default nil :font "JetBrainsMono Nerd Font" :height 130)
;; (set-face-attribute 'fixed-pitch nil :font "JetBrainsMono Nerd Font" :height 130)
(set-face-attribute 'default nil :font "Iosevka Term SS14" :height my-base-font-size)
(set-face-attribute 'fixed-pitch nil :font "Iosevka Term SS14" :height my-base-font-size)
(set-face-attribute 'variable-pitch nil :font "Iosevka Etoile" :height my-base-font-size)
'';
};
}
#+END_SRC
#+BEGIN_SRC elisp
(require 'catppuccin-theme)
(setopt catppuccin-flavor 'frappe)
(load-theme 'catppuccin :no-confirm)
;; (set-face-attribute 'default nil :font "JetBrainsMono Nerd Font" :height 130)
;; (set-face-attribute 'fixed-pitch nil :font "JetBrainsMono Nerd Font" :height 130)
(set-face-attribute 'default nil :font "Iosevka Term SS14" :height my-base-font-size)
(set-face-attribute 'fixed-pitch nil :font "Iosevka Term SS14" :height my-base-font-size)
(set-face-attribute 'variable-pitch nil :font "Iosevka Etoile" :height my-base-font-size)
#+END_SRC