{ description = "Home Manager configuration of Joe Frikker"; inputs = { # Specify the source of Home Manager and Nixpkgs. nixpkgs.url = "github:nixos/nixpkgs/nixos-26.05"; claude-code = { url = "github:sadjow/claude-code-nix"; inputs.nixpkgs.follows = "nixpkgs"; }; home-manager = { url = "github:nix-community/home-manager/release-26.05"; inputs.nixpkgs.follows = "nixpkgs"; }; # kube = { # url = "https://gitea.home-frikker.dedyn.io/jfrikker/kube/archive/1.0.1.tar.gz"; # inputs.nixpkgs.follows = "nixpkgs"; # }; nix-index-database = { url = "github:nix-community/nix-index-database"; inputs.nixpkgs.follows = "nixpkgs"; }; }; outputs = { nixpkgs, home-manager, claude-code, nix-index-database, ... }: let pkgs-for-system = ( system: import nixpkgs { inherit system; config.allowUnfree = true; overlays = [ claude-code.overlays.default ]; } ); modules-for-system = pkgs: pkgs.stdenv.mkDerivation { name = "home-manager-modules"; src = pkgs.lib.fileset.toSource { root = ./.; fileset = pkgs.lib.fileset.unions [ ./home.org ]; }; buildPhase = '' runHook preBuild ${pkgs.emacs}/bin/emacs --batch --eval "(require 'org)" --eval '(org-babel-tangle-file "home.org")' runHook postBuild ''; installPhase = '' runHook preInstall cp -R target $out runHook postInstall ''; }; in { homeConfigurations.redbook = let pkgs = pkgs-for-system "aarch64-darwin"; modules = modules-for-system pkgs; in home-manager.lib.homeManagerConfiguration { inherit pkgs; modules = [ nix-index-database.homeModules.default "${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; } ]; }; homeConfigurations.home = let pkgs = pkgs-for-system "x86_64-linux"; modules = modules-for-system pkgs; in home-manager.lib.homeManagerConfiguration { inherit pkgs; modules = [ nix-index-database.homeModules.default "${modules}" ] ++ [ { home.stateVersion = "22.05"; home.username = "jfrikker"; home.homeDirectory = "/home/jfrikker"; jfrikker.enable = true; } ]; }; homeConfigurations.home-laptop = let pkgs = pkgs-for-system "x86_64-linux"; modules = modules-for-system pkgs; in home-manager.lib.homeManagerConfiguration { inherit pkgs; modules = [ nix-index-database.homeModules.default "${modules}" ] ++ [ { 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; settings = { font-family = "Iosevka Term Extended"; font-size = 10; }; }; programs.foot = { enable = true; settings = { main = { font = "Iosevka Term:size=10:width=expanded"; }; }; }; home.pointerCursor = { enable = true; package = pkgs.vanilla-dmz; name = "Vanilla-DMZ"; sway.enable = true; gtk.enable = true; }; wayland.windowManager.sway = { enable = true; config.modifier = "Mod4"; # config.terminal = "${pkgs.ghostty}/bin/ghostty"; config.input = { "1452:628:bcm5974" = { scroll_factor = "0.4"; }; }; }; programs.emacs.package = pkgs.emacs-pgtk; } ]; # extraSpecialArgs = { kube = kube.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; }; }