├── .gitignore ├── LICENSE ├── README.md ├── cover.jpg ├── index.js ├── main.jpg └── package.json /.gitignore: -------------------------------------------------------------------------------- 1 | # Logs 2 | logs 3 | *.log 4 | npm-debug.log* 5 | 6 | # Runtime data 7 | pids 8 | *.pid 9 | *.seed 10 | 11 | # Directory for instrumented libs generated by jscoverage/JSCover 12 | lib-cov 13 | 14 | # Coverage directory used by tools like istanbul 15 | coverage 16 | 17 | # nyc test coverage 18 | .nyc_output 19 | 20 | # Grunt intermediate storage (http://gruntjs.com/creating-plugins#storing-task-files) 21 | .grunt 22 | 23 | # node-waf configuration 24 | .lock-wscript 25 | 26 | # Compiled binary addons (http://nodejs.org/api/addons.html) 27 | build/Release 28 | 29 | # Dependency directories 30 | node_modules 31 | jspm_packages 32 | 33 | # Optional npm cache directory 34 | .npm 35 | 36 | # Optional REPL history 37 | .node_repl_history 38 | -------------------------------------------------------------------------------- /LICENSE: -------------------------------------------------------------------------------- 1 | The MIT License (MIT) 2 | 3 | Copyright (c) 2016 Siamak Mokhtari 4 | 5 | Permission is hereby granted, free of charge, to any person obtaining a copy 6 | of this software and associated documentation files (the "Software"), to deal 7 | in the Software without restriction, including without limitation the rights 8 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 9 | copies of the Software, and to permit persons to whom the Software is 10 | furnished to do so, subject to the following conditions: 11 | 12 | The above copyright notice and this permission notice shall be included in all 13 | copies or substantial portions of the Software. 14 | 15 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 16 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 17 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 18 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 19 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 20 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE 21 | SOFTWARE. 22 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | ![Panda Logo](https://raw.githubusercontent.com/siamak/hyperterm-panda/master/cover.jpg) 2 | 3 | A _Superminimal_, _dark_ Syntax Theme. This is the latest version of the **Panda Syntax** theme. It's a _dark_ syntax theme crafted especially for [HyperTerm](https://hyper.is), with subtle colors that are meant to be easy on the eyes. 4 | 5 | --- 6 | ![Main ScreenShot](https://raw.githubusercontent.com/siamak/hyperterm-panda/master/main.jpg) 7 | > The font in the screenshot is `Operator Mono`. From $199, exclusively at H&Co. http://www.typography.com/blog/introducing-operator 8 | 9 | --- 10 | 11 | ## ⌨️ How to Use 12 | Add `hyperterm-panda` to plugins in `~/.hyperterm.js`. 13 | 14 | `~/.hyperterm.js`: 15 | ```javascript 16 | plugins: [ 17 | 'hyperterm-panda' 18 | ] 19 | ``` 20 | 21 | ## 🐼 About Pandas 22 | ![Pandas ScreenShot](https://raw.githubusercontent.com/siamak/atom-panda-syntax/master/screenshots/pandas.png) 23 | 24 | 1. Sleep 12-14 hours per day 25 | 2. Eat 12-14 hours per day 26 | 3. Consume 10 to 18 kilos of raw bamboo per day 27 | 4. Poop 10 to 18 kilos of processed bamboo per day. 28 | 5. Panda sex is awkward. Naps are much more fun. 29 | 30 | > Picture & Contents from: https://dribbble.com/shots/2354579-Panda-Icon-Party. 31 | -------------------------------------------------------------------------------- /cover.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/siamak/hyperterm-panda/e61960eb096a19b47b524d0e0932040b43fdb04d/cover.jpg -------------------------------------------------------------------------------- /index.js: -------------------------------------------------------------------------------- 1 | // Constants 2 | const backgroundColor = '#292A2B'; 3 | const foregroundColor = '#E6E6E6'; 4 | const darkerBackground = 'rgba(0, 0, 0, 0.2)'; 5 | const borderColor = '#333'; 6 | 7 | // Colors 8 | const RED = '#FF2C6D'; 9 | const GREEN = '#19f9d8'; 10 | const ORANGE = '#FFB86C'; 11 | const LIGHT_ORANGE = '#ffcc95'; 12 | const BLUE = '#45A9F9'; 13 | const LIGHT_BLUE = '#6FC1FF'; 14 | const PINK = '#FF75B5'; 15 | const LIGHT_PINK = '#FF9AC1'; 16 | const CYAN = '#6FC1FF'; 17 | const PURPLE = '#B084EB'; 18 | const LIGHT_GRAY = foregroundColor; 19 | const MEDIUM_GRAY = '#676B79'; 20 | const WHITE = '#FFFFFF'; 21 | 22 | const colors = { 23 | black: backgroundColor, 24 | red: RED, 25 | green: GREEN, 26 | yellow: ORANGE, 27 | blue: BLUE, 28 | magenta: PINK, 29 | cyan: CYAN, 30 | orange: PURPLE, 31 | white: LIGHT_GRAY, 32 | lightRed: RED, 33 | lightGreen: GREEN, 34 | lightYellow: LIGHT_ORANGE, 35 | lightBlue: LIGHT_BLUE, 36 | lightMagenta: LIGHT_PINK, 37 | lightCyan: CYAN, 38 | lightWhite: WHITE 39 | }; 40 | 41 | // Apply theme 42 | exports.decorateConfig = (config) => ( 43 | Object.assign({}, config, { 44 | backgroundColor, 45 | foregroundColor, 46 | borderColor: borderColor, 47 | cursorColor: foregroundColor, 48 | colors, 49 | css: ` 50 | ${config.css || ''} 51 | .terms_term x-row{ 52 | height: 24px; 53 | } 54 | /* Highlight active tab by making rest of nav darker */ 55 | .tabs_list { 56 | background-color: ${darkerBackground} !important; 57 | } 58 | /* Set tab colors */ 59 | .tab_tab { 60 | color: ${foregroundColor} !important; 61 | background-color: ${darkerBackground} !important; 62 | border: none !important; 63 | border-right: 1px solid transparent !important; 64 | border-left: 1px solid transparent !important; 65 | } 66 | /* Hide bottom border if tab is active, make bg lighter */ 67 | .tab_active { 68 | background-color: ${backgroundColor} !important; 69 | height: calc(100% + 1px); 70 | border-left: 1px solid ${borderColor} !important; 71 | border-right: 1px solid ${borderColor} !important; 72 | } 73 | .tab_tab:last-child { 74 | border-right: 1px solid transparent !important; 75 | } 76 | /* Hide hardcoded black bottom border */ 77 | .tab_active:before { 78 | border-bottom: none !important; 79 | } 80 | .tab_text { 81 | border-color: transparent !important; 82 | } 83 | /* Close button faint shadow for easy spotting */ 84 | .tab_icon { 85 | background-color: rgba(255, 255, 255, .025); 86 | opacity: 1; 87 | } 88 | ` 89 | }) 90 | ); 91 | 92 | // Development middleware for HMR 93 | exports.middleware = () => (next) => (action) => { 94 | /* eslint-disable no-param-reassign, default-case */ 95 | switch (action.type) { 96 | case 'CONFIG_LOAD': 97 | case 'CONFIG_RELOAD': 98 | action.config.foregroundColor = foregroundColor; 99 | action.config.backgroundColor = backgroundColor; 100 | action.config.cursorColor = foregroundColor; 101 | action.config.colors = colors; 102 | } 103 | next(action); 104 | }; 105 | -------------------------------------------------------------------------------- /main.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/siamak/hyperterm-panda/e61960eb096a19b47b524d0e0932040b43fdb04d/main.jpg -------------------------------------------------------------------------------- /package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "hyperterm-panda", 3 | "version": "0.0.2", 4 | "repository": { 5 | "type": "git", 6 | "url": "git+https://github.com/siamak/hyperterm-panda.git" 7 | }, 8 | "keywords": [ 9 | "hyperterm" 10 | ], 11 | "description": "", 12 | "dependencies": {} 13 | } 14 | --------------------------------------------------------------------------------