Separate base from asahi-specific configuration
This commit is contained in:
parent
450ca7f685
commit
d8b632ac70
5 changed files with 516 additions and 463 deletions
3
.envrc
3
.envrc
|
@ -4,6 +4,5 @@
|
||||||
|
|
||||||
watch_dir ./sops
|
watch_dir ./sops
|
||||||
watch_file ./home-manager/default.nix
|
watch_file ./home-manager/default.nix
|
||||||
watch_file ./home-manager/profiles/default.nix
|
watch_file ./home-manager/*/default.nix
|
||||||
watch_file ./home-manager/profiles/*/default.nix
|
|
||||||
use flake
|
use flake
|
||||||
|
|
|
@ -16,6 +16,7 @@
|
||||||
inputs.sops-nix.homeManagerModules.sops
|
inputs.sops-nix.homeManagerModules.sops
|
||||||
inputs.stylix.homeModules.stylix
|
inputs.stylix.homeModules.stylix
|
||||||
inputs.catppuccin.homeModules.catppuccin
|
inputs.catppuccin.homeModules.catppuccin
|
||||||
|
../base.nix
|
||||||
./home.nix
|
./home.nix
|
||||||
];
|
];
|
||||||
}
|
}
|
||||||
|
|
|
@ -12,59 +12,18 @@
|
||||||
|
|
||||||
let
|
let
|
||||||
username = "sudoer777";
|
username = "sudoer777";
|
||||||
localFastModel = "qwen2.5-coder-num_ctx";
|
|
||||||
localReasoningModel = "deepseek-r1-num_ctx";
|
|
||||||
remoteFastModel = "deepseek/deepseek-chat-v3-0324:free"; # "qwen/qwen-2.5-coder-32b-instruct:free";
|
|
||||||
remoteReasoningModel = "deepseek/deepseek-r1-0528:free";
|
|
||||||
in
|
in
|
||||||
{
|
{
|
||||||
sops = {
|
sops.age.keyFile = /home/${username}/.config/sops/age/keys.txt;
|
||||||
secrets = {
|
|
||||||
openrouter_api_key = { };
|
|
||||||
};
|
|
||||||
defaultSopsFile = ../../sops/secrets.yaml;
|
|
||||||
age.keyFile = /home/${username}/.config/sops/age/keys.txt;
|
|
||||||
};
|
|
||||||
# https://nix.catppuccin.com/search/rolling/
|
# https://nix.catppuccin.com/search/rolling/
|
||||||
catppuccin = {
|
catppuccin = {
|
||||||
enable = true;
|
|
||||||
flavor = "mocha";
|
|
||||||
floorp.profiles.default.force = true;
|
floorp.profiles.default.force = true;
|
||||||
};
|
};
|
||||||
# https://nix-community.github.io/stylix/options/modules/alacritty.html
|
# https://nix-community.github.io/stylix/options/modules/alacritty.html
|
||||||
stylix = {
|
stylix.targets = {
|
||||||
enable = true;
|
|
||||||
base16Scheme = "${pkgs.base16-schemes}/share/themes/catppuccin-mocha.yaml";
|
|
||||||
image = config.lib.stylix.pixel "base0A";
|
|
||||||
polarity = "dark";
|
|
||||||
fonts = {
|
|
||||||
serif = {
|
|
||||||
package = pkgs.libertinus;
|
|
||||||
name = "Libertinus Serif";
|
|
||||||
};
|
|
||||||
sansSerif = {
|
|
||||||
package = pkgs.inter;
|
|
||||||
name = "Inter";
|
|
||||||
};
|
|
||||||
monospace = {
|
|
||||||
package = pkgs.nerd-fonts.jetbrains-mono;
|
|
||||||
name = "JetBrains Mono Nerd Font";
|
|
||||||
};
|
|
||||||
emoji = {
|
|
||||||
package = pkgs.openmoji-color;
|
|
||||||
name = "OpenMoji Color";
|
|
||||||
};
|
|
||||||
};
|
|
||||||
targets = {
|
|
||||||
bat.enable = false;
|
|
||||||
floorp = {
|
floorp = {
|
||||||
profileNames = [ "default" ];
|
profileNames = [ "default" ];
|
||||||
};
|
};
|
||||||
fzf.enable = false;
|
|
||||||
helix.enable = false;
|
|
||||||
kitty.variant256Colors = true;
|
|
||||||
starship.enable = false;
|
|
||||||
};
|
|
||||||
};
|
};
|
||||||
nixGL = {
|
nixGL = {
|
||||||
packages = import inputs.nixgl {
|
packages = import inputs.nixgl {
|
||||||
|
@ -77,76 +36,36 @@ in
|
||||||
vulkan.enable = true;
|
vulkan.enable = true;
|
||||||
};
|
};
|
||||||
home = {
|
home = {
|
||||||
stateVersion = "24.11";
|
|
||||||
username = username;
|
username = username;
|
||||||
homeDirectory = "/home/sudoer777";
|
homeDirectory = "/home/${username}";
|
||||||
language.base = "eo.utf8";
|
language.base = "eo.utf8";
|
||||||
packages = [
|
packages = [
|
||||||
pkgs.acpi
|
|
||||||
pkgs.bitwarden-desktop # TODO: switch to rbw
|
pkgs.bitwarden-desktop # TODO: switch to rbw
|
||||||
pkgs.bzip3
|
|
||||||
# pkgs.cacert - TODO: should be used on NixOS
|
# pkgs.cacert - TODO: should be used on NixOS
|
||||||
# pkgs.cups - TODO: should be used on NixOS
|
# pkgs.cups - TODO: should be used on NixOS
|
||||||
pkgs.curl
|
|
||||||
pkgs.dino
|
pkgs.dino
|
||||||
pkgs.e2fsprogs
|
|
||||||
pkgs.element-desktop # TODO: switch to programs.element-desktop
|
pkgs.element-desktop # TODO: switch to programs.element-desktop
|
||||||
pkgs.file
|
|
||||||
# pkgs.firefox
|
# pkgs.firefox
|
||||||
# pkgs.firefoxpwa - requires system access
|
# pkgs.firefoxpwa - requires system access
|
||||||
pkgs.gzip
|
|
||||||
pkgs.gnutar
|
|
||||||
# pkgs.high-tide - doesn't work
|
# pkgs.high-tide - doesn't work
|
||||||
pkgs.iproute2
|
|
||||||
pkgs.iputils
|
|
||||||
pkgs.julia
|
|
||||||
(config.lib.nixGL.wrap pkgs.kdePackages.audiotube)
|
(config.lib.nixGL.wrap pkgs.kdePackages.audiotube)
|
||||||
pkgs.kdePackages.dolphin
|
pkgs.kdePackages.dolphin
|
||||||
pkgs.kdePackages.falkon
|
pkgs.kdePackages.falkon
|
||||||
# pkgs.ladybird
|
# pkgs.ladybird
|
||||||
# pkgs.languagetool - TODO: should be used on NixOS
|
|
||||||
pkgs.libreoffice-fresh
|
pkgs.libreoffice-fresh
|
||||||
pkgs.librewolf # TODO: switch to programs.librewolf
|
pkgs.librewolf # TODO: switch to programs.librewolf
|
||||||
pkgs.lm_sensors
|
|
||||||
pkgs.logseq # TODO: switch to joplin-desktop
|
pkgs.logseq # TODO: switch to joplin-desktop
|
||||||
pkgs.lsof
|
|
||||||
pkgs.mailutils
|
|
||||||
pkgs.mupdf
|
pkgs.mupdf
|
||||||
# pkgs.ncurses
|
|
||||||
pkgs.nixd
|
|
||||||
pkgs.pijul
|
|
||||||
pkgs.procps # TODO: switch to uutils when available
|
|
||||||
pkgs.procs
|
|
||||||
pkgs.psmisc
|
|
||||||
pkgs.signal-desktop
|
pkgs.signal-desktop
|
||||||
# pkgs.simplex-chat-desktop - not available on aarch64
|
# pkgs.simplex-chat-desktop - not available on aarch64
|
||||||
# pkgs.slacky - doesn't work, requires update
|
# pkgs.slacky - doesn't work, requires update
|
||||||
pkgs.speedtest-cli
|
|
||||||
pkgs.strace
|
|
||||||
# pkgs.sudo-rs - TODO: should be used on NixOS
|
|
||||||
pkgs.tcpdump
|
|
||||||
pkgs.teams-for-linux # TODO: Move to flake in UTD folder
|
pkgs.teams-for-linux # TODO: Move to flake in UTD folder
|
||||||
pkgs.telegram-desktop
|
pkgs.telegram-desktop
|
||||||
# pkgs.tidal-hifi - aarch64 build broken
|
# pkgs.tidal-hifi - aarch64 build broken
|
||||||
pkgs.util-linux # TODO: switch to uutils when available
|
|
||||||
pkgs.uutils-coreutils-noprefix
|
|
||||||
pkgs.uutils-diffutils
|
|
||||||
pkgs.uutils-findutils
|
|
||||||
# pkgs.widevine-cdm - doesn't work
|
# pkgs.widevine-cdm - doesn't work
|
||||||
pkgs.wget
|
|
||||||
pkgs.xz
|
|
||||||
];
|
];
|
||||||
file = { };
|
|
||||||
shell = {
|
|
||||||
enableNushellIntegration = true;
|
|
||||||
enableZshIntegration = true;
|
|
||||||
enableFishIntegration = true;
|
|
||||||
};
|
|
||||||
};
|
};
|
||||||
programs = {
|
programs = {
|
||||||
home-manager = {
|
|
||||||
enable = true;
|
|
||||||
};
|
|
||||||
chromium = {
|
chromium = {
|
||||||
enable = true;
|
enable = true;
|
||||||
};
|
};
|
||||||
|
@ -174,247 +93,13 @@ in
|
||||||
# zathura = {
|
# zathura = {
|
||||||
# enable = true;
|
# enable = true;
|
||||||
# };
|
# };
|
||||||
man = {
|
|
||||||
enable = true;
|
|
||||||
};
|
|
||||||
# TODO: Disable Guix integration
|
|
||||||
# password-store = {
|
|
||||||
# enable = true;
|
|
||||||
# };
|
|
||||||
bat = {
|
|
||||||
enable = true;
|
|
||||||
};
|
|
||||||
nix-your-shell = {
|
|
||||||
enable = true;
|
|
||||||
};
|
|
||||||
wezterm = {
|
wezterm = {
|
||||||
enable = true;
|
enable = true;
|
||||||
package = (config.lib.nixGL.wrap pkgs.wezterm);
|
package = (config.lib.nixGL.wrap pkgs.wezterm);
|
||||||
};
|
};
|
||||||
fzf = {
|
|
||||||
enable = true;
|
|
||||||
};
|
|
||||||
vim = {
|
|
||||||
enable = true;
|
|
||||||
};
|
|
||||||
yt-dlp = {
|
yt-dlp = {
|
||||||
enable = true;
|
enable = true;
|
||||||
};
|
};
|
||||||
helix = {
|
|
||||||
enable = true;
|
|
||||||
defaultEditor = true;
|
|
||||||
settings = {
|
|
||||||
editor.soft-wrap = {
|
|
||||||
enable = true;
|
|
||||||
};
|
|
||||||
};
|
|
||||||
};
|
|
||||||
nushell = {
|
|
||||||
enable = true;
|
|
||||||
environmentVariables = {
|
|
||||||
OPENROUTER_API_KEY = lib.hm.nushell.mkNushellInline "cat ${config.sops.secrets.openrouter_api_key.path}";
|
|
||||||
};
|
|
||||||
settings = {
|
|
||||||
completions = {
|
|
||||||
algorithm = "fuzzy";
|
|
||||||
case_sensitive = false;
|
|
||||||
external = {
|
|
||||||
enable = true;
|
|
||||||
};
|
|
||||||
};
|
|
||||||
};
|
|
||||||
# set -x ZATHURA_PLUGINS_PATH $GUIX_HOME/lib/zathura
|
|
||||||
shellAliases = {
|
|
||||||
aichat_reasoning_remote = "${pkgs.aichat}/bin/aichat --model openrouter:${remoteReasoningModel}";
|
|
||||||
aichat_reasoning_local = "${pkgs.aichat}/bin/aichat --model ollama:${localReasoningModel}";
|
|
||||||
aichat_fast_remote = "${pkgs.aichat}/bin/aichat --model openrouter:${remoteFastModel}";
|
|
||||||
aichat_fast_local = "${pkgs.aichat}/bin/aichat --model ollama:${localFastModel}";
|
|
||||||
codex_remote = "${pkgs.codex}/bin/codex --provider openrouter --model ${remoteFastModel}";
|
|
||||||
codex_local = "${pkgs.codex}/bin/codex --provider ollama --model ${localFastModel}";
|
|
||||||
hotspot = "sudo sysctl net.ipv4.ip_default_ttl=65";
|
|
||||||
};
|
|
||||||
};
|
|
||||||
starship = {
|
|
||||||
enable = true;
|
|
||||||
settings = {
|
|
||||||
format =
|
|
||||||
"[](red)"
|
|
||||||
+ "$os"
|
|
||||||
+ "$username"
|
|
||||||
+ "[](bg:peach fg:red)"
|
|
||||||
+ "$directory"
|
|
||||||
+ "[](bg:yellow fg:peach)"
|
|
||||||
+ "$git_branch"
|
|
||||||
+ "$git_status"
|
|
||||||
+ "[](fg:yellow bg:green)"
|
|
||||||
+ "$c"
|
|
||||||
+ "$rust"
|
|
||||||
+ "$golang"
|
|
||||||
+ "$nodejs"
|
|
||||||
+ "$php"
|
|
||||||
+ "$java"
|
|
||||||
+ "$kotlin"
|
|
||||||
+ "$haskell"
|
|
||||||
+ "$python"
|
|
||||||
+ "[](fg:green bg:sapphire)"
|
|
||||||
+ "$conda"
|
|
||||||
+ "$nix_shell"
|
|
||||||
+ "[](fg:sapphire bg:lavender)"
|
|
||||||
+ "$time"
|
|
||||||
+ "[ ](fg:lavender)"
|
|
||||||
+ "$cmd_duration"
|
|
||||||
+ "$line_break"
|
|
||||||
+ "$character";
|
|
||||||
os = {
|
|
||||||
disabled = false;
|
|
||||||
style = "bg:red fg:crust";
|
|
||||||
symbols = {
|
|
||||||
Windows = "";
|
|
||||||
Ubuntu = "";
|
|
||||||
SUSE = "";
|
|
||||||
Raspbian = "";
|
|
||||||
Mint = "";
|
|
||||||
Macos = "";
|
|
||||||
Manjaro = "";
|
|
||||||
Linux = "";
|
|
||||||
Gentoo = "";
|
|
||||||
Fedora = "";
|
|
||||||
Alpine = "";
|
|
||||||
Amazon = "";
|
|
||||||
Android = "";
|
|
||||||
Arch = "";
|
|
||||||
Artix = "";
|
|
||||||
CentOS = "";
|
|
||||||
Debian = "";
|
|
||||||
Redhat = "";
|
|
||||||
RedHatEnterprise = "";
|
|
||||||
NixOS = "";
|
|
||||||
};
|
|
||||||
};
|
|
||||||
username = {
|
|
||||||
show_always = true;
|
|
||||||
style_user = "bg:red fg:crust";
|
|
||||||
style_root = "bg:red fg:crust";
|
|
||||||
format = ''[ $user]($style)'';
|
|
||||||
};
|
|
||||||
directory = {
|
|
||||||
style = "bg:peach fg:crust";
|
|
||||||
format = "[ $path ]($style)";
|
|
||||||
truncation_length = 3;
|
|
||||||
truncation_symbol = "…/";
|
|
||||||
substitutions = {
|
|
||||||
"Documents" = " ";
|
|
||||||
"Downloads" = " ";
|
|
||||||
"Music" = " ";
|
|
||||||
"Pictures" = " ";
|
|
||||||
"Developer" = " ";
|
|
||||||
};
|
|
||||||
};
|
|
||||||
git_branch = {
|
|
||||||
symbol = "";
|
|
||||||
style = "bg:yellow";
|
|
||||||
format = ''[[ $symbol $branch ](fg:crust bg:yellow)]($style)'';
|
|
||||||
};
|
|
||||||
git_status = {
|
|
||||||
style = "bg:yellow";
|
|
||||||
format = ''[[($all_status$ahead_behind )](fg:crust bg:yellow)]($style)'';
|
|
||||||
};
|
|
||||||
nodejs = {
|
|
||||||
symbol = "";
|
|
||||||
style = "bg:green";
|
|
||||||
format = ''[[ $symbol( $version) ](fg:crust bg:green)]($style)'';
|
|
||||||
};
|
|
||||||
c = {
|
|
||||||
symbol = " ";
|
|
||||||
style = "bg:green";
|
|
||||||
format = ''[[ $symbol( $version) ](fg:crust bg:green)]($style)'';
|
|
||||||
};
|
|
||||||
rust = {
|
|
||||||
symbol = "";
|
|
||||||
style = "bg:green";
|
|
||||||
format = ''[[ $symbol( $version) ](fg:crust bg:green)]($style)'';
|
|
||||||
};
|
|
||||||
golang = {
|
|
||||||
symbol = "";
|
|
||||||
style = "bg:green";
|
|
||||||
format = ''[[ $symbol( $version) ](fg:crust bg:green)]($style)'';
|
|
||||||
};
|
|
||||||
php = {
|
|
||||||
symbol = "";
|
|
||||||
style = "bg:green";
|
|
||||||
format = ''[[ $symbol( $version) ](fg:crust bg:green)]($style)'';
|
|
||||||
};
|
|
||||||
java = {
|
|
||||||
symbol = " ";
|
|
||||||
style = "bg:green";
|
|
||||||
format = ''[[ $symbol( $version) ](fg:crust bg:green)]($style)'';
|
|
||||||
};
|
|
||||||
kotlin = {
|
|
||||||
symbol = "";
|
|
||||||
style = "bg:green";
|
|
||||||
format = ''[[ $symbol( $version) ](fg:crust bg:green)]($style)'';
|
|
||||||
};
|
|
||||||
haskell = {
|
|
||||||
symbol = "";
|
|
||||||
style = "bg:green";
|
|
||||||
format = ''[[ $symbol( $version) ](fg:crust bg:green)]($style)'';
|
|
||||||
};
|
|
||||||
python = {
|
|
||||||
symbol = "";
|
|
||||||
style = "bg:green";
|
|
||||||
format = ''[[ $symbol( $version)(\(#$virtualenv\)) ](fg:crust bg:green)]($style)'';
|
|
||||||
};
|
|
||||||
docker_context = {
|
|
||||||
symbol = "";
|
|
||||||
style = "bg:sapphire";
|
|
||||||
format = ''[[ $symbol( $context) ](fg:crust bg:sapphire)]($style)'';
|
|
||||||
};
|
|
||||||
conda = {
|
|
||||||
symbol = " ";
|
|
||||||
style = "fg:crust bg:sapphire";
|
|
||||||
format = ''[$symbol$environment ]($style)'';
|
|
||||||
ignore_base = false;
|
|
||||||
};
|
|
||||||
nix_shell = {
|
|
||||||
symbol = "";
|
|
||||||
style = "fg:crust bg:sapphire";
|
|
||||||
format = ''[[ $symbol( $name) ](fg:crust bg:sapphire)]($style)'';
|
|
||||||
};
|
|
||||||
time = {
|
|
||||||
disabled = false;
|
|
||||||
time_format = "%R";
|
|
||||||
style = "bg:lavender";
|
|
||||||
format = ''[[ $time ](fg:crust bg:lavender)]($style)'';
|
|
||||||
};
|
|
||||||
line_break = {
|
|
||||||
disabled = false;
|
|
||||||
};
|
|
||||||
character = {
|
|
||||||
disabled = false;
|
|
||||||
success_symbol = "[❯](bold fg:green)";
|
|
||||||
error_symbol = "[❯](bold fg:red)";
|
|
||||||
vimcmd_symbol = "[❮](bold fg:green)";
|
|
||||||
vimcmd_replace_one_symbol = "[❮](bold fg:lavender)";
|
|
||||||
vimcmd_replace_symbol = "[❮](bold fg:lavender)";
|
|
||||||
vimcmd_visual_symbol = "[❮](bold fg:yellow)";
|
|
||||||
};
|
|
||||||
cmd_duration = {
|
|
||||||
show_milliseconds = true;
|
|
||||||
format = " in $duration ";
|
|
||||||
style = "bg:lavender";
|
|
||||||
disabled = false;
|
|
||||||
show_notifications = true;
|
|
||||||
min_time_to_notify = 45000;
|
|
||||||
};
|
|
||||||
};
|
|
||||||
};
|
|
||||||
carapace = {
|
|
||||||
enable = true;
|
|
||||||
enableFishIntegration = false;
|
|
||||||
};
|
|
||||||
zoxide = {
|
|
||||||
enable = true;
|
|
||||||
};
|
|
||||||
kitty = {
|
kitty = {
|
||||||
enable = true;
|
enable = true;
|
||||||
package = (config.lib.nixGL.wrap pkgs.kitty);
|
package = (config.lib.nixGL.wrap pkgs.kitty);
|
||||||
|
@ -423,139 +108,6 @@ in
|
||||||
clipboard_control = "write-primary write-clipboard no-append";
|
clipboard_control = "write-primary write-clipboard no-append";
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
git = {
|
|
||||||
enable = true;
|
|
||||||
delta = {
|
|
||||||
enable = true;
|
|
||||||
};
|
|
||||||
signing = {
|
|
||||||
format = "openpgp";
|
|
||||||
signByDefault = true;
|
|
||||||
};
|
|
||||||
userEmail = "contact@ethanreece.com";
|
|
||||||
userName = "Ethan Reece";
|
|
||||||
};
|
|
||||||
gh = {
|
|
||||||
enable = true;
|
|
||||||
settings = {
|
|
||||||
git_protocol = "ssh";
|
|
||||||
};
|
|
||||||
};
|
|
||||||
jujutsu = {
|
|
||||||
enable = true;
|
|
||||||
settings = {
|
|
||||||
user = {
|
|
||||||
name = "Ethan Reece";
|
|
||||||
email = "contact@ethanreece.com";
|
|
||||||
};
|
|
||||||
signing = {
|
|
||||||
behavior = "own";
|
|
||||||
backend = "gpg";
|
|
||||||
};
|
|
||||||
};
|
|
||||||
};
|
|
||||||
codex = {
|
|
||||||
enable = true;
|
|
||||||
custom-instructions = ''
|
|
||||||
## 10. Applying Patch Files with patch
|
|
||||||
|
|
||||||
When the built-in `apply_patch` tool or `git apply` fails to apply a diff/patch file (especially if the file being patched contains special characters that might confuse simpler patch tools), the standard `patch` utility can be a more robust alternative.
|
|
||||||
|
|
||||||
- **Patch File Format**: Ensure your patch file is in a standard unified diff format. Typically, these patches are generated with `git diff > my_feature.patch` or manually crafted. If the patch refers to files with `a/` and `b/` prefixes (e.g., `--- a/file.txt`, `+++ b/file.txt`), you'll use the `-p1` option.
|
|
||||||
|
|
||||||
- **Creating the Patch File**: You can create a patch file using shell redirection, for example:
|
|
||||||
|
|
||||||
```bash`
|
|
||||||
cat <<'EOF' > fix_descriptive_name.patch
|
|
||||||
--- a/path/to/your/file.ext
|
|
||||||
+++ b/path/to/your/file.ext
|
|
||||||
@@ -line_num,num_lines +line_num,num_lines @@ context_or_change
|
|
||||||
-old_line_content
|
|
||||||
+new_line_content
|
|
||||||
EOF
|
|
||||||
```
|
|
||||||
|
|
||||||
*Important*: Ensure the `EOF` marker is on its own line with no trailing spaces.
|
|
||||||
|
|
||||||
- **Applying the Patch**: Use the `patch` command via the `shell` tool. The `-p1` option strips the leading component from file paths in the patch file (`a/`, `b/`).
|
|
||||||
|
|
||||||
```
|
|
||||||
# Example: Apply a patch file
|
|
||||||
default_api.shell(command=["sh", "-c", "patch -p1 < fix_descriptive_name.patch"])
|
|
||||||
```
|
|
||||||
|
|
||||||
- **Verification**: After applying, always verify that the target file has been changed as expected (e.g., using `cat` or `git diff`).
|
|
||||||
|
|
||||||
- **Cleanup**: Remove the patch file if it's no longer needed:
|
|
||||||
|
|
||||||
```
|
|
||||||
default_api.shell(command=["rm", "fix_descriptive_name.patch"])
|
|
||||||
```
|
|
||||||
'';
|
|
||||||
settings = {
|
|
||||||
model = "${localFastModel}";
|
|
||||||
provider = "ollama";
|
|
||||||
providers = {
|
|
||||||
ollama = {
|
|
||||||
name = "Ollama";
|
|
||||||
baseURL = "http://localhost:11434/v1";
|
|
||||||
envKey = "OLLAMA_API_KEY";
|
|
||||||
};
|
|
||||||
openrouter = {
|
|
||||||
name = "OpenRouter";
|
|
||||||
baseURL = "https://openrouter.ai/api/v1";
|
|
||||||
envKey = "OPENROUTER_API_KEY";
|
|
||||||
};
|
|
||||||
};
|
|
||||||
};
|
|
||||||
};
|
|
||||||
aichat = {
|
|
||||||
enable = true;
|
|
||||||
settings = {
|
|
||||||
model = "ollama:${localFastModel}";
|
|
||||||
clients = [
|
|
||||||
{
|
|
||||||
type = "openai-compatible";
|
|
||||||
name = "ollama";
|
|
||||||
api_base = "http://localhost:11434/v1";
|
|
||||||
models = [
|
|
||||||
{
|
|
||||||
name = "${localFastModel}";
|
|
||||||
supports_function_calling = true;
|
|
||||||
supports_vision = true;
|
|
||||||
}
|
|
||||||
{
|
|
||||||
name = "${localReasoningModel}";
|
|
||||||
supports_function_calling = true;
|
|
||||||
supports_vision = true;
|
|
||||||
}
|
|
||||||
];
|
|
||||||
}
|
|
||||||
{
|
|
||||||
type = "openai-compatible";
|
|
||||||
name = "openrouter";
|
|
||||||
api_base = "https://openrouter.ai/api/v1";
|
|
||||||
models = [
|
|
||||||
{
|
|
||||||
name = "${remoteFastModel}";
|
|
||||||
supports_function_calling = true;
|
|
||||||
supports_vision = true;
|
|
||||||
}
|
|
||||||
{
|
|
||||||
name = "${remoteReasoningModel}";
|
|
||||||
supports_function_calling = true;
|
|
||||||
supports_vision = true;
|
|
||||||
}
|
|
||||||
];
|
|
||||||
}
|
|
||||||
];
|
|
||||||
};
|
|
||||||
};
|
|
||||||
direnv = {
|
|
||||||
enable = true;
|
|
||||||
mise.enable = true;
|
|
||||||
nix-direnv.enable = true;
|
|
||||||
};
|
|
||||||
vesktop = {
|
vesktop = {
|
||||||
enable = true;
|
enable = true;
|
||||||
package = (config.lib.nixGL.wrap pkgs.vesktop);
|
package = (config.lib.nixGL.wrap pkgs.vesktop);
|
||||||
|
@ -896,14 +448,6 @@ in
|
||||||
};
|
};
|
||||||
services = {
|
services = {
|
||||||
arrpc.enable = true;
|
arrpc.enable = true;
|
||||||
gpg-agent = {
|
|
||||||
enable = true;
|
|
||||||
enableSshSupport = true;
|
|
||||||
pinentry = {
|
|
||||||
package = pkgs.pinentry-tty;
|
|
||||||
program = "pinentry";
|
|
||||||
};
|
|
||||||
};
|
|
||||||
};
|
};
|
||||||
targets.genericLinux.enable = true;
|
targets.genericLinux.enable = true;
|
||||||
}
|
}
|
||||||
|
|
485
home-manager/base.nix
Normal file
485
home-manager/base.nix
Normal file
|
@ -0,0 +1,485 @@
|
||||||
|
# SPDX-FileCopyrightText: 2025 Ethan Reece <contact@ethanreece.com>
|
||||||
|
#
|
||||||
|
# SPDX-License-Identifier: MIT
|
||||||
|
|
||||||
|
{
|
||||||
|
config,
|
||||||
|
inputs,
|
||||||
|
lib,
|
||||||
|
pkgs,
|
||||||
|
...
|
||||||
|
}:
|
||||||
|
|
||||||
|
let
|
||||||
|
# localFastModel = "qwen2.5-coder-num_ctx";
|
||||||
|
# localReasoningModel = "deepseek-r1-num_ctx";
|
||||||
|
remoteFastModel = "deepseek/deepseek-chat-v3-0324:free"; # "qwen/qwen-2.5-coder-32b-instruct:free";
|
||||||
|
remoteReasoningModel = "deepseek/deepseek-r1-0528:free";
|
||||||
|
in
|
||||||
|
{
|
||||||
|
sops = {
|
||||||
|
secrets = {
|
||||||
|
openrouter_api_key = { };
|
||||||
|
};
|
||||||
|
defaultSopsFile = ../sops/secrets.yaml;
|
||||||
|
};
|
||||||
|
# https://nix.catppuccin.com/search/rolling/
|
||||||
|
catppuccin = {
|
||||||
|
enable = true;
|
||||||
|
flavor = "mocha";
|
||||||
|
};
|
||||||
|
# https://nix-community.github.io/stylix/options/modules/alacritty.html
|
||||||
|
stylix = {
|
||||||
|
enable = true;
|
||||||
|
base16Scheme = "${pkgs.base16-schemes}/share/themes/catppuccin-mocha.yaml";
|
||||||
|
image = config.lib.stylix.pixel "base0A";
|
||||||
|
polarity = "dark";
|
||||||
|
fonts = {
|
||||||
|
serif = {
|
||||||
|
package = pkgs.libertinus;
|
||||||
|
name = "Libertinus Serif";
|
||||||
|
};
|
||||||
|
sansSerif = {
|
||||||
|
package = pkgs.inter;
|
||||||
|
name = "Inter";
|
||||||
|
};
|
||||||
|
monospace = {
|
||||||
|
package = pkgs.nerd-fonts.jetbrains-mono;
|
||||||
|
name = "JetBrains Mono Nerd Font";
|
||||||
|
};
|
||||||
|
emoji = {
|
||||||
|
package = pkgs.openmoji-color;
|
||||||
|
name = "OpenMoji Color";
|
||||||
|
};
|
||||||
|
};
|
||||||
|
targets = {
|
||||||
|
bat.enable = false;
|
||||||
|
fzf.enable = false;
|
||||||
|
helix.enable = false;
|
||||||
|
kitty.variant256Colors = true;
|
||||||
|
starship.enable = false;
|
||||||
|
};
|
||||||
|
};
|
||||||
|
home = {
|
||||||
|
stateVersion = "24.11";
|
||||||
|
language.base = "eo.utf8";
|
||||||
|
packages = [
|
||||||
|
pkgs.acpi
|
||||||
|
pkgs.bzip3
|
||||||
|
# pkgs.cacert - TODO: should be used on NixOS
|
||||||
|
pkgs.curl
|
||||||
|
pkgs.e2fsprogs
|
||||||
|
pkgs.file
|
||||||
|
pkgs.gzip
|
||||||
|
pkgs.gnutar
|
||||||
|
pkgs.iproute2
|
||||||
|
pkgs.iputils
|
||||||
|
pkgs.julia
|
||||||
|
# pkgs.languagetool - TODO: should be used on NixOS
|
||||||
|
pkgs.lm_sensors
|
||||||
|
pkgs.lsof
|
||||||
|
pkgs.mailutils
|
||||||
|
# pkgs.ncurses
|
||||||
|
pkgs.nixd
|
||||||
|
pkgs.pijul
|
||||||
|
pkgs.procps # TODO: switch to uutils when available
|
||||||
|
pkgs.procs
|
||||||
|
pkgs.psmisc
|
||||||
|
pkgs.speedtest-cli
|
||||||
|
pkgs.strace
|
||||||
|
# pkgs.sudo-rs - TODO: should be used on NixOS
|
||||||
|
pkgs.tcpdump
|
||||||
|
pkgs.util-linux # TODO: switch to uutils when available
|
||||||
|
pkgs.uutils-coreutils-noprefix
|
||||||
|
pkgs.uutils-diffutils
|
||||||
|
pkgs.uutils-findutils
|
||||||
|
pkgs.wget
|
||||||
|
pkgs.xz
|
||||||
|
];
|
||||||
|
file = { };
|
||||||
|
shell = {
|
||||||
|
enableNushellIntegration = true;
|
||||||
|
enableZshIntegration = true;
|
||||||
|
enableFishIntegration = true;
|
||||||
|
};
|
||||||
|
};
|
||||||
|
programs = {
|
||||||
|
home-manager = {
|
||||||
|
enable = true;
|
||||||
|
};
|
||||||
|
man = {
|
||||||
|
enable = true;
|
||||||
|
};
|
||||||
|
# TODO: Disable Guix integration
|
||||||
|
# password-store = {
|
||||||
|
# enable = true;
|
||||||
|
# };
|
||||||
|
bat = {
|
||||||
|
enable = true;
|
||||||
|
};
|
||||||
|
nix-your-shell = {
|
||||||
|
enable = true;
|
||||||
|
};
|
||||||
|
fzf = {
|
||||||
|
enable = true;
|
||||||
|
};
|
||||||
|
vim = {
|
||||||
|
enable = true;
|
||||||
|
};
|
||||||
|
helix = {
|
||||||
|
enable = true;
|
||||||
|
defaultEditor = true;
|
||||||
|
settings = {
|
||||||
|
editor.soft-wrap = {
|
||||||
|
enable = true;
|
||||||
|
};
|
||||||
|
};
|
||||||
|
};
|
||||||
|
nushell = {
|
||||||
|
enable = true;
|
||||||
|
environmentVariables = {
|
||||||
|
OPENROUTER_API_KEY = lib.hm.nushell.mkNushellInline "cat ${config.sops.secrets.openrouter_api_key.path}";
|
||||||
|
};
|
||||||
|
settings = {
|
||||||
|
completions = {
|
||||||
|
algorithm = "fuzzy";
|
||||||
|
case_sensitive = false;
|
||||||
|
external = {
|
||||||
|
enable = true;
|
||||||
|
};
|
||||||
|
};
|
||||||
|
};
|
||||||
|
# set -x ZATHURA_PLUGINS_PATH $GUIX_HOME/lib/zathura
|
||||||
|
shellAliases = {
|
||||||
|
aichat_reasoning_remote = "${pkgs.aichat}/bin/aichat --model openrouter:${remoteReasoningModel}";
|
||||||
|
aichat_fast_remote = "${pkgs.aichat}/bin/aichat --model openrouter:${remoteFastModel}";
|
||||||
|
codex_remote = "${pkgs.codex}/bin/codex --provider openrouter --model ${remoteFastModel}";
|
||||||
|
hotspot = "sudo sysctl net.ipv4.ip_default_ttl=65";
|
||||||
|
};
|
||||||
|
};
|
||||||
|
starship = {
|
||||||
|
enable = true;
|
||||||
|
settings = {
|
||||||
|
format =
|
||||||
|
"[](red)"
|
||||||
|
+ "$os"
|
||||||
|
+ "$username"
|
||||||
|
+ "[](bg:peach fg:red)"
|
||||||
|
+ "$directory"
|
||||||
|
+ "[](bg:yellow fg:peach)"
|
||||||
|
+ "$git_branch"
|
||||||
|
+ "$git_status"
|
||||||
|
+ "[](fg:yellow bg:green)"
|
||||||
|
+ "$c"
|
||||||
|
+ "$rust"
|
||||||
|
+ "$golang"
|
||||||
|
+ "$nodejs"
|
||||||
|
+ "$php"
|
||||||
|
+ "$java"
|
||||||
|
+ "$kotlin"
|
||||||
|
+ "$haskell"
|
||||||
|
+ "$python"
|
||||||
|
+ "[](fg:green bg:sapphire)"
|
||||||
|
+ "$conda"
|
||||||
|
+ "$nix_shell"
|
||||||
|
+ "[](fg:sapphire bg:lavender)"
|
||||||
|
+ "$time"
|
||||||
|
+ "[ ](fg:lavender)"
|
||||||
|
+ "$cmd_duration"
|
||||||
|
+ "$line_break"
|
||||||
|
+ "$character";
|
||||||
|
os = {
|
||||||
|
disabled = false;
|
||||||
|
style = "bg:red fg:crust";
|
||||||
|
symbols = {
|
||||||
|
Windows = "";
|
||||||
|
Ubuntu = "";
|
||||||
|
SUSE = "";
|
||||||
|
Raspbian = "";
|
||||||
|
Mint = "";
|
||||||
|
Macos = "";
|
||||||
|
Manjaro = "";
|
||||||
|
Linux = "";
|
||||||
|
Gentoo = "";
|
||||||
|
Fedora = "";
|
||||||
|
Alpine = "";
|
||||||
|
Amazon = "";
|
||||||
|
Android = "";
|
||||||
|
Arch = "";
|
||||||
|
Artix = "";
|
||||||
|
CentOS = "";
|
||||||
|
Debian = "";
|
||||||
|
Redhat = "";
|
||||||
|
RedHatEnterprise = "";
|
||||||
|
NixOS = "";
|
||||||
|
};
|
||||||
|
};
|
||||||
|
username = {
|
||||||
|
show_always = true;
|
||||||
|
style_user = "bg:red fg:crust";
|
||||||
|
style_root = "bg:red fg:crust";
|
||||||
|
format = ''[ $user]($style)'';
|
||||||
|
};
|
||||||
|
directory = {
|
||||||
|
style = "bg:peach fg:crust";
|
||||||
|
format = "[ $path ]($style)";
|
||||||
|
truncation_length = 3;
|
||||||
|
truncation_symbol = "…/";
|
||||||
|
substitutions = {
|
||||||
|
"Documents" = " ";
|
||||||
|
"Downloads" = " ";
|
||||||
|
"Music" = " ";
|
||||||
|
"Pictures" = " ";
|
||||||
|
"Developer" = " ";
|
||||||
|
};
|
||||||
|
};
|
||||||
|
git_branch = {
|
||||||
|
symbol = "";
|
||||||
|
style = "bg:yellow";
|
||||||
|
format = ''[[ $symbol $branch ](fg:crust bg:yellow)]($style)'';
|
||||||
|
};
|
||||||
|
git_status = {
|
||||||
|
style = "bg:yellow";
|
||||||
|
format = ''[[($all_status$ahead_behind )](fg:crust bg:yellow)]($style)'';
|
||||||
|
};
|
||||||
|
nodejs = {
|
||||||
|
symbol = "";
|
||||||
|
style = "bg:green";
|
||||||
|
format = ''[[ $symbol( $version) ](fg:crust bg:green)]($style)'';
|
||||||
|
};
|
||||||
|
c = {
|
||||||
|
symbol = " ";
|
||||||
|
style = "bg:green";
|
||||||
|
format = ''[[ $symbol( $version) ](fg:crust bg:green)]($style)'';
|
||||||
|
};
|
||||||
|
rust = {
|
||||||
|
symbol = "";
|
||||||
|
style = "bg:green";
|
||||||
|
format = ''[[ $symbol( $version) ](fg:crust bg:green)]($style)'';
|
||||||
|
};
|
||||||
|
golang = {
|
||||||
|
symbol = "";
|
||||||
|
style = "bg:green";
|
||||||
|
format = ''[[ $symbol( $version) ](fg:crust bg:green)]($style)'';
|
||||||
|
};
|
||||||
|
php = {
|
||||||
|
symbol = "";
|
||||||
|
style = "bg:green";
|
||||||
|
format = ''[[ $symbol( $version) ](fg:crust bg:green)]($style)'';
|
||||||
|
};
|
||||||
|
java = {
|
||||||
|
symbol = " ";
|
||||||
|
style = "bg:green";
|
||||||
|
format = ''[[ $symbol( $version) ](fg:crust bg:green)]($style)'';
|
||||||
|
};
|
||||||
|
kotlin = {
|
||||||
|
symbol = "";
|
||||||
|
style = "bg:green";
|
||||||
|
format = ''[[ $symbol( $version) ](fg:crust bg:green)]($style)'';
|
||||||
|
};
|
||||||
|
haskell = {
|
||||||
|
symbol = "";
|
||||||
|
style = "bg:green";
|
||||||
|
format = ''[[ $symbol( $version) ](fg:crust bg:green)]($style)'';
|
||||||
|
};
|
||||||
|
python = {
|
||||||
|
symbol = "";
|
||||||
|
style = "bg:green";
|
||||||
|
format = ''[[ $symbol( $version)(\(#$virtualenv\)) ](fg:crust bg:green)]($style)'';
|
||||||
|
};
|
||||||
|
docker_context = {
|
||||||
|
symbol = "";
|
||||||
|
style = "bg:sapphire";
|
||||||
|
format = ''[[ $symbol( $context) ](fg:crust bg:sapphire)]($style)'';
|
||||||
|
};
|
||||||
|
conda = {
|
||||||
|
symbol = " ";
|
||||||
|
style = "fg:crust bg:sapphire";
|
||||||
|
format = ''[$symbol$environment ]($style)'';
|
||||||
|
ignore_base = false;
|
||||||
|
};
|
||||||
|
nix_shell = {
|
||||||
|
symbol = "";
|
||||||
|
style = "fg:crust bg:sapphire";
|
||||||
|
format = ''[[ $symbol( $name) ](fg:crust bg:sapphire)]($style)'';
|
||||||
|
};
|
||||||
|
time = {
|
||||||
|
disabled = false;
|
||||||
|
time_format = "%R";
|
||||||
|
style = "bg:lavender";
|
||||||
|
format = ''[[ $time ](fg:crust bg:lavender)]($style)'';
|
||||||
|
};
|
||||||
|
line_break = {
|
||||||
|
disabled = false;
|
||||||
|
};
|
||||||
|
character = {
|
||||||
|
disabled = false;
|
||||||
|
success_symbol = "[❯](bold fg:green)";
|
||||||
|
error_symbol = "[❯](bold fg:red)";
|
||||||
|
vimcmd_symbol = "[❮](bold fg:green)";
|
||||||
|
vimcmd_replace_one_symbol = "[❮](bold fg:lavender)";
|
||||||
|
vimcmd_replace_symbol = "[❮](bold fg:lavender)";
|
||||||
|
vimcmd_visual_symbol = "[❮](bold fg:yellow)";
|
||||||
|
};
|
||||||
|
cmd_duration = {
|
||||||
|
show_milliseconds = true;
|
||||||
|
format = " in $duration ";
|
||||||
|
style = "bg:lavender";
|
||||||
|
disabled = false;
|
||||||
|
show_notifications = true;
|
||||||
|
min_time_to_notify = 45000;
|
||||||
|
};
|
||||||
|
};
|
||||||
|
};
|
||||||
|
carapace = {
|
||||||
|
enable = true;
|
||||||
|
enableFishIntegration = false;
|
||||||
|
};
|
||||||
|
zoxide = {
|
||||||
|
enable = true;
|
||||||
|
};
|
||||||
|
git = {
|
||||||
|
enable = true;
|
||||||
|
delta = {
|
||||||
|
enable = true;
|
||||||
|
};
|
||||||
|
signing = {
|
||||||
|
format = "openpgp";
|
||||||
|
signByDefault = true;
|
||||||
|
};
|
||||||
|
userEmail = "contact@ethanreece.com";
|
||||||
|
userName = "Ethan Reece";
|
||||||
|
};
|
||||||
|
gh = {
|
||||||
|
enable = true;
|
||||||
|
settings = {
|
||||||
|
git_protocol = "ssh";
|
||||||
|
};
|
||||||
|
};
|
||||||
|
jujutsu = {
|
||||||
|
enable = true;
|
||||||
|
settings = {
|
||||||
|
user = {
|
||||||
|
name = "Ethan Reece";
|
||||||
|
email = "contact@ethanreece.com";
|
||||||
|
};
|
||||||
|
signing = {
|
||||||
|
behavior = "own";
|
||||||
|
backend = "gpg";
|
||||||
|
};
|
||||||
|
};
|
||||||
|
};
|
||||||
|
codex = {
|
||||||
|
enable = true;
|
||||||
|
custom-instructions = ''
|
||||||
|
## 10. Applying Patch Files with patch
|
||||||
|
|
||||||
|
When the built-in `apply_patch` tool or `git apply` fails to apply a diff/patch file (especially if the file being patched contains special characters that might confuse simpler patch tools), the standard `patch` utility can be a more robust alternative.
|
||||||
|
|
||||||
|
- **Patch File Format**: Ensure your patch file is in a standard unified diff format. Typically, these patches are generated with `git diff > my_feature.patch` or manually crafted. If the patch refers to files with `a/` and `b/` prefixes (e.g., `--- a/file.txt`, `+++ b/file.txt`), you'll use the `-p1` option.
|
||||||
|
|
||||||
|
- **Creating the Patch File**: You can create a patch file using shell redirection, for example:
|
||||||
|
|
||||||
|
```bash`
|
||||||
|
cat <<'EOF' > fix_descriptive_name.patch
|
||||||
|
--- a/path/to/your/file.ext
|
||||||
|
+++ b/path/to/your/file.ext
|
||||||
|
@@ -line_num,num_lines +line_num,num_lines @@ context_or_change
|
||||||
|
-old_line_content
|
||||||
|
+new_line_content
|
||||||
|
EOF
|
||||||
|
```
|
||||||
|
|
||||||
|
*Important*: Ensure the `EOF` marker is on its own line with no trailing spaces.
|
||||||
|
|
||||||
|
- **Applying the Patch**: Use the `patch` command via the `shell` tool. The `-p1` option strips the leading component from file paths in the patch file (`a/`, `b/`).
|
||||||
|
|
||||||
|
```
|
||||||
|
# Example: Apply a patch file
|
||||||
|
default_api.shell(command=["sh", "-c", "patch -p1 < fix_descriptive_name.patch"])
|
||||||
|
```
|
||||||
|
|
||||||
|
- **Verification**: After applying, always verify that the target file has been changed as expected (e.g., using `cat` or `git diff`).
|
||||||
|
|
||||||
|
- **Cleanup**: Remove the patch file if it's no longer needed:
|
||||||
|
|
||||||
|
```
|
||||||
|
default_api.shell(command=["rm", "fix_descriptive_name.patch"])
|
||||||
|
```
|
||||||
|
'';
|
||||||
|
settings = {
|
||||||
|
model = "${remoteFastModel}";
|
||||||
|
provider = "ollama";
|
||||||
|
providers = {
|
||||||
|
ollama = {
|
||||||
|
name = "Ollama";
|
||||||
|
baseURL = "http://localhost:11434/v1";
|
||||||
|
envKey = "OLLAMA_API_KEY";
|
||||||
|
};
|
||||||
|
openrouter = {
|
||||||
|
name = "OpenRouter";
|
||||||
|
baseURL = "https://openrouter.ai/api/v1";
|
||||||
|
envKey = "OPENROUTER_API_KEY";
|
||||||
|
};
|
||||||
|
};
|
||||||
|
};
|
||||||
|
};
|
||||||
|
aichat = {
|
||||||
|
enable = true;
|
||||||
|
settings = {
|
||||||
|
model = "ollama:${remoteFastModel}";
|
||||||
|
clients = [
|
||||||
|
# {
|
||||||
|
# type = "openai-compatible";
|
||||||
|
# name = "ollama";
|
||||||
|
# api_base = "http://localhost:11434/v1";
|
||||||
|
# models = [
|
||||||
|
# {
|
||||||
|
# name = "${localFastModel}";
|
||||||
|
# supports_function_calling = true;
|
||||||
|
# supports_vision = true;
|
||||||
|
# }
|
||||||
|
# {
|
||||||
|
# name = "${localReasoningModel}";
|
||||||
|
# supports_function_calling = true;
|
||||||
|
# supports_vision = true;
|
||||||
|
# }
|
||||||
|
# ];
|
||||||
|
# }
|
||||||
|
{
|
||||||
|
type = "openai-compatible";
|
||||||
|
name = "openrouter";
|
||||||
|
api_base = "https://openrouter.ai/api/v1";
|
||||||
|
models = [
|
||||||
|
{
|
||||||
|
name = "${remoteFastModel}";
|
||||||
|
supports_function_calling = true;
|
||||||
|
supports_vision = true;
|
||||||
|
}
|
||||||
|
{
|
||||||
|
name = "${remoteReasoningModel}";
|
||||||
|
supports_function_calling = true;
|
||||||
|
supports_vision = true;
|
||||||
|
}
|
||||||
|
];
|
||||||
|
}
|
||||||
|
];
|
||||||
|
};
|
||||||
|
};
|
||||||
|
direnv = {
|
||||||
|
enable = true;
|
||||||
|
mise.enable = true;
|
||||||
|
nix-direnv.enable = true;
|
||||||
|
};
|
||||||
|
};
|
||||||
|
services = {
|
||||||
|
gpg-agent = {
|
||||||
|
enable = true;
|
||||||
|
enableSshSupport = true;
|
||||||
|
pinentry = {
|
||||||
|
package = pkgs.pinentry-tty;
|
||||||
|
program = "pinentry";
|
||||||
|
};
|
||||||
|
};
|
||||||
|
};
|
||||||
|
}
|
24
home-manager/raspi/default.nix
Normal file
24
home-manager/raspi/default.nix
Normal file
|
@ -0,0 +1,24 @@
|
||||||
|
# SPDX-FileCopyrightText: 2025 Ethan Reece <contact@ethanreece.com>
|
||||||
|
#
|
||||||
|
# SPDX-License-Identifier: MIT
|
||||||
|
|
||||||
|
{ inputs, withSystem, ... }:
|
||||||
|
{
|
||||||
|
flake.homeConfigurations = {
|
||||||
|
raspi = withSystem "aarch64-linux" (
|
||||||
|
{ pkgs, ... }:
|
||||||
|
inputs.home-manager.lib.homeManagerConfiguration {
|
||||||
|
inherit pkgs;
|
||||||
|
extraSpecialArgs = { inherit inputs pkgs; };
|
||||||
|
modules = [
|
||||||
|
inputs.lix-module.nixosModules.default
|
||||||
|
inputs.sops-nix.homeManagerModules.sops
|
||||||
|
inputs.stylix.homeModules.stylix
|
||||||
|
inputs.catppuccin.homeModules.catppuccin
|
||||||
|
../base.nix
|
||||||
|
./home.nix
|
||||||
|
];
|
||||||
|
}
|
||||||
|
);
|
||||||
|
};
|
||||||
|
}
|
Loading…
Add table
Reference in a new issue