From fc5ec0477de43c6f58d6f7a5efa2ba8e15b213e2 Mon Sep 17 00:00:00 2001 From: DerGrumpf Date: Thu, 9 Apr 2026 16:54:39 +0200 Subject: [PATCH] Extended llm; Fixed issues do to bug in Home Manager 25.05 and above --- darwin/default.nix | 38 +++++++++--- darwin/fonts.nix | 9 +++ darwin/homebrew.nix | 2 +- darwin/settings.nix | 3 +- home/default.nix | 4 ++ home/fastfetch.jsonc | 6 +- home/shell.nix | 138 ++++++++++++++++++++++++++++--------------- nixos/fonts.nix | 1 + 8 files changed, 142 insertions(+), 59 deletions(-) create mode 100644 darwin/fonts.nix diff --git a/darwin/default.nix b/darwin/default.nix index de8dc84..6b428c3 100644 --- a/darwin/default.nix +++ b/darwin/default.nix @@ -1,16 +1,36 @@ -{ pkgs, inputs, self, primaryUser, ... }: { - imports = [ ./homebrew.nix ./settings.nix ./yabai.nix ]; +{ + pkgs, + primaryUser, + ... +}: +{ + imports = [ + ./settings.nix + ./homebrew.nix + ./yabai.nix + ./fonts.nix + ]; + + home-manager.users.${primaryUser}.targets.darwin = { + linkApps.enable = true; + copyApps.enable = false; + }; # nix config nix = { settings = { - experimental-features = [ "nix-command" "flakes" ]; + experimental-features = [ + "nix-command" + "flakes" + ]; max-jobs = "auto"; # Use all CPU cores cores = 0; # Use all cores per build # disabled due to https://github.com/NixOS/nix/issues/7273 # auto-optimise-store = true; - substituters = - [ "https://cache.nixos.org" "https://nix-community.cachix.org" ]; + substituters = [ + "https://cache.nixos.org" + "https://nix-community.cachix.org" + ]; trusted-public-keys = [ "cache.nixos.org-1:6NCHdD59X431o0gWypbMrAURkbJ16ZPMQFGspcDShjY=" "nix-community.cachix.org-1:mB9FSh9qf2dCimDSUo8Zy7bkq5CX+/rkCWyvRCYg3Fs=" @@ -21,7 +41,9 @@ # Garbage collection gc = { automatic = true; - interval = { Weekday = 7; }; # Run weekly + interval = { + Weekday = 7; + }; # Run weekly options = "--delete-older-than 30d"; }; }; @@ -34,7 +56,9 @@ info.enable = false; # Skip info pages }; - nixpkgs.config = { allowUnfree = true; }; + nixpkgs.config = { + allowUnfree = true; + }; # homebrew installation manager nix-homebrew = { user = primaryUser; diff --git a/darwin/fonts.nix b/darwin/fonts.nix new file mode 100644 index 0000000..cfa4602 --- /dev/null +++ b/darwin/fonts.nix @@ -0,0 +1,9 @@ +# TODO: Duplicate file +{ pkgs, ... }: +{ + fonts.packages = with pkgs; [ + nerd-fonts.fira-code + nerd-fonts.fira-mono + nerd-fonts.hack + ]; +} diff --git a/darwin/homebrew.nix b/darwin/homebrew.nix index 5278602..f9724d0 100644 --- a/darwin/homebrew.nix +++ b/darwin/homebrew.nix @@ -13,7 +13,7 @@ # homebrew is best for GUI apps # nixpkgs is best for CLI tools - casks = [ "element" "affinity" "onlyoffice" "tailscale" ]; + casks = [ "element" "affinity" "onlyoffice" ]; brews = [ ]; taps = [ ]; }; diff --git a/darwin/settings.nix b/darwin/settings.nix index a1b619c..06c9710 100644 --- a/darwin/settings.nix +++ b/darwin/settings.nix @@ -1,4 +1,5 @@ -{ self, ... }: { +{ self, ... }: +{ # touch ID for sudo security.pam.services.sudo_local.touchIdAuth = true; diff --git a/home/default.nix b/home/default.nix index 2811617..c32fb75 100644 --- a/home/default.nix +++ b/home/default.nix @@ -29,6 +29,8 @@ ]; nixpkgs.config.allowUnfree = true; + #targets.darwin.copyApps.enableChecks = isDarwin; + catppuccin = { enable = false; accent = "sky"; @@ -86,6 +88,8 @@ }; home = { + + # activation.checkAppManagementPermission = lib.mkForce ""; username = primaryUser; stateVersion = "26.05"; sessionVariables = lib.mkIf (!isDarwin) { diff --git a/home/fastfetch.jsonc b/home/fastfetch.jsonc index 02f7a01..ba09e34 100644 --- a/home/fastfetch.jsonc +++ b/home/fastfetch.jsonc @@ -4,10 +4,10 @@ "type": "kitty-icat", "source": "~/Pictures/Avatar/avatar_no_bg.png", // "height": 15, - "width": 32, + "width": 28, "padding": { - "top": 2, - "left": 0 + "top": 0, + "left": 0, } }, "modules": [ diff --git a/home/shell.nix b/home/shell.nix index d043664..dddd811 100644 --- a/home/shell.nix +++ b/home/shell.nix @@ -1,4 +1,10 @@ -{ pkgs, isDarwin, lib, ... }: { +{ + pkgs, + isDarwin, + lib, + ... +}: +{ home.packages = with pkgs; [ eza # ls replacement tdf # terminal pdf viewer @@ -40,31 +46,32 @@ tab_bar_min_tabs = 1; tab_bar_edge = "bottom"; tab_bar_style = "custom"; # Should be changed to custom - tab_title_template = - "{fmt.fg.red}{bell_symbol}{activity_symbol}{fmt.fg.tab}{title}"; + tab_title_template = "{fmt.fg.red}{bell_symbol}{activity_symbol}{fmt.fg.tab}{title}"; - symbol_map = let - mappings = [ - "U+23FB-U+23FE" - "U+2B58" - "U+E200-U+E2A9" - "U+E0A0-U+E0A3" - "U+E0B0-U+E0BF" - "U+E0C0-U+E0C8" - "U+E0CC-U+E0CF" - "U+E0D0-U+E0D2" - "U+E0D4" - "U+E700-U+E7C5" - "U+F000-U+F2E0" - "U+2665" - "U+26A1" - "U+F400-U+F4A8" - "U+F67C" - "U+E000-U+E00A" - "U+F300-U+F313" - "U+E5FA-U+E62B" - ]; - in (builtins.concatStringsSep "," mappings) + " Symbols Nerd Font Mono"; + symbol_map = + let + mappings = [ + "U+23FB-U+23FE" + "U+2B58" + "U+E200-U+E2A9" + "U+E0A0-U+E0A3" + "U+E0B0-U+E0BF" + "U+E0C0-U+E0C8" + "U+E0CC-U+E0CF" + "U+E0D0-U+E0D2" + "U+E0D4" + "U+E700-U+E7C5" + "U+F000-U+F2E0" + "U+2665" + "U+26A1" + "U+F400-U+F4A8" + "U+F67C" + "U+E000-U+E00A" + "U+F300-U+F313" + "U+E5FA-U+E62B" + ]; + in + (builtins.concatStringsSep "," mappings) + " Symbols Nerd Font Mono"; }; }; @@ -75,15 +82,24 @@ urls = [ { url = "https://www.tagesschau.de/xml/rss2"; - tags = [ "news" "de" ]; + tags = [ + "news" + "de" + ]; } { url = "https://www.spiegel.de/schlagzeilen/index.rss"; - tags = [ "news" "de" ]; + tags = [ + "news" + "de" + ]; } { url = "https://www.focus.de/rss"; - tags = [ "news" "de" ]; + tags = [ + "news" + "de" + ]; } { url = "https://feeds.feedburner.com/blogspot/rkEL"; @@ -100,7 +116,13 @@ enableZshIntegration = true; enableFishIntegration = true; - settings = { ration = [ 1 3 4 ]; }; + settings = { + ration = [ + 1 + 3 + 4 + ]; + }; }; programs.fzf = { @@ -109,8 +131,7 @@ enableZshIntegration = true; enableFishIntegration = true; defaultCommand = "fd --type f --strip-cwd-prefix --hidden --exclude .git"; - fileWidgetCommand = - "fd --type f --strip-cwd-prefix --hidden --exclude .git"; + fileWidgetCommand = "fd --type f --strip-cwd-prefix --hidden --exclude .git"; defaultOptions = [ "--height 100%" "--border sharp" @@ -171,32 +192,56 @@ cat = "bat --color=always --style=numbers"; grep = "rg"; cp = "rsync -ah --progress"; - nix-switch = if isDarwin then - "sudo darwin-rebuild switch --flake ~/.config/nix#(hostname -s)" - else - "sudo nixos-rebuild switch --flake ~/.config/nix#(hostname -s)"; + nix-switch = + if isDarwin then + "sudo darwin-rebuild switch --flake ~/.config/nix#(hostname -s)" + else + "sudo nixos-rebuild switch --flake ~/.config/nix#(hostname -s)"; - nix-check = if isDarwin then - "nix eval ~/.config/nix#darwinConfigurations.(hostname -s).config.system.build.toplevel.outPath" - else - "nix flake check --no-build ~/.config/nix"; + nix-check = + if isDarwin then + "nix eval ~/.config/nix#darwinConfigurations.(hostname -s).config.system.build.toplevel.outPath" + else + "nix flake check --no-build ~/.config/nix"; }; interactiveShellInit = '' - starship init fish | source - fzf --fish | source - function fish_greeting - fastfetch - end + starship init fish | source + fzf --fish | source + zoxide init fish --cmd cd | source + function fish_greeting + fastfetch + end ''; functions.l = { body = '' - llm prompt -m groq/llama-3.3-70b-versatile -t std $argv | glow + if test -f "$GROQ_API_KEY" + set -x GROQ_API_KEY (cat $GROQ_API_KEY) + end + llm prompt -m groq/llama-3.3-70b-versatile -t std $argv | glow ''; }; }; + # Link LLM std template + home.file.".config/io.datasette.llm/templates/std.yaml".text = '' + system: | + You are a concise technical assistant running on an Intel Mac (x86_64-darwin) + with nix-darwin and home-manager. + + Rules: + - Always respond in valid markdown + - Be concise and direct, no unnecessary explanation + - Prefer code blocks for commands and code + - You have access to these tools in the shell: nvim, fish, git, + eza, bat, ripgrep, fzf, yazi, glow, llm, zoxide, fastfetch, + nix, darwin-rebuild, brew + - When suggesting nix config changes, use the nix language + - nix-switch rebuilds the system config + - nix-check validates the flake without building + ''; + programs.starship = { enable = true; settings = { @@ -235,8 +280,7 @@ # Git status module settings git_status = { - format = - "[[(*$conflicted$untracked$modified$staged$renamed$deleted)](red) ($ahead_behind$stashed)]($style)"; + format = "[[(*$conflicted$untracked$modified$staged$renamed$deleted)](red) ($ahead_behind$stashed)]($style)"; style = "bold #a6e3a1"; conflicted = ""; untracked = ""; diff --git a/nixos/fonts.nix b/nixos/fonts.nix index e0eae03..cfa4602 100644 --- a/nixos/fonts.nix +++ b/nixos/fonts.nix @@ -1,3 +1,4 @@ +# TODO: Duplicate file { pkgs, ... }: { fonts.packages = with pkgs; [