├── .pug-lintrc.js ├── .env ├── tabby-uac ├── .gitignore └── UAC │ ├── UAC.cpp │ ├── stdafx.cpp │ ├── stdafx.h │ ├── targetver.h │ ├── UAC.vcxproj.user │ └── app.manifest ├── .well-known └── funding-manifest-urls ├── tabby-core ├── src │ ├── directives │ │ ├── dropZone.directive.pug │ │ ├── autofocus.directive.ts │ │ ├── dropZone.directive.scss │ │ └── alwaysVisibleTypeahead.directive.ts │ ├── components │ │ ├── tabBody.deep.component.css │ │ ├── titleBar.component.pug │ │ ├── tabBody.component.scss │ │ ├── profileIcon.component.pug │ │ ├── welcomeTab.component.scss │ │ ├── profileIcon.component.scss │ │ ├── renameTabModal.component.pug │ │ ├── safeModeModal.component.pug │ │ ├── splitTabSpanner.component.scss │ │ ├── titleBar.component.ts │ │ ├── safeModeModal.component.ts │ │ ├── titleBar.component.scss │ │ ├── promptModal.component.pug │ │ ├── startPage.component.scss │ │ ├── windowControls.component.scss │ │ ├── profileIcon.component.ts │ │ ├── toggle.component.scss │ │ ├── splitTab.component.scss │ │ ├── windowControls.component.ts │ │ ├── toggle.component.ts │ │ ├── splitTabPaneLabel.component.scss │ │ └── selectorModal.component.scss │ ├── theme.vendor.scss │ ├── services │ │ ├── updater.service.ts │ │ ├── docking.service.ts │ │ └── notifications.service.ts │ ├── configDefaults.web.yaml │ ├── api │ │ ├── cli.ts │ │ ├── selector.ts │ │ ├── menu.ts │ │ ├── theme.ts │ │ ├── fileProvider.ts │ │ ├── tabContextMenuProvider.ts │ │ ├── hotkeyProvider.ts │ │ ├── mainProcess.ts │ │ ├── toolbarButtonProvider.ts │ │ └── configProvider.ts │ ├── theme.ts │ ├── icons │ │ ├── check.svg │ │ ├── plus.svg │ │ ├── gift.svg │ │ ├── tab-options.svg │ │ ├── times.svg │ │ └── profiles.svg │ └── config.ts ├── tsconfig.json ├── webpack.config.mjs ├── tsconfig.typings.json └── README.md ├── .github ├── FUNDING.yml ├── workflows │ └── release.yml ├── ISSUE_TEMPLATE │ └── issue-report.md └── stale.yml ├── docs ├── kofi.png ├── readme.png ├── readme-ssh.png └── readme-terminal.png ├── extras ├── UAC.exe ├── clink │ ├── clink_x64.exe │ ├── clink_x86.exe │ ├── clink_arm64.exe │ ├── clink_dll_x64.dll │ ├── clink_dll_x86.dll │ ├── clink_dll_arm64.dll │ ├── clink.lua │ └── default_inputrc └── automator-workflows │ ├── Open Tabby here.workflow │ └── Contents │ │ ├── QuickLook │ │ └── Thumbnail.png │ │ └── _CodeSignature │ │ ├── CodeDirectory │ │ ├── CodeSignature │ │ ├── CodeRequirements │ │ └── CodeRequirements-1 │ └── Paste path into Tabby.workflow │ └── Contents │ ├── QuickLook │ └── Thumbnail.png │ └── _CodeSignature │ ├── CodeDirectory │ ├── CodeSignature │ ├── CodeRequirements │ └── CodeRequirements-1 ├── app ├── assets │ ├── tray.png │ ├── activity.png │ ├── tray-darwinTemplate.png │ ├── tray-darwinTemplate@2x.png │ ├── tray-darwinHighlightTemplate.png │ └── tray-darwinHighlightTemplate@2x.png ├── dev-app-update.yml ├── lib │ ├── portable.ts │ ├── lru.ts │ └── sentry.ts ├── src │ ├── entry.preload.ts │ ├── pluginBlacklist.ts │ └── toastr.scss └── index.pug ├── typedoc.mjs ├── tabby-local ├── src │ ├── components │ │ ├── environmentEditor.component.scss │ │ ├── shellSettingsTab.component.ts │ │ └── shellSettingsTab.component.pug │ ├── icons │ │ └── plus.svg │ ├── hotkeys.ts │ └── settings.ts ├── tsconfig.json ├── webpack.config.mjs ├── README.md └── tsconfig.typings.json ├── tabby-community-color-schemes ├── .editorconfig ├── yarn.lock ├── tsconfig.json ├── tsconfig.typings.json ├── src │ └── index.ts ├── webpack.config.mjs ├── package.json └── schemes │ ├── Relaxed │ ├── Tango │ ├── Nord │ ├── Blazer │ ├── Rose Pine │ ├── Atom │ ├── C64 │ ├── CLRS │ ├── Chalk │ ├── ENCOM │ ├── Flat │ ├── Grape │ ├── Grass │ ├── Iceberg │ ├── Jazz │ ├── Novel │ ├── Ocean │ ├── Ollie │ ├── Pro │ ├── Royal │ ├── Seti │ ├── Slate │ ├── Smyck │ ├── Teerb │ ├── Urple │ ├── Wez │ ├── Wryan │ ├── ayu │ ├── deep │ ├── 3024 Day │ ├── 3024 Night │ ├── Afterglow │ ├── AlienBlood │ ├── Argonaut │ ├── Arthur │ ├── Batman │ ├── Borland │ ├── Broadcast │ ├── Brogrammer │ ├── Chalkboard │ ├── Ciapre │ ├── Cobalt2 │ ├── Darkside │ ├── Desert │ ├── DotGov │ ├── Dracula │ ├── Earthsong │ ├── Elemental │ ├── Elementary │ ├── Espresso │ ├── Fideloper │ ├── FirefoxDev │ ├── Firewatch │ ├── FishTank │ ├── Flatland │ ├── Floraverse │ ├── ForestBlue │ ├── FunForrest │ ├── Galaxy │ ├── Github │ ├── Glacier │ ├── Hardcore │ ├── Harper │ ├── Highway │ ├── Homebrew │ ├── Hurtado │ ├── Hybrid │ ├── IR_Black │ ├── Japanesque │ ├── Jellybeans │ ├── Kibble │ ├── Lavandula │ ├── Man Page │ ├── Material │ ├── Mathias │ ├── Medallion │ ├── Misterioso │ ├── Molokai │ ├── MonaLisa │ ├── N0tch2k │ ├── Neopolitan │ ├── Neutron │ └── Obsidian ├── tabby-terminal ├── src │ ├── bell.ogg │ ├── fonts │ │ └── SourceCodePro.ttf │ ├── components │ │ ├── colorPicker.component.pug │ │ ├── colorSchemePreview.component.scss │ │ ├── appearanceSettingsTab.component.scss │ │ ├── inputProcessingSettings.component.pug │ │ ├── colorSchemeSettingsForMode.component.scss │ │ ├── colorPicker.component.scss │ │ ├── colorPicker.component.ts │ │ ├── terminalToolbar.component.scss │ │ ├── colorSchemeSettingsTab.component.ts │ │ ├── searchPanel.component.scss │ │ ├── baseTerminalTab.component.pug │ │ └── terminalToolbar.component.pug │ ├── api │ │ ├── colorSchemeProvider.ts │ │ ├── contextMenuProvider.ts │ │ └── interfaces.ts │ ├── frontends │ │ └── xterm.css │ ├── icons │ │ ├── arrow-down.svg │ │ ├── arrow-up.svg │ │ ├── close.svg │ │ ├── regexp.svg │ │ └── case.svg │ └── middleware │ │ └── utf8Splitter.ts ├── README.md ├── tsconfig.json ├── tsconfig.typings.json ├── webpack.config.mjs └── patches │ └── ansi-color+0.2.1.patch ├── tabby-web-demo ├── data │ ├── bios.bin │ ├── linux.iso │ ├── v86.wasm │ ├── vgabios.bin │ └── v86state.bin ├── tsconfig.json ├── webpack.config.mjs ├── src │ └── icons │ │ └── plus.svg └── package.json ├── tabby-telnet ├── src │ ├── components │ │ ├── telnetTab.component.scss │ │ ├── telnetTab.component.pug │ │ └── telnetProfileSettings.component.ts │ ├── config.ts │ └── hotkeys.ts ├── tsconfig.json ├── webpack.config.mjs ├── tsconfig.typings.json └── yarn.lock ├── locale ├── STOP.txt └── en-US.po ├── tabby-ssh ├── src │ ├── components │ │ ├── sshTab.component.scss │ │ ├── sftpDeleteModal.component.pug │ │ ├── keyboardInteractiveAuthPanel.component.scss │ │ ├── sshPortForwardingModal.component.pug │ │ ├── sftpCreateDirectoryModal.component.pug │ │ └── sftpCreateDirectoryModal.component.ts │ ├── api │ │ ├── index.ts │ │ ├── importer.ts │ │ └── contextMenu.ts │ ├── settings.ts │ ├── config.ts │ ├── hotkeys.ts │ └── recoveryProvider.ts ├── tsconfig.json ├── webpack.config.mjs └── tsconfig.typings.json ├── tabby-web ├── tsconfig.json ├── src │ ├── config.ts │ ├── services │ │ ├── log.service.ts │ │ └── updater.service.ts │ ├── styles.scss │ └── components │ │ └── messageBoxModal.component.pug ├── webpack.config.mjs ├── tsconfig.typings.json └── package.json ├── tabby-electron ├── tsconfig.json ├── src │ ├── icons │ │ ├── oracle-linux.svg │ │ ├── cygwin.svg │ │ ├── clink.svg │ │ ├── cmd.svg │ │ ├── vs2017.svg │ │ ├── cmder.svg │ │ └── cmder-powershell.svg │ ├── shells │ │ └── windowsBase.ts │ ├── hotkeys.ts │ └── config.ts ├── webpack.config.mjs ├── tsconfig.typings.json └── package.json ├── tabby-linkifier ├── tsconfig.json ├── README.md ├── src │ ├── config.ts │ └── api.ts ├── webpack.config.mjs ├── tsconfig.typings.json ├── package.json └── yarn.lock ├── tabby-plugin-manager ├── src │ ├── components │ │ └── pluginsSettingsTab.component.scss │ └── settings.ts ├── tsconfig.json ├── webpack.config.mjs └── tsconfig.typings.json ├── tabby-settings ├── tsconfig.json ├── src │ ├── components │ │ ├── profilesSettingsTab.component.scss │ │ ├── releaseNotesTab.component.scss │ │ ├── hotkeyInputModal.component.scss │ │ ├── multiHotkeyInput.component.pug │ │ ├── showSecretModal.component.pug │ │ ├── releaseNotesTab.component.pug │ │ ├── hotkeyInputModal.component.pug │ │ ├── multiHotkeyInput.component.scss │ │ ├── hotkeySettingsTab.component.pug │ │ └── setVaultPassphraseModal.component.pug │ └── api.ts ├── webpack.config.mjs ├── tsconfig.typings.json └── README.md ├── tabby-auto-sudo-password ├── tsconfig.json ├── webpack.config.mjs ├── yarn.lock ├── tsconfig.typings.json ├── src │ └── index.ts └── package.json ├── tabby-serial ├── tsconfig.json ├── src │ ├── components │ │ ├── serialTab.component.scss │ │ └── serialTab.component.pug │ ├── config.ts │ └── hotkeys.ts ├── webpack.config.mjs ├── tsconfig.typings.json └── yarn.lock ├── firebase.json ├── scripts ├── build-typings.mjs ├── build-docs.mjs ├── publish-plugins.mjs ├── generate-icon-metadata.mjs └── build-modules.mjs ├── .mergify.yml ├── webpack.config.mjs ├── web ├── patches │ └── browserify-sign+4.2.1.patch └── package.json ├── .gitignore ├── snap └── snapcraft.yaml ├── patches └── app-builder-lib+26.0.12.patch └── .editorconfig /.pug-lintrc.js: -------------------------------------------------------------------------------- 1 | module.export = { 2 | } 3 | -------------------------------------------------------------------------------- /.env: -------------------------------------------------------------------------------- 1 | # TABBY_CONFIG_DIRECTORY="PATH_TO_DIRECTORY" -------------------------------------------------------------------------------- /tabby-uac/.gitignore: -------------------------------------------------------------------------------- 1 | Debug 2 | *.ipch 3 | *.suo 4 | v15 -------------------------------------------------------------------------------- /.well-known/funding-manifest-urls: -------------------------------------------------------------------------------- 1 | https://null.page/funding.json 2 | -------------------------------------------------------------------------------- /tabby-core/src/directives/dropZone.directive.pug: -------------------------------------------------------------------------------- 1 | i.fas.fa-upload 2 | -------------------------------------------------------------------------------- /.github/FUNDING.yml: -------------------------------------------------------------------------------- 1 | github: eugeny 2 | open_collective: tabby 3 | ko_fi: eugeny 4 | -------------------------------------------------------------------------------- /docs/kofi.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/OpaqueGlass/tabby-fork/master/docs/kofi.png -------------------------------------------------------------------------------- /extras/UAC.exe: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/OpaqueGlass/tabby-fork/master/extras/UAC.exe -------------------------------------------------------------------------------- /docs/readme.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/OpaqueGlass/tabby-fork/master/docs/readme.png -------------------------------------------------------------------------------- /app/assets/tray.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/OpaqueGlass/tabby-fork/master/app/assets/tray.png -------------------------------------------------------------------------------- /docs/readme-ssh.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/OpaqueGlass/tabby-fork/master/docs/readme-ssh.png -------------------------------------------------------------------------------- /typedoc.mjs: -------------------------------------------------------------------------------- 1 | module.exports = { 2 | excludePrivate: true, 3 | excludeExternals: true 4 | } 5 | -------------------------------------------------------------------------------- /tabby-local/src/components/environmentEditor.component.scss: -------------------------------------------------------------------------------- 1 | :host { 2 | display: block; 3 | } 4 | -------------------------------------------------------------------------------- /tabby-uac/UAC/UAC.cpp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/OpaqueGlass/tabby-fork/master/tabby-uac/UAC/UAC.cpp -------------------------------------------------------------------------------- /app/assets/activity.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/OpaqueGlass/tabby-fork/master/app/assets/activity.png -------------------------------------------------------------------------------- /docs/readme-terminal.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/OpaqueGlass/tabby-fork/master/docs/readme-terminal.png -------------------------------------------------------------------------------- /tabby-community-color-schemes/.editorconfig: -------------------------------------------------------------------------------- 1 | [schemes/*] 2 | indent_style = space 3 | indent_size = 15 4 | -------------------------------------------------------------------------------- /tabby-uac/UAC/stdafx.cpp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/OpaqueGlass/tabby-fork/master/tabby-uac/UAC/stdafx.cpp -------------------------------------------------------------------------------- /tabby-uac/UAC/stdafx.h: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/OpaqueGlass/tabby-fork/master/tabby-uac/UAC/stdafx.h -------------------------------------------------------------------------------- /extras/clink/clink_x64.exe: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/OpaqueGlass/tabby-fork/master/extras/clink/clink_x64.exe -------------------------------------------------------------------------------- /extras/clink/clink_x86.exe: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/OpaqueGlass/tabby-fork/master/extras/clink/clink_x86.exe -------------------------------------------------------------------------------- /tabby-uac/UAC/targetver.h: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/OpaqueGlass/tabby-fork/master/tabby-uac/UAC/targetver.h -------------------------------------------------------------------------------- /app/dev-app-update.yml: -------------------------------------------------------------------------------- 1 | owner: eugeny 2 | repo: tabby 3 | provider: github 4 | updaterCacheDirName: tabby-updater 5 | -------------------------------------------------------------------------------- /extras/clink/clink_arm64.exe: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/OpaqueGlass/tabby-fork/master/extras/clink/clink_arm64.exe -------------------------------------------------------------------------------- /tabby-terminal/src/bell.ogg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/OpaqueGlass/tabby-fork/master/tabby-terminal/src/bell.ogg -------------------------------------------------------------------------------- /tabby-web-demo/data/bios.bin: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/OpaqueGlass/tabby-fork/master/tabby-web-demo/data/bios.bin -------------------------------------------------------------------------------- /tabby-web-demo/data/linux.iso: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/OpaqueGlass/tabby-fork/master/tabby-web-demo/data/linux.iso -------------------------------------------------------------------------------- /tabby-web-demo/data/v86.wasm: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/OpaqueGlass/tabby-fork/master/tabby-web-demo/data/v86.wasm -------------------------------------------------------------------------------- /extras/clink/clink_dll_x64.dll: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/OpaqueGlass/tabby-fork/master/extras/clink/clink_dll_x64.dll -------------------------------------------------------------------------------- /extras/clink/clink_dll_x86.dll: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/OpaqueGlass/tabby-fork/master/extras/clink/clink_dll_x86.dll -------------------------------------------------------------------------------- /tabby-telnet/src/components/telnetTab.component.scss: -------------------------------------------------------------------------------- 1 | @import '../../../tabby-ssh/src/components/sshTab.component.scss'; 2 | -------------------------------------------------------------------------------- /tabby-web-demo/data/vgabios.bin: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/OpaqueGlass/tabby-fork/master/tabby-web-demo/data/vgabios.bin -------------------------------------------------------------------------------- /app/assets/tray-darwinTemplate.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/OpaqueGlass/tabby-fork/master/app/assets/tray-darwinTemplate.png -------------------------------------------------------------------------------- /extras/clink/clink_dll_arm64.dll: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/OpaqueGlass/tabby-fork/master/extras/clink/clink_dll_arm64.dll -------------------------------------------------------------------------------- /tabby-terminal/README.md: -------------------------------------------------------------------------------- 1 | # Tabby Terminal Plugin 2 | 3 | * terminal tabs 4 | * terminal frontends 5 | * session management 6 | -------------------------------------------------------------------------------- /tabby-web-demo/data/v86state.bin: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/OpaqueGlass/tabby-fork/master/tabby-web-demo/data/v86state.bin -------------------------------------------------------------------------------- /tabby-core/src/components/tabBody.deep.component.css: -------------------------------------------------------------------------------- 1 | :host /deep/ .ps-content { 2 | flex: auto; 3 | display: flex; 4 | } 5 | -------------------------------------------------------------------------------- /app/assets/tray-darwinTemplate@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/OpaqueGlass/tabby-fork/master/app/assets/tray-darwinTemplate@2x.png -------------------------------------------------------------------------------- /locale/STOP.txt: -------------------------------------------------------------------------------- 1 | Do not submit pull requests for translations. 2 | 3 | Translations are managed at https://crowdin.com/project/tabby 4 | -------------------------------------------------------------------------------- /locale/en-US.po: -------------------------------------------------------------------------------- 1 | msgid "id.port-forwarding.dynamic" 2 | msgstr "Dynamic" 3 | 4 | msgid "id.tab-width.dynamic" 5 | msgstr "Dynamic" 6 | -------------------------------------------------------------------------------- /tabby-community-color-schemes/yarn.lock: -------------------------------------------------------------------------------- 1 | # THIS IS AN AUTOGENERATED FILE. DO NOT EDIT THIS FILE DIRECTLY. 2 | # yarn lockfile v1 3 | 4 | 5 | -------------------------------------------------------------------------------- /app/assets/tray-darwinHighlightTemplate.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/OpaqueGlass/tabby-fork/master/app/assets/tray-darwinHighlightTemplate.png -------------------------------------------------------------------------------- /tabby-terminal/src/fonts/SourceCodePro.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/OpaqueGlass/tabby-fork/master/tabby-terminal/src/fonts/SourceCodePro.ttf -------------------------------------------------------------------------------- /app/assets/tray-darwinHighlightTemplate@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/OpaqueGlass/tabby-fork/master/app/assets/tray-darwinHighlightTemplate@2x.png -------------------------------------------------------------------------------- /tabby-core/src/components/titleBar.component.pug: -------------------------------------------------------------------------------- 1 | .title((dblclick)='hostWindow.toggleMaximize()') Tabby 2 | window-controls(*ngIf="!hideControls") 3 | -------------------------------------------------------------------------------- /tabby-core/src/theme.vendor.scss: -------------------------------------------------------------------------------- 1 | // $alert-border-radius: 0; 2 | // @mixin border-radius ($r) {} 3 | @import "../../node_modules/ngx-toastr/toastr-bs5-alert.scss"; 4 | -------------------------------------------------------------------------------- /tabby-core/src/services/updater.service.ts: -------------------------------------------------------------------------------- 1 | export abstract class UpdaterService { 2 | abstract check (): Promise 3 | abstract update (): Promise 4 | } 5 | -------------------------------------------------------------------------------- /tabby-core/tsconfig.json: -------------------------------------------------------------------------------- 1 | { 2 | "extends": "../tsconfig.json", 3 | "exclude": ["node_modules", "dist"], 4 | "compilerOptions": { 5 | "baseUrl": "src" 6 | } 7 | } 8 | -------------------------------------------------------------------------------- /tabby-ssh/src/components/sshTab.component.scss: -------------------------------------------------------------------------------- 1 | sftp-panel { 2 | position: absolute; 3 | height: 80%; 4 | width: 100%; 5 | bottom: 0; 6 | z-index: 5; 7 | } 8 | -------------------------------------------------------------------------------- /tabby-web/tsconfig.json: -------------------------------------------------------------------------------- 1 | { 2 | "extends": "../tsconfig.json", 3 | "exclude": ["node_modules", "dist"], 4 | "compilerOptions": { 5 | "baseUrl": "src" 6 | } 7 | } 8 | -------------------------------------------------------------------------------- /tabby-electron/tsconfig.json: -------------------------------------------------------------------------------- 1 | { 2 | "extends": "../tsconfig.json", 3 | "exclude": ["node_modules", "dist"], 4 | "compilerOptions": { 5 | "baseUrl": "src" 6 | } 7 | } 8 | -------------------------------------------------------------------------------- /tabby-linkifier/tsconfig.json: -------------------------------------------------------------------------------- 1 | { 2 | "extends": "../tsconfig.json", 3 | "exclude": ["node_modules", "dist"], 4 | "compilerOptions": { 5 | "baseUrl": "src", 6 | } 7 | } 8 | -------------------------------------------------------------------------------- /tabby-plugin-manager/src/components/pluginsSettingsTab.component.scss: -------------------------------------------------------------------------------- 1 | ::ng-deep .card-header { 2 | padding: 0; 3 | 4 | > button { 5 | width: 100%; 6 | } 7 | } 8 | -------------------------------------------------------------------------------- /tabby-settings/tsconfig.json: -------------------------------------------------------------------------------- 1 | { 2 | "extends": "../tsconfig.json", 3 | "exclude": ["node_modules", "dist"], 4 | "compilerOptions": { 5 | "baseUrl": "src", 6 | } 7 | } 8 | -------------------------------------------------------------------------------- /tabby-local/tsconfig.json: -------------------------------------------------------------------------------- 1 | { 2 | "extends": "../tsconfig.json", 3 | "exclude": ["node_modules", "dist", "typings"], 4 | "compilerOptions": { 5 | "baseUrl": "src" 6 | } 7 | } 8 | -------------------------------------------------------------------------------- /tabby-plugin-manager/tsconfig.json: -------------------------------------------------------------------------------- 1 | { 2 | "extends": "../tsconfig.json", 3 | "exclude": ["node_modules", "dist"], 4 | "compilerOptions": { 5 | "baseUrl": "src", 6 | } 7 | } 8 | -------------------------------------------------------------------------------- /tabby-ssh/tsconfig.json: -------------------------------------------------------------------------------- 1 | { 2 | "extends": "../tsconfig.json", 3 | "exclude": ["node_modules", "dist", "typings"], 4 | "compilerOptions": { 5 | "baseUrl": "src" 6 | } 7 | } 8 | -------------------------------------------------------------------------------- /tabby-auto-sudo-password/tsconfig.json: -------------------------------------------------------------------------------- 1 | { 2 | "extends": "../tsconfig.json", 3 | "exclude": ["node_modules", "dist"], 4 | "compilerOptions": { 5 | "baseUrl": "src", 6 | } 7 | } 8 | -------------------------------------------------------------------------------- /tabby-linkifier/README.md: -------------------------------------------------------------------------------- 1 | # Tabby Linkifier Plugin 2 | 3 | This plugin makes URLs, IPs and file paths in the terminal clickable and adds a context menu that allows quickly copying them. 4 | -------------------------------------------------------------------------------- /tabby-serial/tsconfig.json: -------------------------------------------------------------------------------- 1 | { 2 | "extends": "../tsconfig.json", 3 | "exclude": ["node_modules", "dist", "typings"], 4 | "compilerOptions": { 5 | "baseUrl": "src" 6 | } 7 | } 8 | -------------------------------------------------------------------------------- /tabby-telnet/tsconfig.json: -------------------------------------------------------------------------------- 1 | { 2 | "extends": "../tsconfig.json", 3 | "exclude": ["node_modules", "dist", "typings"], 4 | "compilerOptions": { 5 | "baseUrl": "src" 6 | } 7 | } 8 | -------------------------------------------------------------------------------- /tabby-terminal/tsconfig.json: -------------------------------------------------------------------------------- 1 | { 2 | "extends": "../tsconfig.json", 3 | "exclude": ["node_modules", "dist", "typings"], 4 | "compilerOptions": { 5 | "baseUrl": "src" 6 | } 7 | } 8 | -------------------------------------------------------------------------------- /tabby-web-demo/tsconfig.json: -------------------------------------------------------------------------------- 1 | { 2 | "extends": "../tsconfig.json", 3 | "exclude": ["node_modules", "dist", "typings"], 4 | "compilerOptions": { 5 | "baseUrl": "src" 6 | } 7 | } 8 | -------------------------------------------------------------------------------- /tabby-community-color-schemes/tsconfig.json: -------------------------------------------------------------------------------- 1 | { 2 | "extends": "../tsconfig.json", 3 | "exclude": ["node_modules", "dist"], 4 | "compilerOptions": { 5 | "baseUrl": "src" 6 | } 7 | } 8 | -------------------------------------------------------------------------------- /tabby-core/src/configDefaults.web.yaml: -------------------------------------------------------------------------------- 1 | pluginBlacklist: ['local'] 2 | terminal: 3 | recoverTabs: false 4 | enableAnalytics: false 5 | enableWelcomeTab: false 6 | enableAutomaticUpdates: false 7 | -------------------------------------------------------------------------------- /tabby-serial/src/components/serialTab.component.scss: -------------------------------------------------------------------------------- 1 | @import '../../../tabby-ssh/src/components/sshTab.component.scss'; 2 | 3 | :host { 4 | select { 5 | width: auto; 6 | } 7 | } 8 | -------------------------------------------------------------------------------- /firebase.json: -------------------------------------------------------------------------------- 1 | { 2 | "hosting": { 3 | "public": "docs/api", 4 | "ignore": [ 5 | "firebase.json", 6 | "**/.*", 7 | "**/node_modules/**" 8 | ] 9 | } 10 | } 11 | -------------------------------------------------------------------------------- /tabby-ssh/src/api/index.ts: -------------------------------------------------------------------------------- 1 | export * from './contextMenu' 2 | export * from './interfaces' 3 | export * from './importer' 4 | export { SSHMultiplexerService } from '../services/sshMultiplexer.service' 5 | -------------------------------------------------------------------------------- /tabby-settings/src/components/profilesSettingsTab.component.scss: -------------------------------------------------------------------------------- 1 | profile-icon { 2 | width: 1.25rem; 3 | margin-right: 0.25rem; 4 | } 5 | 6 | profile-icon + * { 7 | margin-left: 10px; 8 | } 9 | -------------------------------------------------------------------------------- /extras/automator-workflows/Open Tabby here.workflow/Contents/QuickLook/Thumbnail.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/OpaqueGlass/tabby-fork/master/extras/automator-workflows/Open Tabby here.workflow/Contents/QuickLook/Thumbnail.png -------------------------------------------------------------------------------- /tabby-core/src/components/tabBody.component.scss: -------------------------------------------------------------------------------- 1 | :host { 2 | display: flex; 3 | flex: auto; 4 | position: relative; 5 | overflow: hidden; 6 | 7 | >* { 8 | flex: auto; 9 | } 10 | } 11 | -------------------------------------------------------------------------------- /tabby-ssh/src/components/sftpDeleteModal.component.pug: -------------------------------------------------------------------------------- 1 | .modal-body 2 | label(translate) Deleting 3 | .no-wrap {{progressMessage}} 4 | 5 | .modal-footer 6 | button.btn.btn-danger((click)='cancel()', translate) Cancel 7 | -------------------------------------------------------------------------------- /extras/automator-workflows/Open Tabby here.workflow/Contents/_CodeSignature/CodeDirectory: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/OpaqueGlass/tabby-fork/master/extras/automator-workflows/Open Tabby here.workflow/Contents/_CodeSignature/CodeDirectory -------------------------------------------------------------------------------- /extras/automator-workflows/Open Tabby here.workflow/Contents/_CodeSignature/CodeSignature: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/OpaqueGlass/tabby-fork/master/extras/automator-workflows/Open Tabby here.workflow/Contents/_CodeSignature/CodeSignature -------------------------------------------------------------------------------- /extras/automator-workflows/Paste path into Tabby.workflow/Contents/QuickLook/Thumbnail.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/OpaqueGlass/tabby-fork/master/extras/automator-workflows/Paste path into Tabby.workflow/Contents/QuickLook/Thumbnail.png -------------------------------------------------------------------------------- /tabby-ssh/src/components/keyboardInteractiveAuthPanel.component.scss: -------------------------------------------------------------------------------- 1 | :host { 2 | display: flex; 3 | flex-direction: column; 4 | padding: 15px 20px; 5 | } 6 | 7 | .prompt-text { 8 | white-space: pre-wrap; 9 | } 10 | -------------------------------------------------------------------------------- /extras/automator-workflows/Open Tabby here.workflow/Contents/_CodeSignature/CodeRequirements: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/OpaqueGlass/tabby-fork/master/extras/automator-workflows/Open Tabby here.workflow/Contents/_CodeSignature/CodeRequirements -------------------------------------------------------------------------------- /extras/automator-workflows/Open Tabby here.workflow/Contents/_CodeSignature/CodeRequirements-1: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/OpaqueGlass/tabby-fork/master/extras/automator-workflows/Open Tabby here.workflow/Contents/_CodeSignature/CodeRequirements-1 -------------------------------------------------------------------------------- /tabby-core/src/components/profileIcon.component.pug: -------------------------------------------------------------------------------- 1 | i.icon( 2 | class='fa-fw {{icon}}', 3 | [style.color]='color', 4 | *ngIf='!isHTML' 5 | ) 6 | .icon( 7 | [fastHtmlBind]='icon', 8 | *ngIf='isHTML && icon' 9 | ) 10 | -------------------------------------------------------------------------------- /extras/automator-workflows/Paste path into Tabby.workflow/Contents/_CodeSignature/CodeDirectory: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/OpaqueGlass/tabby-fork/master/extras/automator-workflows/Paste path into Tabby.workflow/Contents/_CodeSignature/CodeDirectory -------------------------------------------------------------------------------- /extras/automator-workflows/Paste path into Tabby.workflow/Contents/_CodeSignature/CodeSignature: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/OpaqueGlass/tabby-fork/master/extras/automator-workflows/Paste path into Tabby.workflow/Contents/_CodeSignature/CodeSignature -------------------------------------------------------------------------------- /extras/automator-workflows/Paste path into Tabby.workflow/Contents/_CodeSignature/CodeRequirements: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/OpaqueGlass/tabby-fork/master/extras/automator-workflows/Paste path into Tabby.workflow/Contents/_CodeSignature/CodeRequirements -------------------------------------------------------------------------------- /tabby-terminal/src/components/colorPicker.component.pug: -------------------------------------------------------------------------------- 1 | div( 2 | [style.background]='model', 3 | ngx-colors-trigger, 4 | [(ngModel)]='model', 5 | (ngModelChange)='modelChange.emit($event)', 6 | [ngbTooltip]='hint' 7 | ) {{ title }} 8 | -------------------------------------------------------------------------------- /extras/automator-workflows/Paste path into Tabby.workflow/Contents/_CodeSignature/CodeRequirements-1: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/OpaqueGlass/tabby-fork/master/extras/automator-workflows/Paste path into Tabby.workflow/Contents/_CodeSignature/CodeRequirements-1 -------------------------------------------------------------------------------- /extras/clink/clink.lua: -------------------------------------------------------------------------------- 1 | -- This file is intentionally blank. 2 | -- 3 | -- The old clink.lua file is no longer used, and this blank file ensures if a 4 | -- new clink version is copied over an old clink version, it won't accidentally 5 | -- use an obsolete leftover clink.lua file. 6 | -------------------------------------------------------------------------------- /tabby-web/src/config.ts: -------------------------------------------------------------------------------- 1 | import { ConfigProvider } from 'tabby-core' 2 | 3 | /** @hidden */ 4 | export class WebConfigProvider extends ConfigProvider { 5 | defaults = { 6 | web: { 7 | preventAccidentalTabClosure: false, 8 | }, 9 | } 10 | } 11 | -------------------------------------------------------------------------------- /tabby-terminal/src/api/colorSchemeProvider.ts: -------------------------------------------------------------------------------- 1 | import { TerminalColorScheme } from './interfaces' 2 | 3 | /** 4 | * Extend to add more terminal color schemes 5 | */ 6 | export abstract class TerminalColorSchemeProvider { 7 | abstract getSchemes (): Promise 8 | } 9 | -------------------------------------------------------------------------------- /tabby-core/src/components/welcomeTab.component.scss: -------------------------------------------------------------------------------- 1 | :host { 2 | display: flex; 3 | flex-direction: column; 4 | margin: auto; 5 | flex: auto; 6 | max-height: 100%; 7 | overflow-y: auto; 8 | } 9 | 10 | .tabby-logo { 11 | width: 60px; 12 | height: 60px; 13 | } 14 | -------------------------------------------------------------------------------- /tabby-settings/src/components/releaseNotesTab.component.scss: -------------------------------------------------------------------------------- 1 | :host { 2 | overflow-y: scroll; 3 | width: 100%; 4 | padding: 30px; 5 | } 6 | 7 | ::ng-deep img { 8 | max-width: 100%; 9 | } 10 | 11 | h1 { 12 | margin: 0; 13 | } 14 | 15 | section { 16 | margin: 20px 0; 17 | } 18 | -------------------------------------------------------------------------------- /tabby-core/src/api/cli.ts: -------------------------------------------------------------------------------- 1 | export interface CLIEvent { 2 | argv: any 3 | cwd: string 4 | secondInstance: boolean 5 | } 6 | 7 | export abstract class CLIHandler { 8 | priority: number 9 | firstMatchOnly: boolean 10 | 11 | abstract handle (event: CLIEvent): Promise 12 | } 13 | -------------------------------------------------------------------------------- /tabby-core/src/components/profileIcon.component.scss: -------------------------------------------------------------------------------- 1 | :host { 2 | display: flex; 3 | align-items: center; 4 | max-width: 1.25rem; 5 | } 6 | 7 | ::ng-deep img { 8 | max-width: 100%; 9 | max-height: 100%; 10 | } 11 | 12 | ::ng-deep svg { 13 | width: 100%; 14 | height: 100%; 15 | } 16 | -------------------------------------------------------------------------------- /tabby-electron/src/icons/oracle-linux.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /tabby-ssh/webpack.config.mjs: -------------------------------------------------------------------------------- 1 | import * as path from 'path' 2 | import * as url from 'url' 3 | const __dirname = url.fileURLToPath(new URL('.', import.meta.url)) 4 | 5 | import config from '../webpack.plugin.config.mjs' 6 | 7 | export default () => config({ 8 | name: 'ssh', 9 | dirname: __dirname, 10 | }) 11 | -------------------------------------------------------------------------------- /tabby-web/webpack.config.mjs: -------------------------------------------------------------------------------- 1 | import * as path from 'path' 2 | import * as url from 'url' 3 | const __dirname = url.fileURLToPath(new URL('.', import.meta.url)) 4 | 5 | import config from '../webpack.plugin.config.mjs' 6 | 7 | export default () => config({ 8 | name: 'web', 9 | dirname: __dirname, 10 | }) 11 | -------------------------------------------------------------------------------- /tabby-core/src/components/renameTabModal.component.pug: -------------------------------------------------------------------------------- 1 | .modal-body 2 | input.form-control(type='text', #input, [(ngModel)]='value', (keyup.enter)='save()', autofocus) 3 | 4 | .modal-footer 5 | button.btn.btn-primary((click)='save()', translate) Save 6 | button.btn.btn-secondary((click)='close()', translate) Cancel 7 | -------------------------------------------------------------------------------- /tabby-core/webpack.config.mjs: -------------------------------------------------------------------------------- 1 | import * as path from 'path' 2 | import * as url from 'url' 3 | const __dirname = url.fileURLToPath(new URL('.', import.meta.url)) 4 | 5 | import config from '../webpack.plugin.config.mjs' 6 | 7 | export default () => config({ 8 | name: 'core', 9 | dirname: __dirname, 10 | }) 11 | -------------------------------------------------------------------------------- /tabby-local/webpack.config.mjs: -------------------------------------------------------------------------------- 1 | import * as path from 'path' 2 | import * as url from 'url' 3 | const __dirname = url.fileURLToPath(new URL('.', import.meta.url)) 4 | 5 | import config from '../webpack.plugin.config.mjs' 6 | 7 | export default () => config({ 8 | name: 'local', 9 | dirname: __dirname, 10 | }) 11 | -------------------------------------------------------------------------------- /tabby-telnet/src/config.ts: -------------------------------------------------------------------------------- 1 | import { ConfigProvider } from 'tabby-core' 2 | 3 | /** @hidden */ 4 | export class TelnetConfigProvider extends ConfigProvider { 5 | defaults = { 6 | hotkeys: { 7 | 'restart-telnet-session': [], 8 | }, 9 | } 10 | 11 | platformDefaults = { } 12 | } 13 | -------------------------------------------------------------------------------- /tabby-web/src/services/log.service.ts: -------------------------------------------------------------------------------- 1 | import { Injectable } from '@angular/core' 2 | import { ConsoleLogger, Logger } from 'tabby-core' 3 | 4 | @Injectable({ providedIn: 'root' }) 5 | export class ConsoleLogService { 6 | create (name: string): Logger { 7 | return new ConsoleLogger(name) 8 | } 9 | } 10 | -------------------------------------------------------------------------------- /scripts/build-typings.mjs: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env node 2 | import sh from 'shelljs' 3 | import * as vars from './vars.mjs' 4 | import log from 'npmlog' 5 | 6 | vars.builtinPlugins.forEach(plugin => { 7 | log.info('typings', plugin) 8 | sh.exec(`yarn tsc --project ${plugin}/tsconfig.typings.json`, { fatal: true }) 9 | }) 10 | -------------------------------------------------------------------------------- /tabby-electron/webpack.config.mjs: -------------------------------------------------------------------------------- 1 | import * as path from 'path' 2 | import * as url from 'url' 3 | const __dirname = url.fileURLToPath(new URL('.', import.meta.url)) 4 | 5 | import config from '../webpack.plugin.config.mjs' 6 | 7 | export default () => config({ 8 | name: 'electron', 9 | dirname: __dirname, 10 | }) 11 | -------------------------------------------------------------------------------- /tabby-linkifier/src/config.ts: -------------------------------------------------------------------------------- 1 | import { ConfigProvider } from 'tabby-core' 2 | 3 | /** @hidden */ 4 | export class ClickableLinksConfigProvider extends ConfigProvider { 5 | defaults = { 6 | clickableLinks: { 7 | modifier: null, 8 | }, 9 | } 10 | 11 | platformDefaults = { } 12 | } 13 | -------------------------------------------------------------------------------- /tabby-serial/webpack.config.mjs: -------------------------------------------------------------------------------- 1 | import * as path from 'path' 2 | import * as url from 'url' 3 | const __dirname = url.fileURLToPath(new URL('.', import.meta.url)) 4 | 5 | import config from '../webpack.plugin.config.mjs' 6 | 7 | export default () => config({ 8 | name: 'serial', 9 | dirname: __dirname, 10 | }) 11 | -------------------------------------------------------------------------------- /tabby-settings/src/api.ts: -------------------------------------------------------------------------------- 1 | /** 2 | * Extend to add your own settings tabs 3 | */ 4 | export abstract class SettingsTabProvider { 5 | id: string 6 | icon: string 7 | title: string 8 | weight = 0 9 | prioritized = false 10 | 11 | getComponentType (): any { 12 | return null 13 | } 14 | } 15 | -------------------------------------------------------------------------------- /tabby-settings/webpack.config.mjs: -------------------------------------------------------------------------------- 1 | import * as path from 'path' 2 | import * as url from 'url' 3 | const __dirname = url.fileURLToPath(new URL('.', import.meta.url)) 4 | 5 | import config from '../webpack.plugin.config.mjs' 6 | 7 | export default () => config({ 8 | name: 'settings', 9 | dirname: __dirname, 10 | }) 11 | -------------------------------------------------------------------------------- /tabby-telnet/webpack.config.mjs: -------------------------------------------------------------------------------- 1 | import * as path from 'path' 2 | import * as url from 'url' 3 | const __dirname = url.fileURLToPath(new URL('.', import.meta.url)) 4 | 5 | import config from '../webpack.plugin.config.mjs' 6 | 7 | export default () => config({ 8 | name: 'telnet', 9 | dirname: __dirname, 10 | }) 11 | -------------------------------------------------------------------------------- /tabby-web-demo/webpack.config.mjs: -------------------------------------------------------------------------------- 1 | import * as path from 'path' 2 | import * as url from 'url' 3 | const __dirname = url.fileURLToPath(new URL('.', import.meta.url)) 4 | 5 | import config from '../webpack.plugin.config.mjs' 6 | 7 | export default () => config({ 8 | name: 'web-demo', 9 | dirname: __dirname, 10 | }) 11 | -------------------------------------------------------------------------------- /tabby-linkifier/webpack.config.mjs: -------------------------------------------------------------------------------- 1 | import * as path from 'path' 2 | import * as url from 'url' 3 | const __dirname = url.fileURLToPath(new URL('.', import.meta.url)) 4 | 5 | import config from '../webpack.plugin.config.mjs' 6 | 7 | export default () => config({ 8 | name: 'linkifier', 9 | dirname: __dirname, 10 | }) 11 | -------------------------------------------------------------------------------- /tabby-terminal/src/components/colorSchemePreview.component.scss: -------------------------------------------------------------------------------- 1 | :host { 2 | display: block; 3 | } 4 | 5 | .preview { 6 | margin-top: 10px; 7 | margin-left: 10px; 8 | padding: 5px 10px; 9 | border-radius: 4px; 10 | overflow: hidden; 11 | 12 | span { 13 | white-space: pre; 14 | } 15 | } 16 | -------------------------------------------------------------------------------- /tabby-core/src/components/safeModeModal.component.pug: -------------------------------------------------------------------------------- 1 | .modal-body 2 | .alert.alert-danger(translate) Tabby could not start with your plugins, so all third party plugins have been disabled in this session. The error was: 3 | 4 | pre {{error}} 5 | 6 | .modal-footer 7 | button.btn.btn-primary((click)='close()', translate) Close 8 | -------------------------------------------------------------------------------- /tabby-terminal/src/components/appearanceSettingsTab.component.scss: -------------------------------------------------------------------------------- 1 | color-scheme-preview { 2 | flex-shrink: 0; 3 | margin-bottom: 20px; 4 | } 5 | 6 | textarea { 7 | font-family: 'Source Code Pro', monospace; 8 | min-height: 120px; 9 | } 10 | 11 | .font-size-input { 12 | width: 100px; 13 | flex: none; 14 | } 15 | -------------------------------------------------------------------------------- /tabby-electron/src/icons/cygwin.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /tabby-plugin-manager/webpack.config.mjs: -------------------------------------------------------------------------------- 1 | import * as path from 'path' 2 | import * as url from 'url' 3 | const __dirname = url.fileURLToPath(new URL('.', import.meta.url)) 4 | 5 | import config from '../webpack.plugin.config.mjs' 6 | 7 | export default () => config({ 8 | name: 'plugin-manager', 9 | dirname: __dirname, 10 | }) 11 | -------------------------------------------------------------------------------- /tabby-auto-sudo-password/webpack.config.mjs: -------------------------------------------------------------------------------- 1 | import * as path from 'path' 2 | import * as url from 'url' 3 | const __dirname = url.fileURLToPath(new URL('.', import.meta.url)) 4 | 5 | import config from '../webpack.plugin.config.mjs' 6 | 7 | export default () => config({ 8 | name: 'auto-sudo-password', 9 | dirname: __dirname, 10 | }) 11 | -------------------------------------------------------------------------------- /tabby-core/src/api/selector.ts: -------------------------------------------------------------------------------- 1 | export interface SelectorOption { 2 | name: string 3 | description?: string 4 | group?: string 5 | result?: T 6 | icon?: string 7 | freeInputPattern?: string 8 | freeInputEquivalent?: string 9 | color?: string 10 | weight?: number 11 | callback?: (string?) => void 12 | } 13 | -------------------------------------------------------------------------------- /tabby-terminal/src/components/inputProcessingSettings.component.pug: -------------------------------------------------------------------------------- 1 | .form-line 2 | .header 3 | .title(translate) Backspace key mode 4 | 5 | select.form-control([(ngModel)]='options.backspace') 6 | option( 7 | *ngFor='let mode of backspaceModes', 8 | [value]='mode.key', 9 | ) {{mode.name|translate}} 10 | -------------------------------------------------------------------------------- /tabby-web/src/services/updater.service.ts: -------------------------------------------------------------------------------- 1 | import { UpdaterService } from 'tabby-core' 2 | 3 | export class NullUpdaterService extends UpdaterService { 4 | async check (): Promise { 5 | return false 6 | } 7 | 8 | // eslint-disable-next-line @typescript-eslint/no-empty-function 9 | async update (): Promise { } 10 | } 11 | -------------------------------------------------------------------------------- /scripts/build-docs.mjs: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env node 2 | import sh from 'shelljs' 3 | import * as vars from './vars.mjs' 4 | import log from 'npmlog' 5 | 6 | vars.packagesWithDocs.forEach(([dest, src]) => { 7 | log.info('docs', src) 8 | sh.exec(`yarn typedoc --out docs/api/${dest} --tsconfig ${src}/tsconfig.typings.json ${src}/src/index.ts`, { fatal: true }) 9 | }) 10 | -------------------------------------------------------------------------------- /tabby-core/src/api/menu.ts: -------------------------------------------------------------------------------- 1 | export interface MenuItemOptions { 2 | type?: 'normal' | 'separator' | 'submenu' | 'checkbox' | 'radio' 3 | label?: string 4 | sublabel?: string 5 | enabled?: boolean 6 | checked?: boolean 7 | submenu?: MenuItemOptions[] 8 | click?: () => void 9 | 10 | /** @hidden */ 11 | commandLabel?: string 12 | } 13 | -------------------------------------------------------------------------------- /tabby-ssh/src/api/importer.ts: -------------------------------------------------------------------------------- 1 | import { PartialProfile } from 'tabby-core' 2 | import { SSHProfile } from './interfaces' 3 | 4 | export abstract class SSHProfileImporter { 5 | abstract getProfiles (): Promise[]> 6 | } 7 | 8 | export abstract class AutoPrivateKeyLocator { 9 | abstract getKeys (): Promise<[string, Buffer][]> 10 | } 11 | -------------------------------------------------------------------------------- /tabby-ssh/src/components/sshPortForwardingModal.component.pug: -------------------------------------------------------------------------------- 1 | .modal-header(*ngIf='session.forwardedPorts.length') 2 | h5.m-0(translate) Forwarded ports 3 | 4 | .modal-body.pt-0 5 | ssh-port-forwarding-config( 6 | [model]='session.forwardedPorts', 7 | (forwardAdded)='onForwardAdded($event)', 8 | (forwardRemoved)='onForwardRemoved($event)' 9 | ) 10 | -------------------------------------------------------------------------------- /tabby-local/README.md: -------------------------------------------------------------------------------- 1 | # Tabby Local Plugin 2 | 3 | * local shells 4 | 5 | Using the API: 6 | 7 | ```ts 8 | import { ShellProvider } from 'tabby-local' 9 | ``` 10 | 11 | Exporting your subclasses: 12 | 13 | ```ts 14 | @NgModule({ 15 | ... 16 | providers: [ 17 | ... 18 | { provide: ShellProvider, useClass: MyShellPlugin, multi: true }, 19 | ... 20 | ] 21 | }) 22 | ``` 23 | -------------------------------------------------------------------------------- /tabby-serial/src/config.ts: -------------------------------------------------------------------------------- 1 | import { ConfigProvider } from 'tabby-core' 2 | 3 | /** @hidden */ 4 | export class SerialConfigProvider extends ConfigProvider { 5 | defaults = { 6 | hotkeys: { 7 | serial: [ 8 | 'Alt-K', 9 | ], 10 | 'restart-serial-session': [], 11 | }, 12 | } 13 | 14 | platformDefaults = { } 15 | } 16 | -------------------------------------------------------------------------------- /tabby-core/src/api/theme.ts: -------------------------------------------------------------------------------- 1 | /** 2 | * Extend to add a custom CSS theme 3 | */ 4 | export abstract class Theme { 5 | name: string 6 | 7 | /** 8 | * Complete CSS stylesheet 9 | */ 10 | css: string 11 | 12 | terminalBackground: string 13 | 14 | macOSWindowButtonsInsetX?: number 15 | macOSWindowButtonsInsetY?: number 16 | followsColorScheme?: boolean 17 | } 18 | -------------------------------------------------------------------------------- /app/lib/portable.ts: -------------------------------------------------------------------------------- 1 | import * as path from 'path' 2 | import * as fs from 'fs' 3 | import * as electron from 'electron' 4 | 5 | const appPath = path.dirname(electron.app.getPath('exe')) 6 | 7 | const portableData = path.join(appPath, 'data') 8 | if (fs.existsSync(portableData)) { 9 | console.log('reset user data to ' + portableData) 10 | electron.app.setPath('userData', portableData) 11 | } 12 | -------------------------------------------------------------------------------- /tabby-auto-sudo-password/yarn.lock: -------------------------------------------------------------------------------- 1 | # THIS IS AN AUTOGENERATED FILE. DO NOT EDIT THIS FILE DIRECTLY. 2 | # yarn lockfile v1 3 | 4 | 5 | ansi-colors@^4.1.1: 6 | version "4.1.3" 7 | resolved "https://registry.yarnpkg.com/ansi-colors/-/ansi-colors-4.1.3.tgz#37611340eb2243e70cc604cad35d63270d48781b" 8 | integrity sha512-/6w/C21Pm1A7aZitlI5Ni/2J6FFQN8i1Cvz3kHABAAbw93v/NlvKdVOqz7CCWz/3iv/JplRSEEZ83XION15ovw== 9 | -------------------------------------------------------------------------------- /tabby-uac/UAC/UAC.vcxproj.user: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | cmd.exe 5 | WindowsLocalDebugger 6 | 7 | -------------------------------------------------------------------------------- /tabby-electron/src/icons/clink.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /tabby-electron/src/icons/cmd.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /tabby-web/tsconfig.typings.json: -------------------------------------------------------------------------------- 1 | { 2 | "extends": "../tsconfig.json", 3 | "exclude": ["node_modules", "dist", "typings"], 4 | "compilerOptions": { 5 | "baseUrl": "src", 6 | "emitDeclarationOnly": true, 7 | "declaration": true, 8 | "declarationDir": "./typings", 9 | "paths": { 10 | "tabby-*": ["../../tabby-*"], 11 | "*": ["../../app/node_modules/*"] 12 | } 13 | } 14 | } 15 | -------------------------------------------------------------------------------- /tabby-core/tsconfig.typings.json: -------------------------------------------------------------------------------- 1 | { 2 | "extends": "../tsconfig.json", 3 | "exclude": ["node_modules", "dist", "typings"], 4 | "compilerOptions": { 5 | "baseUrl": "src", 6 | "emitDeclarationOnly": true, 7 | "declaration": true, 8 | "declarationDir": "./typings", 9 | "paths": { 10 | "tabby-*": ["../../tabby-*"], 11 | "*": ["../../app/node_modules/*"] 12 | } 13 | } 14 | } 15 | -------------------------------------------------------------------------------- /tabby-electron/tsconfig.typings.json: -------------------------------------------------------------------------------- 1 | { 2 | "extends": "../tsconfig.json", 3 | "exclude": ["node_modules", "dist", "typings"], 4 | "compilerOptions": { 5 | "baseUrl": "src", 6 | "emitDeclarationOnly": true, 7 | "declaration": true, 8 | "declarationDir": "./typings", 9 | "paths": { 10 | "tabby-*": ["../../tabby-*"], 11 | "*": ["../../app/node_modules/*"] 12 | } 13 | } 14 | } 15 | -------------------------------------------------------------------------------- /tabby-settings/tsconfig.typings.json: -------------------------------------------------------------------------------- 1 | { 2 | "extends": "../tsconfig.json", 3 | "exclude": ["node_modules", "dist", "typings"], 4 | "compilerOptions": { 5 | "baseUrl": "src", 6 | "emitDeclarationOnly": true, 7 | "declaration": true, 8 | "declarationDir": "./typings", 9 | "paths": { 10 | "tabby-*": ["../../tabby-*"], 11 | "*": ["../../app/node_modules/*"] 12 | } 13 | } 14 | } 15 | -------------------------------------------------------------------------------- /tabby-core/src/api/fileProvider.ts: -------------------------------------------------------------------------------- 1 | import { Injectable } from '@angular/core' 2 | 3 | @Injectable({ providedIn: 'root' }) 4 | export abstract class FileProvider { 5 | name: string 6 | 7 | async isAvailable (): Promise { 8 | return true 9 | } 10 | 11 | abstract selectAndStoreFile (description: string): Promise 12 | abstract retrieveFile (key: string): Promise 13 | } 14 | -------------------------------------------------------------------------------- /tabby-core/src/api/tabContextMenuProvider.ts: -------------------------------------------------------------------------------- 1 | import { BaseTabComponent } from '../components/baseTab.component' 2 | import { MenuItemOptions } from './menu' 3 | 4 | /** 5 | * Extend to add items to the tab header's context menu 6 | */ 7 | export abstract class TabContextMenuItemProvider { 8 | weight = 0 9 | 10 | abstract getItems (tab: BaseTabComponent, tabHeader?: boolean): Promise 11 | } 12 | -------------------------------------------------------------------------------- /tabby-core/src/components/splitTabSpanner.component.scss: -------------------------------------------------------------------------------- 1 | :host { 2 | display: block; 3 | position: absolute; 4 | z-index: 5; 5 | transition: 0.125s background; 6 | 7 | &.v { 8 | cursor: ns-resize; 9 | height: 10px; 10 | margin-top: -5px; 11 | } 12 | 13 | &.h { 14 | cursor: ew-resize; 15 | width: 10px; 16 | margin-left: -5px; 17 | } 18 | } 19 | -------------------------------------------------------------------------------- /tabby-linkifier/tsconfig.typings.json: -------------------------------------------------------------------------------- 1 | { 2 | "extends": "../tsconfig.json", 3 | "exclude": ["node_modules", "dist", "typings"], 4 | "compilerOptions": { 5 | "baseUrl": "src", 6 | "emitDeclarationOnly": true, 7 | "declaration": true, 8 | "declarationDir": "./typings", 9 | "paths": { 10 | "tabby-*": ["../../tabby-*"], 11 | "*": ["../../app/node_modules/*"] 12 | } 13 | } 14 | } 15 | -------------------------------------------------------------------------------- /tabby-auto-sudo-password/tsconfig.typings.json: -------------------------------------------------------------------------------- 1 | { 2 | "extends": "../tsconfig.json", 3 | "exclude": ["node_modules", "dist", "typings"], 4 | "compilerOptions": { 5 | "baseUrl": "src", 6 | "emitDeclarationOnly": true, 7 | "declaration": true, 8 | "declarationDir": "./typings", 9 | "paths": { 10 | "tabby-*": ["../../tabby-*"], 11 | "*": ["../../app/node_modules/*"] 12 | } 13 | } 14 | } 15 | -------------------------------------------------------------------------------- /tabby-plugin-manager/tsconfig.typings.json: -------------------------------------------------------------------------------- 1 | { 2 | "extends": "../tsconfig.json", 3 | "exclude": ["node_modules", "dist", "typings"], 4 | "compilerOptions": { 5 | "baseUrl": "src", 6 | "emitDeclarationOnly": true, 7 | "declaration": true, 8 | "declarationDir": "./typings", 9 | "paths": { 10 | "tabby-*": ["../../tabby-*"], 11 | "*": ["../../app/node_modules/*"] 12 | } 13 | } 14 | } 15 | -------------------------------------------------------------------------------- /tabby-settings/README.md: -------------------------------------------------------------------------------- 1 | # Tabby Settings Plugin 2 | 3 | * tabbed settings interface 4 | 5 | Using the API: 6 | 7 | ```ts 8 | import { SettingsTabProvider } from 'tabby-settings' 9 | ``` 10 | 11 | Exporting your subclasses: 12 | 13 | ```ts 14 | @NgModule({ 15 | ... 16 | providers: [ 17 | ... 18 | { provide: SettingsTabProvider, useClass: MySettingsTab, multi: true }, 19 | ... 20 | ] 21 | }) 22 | ``` 23 | -------------------------------------------------------------------------------- /tabby-community-color-schemes/tsconfig.typings.json: -------------------------------------------------------------------------------- 1 | { 2 | "extends": "../tsconfig.json", 3 | "exclude": ["node_modules", "dist", "typings"], 4 | "compilerOptions": { 5 | "baseUrl": "src", 6 | "emitDeclarationOnly": true, 7 | "declaration": true, 8 | "declarationDir": "./typings", 9 | "paths": { 10 | "tabby-*": ["../../tabby-*"], 11 | "*": ["../../app/node_modules/*"] 12 | } 13 | } 14 | } 15 | -------------------------------------------------------------------------------- /app/src/entry.preload.ts: -------------------------------------------------------------------------------- 1 | import 'v8-compile-cache' 2 | import '../lib/lru' 3 | import 'source-sans-pro/source-sans-pro.css' 4 | import 'source-code-pro/source-code-pro.css' 5 | import '@fortawesome/fontawesome-free/css/solid.css' 6 | import '@fortawesome/fontawesome-free/css/brands.css' 7 | import '@fortawesome/fontawesome-free/css/regular.css' 8 | import '@fortawesome/fontawesome-free/css/fontawesome.css' 9 | import './preload.scss' 10 | -------------------------------------------------------------------------------- /tabby-settings/src/components/hotkeyInputModal.component.scss: -------------------------------------------------------------------------------- 1 | :host { 2 | >.modal-body { 3 | padding: 0 !important; 4 | } 5 | 6 | .input { 7 | display: flex; 8 | 9 | .stroke { 10 | flex: none; 11 | } 12 | } 13 | 14 | .timeout { 15 | height: 5px; 16 | margin: 0 0 15px; 17 | 18 | div { 19 | height: 5px; 20 | } 21 | } 22 | } 23 | -------------------------------------------------------------------------------- /tabby-settings/src/components/multiHotkeyInput.component.pug: -------------------------------------------------------------------------------- 1 | .item(*ngFor='let hotkey of hotkeys') 2 | .body((click)='editItem(hotkey)') 3 | .stroke(*ngFor='let stroke of castAny(hotkey.strokes)') 4 | span(*ngIf='!hotkey.isDuplicate') {{stroke}} 5 | span.duplicate(*ngIf='hotkey.isDuplicate') {{stroke}} 6 | .remove((click)='removeItem(hotkey)') × 7 | 8 | .add((click)='addItem()', translate) Add... 9 | -------------------------------------------------------------------------------- /tabby-web/src/styles.scss: -------------------------------------------------------------------------------- 1 | @import "../../tabby-core/src/theme.vars.scss"; 2 | 3 | html.tabby { 4 | --lumo-primary-text-color: #{$body-color}; 5 | --lumo-base-color: #{$body-bg}; 6 | --lumo-body-text-color: #{$body-color}; 7 | --lumo-tint-5pct: #{$body-bg}; 8 | --lumo-font-family: #{$font-family-sans-serif}; 9 | --lumo-font-size-m: #{$font-size-base}; 10 | --lumo-box-shadow-m: #{$dropdown-box-shadow}; 11 | } 12 | -------------------------------------------------------------------------------- /.github/workflows/release.yml: -------------------------------------------------------------------------------- 1 | --- 2 | name: "tagged-release" 3 | 4 | on: 5 | push: 6 | tags: 7 | - "v*" 8 | 9 | jobs: 10 | tagged-release: 11 | name: "Tagged Release" 12 | runs-on: "ubuntu-latest" 13 | 14 | steps: 15 | - uses: "marvinpinto/action-automatic-releases@latest" 16 | with: 17 | repo_token: "${{ secrets.GITHUB_TOKEN }}" 18 | prerelease: false 19 | draft: true 20 | -------------------------------------------------------------------------------- /tabby-core/src/services/docking.service.ts: -------------------------------------------------------------------------------- 1 | import { Observable, Subject } from 'rxjs' 2 | 3 | export abstract class Screen { 4 | id: number 5 | name?: string 6 | } 7 | 8 | export abstract class DockingService { 9 | get screensChanged$ (): Observable { return this.screensChanged } 10 | protected screensChanged = new Subject() 11 | 12 | abstract dock (): void 13 | abstract getScreens (): Screen[] 14 | } 15 | -------------------------------------------------------------------------------- /tabby-local/tsconfig.typings.json: -------------------------------------------------------------------------------- 1 | { 2 | "extends": "../tsconfig.json", 3 | "exclude": ["node_modules", "dist", "typings"], 4 | "compilerOptions": { 5 | "baseUrl": "src", 6 | "emitDeclarationOnly": true, 7 | "declaration": true, 8 | "declarationDir": "./typings", 9 | "paths": { 10 | "tabby-*": ["../../tabby-*"], 11 | "*": [ 12 | "../../app/node_modules/*" 13 | ] 14 | } 15 | } 16 | } 17 | -------------------------------------------------------------------------------- /tabby-serial/tsconfig.typings.json: -------------------------------------------------------------------------------- 1 | { 2 | "extends": "../tsconfig.json", 3 | "exclude": ["node_modules", "dist", "typings"], 4 | "include": ["src"], 5 | "compilerOptions": { 6 | "baseUrl": "src", 7 | "emitDeclarationOnly": true, 8 | "declaration": true, 9 | "declarationDir": "./typings", 10 | "paths": { 11 | "tabby-*": ["../../tabby-*"], 12 | "*": ["../../app/node_modules/*"] 13 | } 14 | } 15 | } 16 | -------------------------------------------------------------------------------- /tabby-ssh/src/components/sftpCreateDirectoryModal.component.pug: -------------------------------------------------------------------------------- 1 | .modal-body 2 | label(translate) Name for the new directory 3 | .mb-3.w-100.me-2 4 | input.form-control( 5 | type='text', 6 | [(ngModel)]='directoryName', 7 | ) 8 | 9 | 10 | .modal-footer 11 | button.btn.btn-success((click)='create()', translate) Create 12 | button.btn.btn-danger((click)='cancel()', translate) Cancel 13 | -------------------------------------------------------------------------------- /tabby-telnet/src/components/telnetTab.component.pug: -------------------------------------------------------------------------------- 1 | terminal-toolbar([tab]='this') 2 | i.fas.fa-xs.fa-circle.text-success.me-2(*ngIf='session && session.open') 3 | i.fas.fa-xs.fa-circle.text-danger.me-2(*ngIf='!session || !session.open') 4 | strong.me-auto {{profile.options.host}}:{{profile.options.port}} 5 | 6 | button.btn.btn-sm.btn-link.me-2((click)='reconnect()') 7 | i.fas.fa-redo 8 | span(translate) Reconnect 9 | -------------------------------------------------------------------------------- /tabby-telnet/tsconfig.typings.json: -------------------------------------------------------------------------------- 1 | { 2 | "extends": "../tsconfig.json", 3 | "exclude": ["node_modules", "dist", "typings"], 4 | "include": ["src"], 5 | "compilerOptions": { 6 | "baseUrl": "src", 7 | "emitDeclarationOnly": true, 8 | "declaration": true, 9 | "declarationDir": "./typings", 10 | "paths": { 11 | "tabby-*": ["../../tabby-*"], 12 | "*": ["../../app/node_modules/*"] 13 | } 14 | } 15 | } 16 | -------------------------------------------------------------------------------- /tabby-core/src/theme.ts: -------------------------------------------------------------------------------- 1 | import { marker as _ } from '@biesbjerg/ngx-translate-extract-marker' 2 | import { Injectable } from '@angular/core' 3 | import { Theme } from './api' 4 | 5 | /** @hidden */ 6 | @Injectable({ providedIn: 'root' }) 7 | export class NewTheme extends Theme { 8 | name = _('Follow the color scheme') 9 | css = require('./theme.new.scss') 10 | terminalBackground = '#f7f1e0' 11 | followsColorScheme = true 12 | } 13 | -------------------------------------------------------------------------------- /tabby-terminal/src/api/contextMenuProvider.ts: -------------------------------------------------------------------------------- 1 | import type { MenuItemOptions } from 'tabby-core' 2 | import { BaseTerminalTabComponent } from './baseTerminalTab.component' 3 | 4 | /** 5 | * Extend to add more terminal context menu items 6 | * @deprecated 7 | */ 8 | export abstract class TerminalContextMenuItemProvider { 9 | weight: number 10 | 11 | abstract getItems (tab: BaseTerminalTabComponent): Promise 12 | } 13 | -------------------------------------------------------------------------------- /tabby-core/src/icons/check.svg: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /scripts/publish-plugins.mjs: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env node 2 | import sh from 'shelljs' 3 | import * as vars from './vars.mjs' 4 | import log from 'npmlog' 5 | import { execSync } from 'child_process' 6 | 7 | vars.allPackages.forEach(plugin => { 8 | log.info('bump', plugin) 9 | sh.cd(plugin) 10 | sh.exec('npm --no-git-tag-version version ' + vars.version, { fatal: true }) 11 | execSync('npm publish', { stdio: 'inherit' }) 12 | sh.cd('..') 13 | }) 14 | -------------------------------------------------------------------------------- /tabby-ssh/src/api/contextMenu.ts: -------------------------------------------------------------------------------- 1 | import { MenuItemOptions } from 'tabby-core' 2 | import { SFTPFile } from '../session/sftp' 3 | import { SFTPPanelComponent } from '../components/sftpPanel.component' 4 | 5 | /** 6 | * Extend to add items to the SFTPPanel context menu 7 | */ 8 | export abstract class SFTPContextMenuItemProvider { 9 | weight = 0 10 | 11 | abstract getItems (item: SFTPFile, panel: SFTPPanelComponent): Promise 12 | } 13 | -------------------------------------------------------------------------------- /tabby-community-color-schemes/src/index.ts: -------------------------------------------------------------------------------- 1 | import { NgModule } from '@angular/core' 2 | import { TerminalColorSchemeProvider } from 'tabby-terminal' 3 | 4 | import { ColorSchemes } from './colorSchemes' 5 | 6 | @NgModule({ 7 | providers: [ 8 | { provide: TerminalColorSchemeProvider, useClass: ColorSchemes, multi: true }, 9 | ], 10 | }) 11 | export default class PopularThemesModule { } // eslint-disable-line @typescript-eslint/no-extraneous-class 12 | -------------------------------------------------------------------------------- /tabby-ssh/tsconfig.typings.json: -------------------------------------------------------------------------------- 1 | { 2 | "extends": "../tsconfig.json", 3 | "exclude": ["node_modules", "dist", "typings"], 4 | "include": ["src"], 5 | "compilerOptions": { 6 | "baseUrl": "src", 7 | "emitDeclarationOnly": true, 8 | "declaration": true, 9 | "declarationDir": "./typings", 10 | "paths": { 11 | "tabby-*": ["../../tabby-*"], 12 | "*": ["../../app/node_modules/*"] 13 | }, 14 | "types": ["node"] 15 | } 16 | } 17 | -------------------------------------------------------------------------------- /tabby-core/src/components/titleBar.component.ts: -------------------------------------------------------------------------------- 1 | import { Component, Input } from '@angular/core' 2 | import { HostWindowService } from '../api' 3 | 4 | /** @hidden */ 5 | @Component({ 6 | selector: 'title-bar', 7 | templateUrl: './titleBar.component.pug', 8 | styleUrls: ['./titleBar.component.scss'], 9 | }) 10 | export class TitleBarComponent { 11 | @Input() hideControls: boolean 12 | 13 | constructor (public hostWindow: HostWindowService) { } 14 | } 15 | -------------------------------------------------------------------------------- /tabby-core/src/icons/plus.svg: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /tabby-local/src/icons/plus.svg: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /tabby-terminal/tsconfig.typings.json: -------------------------------------------------------------------------------- 1 | { 2 | "extends": "../tsconfig.json", 3 | "exclude": ["node_modules", "dist", "typings"], 4 | "compilerOptions": { 5 | "baseUrl": "src", 6 | "emitDeclarationOnly": true, 7 | "declaration": true, 8 | "declarationDir": "./typings", 9 | "paths": { 10 | "tabby-*": ["../../tabby-*"], 11 | "*": [ 12 | "../../app/node_modules/*", 13 | "../node_modules/xterm/src/*" 14 | ] 15 | } 16 | } 17 | } 18 | -------------------------------------------------------------------------------- /tabby-web-demo/src/icons/plus.svg: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /tabby-web/src/components/messageBoxModal.component.pug: -------------------------------------------------------------------------------- 1 | .modal-body 2 | div {{options.message}} 3 | small {{options.detail}} 4 | 5 | .modal-footer 6 | .ms-auto 7 | button.btn( 8 | *ngFor='let button of options.buttons; index as i', 9 | [autofocus]='i === options.defaultId', 10 | [class.btn-primary]='i === options.defaultId', 11 | [class.btn-secondary]='i !== options.defaultId', 12 | (click)='onButton(i)', 13 | ) {{button}} 14 | -------------------------------------------------------------------------------- /tabby-terminal/src/components/colorSchemeSettingsForMode.component.scss: -------------------------------------------------------------------------------- 1 | .head { 2 | flex: none; 3 | } 4 | 5 | .body { 6 | overflow: auto; 7 | flex: auto; 8 | min-height: 0; 9 | } 10 | 11 | .swatch { 12 | width: 10px; 13 | height: 10px; 14 | border-radius: 50%; 15 | margin-right: 3px; 16 | margin-bottom: 3px; 17 | box-shadow: 0 1px 1px rgba(0, 0, 0, .5); 18 | } 19 | 20 | .list-group-item color-scheme-preview { 21 | margin-left: 14px; 22 | } 23 | -------------------------------------------------------------------------------- /tabby-community-color-schemes/webpack.config.mjs: -------------------------------------------------------------------------------- 1 | import * as path from 'path' 2 | import * as url from 'url' 3 | const __dirname = url.fileURLToPath(new URL('.', import.meta.url)) 4 | 5 | import config from '../webpack.plugin.config.mjs' 6 | 7 | export default () => { 8 | const cfg = config({ 9 | name: 'community-color-schemes', 10 | dirname: __dirname, 11 | }) 12 | cfg.module.rules.push({ test: /[\\\/]schemes[\\\/]/, use: 'raw-loader' }) 13 | return cfg 14 | } 15 | -------------------------------------------------------------------------------- /tabby-settings/src/components/showSecretModal.component.pug: -------------------------------------------------------------------------------- 1 | h4.modal-header.m-0.pb-0 {{title}} 2 | .modal-body 3 | .input-group.w-100 4 | input.form-control( 5 | type='text', 6 | [(ngModel)]='secret.value', 7 | disabled 8 | ) 9 | button.btn.btn-secondary( 10 | (click)='copySecret()' 11 | ) 12 | i.fas.fa-copy 13 | 14 | .modal-footer 15 | button.btn.btn-primary((click)='close()', translate) Close 16 | -------------------------------------------------------------------------------- /tabby-ssh/src/settings.ts: -------------------------------------------------------------------------------- 1 | import { Injectable } from '@angular/core' 2 | import { SettingsTabProvider } from 'tabby-settings' 3 | 4 | import { SSHSettingsTabComponent } from './components/sshSettingsTab.component' 5 | 6 | /** @hidden */ 7 | @Injectable() 8 | export class SSHSettingsTabProvider extends SettingsTabProvider { 9 | id = 'ssh' 10 | icon = 'globe' 11 | title = 'SSH' 12 | 13 | getComponentType (): any { 14 | return SSHSettingsTabComponent 15 | } 16 | } 17 | -------------------------------------------------------------------------------- /.mergify.yml: -------------------------------------------------------------------------------- 1 | pull_request_rules: 2 | - name: automatic merge on CI success and review 3 | conditions: 4 | - "status-success=Windows Build / Build" 5 | - "status-success=macOS Build / Build" 6 | - "status-success=Linux Build / Build" 7 | - "status-success=continuous-integration/appveyor/pr" 8 | - "#approved-reviews-by>=1" 9 | - "#changes-requested-reviews-by=0" 10 | - base=master 11 | actions: 12 | merge: 13 | method: merge 14 | strict: true 15 | -------------------------------------------------------------------------------- /tabby-settings/src/components/releaseNotesTab.component.pug: -------------------------------------------------------------------------------- 1 | .container( 2 | infiniteScroll, 3 | [infiniteScrollDistance]='2', 4 | [infiniteScrollThrottle]='50', 5 | infiniteScrollContainer='release-notes-tab', 6 | [fromRoot]='true', 7 | (scrolled)='onScrolled()' 8 | ) 9 | div(*ngFor='let release of releases') 10 | h1 {{release.name}} 11 | .text-muted {{release.version}} / {{release.date|tabbyDate}} 12 | section([fastHtmlBind]='release.content') 13 | -------------------------------------------------------------------------------- /tabby-core/src/directives/autofocus.directive.ts: -------------------------------------------------------------------------------- 1 | import { Directive, AfterViewInit, ElementRef } from '@angular/core' 2 | 3 | /** @hidden */ 4 | @Directive({ 5 | selector: '[autofocus]', 6 | }) 7 | export class AutofocusDirective implements AfterViewInit { 8 | constructor (private el: ElementRef) { } 9 | 10 | ngAfterViewInit (): void { 11 | this.el.nativeElement.blur() 12 | setTimeout(() => { 13 | this.el.nativeElement.focus() 14 | }) 15 | } 16 | } 17 | -------------------------------------------------------------------------------- /tabby-plugin-manager/src/settings.ts: -------------------------------------------------------------------------------- 1 | import { Injectable } from '@angular/core' 2 | import { SettingsTabProvider } from 'tabby-settings' 3 | 4 | import { PluginsSettingsTabComponent } from './components/pluginsSettingsTab.component' 5 | 6 | /** @hidden */ 7 | @Injectable() 8 | export class PluginsSettingsTabProvider extends SettingsTabProvider { 9 | id = 'plugins' 10 | title = 'Plugins' 11 | 12 | getComponentType (): any { 13 | return PluginsSettingsTabComponent 14 | } 15 | } 16 | -------------------------------------------------------------------------------- /tabby-terminal/src/components/colorPicker.component.scss: -------------------------------------------------------------------------------- 1 | :host { 2 | display: inline-block; 3 | } 4 | 5 | div { 6 | width: 32px; 7 | height: 32px; 8 | box-shadow: 0 1px 1px rgba(0,0,0,.5); 9 | border: none; 10 | margin: 5px 10px 5px 0; 11 | border-radius: 2px; 12 | text-align: center; 13 | font-weight: bold; 14 | font-size: 17px; 15 | display: inline-block; 16 | color: #fff; 17 | line-height: 31px; 18 | text-shadow: 0 1px 1px rgba(0,0,0,.5); 19 | } 20 | -------------------------------------------------------------------------------- /tabby-terminal/src/components/colorPicker.component.ts: -------------------------------------------------------------------------------- 1 | import { Component, Input, Output, EventEmitter } from '@angular/core' 2 | 3 | /** @hidden */ 4 | @Component({ 5 | selector: 'color-picker', 6 | templateUrl: './colorPicker.component.pug', 7 | styleUrls: ['./colorPicker.component.scss'], 8 | }) 9 | export class ColorPickerComponent { 10 | @Input() model: string 11 | @Input() title: string 12 | @Input() hint: string 13 | @Output() modelChange = new EventEmitter() 14 | } 15 | -------------------------------------------------------------------------------- /webpack.config.mjs: -------------------------------------------------------------------------------- 1 | import log from 'npmlog' 2 | import { builtinPlugins } from './scripts/vars.mjs' 3 | 4 | const paths = [ 5 | './app/webpack.config.mjs', 6 | './app/webpack.config.main.mjs', 7 | // './web/webpack.config.mjs', 8 | // './tabby-web-demo/webpack.config.mjs', 9 | ...builtinPlugins.map(x => `./${x}/webpack.config.mjs`), 10 | ] 11 | 12 | paths.forEach(x => log.info(`Using config: ${x}`)) 13 | 14 | export default () => Promise.all(paths.map(x => import(x).then(x => x.default()))) 15 | -------------------------------------------------------------------------------- /app/lib/lru.ts: -------------------------------------------------------------------------------- 1 | import LRU from 'lru-cache' 2 | import * as fs from 'fs' 3 | const lru = new LRU({ max: 256, maxAge: 250 }) 4 | const origLstat = fs.realpathSync.bind(fs) 5 | 6 | // NB: The biggest offender of thrashing realpathSync is the node module system 7 | // itself, which we can't get into via any sane means. 8 | require('fs').realpathSync = function (p) { 9 | let r = lru.get(p) 10 | if (r) { 11 | return r 12 | } 13 | 14 | r = origLstat(p) 15 | lru.set(p, r) 16 | return r 17 | } 18 | -------------------------------------------------------------------------------- /tabby-settings/src/components/hotkeyInputModal.component.pug: -------------------------------------------------------------------------------- 1 | .modal-header 2 | h5(translate) Press the key now 3 | 4 | .modal-body 5 | .input 6 | .stroke( 7 | *ngFor='let stroke of value', 8 | [@animateKey]='true', 9 | [@.disabled]='!config.store.accessibility.animations' 10 | ) {{stroke}} 11 | 12 | .timeout 13 | div([style.width]='timeoutProgress + "%"') 14 | 15 | .modal-footer 16 | button.btn.btn-primary((click)='close()', translate) Cancel 17 | -------------------------------------------------------------------------------- /tabby-terminal/src/components/terminalToolbar.component.scss: -------------------------------------------------------------------------------- 1 | :host { 2 | padding: 5px 15px 5px 15px; 3 | display: flex; 4 | z-index: 3; 5 | overflow: hidden; 6 | 7 | ::ng-deep .btn { 8 | white-space: nowrap; 9 | text-overflow: ellipsis; 10 | overflow: hidden; 11 | } 12 | } 13 | 14 | .content { 15 | flex-grow: 1; 16 | display: flex; 17 | align-items: center; 18 | } 19 | 20 | .drag-handle { 21 | margin: 0 10px 0 0; 22 | cursor: move; 23 | opacity: .3; 24 | } 25 | -------------------------------------------------------------------------------- /tabby-telnet/src/components/telnetProfileSettings.component.ts: -------------------------------------------------------------------------------- 1 | /* eslint-disable @typescript-eslint/explicit-module-boundary-types */ 2 | import { Component } from '@angular/core' 3 | 4 | import { ProfileSettingsComponent } from 'tabby-core' 5 | import { TelnetProfile } from '../session' 6 | 7 | /** @hidden */ 8 | @Component({ 9 | templateUrl: './telnetProfileSettings.component.pug', 10 | }) 11 | export class TelnetProfileSettingsComponent implements ProfileSettingsComponent { 12 | profile: TelnetProfile 13 | } 14 | -------------------------------------------------------------------------------- /tabby-terminal/src/frontends/xterm.css: -------------------------------------------------------------------------------- 1 | @import url("../../node_modules/@xterm/xterm/css/xterm.css"); 2 | 3 | @font-face { 4 | font-family: "monospace-fallback"; 5 | src: url(../fonts/SourceCodePro.ttf) format("truetype"); 6 | } 7 | 8 | .xterm-viewport::-webkit-scrollbar { 9 | background: rgba(0, 0, 0, .125); 10 | } 11 | 12 | .xterm-viewport::-webkit-scrollbar-thumb { 13 | background: rgba(255, 255, 255, .25); 14 | } 15 | 16 | .xterm-decoration-overview-ruler { 17 | right: 1px; 18 | pointer-events: none; 19 | } 20 | -------------------------------------------------------------------------------- /tabby-core/src/api/hotkeyProvider.ts: -------------------------------------------------------------------------------- 1 | export interface HotkeyDescription { 2 | id: string 3 | name: string 4 | } 5 | 6 | export interface Hotkey { 7 | strokes: string[] | string; // may be a sequence of strokes 8 | isDuplicate: boolean; 9 | } 10 | 11 | /** 12 | * Extend to provide your own hotkeys. A corresponding [[ConfigProvider]] 13 | * must also provide the `hotkeys.foo` config options with the default values 14 | */ 15 | export abstract class HotkeyProvider { 16 | abstract provide (): Promise 17 | } 18 | -------------------------------------------------------------------------------- /tabby-terminal/src/components/colorSchemeSettingsTab.component.ts: -------------------------------------------------------------------------------- 1 | import { Component } from '@angular/core' 2 | import { ConfigService, PlatformService } from 'tabby-core' 3 | 4 | /** @hidden */ 5 | @Component({ 6 | templateUrl: './colorSchemeSettingsTab.component.pug', 7 | }) 8 | export class ColorSchemeSettingsTabComponent { 9 | defaultTab = 'dark' 10 | 11 | constructor ( 12 | platform: PlatformService, 13 | public config: ConfigService, 14 | ) { 15 | this.defaultTab = platform.getTheme() 16 | } 17 | } 18 | -------------------------------------------------------------------------------- /web/patches/browserify-sign+4.2.1.patch: -------------------------------------------------------------------------------- 1 | diff --git a/node_modules/browserify-sign/browser/index.js b/node_modules/browserify-sign/browser/index.js 2 | index e6df44c..641e18e 100644 3 | --- a/node_modules/browserify-sign/browser/index.js 4 | +++ b/node_modules/browserify-sign/browser/index.js 5 | @@ -11,6 +11,8 @@ Object.keys(algorithms).forEach(function (key) { 6 | algorithms[key.toLowerCase()] = algorithms[key] 7 | }) 8 | 9 | +algorithms['sha1'] = algorithms['RSA-SHA1'] 10 | + 11 | function Sign (algorithm) { 12 | stream.Writable.call(this) 13 | 14 | -------------------------------------------------------------------------------- /tabby-core/src/directives/dropZone.directive.scss: -------------------------------------------------------------------------------- 1 | .drop-zone-hint { 2 | position: absolute; 3 | top: 0; 4 | left: 0; 5 | width: 100%; 6 | height: 100%; 7 | background: rgba(0, 0, 0, .5); 8 | pointer-events: none; 9 | z-index: 1; 10 | display: flex; 11 | transition: .25s opacity ease-out; 12 | opacity: 0; 13 | 14 | &.visible { 15 | opacity: 1; 16 | } 17 | 18 | i { 19 | font-size: 48px; 20 | align-self: center; 21 | margin: auto; 22 | text-align: center; 23 | } 24 | } 25 | -------------------------------------------------------------------------------- /tabby-electron/src/icons/vs2017.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /tabby-auto-sudo-password/src/index.ts: -------------------------------------------------------------------------------- 1 | /* eslint-disable @typescript-eslint/no-extraneous-class */ 2 | import { NgModule } from '@angular/core' 3 | import { ToastrModule } from 'ngx-toastr' 4 | import { TerminalDecorator } from 'tabby-terminal' 5 | 6 | import { AutoSudoPasswordDecorator } from './decorator' 7 | 8 | @NgModule({ 9 | imports: [ 10 | ToastrModule, 11 | ], 12 | providers: [ 13 | { provide: TerminalDecorator, useClass: AutoSudoPasswordDecorator, multi: true }, 14 | ], 15 | }) 16 | export default class AutoSudoPasswordModule { } 17 | -------------------------------------------------------------------------------- /tabby-web-demo/package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "tabby-web-demo", 3 | "version": "1.0.197-nightly.1", 4 | "main": "dist/index.js", 5 | "typings": "dist/index.d.ts", 6 | "scripts": { 7 | "build": "webpack --progress --color", 8 | "watch": "webpack --progress --color --watch" 9 | }, 10 | "files": [ 11 | "data", 12 | "dist" 13 | ], 14 | "author": "Tabby Developers", 15 | "license": "MIT", 16 | "devDependencies": { 17 | "@types/webpack-env": "^1.16.0" 18 | }, 19 | "dependencies": { 20 | "svg-inline-loader": "^0.8.2" 21 | } 22 | } 23 | -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- 1 | app/node_modules 2 | app/assets/webpack 3 | 4 | node_modules 5 | 6 | build/files.wxs 7 | dist 8 | */dist 9 | */typings 10 | *.tsbuildinfo 11 | 12 | *.xcworkspacedata 13 | *.xcuserstate 14 | *.wixpdb 15 | 16 | .DS_Store 17 | .DS_Store? 18 | 19 | coverage 20 | .nyc_output 21 | npm-debug.log 22 | 23 | builtin-plugins 24 | package-lock.json 25 | yarn-error.log 26 | 27 | docs/api 28 | .travis.ssh.key 29 | *.code-workspace 30 | .idea/ 31 | 32 | .electron-symbols 33 | sentry.properties 34 | sentry-symbols.js 35 | 36 | *.psd 37 | 38 | crowdin.yml 39 | .crowdin.env 40 | -------------------------------------------------------------------------------- /tabby-terminal/src/icons/arrow-down.svg: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /tabby-terminal/src/icons/arrow-up.svg: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /tabby-core/src/components/safeModeModal.component.ts: -------------------------------------------------------------------------------- 1 | import { Component, Input } from '@angular/core' 2 | import { NgbActiveModal } from '@ng-bootstrap/ng-bootstrap' 3 | 4 | /** @hidden */ 5 | @Component({ 6 | templateUrl: './safeModeModal.component.pug', 7 | }) 8 | export class SafeModeModalComponent { 9 | @Input() error: Error 10 | 11 | constructor ( 12 | public modalInstance: NgbActiveModal, 13 | ) { 14 | this.error = window['safeModeReason'] 15 | } 16 | 17 | close (): void { 18 | this.modalInstance.dismiss() 19 | } 20 | } 21 | -------------------------------------------------------------------------------- /tabby-core/src/icons/gift.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /tabby-electron/src/icons/cmder.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /tabby-core/src/components/titleBar.component.scss: -------------------------------------------------------------------------------- 1 | $titlebar-height: 30px; 2 | 3 | :host { 4 | flex: 0 0 $titlebar-height; 5 | display: flex; 6 | 7 | .title { 8 | flex: auto; 9 | padding-left: 15px; 10 | line-height: $titlebar-height; 11 | -webkit-app-region: drag; 12 | } 13 | 14 | &.inset { 15 | flex-basis: 36px; 16 | 17 | .title { 18 | padding-left: 80px; 19 | line-height: 36px; 20 | } 21 | 22 | window-controls { 23 | display: none; 24 | } 25 | } 26 | } 27 | -------------------------------------------------------------------------------- /tabby-electron/src/icons/cmder-powershell.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /tabby-terminal/src/icons/close.svg: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /tabby-core/src/api/mainProcess.ts: -------------------------------------------------------------------------------- 1 | export const BOOTSTRAP_DATA = 'BOOTSTRAP_DATA' 2 | 3 | export interface PluginInfo { 4 | name: string 5 | description: string 6 | packageName: string 7 | isBuiltin: boolean 8 | isLegacy: boolean 9 | version: string 10 | author: string 11 | homepage?: string 12 | path?: string 13 | info?: any 14 | } 15 | 16 | export interface BootstrapData { 17 | config: Record 18 | executable: string 19 | isMainWindow: boolean 20 | windowID: number 21 | installedPlugins: PluginInfo[] 22 | userPluginsPath: string 23 | } 24 | -------------------------------------------------------------------------------- /tabby-settings/src/components/multiHotkeyInput.component.scss: -------------------------------------------------------------------------------- 1 | :host { 2 | display: flex; 3 | flex-wrap: nowrap; 4 | 5 | &:hover .add { 6 | display: initial; 7 | } 8 | } 9 | 10 | .item { 11 | display: flex; 12 | flex: none; 13 | 14 | .body { 15 | flex: none; 16 | display: flex; 17 | 18 | .stroke { 19 | flex: none; 20 | } 21 | } 22 | 23 | .remove { 24 | flex: none; 25 | } 26 | } 27 | 28 | .add { 29 | flex: auto; 30 | display: none; 31 | 32 | &:first-child { 33 | display: block; 34 | } 35 | } 36 | -------------------------------------------------------------------------------- /tabby-local/src/hotkeys.ts: -------------------------------------------------------------------------------- 1 | import { Injectable } from '@angular/core' 2 | import { HotkeyDescription, HotkeyProvider, TranslateService } from 'tabby-core' 3 | 4 | /** @hidden */ 5 | @Injectable() 6 | export class LocalTerminalHotkeyProvider extends HotkeyProvider { 7 | hotkeys: HotkeyDescription[] = [ 8 | { 9 | id: 'new-tab', 10 | name: this.translate.instant('New tab'), 11 | }, 12 | ] 13 | 14 | constructor (private translate: TranslateService) { super() } 15 | 16 | async provide (): Promise { 17 | return this.hotkeys 18 | } 19 | } 20 | -------------------------------------------------------------------------------- /tabby-core/src/components/promptModal.component.pug: -------------------------------------------------------------------------------- 1 | .modal-body 2 | input.form-control( 3 | [type]='password ? "password" : "text"', 4 | autofocus, 5 | [(ngModel)]='value', 6 | #input, 7 | [placeholder]='prompt', 8 | (keyup.enter)='ok()', 9 | (keyup.esc)='cancel()', 10 | ) 11 | .d-flex.align-items-start.mt-2 12 | checkbox( 13 | *ngIf='showRememberCheckbox', 14 | [(ngModel)]='remember', 15 | text='Remember' 16 | ) 17 | button.btn.btn-primary.ms-auto( 18 | (click)='ok()', 19 | ) OK 20 | -------------------------------------------------------------------------------- /tabby-ssh/src/config.ts: -------------------------------------------------------------------------------- 1 | import { ConfigProvider } from 'tabby-core' 2 | 3 | /** @hidden */ 4 | export class SSHConfigProvider extends ConfigProvider { 5 | defaults = { 6 | ssh: { 7 | warnOnClose: false, 8 | winSCPPath: null, 9 | agentType: 'auto', 10 | agentPath: null, 11 | x11Display: null, 12 | knownHosts: [], 13 | verifyHostKeys: true, 14 | }, 15 | hotkeys: { 16 | 'restart-ssh-session': [], 17 | 'launch-winscp': [], 18 | }, 19 | } 20 | 21 | platformDefaults = { } 22 | } 23 | -------------------------------------------------------------------------------- /tabby-core/src/config.ts: -------------------------------------------------------------------------------- 1 | import { ConfigProvider } from './api/configProvider' 2 | import { Platform } from './api/hostApp' 3 | 4 | /** @hidden */ 5 | export class CoreConfigProvider extends ConfigProvider { 6 | platformDefaults = { 7 | [Platform.macOS]: require('./configDefaults.macos.yaml').default, 8 | [Platform.Windows]: require('./configDefaults.windows.yaml').default, 9 | [Platform.Linux]: require('./configDefaults.linux.yaml').default, 10 | [Platform.Web]: require('./configDefaults.web.yaml').default, 11 | } 12 | 13 | defaults = require('./configDefaults.yaml').default 14 | } 15 | -------------------------------------------------------------------------------- /app/src/pluginBlacklist.ts: -------------------------------------------------------------------------------- 1 | export const PLUGIN_BLACKLIST = [ 2 | 'terminus-shell-selector', // superseded by profiles 3 | 'terminus-scrollbar', // now useless 4 | 'terminus-clickable-links', // now bundled with Tabby 5 | 'tabby-clickable-links', // now bundled with Tabby 6 | 'terminus-clickable-ips', // broken, functionality now bundled with Tabby 7 | 'terminus-elastic-quick-commands', // broken and abandoned, fork of quick-commands 8 | 'terminus-elastic-quick-cmds', // broken and abandoned, fork of quick-commands 9 | 'tabby-fig', // abandoned, 10 | 'tabby-plugin-fig-integration', // abandoned, 11 | ] 12 | -------------------------------------------------------------------------------- /extras/clink/default_inputrc: -------------------------------------------------------------------------------- 1 | # When this file is named "default_inputrc" and is in the binaries 2 | # directory or profile directory, it provides enhanced default settings. 3 | 4 | # Override the built-in Readline defaults with ones that provide a more 5 | # enhanced Clink experience. 6 | 7 | set colored-completion-prefix on 8 | set colored-stats on 9 | set mark-symlinked-directories on 10 | set completion-auto-query-items on 11 | set history-point-at-end-of-anchored-search on 12 | set search-ignore-case on 13 | 14 | -------------------------------------------------------------------------------- /tabby-core/src/components/startPage.component.scss: -------------------------------------------------------------------------------- 1 | :host { 2 | display: flex; 3 | flex-direction: column; 4 | flex: auto; 5 | overflow-y: auto; 6 | } 7 | 8 | :host > div { 9 | flex: none; 10 | margin: auto; 11 | width: 300px; 12 | max-width: 100vw; 13 | display: flex; 14 | flex-direction: column; 15 | } 16 | 17 | .tabby-title { 18 | margin: 0 0 60px; 19 | } 20 | 21 | footer { 22 | flex: none; 23 | padding: 20px 30px; 24 | background: rgba(0,0,0,.5); 25 | } 26 | 27 | .list-group-item ::ng-deep svg { 28 | width: 16px; 29 | height: 16px; 30 | margin-right: 10px; 31 | } 32 | -------------------------------------------------------------------------------- /scripts/generate-icon-metadata.mjs: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env node 2 | import jsYaml from 'js-yaml' 3 | import fs from 'node:fs' 4 | import path from 'node:path' 5 | 6 | import * as url from 'url' 7 | const __dirname = url.fileURLToPath(new URL('.', import.meta.url)) 8 | 9 | 10 | const metadata = jsYaml.load(fs.readFileSync(path.resolve(__dirname, '../node_modules/@fortawesome/fontawesome-free/metadata/icons.yml'))) 11 | 12 | let result = {} 13 | for (let key in metadata) { 14 | result[key] = metadata[key].styles.map(x => x[0]) 15 | } 16 | 17 | fs.writeFileSync(path.resolve(__dirname, '../tabby-core/src/icons.json'), JSON.stringify(result)) 18 | -------------------------------------------------------------------------------- /tabby-core/src/components/windowControls.component.scss: -------------------------------------------------------------------------------- 1 | :host { 2 | display: flex; 3 | } 4 | 5 | button { 6 | flex: none; 7 | border: none; 8 | box-shadow: none; 9 | border-radius: 0; 10 | font-size: 8px; 11 | width: 40px; 12 | padding: 0; 13 | line-height: 0; 14 | text-align: center; 15 | align-items: center; 16 | justify-content: center; 17 | 18 | &:not(:hover):not(:active) { 19 | background: transparent; 20 | } 21 | 22 | &:focus { 23 | box-shadow: none; 24 | } 25 | 26 | svg { 27 | width: 10px; 28 | height: 10px; 29 | } 30 | } 31 | -------------------------------------------------------------------------------- /tabby-core/src/icons/tab-options.svg: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /tabby-terminal/src/components/searchPanel.component.scss: -------------------------------------------------------------------------------- 1 | :host { 2 | position: fixed; 3 | width: 600px; 4 | max-width: 80vw; 5 | right: 40px; 6 | height: 36px; 7 | z-index: 5; 8 | border-radius: 0 0 5px 5px; 9 | background: rgba(0, 0, 0, .95); 10 | border: 1px solid rgba(0, 0, 0, .5); 11 | border-top: 0; 12 | display: flex; 13 | 14 | button { 15 | padding: 0 6px; 16 | margin: 4px 2px; 17 | flex-shrink: 0; 18 | } 19 | } 20 | 21 | .result-counter { 22 | font-size: 0.7rem; 23 | opacity: .5; 24 | } 25 | 26 | :host ::ng-deep svg { 27 | height: 16px; 28 | } 29 | -------------------------------------------------------------------------------- /tabby-terminal/webpack.config.mjs: -------------------------------------------------------------------------------- 1 | import * as path from 'path' 2 | import * as url from 'url' 3 | const __dirname = url.fileURLToPath(new URL('.', import.meta.url)) 4 | 5 | import config from '../webpack.plugin.config.mjs' 6 | 7 | export default () => { 8 | const cfg = config({ 9 | name: 'terminal', 10 | dirname: __dirname, 11 | externals: [ 12 | 'opentype.js', 13 | ], 14 | rules: [ 15 | { 16 | test: /lib[\\/]xterm-addon-image-worker.js$/i, 17 | type: 'asset/source', 18 | }, 19 | ], 20 | }) 21 | return cfg 22 | } 23 | -------------------------------------------------------------------------------- /tabby-core/src/icons/times.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /tabby-core/src/components/profileIcon.component.ts: -------------------------------------------------------------------------------- 1 | /* eslint-disable @typescript-eslint/explicit-module-boundary-types */ 2 | import { Component, Input } from '@angular/core' 3 | import { BaseComponent } from './base.component' 4 | 5 | /** @hidden */ 6 | @Component({ 7 | selector: 'profile-icon', 8 | templateUrl: './profileIcon.component.pug', 9 | styleUrls: ['./profileIcon.component.scss'], 10 | }) 11 | export class ProfileIconComponent extends BaseComponent { 12 | @Input() icon?: string 13 | @Input() color?: string 14 | 15 | get isHTML (): boolean { 16 | return this.icon?.startsWith('<') ?? false 17 | } 18 | } 19 | -------------------------------------------------------------------------------- /tabby-telnet/src/hotkeys.ts: -------------------------------------------------------------------------------- 1 | import { Injectable } from '@angular/core' 2 | import { HotkeyDescription, HotkeyProvider, TranslateService } from 'tabby-core' 3 | 4 | /** @hidden */ 5 | @Injectable() 6 | export class TelnetHotkeyProvider extends HotkeyProvider { 7 | hotkeys: HotkeyDescription[] = [ 8 | { 9 | id: 'restart-telnet-session', 10 | name: this.translate.instant('Restart current Telnet session'), 11 | }, 12 | ] 13 | 14 | constructor (private translate: TranslateService) { super() } 15 | 16 | async provide (): Promise { 17 | return this.hotkeys 18 | } 19 | } 20 | -------------------------------------------------------------------------------- /snap/snapcraft.yaml: -------------------------------------------------------------------------------- 1 | name: tabby 2 | version: '1.0.0' 3 | summary: A terminal for a modern age 4 | description: | 5 | Tabby is a local, SSH and serial terminal heavily inspired by Hyper. 6 | 7 | grade: devel 8 | confinement: devmode 9 | 10 | apps: 11 | tabby: 12 | command: opt/tabby/tabby 13 | 14 | parts: 15 | app: 16 | plugin: nodejs 17 | source: . 18 | build-packages: 19 | - libfontconfig-dev 20 | override-build: | 21 | yarn 22 | yarn run build 23 | ./scripts/build-linux.js 24 | mkdir -p $SNAPCRAFT_PART_INSTALL/opt/tabby || true 25 | cp -ar dist/linux-unpacked/* $SNAPCRAFT_PART_INSTALL/opt/tabby/ 26 | -------------------------------------------------------------------------------- /tabby-terminal/src/components/baseTerminalTab.component.pug: -------------------------------------------------------------------------------- 1 | .terminal-toolbar-spacer 2 | .content(#content, [style.opacity]='frontendIsReady ? 1 : 0') 3 | search-panel( 4 | *ngIf='showSearchPanel && hasFocus && frontend', 5 | @toolbarSlide, 6 | [@.disabled]='!config.store.accessibility.animations', 7 | [frontend]='frontend', 8 | (close)='showSearchPanel = false; frontend.cancelSearch()' 9 | ) 10 | 11 | button.btn.btn-sm.btn-link.toolbar-pin-button( 12 | *ngIf='enableToolbar && !pinToolbar', 13 | (click)='togglePinToolbar()', 14 | (mouseenter)='showToolbar()', 15 | (mouseleave)='hideToolbar()' 16 | ) 17 | i.fas.fa-wrench 18 | -------------------------------------------------------------------------------- /tabby-core/src/components/toggle.component.scss: -------------------------------------------------------------------------------- 1 | :host { 2 | flex: none; 3 | $toggle-size: 18px; 4 | $height: 30px; 5 | $padding: 2px; 6 | display: inline-flex; 7 | border-radius: 3px; 8 | line-height: $height; 9 | height: $height; 10 | transition: 0.25s opacity; 11 | align-items: center; 12 | padding-right: 10px; 13 | padding-left: 10px; 14 | margin-left: -10px; 15 | 16 | .form-check { 17 | margin: 0; 18 | } 19 | 20 | &.disabled { 21 | opacity: 0.5; 22 | } 23 | 24 | * { 25 | cursor: pointer; 26 | } 27 | 28 | label { 29 | display: none; 30 | } 31 | } 32 | -------------------------------------------------------------------------------- /tabby-core/src/icons/profiles.svg: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /tabby-core/src/components/splitTab.component.scss: -------------------------------------------------------------------------------- 1 | :host { 2 | display: block; 3 | position: relative; 4 | flex: auto; 5 | } 6 | 7 | ::ng-deep split-tab > .child { 8 | position: absolute; 9 | transition: 0.125s all; 10 | opacity: .75; 11 | 12 | &.focused { 13 | opacity: 1; 14 | } 15 | 16 | &.minimized { 17 | opacity: .1; 18 | } 19 | 20 | &.maximized { 21 | z-index: 6; 22 | box-shadow: rgba(0, 0, 0, 0.25) 0px 0px 30px; 23 | backdrop-filter: blur(10px); 24 | border-radius: 10px; 25 | } 26 | } 27 | 28 | ::ng-deep .no-animations split-tab > .child { 29 | transition: none; 30 | } 31 | -------------------------------------------------------------------------------- /app/lib/sentry.ts: -------------------------------------------------------------------------------- 1 | const { init } = String(process.type) === 'main' ? require('@sentry/electron/dist/main') : require('@sentry/electron/dist/renderer') 2 | 3 | const SENTRY_DSN = 'https://4717a0a7ee0b4429bd3a0f06c3d7eec3@sentry.io/181876' 4 | let release = null 5 | try { 6 | release = require('electron').app.getVersion() 7 | } catch { 8 | release = require('@electron/remote').app.getVersion() 9 | } 10 | 11 | if (!process.env.TABBY_DEV) { 12 | init({ 13 | dsn: SENTRY_DSN, 14 | release, 15 | integrations (integrations) { 16 | return integrations.filter(integration => integration.name !== 'Breadcrumbs') 17 | }, 18 | }) 19 | } 20 | -------------------------------------------------------------------------------- /app/src/toastr.scss: -------------------------------------------------------------------------------- 1 | #toast-container { 2 | display: flex; 3 | flex-direction: column; 4 | align-items: center; 5 | padding: 20px 0 50px; 6 | 7 | .toast { 8 | box-shadow: 0 1px 0 rgba(0,0,0,.25); 9 | padding: 7px 12px; 10 | background-image: none; 11 | display: block !important; 12 | border: none !important; 13 | width: auto; 14 | flex-basis: auto; 15 | border-radius: 0.5rem; 16 | font-size: 0.75rem; 17 | 18 | &.toast-error { 19 | background-color: #BD362F; 20 | color: white !important; 21 | } 22 | 23 | &.toast-info { 24 | background-color: #555; 25 | color: #eee !important; 26 | } 27 | } 28 | } 29 | -------------------------------------------------------------------------------- /tabby-auto-sudo-password/package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "tabby-auto-sudo-password", 3 | "version": "1.0.197-nightly.1", 4 | "description": "Offers to automatically paste saved sudo password in SSH sessions", 5 | "keywords": [ 6 | "tabby-builtin-plugin" 7 | ], 8 | "main": "dist/index.js", 9 | "typings": "typings/index.d.ts", 10 | "scripts": { 11 | "build": "webpack --progress --color --display-modules", 12 | "watch": "webpack --progress --color --watch" 13 | }, 14 | "files": [ 15 | "dist", 16 | "typings" 17 | ], 18 | "devDependencies": { 19 | "ansi-colors": "^4.1.1" 20 | }, 21 | "author": "Tabby Developers", 22 | "license": "MIT" 23 | } 24 | -------------------------------------------------------------------------------- /tabby-community-color-schemes/package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "tabby-community-color-schemes", 3 | "version": "1.0.197-nightly.1", 4 | "description": "Community color schemes for Tabby", 5 | "keywords": [ 6 | "tabby-builtin-plugin" 7 | ], 8 | "main": "dist/index.js", 9 | "typings": "typings/index.d.ts", 10 | "scripts": { 11 | "build": "webpack --progress --color", 12 | "watch": "webpack --progress --color --watch" 13 | }, 14 | "files": [ 15 | "dist" 16 | ], 17 | "author": "Tabby Developers", 18 | "license": "MIT", 19 | "peerDependencies": { 20 | "@angular/core": "^15", 21 | "tabby-core": "*", 22 | "tabby-terminal": "*" 23 | } 24 | } 25 | -------------------------------------------------------------------------------- /tabby-serial/src/components/serialTab.component.pug: -------------------------------------------------------------------------------- 1 | terminal-toolbar([tab]='this') 2 | i.fas.fa-xs.fa-circle.text-success.me-2(*ngIf='session && session.open') 3 | i.fas.fa-xs.fa-circle.text-danger.me-2(*ngIf='!session || !session.open') 4 | strong {{profile.options.port}} ({{profile.options.baudrate}}) 5 | 6 | .me-auto 7 | 8 | button.btn.btn-sm.btn-link.me-3((click)='changeBaudRate()', *ngIf='session && session.open && hostApp.platform !== Platform.Web') 9 | span(translate) Change baud rate 10 | 11 | button.btn.btn-sm.btn-link((click)='reconnect()', *ngIf='!session || !session.open') 12 | i.fas.fa-redo 13 | span(translate) Reconnect 14 | -------------------------------------------------------------------------------- /tabby-serial/yarn.lock: -------------------------------------------------------------------------------- 1 | # THIS IS AN AUTOGENERATED FILE. DO NOT EDIT THIS FILE DIRECTLY. 2 | # yarn lockfile v1 3 | 4 | 5 | "@types/node@14.14.14": 6 | version "14.14.14" 7 | resolved "https://registry.yarnpkg.com/@types/node/-/node-14.14.14.tgz#f7fd5f3cc8521301119f63910f0fb965c7d761ae" 8 | integrity sha512-UHnOPWVWV1z+VV8k6L1HhG7UbGBgIdghqF3l9Ny9ApPghbjICXkUJSd/b9gOgQfjM1r+37cipdw/HJ3F6ICEnQ== 9 | 10 | ansi-colors@^4.1.1: 11 | version "4.1.1" 12 | resolved "https://registry.yarnpkg.com/ansi-colors/-/ansi-colors-4.1.1.tgz#cbb9ae256bf750af1eab344f229aa27fe94ba348" 13 | integrity sha512-JoX0apGbHaUJBNl6yF+p6JAFYZ666/hhCGKN5t9QFjbJQKUU/g8MNbFDbvfrgKXvI1QpZplPOnwIo99lX/AAmA== 14 | -------------------------------------------------------------------------------- /tabby-telnet/yarn.lock: -------------------------------------------------------------------------------- 1 | # THIS IS AN AUTOGENERATED FILE. DO NOT EDIT THIS FILE DIRECTLY. 2 | # yarn lockfile v1 3 | 4 | 5 | "@types/node@14.14.31": 6 | version "14.14.31" 7 | resolved "https://registry.yarnpkg.com/@types/node/-/node-14.14.31.tgz#72286bd33d137aa0d152d47ec7c1762563d34055" 8 | integrity sha512-vFHy/ezP5qI0rFgJ7aQnjDXwAMrG0KqqIH7tQG5PPv3BWBayOPIQNBjVc/P6hhdZfMx51REc6tfDNXHUio893g== 9 | 10 | ansi-colors@^4.1.1: 11 | version "4.1.3" 12 | resolved "https://registry.yarnpkg.com/ansi-colors/-/ansi-colors-4.1.3.tgz#37611340eb2243e70cc604cad35d63270d48781b" 13 | integrity sha512-/6w/C21Pm1A7aZitlI5Ni/2J6FFQN8i1Cvz3kHABAAbw93v/NlvKdVOqz7CCWz/3iv/JplRSEEZ83XION15ovw== 14 | -------------------------------------------------------------------------------- /tabby-terminal/src/api/interfaces.ts: -------------------------------------------------------------------------------- 1 | import { ConnectableProfile, Profile } from 'tabby-core' 2 | 3 | export interface ResizeEvent { 4 | columns: number 5 | rows: number 6 | } 7 | 8 | export interface TerminalColorScheme { 9 | name: string 10 | foreground: string 11 | background: string 12 | cursor: string 13 | colors: string[] 14 | selection?: string 15 | selectionForeground?: string 16 | cursorAccent?: string 17 | } 18 | 19 | export interface BaseTerminalProfile extends Profile { 20 | terminalColorScheme?: TerminalColorScheme 21 | } 22 | 23 | export interface ConnectableTerminalProfile extends BaseTerminalProfile, ConnectableProfile {} 24 | -------------------------------------------------------------------------------- /tabby-linkifier/package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "tabby-linkifier", 3 | "version": "1.0.197-nightly.1", 4 | "description": "Makes URLs, IPs and file paths clickable in Tabby", 5 | "keywords": [ 6 | "tabby-builtin-plugin" 7 | ], 8 | "main": "dist/index.js", 9 | "typings": "typings/index.d.ts", 10 | "scripts": { 11 | "build": "webpack --progress --color --display-modules", 12 | "watch": "webpack --progress --color --watch" 13 | }, 14 | "files": [ 15 | "dist", 16 | "typings" 17 | ], 18 | "author": "Tabby Developers", 19 | "license": "MIT", 20 | "devDependencies": { 21 | "@xterm/addon-web-links": "^0.10.0", 22 | "untildify": "^4.0.0" 23 | } 24 | } 25 | -------------------------------------------------------------------------------- /.github/ISSUE_TEMPLATE/issue-report.md: -------------------------------------------------------------------------------- 1 | --- 2 | name: Issue report 3 | about: Report a problem 4 | title: '' 5 | labels: 'T: Bug' 6 | assignees: '' 7 | 8 | --- 9 | 10 | 18 | 19 | **Describe the problem**: 20 | [A clear and concise description of what the bug is.] 21 | 22 | **To Reproduce**: 23 | [Steps to reproduce the behavior] 24 | -------------------------------------------------------------------------------- /tabby-core/src/components/windowControls.component.ts: -------------------------------------------------------------------------------- 1 | /* eslint-disable @typescript-eslint/explicit-module-boundary-types */ 2 | import { Component } from '@angular/core' 3 | import { HostWindowService } from '../api/hostWindow' 4 | import { AppService } from '../services/app.service' 5 | 6 | /** @hidden */ 7 | @Component({ 8 | selector: 'window-controls', 9 | templateUrl: './windowControls.component.pug', 10 | styleUrls: ['./windowControls.component.scss'], 11 | }) 12 | export class WindowControlsComponent { 13 | constructor (public hostWindow: HostWindowService, public app: AppService) { } 14 | 15 | async closeWindow () { 16 | this.app.closeWindow() 17 | } 18 | } 19 | -------------------------------------------------------------------------------- /tabby-core/src/services/notifications.service.ts: -------------------------------------------------------------------------------- 1 | import { Injectable } from '@angular/core' 2 | import { ToastrService } from 'ngx-toastr' 3 | 4 | @Injectable({ providedIn: 'root' }) 5 | export class NotificationsService { 6 | private constructor ( 7 | private toastr: ToastrService, 8 | ) { } 9 | 10 | notice (text: string): void { 11 | this.toastr.info(text, undefined, { 12 | timeOut: 1000, 13 | }) 14 | } 15 | 16 | info (text: string, details?: string): void { 17 | this.toastr.info(text, details) 18 | } 19 | 20 | error (text: string, details?: string): void { 21 | this.toastr.error(text, details) 22 | } 23 | } 24 | -------------------------------------------------------------------------------- /tabby-electron/src/shells/windowsBase.ts: -------------------------------------------------------------------------------- 1 | import { ConfigService, HostAppService } from 'tabby-core' 2 | 3 | import { ShellProvider } from 'tabby-local' 4 | 5 | export abstract class WindowsBaseShellProvider extends ShellProvider { 6 | constructor ( 7 | protected hostApp: HostAppService, 8 | protected config: ConfigService, 9 | ) { 10 | super() 11 | } 12 | 13 | protected getEnvironment (): any { 14 | return { 15 | wt: { 16 | WT_SESSION: 0, 17 | }, 18 | cygwin: { 19 | TERM: 'cygwin', 20 | }, 21 | }[this.config.store.terminal.identification] ?? {} 22 | } 23 | } 24 | -------------------------------------------------------------------------------- /tabby-core/src/directives/alwaysVisibleTypeahead.directive.ts: -------------------------------------------------------------------------------- 1 | import { Directive, ElementRef, AfterViewInit } from '@angular/core' 2 | 3 | /** @hidden */ 4 | @Directive({ 5 | selector: '[alwaysVisibleTypeahead]', 6 | }) 7 | export class AlwaysVisibleTypeaheadDirective implements AfterViewInit { 8 | constructor (private el: ElementRef) { } 9 | 10 | ngAfterViewInit (): void { 11 | this.el.nativeElement.addEventListener('focus', e => { 12 | e.stopPropagation() 13 | setTimeout(() => { 14 | const inputEvent: Event = new Event('input') 15 | e.target.dispatchEvent(inputEvent) 16 | }, 0) 17 | }) 18 | } 19 | } 20 | -------------------------------------------------------------------------------- /scripts/build-modules.mjs: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env node 2 | import * as vars from './vars.mjs' 3 | import log from 'npmlog' 4 | import webpack from 'webpack' 5 | import { promisify } from 'node:util' 6 | 7 | const configs = [ 8 | '../app/webpack.config.main.mjs', 9 | '../app/webpack.config.mjs', 10 | ...vars.allPackages.map(x => `../${x}/webpack.config.mjs`), 11 | ] 12 | 13 | ;(async () => { 14 | for (const c of configs) { 15 | log.info('build', c) 16 | const stats = await promisify(webpack)((await import(c)).default()) 17 | console.log(stats.toString({ colors: true })) 18 | if (stats.hasErrors()) { 19 | process.exit(1) 20 | } 21 | } 22 | })() 23 | -------------------------------------------------------------------------------- /tabby-linkifier/yarn.lock: -------------------------------------------------------------------------------- 1 | # THIS IS AN AUTOGENERATED FILE. DO NOT EDIT THIS FILE DIRECTLY. 2 | # yarn lockfile v1 3 | 4 | 5 | "@xterm/addon-web-links@^0.10.0": 6 | version "0.10.0" 7 | resolved "https://registry.yarnpkg.com/@xterm/addon-web-links/-/addon-web-links-0.10.0.tgz#be3eccaf1cbd4063161458205cd4bbee2b0f34f9" 8 | integrity sha512-QhrHCUr8w6ATGviyXwcAIM1qN3nD1hdxwMC8fsW7z/6aaQlb2nt7zmByJt4eOn7ZzrHOzczljqV5S2pkdQp2xw== 9 | 10 | untildify@^4.0.0: 11 | version "4.0.0" 12 | resolved "https://registry.yarnpkg.com/untildify/-/untildify-4.0.0.tgz#2bc947b953652487e4600949fb091e3ae8cd919b" 13 | integrity sha512-KK8xQ1mkzZeg9inewmFVDNkg3l5LUhoq9kN6iWYB/CC9YMG8HA+c1Q8HwDe6dEX7kErrEVNVBO3fWsVq5iDgtw== 14 | -------------------------------------------------------------------------------- /tabby-terminal/src/middleware/utf8Splitter.ts: -------------------------------------------------------------------------------- 1 | import { UTF8Splitter } from 'tabby-core' 2 | 3 | import { SessionMiddleware } from '../api/middleware' 4 | 5 | /** 6 | * Ensures that the session output is chunked at UTF8 character boundaries. 7 | */ 8 | export class UTF8SplitterMiddleware extends SessionMiddleware { 9 | private decoder = new UTF8Splitter() 10 | 11 | feedFromSession (data: Buffer): void { 12 | super.feedFromSession(this.decoder.write(data)) 13 | } 14 | 15 | close (): void { 16 | const remainder = this.decoder.flush() 17 | if (remainder.length) { 18 | super.feedFromSession(remainder) 19 | } 20 | super.close() 21 | } 22 | } 23 | -------------------------------------------------------------------------------- /app/index.pug: -------------------------------------------------------------------------------- 1 | doctype html 2 | html.tabby 3 | head 4 | meta(charset='UTF-8') 5 | base(href='index.html') 6 | script. 7 | console.timeStamp('index') 8 | window.nodeRequire = require 9 | script(src='./preload.js') 10 | script(src='./bundle.js', defer) 11 | style. 12 | body { transition: 0.5s background; } 13 | body 14 | style#custom-css 15 | root 16 | app-root 17 | .preload-logo 18 | div 19 | .tabby-logo 20 | h1.tabby-title Tabby 21 | sup α 22 | .progress 23 | .bar(style='width: 0%') 24 | -------------------------------------------------------------------------------- /tabby-terminal/patches/ansi-color+0.2.1.patch: -------------------------------------------------------------------------------- 1 | diff --git a/node_modules/ansi-color/lib/ansi-color.js b/node_modules/ansi-color/lib/ansi-color.js 2 | index 1062c87..4fc2847 100644 3 | --- a/node_modules/ansi-color/lib/ansi-color.js 4 | +++ b/node_modules/ansi-color/lib/ansi-color.js 5 | @@ -32,8 +32,8 @@ exports.set = function(str, color) { 6 | var color_attrs = color.split("+"); 7 | var ansi_str = ""; 8 | for(var i=0, attr; attr = color_attrs[i]; i++) { 9 | - ansi_str += "\033[" + ANSI_CODES[attr] + "m"; 10 | + ansi_str += "\x1b[" + ANSI_CODES[attr] + "m"; 11 | } 12 | - ansi_str += str + "\033[" + ANSI_CODES["off"] + "m"; 13 | + ansi_str += str + "\x1b[" + ANSI_CODES["off"] + "m"; 14 | return ansi_str; 15 | }; 16 | -------------------------------------------------------------------------------- /tabby-community-color-schemes/schemes/Relaxed: -------------------------------------------------------------------------------- 1 | ! special 2 | *.foreground: #d8d8d8 3 | *.background: #343a43 4 | *.cursorColor: #d8d8d8 5 | 6 | ! black 7 | *.color0: #2c3037 8 | *.color8: #626262 9 | 10 | ! red 11 | *.color1: #bb5653 12 | *.color9: #c35956 13 | 14 | ! green 15 | *.color2: #909d62 16 | *.color10: #9fab76 17 | 18 | ! yellow 19 | *.color3: #eac179 20 | *.color11: #ecc179 21 | 22 | ! blue 23 | *.color4: #698698 24 | *.color12: #7da9c7 25 | 26 | ! magenta 27 | *.color5: #b06597 28 | *.color13: #ba6ca0 29 | 30 | ! cyan 31 | *.color6: #c9dfff 32 | *.color14: #abbacf 33 | 34 | ! white 35 | *.color7: #d8d8d8 36 | *.color15: #f7f7f7 37 | -------------------------------------------------------------------------------- /tabby-community-color-schemes/schemes/Tango: -------------------------------------------------------------------------------- 1 | ! special 2 | *.foreground: #babdb6 3 | *.background: #000000 4 | *.cursorColor: #babdb6 5 | 6 | ! black 7 | *.color0: #2e3436 8 | *.color8: #555753 9 | 10 | ! red 11 | *.color1: #cc0000 12 | *.color9: #ef2929 13 | 14 | ! green 15 | *.color2: #4e9a06 16 | *.color10: #8ae234 17 | 18 | ! yellow 19 | *.color3: #c4a000 20 | *.color11: #fce94f 21 | 22 | ! blue 23 | *.color4: #3465a4 24 | *.color12: #729fcf 25 | 26 | ! magenta 27 | *.color5: #75507b 28 | *.color13: #ad7fa8 29 | 30 | ! cyan 31 | *.color6: #06989a 32 | *.color14: #34e2e2 33 | 34 | ! white 35 | *.color7: #d3d7cf 36 | *.color15: #eeeeec 37 | -------------------------------------------------------------------------------- /tabby-core/src/components/toggle.component.ts: -------------------------------------------------------------------------------- 1 | import { Component } from '@angular/core' 2 | import { NG_VALUE_ACCESSOR } from '@angular/forms' 3 | import { CheckboxComponent } from './checkbox.component' 4 | 5 | /** @hidden */ 6 | @Component({ 7 | selector: 'toggle', 8 | template: ` 9 |
10 | 11 | 12 |
13 | `, 14 | styleUrls: ['./toggle.component.scss'], 15 | providers: [ 16 | { provide: NG_VALUE_ACCESSOR, useExisting: ToggleComponent, multi: true }, 17 | ], 18 | }) 19 | export class ToggleComponent extends CheckboxComponent { 20 | } 21 | -------------------------------------------------------------------------------- /patches/app-builder-lib+26.0.12.patch: -------------------------------------------------------------------------------- 1 | diff --git a/node_modules/app-builder-lib/out/appInfo.js b/node_modules/app-builder-lib/out/appInfo.js 2 | index d159c17..eb48466 100644 3 | --- a/node_modules/app-builder-lib/out/appInfo.js 4 | +++ b/node_modules/app-builder-lib/out/appInfo.js 5 | @@ -116,9 +116,7 @@ class AppInfo { 6 | return this.info.metadata.name; 7 | } 8 | get linuxPackageName() { 9 | - const name = this.name; 10 | - // https://github.com/electron-userland/electron-builder/issues/2963 11 | - return name.startsWith("@") ? this.sanitizedProductName : name; 12 | + return 'tabby-terminal'; 13 | } 14 | get sanitizedName() { 15 | return (0, filename_1.sanitizeFileName)(this.name); 16 | -------------------------------------------------------------------------------- /tabby-local/src/components/shellSettingsTab.component.ts: -------------------------------------------------------------------------------- 1 | import { Component, HostBinding } from '@angular/core' 2 | import { WIN_BUILD_CONPTY_SUPPORTED, WIN_BUILD_CONPTY_STABLE, isWindowsBuild, ConfigService } from 'tabby-core' 3 | 4 | /** @hidden */ 5 | @Component({ 6 | templateUrl: './shellSettingsTab.component.pug', 7 | }) 8 | export class ShellSettingsTabComponent { 9 | isConPTYAvailable: boolean 10 | isConPTYStable: boolean 11 | 12 | @HostBinding('class.content-box') true 13 | 14 | constructor ( 15 | public config: ConfigService, 16 | ) { 17 | this.isConPTYAvailable = isWindowsBuild(WIN_BUILD_CONPTY_SUPPORTED) 18 | this.isConPTYStable = isWindowsBuild(WIN_BUILD_CONPTY_STABLE) 19 | } 20 | } 21 | -------------------------------------------------------------------------------- /tabby-local/src/settings.ts: -------------------------------------------------------------------------------- 1 | import { Injectable } from '@angular/core' 2 | import { HostAppService, Platform } from 'tabby-core' 3 | import { SettingsTabProvider } from 'tabby-settings' 4 | 5 | import { ShellSettingsTabComponent } from './components/shellSettingsTab.component' 6 | 7 | /** @hidden */ 8 | @Injectable() 9 | export class ShellSettingsTabProvider extends SettingsTabProvider { 10 | id = 'terminal-shell' 11 | icon = 'list-ul' 12 | title = 'Shell' 13 | 14 | constructor (private hostApp: HostAppService) { 15 | super() 16 | } 17 | 18 | getComponentType (): any { 19 | if (this.hostApp.platform === Platform.Windows) { 20 | return ShellSettingsTabComponent 21 | } 22 | } 23 | } 24 | -------------------------------------------------------------------------------- /tabby-ssh/src/components/sftpCreateDirectoryModal.component.ts: -------------------------------------------------------------------------------- 1 | import { Component } from '@angular/core' 2 | import { NgbActiveModal } from '@ng-bootstrap/ng-bootstrap' 3 | import { BaseComponent } from 'tabby-core' 4 | 5 | /** @hidden */ 6 | @Component({ 7 | templateUrl: './sftpCreateDirectoryModal.component.pug', 8 | }) 9 | export class SFTPCreateDirectoryModalComponent extends BaseComponent { 10 | directoryName: string 11 | 12 | constructor ( 13 | private modalInstance: NgbActiveModal, 14 | ) { 15 | super() 16 | } 17 | 18 | create (): void { 19 | this.modalInstance.close(this.directoryName) 20 | } 21 | 22 | cancel (): void { 23 | this.modalInstance.close('') 24 | } 25 | } 26 | -------------------------------------------------------------------------------- /web/package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "tabby-web-container", 3 | "devDependencies": { 4 | "assert": "1.5.0", 5 | "browserify-zlib": "^0.2.0", 6 | "buffer": "^6.0.3", 7 | "constants-browserify": "^1.0.0", 8 | "crypto-browserify": "^3.12.0", 9 | "deepmerge": "^4.2.2", 10 | "events": "^3.3.0", 11 | "patch-package": "^6.4.7", 12 | "path-browserify": "^1.0.1", 13 | "readline-browserify": "^0.0.4", 14 | "stream-browserify": "^3.0.0", 15 | "url": "^0.11.0" 16 | }, 17 | "resolutions": { 18 | "**/util": "^0.12.0" 19 | }, 20 | "scripts": { 21 | "prepare": "patch-package" 22 | }, 23 | "version": "1.0.197-nightly.1" 24 | } 25 | -------------------------------------------------------------------------------- /tabby-uac/UAC/app.manifest: -------------------------------------------------------------------------------- 1 | 2 | 6 | 7 | 8 | 9 | 10 | 12 | 13 | 14 | 15 | -------------------------------------------------------------------------------- /tabby-core/README.md: -------------------------------------------------------------------------------- 1 | # Tabby Core Plugin 2 | 3 | See also: 4 | 5 | * [Settings plugin API](./settings/) 6 | * [Terminal plugin API](./terminal/) 7 | * [Local terminal API](./local/) 8 | * [Linkifier plugin API](./linkifier/) 9 | 10 | This module provides: 11 | 12 | * tabbed interface services 13 | * toolbar UI 14 | * config file management 15 | * hotkeys 16 | * tab recovery 17 | * logging 18 | * theming 19 | 20 | Using the API: 21 | 22 | ```ts 23 | import { AppService, TabContextMenuItemProvider } from 'tabby-core' 24 | ``` 25 | 26 | Exporting your subclasses: 27 | 28 | ```ts 29 | @NgModule({ 30 | ... 31 | providers: [ 32 | ... 33 | { provide: TabContextMenuItemProvider, useClass: MyContextMenu, multi: true }, 34 | ... 35 | ] 36 | }) 37 | ``` 38 | -------------------------------------------------------------------------------- /tabby-electron/src/hotkeys.ts: -------------------------------------------------------------------------------- 1 | import { Injectable } from '@angular/core' 2 | import { HotkeyDescription, HotkeyProvider, TranslateService } from 'tabby-core' 3 | 4 | /** @hidden */ 5 | @Injectable() 6 | export class ElectronHotkeyProvider extends HotkeyProvider { 7 | hotkeys: HotkeyDescription[] = [ 8 | { 9 | id: 'new-window', 10 | name: this.translate.instant('New window'), 11 | }, 12 | { 13 | id: 'toggle-window', 14 | name: this.translate.instant('Toggle terminal window'), 15 | }, 16 | ] 17 | 18 | constructor (private translate: TranslateService) { super() } 19 | 20 | async provide (): Promise { 21 | return this.hotkeys 22 | } 23 | } 24 | -------------------------------------------------------------------------------- /tabby-terminal/src/components/terminalToolbar.component.pug: -------------------------------------------------------------------------------- 1 | .content( 2 | cdkDropList 3 | cdkAutoDropGroup='app-tabs' 4 | ) 5 | i.fas.fa-grip-vertical.drag-handle( 6 | *ngIf='shouldShowDragHandle', 7 | cdkDrag, 8 | [cdkDragData]='tab', 9 | (cdkDragStarted)='onTabDragStart()', 10 | (cdkDragEnded)='onTabDragEnd()' 11 | ) 12 | 13 | ng-content 14 | 15 | button.btn.btn-sm.btn-link( 16 | *ngIf='tab.enableToolbar', 17 | (click)='tab.togglePinToolbar()', 18 | (mouseenter)='tab.showToolbar()', 19 | (mouseleave)='tab.hideToolbar()' 20 | ) 21 | i.fas.fa-thumbtack 22 | span(*ngIf='tab.pinToolbar', translate) Unpin 23 | span(*ngIf='!tab.pinToolbar', translate) Pin 24 | -------------------------------------------------------------------------------- /tabby-serial/src/hotkeys.ts: -------------------------------------------------------------------------------- 1 | import { Injectable } from '@angular/core' 2 | import { HotkeyDescription, HotkeyProvider, TranslateService } from 'tabby-core' 3 | 4 | /** @hidden */ 5 | @Injectable() 6 | export class SerialHotkeyProvider extends HotkeyProvider { 7 | hotkeys: HotkeyDescription[] = [ 8 | { 9 | id: 'serial', 10 | name: this.translate.instant('Show Serial connections'), 11 | }, 12 | { 13 | id: 'restart-serial-session', 14 | name: this.translate.instant('Restart current serial session'), 15 | }, 16 | ] 17 | 18 | constructor (private translate: TranslateService) { super() } 19 | 20 | async provide (): Promise { 21 | return this.hotkeys 22 | } 23 | } 24 | -------------------------------------------------------------------------------- /tabby-web/package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "tabby-web", 3 | "version": "1.0.197-nightly.1", 4 | "description": "Web-specific bindings", 5 | "keywords": [ 6 | "tabby-builtin-plugin" 7 | ], 8 | "main": "dist/index.js", 9 | "typings": "typings/index.d.ts", 10 | "scripts": { 11 | "build": "webpack --progress --color", 12 | "watch": "webpack --progress --color --watch" 13 | }, 14 | "files": [ 15 | "dist", 16 | "typings" 17 | ], 18 | "author": "Tabby Developers", 19 | "license": "MIT", 20 | "peerDependencies": { 21 | "@angular/core": "^15" 22 | }, 23 | "devDependencies": { 24 | "@vaadin/vaadin-context-menu": "^5.0.0", 25 | "bootstrap": "^4.1.3", 26 | "bowser": "^2.11.0", 27 | "copy-text-to-clipboard": "^3.0.1" 28 | } 29 | } 30 | -------------------------------------------------------------------------------- /.editorconfig: -------------------------------------------------------------------------------- 1 | root = true 2 | 3 | [*] 4 | end_of_line = LF 5 | charset = utf-8 6 | trim_trailing_whitespace = true 7 | insert_final_newline = true 8 | 9 | [*.sln] 10 | indent_style = tab 11 | # TODO Determine if there is a preferred tab width for this file type 12 | 13 | # Programming/Scripts 14 | [*.{js,ts}] 15 | indent_style = space 16 | indent_size = 4 17 | 18 | [*.cpp] 19 | indent_style = tab 20 | # TODO Determine if there is a preferred tab width for this file type 21 | 22 | # Markup 23 | [*.pug] 24 | indent_style = space 25 | indent_size = 4 26 | 27 | # Stylesheets 28 | [*.scss] 29 | indent_style = space 30 | indent_size = 4 31 | 32 | # Data Files 33 | [*.json] 34 | indent_style = space 35 | indent_size = 2 36 | 37 | [*.{yaml,yml}] 38 | indent_style = space 39 | indent_size = 2 40 | -------------------------------------------------------------------------------- /.github/stale.yml: -------------------------------------------------------------------------------- 1 | # Number of days of inactivity before an issue becomes stale 2 | daysUntilStale: 180 3 | # Number of days of inactivity before a stale issue is closed 4 | daysUntilClose: 90 5 | # Issues with these labels will never be considered stale 6 | exemptLabels: 7 | - "T: Enhancement" 8 | - "S: Confirmed" 9 | # Label to use when marking an issue as stale 10 | staleLabel: "S: Stale" 11 | # Comment to post when marking an issue as stale. Set to `false` to disable 12 | markComment: > 13 | This issue has been automatically marked as stale because it has not had 14 | recent activity. It will be closed in two weeks unless you comment. 15 | 16 | Thank you for your contributions. 17 | # Comment to post when closing a stale issue. Set to `false` to disable 18 | closeComment: false 19 | -------------------------------------------------------------------------------- /tabby-terminal/src/icons/regexp.svg: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /tabby-ssh/src/hotkeys.ts: -------------------------------------------------------------------------------- 1 | import { Injectable } from '@angular/core' 2 | import { HotkeyDescription, HotkeyProvider, TranslateService } from 'tabby-core' 3 | 4 | /** @hidden */ 5 | @Injectable() 6 | export class SSHHotkeyProvider extends HotkeyProvider { 7 | hotkeys: HotkeyDescription[] = [ 8 | { 9 | id: 'restart-ssh-session', 10 | name: this.translate.instant('Restart current SSH session'), 11 | }, 12 | { 13 | id: 'launch-winscp', 14 | name: this.translate.instant('Launch WinSCP for current SSH session'), 15 | }, 16 | ] 17 | 18 | constructor (private translate: TranslateService) { super() } 19 | 20 | async provide (): Promise { 21 | return this.hotkeys 22 | } 23 | } 24 | -------------------------------------------------------------------------------- /tabby-terminal/src/icons/case.svg: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /tabby-core/src/api/toolbarButtonProvider.ts: -------------------------------------------------------------------------------- 1 | /** 2 | * See [[ToolbarButtonProvider]] 3 | */ 4 | export interface ToolbarButton { 5 | /** 6 | * Raw SVG icon code 7 | */ 8 | icon?: string 9 | 10 | title: string 11 | 12 | /** 13 | * Optional Touch Bar icon ID 14 | */ 15 | touchBarNSImage?: string 16 | 17 | /** 18 | * Optional Touch Bar button label 19 | */ 20 | touchBarTitle?: string 21 | 22 | weight?: number 23 | 24 | click?: () => void 25 | 26 | submenu?: () => Promise 27 | 28 | /** @hidden */ 29 | submenuItems?: ToolbarButton[] 30 | } 31 | 32 | /** 33 | * Extend to add buttons to the toolbar 34 | */ 35 | export abstract class ToolbarButtonProvider { 36 | abstract provide (): ToolbarButton[] 37 | } 38 | -------------------------------------------------------------------------------- /tabby-core/src/components/splitTabPaneLabel.component.scss: -------------------------------------------------------------------------------- 1 | :host { 2 | position: absolute; 3 | background: rgba(0, 0, 0, .5); 4 | display: flex; 5 | align-items: center; 6 | justify-content: center; 7 | pointer-events: none; 8 | z-index: 10; 9 | opacity: 0; 10 | transition: .125s opacity cubic-bezier(0.86, 0, 0.07, 1); 11 | } 12 | 13 | div { 14 | background: rgba(0, 0, 0, .7); 15 | padding: 20px 30px; 16 | margin: 20px; 17 | font-size: 16px; 18 | color: #fff; 19 | display: flex; 20 | align-items: center; 21 | border-radius: 5px; 22 | cursor: move; 23 | } 24 | 25 | :host.active { 26 | opacity: 1; 27 | 28 | > div { 29 | pointer-events: initial; 30 | } 31 | } 32 | 33 | label { 34 | margin: 0; 35 | cursor: move; 36 | } 37 | -------------------------------------------------------------------------------- /tabby-linkifier/src/api.ts: -------------------------------------------------------------------------------- 1 | import { BaseTerminalTabComponent } from 'tabby-terminal' 2 | 3 | export abstract class LinkHandler { 4 | regex: RegExp 5 | priority = 1 6 | 7 | convert (uri: string, _tab?: BaseTerminalTabComponent): Promise|string { 8 | return uri 9 | } 10 | 11 | verify (_uri: string, _tab?: BaseTerminalTabComponent): Promise|boolean { 12 | return true 13 | } 14 | 15 | abstract handle (uri: string, tab?: BaseTerminalTabComponent): void 16 | 17 | private _fullMatchRegex: RegExp | null = null 18 | get fullMatchRegex (): RegExp { 19 | if (!this._fullMatchRegex) { 20 | this._fullMatchRegex = new RegExp(`^${this.regex.source}$`) 21 | } 22 | return this._fullMatchRegex 23 | } 24 | } 25 | -------------------------------------------------------------------------------- /tabby-community-color-schemes/schemes/Nord: -------------------------------------------------------------------------------- 1 | ! 2 | ! 3 | *.foreground: #d8dee9 4 | *.background: #2e3440 5 | *.cursorColor: #d8dee9 6 | ! 7 | ! Black 8 | *.color0: #3b4252 9 | *.color8: #373e4d 10 | ! 11 | ! Red 12 | *.color1: #bf616a 13 | *.color9: #94545d 14 | ! 15 | ! Green 16 | *.color2: #a3be8c 17 | *.color10: #809575 18 | ! 19 | ! Yellow 20 | *.color3: #ebcb8b 21 | *.color11: #b29e75 22 | ! 23 | ! Blue 24 | *.color4: #81a1c1 25 | *.color12: #68809a 26 | ! 27 | ! Magenta 28 | *.color5: #b48ead 29 | *.color13: #8c738c 30 | ! 31 | ! Cyan 32 | *.color6: #88c0d0 33 | *.color14: #6d96a5 34 | ! 35 | ! White 36 | *.color7: #e5e9f0 37 | *.color15: #aeb3bb 38 | ! 39 | ! Bold, Italic, Underline 40 | *.colorBD: #a5abb6 41 | !*.colorIT: 42 | !*.colorUL: 43 | -------------------------------------------------------------------------------- /tabby-core/src/components/selectorModal.component.scss: -------------------------------------------------------------------------------- 1 | .modal-body { 2 | padding: 0; 3 | } 4 | 5 | .list-group { 6 | max-height: 70vh; 7 | overflow: auto; 8 | border-top-left-radius: 0; 9 | border-top-right-radius: 0; 10 | padding: 10px 15px; 11 | } 12 | 13 | .group-header { 14 | padding: 0 1rem; 15 | margin: 15px 0 10px; 16 | font-weight: bold; 17 | 18 | &:first-child { 19 | margin-top: 5px; 20 | } 21 | } 22 | 23 | .icon { 24 | width: 1.25rem; 25 | margin-right: 0.25rem; 26 | } 27 | 28 | .title { 29 | margin-left: 10px; 30 | flex: none; 31 | } 32 | 33 | .description { 34 | flex: 1 1 0; 35 | } 36 | 37 | input { 38 | border-radius: 0; 39 | border: none; 40 | } 41 | 42 | profile-icon { 43 | width: 14px; 44 | height: 14px; 45 | } 46 | -------------------------------------------------------------------------------- /tabby-electron/src/config.ts: -------------------------------------------------------------------------------- 1 | import { ConfigProvider, Platform } from 'tabby-core' 2 | 3 | /** @hidden */ 4 | export class ElectronConfigProvider extends ConfigProvider { 5 | platformDefaults = { 6 | [Platform.macOS]: { 7 | hotkeys: { 8 | 'toggle-window': ['Ctrl-Space'], 9 | 'new-window': ['⌘-N'], 10 | }, 11 | }, 12 | [Platform.Windows]: { 13 | hotkeys: { 14 | 'toggle-window': ['Ctrl-Space'], 15 | 'new-window': ['Ctrl-Shift-N'], 16 | }, 17 | }, 18 | [Platform.Linux]: { 19 | hotkeys: { 20 | 'toggle-window': ['Ctrl-Space'], 21 | 'new-window': ['Ctrl-Shift-N'], 22 | }, 23 | }, 24 | } 25 | 26 | defaults = {} 27 | } 28 | -------------------------------------------------------------------------------- /tabby-core/src/api/configProvider.ts: -------------------------------------------------------------------------------- 1 | /** 2 | * Extend to add your own config options 3 | */ 4 | export abstract class ConfigProvider { 5 | /** 6 | * Default values, e.g. 7 | * 8 | * ```ts 9 | * defaults = { 10 | * myPlugin: { 11 | * foo: 1 12 | * } 13 | * } 14 | * ``` 15 | */ 16 | defaults: any = {} 17 | 18 | /** 19 | * [[Platform]] specific defaults, e.g. 20 | * 21 | * ```ts 22 | * platformDefaults = { 23 | * [Platform.Windows]: { 24 | * myPlugin: { 25 | * bar: true 26 | * } 27 | * }, 28 | * [Platform.macOS]: { 29 | * myPlugin: { 30 | * bar: false 31 | * } 32 | * }, 33 | * } 34 | * ``` 35 | */ 36 | platformDefaults: Record = {} 37 | } 38 | -------------------------------------------------------------------------------- /tabby-local/src/components/shellSettingsTab.component.pug: -------------------------------------------------------------------------------- 1 | h3.mb-3(translate) Shell 2 | 3 | .form-line(*ngIf='isConPTYAvailable') 4 | .header 5 | .title(translate) Use ConPTY 6 | .description(translate) Enables the experimental Windows ConPTY API 7 | 8 | toggle( 9 | [(ngModel)]='config.store.terminal.useConPTY', 10 | (ngModelChange)='config.save()' 11 | ) 12 | 13 | .alert.alert-info.d-flex.align-items-center(*ngIf='config.store.terminal.useConPTY && isConPTYAvailable && !isConPTYStable') 14 | .me-auto(translate) Windows 10 build 18309 or above is recommended for ConPTY 15 | 16 | .alert.alert-info.d-flex.align-items-center(*ngIf='config.store.terminal.profile.startsWith("WSL") && (!config.store.terminal.useConPTY)') 17 | .me-auto(translate) WSL terminal only supports TrueColor with ConPTY 18 | -------------------------------------------------------------------------------- /tabby-settings/src/components/hotkeySettingsTab.component.pug: -------------------------------------------------------------------------------- 1 | h3.mb-3(translate) Hotkeys 2 | 3 | .input-group.mb-4 4 | .input-group-text 5 | i.fas.fa-fw.fa-search 6 | input.form-control(type='search', [placeholder]='"Search hotkeys"|translate', [(ngModel)]='hotkeyFilter') 7 | 8 | .mb-3.hotkeys-table 9 | ng-container(*ngFor='let hotkey of hotkeyDescriptions') 10 | .row.align-items-center(*ngIf='!hotkeyFilter || hotkeyFilterFn(hotkey, hotkeyFilter)') 11 | .col-8.py-2 12 | span {{hotkey.name|translate}} 13 | span.ms-2.text-muted ({{hotkey.id}}) 14 | .col-4.pe-5 15 | multi-hotkey-input( 16 | [hotkeys]='getHotkeys(hotkey.id) || []', 17 | (hotkeysChange)='setHotkeys(hotkey.id, $event)' 18 | ) 19 | -------------------------------------------------------------------------------- /tabby-community-color-schemes/schemes/Blazer: -------------------------------------------------------------------------------- 1 | ! 2 | ! Generated with : 3 | ! XRDB2Xreources.py 4 | ! 5 | *.foreground: #d9e6f2 6 | *.background: #0d1926 7 | *.cursorColor: #d9e6f2 8 | ! 9 | ! Black 10 | *.color0: #000000 11 | *.color8: #262626 12 | ! 13 | ! Red 14 | *.color1: #b87a7a 15 | *.color9: #dbbdbd 16 | ! 17 | ! Green 18 | *.color2: #7ab87a 19 | *.color10: #bddbbd 20 | ! 21 | ! Yellow 22 | *.color3: #b8b87a 23 | *.color11: #dbdbbd 24 | ! 25 | ! Blue 26 | *.color4: #7a7ab8 27 | *.color12: #bdbddb 28 | ! 29 | ! Magenta 30 | *.color5: #b87ab8 31 | *.color13: #dbbddb 32 | ! 33 | ! Cyan 34 | *.color6: #7ab8b8 35 | *.color14: #bddbdb 36 | ! 37 | ! White 38 | *.color7: #d9d9d9 39 | *.color15: #ffffff 40 | ! 41 | ! Bold, Italic, Underline 42 | !*.colorBD: 43 | !*.colorIT: 44 | !*.colorUL: 45 | -------------------------------------------------------------------------------- /tabby-ssh/src/recoveryProvider.ts: -------------------------------------------------------------------------------- 1 | import { Injectable } from '@angular/core' 2 | import { TabRecoveryProvider, NewTabParameters, RecoveryToken } from 'tabby-core' 3 | 4 | import { SSHTabComponent } from './components/sshTab.component' 5 | 6 | /** @hidden */ 7 | @Injectable() 8 | export class RecoveryProvider extends TabRecoveryProvider { 9 | async applicableTo (recoveryToken: RecoveryToken): Promise { 10 | return recoveryToken.type === 'app:ssh-tab' 11 | } 12 | 13 | async recover (recoveryToken: RecoveryToken): Promise> { 14 | return { 15 | type: SSHTabComponent, 16 | inputs: { 17 | profile: recoveryToken['profile'], 18 | savedState: recoveryToken['savedState'], 19 | }, 20 | } 21 | } 22 | } 23 | -------------------------------------------------------------------------------- /tabby-community-color-schemes/schemes/Rose Pine: -------------------------------------------------------------------------------- 1 | ! 2 | ! Rosé Pine 3 | ! https://rosepinetheme.com/ 4 | ! 5 | *.foreground: #e0def4 6 | *.background: #191724 7 | *.cursorColor: #555169 8 | ! 9 | ! Black 10 | *.color0: #26233a 11 | *.color8: #6e6a86 12 | ! 13 | ! Red 14 | *.color1: #eb6f92 15 | *.color9: #eb6f92 16 | ! 17 | ! Green 18 | *.color2: #31748f 19 | *.color10: #31748f 20 | ! 21 | ! Yellow 22 | *.color3: #f6c177 23 | *.color11: #f6c177 24 | ! 25 | ! Blue 26 | *.color4: #9ccfd8 27 | *.color12: #9ccfd8 28 | 29 | ! Magenta 30 | *.color5: #c4a7e7 31 | *.color13: #c4a7e7 32 | ! 33 | ! Cyan 34 | *.color6: #ebbcba 35 | *.color14: #ebbcba 36 | ! 37 | ! White 38 | *.color7: #e0def4 39 | *.color15: #e0def4 40 | ! 41 | ! Bold, Italic, Underline 42 | !*.colorBD: 43 | !*.colorIT: 44 | !*.colorUL: 45 | -------------------------------------------------------------------------------- /tabby-settings/src/components/setVaultPassphraseModal.component.pug: -------------------------------------------------------------------------------- 1 | h3.modal-header.m-0.pb-0(translate) Set master passphrase 2 | .modal-body 3 | .mb-2(translate) You can change it later, but it's unrecoverable if forgotten. 4 | .input-group 5 | input.form-control.form-control-lg( 6 | [type]='showPassphrase ? "text" : "password"', 7 | autofocus, 8 | [(ngModel)]='passphrase', 9 | #input, 10 | placeholder='Master passphrase', 11 | (keyup.enter)='ok()', 12 | (keyup.esc)='cancel()', 13 | ) 14 | button.btn.btn-secondary((click)='showPassphrase = !showPassphrase') 15 | i.fas.fa-eye 16 | 17 | .modal-footer 18 | button.btn.btn-primary((click)='ok()', translate) Set passphrase 19 | button.btn.btn-danger((click)='cancel()', translate) Cancel 20 | -------------------------------------------------------------------------------- /tabby-community-color-schemes/schemes/Atom: -------------------------------------------------------------------------------- 1 | ! 2 | ! Generated with : 3 | ! XRDB2Xreources.py 4 | ! 5 | *.foreground: #c5c8c6 6 | *.background: #161719 7 | *.cursorColor: #d0d0d0 8 | ! 9 | ! Black 10 | *.color0: #000000 11 | *.color8: #000000 12 | ! 13 | ! Red 14 | *.color1: #fd5ff1 15 | *.color9: #fd5ff1 16 | ! 17 | ! Green 18 | *.color2: #87c38a 19 | *.color10: #94fa36 20 | ! 21 | ! Yellow 22 | *.color3: #ffd7b1 23 | *.color11: #f5ffa8 24 | ! 25 | ! Blue 26 | *.color4: #85befd 27 | *.color12: #96cbfe 28 | ! 29 | ! Magenta 30 | *.color5: #b9b6fc 31 | *.color13: #b9b6fc 32 | ! 33 | ! Cyan 34 | *.color6: #85befd 35 | *.color14: #85befd 36 | ! 37 | ! White 38 | *.color7: #e0e0e0 39 | *.color15: #e0e0e0 40 | ! 41 | ! Bold, Italic, Underline 42 | *.colorBD: #c5c8c6 43 | !*.colorIT: 44 | !*.colorUL: 45 | -------------------------------------------------------------------------------- /tabby-community-color-schemes/schemes/C64: -------------------------------------------------------------------------------- 1 | ! 2 | ! Generated with : 3 | ! XRDB2Xreources.py 4 | ! 5 | *.foreground: #7869c4 6 | *.background: #40318d 7 | *.cursorColor: #7869c4 8 | ! 9 | ! Black 10 | *.color0: #090300 11 | *.color8: #000000 12 | ! 13 | ! Red 14 | *.color1: #883932 15 | *.color9: #883932 16 | ! 17 | ! Green 18 | *.color2: #55a049 19 | *.color10: #55a049 20 | ! 21 | ! Yellow 22 | *.color3: #bfce72 23 | *.color11: #bfce72 24 | ! 25 | ! Blue 26 | *.color4: #40318d 27 | *.color12: #40318d 28 | ! 29 | ! Magenta 30 | *.color5: #8b3f96 31 | *.color13: #8b3f96 32 | ! 33 | ! Cyan 34 | *.color6: #67b6bd 35 | *.color14: #67b6bd 36 | ! 37 | ! White 38 | *.color7: #ffffff 39 | *.color15: #f7f7f7 40 | ! 41 | ! Bold, Italic, Underline 42 | *.colorBD: #a5a2a2 43 | !*.colorIT: 44 | !*.colorUL: 45 | -------------------------------------------------------------------------------- /tabby-community-color-schemes/schemes/CLRS: -------------------------------------------------------------------------------- 1 | ! 2 | ! Generated with : 3 | ! XRDB2Xreources.py 4 | ! 5 | *.foreground: #262626 6 | *.background: #ffffff 7 | *.cursorColor: #6fd3fc 8 | ! 9 | ! Black 10 | *.color0: #000000 11 | *.color8: #555753 12 | ! 13 | ! Red 14 | *.color1: #f8282a 15 | *.color9: #fb0416 16 | ! 17 | ! Green 18 | *.color2: #328a5d 19 | *.color10: #2cc631 20 | ! 21 | ! Yellow 22 | *.color3: #fa701d 23 | *.color11: #fdd727 24 | ! 25 | ! Blue 26 | *.color4: #135cd0 27 | *.color12: #1670ff 28 | ! 29 | ! Magenta 30 | *.color5: #9f00bd 31 | *.color13: #e900b0 32 | ! 33 | ! Cyan 34 | *.color6: #33c3c1 35 | *.color14: #3ad5ce 36 | ! 37 | ! White 38 | *.color7: #b3b3b3 39 | *.color15: #eeeeec 40 | ! 41 | ! Bold, Italic, Underline 42 | *.colorBD: #1a1a1a 43 | !*.colorIT: 44 | !*.colorUL: 45 | -------------------------------------------------------------------------------- /tabby-community-color-schemes/schemes/Chalk: -------------------------------------------------------------------------------- 1 | ! 2 | ! Generated with : 3 | ! XRDB2Xreources.py 4 | ! 5 | *.foreground: #d2d8d9 6 | *.background: #2b2d2e 7 | *.cursorColor: #708284 8 | ! 9 | ! Black 10 | *.color0: #7d8b8f 11 | *.color8: #888888 12 | ! 13 | ! Red 14 | *.color1: #b23a52 15 | *.color9: #f24840 16 | ! 17 | ! Green 18 | *.color2: #789b6a 19 | *.color10: #80c470 20 | ! 21 | ! Yellow 22 | *.color3: #b9ac4a 23 | *.color11: #ffeb62 24 | ! 25 | ! Blue 26 | *.color4: #2a7fac 27 | *.color12: #4196ff 28 | ! 29 | ! Magenta 30 | *.color5: #bd4f5a 31 | *.color13: #fc5275 32 | ! 33 | ! Cyan 34 | *.color6: #44a799 35 | *.color14: #53cdbd 36 | ! 37 | ! White 38 | *.color7: #d2d8d9 39 | *.color15: #d2d8d9 40 | ! 41 | ! Bold, Italic, Underline 42 | *.colorBD: #ececec 43 | !*.colorIT: 44 | !*.colorUL: 45 | -------------------------------------------------------------------------------- /tabby-community-color-schemes/schemes/ENCOM: -------------------------------------------------------------------------------- 1 | ! 2 | ! Generated with : 3 | ! XRDB2Xreources.py 4 | ! 5 | *.foreground: #00a595 6 | *.background: #000000 7 | *.cursorColor: #bbbbbb 8 | ! 9 | ! Black 10 | *.color0: #000000 11 | *.color8: #555555 12 | ! 13 | ! Red 14 | *.color1: #9f0000 15 | *.color9: #ff0000 16 | ! 17 | ! Green 18 | *.color2: #008b00 19 | *.color10: #00ee00 20 | ! 21 | ! Yellow 22 | *.color3: #ffd000 23 | *.color11: #ffff00 24 | ! 25 | ! Blue 26 | *.color4: #0081ff 27 | *.color12: #0000ff 28 | ! 29 | ! Magenta 30 | *.color5: #bc00ca 31 | *.color13: #ff00ff 32 | ! 33 | ! Cyan 34 | *.color6: #008b8b 35 | *.color14: #00cdcd 36 | ! 37 | ! White 38 | *.color7: #bbbbbb 39 | *.color15: #ffffff 40 | ! 41 | ! Bold, Italic, Underline 42 | *.colorBD: #4cf1e1 43 | !*.colorIT: 44 | !*.colorUL: 45 | -------------------------------------------------------------------------------- /tabby-community-color-schemes/schemes/Flat: -------------------------------------------------------------------------------- 1 | ! 2 | ! Generated with : 3 | ! XRDB2Xreources.py 4 | ! 5 | *.foreground: #2cc55d 6 | *.background: #002240 7 | *.cursorColor: #e5be0c 8 | ! 9 | ! Black 10 | *.color0: #222d3f 11 | *.color8: #212c3c 12 | ! 13 | ! Red 14 | *.color1: #a82320 15 | *.color9: #d4312e 16 | ! 17 | ! Green 18 | *.color2: #32a548 19 | *.color10: #2d9440 20 | ! 21 | ! Yellow 22 | *.color3: #e58d11 23 | *.color11: #e5be0c 24 | ! 25 | ! Blue 26 | *.color4: #3167ac 27 | *.color12: #3c7dd2 28 | ! 29 | ! Magenta 30 | *.color5: #781aa0 31 | *.color13: #8230a7 32 | ! 33 | ! Cyan 34 | *.color6: #2c9370 35 | *.color14: #35b387 36 | ! 37 | ! White 38 | *.color7: #b0b6ba 39 | *.color15: #e7eced 40 | ! 41 | ! Bold, Italic, Underline 42 | *.colorBD: #e7eced 43 | !*.colorIT: 44 | !*.colorUL: 45 | -------------------------------------------------------------------------------- /tabby-community-color-schemes/schemes/Grape: -------------------------------------------------------------------------------- 1 | ! 2 | ! Generated with : 3 | ! XRDB2Xreources.py 4 | ! 5 | *.foreground: #9f9fa1 6 | *.background: #171423 7 | *.cursorColor: #a288f7 8 | ! 9 | ! Black 10 | *.color0: #2d283f 11 | *.color8: #59516a 12 | ! 13 | ! Red 14 | *.color1: #ed2261 15 | *.color9: #f0729a 16 | ! 17 | ! Green 18 | *.color2: #1fa91b 19 | *.color10: #53aa5e 20 | ! 21 | ! Yellow 22 | *.color3: #8ddc20 23 | *.color11: #b2dc87 24 | ! 25 | ! Blue 26 | *.color4: #487df4 27 | *.color12: #a9bcec 28 | ! 29 | ! Magenta 30 | *.color5: #8d35c9 31 | *.color13: #ad81c2 32 | ! 33 | ! Cyan 34 | *.color6: #3bdeed 35 | *.color14: #9de3eb 36 | ! 37 | ! White 38 | *.color7: #9e9ea0 39 | *.color15: #a288f7 40 | ! 41 | ! Bold, Italic, Underline 42 | *.colorBD: #9f87ff 43 | !*.colorIT: 44 | !*.colorUL: 45 | -------------------------------------------------------------------------------- /tabby-community-color-schemes/schemes/Grass: -------------------------------------------------------------------------------- 1 | ! 2 | ! Generated with : 3 | ! XRDB2Xreources.py 4 | ! 5 | *.foreground: #fff0a5 6 | *.background: #13773d 7 | *.cursorColor: #8c2800 8 | ! 9 | ! Black 10 | *.color0: #000000 11 | *.color8: #555555 12 | ! 13 | ! Red 14 | *.color1: #bb0000 15 | *.color9: #bb0000 16 | ! 17 | ! Green 18 | *.color2: #00bb00 19 | *.color10: #00bb00 20 | ! 21 | ! Yellow 22 | *.color3: #e7b000 23 | *.color11: #e7b000 24 | ! 25 | ! Blue 26 | *.color4: #0000a3 27 | *.color12: #0000bb 28 | ! 29 | ! Magenta 30 | *.color5: #950062 31 | *.color13: #ff55ff 32 | ! 33 | ! Cyan 34 | *.color6: #00bbbb 35 | *.color14: #55ffff 36 | ! 37 | ! White 38 | *.color7: #bbbbbb 39 | *.color15: #ffffff 40 | ! 41 | ! Bold, Italic, Underline 42 | *.colorBD: #ffb03b 43 | !*.colorIT: 44 | !*.colorUL: 45 | -------------------------------------------------------------------------------- /tabby-community-color-schemes/schemes/Iceberg: -------------------------------------------------------------------------------- 1 | ! Iceberg 2 | ! https://cocopon.github.io/iceberg.vim/ 3 | *.foreground: #c6c8d1 4 | *.background: #161821 5 | *.cursorColor: #c6c8d1 6 | ! 7 | ! Black 8 | *.color0: #1e2132 9 | *.color8: #6b7089 10 | ! 11 | ! Red 12 | *.color1: #e27878 13 | *.color9: #e98989 14 | ! 15 | ! Green 16 | *.color2: #b4be82 17 | *.color10: #c0ca8e 18 | ! 19 | ! Yellow 20 | *.color3: #e2a478 21 | *.color11: #e9b189 22 | ! 23 | ! Blue 24 | *.color4: #84a0c6 25 | *.color12: #91acd1 26 | ! 27 | ! Magenta 28 | *.color5: #a093c7 29 | *.color13: #ada0d3 30 | ! 31 | ! Cyan 32 | *.color6: #89b8c2 33 | *.color14: #95c4ce 34 | ! 35 | ! White 36 | *.color7: #c6c8d1 37 | *.color15: #d2d4de 38 | ! 39 | ! Bold, Italic, Underline 40 | *.colorBD: #c6c8d1 41 | !*.colorIT: 42 | !*.colorUL: 43 | -------------------------------------------------------------------------------- /tabby-community-color-schemes/schemes/Jazz: -------------------------------------------------------------------------------- 1 | ! 2 | ! Generated with : 3 | ! XRDB2Xresources.py 4 | ! 5 | *.foreground: #3f3f3f 6 | *.background: #f3f2f1 7 | *.cursorColor: #9acf9f 8 | ! 9 | ! Black 10 | *.color0: #282c34 11 | *.color8: #548962 12 | ! 13 | ! Red 14 | *.color1: #e06c75 15 | *.color9: #d19a66 16 | ! 17 | ! Green 18 | *.color2: #668e3d 19 | *.color10: #668e3d 20 | ! 21 | ! Yellow 22 | *.color3: #c49041 23 | *.color11: #c49041 24 | ! 25 | ! Blue 26 | *.color4: #8c71bf 27 | *.color12: #8c71bf 28 | ! 29 | ! Magenta 30 | *.color5: #c678dd 31 | *.color13: #c678dd 32 | ! 33 | ! Cyan 34 | *.color6: #878b91 35 | *.color14: #5e6091 36 | ! 37 | ! White 38 | *.color7: #abb2bf 39 | *.color15: #f2f7ff 40 | ! 41 | ! Bold, Italic, Underline 42 | *.colorBD: #33374c 43 | !*.colorIT: 44 | !*.colorUL: 45 | -------------------------------------------------------------------------------- /tabby-community-color-schemes/schemes/Novel: -------------------------------------------------------------------------------- 1 | ! 2 | ! Generated with : 3 | ! XRDB2Xreources.py 4 | ! 5 | *.foreground: #3b2322 6 | *.background: #dfdbc3 7 | *.cursorColor: #73635a 8 | ! 9 | ! Black 10 | *.color0: #000000 11 | *.color8: #808080 12 | ! 13 | ! Red 14 | *.color1: #cc0000 15 | *.color9: #cc0000 16 | ! 17 | ! Green 18 | *.color2: #009600 19 | *.color10: #009600 20 | ! 21 | ! Yellow 22 | *.color3: #d06b00 23 | *.color11: #d06b00 24 | ! 25 | ! Blue 26 | *.color4: #0000cc 27 | *.color12: #0000cc 28 | ! 29 | ! Magenta 30 | *.color5: #cc00cc 31 | *.color13: #cc00cc 32 | ! 33 | ! Cyan 34 | *.color6: #0087cc 35 | *.color14: #0087cc 36 | ! 37 | ! White 38 | *.color7: #cccccc 39 | *.color15: #ffffff 40 | ! 41 | ! Bold, Italic, Underline 42 | *.colorBD: #8e2a19 43 | !*.colorIT: 44 | !*.colorUL: 45 | -------------------------------------------------------------------------------- /tabby-community-color-schemes/schemes/Ocean: -------------------------------------------------------------------------------- 1 | ! 2 | ! Generated with : 3 | ! XRDB2Xreources.py 4 | ! 5 | *.foreground: #ffffff 6 | *.background: #224fbc 7 | *.cursorColor: #7f7f7f 8 | ! 9 | ! Black 10 | *.color0: #000000 11 | *.color8: #666666 12 | ! 13 | ! Red 14 | *.color1: #990000 15 | *.color9: #e50000 16 | ! 17 | ! Green 18 | *.color2: #00a600 19 | *.color10: #00d900 20 | ! 21 | ! Yellow 22 | *.color3: #999900 23 | *.color11: #e5e500 24 | ! 25 | ! Blue 26 | *.color4: #0000b2 27 | *.color12: #0000ff 28 | ! 29 | ! Magenta 30 | *.color5: #b200b2 31 | *.color13: #e500e5 32 | ! 33 | ! Cyan 34 | *.color6: #00a6b2 35 | *.color14: #00e5e5 36 | ! 37 | ! White 38 | *.color7: #bfbfbf 39 | *.color15: #e5e5e5 40 | ! 41 | ! Bold, Italic, Underline 42 | *.colorBD: #ffffff 43 | !*.colorIT: 44 | !*.colorUL: 45 | -------------------------------------------------------------------------------- /tabby-community-color-schemes/schemes/Ollie: -------------------------------------------------------------------------------- 1 | ! 2 | ! Generated with : 3 | ! XRDB2Xreources.py 4 | ! 5 | *.foreground: #8a8dae 6 | *.background: #222125 7 | *.cursorColor: #5b6ea7 8 | ! 9 | ! Black 10 | *.color0: #000000 11 | *.color8: #5b3725 12 | ! 13 | ! Red 14 | *.color1: #ac2e31 15 | *.color9: #ff3d48 16 | ! 17 | ! Green 18 | *.color2: #31ac61 19 | *.color10: #3bff99 20 | ! 21 | ! Yellow 22 | *.color3: #ac4300 23 | *.color11: #ff5e1e 24 | ! 25 | ! Blue 26 | *.color4: #2d57ac 27 | *.color12: #4488ff 28 | ! 29 | ! Magenta 30 | *.color5: #b08528 31 | *.color13: #ffc21d 32 | ! 33 | ! Cyan 34 | *.color6: #1fa6ac 35 | *.color14: #1ffaff 36 | ! 37 | ! White 38 | *.color7: #8a8eac 39 | *.color15: #5b6ea7 40 | ! 41 | ! Bold, Italic, Underline 42 | *.colorBD: #5c6dac 43 | !*.colorIT: 44 | !*.colorUL: 45 | -------------------------------------------------------------------------------- /tabby-community-color-schemes/schemes/Pro: -------------------------------------------------------------------------------- 1 | ! 2 | ! Generated with : 3 | ! XRDB2Xreources.py 4 | ! 5 | *.foreground: #f2f2f2 6 | *.background: #000000 7 | *.cursorColor: #4d4d4d 8 | ! 9 | ! Black 10 | *.color0: #000000 11 | *.color8: #666666 12 | ! 13 | ! Red 14 | *.color1: #990000 15 | *.color9: #e50000 16 | ! 17 | ! Green 18 | *.color2: #00a600 19 | *.color10: #00d900 20 | ! 21 | ! Yellow 22 | *.color3: #999900 23 | *.color11: #e5e500 24 | ! 25 | ! Blue 26 | *.color4: #2009db 27 | *.color12: #0000ff 28 | ! 29 | ! Magenta 30 | *.color5: #b200b2 31 | *.color13: #e500e5 32 | ! 33 | ! Cyan 34 | *.color6: #00a6b2 35 | *.color14: #00e5e5 36 | ! 37 | ! White 38 | *.color7: #bfbfbf 39 | *.color15: #e5e5e5 40 | ! 41 | ! Bold, Italic, Underline 42 | *.colorBD: #ffffff 43 | !*.colorIT: 44 | !*.colorUL: 45 | -------------------------------------------------------------------------------- /tabby-community-color-schemes/schemes/Royal: -------------------------------------------------------------------------------- 1 | ! 2 | ! Generated with : 3 | ! XRDB2Xreources.py 4 | ! 5 | *.foreground: #514968 6 | *.background: #100815 7 | *.cursorColor: #524966 8 | ! 9 | ! Black 10 | *.color0: #241f2b 11 | *.color8: #312d3d 12 | ! 13 | ! Red 14 | *.color1: #91284c 15 | *.color9: #d5356c 16 | ! 17 | ! Green 18 | *.color2: #23801c 19 | *.color10: #2cd946 20 | ! 21 | ! Yellow 22 | *.color3: #b49d27 23 | *.color11: #fde83b 24 | ! 25 | ! Blue 26 | *.color4: #6580b0 27 | *.color12: #90baf9 28 | ! 29 | ! Magenta 30 | *.color5: #674d96 31 | *.color13: #a479e3 32 | ! 33 | ! Cyan 34 | *.color6: #8aaabe 35 | *.color14: #acd4eb 36 | ! 37 | ! White 38 | *.color7: #524966 39 | *.color15: #9e8cbd 40 | ! 41 | ! Bold, Italic, Underline 42 | *.colorBD: #c8bd1d 43 | !*.colorIT: 44 | !*.colorUL: 45 | -------------------------------------------------------------------------------- /tabby-community-color-schemes/schemes/Seti: -------------------------------------------------------------------------------- 1 | ! 2 | ! Generated with : 3 | ! XRDB2Xreources.py 4 | ! 5 | *.foreground: #cacecd 6 | *.background: #111213 7 | *.cursorColor: #e3bf21 8 | ! 9 | ! Black 10 | *.color0: #323232 11 | *.color8: #323232 12 | ! 13 | ! Red 14 | *.color1: #c22832 15 | *.color9: #c22832 16 | ! 17 | ! Green 18 | *.color2: #8ec43d 19 | *.color10: #8ec43d 20 | ! 21 | ! Yellow 22 | *.color3: #e0c64f 23 | *.color11: #e0c64f 24 | ! 25 | ! Blue 26 | *.color4: #43a5d5 27 | *.color12: #43a5d5 28 | ! 29 | ! Magenta 30 | *.color5: #8b57b5 31 | *.color13: #8b57b5 32 | ! 33 | ! Cyan 34 | *.color6: #8ec43d 35 | *.color14: #8ec43d 36 | ! 37 | ! White 38 | *.color7: #eeeeee 39 | *.color15: #ffffff 40 | ! 41 | ! Bold, Italic, Underline 42 | *.colorBD: #cacecd 43 | !*.colorIT: 44 | !*.colorUL: 45 | -------------------------------------------------------------------------------- /tabby-community-color-schemes/schemes/Slate: -------------------------------------------------------------------------------- 1 | ! 2 | ! Generated with : 3 | ! XRDB2Xreources.py 4 | ! 5 | *.foreground: #35b1d2 6 | *.background: #222222 7 | *.cursorColor: #87d3c4 8 | ! 9 | ! Black 10 | *.color0: #222222 11 | *.color8: #ffffff 12 | ! 13 | ! Red 14 | *.color1: #e2a8bf 15 | *.color9: #ffcdd9 16 | ! 17 | ! Green 18 | *.color2: #81d778 19 | *.color10: #beffa8 20 | ! 21 | ! Yellow 22 | *.color3: #c4c9c0 23 | *.color11: #d0ccca 24 | ! 25 | ! Blue 26 | *.color4: #264b49 27 | *.color12: #7ab0d2 28 | ! 29 | ! Magenta 30 | *.color5: #a481d3 31 | *.color13: #c5a7d9 32 | ! 33 | ! Cyan 34 | *.color6: #15ab9c 35 | *.color14: #8cdfe0 36 | ! 37 | ! White 38 | *.color7: #02c5e0 39 | *.color15: #e0e0e0 40 | ! 41 | ! Bold, Italic, Underline 42 | *.colorBD: #648890 43 | !*.colorIT: 44 | !*.colorUL: 45 | -------------------------------------------------------------------------------- /tabby-community-color-schemes/schemes/Smyck: -------------------------------------------------------------------------------- 1 | ! 2 | ! Generated with : 3 | ! XRDB2Xreources.py 4 | ! 5 | *.foreground: #f7f7f7 6 | *.background: #1b1b1b 7 | *.cursorColor: #bbbbbb 8 | ! 9 | ! Black 10 | *.color0: #000000 11 | *.color8: #7a7a7a 12 | ! 13 | ! Red 14 | *.color1: #b84131 15 | *.color9: #d6837c 16 | ! 17 | ! Green 18 | *.color2: #7da900 19 | *.color10: #c4f137 20 | ! 21 | ! Yellow 22 | *.color3: #c4a500 23 | *.color11: #fee14d 24 | ! 25 | ! Blue 26 | *.color4: #62a3c4 27 | *.color12: #8dcff0 28 | ! 29 | ! Magenta 30 | *.color5: #ba8acc 31 | *.color13: #f79aff 32 | ! 33 | ! Cyan 34 | *.color6: #207383 35 | *.color14: #6ad9cf 36 | ! 37 | ! White 38 | *.color7: #a1a1a1 39 | *.color15: #f7f7f7 40 | ! 41 | ! Bold, Italic, Underline 42 | *.colorBD: #ffffff 43 | !*.colorIT: 44 | !*.colorUL: 45 | -------------------------------------------------------------------------------- /tabby-community-color-schemes/schemes/Teerb: -------------------------------------------------------------------------------- 1 | ! 2 | ! Generated with : 3 | ! XRDB2Xreources.py 4 | ! 5 | *.foreground: #d0d0d0 6 | *.background: #262626 7 | *.cursorColor: #e4c9af 8 | ! 9 | ! Black 10 | *.color0: #1c1c1c 11 | *.color8: #1c1c1c 12 | ! 13 | ! Red 14 | *.color1: #d68686 15 | *.color9: #d68686 16 | ! 17 | ! Green 18 | *.color2: #aed686 19 | *.color10: #aed686 20 | ! 21 | ! Yellow 22 | *.color3: #d7af87 23 | *.color11: #e4c9af 24 | ! 25 | ! Blue 26 | *.color4: #86aed6 27 | *.color12: #86aed6 28 | ! 29 | ! Magenta 30 | *.color5: #d6aed6 31 | *.color13: #d6aed6 32 | ! 33 | ! Cyan 34 | *.color6: #8adbb4 35 | *.color14: #b1e7dd 36 | ! 37 | ! White 38 | *.color7: #d0d0d0 39 | *.color15: #efefef 40 | ! 41 | ! Bold, Italic, Underline 42 | *.colorBD: #e5e5e5 43 | !*.colorIT: 44 | !*.colorUL: 45 | -------------------------------------------------------------------------------- /tabby-community-color-schemes/schemes/Urple: -------------------------------------------------------------------------------- 1 | ! 2 | ! Generated with : 3 | ! XRDB2Xreources.py 4 | ! 5 | *.foreground: #877a9b 6 | *.background: #1b1b23 7 | *.cursorColor: #a063eb 8 | ! 9 | ! Black 10 | *.color0: #000000 11 | *.color8: #5d3225 12 | ! 13 | ! Red 14 | *.color1: #b0425b 15 | *.color9: #ff6388 16 | ! 17 | ! Green 18 | *.color2: #37a415 19 | *.color10: #29e620 20 | ! 21 | ! Yellow 22 | *.color3: #ad5c42 23 | *.color11: #f08161 24 | ! 25 | ! Blue 26 | *.color4: #564d9b 27 | *.color12: #867aed 28 | ! 29 | ! Magenta 30 | *.color5: #6c3ca1 31 | *.color13: #a05eee 32 | ! 33 | ! Cyan 34 | *.color6: #808080 35 | *.color14: #eaeaea 36 | ! 37 | ! White 38 | *.color7: #87799c 39 | *.color15: #bfa3ff 40 | ! 41 | ! Bold, Italic, Underline 42 | *.colorBD: #a063eb 43 | !*.colorIT: 44 | !*.colorUL: 45 | -------------------------------------------------------------------------------- /tabby-community-color-schemes/schemes/Wez: -------------------------------------------------------------------------------- 1 | ! 2 | ! Generated with : 3 | ! XRDB2Xreources.py 4 | ! 5 | *.foreground: #b3b3b3 6 | *.background: #000000 7 | *.cursorColor: #53ae71 8 | ! 9 | ! Black 10 | *.color0: #000000 11 | *.color8: #555555 12 | ! 13 | ! Red 14 | *.color1: #cc5555 15 | *.color9: #ff5555 16 | ! 17 | ! Green 18 | *.color2: #55cc55 19 | *.color10: #55ff55 20 | ! 21 | ! Yellow 22 | *.color3: #cdcd55 23 | *.color11: #ffff55 24 | ! 25 | ! Blue 26 | *.color4: #5555cc 27 | *.color12: #5555ff 28 | ! 29 | ! Magenta 30 | *.color5: #cc55cc 31 | *.color13: #ff55ff 32 | ! 33 | ! Cyan 34 | *.color6: #7acaca 35 | *.color14: #55ffff 36 | ! 37 | ! White 38 | *.color7: #cccccc 39 | *.color15: #ffffff 40 | ! 41 | ! Bold, Italic, Underline 42 | *.colorBD: #ff6347 43 | !*.colorIT: 44 | !*.colorUL: 45 | -------------------------------------------------------------------------------- /tabby-community-color-schemes/schemes/Wryan: -------------------------------------------------------------------------------- 1 | ! 2 | ! Generated with : 3 | ! XRDB2Xreources.py 4 | ! 5 | *.foreground: #999993 6 | *.background: #101010 7 | *.cursorColor: #9e9ecb 8 | ! 9 | ! Black 10 | *.color0: #333333 11 | *.color8: #3d3d3d 12 | ! 13 | ! Red 14 | *.color1: #8c4665 15 | *.color9: #bf4d80 16 | ! 17 | ! Green 18 | *.color2: #287373 19 | *.color10: #53a6a6 20 | ! 21 | ! Yellow 22 | *.color3: #7c7c99 23 | *.color11: #9e9ecb 24 | ! 25 | ! Blue 26 | *.color4: #395573 27 | *.color12: #477ab3 28 | ! 29 | ! Magenta 30 | *.color5: #5e468c 31 | *.color13: #7e62b3 32 | ! 33 | ! Cyan 34 | *.color6: #31658c 35 | *.color14: #6096bf 36 | ! 37 | ! White 38 | *.color7: #899ca1 39 | *.color15: #c0c0c0 40 | ! 41 | ! Bold, Italic, Underline 42 | *.colorBD: #ffffff 43 | !*.colorIT: 44 | !*.colorUL: 45 | -------------------------------------------------------------------------------- /tabby-community-color-schemes/schemes/ayu: -------------------------------------------------------------------------------- 1 | ! 2 | ! Generated with : 3 | ! XRDB2Xreources.py 4 | ! 5 | *.foreground: #e6e1cf 6 | *.background: #0f1419 7 | *.cursorColor: #f29718 8 | ! 9 | ! Black 10 | *.color0: #000000 11 | *.color8: #323232 12 | ! 13 | ! Red 14 | *.color1: #ff3333 15 | *.color9: #ff6565 16 | ! 17 | ! Green 18 | *.color2: #b8cc52 19 | *.color10: #eafe84 20 | ! 21 | ! Yellow 22 | *.color3: #e7c547 23 | *.color11: #fff779 24 | ! 25 | ! Blue 26 | *.color4: #36a3d9 27 | *.color12: #68d5ff 28 | ! 29 | ! Magenta 30 | *.color5: #f07178 31 | *.color13: #ffa3aa 32 | ! 33 | ! Cyan 34 | *.color6: #95e6cb 35 | *.color14: #c7fffd 36 | ! 37 | ! White 38 | *.color7: #ffffff 39 | *.color15: #ffffff 40 | ! 41 | ! Bold, Italic, Underline 42 | *.colorBD: #e6e1cf 43 | !*.colorIT: 44 | !*.colorUL: 45 | -------------------------------------------------------------------------------- /tabby-community-color-schemes/schemes/deep: -------------------------------------------------------------------------------- 1 | ! 2 | ! Generated with : 3 | ! XRDB2Xreources.py 4 | ! 5 | *.foreground: #cdcdcd 6 | *.background: #000000 7 | *.cursorColor: #d0d0d0 8 | ! 9 | ! Black 10 | *.color0: #000000 11 | *.color8: #535353 12 | ! 13 | ! Red 14 | *.color1: #d11600 15 | *.color9: #f4152c 16 | ! 17 | ! Green 18 | *.color2: #37c32c 19 | *.color10: #01ea10 20 | ! 21 | ! Yellow 22 | *.color3: #e3c421 23 | *.color11: #ffee1d 24 | ! 25 | ! Blue 26 | *.color4: #5c6bfd 27 | *.color12: #8cb0f8 28 | ! 29 | ! Magenta 30 | *.color5: #dd5be5 31 | *.color13: #e056f5 32 | ! 33 | ! Cyan 34 | *.color6: #6eb4f2 35 | *.color14: #67ecff 36 | ! 37 | ! White 38 | *.color7: #e0e0e0 39 | *.color15: #f4f4f4 40 | ! 41 | ! Bold, Italic, Underline 42 | *.colorBD: #eeeeee 43 | !*.colorIT: 44 | !*.colorUL: 45 | -------------------------------------------------------------------------------- /tabby-electron/package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "tabby-electron", 3 | "version": "1.0.197-nightly.1", 4 | "description": "Electron-specific bindings", 5 | "keywords": [ 6 | "tabby-builtin-plugin" 7 | ], 8 | "main": "dist/index.js", 9 | "typings": "typings/index.d.ts", 10 | "scripts": { 11 | "build": "webpack --progress --color", 12 | "watch": "webpack --progress --color --watch" 13 | }, 14 | "files": [ 15 | "dist", 16 | "typings" 17 | ], 18 | "author": "Tabby Developers", 19 | "license": "MIT", 20 | "peerDependencies": { 21 | "@angular/core": "^15", 22 | "tabby-local": "*" 23 | }, 24 | "devDependencies": { 25 | "electron-promise-ipc": "^2.2.4", 26 | "ps-node": "^0.1.6", 27 | "ssh-config": "^5.0.0", 28 | "tmp-promise": "^3.0.2", 29 | "which": "^3.0.0", 30 | "winston": "^3.3.3" 31 | } 32 | } 33 | -------------------------------------------------------------------------------- /tabby-community-color-schemes/schemes/3024 Day: -------------------------------------------------------------------------------- 1 | ! 2 | ! Generated with : 3 | ! XRDB2Xreources.py 4 | ! 5 | *.foreground: #4a4543 6 | *.background: #f7f7f7 7 | *.cursorColor: #4a4543 8 | ! 9 | ! Black 10 | *.color0: #090300 11 | *.color8: #5c5855 12 | ! 13 | ! Red 14 | *.color1: #db2d20 15 | *.color9: #e8bbd0 16 | ! 17 | ! Green 18 | *.color2: #01a252 19 | *.color10: #3a3432 20 | ! 21 | ! Yellow 22 | *.color3: #fded02 23 | *.color11: #4a4543 24 | ! 25 | ! Blue 26 | *.color4: #01a0e4 27 | *.color12: #807d7c 28 | ! 29 | ! Magenta 30 | *.color5: #a16a94 31 | *.color13: #d6d5d4 32 | ! 33 | ! Cyan 34 | *.color6: #b5e4f4 35 | *.color14: #cdab53 36 | ! 37 | ! White 38 | *.color7: #a5a2a2 39 | *.color15: #f7f7f7 40 | ! 41 | ! Bold, Italic, Underline 42 | *.colorBD: #4a4543 43 | !*.colorIT: 44 | !*.colorUL: 45 | -------------------------------------------------------------------------------- /tabby-community-color-schemes/schemes/3024 Night: -------------------------------------------------------------------------------- 1 | ! 2 | ! Generated with : 3 | ! XRDB2Xreources.py 4 | ! 5 | *.foreground: #a5a2a2 6 | *.background: #090300 7 | *.cursorColor: #a5a2a2 8 | ! 9 | ! Black 10 | *.color0: #090300 11 | *.color8: #5c5855 12 | ! 13 | ! Red 14 | *.color1: #db2d20 15 | *.color9: #e8bbd0 16 | ! 17 | ! Green 18 | *.color2: #01a252 19 | *.color10: #3a3432 20 | ! 21 | ! Yellow 22 | *.color3: #fded02 23 | *.color11: #4a4543 24 | ! 25 | ! Blue 26 | *.color4: #01a0e4 27 | *.color12: #807d7c 28 | ! 29 | ! Magenta 30 | *.color5: #a16a94 31 | *.color13: #d6d5d4 32 | ! 33 | ! Cyan 34 | *.color6: #b5e4f4 35 | *.color14: #cdab53 36 | ! 37 | ! White 38 | *.color7: #a5a2a2 39 | *.color15: #f7f7f7 40 | ! 41 | ! Bold, Italic, Underline 42 | *.colorBD: #a5a2a2 43 | !*.colorIT: 44 | !*.colorUL: 45 | -------------------------------------------------------------------------------- /tabby-community-color-schemes/schemes/Afterglow: -------------------------------------------------------------------------------- 1 | ! 2 | ! Generated with : 3 | ! XRDB2Xreources.py 4 | ! 5 | *.foreground: #d0d0d0 6 | *.background: #212121 7 | *.cursorColor: #d0d0d0 8 | ! 9 | ! Black 10 | *.color0: #151515 11 | *.color8: #505050 12 | ! 13 | ! Red 14 | *.color1: #ac4142 15 | *.color9: #ac4142 16 | ! 17 | ! Green 18 | *.color2: #7e8e50 19 | *.color10: #7e8e50 20 | ! 21 | ! Yellow 22 | *.color3: #e5b567 23 | *.color11: #e5b567 24 | ! 25 | ! Blue 26 | *.color4: #6c99bb 27 | *.color12: #6c99bb 28 | ! 29 | ! Magenta 30 | *.color5: #9f4e85 31 | *.color13: #9f4e85 32 | ! 33 | ! Cyan 34 | *.color6: #7dd6cf 35 | *.color14: #7dd6cf 36 | ! 37 | ! White 38 | *.color7: #d0d0d0 39 | *.color15: #f5f5f5 40 | ! 41 | ! Bold, Italic, Underline 42 | *.colorBD: #d0d0d0 43 | !*.colorIT: 44 | !*.colorUL: 45 | -------------------------------------------------------------------------------- /tabby-community-color-schemes/schemes/AlienBlood: -------------------------------------------------------------------------------- 1 | ! 2 | ! Generated with : 3 | ! XRDB2Xreources.py 4 | ! 5 | *.foreground: #637d75 6 | *.background: #0f1610 7 | *.cursorColor: #73fa91 8 | ! 9 | ! Black 10 | *.color0: #112616 11 | *.color8: #3c4812 12 | ! 13 | ! Red 14 | *.color1: #7f2b27 15 | *.color9: #e08009 16 | ! 17 | ! Green 18 | *.color2: #2f7e25 19 | *.color10: #18e000 20 | ! 21 | ! Yellow 22 | *.color3: #717f24 23 | *.color11: #bde000 24 | ! 25 | ! Blue 26 | *.color4: #2f6a7f 27 | *.color12: #00aae0 28 | ! 29 | ! Magenta 30 | *.color5: #47587f 31 | *.color13: #0058e0 32 | ! 33 | ! Cyan 34 | *.color6: #327f77 35 | *.color14: #00e0c4 36 | ! 37 | ! White 38 | *.color7: #647d75 39 | *.color15: #73fa91 40 | ! 41 | ! Bold, Italic, Underline 42 | *.colorBD: #7afa87 43 | !*.colorIT: 44 | !*.colorUL: 45 | -------------------------------------------------------------------------------- /tabby-community-color-schemes/schemes/Argonaut: -------------------------------------------------------------------------------- 1 | ! 2 | ! Generated with : 3 | ! XRDB2Xreources.py 4 | ! 5 | *.foreground: #fffaf4 6 | *.background: #0e1019 7 | *.cursorColor: #ff0018 8 | ! 9 | ! Black 10 | *.color0: #232323 11 | *.color8: #444444 12 | ! 13 | ! Red 14 | *.color1: #ff000f 15 | *.color9: #ff2740 16 | ! 17 | ! Green 18 | *.color2: #8ce10b 19 | *.color10: #abe15b 20 | ! 21 | ! Yellow 22 | *.color3: #ffb900 23 | *.color11: #ffd242 24 | ! 25 | ! Blue 26 | *.color4: #008df8 27 | *.color12: #0092ff 28 | ! 29 | ! Magenta 30 | *.color5: #6d43a6 31 | *.color13: #9a5feb 32 | ! 33 | ! Cyan 34 | *.color6: #00d8eb 35 | *.color14: #67fff0 36 | ! 37 | ! White 38 | *.color7: #ffffff 39 | *.color15: #ffffff 40 | ! 41 | ! Bold, Italic, Underline 42 | *.colorBD: #9e9c9a 43 | !*.colorIT: 44 | !*.colorUL: 45 | -------------------------------------------------------------------------------- /tabby-community-color-schemes/schemes/Arthur: -------------------------------------------------------------------------------- 1 | ! 2 | ! Generated with : 3 | ! XRDB2Xreources.py 4 | ! 5 | *.foreground: #ddeedd 6 | *.background: #1c1c1c 7 | *.cursorColor: #e2bbef 8 | ! 9 | ! Black 10 | *.color0: #3d352a 11 | *.color8: #554444 12 | ! 13 | ! Red 14 | *.color1: #cd5c5c 15 | *.color9: #cc5533 16 | ! 17 | ! Green 18 | *.color2: #86af80 19 | *.color10: #88aa22 20 | ! 21 | ! Yellow 22 | *.color3: #e8ae5b 23 | *.color11: #ffa75d 24 | ! 25 | ! Blue 26 | *.color4: #6495ed 27 | *.color12: #87ceeb 28 | ! 29 | ! Magenta 30 | *.color5: #deb887 31 | *.color13: #996600 32 | ! 33 | ! Cyan 34 | *.color6: #b0c4de 35 | *.color14: #b0c4de 36 | ! 37 | ! White 38 | *.color7: #bbaa99 39 | *.color15: #ddccbb 40 | ! 41 | ! Bold, Italic, Underline 42 | *.colorBD: #ffffff 43 | !*.colorIT: 44 | !*.colorUL: 45 | -------------------------------------------------------------------------------- /tabby-community-color-schemes/schemes/Batman: -------------------------------------------------------------------------------- 1 | ! 2 | ! Generated with : 3 | ! XRDB2Xreources.py 4 | ! 5 | *.foreground: #6f6f6f 6 | *.background: #1b1d1e 7 | *.cursorColor: #fcef0c 8 | ! 9 | ! Black 10 | *.color0: #1b1d1e 11 | *.color8: #505354 12 | ! 13 | ! Red 14 | *.color1: #e6dc44 15 | *.color9: #fff78e 16 | ! 17 | ! Green 18 | *.color2: #c8be46 19 | *.color10: #fff27d 20 | ! 21 | ! Yellow 22 | *.color3: #f4fd22 23 | *.color11: #feed6c 24 | ! 25 | ! Blue 26 | *.color4: #737174 27 | *.color12: #919495 28 | ! 29 | ! Magenta 30 | *.color5: #747271 31 | *.color13: #9a9a9d 32 | ! 33 | ! Cyan 34 | *.color6: #62605f 35 | *.color14: #a3a3a6 36 | ! 37 | ! White 38 | *.color7: #c6c5bf 39 | *.color15: #dadbd6 40 | ! 41 | ! Bold, Italic, Underline 42 | *.colorBD: #ffffff 43 | !*.colorIT: 44 | !*.colorUL: 45 | -------------------------------------------------------------------------------- /tabby-community-color-schemes/schemes/Borland: -------------------------------------------------------------------------------- 1 | ! 2 | ! Generated with : 3 | ! XRDB2Xreources.py 4 | ! 5 | *.foreground: #ffff4e 6 | *.background: #0000a4 7 | *.cursorColor: #ffa560 8 | ! 9 | ! Black 10 | *.color0: #4f4f4f 11 | *.color8: #7c7c7c 12 | ! 13 | ! Red 14 | *.color1: #ff6c60 15 | *.color9: #ffb6b0 16 | ! 17 | ! Green 18 | *.color2: #a8ff60 19 | *.color10: #ceffac 20 | ! 21 | ! Yellow 22 | *.color3: #ffffb6 23 | *.color11: #ffffcc 24 | ! 25 | ! Blue 26 | *.color4: #96cbfe 27 | *.color12: #b5dcff 28 | ! 29 | ! Magenta 30 | *.color5: #ff73fd 31 | *.color13: #ff9cfe 32 | ! 33 | ! Cyan 34 | *.color6: #c6c5fe 35 | *.color14: #dfdffe 36 | ! 37 | ! White 38 | *.color7: #eeeeee 39 | *.color15: #ffffff 40 | ! 41 | ! Bold, Italic, Underline 42 | *.colorBD: #ffff4e 43 | !*.colorIT: 44 | !*.colorUL: 45 | -------------------------------------------------------------------------------- /tabby-community-color-schemes/schemes/Broadcast: -------------------------------------------------------------------------------- 1 | ! 2 | ! Generated with : 3 | ! XRDB2Xreources.py 4 | ! 5 | *.foreground: #e6e1dc 6 | *.background: #2b2b2b 7 | *.cursorColor: #ffffff 8 | ! 9 | ! Black 10 | *.color0: #000000 11 | *.color8: #323232 12 | ! 13 | ! Red 14 | *.color1: #da4939 15 | *.color9: #ff7b6b 16 | ! 17 | ! Green 18 | *.color2: #519f50 19 | *.color10: #83d182 20 | ! 21 | ! Yellow 22 | *.color3: #ffd24a 23 | *.color11: #ffff7c 24 | ! 25 | ! Blue 26 | *.color4: #6d9cbe 27 | *.color12: #9fcef0 28 | ! 29 | ! Magenta 30 | *.color5: #d0d0ff 31 | *.color13: #ffffff 32 | ! 33 | ! Cyan 34 | *.color6: #6e9cbe 35 | *.color14: #a0cef0 36 | ! 37 | ! White 38 | *.color7: #ffffff 39 | *.color15: #ffffff 40 | ! 41 | ! Bold, Italic, Underline 42 | *.colorBD: #e6e1dc 43 | !*.colorIT: 44 | !*.colorUL: 45 | -------------------------------------------------------------------------------- /tabby-community-color-schemes/schemes/Brogrammer: -------------------------------------------------------------------------------- 1 | ! 2 | ! Generated with : 3 | ! XRDB2Xreources.py 4 | ! 5 | *.foreground: #d6dbe5 6 | *.background: #131313 7 | *.cursorColor: #b9b9b9 8 | ! 9 | ! Black 10 | *.color0: #1f1f1f 11 | *.color8: #d6dbe5 12 | ! 13 | ! Red 14 | *.color1: #f81118 15 | *.color9: #de352e 16 | ! 17 | ! Green 18 | *.color2: #2dc55e 19 | *.color10: #1dd361 20 | ! 21 | ! Yellow 22 | *.color3: #ecba0f 23 | *.color11: #f3bd09 24 | ! 25 | ! Blue 26 | *.color4: #2a84d2 27 | *.color12: #1081d6 28 | ! 29 | ! Magenta 30 | *.color5: #4e5ab7 31 | *.color13: #5350b9 32 | ! 33 | ! Cyan 34 | *.color6: #1081d6 35 | *.color14: #0f7ddb 36 | ! 37 | ! White 38 | *.color7: #d6dbe5 39 | *.color15: #ffffff 40 | ! 41 | ! Bold, Italic, Underline 42 | *.colorBD: #d6dbe5 43 | !*.colorIT: 44 | !*.colorUL: 45 | -------------------------------------------------------------------------------- /tabby-community-color-schemes/schemes/Chalkboard: -------------------------------------------------------------------------------- 1 | ! 2 | ! Generated with : 3 | ! XRDB2Xreources.py 4 | ! 5 | *.foreground: #d9e6f2 6 | *.background: #29262f 7 | *.cursorColor: #d9e6f2 8 | ! 9 | ! Black 10 | *.color0: #000000 11 | *.color8: #323232 12 | ! 13 | ! Red 14 | *.color1: #c37372 15 | *.color9: #dbaaaa 16 | ! 17 | ! Green 18 | *.color2: #72c373 19 | *.color10: #aadbaa 20 | ! 21 | ! Yellow 22 | *.color3: #c2c372 23 | *.color11: #dadbaa 24 | ! 25 | ! Blue 26 | *.color4: #7372c3 27 | *.color12: #aaaadb 28 | ! 29 | ! Magenta 30 | *.color5: #c372c2 31 | *.color13: #dbaada 32 | ! 33 | ! Cyan 34 | *.color6: #72c2c3 35 | *.color14: #aadadb 36 | ! 37 | ! White 38 | *.color7: #d9d9d9 39 | *.color15: #ffffff 40 | ! 41 | ! Bold, Italic, Underline 42 | *.colorBD: #d96f5f 43 | !*.colorIT: 44 | !*.colorUL: 45 | -------------------------------------------------------------------------------- /tabby-community-color-schemes/schemes/Ciapre: -------------------------------------------------------------------------------- 1 | ! 2 | ! Generated with : 3 | ! XRDB2Xreources.py 4 | ! 5 | *.foreground: #aea47a 6 | *.background: #191c27 7 | *.cursorColor: #92805b 8 | ! 9 | ! Black 10 | *.color0: #181818 11 | *.color8: #555555 12 | ! 13 | ! Red 14 | *.color1: #810009 15 | *.color9: #ac3835 16 | ! 17 | ! Green 18 | *.color2: #48513b 19 | *.color10: #a6a75d 20 | ! 21 | ! Yellow 22 | *.color3: #cc8b3f 23 | *.color11: #dcdf7c 24 | ! 25 | ! Blue 26 | *.color4: #576d8c 27 | *.color12: #3097c6 28 | ! 29 | ! Magenta 30 | *.color5: #724d7c 31 | *.color13: #d33061 32 | ! 33 | ! Cyan 34 | *.color6: #5c4f4b 35 | *.color14: #f3dbb2 36 | ! 37 | ! White 38 | *.color7: #aea47f 39 | *.color15: #f4f4f4 40 | ! 41 | ! Bold, Italic, Underline 42 | *.colorBD: #f4f4f4 43 | !*.colorIT: 44 | !*.colorUL: 45 | -------------------------------------------------------------------------------- /tabby-community-color-schemes/schemes/Cobalt2: -------------------------------------------------------------------------------- 1 | ! 2 | ! Generated with : 3 | ! XRDB2Xreources.py 4 | ! 5 | *.foreground: #ffffff 6 | *.background: #132738 7 | *.cursorColor: #f0cc09 8 | ! 9 | ! Black 10 | *.color0: #000000 11 | *.color8: #555555 12 | ! 13 | ! Red 14 | *.color1: #ff0000 15 | *.color9: #f40e17 16 | ! 17 | ! Green 18 | *.color2: #38de21 19 | *.color10: #3bd01d 20 | ! 21 | ! Yellow 22 | *.color3: #ffe50a 23 | *.color11: #edc809 24 | ! 25 | ! Blue 26 | *.color4: #1460d2 27 | *.color12: #5555ff 28 | ! 29 | ! Magenta 30 | *.color5: #ff005d 31 | *.color13: #ff55ff 32 | ! 33 | ! Cyan 34 | *.color6: #00bbbb 35 | *.color14: #6ae3fa 36 | ! 37 | ! White 38 | *.color7: #bbbbbb 39 | *.color15: #ffffff 40 | ! 41 | ! Bold, Italic, Underline 42 | *.colorBD: #f7fcff 43 | !*.colorIT: 44 | !*.colorUL: 45 | -------------------------------------------------------------------------------- /tabby-community-color-schemes/schemes/Darkside: -------------------------------------------------------------------------------- 1 | ! 2 | ! Generated with : 3 | ! XRDB2Xreources.py 4 | ! 5 | *.foreground: #bababa 6 | *.background: #222324 7 | *.cursorColor: #bbbbbb 8 | ! 9 | ! Black 10 | *.color0: #000000 11 | *.color8: #000000 12 | ! 13 | ! Red 14 | *.color1: #e8341c 15 | *.color9: #e05a4f 16 | ! 17 | ! Green 18 | *.color2: #68c256 19 | *.color10: #77b869 20 | ! 21 | ! Yellow 22 | *.color3: #f2d42c 23 | *.color11: #efd64b 24 | ! 25 | ! Blue 26 | *.color4: #1c98e8 27 | *.color12: #387cd3 28 | ! 29 | ! Magenta 30 | *.color5: #8e69c9 31 | *.color13: #957bbe 32 | ! 33 | ! Cyan 34 | *.color6: #1c98e8 35 | *.color14: #3d97e2 36 | ! 37 | ! White 38 | *.color7: #bababa 39 | *.color15: #bababa 40 | ! 41 | ! Bold, Italic, Underline 42 | *.colorBD: #ffffff 43 | !*.colorIT: 44 | !*.colorUL: 45 | -------------------------------------------------------------------------------- /tabby-community-color-schemes/schemes/Desert: -------------------------------------------------------------------------------- 1 | ! 2 | ! Generated with : 3 | ! XRDB2Xreources.py 4 | ! 5 | *.foreground: #ffffff 6 | *.background: #333333 7 | *.cursorColor: #00ff00 8 | ! 9 | ! Black 10 | *.color0: #4d4d4d 11 | *.color8: #555555 12 | ! 13 | ! Red 14 | *.color1: #ff2b2b 15 | *.color9: #ff5555 16 | ! 17 | ! Green 18 | *.color2: #98fb98 19 | *.color10: #55ff55 20 | ! 21 | ! Yellow 22 | *.color3: #f0e68c 23 | *.color11: #ffff55 24 | ! 25 | ! Blue 26 | *.color4: #cd853f 27 | *.color12: #87ceff 28 | ! 29 | ! Magenta 30 | *.color5: #ffdead 31 | *.color13: #ff55ff 32 | ! 33 | ! Cyan 34 | *.color6: #ffa0a0 35 | *.color14: #ffd700 36 | ! 37 | ! White 38 | *.color7: #f5deb3 39 | *.color15: #ffffff 40 | ! 41 | ! Bold, Italic, Underline 42 | *.colorBD: #ffd700 43 | !*.colorIT: 44 | !*.colorUL: 45 | -------------------------------------------------------------------------------- /tabby-community-color-schemes/schemes/DotGov: -------------------------------------------------------------------------------- 1 | ! 2 | ! Generated with : 3 | ! XRDB2Xreources.py 4 | ! 5 | *.foreground: #ebebeb 6 | *.background: #262c35 7 | *.cursorColor: #d9002f 8 | ! 9 | ! Black 10 | *.color0: #191919 11 | *.color8: #191919 12 | ! 13 | ! Red 14 | *.color1: #bf091d 15 | *.color9: #bf091d 16 | ! 17 | ! Green 18 | *.color2: #3d9751 19 | *.color10: #3d9751 20 | ! 21 | ! Yellow 22 | *.color3: #f6bb34 23 | *.color11: #f6bb34 24 | ! 25 | ! Blue 26 | *.color4: #17b2e0 27 | *.color12: #17b2e0 28 | ! 29 | ! Magenta 30 | *.color5: #7830b0 31 | *.color13: #7830b0 32 | ! 33 | ! Cyan 34 | *.color6: #8bd2ed 35 | *.color14: #8bd2ed 36 | ! 37 | ! White 38 | *.color7: #ffffff 39 | *.color15: #ffffff 40 | ! 41 | ! Bold, Italic, Underline 42 | *.colorBD: #fbab19 43 | !*.colorIT: 44 | !*.colorUL: 45 | -------------------------------------------------------------------------------- /tabby-community-color-schemes/schemes/Dracula: -------------------------------------------------------------------------------- 1 | ! 2 | ! Generated with : 3 | ! XRDB2Xreources.py 4 | ! 5 | *.foreground: #f8f8f2 6 | *.background: #1e1f29 7 | *.cursorColor: #bbbbbb 8 | ! 9 | ! Black 10 | *.color0: #000000 11 | *.color8: #555555 12 | ! 13 | ! Red 14 | *.color1: #ff5555 15 | *.color9: #ff5555 16 | ! 17 | ! Green 18 | *.color2: #50fa7b 19 | *.color10: #50fa7b 20 | ! 21 | ! Yellow 22 | *.color3: #f1fa8c 23 | *.color11: #f1fa8c 24 | ! 25 | ! Blue 26 | *.color4: #bd93f9 27 | *.color12: #bd93f9 28 | ! 29 | ! Magenta 30 | *.color5: #ff79c6 31 | *.color13: #ff79c6 32 | ! 33 | ! Cyan 34 | *.color6: #8be9fd 35 | *.color14: #8be9fd 36 | ! 37 | ! White 38 | *.color7: #bbbbbb 39 | *.color15: #ffffff 40 | ! 41 | ! Bold, Italic, Underline 42 | *.colorBD: #ffffff 43 | !*.colorIT: 44 | !*.colorUL: 45 | -------------------------------------------------------------------------------- /tabby-community-color-schemes/schemes/Earthsong: -------------------------------------------------------------------------------- 1 | ! 2 | ! Generated with : 3 | ! XRDB2Xreources.py 4 | ! 5 | *.foreground: #e5c7a9 6 | *.background: #292520 7 | *.cursorColor: #f6f7ec 8 | ! 9 | ! Black 10 | *.color0: #121418 11 | *.color8: #675f54 12 | ! 13 | ! Red 14 | *.color1: #c94234 15 | *.color9: #ff645a 16 | ! 17 | ! Green 18 | *.color2: #85c54c 19 | *.color10: #98e036 20 | ! 21 | ! Yellow 22 | *.color3: #f5ae2e 23 | *.color11: #e0d561 24 | ! 25 | ! Blue 26 | *.color4: #1398b9 27 | *.color12: #5fdaff 28 | ! 29 | ! Magenta 30 | *.color5: #d0633d 31 | *.color13: #ff9269 32 | ! 33 | ! Cyan 34 | *.color6: #509552 35 | *.color14: #84f088 36 | ! 37 | ! White 38 | *.color7: #e5c6aa 39 | *.color15: #f6f7ec 40 | ! 41 | ! Bold, Italic, Underline 42 | *.colorBD: #f6f7ec 43 | !*.colorIT: 44 | !*.colorUL: 45 | -------------------------------------------------------------------------------- /tabby-community-color-schemes/schemes/Elemental: -------------------------------------------------------------------------------- 1 | ! 2 | ! Generated with : 3 | ! XRDB2Xreources.py 4 | ! 5 | *.foreground: #807a74 6 | *.background: #22211d 7 | *.cursorColor: #facb80 8 | ! 9 | ! Black 10 | *.color0: #3c3c30 11 | *.color8: #555445 12 | ! 13 | ! Red 14 | *.color1: #98290f 15 | *.color9: #e0502a 16 | ! 17 | ! Green 18 | *.color2: #479a43 19 | *.color10: #61e070 20 | ! 21 | ! Yellow 22 | *.color3: #7f7111 23 | *.color11: #d69927 24 | ! 25 | ! Blue 26 | *.color4: #497f7d 27 | *.color12: #79d9d9 28 | ! 29 | ! Magenta 30 | *.color5: #7f4e2f 31 | *.color13: #cd7c54 32 | ! 33 | ! Cyan 34 | *.color6: #387f58 35 | *.color14: #59d599 36 | ! 37 | ! White 38 | *.color7: #807974 39 | *.color15: #fff1e9 40 | ! 41 | ! Bold, Italic, Underline 42 | *.colorBD: #fae679 43 | !*.colorIT: 44 | !*.colorUL: 45 | -------------------------------------------------------------------------------- /tabby-community-color-schemes/schemes/Elementary: -------------------------------------------------------------------------------- 1 | ! 2 | ! Generated with : 3 | ! XRDB2Xreources.py 4 | ! 5 | *.foreground: #efefef 6 | *.background: #181818 7 | *.cursorColor: #bbbbbb 8 | ! 9 | ! Black 10 | *.color0: #242424 11 | *.color8: #4b4b4b 12 | ! 13 | ! Red 14 | *.color1: #d71c15 15 | *.color9: #fc1c18 16 | ! 17 | ! Green 18 | *.color2: #5aa513 19 | *.color10: #6bc219 20 | ! 21 | ! Yellow 22 | *.color3: #fdb40c 23 | *.color11: #fec80e 24 | ! 25 | ! Blue 26 | *.color4: #063b8c 27 | *.color12: #0955ff 28 | ! 29 | ! Magenta 30 | *.color5: #e40038 31 | *.color13: #fb0050 32 | ! 33 | ! Cyan 34 | *.color6: #2595e1 35 | *.color14: #3ea8fc 36 | ! 37 | ! White 38 | *.color7: #efefef 39 | *.color15: #8c00ec 40 | ! 41 | ! Bold, Italic, Underline 42 | *.colorBD: #ffffff 43 | !*.colorIT: 44 | !*.colorUL: 45 | -------------------------------------------------------------------------------- /tabby-community-color-schemes/schemes/Espresso: -------------------------------------------------------------------------------- 1 | ! 2 | ! Generated with : 3 | ! XRDB2Xreources.py 4 | ! 5 | *.foreground: #ffffff 6 | *.background: #323232 7 | *.cursorColor: #d6d6d6 8 | ! 9 | ! Black 10 | *.color0: #353535 11 | *.color8: #535353 12 | ! 13 | ! Red 14 | *.color1: #d25252 15 | *.color9: #f00c0c 16 | ! 17 | ! Green 18 | *.color2: #a5c261 19 | *.color10: #c2e075 20 | ! 21 | ! Yellow 22 | *.color3: #ffc66d 23 | *.color11: #e1e48b 24 | ! 25 | ! Blue 26 | *.color4: #6c99bb 27 | *.color12: #8ab7d9 28 | ! 29 | ! Magenta 30 | *.color5: #d197d9 31 | *.color13: #efb5f7 32 | ! 33 | ! Cyan 34 | *.color6: #bed6ff 35 | *.color14: #dcf4ff 36 | ! 37 | ! White 38 | *.color7: #eeeeec 39 | *.color15: #ffffff 40 | ! 41 | ! Bold, Italic, Underline 42 | *.colorBD: #ffffff 43 | !*.colorIT: 44 | !*.colorUL: 45 | -------------------------------------------------------------------------------- /tabby-community-color-schemes/schemes/Fideloper: -------------------------------------------------------------------------------- 1 | ! 2 | ! Generated with : 3 | ! XRDB2Xreources.py 4 | ! 5 | *.foreground: #dbdae0 6 | *.background: #292f33 7 | *.cursorColor: #d4605a 8 | ! 9 | ! Black 10 | *.color0: #292f33 11 | *.color8: #092028 12 | ! 13 | ! Red 14 | *.color1: #cb1e2d 15 | *.color9: #d4605a 16 | ! 17 | ! Green 18 | *.color2: #edb8ac 19 | *.color10: #d4605a 20 | ! 21 | ! Yellow 22 | *.color3: #b7ab9b 23 | *.color11: #a86671 24 | ! 25 | ! Blue 26 | *.color4: #2e78c2 27 | *.color12: #7c85c4 28 | ! 29 | ! Magenta 30 | *.color5: #c0236f 31 | *.color13: #5c5db2 32 | ! 33 | ! Cyan 34 | *.color6: #309186 35 | *.color14: #819090 36 | ! 37 | ! White 38 | *.color7: #eae3ce 39 | *.color15: #fcf4df 40 | ! 41 | ! Bold, Italic, Underline 42 | *.colorBD: #6b7c7c 43 | !*.colorIT: 44 | !*.colorUL: 45 | -------------------------------------------------------------------------------- /tabby-community-color-schemes/schemes/FirefoxDev: -------------------------------------------------------------------------------- 1 | ! 2 | ! Generated with : 3 | ! XRDB2Xreources.py 4 | ! 5 | *.foreground: #7c8fa4 6 | *.background: #0e1011 7 | *.cursorColor: #708284 8 | ! 9 | ! Black 10 | *.color0: #002831 11 | *.color8: #001e27 12 | ! 13 | ! Red 14 | *.color1: #e63853 15 | *.color9: #e1003f 16 | ! 17 | ! Green 18 | *.color2: #5eb83c 19 | *.color10: #1d9000 20 | ! 21 | ! Yellow 22 | *.color3: #a57706 23 | *.color11: #cd9409 24 | ! 25 | ! Blue 26 | *.color4: #359ddf 27 | *.color12: #006fc0 28 | ! 29 | ! Magenta 30 | *.color5: #d75cff 31 | *.color13: #a200da 32 | ! 33 | ! Cyan 34 | *.color6: #4b73a2 35 | *.color14: #005794 36 | ! 37 | ! White 38 | *.color7: #dcdcdc 39 | *.color15: #e2e2e2 40 | ! 41 | ! Bold, Italic, Underline 42 | *.colorBD: #a7acb2 43 | !*.colorIT: 44 | !*.colorUL: 45 | -------------------------------------------------------------------------------- /tabby-community-color-schemes/schemes/Firewatch: -------------------------------------------------------------------------------- 1 | ! 2 | ! Generated with : 3 | ! XRDB2Xreources.py 4 | ! 5 | *.foreground: #9ba2b2 6 | *.background: #1e2027 7 | *.cursorColor: #f6f7ec 8 | ! 9 | ! Black 10 | *.color0: #585f6d 11 | *.color8: #585f6d 12 | ! 13 | ! Red 14 | *.color1: #d95360 15 | *.color9: #d95360 16 | ! 17 | ! Green 18 | *.color2: #5ab977 19 | *.color10: #5ab977 20 | ! 21 | ! Yellow 22 | *.color3: #dfb563 23 | *.color11: #dfb563 24 | ! 25 | ! Blue 26 | *.color4: #4d89c4 27 | *.color12: #4c89c5 28 | ! 29 | ! Magenta 30 | *.color5: #d55119 31 | *.color13: #d55119 32 | ! 33 | ! Cyan 34 | *.color6: #44a8b6 35 | *.color14: #44a8b6 36 | ! 37 | ! White 38 | *.color7: #e6e5ff 39 | *.color15: #e6e5ff 40 | ! 41 | ! Bold, Italic, Underline 42 | *.colorBD: #e6e5ff 43 | !*.colorIT: 44 | !*.colorUL: 45 | -------------------------------------------------------------------------------- /tabby-community-color-schemes/schemes/FishTank: -------------------------------------------------------------------------------- 1 | ! 2 | ! Generated with : 3 | ! XRDB2Xreources.py 4 | ! 5 | *.foreground: #ecf0fe 6 | *.background: #232537 7 | *.cursorColor: #fecd5e 8 | ! 9 | ! Black 10 | *.color0: #03073c 11 | *.color8: #6c5b30 12 | ! 13 | ! Red 14 | *.color1: #c6004a 15 | *.color9: #da4b8a 16 | ! 17 | ! Green 18 | *.color2: #acf157 19 | *.color10: #dbffa9 20 | ! 21 | ! Yellow 22 | *.color3: #fecd5e 23 | *.color11: #fee6a9 24 | ! 25 | ! Blue 26 | *.color4: #525fb8 27 | *.color12: #b2befa 28 | ! 29 | ! Magenta 30 | *.color5: #986f82 31 | *.color13: #fda5cd 32 | ! 33 | ! Cyan 34 | *.color6: #968763 35 | *.color14: #a5bd86 36 | ! 37 | ! White 38 | *.color7: #ecf0fc 39 | *.color15: #f6ffec 40 | ! 41 | ! Bold, Italic, Underline 42 | *.colorBD: #f6ffeb 43 | !*.colorIT: 44 | !*.colorUL: 45 | -------------------------------------------------------------------------------- /tabby-community-color-schemes/schemes/Flatland: -------------------------------------------------------------------------------- 1 | ! 2 | ! Generated with : 3 | ! XRDB2Xreources.py 4 | ! 5 | *.foreground: #b8dbef 6 | *.background: #1d1f21 7 | *.cursorColor: #708284 8 | ! 9 | ! Black 10 | *.color0: #1d1d19 11 | *.color8: #1d1d19 12 | ! 13 | ! Red 14 | *.color1: #f18339 15 | *.color9: #d22a24 16 | ! 17 | ! Green 18 | *.color2: #9fd364 19 | *.color10: #a7d42c 20 | ! 21 | ! Yellow 22 | *.color3: #f4ef6d 23 | *.color11: #ff8949 24 | ! 25 | ! Blue 26 | *.color4: #5096be 27 | *.color12: #61b9d0 28 | ! 29 | ! Magenta 30 | *.color5: #695abc 31 | *.color13: #695abc 32 | ! 33 | ! Cyan 34 | *.color6: #d63865 35 | *.color14: #d63865 36 | ! 37 | ! White 38 | *.color7: #ffffff 39 | *.color15: #ffffff 40 | ! 41 | ! Bold, Italic, Underline 42 | *.colorBD: #ffffff 43 | !*.colorIT: 44 | !*.colorUL: 45 | -------------------------------------------------------------------------------- /tabby-community-color-schemes/schemes/Floraverse: -------------------------------------------------------------------------------- 1 | ! 2 | ! Generated with : 3 | ! XRDB2Xreources.py 4 | ! 5 | *.foreground: #dbd1b9 6 | *.background: #0e0d15 7 | *.cursorColor: #bbbbbb 8 | ! 9 | ! Black 10 | *.color0: #08002e 11 | *.color8: #331e4d 12 | ! 13 | ! Red 14 | *.color1: #64002c 15 | *.color9: #d02063 16 | ! 17 | ! Green 18 | *.color2: #5d731a 19 | *.color10: #b4ce59 20 | ! 21 | ! Yellow 22 | *.color3: #cd751c 23 | *.color11: #fac357 24 | ! 25 | ! Blue 26 | *.color4: #1d6da1 27 | *.color12: #40a4cf 28 | ! 29 | ! Magenta 30 | *.color5: #b7077e 31 | *.color13: #f12aae 32 | ! 33 | ! Cyan 34 | *.color6: #42a38c 35 | *.color14: #62caa8 36 | ! 37 | ! White 38 | *.color7: #f3e0b8 39 | *.color15: #fff5db 40 | ! 41 | ! Bold, Italic, Underline 42 | *.colorBD: #ffffff 43 | !*.colorIT: 44 | !*.colorUL: 45 | -------------------------------------------------------------------------------- /tabby-community-color-schemes/schemes/ForestBlue: -------------------------------------------------------------------------------- 1 | ! 2 | ! Generated with : 3 | ! XRDB2Xreources.py 4 | ! 5 | *.foreground: #e2d8cd 6 | *.background: #051519 7 | *.cursorColor: #9e9ecb 8 | ! 9 | ! Black 10 | *.color0: #333333 11 | *.color8: #3d3d3d 12 | ! 13 | ! Red 14 | *.color1: #f8818e 15 | *.color9: #fb3d66 16 | ! 17 | ! Green 18 | *.color2: #92d3a2 19 | *.color10: #6bb48d 20 | ! 21 | ! Yellow 22 | *.color3: #1a8e63 23 | *.color11: #30c85a 24 | ! 25 | ! Blue 26 | *.color4: #8ed0ce 27 | *.color12: #39a7a2 28 | ! 29 | ! Magenta 30 | *.color5: #5e468c 31 | *.color13: #7e62b3 32 | ! 33 | ! Cyan 34 | *.color6: #31658c 35 | *.color14: #6096bf 36 | ! 37 | ! White 38 | *.color7: #e2d8cd 39 | *.color15: #e2d8cd 40 | ! 41 | ! Bold, Italic, Underline 42 | *.colorBD: #ffffff 43 | !*.colorIT: 44 | !*.colorUL: 45 | -------------------------------------------------------------------------------- /tabby-community-color-schemes/schemes/FunForrest: -------------------------------------------------------------------------------- 1 | ! 2 | ! Generated with : 3 | ! XRDB2Xreources.py 4 | ! 5 | *.foreground: #dec165 6 | *.background: #251200 7 | *.cursorColor: #e5591c 8 | ! 9 | ! Black 10 | *.color0: #000000 11 | *.color8: #7f6a55 12 | ! 13 | ! Red 14 | *.color1: #d6262b 15 | *.color9: #e55a1c 16 | ! 17 | ! Green 18 | *.color2: #919c00 19 | *.color10: #bfc65a 20 | ! 21 | ! Yellow 22 | *.color3: #be8a13 23 | *.color11: #ffcb1b 24 | ! 25 | ! Blue 26 | *.color4: #4699a3 27 | *.color12: #7cc9cf 28 | ! 29 | ! Magenta 30 | *.color5: #8d4331 31 | *.color13: #d26349 32 | ! 33 | ! Cyan 34 | *.color6: #da8213 35 | *.color14: #e6a96b 36 | ! 37 | ! White 38 | *.color7: #ddc265 39 | *.color15: #ffeaa3 40 | ! 41 | ! Bold, Italic, Underline 42 | *.colorBD: #ffeaa3 43 | !*.colorIT: 44 | !*.colorUL: 45 | -------------------------------------------------------------------------------- /tabby-community-color-schemes/schemes/Galaxy: -------------------------------------------------------------------------------- 1 | ! 2 | ! Generated with : 3 | ! XRDB2Xreources.py 4 | ! 5 | *.foreground: #ffffff 6 | *.background: #1d2837 7 | *.cursorColor: #bbbbbb 8 | ! 9 | ! Black 10 | *.color0: #000000 11 | *.color8: #555555 12 | ! 13 | ! Red 14 | *.color1: #f9555f 15 | *.color9: #fa8c8f 16 | ! 17 | ! Green 18 | *.color2: #21b089 19 | *.color10: #35bb9a 20 | ! 21 | ! Yellow 22 | *.color3: #fef02a 23 | *.color11: #ffff55 24 | ! 25 | ! Blue 26 | *.color4: #589df6 27 | *.color12: #589df6 28 | ! 29 | ! Magenta 30 | *.color5: #944d95 31 | *.color13: #e75699 32 | ! 33 | ! Cyan 34 | *.color6: #1f9ee7 35 | *.color14: #3979bc 36 | ! 37 | ! White 38 | *.color7: #bbbbbb 39 | *.color15: #ffffff 40 | ! 41 | ! Bold, Italic, Underline 42 | *.colorBD: #ffffff 43 | !*.colorIT: 44 | !*.colorUL: 45 | -------------------------------------------------------------------------------- /tabby-community-color-schemes/schemes/Github: -------------------------------------------------------------------------------- 1 | ! 2 | ! Generated with : 3 | ! XRDB2Xreources.py 4 | ! 5 | *.foreground: #3e3e3e 6 | *.background: #f4f4f4 7 | *.cursorColor: #3f3f3f 8 | ! 9 | ! Black 10 | *.color0: #3e3e3e 11 | *.color8: #666666 12 | ! 13 | ! Red 14 | *.color1: #970b16 15 | *.color9: #de0000 16 | ! 17 | ! Green 18 | *.color2: #07962a 19 | *.color10: #87d5a2 20 | ! 21 | ! Yellow 22 | *.color3: #f8eec7 23 | *.color11: #f1d007 24 | ! 25 | ! Blue 26 | *.color4: #003e8a 27 | *.color12: #2e6cba 28 | ! 29 | ! Magenta 30 | *.color5: #e94691 31 | *.color13: #ffa29f 32 | ! 33 | ! Cyan 34 | *.color6: #89d1ec 35 | *.color14: #1cfafe 36 | ! 37 | ! White 38 | *.color7: #ffffff 39 | *.color15: #ffffff 40 | ! 41 | ! Bold, Italic, Underline 42 | *.colorBD: #c95500 43 | !*.colorIT: 44 | !*.colorUL: 45 | -------------------------------------------------------------------------------- /tabby-community-color-schemes/schemes/Glacier: -------------------------------------------------------------------------------- 1 | ! 2 | ! Generated with : 3 | ! XRDB2Xreources.py 4 | ! 5 | *.foreground: #ffffff 6 | *.background: #0c1115 7 | *.cursorColor: #6c6c6c 8 | ! 9 | ! Black 10 | *.color0: #2e343c 11 | *.color8: #404a55 12 | ! 13 | ! Red 14 | *.color1: #bd0f2f 15 | *.color9: #bd0f2f 16 | ! 17 | ! Green 18 | *.color2: #35a770 19 | *.color10: #49e998 20 | ! 21 | ! Yellow 22 | *.color3: #fb9435 23 | *.color11: #fddf6e 24 | ! 25 | ! Blue 26 | *.color4: #1f5872 27 | *.color12: #2a8bc1 28 | ! 29 | ! Magenta 30 | *.color5: #bd2523 31 | *.color13: #ea4727 32 | ! 33 | ! Cyan 34 | *.color6: #778397 35 | *.color14: #a0b6d3 36 | ! 37 | ! White 38 | *.color7: #ffffff 39 | *.color15: #ffffff 40 | ! 41 | ! Bold, Italic, Underline 42 | *.colorBD: #ffffff 43 | !*.colorIT: 44 | !*.colorUL: 45 | -------------------------------------------------------------------------------- /tabby-community-color-schemes/schemes/Hardcore: -------------------------------------------------------------------------------- 1 | ! 2 | ! Generated with : 3 | ! XRDB2Xreources.py 4 | ! 5 | *.foreground: #a0a0a0 6 | *.background: #121212 7 | *.cursorColor: #bbbbbb 8 | ! 9 | ! Black 10 | *.color0: #1b1d1e 11 | *.color8: #505354 12 | ! 13 | ! Red 14 | *.color1: #f92672 15 | *.color9: #ff669d 16 | ! 17 | ! Green 18 | *.color2: #a6e22e 19 | *.color10: #beed5f 20 | ! 21 | ! Yellow 22 | *.color3: #fd971f 23 | *.color11: #e6db74 24 | ! 25 | ! Blue 26 | *.color4: #66d9ef 27 | *.color12: #66d9ef 28 | ! 29 | ! Magenta 30 | *.color5: #9e6ffe 31 | *.color13: #9e6ffe 32 | ! 33 | ! Cyan 34 | *.color6: #5e7175 35 | *.color14: #a3babf 36 | ! 37 | ! White 38 | *.color7: #ccccc6 39 | *.color15: #f8f8f2 40 | ! 41 | ! Bold, Italic, Underline 42 | *.colorBD: #ffffff 43 | !*.colorIT: 44 | !*.colorUL: 45 | -------------------------------------------------------------------------------- /tabby-community-color-schemes/schemes/Harper: -------------------------------------------------------------------------------- 1 | ! 2 | ! Generated with : 3 | ! XRDB2Xreources.py 4 | ! 5 | *.foreground: #a8a49d 6 | *.background: #010101 7 | *.cursorColor: #a8a49d 8 | ! 9 | ! Black 10 | *.color0: #010101 11 | *.color8: #726e6a 12 | ! 13 | ! Red 14 | *.color1: #f8b63f 15 | *.color9: #f8b63f 16 | ! 17 | ! Green 18 | *.color2: #7fb5e1 19 | *.color10: #7fb5e1 20 | ! 21 | ! Yellow 22 | *.color3: #d6da25 23 | *.color11: #d6da25 24 | ! 25 | ! Blue 26 | *.color4: #489e48 27 | *.color12: #489e48 28 | ! 29 | ! Magenta 30 | *.color5: #b296c6 31 | *.color13: #b296c6 32 | ! 33 | ! Cyan 34 | *.color6: #f5bfd7 35 | *.color14: #f5bfd7 36 | ! 37 | ! White 38 | *.color7: #a8a49d 39 | *.color15: #fefbea 40 | ! 41 | ! Bold, Italic, Underline 42 | *.colorBD: #a8a49d 43 | !*.colorIT: 44 | !*.colorUL: 45 | -------------------------------------------------------------------------------- /tabby-community-color-schemes/schemes/Highway: -------------------------------------------------------------------------------- 1 | ! 2 | ! Generated with : 3 | ! XRDB2Xreources.py 4 | ! 5 | *.foreground: #ededed 6 | *.background: #222225 7 | *.cursorColor: #e0d9b9 8 | ! 9 | ! Black 10 | *.color0: #000000 11 | *.color8: #5d504a 12 | ! 13 | ! Red 14 | *.color1: #d00e18 15 | *.color9: #f07e18 16 | ! 17 | ! Green 18 | *.color2: #138034 19 | *.color10: #b1d130 20 | ! 21 | ! Yellow 22 | *.color3: #ffcb3e 23 | *.color11: #fff120 24 | ! 25 | ! Blue 26 | *.color4: #006bb3 27 | *.color12: #4fc2fd 28 | ! 29 | ! Magenta 30 | *.color5: #6b2775 31 | *.color13: #de0071 32 | ! 33 | ! Cyan 34 | *.color6: #384564 35 | *.color14: #5d504a 36 | ! 37 | ! White 38 | *.color7: #ededed 39 | *.color15: #ffffff 40 | ! 41 | ! Bold, Italic, Underline 42 | *.colorBD: #fff8d8 43 | !*.colorIT: 44 | !*.colorUL: 45 | -------------------------------------------------------------------------------- /tabby-community-color-schemes/schemes/Homebrew: -------------------------------------------------------------------------------- 1 | ! 2 | ! Generated with : 3 | ! XRDB2Xreources.py 4 | ! 5 | *.foreground: #00ff00 6 | *.background: #000000 7 | *.cursorColor: #23ff18 8 | ! 9 | ! Black 10 | *.color0: #000000 11 | *.color8: #666666 12 | ! 13 | ! Red 14 | *.color1: #990000 15 | *.color9: #e50000 16 | ! 17 | ! Green 18 | *.color2: #00a600 19 | *.color10: #00d900 20 | ! 21 | ! Yellow 22 | *.color3: #999900 23 | *.color11: #e5e500 24 | ! 25 | ! Blue 26 | *.color4: #0000b2 27 | *.color12: #0000ff 28 | ! 29 | ! Magenta 30 | *.color5: #b200b2 31 | *.color13: #e500e5 32 | ! 33 | ! Cyan 34 | *.color6: #00a6b2 35 | *.color14: #00e5e5 36 | ! 37 | ! White 38 | *.color7: #bfbfbf 39 | *.color15: #e5e5e5 40 | ! 41 | ! Bold, Italic, Underline 42 | *.colorBD: #00ff00 43 | !*.colorIT: 44 | !*.colorUL: 45 | -------------------------------------------------------------------------------- /tabby-community-color-schemes/schemes/Hurtado: -------------------------------------------------------------------------------- 1 | ! 2 | ! Generated with : 3 | ! XRDB2Xreources.py 4 | ! 5 | *.foreground: #dbdbdb 6 | *.background: #000000 7 | *.cursorColor: #bbbbbb 8 | ! 9 | ! Black 10 | *.color0: #575757 11 | *.color8: #262626 12 | ! 13 | ! Red 14 | *.color1: #ff1b00 15 | *.color9: #d51d00 16 | ! 17 | ! Green 18 | *.color2: #a5e055 19 | *.color10: #a5df55 20 | ! 21 | ! Yellow 22 | *.color3: #fbe74a 23 | *.color11: #fbe84a 24 | ! 25 | ! Blue 26 | *.color4: #496487 27 | *.color12: #89beff 28 | ! 29 | ! Magenta 30 | *.color5: #fd5ff1 31 | *.color13: #c001c1 32 | ! 33 | ! Cyan 34 | *.color6: #86e9fe 35 | *.color14: #86eafe 36 | ! 37 | ! White 38 | *.color7: #cbcccb 39 | *.color15: #dbdbdb 40 | ! 41 | ! Bold, Italic, Underline 42 | *.colorBD: #ffffff 43 | !*.colorIT: 44 | !*.colorUL: 45 | -------------------------------------------------------------------------------- /tabby-community-color-schemes/schemes/Hybrid: -------------------------------------------------------------------------------- 1 | ! 2 | ! Generated with : 3 | ! XRDB2Xreources.py 4 | ! 5 | *.foreground: #b7bcba 6 | *.background: #161719 7 | *.cursorColor: #b7bcba 8 | ! 9 | ! Black 10 | *.color0: #2a2e33 11 | *.color8: #1d1f22 12 | ! 13 | ! Red 14 | *.color1: #b84d51 15 | *.color9: #8d2e32 16 | ! 17 | ! Green 18 | *.color2: #b3bf5a 19 | *.color10: #798431 20 | ! 21 | ! Yellow 22 | *.color3: #e4b55e 23 | *.color11: #e58a50 24 | ! 25 | ! Blue 26 | *.color4: #6e90b0 27 | *.color12: #4b6b88 28 | ! 29 | ! Magenta 30 | *.color5: #a17eac 31 | *.color13: #6e5079 32 | ! 33 | ! Cyan 34 | *.color6: #7fbfb4 35 | *.color14: #4d7b74 36 | ! 37 | ! White 38 | *.color7: #b5b9b6 39 | *.color15: #5a626a 40 | ! 41 | ! Bold, Italic, Underline 42 | *.colorBD: #b7bcba 43 | !*.colorIT: 44 | !*.colorUL: 45 | -------------------------------------------------------------------------------- /tabby-community-color-schemes/schemes/IR_Black: -------------------------------------------------------------------------------- 1 | ! 2 | ! Generated with : 3 | ! XRDB2Xreources.py 4 | ! 5 | *.foreground: #f1f1f1 6 | *.background: #000000 7 | *.cursorColor: #808080 8 | ! 9 | ! Black 10 | *.color0: #4f4f4f 11 | *.color8: #7b7b7b 12 | ! 13 | ! Red 14 | *.color1: #fa6c60 15 | *.color9: #fcb6b0 16 | ! 17 | ! Green 18 | *.color2: #a8ff60 19 | *.color10: #cfffab 20 | ! 21 | ! Yellow 22 | *.color3: #fffeb7 23 | *.color11: #ffffcc 24 | ! 25 | ! Blue 26 | *.color4: #96cafe 27 | *.color12: #b5dcff 28 | ! 29 | ! Magenta 30 | *.color5: #fa73fd 31 | *.color13: #fb9cfe 32 | ! 33 | ! Cyan 34 | *.color6: #c6c5fe 35 | *.color14: #e0e0fe 36 | ! 37 | ! White 38 | *.color7: #efedef 39 | *.color15: #ffffff 40 | ! 41 | ! Bold, Italic, Underline 42 | *.colorBD: #ffffff 43 | !*.colorIT: 44 | !*.colorUL: 45 | -------------------------------------------------------------------------------- /tabby-community-color-schemes/schemes/Japanesque: -------------------------------------------------------------------------------- 1 | ! 2 | ! Generated with : 3 | ! XRDB2Xreources.py 4 | ! 5 | *.foreground: #f7f6ec 6 | *.background: #1e1e1e 7 | *.cursorColor: #edcf4f 8 | ! 9 | ! Black 10 | *.color0: #343935 11 | *.color8: #595b59 12 | ! 13 | ! Red 14 | *.color1: #cf3f61 15 | *.color9: #d18fa6 16 | ! 17 | ! Green 18 | *.color2: #7bb75b 19 | *.color10: #767f2c 20 | ! 21 | ! Yellow 22 | *.color3: #e9b32a 23 | *.color11: #78592f 24 | ! 25 | ! Blue 26 | *.color4: #4c9ad4 27 | *.color12: #135979 28 | ! 29 | ! Magenta 30 | *.color5: #a57fc4 31 | *.color13: #604291 32 | ! 33 | ! Cyan 34 | *.color6: #389aad 35 | *.color14: #76bbca 36 | ! 37 | ! White 38 | *.color7: #fafaf6 39 | *.color15: #b2b5ae 40 | ! 41 | ! Bold, Italic, Underline 42 | *.colorBD: #fffffa 43 | !*.colorIT: 44 | !*.colorUL: 45 | -------------------------------------------------------------------------------- /tabby-community-color-schemes/schemes/Jellybeans: -------------------------------------------------------------------------------- 1 | ! 2 | ! Generated with : 3 | ! XRDB2Xreources.py 4 | ! 5 | *.foreground: #dedede 6 | *.background: #121212 7 | *.cursorColor: #ffa560 8 | ! 9 | ! Black 10 | *.color0: #929292 11 | *.color8: #bdbdbd 12 | ! 13 | ! Red 14 | *.color1: #e27373 15 | *.color9: #ffa1a1 16 | ! 17 | ! Green 18 | *.color2: #94b979 19 | *.color10: #bddeab 20 | ! 21 | ! Yellow 22 | *.color3: #ffba7b 23 | *.color11: #ffdca0 24 | ! 25 | ! Blue 26 | *.color4: #97bedc 27 | *.color12: #b1d8f6 28 | ! 29 | ! Magenta 30 | *.color5: #e1c0fa 31 | *.color13: #fbdaff 32 | ! 33 | ! Cyan 34 | *.color6: #00988e 35 | *.color14: #1ab2a8 36 | ! 37 | ! White 38 | *.color7: #dedede 39 | *.color15: #ffffff 40 | ! 41 | ! Bold, Italic, Underline 42 | *.colorBD: #ffffff 43 | !*.colorIT: 44 | !*.colorUL: 45 | -------------------------------------------------------------------------------- /tabby-community-color-schemes/schemes/Kibble: -------------------------------------------------------------------------------- 1 | ! 2 | ! Generated with : 3 | ! XRDB2Xreources.py 4 | ! 5 | *.foreground: #f7f7f7 6 | *.background: #0e100a 7 | *.cursorColor: #9fda9c 8 | ! 9 | ! Black 10 | *.color0: #4d4d4d 11 | *.color8: #5a5a5a 12 | ! 13 | ! Red 14 | *.color1: #c70031 15 | *.color9: #f01578 16 | ! 17 | ! Green 18 | *.color2: #29cf13 19 | *.color10: #6ce05c 20 | ! 21 | ! Yellow 22 | *.color3: #d8e30e 23 | *.color11: #f3f79e 24 | ! 25 | ! Blue 26 | *.color4: #3449d1 27 | *.color12: #97a4f7 28 | ! 29 | ! Magenta 30 | *.color5: #8400ff 31 | *.color13: #c495f0 32 | ! 33 | ! Cyan 34 | *.color6: #0798ab 35 | *.color14: #68f2e0 36 | ! 37 | ! White 38 | *.color7: #e2d1e3 39 | *.color15: #ffffff 40 | ! 41 | ! Bold, Italic, Underline 42 | *.colorBD: #ca631e 43 | !*.colorIT: 44 | !*.colorUL: 45 | -------------------------------------------------------------------------------- /tabby-community-color-schemes/schemes/Lavandula: -------------------------------------------------------------------------------- 1 | ! 2 | ! Generated with : 3 | ! XRDB2Xreources.py 4 | ! 5 | *.foreground: #736e7d 6 | *.background: #050014 7 | *.cursorColor: #8c91fa 8 | ! 9 | ! Black 10 | *.color0: #230046 11 | *.color8: #372d46 12 | ! 13 | ! Red 14 | *.color1: #7d1625 15 | *.color9: #e05167 16 | ! 17 | ! Green 18 | *.color2: #337e6f 19 | *.color10: #52e0c4 20 | ! 21 | ! Yellow 22 | *.color3: #7f6f49 23 | *.color11: #e0c386 24 | ! 25 | ! Blue 26 | *.color4: #4f4a7f 27 | *.color12: #8e87e0 28 | ! 29 | ! Magenta 30 | *.color5: #5a3f7f 31 | *.color13: #a776e0 32 | ! 33 | ! Cyan 34 | *.color6: #58777f 35 | *.color14: #9ad4e0 36 | ! 37 | ! White 38 | *.color7: #736e7d 39 | *.color15: #8c91fa 40 | ! 41 | ! Bold, Italic, Underline 42 | *.colorBD: #8c91fa 43 | !*.colorIT: 44 | !*.colorUL: 45 | -------------------------------------------------------------------------------- /tabby-community-color-schemes/schemes/Man Page: -------------------------------------------------------------------------------- 1 | ! 2 | ! Generated with : 3 | ! XRDB2Xreources.py 4 | ! 5 | *.foreground: #000000 6 | *.background: #fef49c 7 | *.cursorColor: #7f7f7f 8 | ! 9 | ! Black 10 | *.color0: #000000 11 | *.color8: #666666 12 | ! 13 | ! Red 14 | *.color1: #cc0000 15 | *.color9: #e50000 16 | ! 17 | ! Green 18 | *.color2: #00a600 19 | *.color10: #00d900 20 | ! 21 | ! Yellow 22 | *.color3: #999900 23 | *.color11: #e5e500 24 | ! 25 | ! Blue 26 | *.color4: #0000b2 27 | *.color12: #0000ff 28 | ! 29 | ! Magenta 30 | *.color5: #b200b2 31 | *.color13: #e500e5 32 | ! 33 | ! Cyan 34 | *.color6: #00a6b2 35 | *.color14: #00e5e5 36 | ! 37 | ! White 38 | *.color7: #cccccc 39 | *.color15: #e5e5e5 40 | ! 41 | ! Bold, Italic, Underline 42 | *.colorBD: #000000 43 | !*.colorIT: 44 | !*.colorUL: 45 | -------------------------------------------------------------------------------- /tabby-community-color-schemes/schemes/Material: -------------------------------------------------------------------------------- 1 | ! 2 | ! Generated with : 3 | ! XRDB2Xreources.py 4 | ! 5 | *.foreground: #232322 6 | *.background: #eaeaea 7 | *.cursorColor: #16afca 8 | ! 9 | ! Black 10 | *.color0: #212121 11 | *.color8: #424242 12 | ! 13 | ! Red 14 | *.color1: #b7141f 15 | *.color9: #e83b3f 16 | ! 17 | ! Green 18 | *.color2: #457b24 19 | *.color10: #7aba3a 20 | ! 21 | ! Yellow 22 | *.color3: #f6981e 23 | *.color11: #ffea2e 24 | ! 25 | ! Blue 26 | *.color4: #134eb2 27 | *.color12: #54a4f3 28 | ! 29 | ! Magenta 30 | *.color5: #560088 31 | *.color13: #aa4dbc 32 | ! 33 | ! Cyan 34 | *.color6: #0e717c 35 | *.color14: #26bbd1 36 | ! 37 | ! White 38 | *.color7: #efefef 39 | *.color15: #d9d9d9 40 | ! 41 | ! Bold, Italic, Underline 42 | *.colorBD: #b7141f 43 | !*.colorIT: 44 | !*.colorUL: 45 | -------------------------------------------------------------------------------- /tabby-community-color-schemes/schemes/Mathias: -------------------------------------------------------------------------------- 1 | ! 2 | ! Generated with : 3 | ! XRDB2Xreources.py 4 | ! 5 | *.foreground: #bbbbbb 6 | *.background: #000000 7 | *.cursorColor: #bbbbbb 8 | ! 9 | ! Black 10 | *.color0: #000000 11 | *.color8: #555555 12 | ! 13 | ! Red 14 | *.color1: #e52222 15 | *.color9: #ff5555 16 | ! 17 | ! Green 18 | *.color2: #a6e32d 19 | *.color10: #55ff55 20 | ! 21 | ! Yellow 22 | *.color3: #fc951e 23 | *.color11: #ffff55 24 | ! 25 | ! Blue 26 | *.color4: #c48dff 27 | *.color12: #5555ff 28 | ! 29 | ! Magenta 30 | *.color5: #fa2573 31 | *.color13: #ff55ff 32 | ! 33 | ! Cyan 34 | *.color6: #67d9f0 35 | *.color14: #55ffff 36 | ! 37 | ! White 38 | *.color7: #f2f2f2 39 | *.color15: #ffffff 40 | ! 41 | ! Bold, Italic, Underline 42 | *.colorBD: #ffffff 43 | !*.colorIT: 44 | !*.colorUL: 45 | -------------------------------------------------------------------------------- /tabby-community-color-schemes/schemes/Medallion: -------------------------------------------------------------------------------- 1 | ! 2 | ! Generated with : 3 | ! XRDB2Xreources.py 4 | ! 5 | *.foreground: #cac296 6 | *.background: #1d1908 7 | *.cursorColor: #d3ba30 8 | ! 9 | ! Black 10 | *.color0: #000000 11 | *.color8: #5e5219 12 | ! 13 | ! Red 14 | *.color1: #b64c00 15 | *.color9: #ff9149 16 | ! 17 | ! Green 18 | *.color2: #7c8b16 19 | *.color10: #b2ca3b 20 | ! 21 | ! Yellow 22 | *.color3: #d3bd26 23 | *.color11: #ffe54a 24 | ! 25 | ! Blue 26 | *.color4: #616bb0 27 | *.color12: #acb8ff 28 | ! 29 | ! Magenta 30 | *.color5: #8c5a90 31 | *.color13: #ffa0ff 32 | ! 33 | ! Cyan 34 | *.color6: #916c25 35 | *.color14: #ffbc51 36 | ! 37 | ! White 38 | *.color7: #cac29a 39 | *.color15: #fed698 40 | ! 41 | ! Bold, Italic, Underline 42 | *.colorBD: #ffd890 43 | !*.colorIT: 44 | !*.colorUL: 45 | -------------------------------------------------------------------------------- /tabby-community-color-schemes/schemes/Misterioso: -------------------------------------------------------------------------------- 1 | ! 2 | ! Generated with : 3 | ! XRDB2Xreources.py 4 | ! 5 | *.foreground: #e1e1e0 6 | *.background: #2d3743 7 | *.cursorColor: #000000 8 | ! 9 | ! Black 10 | *.color0: #000000 11 | *.color8: #555555 12 | ! 13 | ! Red 14 | *.color1: #ff4242 15 | *.color9: #ff3242 16 | ! 17 | ! Green 18 | *.color2: #74af68 19 | *.color10: #74cd68 20 | ! 21 | ! Yellow 22 | *.color3: #ffad29 23 | *.color11: #ffb929 24 | ! 25 | ! Blue 26 | *.color4: #338f86 27 | *.color12: #23d7d7 28 | ! 29 | ! Magenta 30 | *.color5: #9414e6 31 | *.color13: #ff37ff 32 | ! 33 | ! Cyan 34 | *.color6: #23d7d7 35 | *.color14: #00ede1 36 | ! 37 | ! White 38 | *.color7: #e1e1e0 39 | *.color15: #ffffff 40 | ! 41 | ! Bold, Italic, Underline 42 | *.colorBD: #000000 43 | !*.colorIT: 44 | !*.colorUL: 45 | -------------------------------------------------------------------------------- /tabby-community-color-schemes/schemes/Molokai: -------------------------------------------------------------------------------- 1 | ! 2 | ! Generated with : 3 | ! XRDB2Xreources.py 4 | ! 5 | *.foreground: #bbbbbb 6 | *.background: #121212 7 | *.cursorColor: #bbbbbb 8 | ! 9 | ! Black 10 | *.color0: #121212 11 | *.color8: #555555 12 | ! 13 | ! Red 14 | *.color1: #fa2573 15 | *.color9: #f6669d 16 | ! 17 | ! Green 18 | *.color2: #98e123 19 | *.color10: #b1e05f 20 | ! 21 | ! Yellow 22 | *.color3: #dfd460 23 | *.color11: #fff26d 24 | ! 25 | ! Blue 26 | *.color4: #1080d0 27 | *.color12: #00afff 28 | ! 29 | ! Magenta 30 | *.color5: #8700ff 31 | *.color13: #af87ff 32 | ! 33 | ! Cyan 34 | *.color6: #43a8d0 35 | *.color14: #51ceff 36 | ! 37 | ! White 38 | *.color7: #bbbbbb 39 | *.color15: #ffffff 40 | ! 41 | ! Bold, Italic, Underline 42 | *.colorBD: #ffffff 43 | !*.colorIT: 44 | !*.colorUL: 45 | -------------------------------------------------------------------------------- /tabby-community-color-schemes/schemes/MonaLisa: -------------------------------------------------------------------------------- 1 | ! 2 | ! Generated with : 3 | ! XRDB2Xreources.py 4 | ! 5 | *.foreground: #f7d66a 6 | *.background: #120b0d 7 | *.cursorColor: #c46c32 8 | ! 9 | ! Black 10 | *.color0: #351b0e 11 | *.color8: #874228 12 | ! 13 | ! Red 14 | *.color1: #9b291c 15 | *.color9: #ff4331 16 | ! 17 | ! Green 18 | *.color2: #636232 19 | *.color10: #b4b264 20 | ! 21 | ! Yellow 22 | *.color3: #c36e28 23 | *.color11: #ff9566 24 | ! 25 | ! Blue 26 | *.color4: #515c5d 27 | *.color12: #9eb2b4 28 | ! 29 | ! Magenta 30 | *.color5: #9b1d29 31 | *.color13: #ff5b6a 32 | ! 33 | ! Cyan 34 | *.color6: #588056 35 | *.color14: #8acd8f 36 | ! 37 | ! White 38 | *.color7: #f7d75c 39 | *.color15: #ffe598 40 | ! 41 | ! Bold, Italic, Underline 42 | *.colorBD: #fee4a0 43 | !*.colorIT: 44 | !*.colorUL: 45 | -------------------------------------------------------------------------------- /tabby-community-color-schemes/schemes/N0tch2k: -------------------------------------------------------------------------------- 1 | ! 2 | ! Generated with : 3 | ! XRDB2Xreources.py 4 | ! 5 | *.foreground: #a0a0a0 6 | *.background: #222222 7 | *.cursorColor: #aa9175 8 | ! 9 | ! Black 10 | *.color0: #383838 11 | *.color8: #474747 12 | ! 13 | ! Red 14 | *.color1: #a95551 15 | *.color9: #a97775 16 | ! 17 | ! Green 18 | *.color2: #666666 19 | *.color10: #8c8c8c 20 | ! 21 | ! Yellow 22 | *.color3: #a98051 23 | *.color11: #a99175 24 | ! 25 | ! Blue 26 | *.color4: #657d3e 27 | *.color12: #98bd5e 28 | ! 29 | ! Magenta 30 | *.color5: #767676 31 | *.color13: #a3a3a3 32 | ! 33 | ! Cyan 34 | *.color6: #c9c9c9 35 | *.color14: #dcdcdc 36 | ! 37 | ! White 38 | *.color7: #d0b8a3 39 | *.color15: #d8c8bb 40 | ! 41 | ! Bold, Italic, Underline 42 | *.colorBD: #e5e5e5 43 | !*.colorIT: 44 | !*.colorUL: 45 | -------------------------------------------------------------------------------- /tabby-community-color-schemes/schemes/Neopolitan: -------------------------------------------------------------------------------- 1 | ! 2 | ! Generated with : 3 | ! XRDB2Xreources.py 4 | ! 5 | *.foreground: #ffffff 6 | *.background: #271f19 7 | *.cursorColor: #ffffff 8 | ! 9 | ! Black 10 | *.color0: #000000 11 | *.color8: #000000 12 | ! 13 | ! Red 14 | *.color1: #800000 15 | *.color9: #800000 16 | ! 17 | ! Green 18 | *.color2: #61ce3c 19 | *.color10: #61ce3c 20 | ! 21 | ! Yellow 22 | *.color3: #fbde2d 23 | *.color11: #fbde2d 24 | ! 25 | ! Blue 26 | *.color4: #253b76 27 | *.color12: #253b76 28 | ! 29 | ! Magenta 30 | *.color5: #ff0080 31 | *.color13: #ff0080 32 | ! 33 | ! Cyan 34 | *.color6: #8da6ce 35 | *.color14: #8da6ce 36 | ! 37 | ! White 38 | *.color7: #f8f8f8 39 | *.color15: #f8f8f8 40 | ! 41 | ! Bold, Italic, Underline 42 | *.colorBD: #ffffff 43 | !*.colorIT: 44 | !*.colorUL: 45 | -------------------------------------------------------------------------------- /tabby-community-color-schemes/schemes/Neutron: -------------------------------------------------------------------------------- 1 | ! 2 | ! Generated with : 3 | ! XRDB2Xreources.py 4 | ! 5 | *.foreground: #e6e8ef 6 | *.background: #1c1e22 7 | *.cursorColor: #f6f7ec 8 | ! 9 | ! Black 10 | *.color0: #23252b 11 | *.color8: #23252b 12 | ! 13 | ! Red 14 | *.color1: #b54036 15 | *.color9: #b54036 16 | ! 17 | ! Green 18 | *.color2: #5ab977 19 | *.color10: #5ab977 20 | ! 21 | ! Yellow 22 | *.color3: #deb566 23 | *.color11: #deb566 24 | ! 25 | ! Blue 26 | *.color4: #6a7c93 27 | *.color12: #6a7c93 28 | ! 29 | ! Magenta 30 | *.color5: #a4799d 31 | *.color13: #a4799d 32 | ! 33 | ! Cyan 34 | *.color6: #3f94a8 35 | *.color14: #3f94a8 36 | ! 37 | ! White 38 | *.color7: #e6e8ef 39 | *.color15: #ebedf2 40 | ! 41 | ! Bold, Italic, Underline 42 | *.colorBD: #52606b 43 | !*.colorIT: 44 | !*.colorUL: 45 | -------------------------------------------------------------------------------- /tabby-community-color-schemes/schemes/Obsidian: -------------------------------------------------------------------------------- 1 | ! 2 | ! Generated with : 3 | ! XRDB2Xreources.py 4 | ! 5 | *.foreground: #cdcdcd 6 | *.background: #283033 7 | *.cursorColor: #c0cad0 8 | ! 9 | ! Black 10 | *.color0: #000000 11 | *.color8: #555555 12 | ! 13 | ! Red 14 | *.color1: #a60001 15 | *.color9: #ff0003 16 | ! 17 | ! Green 18 | *.color2: #00bb00 19 | *.color10: #93c863 20 | ! 21 | ! Yellow 22 | *.color3: #fecd22 23 | *.color11: #fef874 24 | ! 25 | ! Blue 26 | *.color4: #3a9bdb 27 | *.color12: #a1d7ff 28 | ! 29 | ! Magenta 30 | *.color5: #bb00bb 31 | *.color13: #ff55ff 32 | ! 33 | ! Cyan 34 | *.color6: #00bbbb 35 | *.color14: #55ffff 36 | ! 37 | ! White 38 | *.color7: #bbbbbb 39 | *.color15: #ffffff 40 | ! 41 | ! Bold, Italic, Underline 42 | *.colorBD: #ffffff 43 | !*.colorIT: 44 | !*.colorUL: 45 | --------------------------------------------------------------------------------