{"id":17550943,"url":"https://github.com/iancleary/terminal-config","last_synced_at":"2025-10-31T16:02:29.157Z","repository":{"id":237819732,"uuid":"795296743","full_name":"iancleary/terminal-config","owner":"iancleary","description":"Nix flake for zsh, neovim, and git configuration, to be used with Nix and Home-Manager","archived":false,"fork":false,"pushed_at":"2025-10-21T17:53:56.000Z","size":167,"stargazers_count":1,"open_issues_count":8,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-10-21T19:10:42.696Z","etag":null,"topics":["git","neovim","nix","nix-flake","zsh"],"latest_commit_sha":null,"homepage":"","language":"Shell","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/iancleary.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2024-05-03T01:17:18.000Z","updated_at":"2025-10-21T17:53:59.000Z","dependencies_parsed_at":"2024-07-12T20:44:12.983Z","dependency_job_id":"edc979b3-0f71-4700-ad7a-59ae8335b624","html_url":"https://github.com/iancleary/terminal-config","commit_stats":{"total_commits":81,"total_committers":2,"mean_commits":40.5,"dds":"0.18518518518518523","last_synced_commit":"30a42eb2a11bfcf2ca4dd61ea61112315fc1b0ea"},"previous_names":["iancleary/terminal-config"],"tags_count":12,"template":false,"template_full_name":null,"purl":"pkg:github/iancleary/terminal-config","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/iancleary%2Fterminal-config","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/iancleary%2Fterminal-config/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/iancleary%2Fterminal-config/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/iancleary%2Fterminal-config/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/iancleary","download_url":"https://codeload.github.com/iancleary/terminal-config/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/iancleary%2Fterminal-config/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":281386562,"owners_count":26492014,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","status":"online","status_checked_at":"2025-10-28T02:00:06.022Z","response_time":60,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["git","neovim","nix","nix-flake","zsh"],"created_at":"2024-10-21T04:44:24.420Z","updated_at":"2025-10-31T16:02:29.111Z","avatar_url":"https://github.com/iancleary.png","language":"Shell","funding_links":[],"categories":[],"sub_categories":[],"readme":"# terminal-config\n\nNix to be used with Nix and Home-Manager with flakes\n\nProvides:\n\n* [Zsh with plugins](./zsh)\n* [Git Config and Aliases](./zsh/git.zsh)\n* [terminal or CLI programs](cli.nix)\n* [tmux](tmux.nix)\n\n## Examples\n\nWhile the below example is for nix-darwin, the flake is designed to be used\non any platform with a terminal (since it's a home-manager module):\n\n* NixOS (with home-manager)\n* Ubuntu (with home-manager)\n* MacOS (with nix-darwin and home-manager)\n* WSL (with home-manager)\n\n### Macos\n\n```flake.nix\n\n{\n  description = \"Example Darwin system flake\";\n\n  inputs = {\n    flake-utils.url = \"github:numtide/flake-utils\";\n    nixpkgs.url = \"github:NixOS/nixpkgs/nixos-24.05\";\n    nixpkgs-unstable.url = \"github:NixOS/nixpkgs/nixos-unstable\";\n    nix-darwin.url = \"github:LnL7/nix-darwin\";\n    nix-darwin.inputs.nixpkgs.follows = \"nixpkgs\";\n    home-manager.url = \"github:nix-community/home-manager\";\n    home-manager.inputs.nixpkgs.follows = \"nixpkgs\";\n    terminal-config.url = \"github:iancleary/terminal-config\";\n  };\n\n  outputs = inputs@{ self\n    , flake-utils\n    , nixpkgs\n    , nixpkgs-unstable\n    , nix-darwin\n    , home-manager\n    , terminal-config\n    }:\n  let\n    forAllSystems = nixpkgs.lib.genAttrs flake-utils.lib.defaultSystems;\n    overlays = {\n        unstable = final: prev: {\n          unstable = nixpkgs-unstable.legacyPackages.${prev.system};\n        };\n        neovimPlugins = terminal-config.overlays.default;\n    };\n\n    legacyPackages = forAllSystems (system:\n        import inputs.nixpkgs {\n            inherit system;\n            overlays = builtins.attrValues overlays;\n            config.allowUnfree = true;\n        }\n    );\n  in\n  {\n    # Build darwin flake using:\n    # $ darwin-rebuild build --flake .#eMacOS\n    darwinConfigurations.\"macbookAir\" = nix-darwin.lib.darwinSystem {\n      pkgs = legacyPackages.\"aarch64-darwin\";\n      system = \"aarch64-darwin\";\n      modules = [\n        ./modules/nix-darwin/default.nix # nix-darwin configuration\n\n        # home-manager configuration\n        home-manager.darwinModules.home-manager\n          {\n            home-manager.useGlobalPkgs = true;\n            home-manager.useUserPackages = true;\n            home-manager.users.iancleary = import ./modules/home-manager/default.nix;\n\n            # This (below) is required to pass the flake inputs to the modules,\n            # so the remote terminal-config flake can be used\n            home-manager.extraSpecialArgs = { inherit inputs self; }; # Passes the flake inputs to the modules\n            # Optionally, use home-manager.extraSpecialArgs to pass\n            # arguments to home.nix\n          }\n      ];\n      specialArgs = { inherit inputs self; }; # Passes the flake inputs to the modules\n    };\n\n    # Expose the package set, including overlays, for convenience.\n    darwinPackages = self.darwinConfigurations.\"macbookAir\".pkgs;\n  };\n}\n```\n\n```modules/home-manager/default.nix\n{ inputs, lib, ... }:\n\n{\n  # Home Manager needs a bit of information about you and the\n  # paths it should manage.\n  home = rec {\n    username = \"iancleary\";\n    homeDirectory = lib.mkForce \"/Users/${username}\"; # lib.mkForce allows for user to already exist\n    stateVersion = lib.mkDefault \"24.05\";\n  };\n\n  # Let Home Manager install and manage itself.\n  programs.home-manager.enable = true;\n\n  # Rest of the configuration is in a separate folder.\n  imports = [\n    inputs.terminal-config.homeManagerModules.default\n  ];\n\n  myTerminal = {\n    zsh.enable = true;\n  };\n\n}\n```\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fiancleary%2Fterminal-config","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fiancleary%2Fterminal-config","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fiancleary%2Fterminal-config/lists"}