{"id":21648037,"url":"https://github.com/atom-community/terminal","last_synced_at":"2025-04-11T19:34:21.552Z","repository":{"id":37024027,"uuid":"288829603","full_name":"atom-community/terminal","owner":"atom-community","description":"Terminal integrated with atom-community/atom","archived":false,"fork":false,"pushed_at":"2023-10-11T08:06:42.000Z","size":5939,"stargazers_count":19,"open_issues_count":15,"forks_count":4,"subscribers_count":4,"default_branch":"master","last_synced_at":"2025-03-25T15:33:05.432Z","etag":null,"topics":["atom","atom-package","hacktoberfest","terminal"],"latest_commit_sha":null,"homepage":"https://atom.io/packages/atomic-terminal","language":"JavaScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"other","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/atom-community.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGELOG.md","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}},"created_at":"2020-08-19T20:22:12.000Z","updated_at":"2024-02-26T20:29:50.000Z","dependencies_parsed_at":"2023-01-30T04:16:19.961Z","dependency_job_id":null,"html_url":"https://github.com/atom-community/terminal","commit_stats":null,"previous_names":[],"tags_count":11,"template":false,"template_full_name":"atom-community/atom-ide-template","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/atom-community%2Fterminal","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/atom-community%2Fterminal/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/atom-community%2Fterminal/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/atom-community%2Fterminal/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/atom-community","download_url":"https://codeload.github.com/atom-community/terminal/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":248467476,"owners_count":21108650,"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","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":["atom","atom-package","hacktoberfest","terminal"],"created_at":"2024-11-25T06:53:03.579Z","updated_at":"2025-04-11T19:34:21.528Z","avatar_url":"https://github.com/atom-community.png","language":"JavaScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Terminal\n\n## Demo\n\n![Terminal demo](https://cdn.statically.io/gh/bus-stop/x-terminal/master/resources/x-terminal-demo.gif)\n\n## Theme variables\n\nThe following theme variables are available to change the colors of the standard theme:\n\n```less\n@app-background-color: #000000;\n@text-color: #ffffff;\n@background-color-selected: #4d4d4d;\n@text-color-highlight: #ffffff;\n@terminal-color-black: #2e3436;\n@terminal-color-red: #cc0000;\n@terminal-color-green: #4e9a06;\n@terminal-color-yellow: #c4a000;\n@terminal-color-blue: #3465a4;\n@terminal-color-magenta: #75507b;\n@terminal-color-cyan: #06989a;\n@terminal-color-white: #d3d7cf;\n@terminal-color-bright-black: #555753;\n@terminal-color-bright-red: #ef2929;\n@terminal-color-bright-green: #8ae234;\n@terminal-color-bright-yellow: #fce94f;\n@terminal-color-bright-blue: #729fcf;\n@terminal-color-bright-magenta: #ad7fa8;\n@terminal-color-bright-cyan: #34e2e2;\n@terminal-color-bright-white: #eeeeec;\n```\n\n## Active Terminal\n\nThe active terminal is the terminal that will be used when sending commands to\nthe terminal.\n\nThe active terminal will always have an astrix (`*`) in front of the title.\nBy default when a terminal is hidden it becomes inactive and the last used\nvisible terminal will become active. If there are no visible terminals none are\nactive.\n\nThe `Allow Hidden Terminal To Stay Active` setting will change the\ndefault behavior and keep a terminal that is hidden active until another\nterminal is focused.\n\n## Services\n\nFor plugin writers, the `terminal` package supports two services, `terminal` and `platformioIDETerminal`, which\ncan be used to easily open terminals. These methods are provided using Atom's [services](http://flight-manual.atom.io/behind-atom/sections/interacting-with-other-packages-via-services/)\nAPI.\n\nTo use a service, add a consumer method to consume the service, or\nrather a JavaScript object that provides methods to open terminals and run commands.\n\n### 'terminal' service v1.0.0\n\nThe `terminal` service provides an [object](https://github.com/atom-community/terminal/blob/29b0751250cb9262fb609db8cae87d87fb383c64/src/terminal.js#L291) with `updateProcessEnv`, `run`, `getTerminalViews`, and `open` methods.\n\nAs an example on how to use the provided `run()` method, your\n`package.json` should have the following.\n\n```json\n{\n  \"consumedServices\": {\n    \"terminal\": {\n      \"versions\": {\n        \"^1.1.0\": \"consumePlatformioIDETerminalService\"\n      }\n    }\n  }\n}\n```\n\nYour package's main module should then define a `consumePlatformioIDETerminalService`\nmethod, for example.\n\n```js\nimport { Disposable } from \"atom\"\n\nexport default {\n  terminalService: null,\n\n  consumePlatformioIDETerminalService(terminalService) {\n    this.terminalService = terminalService\n    return new Disposable(() =\u003e {\n      this.terminalService = null\n    })\n  },\n\n  // . . .\n}\n```\n\nOnce the service is consumed, use the `run()` method that is provided\nby the service, for example.\n\n```js\n// Launch `somecommand --foo --bar --baz` in a terminal.\nthis.terminalService.run([\"somecommand --foo --bar --baz\"])\n```\n\n# Development\n\nWant to help develop terminal? Here's how to quickly get setup.\n\nFirst use the [apm](https://github.com/atom/apm) command to clone the\n[terminal repo](https://github.com/atom-community/terminal).\n\n```sh\napm develop terminal\n```\n\nThis should clone the terminal package into the `$HOME/github/terminal`\ndirectory. Go into this directory and install its dependencies.\n\n```sh\ncd $HOME/github/terminal\nnpm install\n```\n\nYou shouldn't need to rebuild any [node-pty](https://github.com/Tyriar/node-pty)\nsince they are pre-compiled, however in the event they aren't available,\nyou can rebuild them with:\n\n```sh\napm rebuild\n```\n\nFinally, open this directory in Atom's dev mode and hack away.\n\n```sh\natom --dev\n```\n\nThere's a test suite available for automated testing of the terminal package.\nSimply go to `View \u003e Developer \u003e Run Package Specs` in Atom's main menu or\nuse the hotkey. You can run the full test suite (which includes running lint\ntools) via command-line by running `npm run test` inside the terminal\ndirectory.\n\nVarious lint tools are being used to keep the code \"beautified\". To run only\nthe lint tools, simply run `npm run lint`.\n\n## Pull Requests\n\nWhenever you're ready to submit a pull request, be sure to submit it\nagainst a fork of the main [terminal repo](https://github.com/atom-community/terminal)\nmaster branch that you'll own. Fork the repo using Github and make note of the\nnew `git` URL. Set this new git URL as the URL for the `origin` remote in your\nalready cloned git repo is follows.\n\n```sh\ngit remote set-url origin ${NEW_GIT_URL}\n```\n\nEnsure your new changes passes the test suite by running `npm run test`.\nAfterwards, push your changes to your repo and then use Github to submit a new\npull request.\n\n## [xterm.js](https://github.com/xtermjs/xterm.js)\n\nThe terminals that users interact with in this package is made possible with\nmajor help from the [xterm.js](https://github.com/xtermjs/xterm.js) library. As\nsuch, often times it's necessary to make changes to xterm.js in order to fix\nsome bug or implement new features.\n\nIf you want to work on xterm.js for the benefit of a bug fix or feature to be\nsupported in terminal, here's how you can quickly get setup.\n\nFirst make a fork of [xterm.js](https://github.com/xtermjs/xterm.js). Next,\nclone your newly created fork as follows.\n\n```sh\ngit clone ${YOUR_XTERMJS_FORK} ${HOME}/github/xterm.js\n```\n\nGo into your newly cloned repo for xterm.js.\n\n```sh\ncd ${HOME}/github/xterm.js\n```\n\nInstall all needed dependencies.\n\n```sh\nnpm install\n```\n\nBuild xterm.js.\n\n```sh\nnpm run build\n```\n\nEnsure the test suite passes.\n\n```sh\nnpm run test\nnpm run lint\n```\n\nAdd a global link for xterm.js to your system.\n\n```sh\nnpm link\n```\n\nInside your terminal directory, link against the global `xterm` link.\n\n```sh\ncd ${HOME}/github/terminal\nnpm link xterm\n```\n\nFinally, perform a rebuild with the [apm](https://github.com/atom/apm) program\ninside the terminal directory.\n\n```sh\napm rebuild\n```\n\nYou're all set for developing xterm.js. Hack away in your xterm.js directory,\nrun `npm run build`, then reload your Atom window to see the changes to your\nterminals.\n\n# Credits and Legal\n\nClick for copyright and license info about this package.\n\n[![LICENSE and © INFO](https://img.shields.io/badge/©%20\u0026%20LICENSE-MIT-blue.svg?longCache=true\u0026=flat-square)](LICENSE)\n\n# Feedback\n\nNeed to submit a bug report? Have a new feature you want to see implemented in\n_terminal_? Please feel free to submit them through the appropriate\n[issue template](https://github.com/atom-community/terminal/issues/new/choose).\n\nFor bug reports, please provide images or demos showing your issues if you can.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fatom-community%2Fterminal","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fatom-community%2Fterminal","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fatom-community%2Fterminal/lists"}