# home-manager/fred.nix { config, pkgs, lib, inputs, osConfig, ... }: let isDesktop = lib.elem osConfig.networking.hostName [ "FredOS-Gaming" "FredOS-Macbook" ]; in { home.stateVersion = "25.11"; home.packages = with pkgs; [ # ]; home.file.".config/nixpkgs/config.nix".text = '' { allowUnfree = true; } ''; # Wallpaper source — consumed by stylix's image option (set in # settings/stylix.nix) and by hyprpaper at session start. home.file.".local/share/backgrounds/wallpaper.png".source = "${inputs.self}/walls/wallpaper.png"; # btop — stylix's btop target writes the colour theme; we keep our # non-colour preferences here. programs.btop = lib.mkIf isDesktop { enable = true; settings = { theme_background = false; vim_keys = false; }; }; # Ghostty — stylix's ghostty target writes the colour theme. programs.ghostty = lib.mkIf isDesktop { enable = true; settings = { font-family = "FiraMono Nerd Font"; font-size = 11; font-thicken = true; window-padding-x = 10; window-padding-y = 10; window-padding-balance = true; background-opacity = 0.98; confirm-close-surface = false; gtk-titlebar = false; cursor-style = "bar"; cursor-style-blink = true; }; }; # VSCodium — stylix's vscode target injects workbench.colorCustomizations. # mutableExtensionsDir keeps GUI-installed extensions working. programs.vscode = lib.mkIf isDesktop { enable = true; # Wrap codium so user-installed extension native addons (.node files from # npm) can find libstdc++.so.6 — those binaries have empty RPATHs and # Electron's patched interpreter won't pick up nix-ld's stubs. # The `// { pname; version }` forwards those attrs so programs.vscode's # module (which reads cfg.package.pname) can still identify the variant. package = let base = pkgs.symlinkJoin { name = "vscodium"; paths = [ pkgs.vscodium ]; nativeBuildInputs = [ pkgs.makeWrapper ]; postBuild = '' wrapProgram $out/bin/codium \ --prefix LD_LIBRARY_PATH : "${pkgs.lib.makeLibraryPath [ pkgs.stdenv.cc.cc.lib ]}" ''; }; in base // { inherit (pkgs.vscodium) pname version; }; mutableExtensionsDir = true; profiles.default.userSettings = { "window.menuBarVisibility" = "compact"; "window.commandCenter" = false; "claudeCode.preferredLocation" = "panel"; "git.enableSmartCommit" = true; "git.autofetch" = true; }; }; }