Initial switch back to one file + config options

This commit is contained in:
Joe Frikker
2026-09-16 10:42:10 -04:00
parent 61b30f5062
commit 7ecbf30138
2 changed files with 133 additions and 203 deletions
+10 -13
View File
@@ -55,16 +55,16 @@
modules =
[
nix-index-database.homeModules.default
"${modules}/base.nix"
"${modules}/desktop.nix"
"${modules}/redbook.nix"
"${modules}/redbook-desktop.nix"
"${modules}"
] ++
[{
home.stateVersion = "22.05";
home.username = "jfrikker";
home.homeDirectory = "/Users/jfrikker";
home.packages = [ pkgs.pinentry_mac ];
jfrikker.enable = true;
jfrikker.desktop.enable = true;
jfrikker.redbook.enable = true;
}];
extraSpecialArgs = { claude-code = claude-code.packages.aarch64-darwin.default; };
@@ -77,14 +77,13 @@
modules = [
nix-index-database.homeModules.default
"${modules}"
] ++
(pkgs.lib.filter
(n: pkgs.lib.strings.hasSuffix ".nix" n)
(pkgs.lib.filesystem.listFilesRecursive "${modules}/base")) ++
[{
home.stateVersion = "22.05";
home.username = "jfrikker";
home.homeDirectory = "/home/jfrikker";
jfrikker.enable = true;
}];
extraSpecialArgs = { claude-code = claude-code.packages.x86_64-linux.default; };
@@ -98,18 +97,15 @@
modules =
[
nix-index-database.homeModules.default
"${modules}"
] ++
(pkgs.lib.filter
(n: pkgs.lib.strings.hasSuffix ".nix" n)
(pkgs.lib.filesystem.listFilesRecursive "${modules}/base")) ++
(pkgs.lib.filter
(n: pkgs.lib.strings.hasSuffix ".nix" n)
(pkgs.lib.filesystem.listFilesRecursive "${modules}/desktop")) ++
[{
home.stateVersion = "22.05";
home.username = "jfrikker";
home.homeDirectory = "/home/jfrikker";
# home.packages = [ pkgs.pinentry ];
jfrikker.enable = true;
jfrikker.desktop.enable = true;
programs.ghostty = {
enable = true;
@@ -154,5 +150,6 @@
extraSpecialArgs = { claude-code = claude-code.packages.x86_64-linux.default; };
};
packages.x86_64-linux.default = modules-for-system nixpkgs.legacyPackages.x86_64-linux;
packages.aarch64-darwin.default = modules-for-system nixpkgs.legacyPackages.aarch64-darwin;
};
}
+123 -190
View File
@@ -1,40 +1,33 @@
#+PROPERTY: header-args :mkdirp yes
#+PROPERTY: header-args :mkdirp yes :noweb yes
#+PROPERTY: header-args:elisp :lexical t
* Categories
#+BEGIN_SRC nix :tangle target/base.nix
{lib, ...}: {
imports = lib.filter
(n: lib.strings.hasSuffix ".nix" n)
(lib.filesystem.listFilesRecursive ./base);
}
#+END_SRC
#+BEGIN_SRC nix :tangle target/desktop.nix
{lib, ...}: {
imports = lib.filter
(n: lib.strings.hasSuffix ".nix" n)
(lib.filesystem.listFilesRecursive ./desktop);
}
#+END_SRC
#+BEGIN_SRC nix :tangle target/redbook.nix
{lib, ...}: {
imports = lib.filter
(n: lib.strings.hasSuffix ".nix" n)
(lib.filesystem.listFilesRecursive ./redbook);
}
#+END_SRC
#+BEGIN_SRC nix :tangle target/redbook-desktop.nix
{lib, ...}: {
imports = lib.filter
(n: lib.strings.hasSuffix ".nix" n)
(lib.filesystem.listFilesRecursive ./redbook-desktop);
}
#+END_SRC
#+begin_src nix :tangle target/default.nix
{lib, pkgs, config, claude-code, ...}: let
inherit (lib)
mkIf
mkMerge
;
cfg = config.jfrikker;
in {
options.jfrikker = {
enable = lib.mkEnableOption "Joe Frikker's configuration";
desktop.enable = lib.mkEnableOption "Desktop (GUI) applications";
redbook.enable = lib.mkEnableOption "Redbook-specific configuration";
<<nix-options>>
};
config = mkIf cfg.enable (mkMerge [
<<nix-configs>>
]);
}
#+end_src
* Packages
:PROPERTIES:
:header-args:nix: :noweb-ref nix-configs
:END:
Home-manager "packages" are simply binaries that are placed on the path, without any attached
configuration. The code blocks in this section contain package lists that go under the packages
section above.
@@ -45,8 +38,7 @@ in a ~nix~ devshell I think I'd also like to use it for scripting / exploratory
so I'm installing it globally with a useful set of libraries. I should curate this somewhat
carefully so it doesn't get carried away...
#+BEGIN_SRC nix :tangle target/base/sbcl.nix
{pkgs, ...}:
#+BEGIN_SRC nix
{
home.packages = with pkgs; [
rlwrap
@@ -94,8 +86,7 @@ the name implies, allows generating and storing ~age~ keys on a Yubikey. ~rage~
~age~ when using ~age.el~, because it supports ~pinentry~. That allows it to prompt for yubikey pins
using a dialog, rather than a command line prompt.
#+BEGIN_SRC nix :tangle target/base/crypto.nix
{pkgs, ...}:
#+BEGIN_SRC nix
{
home.packages = with pkgs; [
rage
@@ -114,8 +105,7 @@ tools. They boost better speed, or simply more streamlined features.
| ~ripgrep~ | ~grep~ |
| ~xh~ | ~curl~ |
#+BEGIN_SRC nix :tangle target/base/rust-reimpls.nix
{pkgs, ...}:
#+BEGIN_SRC nix
{
home.packages = with pkgs; [
dust
@@ -129,8 +119,7 @@ tools. They boost better speed, or simply more streamlined features.
[[https://ledger-cli.org/][~ledger~]] is how I manage my budget. It's a plain-text accounting tool that's really awesome.
#+BEGIN_SRC nix :tangle target/base/ledger.nix
{pkgs, ...}:
#+BEGIN_SRC nix
{
home.packages = with pkgs; [
ledger
@@ -140,8 +129,7 @@ tools. They boost better speed, or simply more streamlined features.
~nil~ is an LSP server for nix files.
#+BEGIN_SRC nix :tangle target/base/nil.nix
{pkgs, ...}:
#+BEGIN_SRC nix
{
home.packages = with pkgs; [
nil
@@ -153,8 +141,7 @@ tools. They boost better speed, or simply more streamlined features.
computers in the world, assuming that you have an out-of-band way to communicate a passphrase
between them. Once installed, the actual command is ~wormhole~.
#+begin_src nix :tangle target/base/magic-wormhole.nix
{pkgs, ...}:
#+begin_src nix
{
home.packages = with pkgs; [
magic-wormhole
@@ -165,22 +152,20 @@ between them. Once installed, the actual command is ~wormhole~.
These are the other programs I have installed globally. A few (like ~awscli~, ~mysql-client~, etc.)
are still Redbook-specific; ideally I'd find another way to install them.
#+BEGIN_SRC nix :tangle target/redbook/other-packages.nix
{pkgs, ...}:
{
#+BEGIN_SRC nix
(mkIf cfg.redbook.enable {
home.packages = with pkgs; [
openssh
];
fonts.fontconfig.enable = true;
}
})
#+END_SRC
These programs require a full desktop environment:
#+BEGIN_SRC nix :tangle target/desktop/desktop-packages.nix
{pkgs, ...}:
{
#+BEGIN_SRC nix
(mkIf cfg.desktop.enable {
home.packages = with pkgs; [
google-chrome
nerd-fonts.jetbrains-mono
@@ -193,12 +178,11 @@ These programs require a full desktop environment:
proton-pass
wireshark
];
}
})
#+END_SRC
#+BEGIN_SRC nix :tangle target/redbook-desktop/desktop-packages.nix
{pkgs, ...}:
{
#+BEGIN_SRC nix
(mkIf (cfg.redbook.enable && cfg.desktop.enable) {
home.packages = with pkgs; [
linear
notion-app
@@ -211,10 +195,14 @@ These programs require a full desktop environment:
})
teams
];
}
})
#+END_SRC
* Program Configurations
:PROPERTIES:
:header-args:nix: :noweb-ref nix-configs
:END:
This section contains applications whose config files will be generated by Home Manager. Home
Manager calls these "programs" (as opposed to "packages", which are just binaries to put on the
path).
@@ -225,7 +213,7 @@ Although Home-Manager generates config files for these programs, they don't need
configuration. I'm not sure what benefit there is to enabling ~jq~ as a Home Manager program, rather
than just as an available package, but there doesn't seem to be a downside.
#+BEGIN_SRC nix :tangle target/base/simple-programs.nix
#+BEGIN_SRC nix
{
programs = {
bash.enable = true;
@@ -244,7 +232,7 @@ than just as an available package, but there doesn't seem to be a downside.
provides syntax-highlighting versions of a few other commands. It's honestly not incredibly useful,
but still nice to have.
#+BEGIN_SRC nix :tangle target/base/bat.nix
#+BEGIN_SRC nix
{
programs.bat = {
enable = true;
@@ -255,7 +243,7 @@ but still nice to have.
** Comma
#+BEGIN_SRC nix :tangle target/base/comma.nix
#+BEGIN_SRC nix
{
programs.nix-index.enable = true;
programs.nix-index-database.comma.enable = true;
@@ -267,7 +255,7 @@ but still nice to have.
~direnv~ allows loading per-project paths as I navigate to their directories on the command line. I
leverage this with the emacs ~envrc~ package.
#+BEGIN_SRC nix :tangle target/base/direnv.nix
#+BEGIN_SRC nix
{
programs.direnv = {
enable = true;
@@ -280,7 +268,7 @@ leverage this with the emacs ~envrc~ package.
~eza~ is an ~ls~ replacement that offers icons, colors, and some easier command-line options.
#+BEGIN_SRC nix :tangle target/base/eza.nix
#+BEGIN_SRC nix
{
programs.eza = {
enable = true;
@@ -296,7 +284,7 @@ leverage this with the emacs ~envrc~ package.
~fzf~ offers a variety of fuzzy finders right from the shell. I haven't been using this, so I'll
turn it off for now.
#+BEGIN_SRC nix :tangle target/base/fzf.nix
#+BEGIN_SRC nix
{
programs.fzf = {
defaultCommand = "fd --type f";
@@ -312,7 +300,7 @@ turn it off for now.
We all know what ~git~ does.
#+BEGIN_SRC nix :tangle target/base/git.nix
#+BEGIN_SRC nix
{
programs.git = {
enable = true;
@@ -333,7 +321,7 @@ We all know what ~git~ does.
The best text editor ever? Heresy!
#+BEGIN_SRC nix :tangle target/base/helix.nix
#+BEGIN_SRC nix
{
programs.helix = {
enable = true;
@@ -411,7 +399,7 @@ The best text editor ever? Heresy!
~nh~ is an alternative frontend to home-manager and a few other nix tools that I'm trying out. It
shows what's changing when you update your config, which is nice.
#+BEGIN_SRC nix :tangle target/base/nh.nix
#+BEGIN_SRC nix
{
programs.nh = {
enable = true;
@@ -425,7 +413,7 @@ shows what's changing when you update your config, which is nice.
~starship~ gives me a nice shell prompt, mostly showing the versions of relevant software I have
installed. It's shell-agnostic, so it works with both bash and zsh.
#+BEGIN_SRC nix :tangle target/base/starship.nix
#+BEGIN_SRC nix
{
programs.starship = {
enable = true;
@@ -458,8 +446,7 @@ installed. It's shell-agnostic, so it works with both bash and zsh.
I'm using ~wezterm~ instead of ~tmux~ for now, so this is disabled, but I'm keeping the config here
in case I need it later.
#+BEGIN_SRC nix :tangle target/base/tmux.nix
{pkgs, ...}:
#+BEGIN_SRC nix
{
programs.tmux = {
baseIndex = 1;
@@ -487,14 +474,14 @@ in case I need it later.
#+END_SRC
** Wezterm
:PROPERTIES:
:header-args:lua: :tangle target/desktop/wezterm.lua
:header-args:lua: :noweb-ref wezterm-config
:END:
~wezterm~ is a fast terminal emulator and multiplexer. It is configured using lua. We'll define its
config in two blocks, so we can get lua syntax highlighting in org. First, the nix configuration:
#+BEGIN_SRC nix :tangle target/desktop/wezterm.nix
{pkgs, ...}: {
#+BEGIN_SRC nix
(mkIf cfg.desktop.enable {
programs.wezterm = {
enable = true;
extraConfig = ''
@@ -503,13 +490,20 @@ config in two blocks, so we can get lua syntax highlighting in org. First, the n
config.font_size = ${if pkgs.stdenv.isDarwin then "13.0" else "10.0"}
'' + builtins.readFile ./wezterm.lua;
};
}
})
#+END_SRC
Then the real lua config:
#+BEGIN_SRC lua
#+begin_src lua :tangle target/wezterm.lua :noweb-ref nil
local config = {}
<<wezterm-config>>
return 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
@@ -700,8 +694,8 @@ Now we'll set up some keybindings:
#+END_SRC
** Kitty
#+BEGIN_SRC nix :tangle target/desktop/kitty.nix
{pkgs, ...}: {
#+BEGIN_SRC nix
(mkIf cfg.desktop.enable {
programs.kitty = {
enable = true;
font = {
@@ -722,16 +716,16 @@ Now we'll set up some keybindings:
"ctrl+9" = "goto_tab 9";
};
};
}
})
#+END_SRC
** Ghostty
Disabled until I can get it working on both linux and mac (if I want to).
#+BEGIN_SRC nix
{pkgs, ...}: {
{
programs.ghostty = {
enable = true;
enable = false;
package = pkgs.ghostty-bin;
settings = {
adjust-cell-height = "15%";
@@ -747,7 +741,7 @@ Disabled until I can get it working on both linux and mac (if I want to).
This is my default shell for now. Unfortunately, nix requires a posix-compliant shell, so bash or
zsh it is.
#+BEGIN_SRC nix :tangle target/base/zsh.nix
#+BEGIN_SRC nix
{
programs.zsh = {
enable = true;
@@ -763,8 +757,7 @@ zsh it is.
Actually, nix *really* requires ~bash~. This is a plugin that allows using zsh from nix-shell.
#+BEGIN_SRC nix :tangle target/base/zsh-nix-shell.nix
{pkgs, ...}:
#+BEGIN_SRC nix
{
programs.zsh.plugins = [
{
@@ -783,8 +776,8 @@ Actually, nix *really* requires ~bash~. This is a plugin that allows using zsh f
** Claude Code
#+BEGIN_SRC nix :tangle target/base/claude-code.nix
{claude-code, ...}: {
#+BEGIN_SRC nix
{
programs.claude-code = {
enable = true;
package = claude-code;
@@ -793,6 +786,11 @@ Actually, nix *really* requires ~bash~. This is a plugin that allows using zsh f
#+END_SRC
* Emacs
:PROPERTIES:
:header-args:nix: :noweb-ref nix-configs
:header-args:elisp: :tangle target/emacs.el
:END:
Emacs is a huge portion of this configuration, so although it's a home-manager "program", I'm
breaking it out into its own top-level section. Many of the sections here have two code blocks: a
nix code block listing the emacs packages to include, and an elisp code block to configure them in
@@ -801,6 +799,15 @@ emacs.
We'll put the actual emacs configs into separate files, rather than into nix string literals. This
helps with a few places where nix's string interpolation was causing problems.
#+BEGIN_SRC nix
(mkIf cfg.desktop.enable {
programs.emacs = {
enable = true;
extraConfig = builtins.readFile ./emacs.el;
};
})
#+END_SRC
** Keybindings
These keybindings are scattered throughout this file, I'm collecting them all here to make it easier
to track them.
@@ -825,15 +832,11 @@ to track them.
| C-c M-g | | [[id:4F426E77-CE03-4BF8-8D1B-7791C7C02B28][Magit file dispatch]] | |
** Global Settings
:PROPERTIES:
:header-args:elisp: :tangle target/desktop/emacs-global.el
:END:
These are just some general settings that apply everywhere. First, a few packages:
#+BEGIN_SRC nix :tangle target/desktop/emacs-global.nix
#+BEGIN_SRC nix
{
programs.emacs = {
enable = true;
extraPackages = epkgs: with epkgs; [
ace-window
doom-modeline
@@ -842,7 +845,6 @@ These are just some general settings that apply everywhere. First, a few package
mixed-pitch
popper
];
extraConfig = builtins.readFile ./emacs-global.el;
};
}
#+END_SRC
@@ -1339,16 +1341,11 @@ content to be.
** Editing
:PROPERTIES:
:header-args:elisp: :tangle target/desktop/emacs-editing.el
:END:
This configuration affects general text editing, across all modes. First, some packages:
#+BEGIN_SRC nix :tangle target/desktop/emacs-editing.nix
#+BEGIN_SRC nix
{
programs.emacs = {
enable = true;
extraPackages = epkgs: with epkgs; [
apheleia
avy
@@ -1360,7 +1357,6 @@ This configuration affects general text editing, across all modes. First, some p
# evil-org
string-inflection
];
extraConfig = builtins.readFile ./emacs-editing.el;
};
}
#+END_SRC
@@ -1475,18 +1471,12 @@ Some auto-formatting stuff
#+end_src
** Workflow
:PROPERTIES:
:header-args:elisp: :tangle target/desktop/emacs-workflow.el
:END:
#+BEGIN_SRC nix :tangle target/desktop/emacs-workflow.nix
#+BEGIN_SRC nix
{
programs.emacs = {
enable = true;
extraPackages = epkgs: with epkgs; [
buffer-terminator
];
extraConfig = builtins.readFile ./emacs-workflow.el;
};
}
#+END_SRC
@@ -1499,14 +1489,9 @@ Some auto-formatting stuff
#+END_SRC
** Language Support
:PROPERTIES:
:header-args:elisp: :tangle target/desktop/emacs-languages.el
:END:
#+BEGIN_SRC nix :tangle target/desktop/emacs-languages.nix
#+BEGIN_SRC nix
{
programs.emacs = {
enable = true;
extraPackages = epkgs: with epkgs; [
consult-eglot
graphql-ts-mode
@@ -1568,7 +1553,6 @@ Some auto-formatting stuff
]))
yaml-pro
];
extraConfig = builtins.readFile ./emacs-languages.el;
};
}
#+END_SRC
@@ -1834,18 +1818,12 @@ for completion. That makes it really annoying to use; don't use yasnippet with e
#+END_SRC
** Envrc
:PROPERTIES:
:header-args:elisp: :tangle target/desktop/emacs-envrc.el
:END:
#+BEGIN_SRC nix :tangle target/desktop/emacs-envrc.nix
#+BEGIN_SRC nix
{
programs.emacs = {
enable = true;
extraPackages = epkgs: with epkgs; [
envrc
];
extraConfig = builtins.readFile ./emacs-envrc.el;
};
}
#+END_SRC
@@ -1856,14 +1834,9 @@ for completion. That makes it really annoying to use; don't use yasnippet with e
#+END_SRC
** Magit
:PROPERTIES:
:header-args:elisp: :tangle target/desktop/emacs-magit.el
:END:
#+BEGIN_SRC nix :tangle target/desktop/emacs-magit.nix
#+BEGIN_SRC nix
{
programs.emacs = {
enable = true;
extraPackages = epkgs: with epkgs; [
consult-gh
diff-hl
@@ -1871,7 +1844,6 @@ for completion. That makes it really annoying to use; don't use yasnippet with e
git-timemachine
magit
];
extraConfig = builtins.readFile ./emacs-magit.el;
};
}
#+END_SRC
@@ -1900,14 +1872,9 @@ for completion. That makes it really annoying to use; don't use yasnippet with e
#+END_SRC
** Vertico
:PROPERTIES:
:header-args:elisp: :tangle target/desktop/emacs-vertico.el
:END:
#+BEGIN_SRC nix :tangle target/desktop/emacs-vertico.nix
#+BEGIN_SRC nix
{
programs.emacs = {
enable = true;
extraPackages = epkgs: with epkgs; [
cape
consult
@@ -1917,7 +1884,6 @@ for completion. That makes it really annoying to use; don't use yasnippet with e
orderless
vertico
];
extraConfig = builtins.readFile ./emacs-vertico.el;
};
}
#+END_SRC
@@ -2006,14 +1972,9 @@ for completion. That makes it really annoying to use; don't use yasnippet with e
#+END_SRC
** Org
:PROPERTIES:
:header-args:elisp: :tangle target/desktop/emacs-org.el
:END:
#+BEGIN_SRC nix :tangle target/desktop/emacs-org.nix
#+BEGIN_SRC nix
{
programs.emacs = {
enable = true;
extraPackages = epkgs: with epkgs; [
org-modern
org-present
@@ -2022,7 +1983,6 @@ for completion. That makes it really annoying to use; don't use yasnippet with e
verb
visual-fill-column
];
extraConfig = builtins.readFile ./emacs-org.el;
};
}
#+END_SRC
@@ -2145,18 +2105,12 @@ for completion. That makes it really annoying to use; don't use yasnippet with e
#+END_SRC
** Terminal
:PROPERTIES:
:header-args:elisp: :tangle target/desktop/emacs-terminal.el
:END:
#+BEGIN_SRC nix :tangle target/desktop/emacs-terminal.nix
#+BEGIN_SRC nix
{
programs.emacs = {
enable = true;
extraPackages = epkgs: with epkgs; [
eat
];
extraConfig = builtins.readFile ./emacs-terminal.el;
};
}
#+END_SRC
@@ -2168,18 +2122,12 @@ for completion. That makes it really annoying to use; don't use yasnippet with e
#+END_SRC
** Slack
:PROPERTIES:
:header-args:elisp: :tangle target/desktop/emacs-slack.el
:END:
#+BEGIN_SRC nix :tangle target/desktop/emacs-slack.nix
#+BEGIN_SRC nix
{
programs.emacs = {
enable = true;
extraPackages = epkgs: with epkgs; [
slack
];
extraConfig = builtins.readFile ./emacs-slack.el;
};
}
#+END_SRC
@@ -2198,11 +2146,9 @@ for completion. That makes it really annoying to use; don't use yasnippet with e
#+END_SRC
** Ledger
#+BEGIN_SRC nix :tangle target/desktop/emacs-ledger.nix
#+BEGIN_SRC nix
{
programs.emacs = {
enable = true;
extraPackages = epkgs: with epkgs; [
ledger-mode
];
@@ -2211,18 +2157,12 @@ for completion. That makes it really annoying to use; don't use yasnippet with e
#+END_SRC
** Age
:PROPERTIES:
:header-args:elisp: :tangle target/desktop/emacs-age.el
:END:
#+BEGIN_SRC nix :tangle target/desktop/emacs-age.nix
#+BEGIN_SRC nix
{
programs.emacs = {
enable = true;
extraPackages = epkgs: with epkgs; [
age
];
extraConfig = builtins.readFile ./emacs-age.el;
};
}
#+END_SRC
@@ -2238,15 +2178,9 @@ for completion. That makes it really annoying to use; don't use yasnippet with e
#+END_SRC
** Claude Code
:PROPERTIES:
:header-args:elisp: :tangle target/desktop/emacs-claude-code.el
:END:
#+BEGIN_SRC nix :tangle target/desktop/emacs-claude-code.nix
{pkgs, ...}:
#+BEGIN_SRC nix
{
programs.emacs = {
enable = true;
extraPackages = epkgs: with epkgs; [
(epkgs.trivialBuild {
pname = "claude-code";
@@ -2260,7 +2194,6 @@ for completion. That makes it really annoying to use; don't use yasnippet with e
packageRequires = [ epkgs.inheritenv ];
})
];
extraConfig = builtins.readFile ./emacs-claude-code.el;
};
}
#+END_SRC
@@ -2271,11 +2204,14 @@ for completion. That makes it really annoying to use; don't use yasnippet with e
:custom (claude-code-optimize-window-resize nil))
#+END_SRC
* Theme
:PROPERTIES:
:header-args:nix: :noweb-ref nix-configs
:END:
I like Catppuccin Frappe as my theme. Let's use it in as many places as we can.
** Bat
#+BEGIN_SRC nix :tangle target/base/bat-theme.nix
{pkgs, ...}:
#+BEGIN_SRC nix
{
programs.bat = {
config.theme = "catppuccin-frappe";
@@ -2295,15 +2231,14 @@ I like Catppuccin Frappe as my theme. Let's use it in as many places as we can.
#+END_SRC
** Helix
#+BEGIN_SRC nix :tangle target/base/helix-theme.nix
#+BEGIN_SRC nix
{
programs.helix.settings.theme = "catppuccin_frappe";
}
#+END_SRC
** Tmux
#+BEGIN_SRC nix :tangle target/base/tmux-theme.nix
{pkgs, ...}:
#+BEGIN_SRC nix
{
programs.tmux.plugins = [
{
@@ -2317,8 +2252,7 @@ I like Catppuccin Frappe as my theme. Let's use it in as many places as we can.
#+END_SRC
** Lazygit
#+BEGIN_SRC nix :tangle target/base/lazygit.nix
{pkgs, ...}:
#+BEGIN_SRC nix
{
xdg = {
enable = false
@@ -2338,8 +2272,7 @@ I like Catppuccin Frappe as my theme. Let's use it in as many places as we can.
#+END_SRC
** Starship
#+BEGIN_SRC nix :tangle target/base/starship_colors.nix
{pkgs, ...}:
#+BEGIN_SRC nix
{
programs.starship.settings = builtins.fromTOML (builtins.readFile
(pkgs.fetchFromGitHub
@@ -2353,14 +2286,16 @@ I like Catppuccin Frappe as my theme. Let's use it in as many places as we can.
#+END_SRC
** Wezterm
#+BEGIN_SRC lua :tangle target/desktop/wezterm.lua
config.color_scheme = 'Catppuccin Frappe'
:PROPERTIES:
:header-args:lua: :noweb-ref wezterm-config
:END:
return config
#+BEGIN_SRC lua
config.color_scheme = 'Catppuccin Frappe'
#+END_SRC
** Ghostty
#+BEGIN_SRC nix :tangle target/desktop/ghostty-theme.nix
#+BEGIN_SRC nix
{
programs.ghostty.settings.theme = "Catppuccin Frappe";
}
@@ -2368,18 +2303,16 @@ 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/desktop/emacs-theme.el
:header-args:elisp: :tangle target/emacs.el
:END:
#+BEGIN_SRC nix :tangle target/desktop/emacs-theme.nix
{pkgs, ...}: {
#+BEGIN_SRC nix
{
programs.emacs = {
enable = true;
extraPackages = epkgs: with epkgs; [
catppuccin-theme
];
extraConfig = "(defvar my-base-font-size ${if pkgs.stdenv.isDarwin then "130" else "100"})" +
builtins.readFile ./emacs-theme.el;
extraConfig = "(defvar my-base-font-size ${if pkgs.stdenv.isDarwin then "130" else "100"})";
};
}
#+END_SRC