{"id":26179818,"url":"https://github.com/dukerupert/terminfo-copy","last_synced_at":"2025-07-28T14:06:34.316Z","repository":{"id":276326794,"uuid":"928950328","full_name":"DukeRupert/terminfo-copy","owner":"DukeRupert","description":"A simple Go utility that streamlines copying Terminfo configurations to remote servers, making it easier to maintain consistent terminal behavior across different machines. Inspired by Ghostty's Terminfo installation process.","archived":false,"fork":false,"pushed_at":"2025-02-07T14:44:45.000Z","size":1533,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"master","last_synced_at":"2025-03-11T21:53:34.976Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":"Go","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/DukeRupert.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}},"created_at":"2025-02-07T14:37:13.000Z","updated_at":"2025-02-07T14:44:48.000Z","dependencies_parsed_at":"2025-02-07T15:44:00.956Z","dependency_job_id":null,"html_url":"https://github.com/DukeRupert/terminfo-copy","commit_stats":null,"previous_names":["dukerupert/terminfo-copy"],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/DukeRupert/terminfo-copy","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/DukeRupert%2Fterminfo-copy","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/DukeRupert%2Fterminfo-copy/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/DukeRupert%2Fterminfo-copy/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/DukeRupert%2Fterminfo-copy/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/DukeRupert","download_url":"https://codeload.github.com/DukeRupert/terminfo-copy/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/DukeRupert%2Fterminfo-copy/sbom","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":267527835,"owners_count":24102019,"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-07-28T02:00:09.689Z","response_time":68,"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":[],"created_at":"2025-03-11T21:53:37.459Z","updated_at":"2025-07-28T14:06:34.289Z","avatar_url":"https://github.com/DukeRupert.png","language":"Go","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Terminfo Copy Utility\n\nA simple command-line utility to copy Terminfo configurations to remote servers. This tool streamlines the process of setting up terminal configurations across multiple machines, particularly useful for users of modern terminal emulators.\n\n## Purpose\n\nWhen working with modern terminal emulators, having the correct Terminfo configuration on remote servers is crucial for proper terminal behavior. This utility automates the process of copying your local Terminfo configuration to remote servers, helping prevent common issues with terminal compatibility.\n\n## Installation\n\nTo install the utility, ensure you have Go installed on your system, then run:\n\n```bash\ngo install github.com/dukerupert/terminfo-copy@latest\n```\n\nOr clone the repository and use the provided Makefile:\n\n```bash\ngit clone https://github.com/dukerupert/terminfo-copy.git\ncd terminfo-copy\n\n# Run directly\nmake run\n\n# Or install globally\nmake install\n```\n\n### Setting Up Your PATH\n\nAfter installation, you'll need to ensure the Go binary directory is in your system PATH to run `terminfo-copy` from any location. Here's how to set it up:\n\nFor Bash users (Linux/macOS):\n```bash\n# Add this line to ~/.bashrc\nexport PATH=$PATH:$(go env GOPATH)/bin\n\n# Then apply the changes\nsource ~/.bashrc\n```\n\nFor Zsh users:\n```bash\n# Add this line to ~/.zshrc\nexport PATH=$PATH:$(go env GOPATH)/bin\n\n# Then apply the changes\nsource ~/.zshrc\n```\n\nFor Fish shell users:\n```bash\n# This command will add the path permanently\nset -U fish_user_paths (go env GOPATH)/bin $fish_user_paths\n```\n\nYou can verify the installation by running:\n```bash\nwhich terminfo-copy\n```\n\n## Usage\n\nAfter proper installation and PATH configuration, run the utility from any directory by typing:\n\n```bash\nterminfo-copy\n```\n\nThe tool will:\n1. Prompt you for the remote server address (e.g., user@hostname)\n2. Extract your local Terminfo configuration\n3. Copy and install it on the remote server\n\n## Requirements\n\n- Go 1.19 or later\n- SSH access to the remote server\n- `infocmp` command available locally\n- Write permissions in the Terminfo directory on the remote server\n\n## How It Works\n\nThe utility executes the following command sequence:\n```bash\ninfocmp -x | ssh YOUR-SERVER -- tic -x -\n```\n\nThis extracts your local terminal information using `infocmp` and pipes it through SSH to the remote server, where `tic` installs it in the appropriate location.\n\n## Acknowledgments\n\nThis utility was inspired by the Terminfo installation documentation from the [Ghostty terminal emulator](https://ghostty.org/docs/help/terminfo). The approach of using `infocmp` and `tic` for Terminfo transfer was adapted from their documentation.\n\n## License\n\nMIT License - See LICENSE file for details\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fdukerupert%2Fterminfo-copy","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fdukerupert%2Fterminfo-copy","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fdukerupert%2Fterminfo-copy/lists"}