Initial switch back to one file + config options
This commit is contained in:
@@ -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;
|
||||
};
|
||||
}
|
||||
|
||||
@@ -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
|
||||
|
||||
Reference in New Issue
Block a user