├── .github └── ISSUE_TEMPLATE │ ├── bug_report.md │ └── feature_request.md ├── .gitignore ├── .shellcheckrc ├── LICENSE ├── README.md ├── assets ├── samples │ ├── fzf │ ├── gtk-theme.mx │ ├── hexless │ ├── kitty-theme.conf │ ├── ls_colors │ ├── lscolors │ ├── lscolors-vivid.yml │ ├── mxc-nvim-base16.lua │ ├── mxc-nvim-colors.lua │ ├── root-mx.css │ ├── root-mx.less │ ├── root-mx.vim │ ├── root.mx │ ├── seed.mx │ ├── spotify-mx │ ├── spotify.mx │ ├── tmux.mx │ ├── xresources-mx.xdefaults │ ├── xresources-theme.xdefaults │ └── zathurarc └── screenshots │ ├── 2022-01-29-163127_318x127_scrot.png │ ├── 2022-01-29-163915_877x552_scrot.png │ ├── 2022-01-29-190221_2560x1080_scrot.png │ ├── 2022-02-16-100414_1018x822_scrot.png │ ├── footer_2021-05-16-221932_374x40_scrot.png │ └── gifcast_220216100211.gif ├── mxcolr ├── package.json ├── plugins ├── 0-fzf.sh ├── 0-slack.sh ├── 1-xresources.sh ├── 2-lscolors.sh ├── 2-tmux.sh ├── 2-vim.sh ├── 2-vimium.sh ├── 4-gtk.sh ├── 5-spotify.sh ├── 5-zathura.sh └── 9-awm.sh ├── src ├── demo.sh ├── icon.sh ├── imagemagick.sh ├── menu.sh ├── mx-seed.sh ├── mx-theme.sh ├── paint.sh ├── palette.sh ├── playground.sh ├── snapshots.sh ├── utils.sh └── xansi.sh └── templates ├── alacritty.yml ├── cognito-ui.css ├── fzf.mx ├── kitty-theme.conf ├── lscolors-vivid.yml ├── mxc-nvim-base16.lua ├── mxc-nvim-colors.lua ├── palette.lua ├── root-mx.css ├── root-mx.less ├── spotify-mx ├── vim-visual-multi_themes.vim ├── xresources-mx.xdefaults └── zathurarc /.github/ISSUE_TEMPLATE/bug_report.md: -------------------------------------------------------------------------------- 1 | --- 2 | name: Bug report 3 | about: Create a report to help us improve 4 | title: '' 5 | labels: '' 6 | assignees: '' 7 | 8 | --- 9 | 10 | **Describe the bug** 11 | A clear and concise description of what the bug is. 12 | 13 | **To Reproduce** 14 | Steps to reproduce the behavior: 15 | 1. Go to '...' 16 | 2. Click on '....' 17 | 3. Scroll down to '....' 18 | 4. See error 19 | 20 | **Expected behavior** 21 | A clear and concise description of what you expected to happen. 22 | 23 | **Screenshots** 24 | If applicable, add screenshots to help explain your problem. 25 | 26 | **Desktop (please complete the following information):** 27 | - OS: [e.g. iOS] 28 | - Browser [e.g. chrome, safari] 29 | - Version [e.g. 22] 30 | 31 | **Smartphone (please complete the following information):** 32 | - Device: [e.g. iPhone6] 33 | - OS: [e.g. iOS8.1] 34 | - Browser [e.g. stock browser, safari] 35 | - Version [e.g. 22] 36 | 37 | **Additional context** 38 | Add any other context about the problem here. 39 | -------------------------------------------------------------------------------- /.github/ISSUE_TEMPLATE/feature_request.md: -------------------------------------------------------------------------------- 1 | --- 2 | name: Feature request 3 | about: Suggest an idea for this project 4 | title: '' 5 | labels: '' 6 | assignees: '' 7 | 8 | --- 9 | 10 | **Is your feature request related to a problem? Please describe.** 11 | A clear and concise description of what the problem is. Ex. I'm always frustrated when [...] 12 | 13 | **Describe the solution you'd like** 14 | A clear and concise description of what you want to happen. 15 | 16 | **Describe alternatives you've considered** 17 | A clear and concise description of any alternative solutions or features you've considered. 18 | 19 | **Additional context** 20 | Add any other context or screenshots about the feature request here. 21 | -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- 1 | .scrap 2 | dist 3 | snapshots 4 | backups 5 | mico 6 | tags 7 | 8 | -------------------------------------------------------------------------------- /.shellcheckrc: -------------------------------------------------------------------------------- 1 | # Look for 'source'd files relative to the checked script, 2 | # and also look for absolute paths in /mnt/chroot 3 | # source-path=SCRIPTDIR 4 | # source-path=/mnt/chroot 5 | source=/dev/null 6 | # Turn on warnings for unquoted variables with safe values 7 | # enable=quote-safe-variables 8 | 9 | # Turn on warnings for unassigned uppercase variables 10 | # enable=check-unassigned-uppercase 11 | 12 | # Allow [ ! -z foo ] instead of suggesting -n 13 | disable=SC2153 14 | disable=SC2236 15 | disable=SC2034 16 | # disable=w2034 17 | 18 | -------------------------------------------------------------------------------- /LICENSE: -------------------------------------------------------------------------------- 1 | MIT License 2 | 3 | Copyright (c) 2021 metaory 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 | # mxcolr ▲ 2 | 3 | [![Join the chat at https://gitter.im/metaory/mxcolr](https://badges.gitter.im/metaory/mxcolr.svg)](https://gitter.im/metaory/mxcolr?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge) 4 | 5 |

6 | 7 |

8 | 9 |

10 | :warning: Warning! This is experimental! :warning: 11 |

12 | 13 | ## There is a simplified version 2 of this project at [mxcolr-v2](https://github.com/metaory/mxcolr-v2) 14 | 15 |

16 | 17 |

18 | 19 | Usage 20 | ===== 21 | mxcolr [options] [params] 22 | 23 | Options 24 | ======= 25 | --force | forcefull update 26 | --verbose | verbose logs 27 | --tmp-only | exit silently after placing temp files in /tmp/mxc 28 | 29 | Utilities 30 | ========= 31 | --gen-icon | [char, path]; create image in path icon from the char 32 | --lorem | [length, char]; print char randomely for the length 33 | --lorem-cols | [char]; fill terminal column with char 34 | --darkest | [colors]; return darkest color of the list 35 | --lightest | [colors]; return lightest color of the list 36 | 37 | Actions 38 | ======= 39 | -g, generate | (Pastel randomization strategy) default is lch 40 | -u, update | apply to all plugins 41 | -U, update-force | force apply to all plugins without any prompts 42 | -d, demo | basic demo 43 | -D, demo-all | complete demo 44 | -l, list | list all saved snapshots 45 | -r, random | pick a random snapshot 46 | -s, save | save snapshot 47 | * | intro 48 | 49 | Motivations 50 | =========== 51 | While tools like Oomox and Spicetify are great in reallity you probably got more than GTK theme and Icons you'd want to patch 52 | 53 | Terminal colors, terminal prompt, window manager / status bar theme / icons, Vim/Atom/SourceCode editor and more 54 | 55 | Some apps might require to compile and build, all of these are just too repetitive and anoying to do for every change, then there is the never ending search for the right color scheme 56 | 57 | What about 58 | ---------- 59 | - [Pywal](https://github.com/dylanaraps/pywal): all about Wallpaper,, great documentation and support though. 60 | > almost all [pywal-customization](https://github.com/dylanaraps/pywal/wiki/customization) can be easilly added 61 | - [Oomox](https://github.com/themix-project/oomox) plugins: possible,, to mxcolr, oomox is just another plugin for gtk theme and icon 62 | 63 | #### This repo goal is to be a tool for generating and previewing palettes and serve as a framework for patching any application with few keystrokes. 64 | 65 | ## Not for the faint-hearted 66 | Only tested on Arch Linux, not advised for beginner users. 67 | 68 | ### There is a lite version of this project at [mxcolr-lite](https://github.com/metaory/mxcolr-lite) 69 | 70 | Outputs 71 | ======= 72 | 73 | seed.mx 74 | ------ 75 | [seed.mx](./assets/samples/seed.mx) is a trio of randomely generated colors, it's the core of the palette 76 | - `~/.config/mxc/seed.mx` sample generated [seed.mx](./assets/samples/seed.mx) 77 | > the entire palette is drived from this generated `seed` file 78 | 79 | Given the same `seed` file, its guaranteed the same `scheme file` be produced. 80 | 81 | Possible variables available in all templates or plugins are: 82 | ```bash 83 | C00 C01 C02 C03 C04 C05 C06 C07 C08 C09 C10 C11 C12 C13 C14 C15 84 | CX1 CX2 CX3 CX4 CX5 CX6 # extra saturated 85 | CY1 CY2 CY3 CY4 CY5 CY6 # extra desaturated 86 | CF1 CF2 CF3 CF4 CF5 CF6 # fg color on CX bg 87 | 88 | SBG WBG EBG # seed bg colors 89 | SFG WFG EFG # seed fg colors 90 | 91 | SK0 SK1 SK2 SK3 SK4 SK5 SK6 SK7 SK8 SK9 # S shades 92 | WK0 WK1 WK2 WK3 WK4 WK5 WK6 WK7 WK8 WK9 # W shades 93 | EK0 EK1 EK2 EK3 EK4 EK5 EK6 EK7 EK8 EK9 # E shades 94 | 95 | XBG OBG # main bg colors 96 | XFG OFG # main fg colors 97 | ``` 98 | 99 | #### sample: 100 |

101 | 102 |

103 | 104 | #### Variants 105 | - **gui** variant with their hex values 106 | - **gui hashless** variant with their hex values without leading `#`; prefixed with `HL` 107 | - **cterm** variant with their ansi-8bit values; prefixed with `T` 108 | 109 | #### examples: 110 | ```bash 111 | echo $C04 $WK6 112 | #3b88df #6f7690 113 | 114 | echo $HLC04 $HLWK6 115 | 3b88df 6f7690 116 | 117 | echo $TC04 $TWK6 118 | 33 60 119 | ``` 120 | 121 | 122 | ENV Specifics 123 | ============= 124 | 125 | Shell 126 | ----- 127 | [root.mx](./assets/samples/root.mx) is the primary output scheme sh file 128 | - `~/.config/mxc/root.mx` sample generated [root.mx](./assets/samples/root.mx) 129 | 130 | > intended to be sourced in `.profile` or `bashrc` and have apps that can directly access system env read system scheme from it 131 | 132 | Lua scheme 133 | ---------- 134 | 135 | tpl: [mxc-nvim-colors.lua](./templates/mxc-nvim-colors.lua) 136 | out: [mxc-nvim-colors.lua](./assets/samples/mxc-nvim-colors.lua) 137 | 138 | Vim 139 | --- 140 | 141 | output: [root-mx.vim](./assets/samples/root-mx.vim) 142 | plugin: [2-vim.sh](./plugins/2-vim.sh) 143 | 144 | > intented to be sourced in vimrc 145 | 146 | css / less 147 | ---------- 148 | css / less for web/electron apps 149 | 150 | **root-mx.css** tpl:[root-mx.css](./templates/root-mx.css) out:[root-mx.css](./assets/samples/root-mx.css) 151 | 152 | **root-mx.less** tpl:[root-mx.less](./templates/root-mx.less) out:[root-mx.less](./assets/samples/root-mx.less) 153 | 154 | > intented to be included in other js / electron apps, like Atom editor or Source Code 155 | 156 | *** 157 | 158 |

159 | 160 |

161 | 162 | Basic Usage 163 | =========== 164 | Templates are the easiest way to produce scheme files for different apps, 165 | every file in `./templates/{tpl}` will be parsed; scheme variables replaced; and placed in `~/.config/mxc/{tpl}` 166 | 167 | ### some apps that ONLY rely on template file 168 | - kitty tpl:[kitty-theme.conf](./templates/kitty-theme.conf) out:[kitty-theme.conf](./assets/samples/kitty-theme.conf) 169 | - xresources.sh, tmux.sh vim.sh could have too 170 | 171 | Advance Usage 172 | ============= 173 | if further steps required to patch an app a plugin `sh` file can be added to plugins folder to make the additinal steps 174 | 175 | each `sh` file presents in `./plugins` folder is treated as a plugin and is sourced 176 | 177 | its expected to follow these patterns: 178 | * filename: `[0-9]-[a-z_].sh` _eg `1-vim.sh`_ 179 | * prefix number is the `order` its loaded, 0 means disabled 180 | * suffix the `plugin_name` 181 | * plugin file is expected to have a function named `apply_{plugin_name}` 182 | this function will be called with confirmation prompt 183 | 184 | > current active loaded theme variables are available to plugin 185 | 186 | > all templates if any are parsed before calling apply_ function 187 | 188 | > plugins outputs will first be drafted in `/tmp/mxc` and later upon confirmation prompt moved to `~/.config/mxc/{plugin_name}` 189 | unless different destination is set 190 | 191 | 192 | ### some apps that rely on BOTH template file AND plugin file 193 | - lscolors tpl:[lscolors-vivid.yml](./templates/lscolors-vivid.yml) out:[lscolors-vivid.yml](./samples/lscolors-vivid.yml) plugin:[2-lscolors.sh](./plugins/2-lscolors.sh) out:[lscolors](./samples/lscolors) 194 | - gtk.sh, spotify.sh could have too 195 | 196 | ### some apps that rely on ONLY plugin file 197 | - vimium, gtk.sh, spotify.sh, awm.sh 198 | 199 | *** 200 | 201 | ## Chain usage temp-only 202 | `mxcolr --tmp-only update` 203 | will exit silently after placing temp files in `/tmp/mxc` 204 | 205 | ### for example: 206 | using this template: [cognito-ui.css](./templates/cognito-ui.css) 207 | ```bash 208 | mxcolr --tmp-only update 209 | aws cognito-idp set-ui-customization --user-pool-id $COGNITO_POOL_ID --css "$(cat /tmp/mxc/cognito-ui.css)" 210 | ``` 211 | *** 212 | 213 | generate 214 | -------- 215 | ![generate 1.4](./assets/screenshots/gifcast_220216100211.gif) 216 | 217 | ### Check Wiki for more screenshots 218 | 219 | [Screenshots](https://github.com/metaory/mxcolr/wiki/Screenshots) 220 | 221 | ### Save current theme 222 | ``` 223 | mxcolr save 224 | ``` 225 | 226 | ### List saved themes 227 | ``` 228 | mxcolr list 229 | ``` 230 | Snapshot list 231 | ------------- 232 |

233 | 234 |

235 | 236 | *** 237 | 238 | Requirements 239 | ------------ 240 | - [pastel](https://github.com/sharkdp/pastel) 241 | - [GNU bc](https://www.gnu.org/software/bc) 242 | - [jq](https://github.com/stedolan/jq) 243 | 244 | Optional Requirements 245 | --------------------- 246 | - [tmux](https://github.com/tmux/tmux) Terminal Agnostic Live preview 247 | - [oomox](https://github.com/themix-project/oomox) GTK Theme & Icons 248 | - [bullshit](https://aur.archlinux.org/packages/bullshit) Random Palette Name 249 | - [scrot](https://github.com/dreamer/scrot) Palette Image Screenshot 250 | - [spicetify-cli](https://github.com/khanhas/spicetify-cli) Spotify 251 | - [ffmpeg](https://github.com/FFmpeg/FFmpeg) Wallpaper Tints & Custom Icons 252 | - [vivid](https://github.com/sharkdp/vivid) LS_COLORS 253 | 254 | Plugins 255 | ------- 256 | - [X] Xresources 257 | - [X] Alacritty 258 | - [X] Kitty theme: [kitty-mxc](https://github.com/metaory/kitty-mxc) 259 | - [X] Vim `colors.vim` Nvim `colors.lua` 260 | - [X] Vimium 261 | - [X] FZF 262 | - [X] Spotify 263 | - [ ] Slack 264 | - [X] Ranger 265 | - [X] P10k 266 | - [X] Zathura 267 | - [X] GTK Theme 268 | - [X] GTK Icon Theme 269 | - [X] Wallpaper tint 270 | - [X] Tmux, theme: [tmux-mxc](https://github.com/metaory/tmux-mxc) 271 | - [X] AwesomeWM `colors.lua` 272 | - [X] LS_COLORS 273 | 274 | ## There is a lite version of this project at [mxcolr-lite](https://github.com/metaory/mxcolr-lite) 275 | 276 | *** 277 | 278 | 279 | ___ __ ___ 280 | / /\ | |\ / /\ 281 | / /::| | |:| / /::\ 282 | / /:|:| | |:| / /:/\:\ 283 | / /:/|:|__ |__|:|__ / /:/ \:\ 284 | /__/:/_|::::\ ____/__/::::\ /__/:/ \ \:\ 285 | \__\/ /~~/:/ \__\::::/~~~~ \ \:\ \__\/ 286 | / /:/ |~~|:| \ \:\ 287 | / /:/ | |:| \ \:\ 288 | /__/:/ |__|:| \ \:\ 289 | \__\/ \__\| \__\/ 290 | @ mxc-v1.9 291 | 292 |

293 | 294 |

295 | 296 | 297 | -------------------------------------------------------------------------------- /assets/samples/fzf: -------------------------------------------------------------------------------- 1 | 2 | export FZF_DEFAULT_OPTS=" --color=fg:#d0d0d0,bg:#121212,hl:#5f87af --color=fg+:#d0d0d0,bg+:#262626,hl+:#5fd7ff --color=info:#afaf87,prompt:#d7005f,pointer:#af5fff --color=marker:#87ff00,spinner:#af5fff,header:#87afaf --color=fg:#428080,bg:#121717,hl:#01b8cc --color=fg+:#346ebf,bg+:#060d0d,hl+:#01e6ff --color=info:#51d4a4,prompt:#2e4b4b,pointer:#01e6ff --color=marker:#dd6289,spinner:#01b8cc,header:#dd6289 --color=fg:#428080,bg:#121717,hl:#01b8cc --color=fg+:#346ebf,bg+:#060d0d,hl+:#01e6ff --color=info:#51d4a4,prompt:#2e4b4b,pointer:#01e6ff --color=marker:#db6291,spinner:#01b8cc,header:#db6291 --color=fg:#428080,bg:#121717,hl:#01b8cc --color=fg+:#346ebf,bg+:#060d0d,hl+:#01e6ff --color=info:#51d4a4,prompt:#2e4b4b,pointer:#01e6ff --color=marker:#e45b8b,spinner:#01b8cc,header:#e45b8b --color=fg:#428080,bg:#121717,hl:#01b8cc --color=fg+:#346ebf,bg+:#060d0d,hl+:#01e6ff --color=info:#51d4a4,prompt:#2e4b4b,pointer:#01e6ff --color=marker:#dc628b,spinner:#01b8cc,header:#dc628b --color=fg:#805b42,bg:#171412,hl:#ff7226 --color=fg+:#d4be2f,bg+:#0d0906,hl+:#ff9359 --color=info:#d45e97,prompt:#4b3a2e,pointer:#ff9359 --color=marker:#fa4566,spinner:#ff7226,header:#fa4566 --color=fg:#428080,bg:#121717,hl:#07bbc1 --color=fg+:#2b98d8,bg+:#060d0d,hl+:#00f3fb --color=info:#80ce92,prompt:#2e4b4b,pointer:#00f3fb --color=marker:#de6184,spinner:#07bbc1,header:#de6184 --color=fg:#804267,bg:#171215,hl:#f948a6 --color=fg+:#ff3546,bg+:#0d060a,hl+:#ff75bf --color=info:#f7c966,prompt:#4b2e40,pointer:#ff75bf --color=marker:#f8397f,spinner:#f948a6,header:#f8397f --color=fg:#4799ae,bg:#121617,hl:#00b3e5 --color=fg+:#5479e9,bg+:#060c0d,hl+:#19cdff --color=info:#57efb7,prompt:#48676f,pointer:#19cdff --color=marker:#e15d8e,spinner:#00b3e5,header:#e15d8e --color=fg:#ae4785,bg:#171215,hl:#f549b3 --color=fg+:#ff7575,bg+:#0d060a,hl+:#ff72c9 --color=info:#ffbc7a,prompt:#6f485f,pointer:#ff72c9 --color=marker:#f83982,spinner:#f549b3,header:#f83982 --color=fg:#4747ae,bg:#121217,hl:#5269ff --color=fg+:#33c07c,bg+:#06060d,hl+:#8595ff --color=info:#2b8696,prompt:#48486f,pointer:#8595ff --color=marker:#e04595,spinner:#5269ff,header:#e04595 --color=fg:#ae4770,bg:#171214,hl:#ff4687 --color=fg+:#b17d29,bg+:#0d0609,hl+:#ff79a8 --color=info:#dc49be,prompt:#6f4857,pointer:#ff79a8 --color=marker:#f73b86,spinner:#ff4687,header:#f73b86 --color=fg:#67afc1,bg:#121617,hl:#00b4dc --color=fg+:#9371e8,bg+:#060c0d,hl+:#10d3ff --color=info:#a53a6e,prompt:#597d87,pointer:#10d3ff --color=marker:#dd5f96,spinner:#00b4dc,header:#dd5f96 --color=fg:#67afc1,bg:#121617,hl:#00b4dc --color=fg+:#9371e8,bg+:#060c0d,hl+:#10d3ff --color=info:#a53a6e,prompt:#597d87,pointer:#10d3ff --color=marker:#db6091,spinner:#00b4dc,header:#db6091 --color=fg:#c16767,bg:#171212,hl:#ff4b5d --color=fg+:#b35ad1,bg+:#0d0606,hl+:#ff7e8b --color=info:#b3ce2f,prompt:#875959,pointer:#ff7e8b --color=marker:#fc3379,spinner:#ff4b5d,header:#fc3379 --color=fg:#c16767,bg:#171212,hl:#ff4b5d --color=fg+:#b35ad1,bg+:#0d0606,hl+:#ff7e8b --color=info:#b3ce2f,prompt:#875959,pointer:#ff7e8b --color=marker:#f8397c,spinner:#ff4b5d,header:#f8397c --color=fg:#ae4747,bg:#171212,hl:#ff4b5d --color=fg+:#b35ad1,bg+:#0d0606,hl+:#ff7e8b --color=info:#b3ce2f,prompt:#875959,pointer:#ff7e8b --color=marker:#f53f76,spinner:#ff4b5d,header:#f53f76 --color=fg:#ae8547,bg:#171512,hl:#f58e18 --color=fg+:#8968b3,bg+:#0d0a06,hl+:#ffa641 --color=info:#98bf0a,prompt:#877459,pointer:#ffa641 --color=marker:#f44f6b,spinner:#f58e18,header:#f44f6b --color=fg:#ae4799,bg:#171216,hl:#f04bc7 --color=fg+:#91a6f3,bg+:#0d060c,hl+:#ff6fdb --color=info:#813ec0,prompt:#87597d,pointer:#ff6fdb --color=marker:#fb328c,spinner:#f04bc7,header:#fb328c --color=fg:#d883c7,bg:#171216,hl:#f04bc7 --color=fg+:#91a6f3,bg+:#0d060c,hl+:#ff6fdb --color=info:#813ec0,prompt:#87597d,pointer:#ff6fdb --color=marker:#f93788,spinner:#f04bc7,header:#f93788 --color=fg:#d883c7,bg:#171216,hl:#f04bc7 --color=fg+:#91a6f3,bg+:#0d060c,hl+:#ff6fdb --color=info:#813ec0,prompt:#87597d,pointer:#ff6fdb --color=marker:#f73891,spinner:#f04bc7,header:#f73891 --color=fg:#d89483,bg:#171312,hl:#ff5f37 --color=fg+:#db5095,bg+:#0d0806,hl+:#ff886a --color=info:#b1992f,prompt:#876259,pointer:#ff886a --color=marker:#fd376f,spinner:#ff5f37,header:#fd376f --color=fg:#83d8d8,bg:#121717,hl:#07bbc1 --color=fg+:#d9a377,bg+:#060d0d,hl+:#00f3fb --color=info:#a43960,prompt:#598787,pointer:#00f3fb --color=marker:#e35d85,spinner:#07bbc1,header:#e35d85 --color=fg:#83d8d8,bg:#121717,hl:#07bbc1 --color=fg+:#d9a377,bg+:#060d0d,hl+:#00f3fb --color=info:#a43960,prompt:#598787,pointer:#00f3fb --color=marker:#e35d8c,spinner:#07bbc1,header:#e35d8c --color=fg:#d88383,bg:#171212,hl:#ff4c4f --color=fg+:#aa0e98,bg+:#0d0606,hl+:#ff7f81 --color=info:#da2168,prompt:#875959,pointer:#ff7f81 --color=marker:#f63f70,spinner:#ff4c4f,header:#f63f70 --color=fg:#d883c7,bg:#171216,hl:#f14bc2 --color=fg+:#7511b7,bg+:#0d060c,hl+:#ff70d7 --color=info:#c3994e,prompt:#87597d,pointer:#ff70d7 --color=marker:#f83985,spinner:#f14bc2,header:#f83985 --color=fg:#d883a5,bg:#171214,hl:#fb46a1 --color=fg+:#f91fef,bg+:#0d0609,hl+:#ff75ba --color=info:#be144a,prompt:#87596b,pointer:#ff75ba --color=marker:#f73a8c,spinner:#fb46a1,header:#f73a8c --color=fg:#d883a5,bg:#171214,hl:#fb46a1 --color=fg+:#f91fef,bg+:#0d0609,hl+:#ff75ba --color=info:#be144a,prompt:#87596b,pointer:#ff75ba --color=marker:#f43e87,spinner:#fb46a1,header:#f43e87 --color=fg:#83a5d8,bg:#121417,hl:#3d8bff --color=fg+:#3ba08f,bg+:#06090d,hl+:#70a9ff --color=info:#8a37e8,prompt:#596b87,pointer:#70a9ff --color=marker:#de529a,spinner:#3d8bff,header:#de529a --color=fg:#83d8d8,bg:#121717,hl:#0cbebb --color=fg+:#36579a,bg+:#060d0d,hl+:#00fdf9 --color=info:#41be5a,prompt:#598787,pointer:#00fdf9 --color=marker:#dc638d,spinner:#0cbebb,header:#dc638d --color=fg:#a583d8,bg:#141217,hl:#9356f5 --color=fg+:#aa2865,bg+:#09060d,hl+:#b07fff --color=info:#469367,prompt:#6b5987,pointer:#b07fff --color=marker:#ec3992,spinner:#9356f5,header:#ec3992 --color=fg:#a583d8,bg:#141217,hl:#9356f5 --color=fg+:#aa2865,bg+:#09060d,hl+:#b07fff --color=info:#469367,prompt:#6b5987,pointer:#b07fff --color=marker:#e73e93,spinner:#9356f5,header:#e73e93 --color=fg:#a583d8,bg:#141217,hl:#9356f5 --color=fg+:#aa2865,bg+:#09060d,hl+:#b07fff --color=info:#469367,prompt:#6b5987,pointer:#b07fff --color=marker:#ee359a,spinner:#9356f5,header:#ee359a --color=fg:#d883a5,bg:#171214,hl:#fb469e --color=fg+:#51973a,bg+:#0d0609,hl+:#ff75b8 --color=info:#6d3397,prompt:#87596b,pointer:#ff75b8 --color=marker:#f53e81,spinner:#fb469e,header:#f53e81 --color=fg:#d89483,bg:#171312,hl:#ff6f27 --color=fg+:#de5788,bg+:#0d0806,hl+:#ff915a --color=info:#9a8896,prompt:#876259,pointer:#ff915a --color=marker:#f94465,spinner:#ff6f27,header:#f94465 --color=fg:#d883a5,bg:#171214,hl:#fe4693 --color=fg+:#7c899c,bg+:#0d0609,hl+:#ff78b0 --color=info:#e8575e,prompt:#87596b,pointer:#ff78b0 --color=marker:#fd3082,spinner:#fe4693,header:#fd3082 --color=fg:#d883a5,bg:#171214,hl:#fe4693 --color=fg+:#7c899c,bg+:#0d0609,hl+:#ff78b0 --color=info:#e8575e,prompt:#87596b,pointer:#ff78b0 --color=marker:#f73c7d,spinner:#fe4693,header:#f73c7d --color=fg:#d883a5,bg:#171214,hl:#fe4693 --color=fg+:#7c899c,bg+:#0d0609,hl+:#ff78b0 --color=info:#e8575e,prompt:#87596b,pointer:#ff78b0 --color=marker:#fc3380,spinner:#fe4693,header:#fc3380 --color=fg:#d883a5,bg:#171214,hl:#fe4693 --color=fg+:#7c899c,bg+:#0d0609,hl+:#ff78b0 --color=info:#e8575e,prompt:#87596b,pointer:#ff78b0 --color=marker:#f53f82,spinner:#fe4693,header:#f53f82 --color=fg:#8383d8,bg:#121217,hl:#5962fd --color=fg+:#2e78a6,bg+:#06060d,hl+:#8a90ff --color=info:#ad5276,prompt:#595987,pointer:#8a90ff --color=marker:#e8399c,spinner:#5962fd,header:#e8399c --color=fg:#b683d8,bg:#151217,hl:#bd53ee --color=fg+:#ca476e,bg+:#0a060d,hl+:#d375ff --color=info:#396ed6,prompt:#745987,pointer:#d375ff --color=marker:#eb3f95,spinner:#bd53ee,header:#eb3f95 --color=fg:#b683d8,bg:#151217,hl:#bd53ee --color=fg+:#ca476e,bg+:#0a060d,hl+:#d375ff --color=info:#396ed6,prompt:#745987,pointer:#d375ff --color=marker:#f23399,spinner:#bd53ee,header:#f23399 --color=fg:#b683d8,bg:#151217,hl:#bd53ee --color=fg+:#ca476e,bg+:#0a060d,hl+:#d375ff --color=info:#396ed6,prompt:#745987,pointer:#d375ff --color=marker:#f33494,spinner:#bd53ee,header:#f33494 --color=fg:#b683d8,bg:#151217,hl:#bd53ee --color=fg+:#ca476e,bg+:#0a060d,hl+:#d375ff --color=info:#396ed6,prompt:#745987,pointer:#d375ff --color=marker:#ec3c9a,spinner:#bd53ee,header:#ec3c9a --color=fg:#d883a5,bg:#171214,hl:#fa48a4 --color=fg+:#e73766,bg+:#0d0609,hl+:#ff76bd --color=info:#9d7253,prompt:#87596b,pointer:#ff76bd --color=marker:#f43f87,spinner:#fa48a4,header:#f43f87 --color=fg:#d883a5,bg:#171214,hl:#fa48a4 --color=fg+:#e73766,bg+:#0d0609,hl+:#ff76bd --color=info:#9d7253,prompt:#87596b,pointer:#ff76bd --color=marker:#f43e87,spinner:#fa48a4,header:#f43e87 --color=fg:#d883a5,bg:#171214,hl:#fa48a4 --color=fg+:#e73766,bg+:#0d0609,hl+:#ff76bd --color=info:#9d7253,prompt:#87596b,pointer:#ff76bd --color=marker:#fc3185,spinner:#fa48a4,header:#fc3185 --color=fg:#d883a5,bg:#171214,hl:#fa48a4 --color=fg+:#e73766,bg+:#0d0609,hl+:#ff76bd --color=info:#9d7253,prompt:#87596b,pointer:#ff76bd --color=marker:#f73c81,spinner:#fa48a4,header:#f73c81 --color=fg:#83c7d8,bg:#121617,hl:#00b3e0 --color=fg+:#2e7f82,bg+:#060c0d,hl+:#14d0ff --color=info:#676cc4,prompt:#597d87,pointer:#14d0ff --color=marker:#e15b97,spinner:#00b3e0,header:#e15b97 --color=fg:#83c7d8,bg:#121617,hl:#00b3e0 --color=fg+:#2e7f82,bg+:#060c0d,hl+:#14d0ff --color=info:#676cc4,prompt:#597d87,pointer:#14d0ff --color=marker:#dc6090,spinner:#00b3e0,header:#dc6090 --color=fg:#83c7d8,bg:#121617,hl:#00b3e0 --color=fg+:#2e7f82,bg+:#060c0d,hl+:#14d0ff --color=info:#676cc4,prompt:#597d87,pointer:#14d0ff --color=marker:#e35b8b,spinner:#00b3e0,header:#e35b8b --color=fg:#83d8d8,bg:#121717,hl:#0ec2b6 --color=fg+:#b16e7a,bg+:#060d0d,hl+:#04ffee --color=info:#285a88,prompt:#598787,pointer:#04ffee --color=marker:#df6382,spinner:#0ec2b6,header:#df6382 --color=fg:#83d8d8,bg:#121717,hl:#0ec2b6 --color=fg+:#b16e7a,bg+:#060d0d,hl+:#04ffee --color=info:#285a88,prompt:#598787,pointer:#04ffee --color=marker:#df628e,spinner:#0ec2b6,header:#df628e --color=fg:#83d8d8,bg:#121717,hl:#1f968a --color=fg+:#cf5631,bg+:#060d0d,hl+:#05e3cd --color=info:#1982de,prompt:#598787,pointer:#05e3cd --color=marker:#d95784,spinner:#1f968a,header:#d95784 --color=fg:#67c1c1,bg:#121717,hl:#1f968a --color=fg+:#cf5631,bg+:#060d0d,hl+:#05e3cd --color=info:#1982de,prompt:#3b5d5d,pointer:#05e3cd --color=marker:#d45b7d,spinner:#1f968a,header:#d45b7d --color=fg:#67c1c1,bg:#121717,hl:#1f968a --color=fg+:#cf5631,bg+:#060d0d,hl+:#05e3cd --color=info:#1982de,prompt:#2e4b4b,pointer:#05e3cd --color=marker:#d55b7d,spinner:#1f968a,header:#d55b7d --color=fg:#67c1c1,bg:#121717,hl:#1f968a --color=fg+:#cf5631,bg+:#060d0d,hl+:#05e3cd --color=info:#1982de,prompt:#2e4b4b,pointer:#05e3cd --color=marker:#d55b7d,spinner:#1f968a,header:#d55b7d --color=fg:#c17967,bg:#171312,hl:#e36424 --color=fg+:#e03976,bg+:#0d0806,hl+:#ff7c3b --color=info:#4580b7,prompt:#4b342e,pointer:#ff7c3b --color=marker:#f34170,spinner:#e36424,header:#f34170 --color=fg:#c16767,bg:#171212,hl:#ed423c --color=fg+:#5a9a48,bg+:#0d0606,hl+:#ff625d --color=info:#da378e,prompt:#4b2e2e,pointer:#ff625d --color=marker:#f6376a,spinner:#ed423c,header:#f6376a --color=fg:#8b67c1,bg:#141217,hl:#8653da --color=fg+:#d9319c,bg+:#09060d,hl+:#9f65fb --color=info:#2388aa,prompt:#3a2e4b,pointer:#9f65fb --color=marker:#eb3493,spinner:#8653da,header:#eb3493 --color=fg:#8b67c1,bg:#141217,hl:#8b5adb --color=fg+:#d9319c,bg+:#09060d,hl+:#a46dfb --color=info:#2388aa,prompt:#3a2e4b,pointer:#a46dfb --color=marker:#e6408d,spinner:#8b5adb,header:#e6408d --color=fg:#6767c1,bg:#121217,hl:#4863e9 --color=fg+:#599150,bg+:#06060d,hl+:#657fff --color=info:#d63488,prompt:#2e2e4b,pointer:#657fff --color=marker:#e53b96,spinner:#4863e9,header:#e53b96" 3 | -------------------------------------------------------------------------------- /assets/samples/gtk-theme.mx: -------------------------------------------------------------------------------- 1 | # 2 | # 3 | # hyper @ mxc-v1.5 4 | 5 | NOGUI=True 6 | NAME=mxc-v1.5 7 | 8 | GTK3_GENERATE_DARK=True 9 | BASE16_GENERATE_DARK=True 10 | 11 | BASE16_INVERT_TERMINAL=False 12 | BASE16_MILD_TERMINAL=False 13 | 14 | CINNAMON_OPACITY=1.0 15 | CARET1_FG=42a0ff 16 | CARET2_FG=64994c 17 | ACCENT_BG=6c45e1 18 | CARET_SIZE=0.04 19 | GRADIENT=0.0 20 | 21 | OUTLINE_WIDTH=1 22 | BTN_OUTLINE_OFFSET=-3 23 | BTN_OUTLINE_WIDTH=1 24 | 25 | BG=09090c 26 | BTN_BG=0e0e1b 27 | BTN_FG=393975 28 | FG=5656be 29 | HDR_BTN_BG=0e0e1b 30 | HDR_BTN_FG=393975 31 | ICONS_NUMIX_STYLE=0 32 | ICONS_SYMBOLIC_ACTION=0e0e1b 33 | ICONS_SYMBOLIC_PANEL=262641 34 | ICONS_STYLE=archdroid 35 | ICONS_ARCHDROID=3f3fa2 36 | ICONS_DARK=000000 37 | ICONS_LIGHT=262641 38 | ICONS_LIGHT_FOLDER=0e0e1b 39 | ICONS_MEDIUM=5c56ce 40 | HDR_BG=000000 41 | HDR_FG=3e3e66 42 | SEL_BG=191925 43 | SEL_FG=42a0ff 44 | TXT_BG=09090c 45 | TXT_FG=5656be 46 | MENU_BG=07070e 47 | MENU_FG=4e4e7e 48 | SPACING=3 49 | ROUNDNESS=2 50 | 51 | SPOTIFY_PROTO_BG=09090c 52 | SPOTIFY_PROTO_FG=0e0e1b 53 | SPOTIFY_PROTO_SEL=1c87f2 54 | 55 | THEME_STYLE=oomox 56 | TERMINAL_THEME_MODE=manual 57 | TERMINAL_THEME_AUTO_BGFG=False 58 | TERMINAL_THEME_EXTEND_PALETTE=False 59 | TERMINAL_THEME_ACCURACY=128 60 | 61 | TERMINAL_BACKGROUND=09090c 62 | TERMINAL_FOREGROUND=5656be 63 | TERMINAL_ACCENT_COLOR=1c87f2 64 | 65 | TERMINAL_COLOR0=0e0e1b 66 | TERMINAL_COLOR1=dc4f9d 67 | TERMINAL_COLOR2=6bd3ab 68 | TERMINAL_COLOR3=ea8773 69 | TERMINAL_COLOR4=4d90fd 70 | TERMINAL_COLOR5=5c56ce 71 | TERMINAL_COLOR6=4db5ed 72 | TERMINAL_COLOR7=393975 73 | TERMINAL_COLOR8=262641 74 | TERMINAL_COLOR9=e479b4 75 | TERMINAL_COLOR10=92dfc2 76 | TERMINAL_COLOR11=f1ad9f 77 | TERMINAL_COLOR12=7fb0fe 78 | TERMINAL_COLOR13=827ed9 79 | TERMINAL_COLOR14=7bc8f2 80 | TERMINAL_COLOR15=7272d5 81 | -------------------------------------------------------------------------------- /assets/samples/hexless: -------------------------------------------------------------------------------- 1 | export HLC00=162727 2 | export HLC01=dc527e 3 | export HLC02=58d59b 4 | export HLC03=dc9539 5 | export HLC04=5292e6 6 | export HLC05=565cb8 7 | export HLC06=1bbddd 8 | export HLC07=428080 9 | export HLC08=2e4b4b 10 | export HLC09=e57c9d 11 | export HLC10=81dfb3 12 | export HLC11=e4ac64 13 | export HLC12=7faeec 14 | export HLC13=7a7fc7 15 | export HLC14=43cce8 16 | export HLC15=83d8d8 17 | export HLCX1=f62e6d 18 | export HLCX2=34ee98 19 | export HLCX3=f99512 20 | export HLCX4=2f89ff 21 | export HLCX5=2f3ad4 22 | export HLCX6=00c6ee 23 | export HLDK0=060d0d 24 | export HLDK1=0d1a1a 25 | export HLDK2=162727 26 | export HLDK3=243737 27 | export HLDK4=2e4b4b 28 | export HLDK5=3b5d5d 29 | export HLDK6=486f6f 30 | export HLDK7=598787 31 | export HLDK8=669898 32 | export HLDK9=79a3a3 33 | export HLDL0=0d1111 34 | export HLDL1=182525 35 | export HLDL2=1c3636 36 | export HLDL3=1f3d3d 37 | export HLDL4=305e5e 38 | export HLDL5=428080 39 | export HLDL6=47aeae 40 | export HLDL7=67c1c1 41 | export HLDL8=83d8d8 42 | export HLDL9=aae4e4 43 | export HLSBG=c8464e 44 | export HLSFG=d6c2c2 45 | export HLWBG=219088 46 | export HLWFG=000000 47 | export HLEBG=a28136 48 | export HLEFG=000000 49 | export HLXBG=121717 50 | export HLXFG=67c1c1 51 | export HLOBG=222f2f 52 | export HLOFG=08dcce 53 | export HLWBX=08dcce 54 | export HLWFX=000000 55 | -------------------------------------------------------------------------------- /assets/samples/kitty-theme.conf: -------------------------------------------------------------------------------- 1 | # hyper @ mxc-v1.5 2 | 3 | # Add ↓ to your ~/.config/kitty/kitty.conf 4 | 5 | # include ~/.config/mxc/kitty-theme.conf 6 | # map kitty_mod+f12 remote_control set-colors "~/.config/mxc/kitty-theme.conf" 7 | 8 | color0 #0e0e1b 9 | color1 #dc4f9d 10 | color2 #6bd3ab 11 | color3 #ea8773 12 | color4 #4d90fd 13 | color5 #5c56ce 14 | color6 #4db5ed 15 | color7 #393975 16 | color8 #262641 17 | color9 #e479b4 18 | color10 #92dfc2 19 | color11 #f1ad9f 20 | color12 #7fb0fe 21 | color13 #827ed9 22 | color14 #7bc8f2 23 | color15 #7272d5 24 | color20 #64994c 25 | color21 #000000 26 | color30 #1c87f2 27 | color31 #000000 28 | color40 #6c45e1 29 | color41 #d6c2c2 30 | background #09090c 31 | foreground #5656be 32 | selection_background #191925 33 | selection_foreground #42a0ff 34 | cursor_text_color #000000 35 | cursor #42a0ff 36 | -------------------------------------------------------------------------------- /assets/samples/ls_colors: -------------------------------------------------------------------------------- 1 | di=0;38;2;28;135;242:ln=0;38;2;92;86;206:cd=0;38;2;92;86;206;48;2;14;14;27:ex=1;38;2;220;79;157:tw=0:so=0;38;2;0;0;0;48;2;92;86;206:st=0:pi=0;38;2;0;0;0;48;2;77;144;253:mi=0;38;2;0;0;0;48;2;220;79;157:no=0:bd=0;38;2;77;181;237;48;2;14;14;27:*~=0;38;2;38;38;65:fi=0:or=0;38;2;0;0;0;48;2;220;79;157:ow=0:*.a=1;38;2;220;79;157:*.p=0;38;2;107;211;171:*.r=0;38;2;107;211;171:*.c=0;38;2;107;211;171:*.h=0;38;2;107;211;171:*.d=0;38;2;107;211;171:*.m=0;38;2;107;211;171:*.o=0;38;2;38;38;65:*.z=4;38;2;77;181;237:*.t=0;38;2;107;211;171:*.as=0;38;2;107;211;171:*.bc=0;38;2;38;38;65:*.ts=0;38;2;107;211;171:*.cr=0;38;2;107;211;171:*.7z=4;38;2;77;181;237:*.jl=0;38;2;107;211;171:*.go=0;38;2;107;211;171:*.hs=0;38;2;107;211;171:*.kt=0;38;2;107;211;171:*.rs=0;38;2;107;211;171:*.gv=0;38;2;107;211;171:*.py=0;38;2;107;211;171:*.lo=0;38;2;38;38;65:*.md=0;38;2;234;135;115:*.pm=0;38;2;107;211;171:*.cp=0;38;2;107;211;171:*.ps=0;38;2;220;79;157:*.vb=0;38;2;107;211;171:*.fs=0;38;2;107;211;171:*.pp=0;38;2;107;211;171:*.ll=0;38;2;107;211;171:*.mn=0;38;2;107;211;171:*.td=0;38;2;107;211;171:*.gz=4;38;2;77;181;237:*.ex=0;38;2;107;211;171:*.la=0;38;2;38;38;65:*css=0;38;2;107;211;171:*.sh=0;38;2;107;211;171:*.bz=4;38;2;77;181;237:*.ui=0;38;2;234;135;115:*.xz=4;38;2;77;181;237:*.el=0;38;2;107;211;171:*.pl=0;38;2;107;211;171:*.hh=0;38;2;107;211;171:*.hi=0;38;2;38;38;65:*.so=1;38;2;220;79;157:*.di=0;38;2;107;211;171:*.ml=0;38;2;107;211;171:*.ko=1;38;2;220;79;157:*.rb=0;38;2;107;211;171:*.cs=0;38;2;107;211;171:*.rm=3;38;2;123;200;242:*.cc=0;38;2;107;211;171:*.nb=0;38;2;107;211;171:*.js=0;38;2;107;211;171:*.hxx=0;38;2;107;211;171:*.xls=0;38;2;220;79;157:*.lua=0;38;2;107;211;171:*.toc=0;38;2;38;38;65:*.bsh=0;38;2;107;211;171:*.pgm=3;38;2;123;200;242:*.bat=1;38;2;220;79;157:*.bbl=0;38;2;38;38;65:*.ilg=0;38;2;38;38;65:*.c++=0;38;2;107;211;171:*.dmg=4;38;2;77;181;237:*.exs=0;38;2;107;211;171:*.cxx=0;38;2;107;211;171:*.bag=4;38;2;77;181;237:*.pps=0;38;2;220;79;157:*.rtf=0;38;2;220;79;157:*.kex=0;38;2;220;79;157:*.pod=0;38;2;107;211;171:*.def=0;38;2;107;211;171:*.fsi=0;38;2;107;211;171:*.mov=3;38;2;123;200;242:*.cpp=0;38;2;107;211;171:*.erl=0;38;2;107;211;171:*.avi=3;38;2;123;200;242:*.m4v=3;38;2;123;200;242:*.vob=3;38;2;123;200;242:*.clj=0;38;2;107;211;171:*.ics=0;38;2;220;79;157:*.gvy=0;38;2;107;211;171:*.awk=0;38;2;107;211;171:*.img=4;38;2;77;181;237:*.odp=0;38;2;220;79;157:*.jar=4;38;2;77;181;237:*.bmp=3;38;2;123;200;242:*.tgz=4;38;2;77;181;237:*.tmp=0;38;2;38;38;65:*.elm=0;38;2;107;211;171:*.csx=0;38;2;107;211;171:*.xml=0;38;2;234;135;115:*.tml=0;38;2;234;135;115:*.deb=4;38;2;77;181;237:*.mp4=3;38;2;123;200;242:*.vim=0;38;2;107;211;171:*.ppm=3;38;2;123;200;242:*.bin=4;38;2;77;181;237:*.git=0;38;2;38;38;65:*.pas=0;38;2;107;211;171:*.psd=3;38;2;123;200;242:*.idx=0;38;2;38;38;65:*.svg=3;38;2;123;200;242:*.txt=0;38;2;234;135;115:*.bib=0;38;2;234;135;115:*TODO=1:*.cfg=0;38;2;234;135;115:*.apk=4;38;2;77;181;237:*.jpg=3;38;2;123;200;242:*.tbz=4;38;2;77;181;237:*.ipp=0;38;2;107;211;171:*.bst=0;38;2;234;135;115:*hgrc=0;38;2;146;223;194:*.mir=0;38;2;107;211;171:*.png=3;38;2;123;200;242:*.pyc=0;38;2;38;38;65:*.mkv=3;38;2;123;200;242:*.odt=0;38;2;220;79;157:*.pkg=4;38;2;77;181;237:*.xmp=0;38;2;234;135;115:*.aux=0;38;2;38;38;65:*.htc=0;38;2;107;211;171:*.h++=0;38;2;107;211;171:*.mid=3;38;2;57;57;117:*.eps=3;38;2;123;200;242:*.rpm=4;38;2;77;181;237:*.fon=0;38;2;77;144;253:*.pro=0;38;2;146;223;194:*.sxw=0;38;2;220;79;157:*.pbm=3;38;2;123;200;242:*.inc=0;38;2;107;211;171:*.out=0;38;2;38;38;65:*.ppt=0;38;2;220;79;157:*.blg=0;38;2;38;38;65:*.arj=4;38;2;77;181;237:*.ind=0;38;2;38;38;65:*.bcf=0;38;2;38;38;65:*.ico=3;38;2;123;200;242:*.tar=4;38;2;77;181;237:*.mpg=3;38;2;123;200;242:*.fnt=0;38;2;77;144;253:*.zst=4;38;2;77;181;237:*.tif=3;38;2;123;200;242:*.flv=3;38;2;123;200;242:*.inl=0;38;2;107;211;171:*.gif=3;38;2;123;200;242:*.dot=0;38;2;107;211;171:*.kts=0;38;2;107;211;171:*.tex=0;38;2;107;211;171:*.tcl=0;38;2;107;211;171:*.dpr=0;38;2;107;211;171:*.bak=0;38;2;38;38;65:*.xcf=3;38;2;123;200;242:*.asa=0;38;2;107;211;171:*.otf=0;38;2;77;144;253:*.rar=4;38;2;77;181;237:*.ods=0;38;2;220;79;157:*.sxi=0;38;2;220;79;157:*.fsx=0;38;2;107;211;171:*.htm=0;38;2;234;135;115:*.xlr=0;38;2;220;79;157:*.m4a=3;38;2;57;57;117:*.wmv=3;38;2;123;200;242:*.sbt=0;38;2;107;211;171:*.rst=0;38;2;234;135;115:*.ltx=0;38;2;107;211;171:*.wma=3;38;2;57;57;117:*.ogg=3;38;2;57;57;117:*.iso=4;38;2;77;181;237:*.hpp=0;38;2;107;211;171:*.pid=0;38;2;38;38;65:*.sql=0;38;2;107;211;171:*.mp3=3;38;2;57;57;117:*.cgi=0;38;2;107;211;171:*.dll=1;38;2;220;79;157:*.ttf=0;38;2;77;144;253:*.dox=0;38;2;146;223;194:*.pdf=0;38;2;220;79;157:*.zsh=0;38;2;107;211;171:*.log=0;38;2;38;38;65:*.fls=0;38;2;38;38;65:*.aif=3;38;2;57;57;117:*.sty=0;38;2;38;38;65:*.epp=0;38;2;107;211;171:*.com=1;38;2;220;79;157:*.exe=1;38;2;220;79;157:*.ps1=0;38;2;107;211;171:*.php=0;38;2;107;211;171:*.nix=0;38;2;234;135;115:*.swp=0;38;2;38;38;65:*.swf=3;38;2;123;200;242:*.tsx=0;38;2;107;211;171:*.bz2=4;38;2;77;181;237:*.csv=0;38;2;234;135;115:*.mli=0;38;2;107;211;171:*.doc=0;38;2;220;79;157:*.ini=0;38;2;234;135;115:*.zip=4;38;2;77;181;237:*.wav=3;38;2;57;57;117:*.yml=0;38;2;234;135;115:*.vcd=4;38;2;77;181;237:*.jpeg=3;38;2;123;200;242:*.hgrc=0;38;2;146;223;194:*.psm1=0;38;2;107;211;171:*.orig=0;38;2;38;38;65:*.diff=0;38;2;107;211;171:*.docx=0;38;2;220;79;157:*.bash=0;38;2;107;211;171:*.html=0;38;2;234;135;115:*.make=0;38;2;146;223;194:*.fish=0;38;2;107;211;171:*.epub=0;38;2;220;79;157:*.java=0;38;2;107;211;171:*.json=0;38;2;234;135;115:*.lock=0;38;2;38;38;65:*.flac=3;38;2;57;57;117:*.xlsx=0;38;2;220;79;157:*.rlib=0;38;2;38;38;65:*.yaml=0;38;2;234;135;115:*.toml=0;38;2;234;135;115:*.psd1=0;38;2;107;211;171:*.tiff=3;38;2;123;200;242:*.conf=0;38;2;234;135;115:*.dart=0;38;2;107;211;171:*.tbz2=4;38;2;77;181;237:*.purs=0;38;2;107;211;171:*.less=0;38;2;107;211;171:*.mpeg=3;38;2;123;200;242:*.h264=3;38;2;123;200;242:*.pptx=0;38;2;220;79;157:*.lisp=0;38;2;107;211;171:*.cmake=0;38;2;146;223;194:*.toast=4;38;2;77;181;237:*README=0;38;2;9;9;12;48;2;234;135;115:*.cache=0;38;2;38;38;65:*.xhtml=0;38;2;234;135;115:*.mdown=0;38;2;234;135;115:*.swift=0;38;2;107;211;171:*.shtml=0;38;2;234;135;115:*.class=0;38;2;38;38;65:*.cabal=0;38;2;107;211;171:*passwd=0;38;2;234;135;115:*.ipynb=0;38;2;107;211;171:*.scala=0;38;2;107;211;171:*shadow=0;38;2;234;135;115:*.dyn_o=0;38;2;38;38;65:*.patch=0;38;2;107;211;171:*INSTALL=0;38;2;9;9;12;48;2;234;135;115:*.matlab=0;38;2;107;211;171:*.groovy=0;38;2;107;211;171:*.flake8=0;38;2;146;223;194:*LICENSE=0;38;2;57;57;117:*COPYING=0;38;2;57;57;117:*.dyn_hi=0;38;2;38;38;65:*.config=0;38;2;234;135;115:*TODO.md=1:*.gradle=0;38;2;107;211;171:*.ignore=0;38;2;146;223;194:*Doxyfile=0;38;2;146;223;194:*.desktop=0;38;2;234;135;115:*setup.py=0;38;2;146;223;194:*Makefile=0;38;2;146;223;194:*TODO.txt=1:*.gemspec=0;38;2;146;223;194:*README.md=0;38;2;9;9;12;48;2;234;135;115:*COPYRIGHT=0;38;2;57;57;117:*.cmake.in=0;38;2;146;223;194:*configure=0;38;2;146;223;194:*.markdown=0;38;2;234;135;115:*.DS_Store=0;38;2;38;38;65:*.kdevelop=0;38;2;146;223;194:*.fdignore=0;38;2;146;223;194:*.rgignore=0;38;2;146;223;194:*INSTALL.md=0;38;2;9;9;12;48;2;234;135;115:*.gitignore=0;38;2;146;223;194:*CODEOWNERS=0;38;2;146;223;194:*SConscript=0;38;2;146;223;194:*SConstruct=0;38;2;146;223;194:*.scons_opt=0;38;2;38;38;65:*.localized=0;38;2;38;38;65:*.gitconfig=0;38;2;146;223;194:*README.txt=0;38;2;9;9;12;48;2;234;135;115:*Dockerfile=0;38;2;234;135;115:*Makefile.in=0;38;2;38;38;65:*LICENSE-MIT=0;38;2;57;57;117:*INSTALL.txt=0;38;2;9;9;12;48;2;234;135;115:*Makefile.am=0;38;2;146;223;194:*MANIFEST.in=0;38;2;146;223;194:*.gitmodules=0;38;2;146;223;194:*.travis.yml=0;38;2;107;211;171:*.synctex.gz=0;38;2;38;38;65:*.applescript=0;38;2;107;211;171:*configure.ac=0;38;2;146;223;194:*.fdb_latexmk=0;38;2;38;38;65:*CONTRIBUTORS=0;38;2;9;9;12;48;2;234;135;115:*appveyor.yml=0;38;2;107;211;171:*.clang-format=0;38;2;146;223;194:*CMakeCache.txt=0;38;2;38;38;65:*.gitattributes=0;38;2;146;223;194:*LICENSE-APACHE=0;38;2;57;57;117:*CMakeLists.txt=0;38;2;146;223;194:*CONTRIBUTORS.md=0;38;2;9;9;12;48;2;234;135;115:*CONTRIBUTORS.txt=0;38;2;9;9;12;48;2;234;135;115:*requirements.txt=0;38;2;146;223;194:*.sconsign.dblite=0;38;2;38;38;65:*package-lock.json=0;38;2;38;38;65:*.CFUserTextEncoding=0;38;2;38;38;65 2 | -------------------------------------------------------------------------------- /assets/samples/lscolors: -------------------------------------------------------------------------------- 1 | tw=0:st=0:bd=0;38;2;56;176;246;48;2;22;22;39:ex=1;38;2;223;65;155:no=0:or=0;38;2;6;6;13;48;2;223;65;155:ln=0;38;2;90;80;201:ow=0:fi=0:*~=0;38;2;46;46;75:di=0;38;2;72;99;233:pi=0;38;2;6;6;13;48;2;92;135;245:so=0;38;2;6;6;13;48;2;90;80;201:mi=0;38;2;6;6;13;48;2;223;65;155:cd=0;38;2;90;80;201;48;2;22;22;39:*.h=0;38;2;95;206;182:*.d=0;38;2;95;206;182:*.r=0;38;2;95;206;182:*.c=0;38;2;95;206;182:*.m=0;38;2;95;206;182:*.a=1;38;2;223;65;155:*.o=0;38;2;46;46;75:*.z=4;38;2;56;176;246:*.t=0;38;2;95;206;182:*.p=0;38;2;95;206;182:*.cr=0;38;2;95;206;182:*.hh=0;38;2;95;206;182:*.kt=0;38;2;95;206;182:*.gz=4;38;2;56;176;246:*.cs=0;38;2;95;206;182:*.nb=0;38;2;95;206;182:*.gv=0;38;2;95;206;182:*.go=0;38;2;95;206;182:*.pl=0;38;2;95;206;182:*.fs=0;38;2;95;206;182:*.ui=0;38;2;239;129;85:*.di=0;38;2;95;206;182:*.sh=0;38;2;95;206;182:*.ts=0;38;2;95;206;182:*.7z=4;38;2;56;176;246:*.py=0;38;2;95;206;182:*.rb=0;38;2;95;206;182:*.hi=0;38;2;46;46;75:*.ko=1;38;2;223;65;155:*.rs=0;38;2;95;206;182:*.ex=0;38;2;95;206;182:*.as=0;38;2;95;206;182:*.pm=0;38;2;95;206;182:*.so=1;38;2;223;65;155:*.xz=4;38;2;56;176;246:*.vb=0;38;2;95;206;182:*.ll=0;38;2;95;206;182:*.pp=0;38;2;95;206;182:*.el=0;38;2;95;206;182:*.cp=0;38;2;95;206;182:*.bz=4;38;2;56;176;246:*.rm=3;38;2;105;196;248:*.td=0;38;2;95;206;182:*.la=0;38;2;46;46;75:*.md=0;38;2;239;129;85:*.js=0;38;2;95;206;182:*css=0;38;2;95;206;182:*.ml=0;38;2;95;206;182:*.hs=0;38;2;95;206;182:*.bc=0;38;2;46;46;75:*.mn=0;38;2;95;206;182:*.ps=0;38;2;223;65;155:*.lo=0;38;2;46;46;75:*.cc=0;38;2;95;206;182:*.jl=0;38;2;95;206;182:*.pdf=0;38;2;223;65;155:*.hxx=0;38;2;95;206;182:*.odp=0;38;2;223;65;155:*.exs=0;38;2;95;206;182:*.jpg=3;38;2;105;196;248:*.otf=0;38;2;92;135;245:*.lua=0;38;2;95;206;182:*.img=4;38;2;56;176;246:*.arj=4;38;2;56;176;246:*.tcl=0;38;2;95;206;182:*.bsh=0;38;2;95;206;182:*.pgm=3;38;2;105;196;248:*.inl=0;38;2;95;206;182:*.ind=0;38;2;46;46;75:*.pps=0;38;2;223;65;155:*.bat=1;38;2;223;65;155:*.pyc=0;38;2;46;46;75:*.vcd=4;38;2;56;176;246:*.bib=0;38;2;239;129;85:*.fls=0;38;2;46;46;75:*.pod=0;38;2;95;206;182:*.tsx=0;38;2;95;206;182:*.tif=3;38;2;105;196;248:*.ods=0;38;2;223;65;155:*.cpp=0;38;2;95;206;182:*.sxi=0;38;2;223;65;155:*.pro=0;38;2;134;218;200:*.pbm=3;38;2;105;196;248:*.bin=4;38;2;56;176;246:*.erl=0;38;2;95;206;182:*.dll=1;38;2;223;65;155:*.cxx=0;38;2;95;206;182:*.vim=0;38;2;95;206;182:*.apk=4;38;2;56;176;246:*.vob=3;38;2;105;196;248:*.mpg=3;38;2;105;196;248:*.hpp=0;38;2;95;206;182:*.tgz=4;38;2;56;176;246:*.avi=3;38;2;105;196;248:*.rtf=0;38;2;223;65;155:*.rar=4;38;2;56;176;246:*.log=0;38;2;46;46;75:*.m4v=3;38;2;105;196;248:*.xcf=3;38;2;105;196;248:*.dox=0;38;2;134;218;200:*.sql=0;38;2;95;206;182:*.bmp=3;38;2;105;196;248:*.swp=0;38;2;46;46;75:*.csx=0;38;2;95;206;182:*.eps=3;38;2;105;196;248:*.gif=3;38;2;105;196;248:*.wav=3;38;2;66;66;128:*.asa=0;38;2;95;206;182:*.txt=0;38;2;239;129;85:*.php=0;38;2;95;206;182:*.cfg=0;38;2;239;129;85:*.exe=1;38;2;223;65;155:*.awk=0;38;2;95;206;182:*.rst=0;38;2;239;129;85:*.zsh=0;38;2;95;206;182:*.ttf=0;38;2;92;135;245:*.blg=0;38;2;46;46;75:*.mir=0;38;2;95;206;182:*.tar=4;38;2;56;176;246:*.elm=0;38;2;95;206;182:*.ps1=0;38;2;95;206;182:*.csv=0;38;2;239;129;85:*.def=0;38;2;95;206;182:*.flv=3;38;2;105;196;248:*.cgi=0;38;2;95;206;182:*.c++=0;38;2;95;206;182:*.aif=3;38;2;66;66;128:*.htm=0;38;2;239;129;85:*.fnt=0;38;2;92;135;245:*.doc=0;38;2;223;65;155:*.iso=4;38;2;56;176;246:*.ppt=0;38;2;223;65;155:*.m4a=3;38;2;66;66;128:*.mli=0;38;2;95;206;182:*.wma=3;38;2;66;66;128:*.wmv=3;38;2;105;196;248:*.sbt=0;38;2;95;206;182:*.clj=0;38;2;95;206;182:*.ltx=0;38;2;95;206;182:*.com=1;38;2;223;65;155:*.xls=0;38;2;223;65;155:*.fsi=0;38;2;95;206;182:*.fon=0;38;2;92;135;245:*.h++=0;38;2;95;206;182:*.git=0;38;2;46;46;75:*.dpr=0;38;2;95;206;182:*.gvy=0;38;2;95;206;182:*.tml=0;38;2;239;129;85:*.dmg=4;38;2;56;176;246:*.bak=0;38;2;46;46;75:*.ico=3;38;2;105;196;248:*.sty=0;38;2;46;46;75:*.png=3;38;2;105;196;248:*.bag=4;38;2;56;176;246:*.htc=0;38;2;95;206;182:*.mid=3;38;2;66;66;128:*.deb=4;38;2;56;176;246:*.tbz=4;38;2;56;176;246:*.xml=0;38;2;239;129;85:*.bbl=0;38;2;46;46;75:*.rpm=4;38;2;56;176;246:*hgrc=0;38;2;134;218;200:*.toc=0;38;2;46;46;75:*.nix=0;38;2;239;129;85:*.jar=4;38;2;56;176;246:*.kts=0;38;2;95;206;182:*.mkv=3;38;2;105;196;248:*.swf=3;38;2;105;196;248:*.xlr=0;38;2;223;65;155:*.sxw=0;38;2;223;65;155:*.pas=0;38;2;95;206;182:*.mp3=3;38;2;66;66;128:*.epp=0;38;2;95;206;182:*.svg=3;38;2;105;196;248:*.bz2=4;38;2;56;176;246:*.bcf=0;38;2;46;46;75:*.bst=0;38;2;239;129;85:*TODO=1:*.mp4=3;38;2;105;196;248:*.ini=0;38;2;239;129;85:*.fsx=0;38;2;95;206;182:*.dot=0;38;2;95;206;182:*.ipp=0;38;2;95;206;182:*.ppm=3;38;2;105;196;248:*.pid=0;38;2;46;46;75:*.idx=0;38;2;46;46;75:*.xmp=0;38;2;239;129;85:*.pkg=4;38;2;56;176;246:*.zip=4;38;2;56;176;246:*.mov=3;38;2;105;196;248:*.inc=0;38;2;95;206;182:*.ics=0;38;2;223;65;155:*.odt=0;38;2;223;65;155:*.ilg=0;38;2;46;46;75:*.tmp=0;38;2;46;46;75:*.aux=0;38;2;46;46;75:*.tex=0;38;2;95;206;182:*.ogg=3;38;2;66;66;128:*.psd=3;38;2;105;196;248:*.kex=0;38;2;223;65;155:*.out=0;38;2;46;46;75:*.yml=0;38;2;239;129;85:*.psm1=0;38;2;95;206;182:*.h264=3;38;2;105;196;248:*.yaml=0;38;2;239;129;85:*.diff=0;38;2;95;206;182:*.java=0;38;2;95;206;182:*.tbz2=4;38;2;56;176;246:*.docx=0;38;2;223;65;155:*.rlib=0;38;2;46;46;75:*.psd1=0;38;2;95;206;182:*.flac=3;38;2;66;66;128:*.tiff=3;38;2;105;196;248:*.fish=0;38;2;95;206;182:*.less=0;38;2;95;206;182:*.toml=0;38;2;239;129;85:*.dart=0;38;2;95;206;182:*.jpeg=3;38;2;105;196;248:*.html=0;38;2;239;129;85:*.bash=0;38;2;95;206;182:*.epub=0;38;2;223;65;155:*.pptx=0;38;2;223;65;155:*.mpeg=3;38;2;105;196;248:*.json=0;38;2;239;129;85:*.xlsx=0;38;2;223;65;155:*.make=0;38;2;134;218;200:*.orig=0;38;2;46;46;75:*.hgrc=0;38;2;134;218;200:*.conf=0;38;2;239;129;85:*.lock=0;38;2;46;46;75:*.lisp=0;38;2;95;206;182:*.purs=0;38;2;95;206;182:*shadow=0;38;2;239;129;85:*.cache=0;38;2;46;46;75:*.cmake=0;38;2;134;218;200:*passwd=0;38;2;239;129;85:*README=0;38;2;18;18;23;48;2;239;129;85:*.mdown=0;38;2;239;129;85:*.scala=0;38;2;95;206;182:*.cabal=0;38;2;95;206;182:*.patch=0;38;2;95;206;182:*.ipynb=0;38;2;95;206;182:*.xhtml=0;38;2;239;129;85:*.shtml=0;38;2;239;129;85:*.dyn_o=0;38;2;46;46;75:*.class=0;38;2;46;46;75:*.swift=0;38;2;95;206;182:*.toast=4;38;2;56;176;246:*.matlab=0;38;2;95;206;182:*LICENSE=0;38;2;66;66;128:*.groovy=0;38;2;95;206;182:*.flake8=0;38;2;134;218;200:*.config=0;38;2;239;129;85:*.gradle=0;38;2;95;206;182:*INSTALL=0;38;2;18;18;23;48;2;239;129;85:*COPYING=0;38;2;66;66;128:*TODO.md=1:*.ignore=0;38;2;134;218;200:*.dyn_hi=0;38;2;46;46;75:*.desktop=0;38;2;239;129;85:*TODO.txt=1:*.gemspec=0;38;2;134;218;200:*Doxyfile=0;38;2;134;218;200:*setup.py=0;38;2;134;218;200:*Makefile=0;38;2;134;218;200:*.DS_Store=0;38;2;46;46;75:*.fdignore=0;38;2;134;218;200:*README.md=0;38;2;18;18;23;48;2;239;129;85:*.kdevelop=0;38;2;134;218;200:*.rgignore=0;38;2;134;218;200:*.cmake.in=0;38;2;134;218;200:*.markdown=0;38;2;239;129;85:*configure=0;38;2;134;218;200:*COPYRIGHT=0;38;2;66;66;128:*.gitconfig=0;38;2;134;218;200:*CODEOWNERS=0;38;2;134;218;200:*INSTALL.md=0;38;2;18;18;23;48;2;239;129;85:*SConstruct=0;38;2;134;218;200:*.gitignore=0;38;2;134;218;200:*Dockerfile=0;38;2;239;129;85:*.scons_opt=0;38;2;46;46;75:*SConscript=0;38;2;134;218;200:*README.txt=0;38;2;18;18;23;48;2;239;129;85:*.localized=0;38;2;46;46;75:*LICENSE-MIT=0;38;2;66;66;128:*.travis.yml=0;38;2;95;206;182:*MANIFEST.in=0;38;2;134;218;200:*INSTALL.txt=0;38;2;18;18;23;48;2;239;129;85:*Makefile.in=0;38;2;46;46;75:*Makefile.am=0;38;2;134;218;200:*.gitmodules=0;38;2;134;218;200:*.synctex.gz=0;38;2;46;46;75:*configure.ac=0;38;2;134;218;200:*appveyor.yml=0;38;2;95;206;182:*CONTRIBUTORS=0;38;2;18;18;23;48;2;239;129;85:*.applescript=0;38;2;95;206;182:*.fdb_latexmk=0;38;2;46;46;75:*.clang-format=0;38;2;134;218;200:*.gitattributes=0;38;2;134;218;200:*LICENSE-APACHE=0;38;2;66;66;128:*CMakeLists.txt=0;38;2;134;218;200:*CMakeCache.txt=0;38;2;46;46;75:*CONTRIBUTORS.md=0;38;2;18;18;23;48;2;239;129;85:*CONTRIBUTORS.txt=0;38;2;18;18;23;48;2;239;129;85:*.sconsign.dblite=0;38;2;46;46;75:*requirements.txt=0;38;2;134;218;200:*package-lock.json=0;38;2;46;46;75:*.CFUserTextEncoding=0;38;2;46;46;75 2 | -------------------------------------------------------------------------------- /assets/samples/lscolors-vivid.yml: -------------------------------------------------------------------------------- 1 | colors: 2 | # hyper @ mxc-v1.5 3 | # Based on "snazzy" theme by sindresorhus 4 | 5 | background_color: '09090c' 6 | white: '7272d5' 7 | black: '000000' 8 | mxc01: 'dc4f9d' 9 | mxc02: '6bd3ab' 10 | mxc03: 'ea8773' 11 | mxc04: '4d90fd' 12 | mxc05: '5c56ce' 13 | mxc06: '4db5ed' 14 | mxc09: 'e479b4' 15 | mxc10: '92dfc2' 16 | mxc11: 'f1ad9f' 17 | mxc12: '7fb0fe' 18 | mxc13: '827ed9' 19 | mxc14: '7bc8f2' 20 | mxc07: '393975' 21 | mxc08: '262641' 22 | mxc00: '0e0e1b' 23 | mxwbg: '1c87f2' 24 | 25 | core: 26 | regular_file: {} 27 | 28 | directory: 29 | foreground: mxwbg 30 | 31 | executable_file: 32 | foreground: mxc01 33 | font-style: bold 34 | 35 | symlink: 36 | foreground: mxc05 37 | 38 | broken_symlink: 39 | foreground: black 40 | background: mxc01 41 | missing_symlink_target: 42 | foreground: black 43 | background: mxc01 44 | 45 | fifo: 46 | foreground: black 47 | background: mxc04 48 | 49 | socket: 50 | foreground: black 51 | background: mxc05 52 | 53 | character_device: 54 | foreground: mxc05 55 | background: mxc00 56 | 57 | block_device: 58 | foreground: mxc06 59 | background: mxc00 60 | 61 | normal_text: 62 | {} 63 | 64 | other_writable: 65 | {} 66 | 67 | sticky: 68 | {} 69 | 70 | sticky_other_writable: 71 | {} 72 | 73 | text: 74 | special: 75 | foreground: background_color 76 | background: mxc03 77 | 78 | todo: 79 | font-style: bold 80 | 81 | licenses: 82 | foreground: mxc07 83 | 84 | configuration: 85 | foreground: mxc03 86 | 87 | other: 88 | foreground: mxc03 89 | 90 | markup: 91 | foreground: mxc03 92 | 93 | programming: 94 | source: 95 | foreground: mxc02 96 | 97 | tooling: 98 | foreground: mxc10 99 | 100 | continuous-integration: 101 | foreground: mxc02 102 | 103 | media: 104 | foreground: mxc14 105 | font-style: italic 106 | 107 | audio: 108 | foreground: mxc07 109 | font-style: italic 110 | 111 | fonts: 112 | foreground: mxc04 113 | 114 | image: 115 | foreground: mxc14 116 | font-style: italic 117 | 118 | video: 119 | foreground: mxc14 120 | font-style: italic 121 | 122 | 123 | office: 124 | foreground: mxc01 125 | 126 | archives: 127 | foreground: mxc06 128 | font-style: underline 129 | 130 | executable: 131 | foreground: mxc01 132 | font-style: bold 133 | 134 | unimportant: 135 | foreground: mxc08 136 | -------------------------------------------------------------------------------- /assets/samples/mxc-nvim-base16.lua: -------------------------------------------------------------------------------- 1 | -- local base16 = { 2 | -- base00; base01; base02; base03; 3 | -- base04; base05; base06; base07; 4 | -- base08; base09; base0A; base0B; 5 | -- base0C; base0D; base0E; base0F; 6 | -- } 7 | -- local base16 = { 8 | -- "0e0e1b"; "262641"; "393975"; "dc4f9d"; 9 | -- "6c45e1"; "1c87f2"; "dc4f9d"; "ea8773"; 10 | -- "64994c"; "1c87f2"; "6c45e1"; "5c56ce"; 11 | -- "f73ea4"; "5cecb5"; "fe8269"; "5596ff"; 12 | -- } 13 | 14 | local base16 = { 15 | base00="09090c"; base01="0e0e1b"; base02="262641"; base03="4e4e7e"; 16 | base04="393975"; base05="64994c"; base06="7272d5"; base07="282853"; 17 | base08="f73ea4"; base09="4d90fd"; base0A="6c45e1"; base0B="7272d5"; 18 | base0C="fe8269"; base0D="5c56ce"; base0E="1c87f2"; base0F="3e3e66"; 19 | } 20 | return base16 21 | 22 | -- local theme = base16.theme_from_array = mxc-base16 23 | -- base16(theme, true) 24 | 25 | -- base00 - Default Background 26 | -- base01 - Lighter Background (Used for status bars, line number and folding marks) 27 | -- base02 - Selection Background 28 | -- base03 - Comments, Invisibles, Line Highlighting 29 | -- base04 - Dark Foreground (Used for status bars) 30 | -- base05 - Default Foreground, Caret, Delimiters, Operators 31 | -- base06 - Light Foreground (Not often used) 32 | -- base07 - Light Background (Not often used) 33 | -- 34 | -- base08 - Variables, XML Tags, Markup Link Text, Markup Lists, Diff Deleted 35 | -- base09 - Integers, Boolean, Constants, XML Attributes, Markup Link Url 36 | -- base0A - Classes, Markup Bold, Search Text Background 37 | -- base0B - Strings, Inherited Class, Markup Code, Diff Inserted 38 | -- 39 | -- base0C - Support, Regular Expressions, Escape Characters, Markup Quotes 40 | -- base0D - Functions, Methods, Attribute IDs, Headings 41 | -- base0E - Keywords, Storage, Selector, Markup Italic, Diff Changed 42 | -- base0F - Deprecated, Opening/Closing Embedded Language Tags, e.g. 43 | -- local themes = {} 44 | -- 45 | -- themes["atelier-cave"] = { 46 | -- base00 = "#19171c"; base01 = "#26232a"; base02 = "#585260"; base03 = "#655f6d"; 47 | -- base04 = "#7e7887"; base05 = "#8b8792"; base06 = "#e2dfe7"; base07 = "#efecf4"; 48 | -- base08 = "#be4678"; base09 = "#aa573c"; base0A = "#a06e3b"; base0B = "#2a9292"; 49 | -- base0C = "#398bc6"; base0D = "#576ddb"; base0E = "#955ae7"; base0F = "#bf40bf"; 50 | -- } 51 | -- themes["atelier-estuary"] = { 52 | -- base00 = "#22221b"; base01 = "#302f27"; base02 = "#5f5e4e"; base03 = "#6c6b5a"; 53 | -- base04 = "#878573"; base05 = "#929181"; base06 = "#e7e6df"; base07 = "#f4f3ec"; 54 | -- base08 = "#ba6236"; base09 = "#ae7313"; base0A = "#a5980d"; base0B = "#7d9726"; 55 | -- base0C = "#5b9d48"; base0D = "#36a166"; base0E = "#5f9182"; base0F = "#9d6c7c"; 56 | -- } 57 | -- themes["atelier-forest"] = { 58 | -- base00 = "#1b1918"; base01 = "#2c2421"; base02 = "#68615e"; base03 = "#766e6b"; 59 | -- base04 = "#9c9491"; base05 = "#a8a19f"; base06 = "#e6e2e0"; base07 = "#f1efee"; 60 | -- base08 = "#f22c40"; base09 = "#df5320"; base0A = "#c38418"; base0B = "#7b9726"; 61 | -- base0C = "#3d97b8"; base0D = "#407ee7"; base0E = "#6666ea"; base0F = "#c33ff3"; 62 | -- } 63 | -- themes["atelier-heath"] = { 64 | -- base00 = "#1b181b"; base01 = "#292329"; base02 = "#695d69"; base03 = "#776977"; 65 | -- base04 = "#9e8f9e"; base05 = "#ab9bab"; base06 = "#d8cad8"; base07 = "#f7f3f7"; 66 | -- base08 = "#ca402b"; base09 = "#a65926"; base0A = "#bb8a35"; base0B = "#918b3b"; 67 | -- base0C = "#159393"; base0D = "#516aec"; base0E = "#7b59c0"; base0F = "#cc33cc"; 68 | -- } 69 | -- themes["atelier-lakeside"] = { 70 | -- base00 = "#161b1d"; base01 = "#1f292e"; base02 = "#516d7b"; base03 = "#5a7b8c"; 71 | -- base04 = "#7195a8"; base05 = "#7ea2b4"; base06 = "#c1e4f6"; base07 = "#ebf8ff"; 72 | -- base08 = "#d22d72"; base09 = "#935c25"; base0A = "#8a8a0f"; base0B = "#568c3b"; 73 | -- base0C = "#2d8f6f"; base0D = "#257fad"; base0E = "#6b6bb8"; base0F = "#b72dd2"; 74 | -- } 75 | -- themes["atelier-plateau"] = { 76 | -- base00 = "#1b1818"; base01 = "#292424"; base02 = "#585050"; base03 = "#655d5d"; 77 | -- base04 = "#7e7777"; base05 = "#8a8585"; base06 = "#e7dfdf"; base07 = "#f4ecec"; 78 | -- base08 = "#ca4949"; base09 = "#b45a3c"; base0A = "#a06e3b"; base0B = "#4b8b8b"; 79 | -- base0C = "#5485b6"; base0D = "#7272ca"; base0E = "#8464c4"; base0F = "#bd5187"; 80 | -- } 81 | -- themes["atelier-savanna"] = { 82 | -- base00 = "#171c19"; base01 = "#232a25"; base02 = "#526057"; base03 = "#5f6d64"; 83 | -- base04 = "#78877d"; base05 = "#87928a"; base06 = "#dfe7e2"; base07 = "#ecf4ee"; 84 | -- base08 = "#b16139"; base09 = "#9f713c"; base0A = "#a07e3b"; base0B = "#489963"; 85 | -- base0C = "#1c9aa0"; base0D = "#478c90"; base0E = "#55859b"; base0F = "#867469"; 86 | -- } 87 | -- themes["atelier-seaside"] = { 88 | -- base00 = "#131513"; base01 = "#242924"; base02 = "#5e6e5e"; base03 = "#687d68"; 89 | -- base04 = "#809980"; base05 = "#8ca68c"; base06 = "#cfe8cf"; base07 = "#f4fbf4"; 90 | -- base08 = "#e6193c"; base09 = "#87711d"; base0A = "#98981b"; base0B = "#29a329"; 91 | -- base0C = "#1999b3"; base0D = "#3d62f5"; base0E = "#ad2bee"; base0F = "#e619c3"; 92 | -- } 93 | -- themes["atelier-sulphurpool"] = { 94 | -- base00 = "#202746"; base01 = "#293256"; base02 = "#5e6687"; base03 = "#6b7394"; 95 | -- base04 = "#898ea4"; base05 = "#979db4"; base06 = "#dfe2f1"; base07 = "#f5f7ff"; 96 | -- base08 = "#c94922"; base09 = "#c76b29"; base0A = "#c08b30"; base0B = "#ac9739"; 97 | -- base0C = "#22a2c9"; base0D = "#3d8fd1"; base0E = "#6679cc"; base0F = "#9c637a"; 98 | -- } 99 | -- themes["atlas"] = { 100 | -- base00 = "#002635"; base01 = "#00384d"; base02 = "#517F8D"; base03 = "#6C8B91"; 101 | -- base04 = "#869696"; base05 = "#a1a19a"; base06 = "#e6e6dc"; base07 = "#fafaf8"; 102 | -- base08 = "#ff5a67"; base09 = "#f08e48"; base0A = "#ffcc1b"; base0B = "#7fc06e"; 103 | -- base0C = "#14747e"; base0D = "#5dd7b9"; base0E = "#9a70a4"; base0F = "#c43060"; 104 | -- } 105 | -- themes["black-metal-burzum"] = { 106 | -- base00 = "#000000"; base01 = "#121212"; base02 = "#222222"; base03 = "#333333"; 107 | -- base04 = "#999999"; base05 = "#c1c1c1"; base06 = "#999999"; base07 = "#c1c1c1"; 108 | -- base08 = "#5f8787"; base09 = "#aaaaaa"; base0A = "#99bbaa"; base0B = "#ddeecc"; 109 | -- base0C = "#aaaaaa"; base0D = "#888888"; base0E = "#999999"; base0F = "#444444"; 110 | -- } 111 | -- themes["black-metal-dark-funeral"] = { 112 | -- base00 = "#000000"; base01 = "#121212"; base02 = "#222222"; base03 = "#333333"; 113 | -- base04 = "#999999"; base05 = "#c1c1c1"; base06 = "#999999"; base07 = "#c1c1c1"; 114 | -- base08 = "#5f8787"; base09 = "#aaaaaa"; base0A = "#5f81a5"; base0B = "#d0dfee"; 115 | -- base0C = "#aaaaaa"; base0D = "#888888"; base0E = "#999999"; base0F = "#444444"; 116 | -- } 117 | -- themes["bright"] = { 118 | -- base00 = "#000000"; base01 = "#303030"; base02 = "#505050"; base03 = "#b0b0b0"; 119 | -- base04 = "#d0d0d0"; base05 = "#e0e0e0"; base06 = "#f5f5f5"; base07 = "#ffffff"; 120 | -- base08 = "#fb0120"; base09 = "#fc6d24"; base0A = "#fda331"; base0B = "#a1c659"; 121 | -- base0C = "#76c7b7"; base0D = "#6fb3d2"; base0E = "#d381c3"; base0F = "#be643c"; 122 | -- } 123 | -- themes["brogrammer"] = { 124 | -- base00 = "#1f1f1f"; base01 = "#f81118"; base02 = "#2dc55e"; base03 = "#ecba0f"; 125 | -- base04 = "#2a84d2"; base05 = "#4e5ab7"; base06 = "#1081d6"; base07 = "#d6dbe5"; 126 | -- base08 = "#d6dbe5"; base09 = "#de352e"; base0A = "#1dd361"; base0B = "#f3bd09"; 127 | -- base0C = "#1081d6"; base0D = "#5350b9"; base0E = "#0f7ddb"; base0F = "#ffffff"; 128 | -- } 129 | -- themes["brushtrees-dark"] = { 130 | -- base00 = "#485867"; base01 = "#5A6D7A"; base02 = "#6D828E"; base03 = "#8299A1"; 131 | -- base04 = "#98AFB5"; base05 = "#B0C5C8"; base06 = "#C9DBDC"; base07 = "#E3EFEF"; 132 | -- base08 = "#b38686"; base09 = "#d8bba2"; base0A = "#aab386"; base0B = "#87b386"; 133 | -- base0C = "#86b3b3"; base0D = "#868cb3"; base0E = "#b386b2"; base0F = "#b39f9f"; 134 | -- } 135 | -- themes["brushtrees"] = { 136 | -- base00 = "#E3EFEF"; base01 = "#C9DBDC"; base02 = "#B0C5C8"; base03 = "#98AFB5"; 137 | -- base04 = "#8299A1"; base05 = "#6D828E"; base06 = "#5A6D7A"; base07 = "#485867"; 138 | -- base08 = "#b38686"; base09 = "#d8bba2"; base0A = "#aab386"; base0B = "#87b386"; 139 | -- base0C = "#86b3b3"; base0D = "#868cb3"; base0E = "#b386b2"; base0F = "#b39f9f"; 140 | -- } 141 | -- themes["chalk"] = { 142 | -- base00 = "#151515"; base01 = "#202020"; base02 = "#303030"; base03 = "#505050"; 143 | -- base04 = "#b0b0b0"; base05 = "#d0d0d0"; base06 = "#e0e0e0"; base07 = "#f5f5f5"; 144 | -- base08 = "#fb9fb1"; base09 = "#eda987"; base0A = "#ddb26f"; base0B = "#acc267"; 145 | -- base0C = "#12cfc0"; base0D = "#6fc2ef"; base0E = "#e1a3ee"; base0F = "#deaf8f"; 146 | -- } 147 | -- themes["circus"] = { 148 | -- base00 = "#191919"; base01 = "#202020"; base02 = "#303030"; base03 = "#5f5a60"; 149 | -- base04 = "#505050"; base05 = "#a7a7a7"; base06 = "#808080"; base07 = "#ffffff"; 150 | -- base08 = "#dc657d"; base09 = "#4bb1a7"; base0A = "#c3ba63"; base0B = "#84b97c"; 151 | -- base0C = "#4bb1a7"; base0D = "#639ee4"; base0E = "#b888e2"; base0F = "#b888e2"; 152 | -- } 153 | -- themes["classic-dark"] = { 154 | -- base00 = "#151515"; base01 = "#202020"; base02 = "#303030"; base03 = "#505050"; 155 | -- base04 = "#B0B0B0"; base05 = "#D0D0D0"; base06 = "#E0E0E0"; base07 = "#F5F5F5"; 156 | -- base08 = "#AC4142"; base09 = "#D28445"; base0A = "#F4BF75"; base0B = "#90A959"; 157 | -- base0C = "#75B5AA"; base0D = "#6A9FB5"; base0E = "#AA759F"; base0F = "#8F5536"; 158 | -- } 159 | -- themes["codeschool"] = { 160 | -- base00 = "#232c31"; base01 = "#1c3657"; base02 = "#2a343a"; base03 = "#3f4944"; 161 | -- base04 = "#84898c"; base05 = "#9ea7a6"; base06 = "#a7cfa3"; base07 = "#b5d8f6"; 162 | -- base08 = "#2a5491"; base09 = "#43820d"; base0A = "#a03b1e"; base0B = "#237986"; 163 | -- base0C = "#b02f30"; base0D = "#484d79"; base0E = "#c59820"; base0F = "#c98344"; 164 | -- } 165 | -- themes["cupcake"] = { 166 | -- base00 = "#fbf1f2"; base01 = "#f2f1f4"; base02 = "#d8d5dd"; base03 = "#bfb9c6"; 167 | -- base04 = "#a59daf"; base05 = "#8b8198"; base06 = "#72677E"; base07 = "#585062"; 168 | -- base08 = "#D57E85"; base09 = "#EBB790"; base0A = "#DCB16C"; base0B = "#A3B367"; 169 | -- base0C = "#69A9A7"; base0D = "#7297B9"; base0E = "#BB99B4"; base0F = "#BAA58C"; 170 | -- } 171 | -- themes["darktooth"] = { 172 | -- base00 = "#1D2021"; base01 = "#32302F"; base02 = "#504945"; base03 = "#665C54"; 173 | -- base04 = "#928374"; base05 = "#A89984"; base06 = "#D5C4A1"; base07 = "#FDF4C1"; 174 | -- base08 = "#FB543F"; base09 = "#FE8625"; base0A = "#FAC03B"; base0B = "#95C085"; 175 | -- base0C = "#8BA59B"; base0D = "#0D6678"; base0E = "#8F4673"; base0F = "#A87322"; 176 | -- } 177 | -- themes["default-dark"] = { 178 | -- base00 = "#181818"; base01 = "#282828"; base02 = "#383838"; base03 = "#585858"; 179 | -- base04 = "#b8b8b8"; base05 = "#d8d8d8"; base06 = "#e8e8e8"; base07 = "#f8f8f8"; 180 | -- base08 = "#ab4642"; base09 = "#dc9656"; base0A = "#f7ca88"; base0B = "#a1b56c"; 181 | -- base0C = "#86c1b9"; base0D = "#7cafc2"; base0E = "#ba8baf"; base0F = "#a16946"; 182 | -- } 183 | -- themes["dracula"] = { 184 | -- base00 = "#282936"; base01 = "#3a3c4e"; base02 = "#4d4f68"; base03 = "#626483"; 185 | -- base04 = "#62d6e8"; base05 = "#e9e9f4"; base06 = "#f1f2f8"; base07 = "#f7f7fb"; 186 | -- base08 = "#ea51b2"; base09 = "#b45bcf"; base0A = "#00f769"; base0B = "#ebff87"; 187 | -- base0C = "#a1efe4"; base0D = "#62d6e8"; base0E = "#b45bcf"; base0F = "#00f769"; 188 | -- } 189 | -- themes["eighties"] = { 190 | -- base00 = "#2d2d2d"; base01 = "#393939"; base02 = "#515151"; base03 = "#747369"; 191 | -- base04 = "#a09f93"; base05 = "#d3d0c8"; base06 = "#e8e6df"; base07 = "#f2f0ec"; 192 | -- base08 = "#f2777a"; base09 = "#f99157"; base0A = "#ffcc66"; base0B = "#99cc99"; 193 | -- base0C = "#66cccc"; base0D = "#6699cc"; base0E = "#cc99cc"; base0F = "#d27b53"; 194 | -- } 195 | -- themes["flat"] = { 196 | -- base00 = "#2C3E50"; base01 = "#34495E"; base02 = "#7F8C8D"; base03 = "#95A5A6"; 197 | -- base04 = "#BDC3C7"; base05 = "#e0e0e0"; base06 = "#f5f5f5"; base07 = "#ECF0F1"; 198 | -- base08 = "#E74C3C"; base09 = "#E67E22"; base0A = "#F1C40F"; base0B = "#2ECC71"; 199 | -- base0C = "#1ABC9C"; base0D = "#3498DB"; base0E = "#9B59B6"; base0F = "#be643c"; 200 | -- } 201 | -- themes["google-dark"] = { 202 | -- base00 = "#1d1f21"; base01 = "#282a2e"; base02 = "#373b41"; base03 = "#969896"; 203 | -- base04 = "#b4b7b4"; base05 = "#c5c8c6"; base06 = "#e0e0e0"; base07 = "#ffffff"; 204 | -- base08 = "#CC342B"; base09 = "#F96A38"; base0A = "#FBA922"; base0B = "#198844"; 205 | -- base0C = "#3971ED"; base0D = "#3971ED"; base0E = "#A36AC7"; base0F = "#3971ED"; 206 | -- } 207 | -- themes["gruvbox-dark-hard"] = { 208 | -- base00 = "#1d2021"; base01 = "#3c3836"; base02 = "#504945"; base03 = "#665c54"; 209 | -- base04 = "#bdae93"; base05 = "#d5c4a1"; base06 = "#ebdbb2"; base07 = "#fbf1c7"; 210 | -- base08 = "#fb4934"; base09 = "#fe8019"; base0A = "#fabd2f"; base0B = "#b8bb26"; 211 | -- base0C = "#8ec07c"; base0D = "#83a598"; base0E = "#d3869b"; base0F = "#d65d0e"; 212 | -- } 213 | -- themes["gruvbox-dark-medium"] = { 214 | -- base00 = "#282828"; base01 = "#3c3836"; base02 = "#504945"; base03 = "#665c54"; 215 | -- base04 = "#bdae93"; base05 = "#d5c4a1"; base06 = "#ebdbb2"; base07 = "#fbf1c7"; 216 | -- base08 = "#fb4934"; base09 = "#fe8019"; base0A = "#fabd2f"; base0B = "#b8bb26"; 217 | -- base0C = "#8ec07c"; base0D = "#83a598"; base0E = "#d3869b"; base0F = "#d65d0e"; 218 | -- } 219 | -- themes["gruvbox-dark-pale"] = { 220 | -- base00 = "#262626"; base01 = "#3a3a3a"; base02 = "#4e4e4e"; base03 = "#8a8a8a"; 221 | -- base04 = "#949494"; base05 = "#dab997"; base06 = "#d5c4a1"; base07 = "#ebdbb2"; 222 | -- base08 = "#d75f5f"; base09 = "#ff8700"; base0A = "#ffaf00"; base0B = "#afaf00"; 223 | -- base0C = "#85ad85"; base0D = "#83adad"; base0E = "#d485ad"; base0F = "#d65d0e"; 224 | -- } 225 | -- themes["harmonic-dark"] = { 226 | -- base00 = "#0b1c2c"; base01 = "#223b54"; base02 = "#405c79"; base03 = "#627e99"; 227 | -- base04 = "#aabcce"; base05 = "#cbd6e2"; base06 = "#e5ebf1"; base07 = "#f7f9fb"; 228 | -- base08 = "#bf8b56"; base09 = "#bfbf56"; base0A = "#8bbf56"; base0B = "#56bf8b"; 229 | -- base0C = "#568bbf"; base0D = "#8b56bf"; base0E = "#bf568b"; base0F = "#bf5656"; 230 | -- } 231 | -- themes["heetch"] = { 232 | -- base00 = "#190134"; base01 = "#392551"; base02 = "#5A496E"; base03 = "#7B6D8B"; 233 | -- base04 = "#9C92A8"; base05 = "#BDB6C5"; base06 = "#DEDAE2"; base07 = "#FEFFFF"; 234 | -- base08 = "#27D9D5"; base09 = "#5BA2B6"; base0A = "#8F6C97"; base0B = "#C33678"; 235 | -- base0C = "#F80059"; base0D = "#BD0152"; base0E = "#82034C"; base0F = "#470546"; 236 | -- } 237 | -- themes["hopscotch"] = { 238 | -- base00 = "#322931"; base01 = "#433b42"; base02 = "#5c545b"; base03 = "#797379"; 239 | -- base04 = "#989498"; base05 = "#b9b5b8"; base06 = "#d5d3d5"; base07 = "#ffffff"; 240 | -- base08 = "#dd464c"; base09 = "#fd8b19"; base0A = "#fdcc59"; base0B = "#8fc13e"; 241 | -- base0C = "#149b93"; base0D = "#1290bf"; base0E = "#c85e7c"; base0F = "#b33508"; 242 | -- } 243 | -- themes["horizon-dark"] = { 244 | -- base00 = "#1C1E26"; base01 = "#232530"; base02 = "#2E303E"; base03 = "#676A8D"; 245 | -- base04 = "#CED1D0"; base05 = "#CBCED0"; base06 = "#DCDFE4"; base07 = "#E3E6EE"; 246 | -- base08 = "#E93C58"; base09 = "#E58D7D"; base0A = "#EFB993"; base0B = "#EFAF8E"; 247 | -- base0C = "#24A8B4"; base0D = "#DF5273"; base0E = "#B072D1"; base0F = "#E4A382"; 248 | -- } 249 | -- themes["icy"] = { 250 | -- base00 = "#021012"; base01 = "#031619"; base02 = "#041f23"; base03 = "#052e34"; 251 | -- base04 = "#064048"; base05 = "#095b67"; base06 = "#0c7c8c"; base07 = "#109cb0"; 252 | -- base08 = "#16c1d9"; base09 = "#b3ebf2"; base0A = "#80deea"; base0B = "#4dd0e1"; 253 | -- base0C = "#26c6da"; base0D = "#00bcd4"; base0E = "#00acc1"; base0F = "#0097a7"; 254 | -- } 255 | -- themes["materia"] = { 256 | -- base00 = "#263238"; base01 = "#2C393F"; base02 = "#37474F"; base03 = "#707880"; 257 | -- base04 = "#C9CCD3"; base05 = "#CDD3DE"; base06 = "#D5DBE5"; base07 = "#FFFFFF"; 258 | -- base08 = "#EC5F67"; base09 = "#EA9560"; base0A = "#FFCC00"; base0B = "#8BD649"; 259 | -- base0C = "#80CBC4"; base0D = "#89DDFF"; base0E = "#82AAFF"; base0F = "#EC5F67"; 260 | -- } 261 | -- themes["material-darker"] = { 262 | -- base00 = "#212121"; base01 = "#303030"; base02 = "#353535"; base03 = "#4A4A4A"; 263 | -- base04 = "#B2CCD6"; base05 = "#EEFFFF"; base06 = "#EEFFFF"; base07 = "#FFFFFF"; 264 | -- base08 = "#F07178"; base09 = "#F78C6C"; base0A = "#FFCB6B"; base0B = "#C3E88D"; 265 | -- base0C = "#89DDFF"; base0D = "#82AAFF"; base0E = "#C792EA"; base0F = "#FF5370"; 266 | -- } 267 | -- themes["material-palenight"] = { 268 | -- base00 = "#292D3E"; base01 = "#444267"; base02 = "#32374D"; base03 = "#676E95"; 269 | -- base04 = "#8796B0"; base05 = "#959DCB"; base06 = "#959DCB"; base07 = "#FFFFFF"; 270 | -- base08 = "#F07178"; base09 = "#F78C6C"; base0A = "#FFCB6B"; base0B = "#C3E88D"; 271 | -- base0C = "#89DDFF"; base0D = "#82AAFF"; base0E = "#C792EA"; base0F = "#FF5370"; 272 | -- } 273 | -- themes["material-vivid"] = { 274 | -- base00 = "#202124"; base01 = "#27292c"; base02 = "#323639"; base03 = "#44464d"; 275 | -- base04 = "#676c71"; base05 = "#80868b"; base06 = "#9e9e9e"; base07 = "#ffffff"; 276 | -- base08 = "#f44336"; base09 = "#ff9800"; base0A = "#ffeb3b"; base0B = "#00e676"; 277 | -- base0C = "#00bcd4"; base0D = "#2196f3"; base0E = "#673ab7"; base0F = "#8d6e63"; 278 | -- } 279 | -- themes["material"] = { 280 | -- base00 = "#263238"; base01 = "#2E3C43"; base02 = "#314549"; base03 = "#546E7A"; 281 | -- base04 = "#B2CCD6"; base05 = "#EEFFFF"; base06 = "#EEFFFF"; base07 = "#FFFFFF"; 282 | -- base08 = "#F07178"; base09 = "#F78C6C"; base0A = "#FFCB6B"; base0B = "#C3E88D"; 283 | -- base0C = "#89DDFF"; base0D = "#82AAFF"; base0E = "#C792EA"; base0F = "#FF5370"; 284 | -- } 285 | -- themes["nord"] = { 286 | -- base00 = "#2E3440"; base01 = "#3B4252"; base02 = "#434C5E"; base03 = "#4C566A"; 287 | -- base04 = "#D8DEE9"; base05 = "#E5E9F0"; base06 = "#ECEFF4"; base07 = "#8FBCBB"; 288 | -- base08 = "#88C0D0"; base09 = "#81A1C1"; base0A = "#5E81AC"; base0B = "#BF616A"; 289 | -- base0C = "#D08770"; base0D = "#EBCB8B"; base0E = "#A3BE8C"; base0F = "#B48EAD"; 290 | -- } 291 | -- themes["ocean"] = { 292 | -- base00 = "#2b303b"; base01 = "#343d46"; base02 = "#4f5b66"; base03 = "#65737e"; 293 | -- base04 = "#a7adba"; base05 = "#c0c5ce"; base06 = "#dfe1e8"; base07 = "#eff1f5"; 294 | -- base08 = "#bf616a"; base09 = "#d08770"; base0A = "#ebcb8b"; base0B = "#a3be8c"; 295 | -- base0C = "#96b5b4"; base0D = "#8fa1b3"; base0E = "#b48ead"; base0F = "#ab7967"; 296 | -- } 297 | -- themes["oceanicnext"] = { 298 | -- base00 = "#1B2B34"; base01 = "#343D46"; base02 = "#4F5B66"; base03 = "#65737E"; 299 | -- base04 = "#A7ADBA"; base05 = "#C0C5CE"; base06 = "#CDD3DE"; base07 = "#D8DEE9"; 300 | -- base08 = "#EC5f67"; base09 = "#F99157"; base0A = "#FAC863"; base0B = "#99C794"; 301 | -- base0C = "#5FB3B3"; base0D = "#6699CC"; base0E = "#C594C5"; base0F = "#AB7967"; 302 | -- } 303 | -- themes["onedark"] = { 304 | -- base00 = "#1e222a"; base01 = "#353b45"; base02 = "#3e4451"; base03 = "#545862"; 305 | -- base04 = "#565c64"; base05 = "#abb2bf"; base06 = "#b6bdca"; base07 = "#c8ccd4"; 306 | -- base08 = "#e06c75"; base09 = "#d19a66"; base0A = "#e5c07b"; base0B = "#98c379"; 307 | -- base0C = "#56b6c2"; base0D = "#61afef"; base0E = "#c678dd"; base0F = "#be5046"; 308 | -- } 309 | -- themes["paraiso"] = { 310 | -- base00 = "#2f1e2e"; base01 = "#41323f"; base02 = "#4f424c"; base03 = "#776e71"; 311 | -- base04 = "#8d8687"; base05 = "#a39e9b"; base06 = "#b9b6b0"; base07 = "#e7e9db"; 312 | -- base08 = "#ef6155"; base09 = "#f99b15"; base0A = "#fec418"; base0B = "#48b685"; 313 | -- base0C = "#5bc4bf"; base0D = "#06b6ef"; base0E = "#815ba4"; base0F = "#e96ba8"; 314 | -- } 315 | -- themes["porple"] = { 316 | -- base00 = "#292c36"; base01 = "#333344"; base02 = "#474160"; base03 = "#65568a"; 317 | -- base04 = "#b8b8b8"; base05 = "#d8d8d8"; base06 = "#e8e8e8"; base07 = "#f8f8f8"; 318 | -- base08 = "#f84547"; base09 = "#d28e5d"; base0A = "#efa16b"; base0B = "#95c76f"; 319 | -- base0C = "#64878f"; base0D = "#8485ce"; base0E = "#b74989"; base0F = "#986841"; 320 | -- } 321 | -- themes["rebecca"] = { 322 | -- base00 = "#292a44"; base01 = "#663399"; base02 = "#383a62"; base03 = "#666699"; 323 | -- base04 = "#a0a0c5"; base05 = "#f1eff8"; base06 = "#ccccff"; base07 = "#53495d"; 324 | -- base08 = "#a0a0c5"; base09 = "#efe4a1"; base0A = "#ae81ff"; base0B = "#6dfedf"; 325 | -- base0C = "#8eaee0"; base0D = "#2de0a7"; base0E = "#7aa5ff"; base0F = "#ff79c6"; 326 | -- } 327 | -- themes["seti"] = { 328 | -- base00 = "#151718"; base01 = "#282a2b"; base02 = "#3B758C"; base03 = "#41535B"; 329 | -- base04 = "#43a5d5"; base05 = "#d6d6d6"; base06 = "#eeeeee"; base07 = "#ffffff"; 330 | -- base08 = "#Cd3f45"; base09 = "#db7b55"; base0A = "#e6cd69"; base0B = "#9fca56"; 331 | -- base0C = "#55dbbe"; base0D = "#55b5db"; base0E = "#a074c4"; base0F = "#8a553f"; 332 | -- } 333 | -- themes["snazzy"] = { 334 | -- base00 = "#282a36"; base01 = "#34353e"; base02 = "#43454f"; base03 = "#78787e"; 335 | -- base04 = "#a5a5a9"; base05 = "#e2e4e5"; base06 = "#eff0eb"; base07 = "#f1f1f0"; 336 | -- base08 = "#ff5c57"; base09 = "#ff9f43"; base0A = "#f3f99d"; base0B = "#5af78e"; 337 | -- base0C = "#9aedfe"; base0D = "#57c7ff"; base0E = "#ff6ac1"; base0F = "#b2643c"; 338 | -- } 339 | -- themes["solarflare"] = { 340 | -- base00 = "#18262F"; base01 = "#222E38"; base02 = "#586875"; base03 = "#667581"; 341 | -- base04 = "#85939E"; base05 = "#A6AFB8"; base06 = "#E8E9ED"; base07 = "#F5F7FA"; 342 | -- base08 = "#EF5253"; base09 = "#E66B2B"; base0A = "#E4B51C"; base0B = "#7CC844"; 343 | -- base0C = "#52CBB0"; base0D = "#33B5E1"; base0E = "#A363D5"; base0F = "#D73C9A"; 344 | -- } 345 | -- themes["zenburn"] = { 346 | -- base00 = "#383838"; base01 = "#404040"; base02 = "#606060"; base03 = "#6f6f6f"; 347 | -- base04 = "#808080"; base05 = "#dcdccc"; base06 = "#c0c0c0"; base07 = "#ffffff"; 348 | -- base08 = "#dca3a3"; base09 = "#dfaf8f"; base0A = "#e0cf9f"; base0B = "#5f7f5f"; 349 | -- base0C = "#93e0e3"; base0D = "#7cb8bb"; base0E = "#dc8cc3"; base0F = "#000000"; 350 | -- } 351 | 352 | -- local z = [[ 353 | -- "atelier-cave", "atelier-estuary", "atelier-forest", "atelier-heath", 354 | -- "atelier-lakeside", "atelier-plateau", "atelier-savanna", "atelier-seaside", 355 | -- "atelier-sulphurpool", "atlas", "black-metal-burzum", "black-metal-dark-funeral", 356 | -- "bright", "brogrammer", "brushtrees-dark", "brushtrees", "chalk", "circus", 357 | -- "classic-dark", "codeschool", "cupcake", "darktooth", "default-dark", "dracula", 358 | -- "eighties", "flat", "google-dark", "gruvbox-dark-hard", "gruvbox-dark-medium", 359 | -- "gruvbox-dark-pale", "harmonic-dark", "heetch", "hopscotch", "horizon-dark", 360 | -- "icy", "materia", "material-darker", "material-palenight", "material-vivid", 361 | -- "material", "nord", "ocean", "oceanicnext", "onedark", "paraiso", "porple", 362 | -- "rebecca", "seti", "snazzy", "solarflare", "zenburn" ]] 363 | 364 | -- Colors base00 to base07 are typically variations of a shade and run from darkest to lightest. These colors are used for foreground and background, status bars, line highlighting and such. Colors base08 to base0F are typically individual colors used for types, operators, names and variables. In order to create a dark theme, colors base00 to base07 should span from dark to light. For a light theme, these colours should span from light to dark. 365 | -- 366 | -------------------------------------------------------------------------------- /assets/samples/mxc-nvim-colors.lua: -------------------------------------------------------------------------------- 1 | -- mxc-v1.5 · hyper 2 | 3 | local colors = { 4 | bg = "#09090c", 5 | fg = "#5656be", 6 | -- yellow = "#fe8269", 7 | -- cyan = "#45beff", 8 | darkblue = "#5596ff", 9 | -- green = "#5cecb5", 10 | -- orange = "#64994c", 11 | violet = "#827ed9", 12 | magenta = "#5c56ce", 13 | blue = "#4d90fd", 14 | red = "#f73ea4", 15 | white = "#7272d5", 16 | darker_black = "#07070e", 17 | black = "#0e0e1b", -- nvim bg 18 | black2 = "#10101a", 19 | one_bg = "#1c1c2c", -- real bg of onedark 20 | one_bg2 = "#141429", 21 | one_bg3 = "#181830", 22 | grey = "#262641", 23 | grey_fg = "#393975", 24 | grey_fg2 = "#282853", 25 | light_grey = "#3f3fa2", 26 | baby_pink = "#f1ad9f", 27 | pink = "#f73ea4", 28 | line = "#64994c", -- for lines like vertsplit 29 | green = "#6bd3ab", 30 | vibrant_green = "#7fb0fe", 31 | nord_blue = "#64994c", 32 | yellow = "#ea8773", 33 | sun = "#fe8269", 34 | purple = "#827ed9", 35 | dark_purple = "#5c56ce", 36 | teal = "#64994c", 37 | orange = "#6c45e1", 38 | cyan = "#4db5ed", 39 | 40 | statusline_bg = "#000000", 41 | statusline_fg = "#64994c", 42 | 43 | -- statusline_bg = "#1c1c2c", 44 | lightbg = "#10101a", 45 | lightbg2 = "#07070e", 46 | -- 47 | -- ######### 48 | cx1 = "#f73ea4", 49 | cx2 = "#5cecb5", 50 | cx3 = "#fe8269", 51 | cx4 = "#5596ff", 52 | cx5 = "#5e57ec", 53 | cx6 = "#45beff", 54 | -- ######### 55 | cy1 = "#d377a9", 56 | cy2 = "#90cdb6", 57 | cy3 = "#e4a598", 58 | cy4 = "#77a6f1", 59 | cy5 = "#817dc6", 60 | cy6 = "#76bde3", 61 | -- 62 | c00 = "#0e0e1b", 63 | c01 = "#dc4f9d", 64 | c02 = "#6bd3ab", 65 | c03 = "#ea8773", 66 | c04 = "#4d90fd", 67 | c05 = "#5c56ce", 68 | c06 = "#4db5ed", 69 | c07 = "#393975", 70 | c08 = "#262641", 71 | c09 = "#e479b4", 72 | c10 = "#92dfc2", 73 | c11 = "#f1ad9f", 74 | c12 = "#7fb0fe", 75 | c13 = "#827ed9", 76 | c14 = "#7bc8f2", 77 | c15 = "#7272d5", 78 | 79 | sbg = "#64994c", 80 | sfg = "#000000", 81 | wbg = "#1c87f2", 82 | wfg = "#000000", 83 | ebg = "#6c45e1", 84 | efg = "#d6c2c2", 85 | xbg = "#09090c", 86 | xfg = "#5656be", 87 | obg = "#191925", 88 | ofg = "#42a0ff", 89 | wbx = "#42a0ff", 90 | wfx = "#000000", 91 | 92 | dk0 = "#000000", 93 | dk1 = "#07070e", 94 | dk2 = "#0e0e1b", 95 | dk3 = "#1c1c2c", 96 | dk4 = "#262641", 97 | dk5 = "#323253", 98 | dk6 = "#3e3e66", 99 | dk7 = "#4e4e7e", 100 | dk8 = "#5b5b90", 101 | dk9 = "#6b6b9f", 102 | 103 | dl0 = "#050506", 104 | dl1 = "#10101a", 105 | dl2 = "#141429", 106 | dl3 = "#181830", 107 | dl4 = "#282853", 108 | dl5 = "#393975", 109 | dl6 = "#3f3fa2", 110 | dl7 = "#5656be", 111 | dl8 = "#7272d5", 112 | dl9 = "#9999e1" 113 | } 114 | 115 | return colors 116 | -------------------------------------------------------------------------------- /assets/samples/root-mx.css: -------------------------------------------------------------------------------- 1 | :root { 2 | --mxc-c00: #0e0e1b; 3 | --mxc-c01: #dc4f9d; 4 | --mxc-c02: #6bd3ab; 5 | --mxc-c03: #ea8773; 6 | --mxc-c04: #4d90fd; 7 | --mxc-c05: #5c56ce; 8 | --mxc-c06: #4db5ed; 9 | --mxc-c07: #393975; 10 | --mxc-c08: #262641; 11 | --mxc-c09: #e479b4; 12 | --mxc-c10: #92dfc2; 13 | --mxc-c11: #f1ad9f; 14 | --mxc-c12: #7fb0fe; 15 | --mxc-c13: #827ed9; 16 | --mxc-c14: #7bc8f2; 17 | --mxc-c15: #7272d5; 18 | 19 | --mxc-sbg: #64994c; 20 | --mxc-sfg: #000000; 21 | --mxc-wbg: #1c87f2; 22 | --mxc-wfg: #000000; 23 | --mxc-ebg: #6c45e1; 24 | --mxc-efg: #d6c2c2; 25 | --mxc-xbg: #09090c; 26 | --mxc-xfg: #5656be; 27 | --mxc-obg: #191925; 28 | --mxc-ofg: #42a0ff; 29 | 30 | --mxc-dk0: #000000; 31 | --mxc-dk1: #07070e; 32 | --mxc-dk2: #0e0e1b; 33 | --mxc-dk3: #1c1c2c; 34 | --mxc-dk4: #262641; 35 | --mxc-dk5: #323253; 36 | --mxc-dk6: #3e3e66; 37 | --mxc-dk7: #4e4e7e; 38 | --mxc-dk8: #5b5b90; 39 | --mxc-dk9: #6b6b9f; 40 | 41 | --mxc-dl0: #050506; 42 | --mxc-dl1: #10101a; 43 | --mxc-dl2: #141429; 44 | --mxc-dl3: #181830; 45 | --mxc-dl4: #282853; 46 | --mxc-dl5: #393975; 47 | --mxc-dl6: #3f3fa2; 48 | --mxc-dl7: #5656be; 49 | --mxc-dl8: #7272d5; 50 | --mxc-dl9: #9999e1; 51 | } 52 | -------------------------------------------------------------------------------- /assets/samples/root-mx.less: -------------------------------------------------------------------------------- 1 | @mxc-c00: #0e0e1b; 2 | @mxc-c01: #dc4f9d; 3 | @mxc-c02: #6bd3ab; 4 | @mxc-c03: #ea8773; 5 | @mxc-c04: #4d90fd; 6 | @mxc-c05: #5c56ce; 7 | @mxc-c06: #4db5ed; 8 | @mxc-c07: #393975; 9 | @mxc-c08: #262641; 10 | @mxc-c09: #e479b4; 11 | @mxc-c10: #92dfc2; 12 | @mxc-c11: #f1ad9f; 13 | @mxc-c12: #7fb0fe; 14 | @mxc-c13: #827ed9; 15 | @mxc-c14: #7bc8f2; 16 | @mxc-c15: #7272d5; 17 | 18 | @mxc-sbg: #64994c; 19 | @mxc-sfg: #000000; 20 | @mxc-wbg: #1c87f2; 21 | @mxc-wfg: #000000; 22 | @mxc-ebg: #6c45e1; 23 | @mxc-efg: #d6c2c2; 24 | @mxc-xbg: #09090c; 25 | @mxc-xfg: #5656be; 26 | @mxc-obg: #191925; 27 | @mxc-ofg: #42a0ff; 28 | 29 | @mxc-dk0: #000000; 30 | @mxc-dk1: #07070e; 31 | @mxc-dk2: #0e0e1b; 32 | @mxc-dk3: #1c1c2c; 33 | @mxc-dk4: #262641; 34 | @mxc-dk5: #323253; 35 | @mxc-dk6: #3e3e66; 36 | @mxc-dk7: #4e4e7e; 37 | @mxc-dk8: #5b5b90; 38 | @mxc-dk9: #6b6b9f; 39 | 40 | @mxc-dl0: #050506; 41 | @mxc-dl1: #10101a; 42 | @mxc-dl2: #141429; 43 | @mxc-dl3: #181830; 44 | @mxc-dl4: #282853; 45 | @mxc-dl5: #393975; 46 | @mxc-dl6: #3f3fa2; 47 | @mxc-dl7: #5656be; 48 | @mxc-dl8: #7272d5; 49 | @mxc-dl9: #9999e1; 50 | -------------------------------------------------------------------------------- /assets/samples/root-mx.vim: -------------------------------------------------------------------------------- 1 | """"""""" """""""" """""""" 2 | """"""""" """""""" """""""" 3 | "" """ " "" " "" "" 4 | "" """ " "" " "" "" 5 | "" " " "" " " "" " 6 | "" " " "" " " "" " 7 | "" "" "" " """"" 8 | "" "" "" " """"" 9 | "" " " "" "" " """"" 10 | "" " " "" "" " """"" 11 | "" """ " "" " " "" " 12 | "" """ " "" " " "" " 13 | "" """ " "" " "" "" 14 | "" """ " "" " "" "" 15 | """"""""" """""""" """""""" 16 | """"""""" """""""" """""""" 17 | " hyper @ mxc-v1.5 18 | 19 | let g:mxc_g_c00 = '#0e0e1b' 20 | let g:mxc_g_c01 = '#dc4f9d' 21 | let g:mxc_g_c02 = '#6bd3ab' 22 | let g:mxc_g_c03 = '#ea8773' 23 | let g:mxc_g_c04 = '#4d90fd' 24 | let g:mxc_g_c05 = '#5c56ce' 25 | let g:mxc_g_c06 = '#4db5ed' 26 | let g:mxc_g_c07 = '#393975' 27 | let g:mxc_g_c08 = '#262641' 28 | let g:mxc_g_c09 = '#e479b4' 29 | let g:mxc_g_c10 = '#92dfc2' 30 | let g:mxc_g_c11 = '#f1ad9f' 31 | let g:mxc_g_c12 = '#7fb0fe' 32 | let g:mxc_g_c13 = '#827ed9' 33 | let g:mxc_g_c14 = '#7bc8f2' 34 | let g:mxc_g_c15 = '#7272d5' 35 | let g:mxc_g_cx1 = '#f73ea4' 36 | let g:mxc_g_cx2 = '#5cecb5' 37 | let g:mxc_g_cx3 = '#fe8269' 38 | let g:mxc_g_cx4 = '#5596ff' 39 | let g:mxc_g_cx5 = '#5e57ec' 40 | let g:mxc_g_cx6 = '#45beff' 41 | let g:mxc_g_cy1 = '#d377a9' 42 | let g:mxc_g_cy2 = '#90cdb6' 43 | let g:mxc_g_cy3 = '#e4a598' 44 | let g:mxc_g_cy4 = '#77a6f1' 45 | let g:mxc_g_cy5 = '#817dc6' 46 | let g:mxc_g_cy6 = '#76bde3' 47 | let g:mxc_g_dk0 = '#000000' 48 | let g:mxc_g_dk1 = '#07070e' 49 | let g:mxc_g_dk2 = '#0e0e1b' 50 | let g:mxc_g_dk3 = '#1c1c2c' 51 | let g:mxc_g_dk4 = '#262641' 52 | let g:mxc_g_dk5 = '#323253' 53 | let g:mxc_g_dk6 = '#3e3e66' 54 | let g:mxc_g_dk7 = '#4e4e7e' 55 | let g:mxc_g_dk8 = '#5b5b90' 56 | let g:mxc_g_dk9 = '#6b6b9f' 57 | let g:mxc_g_dl0 = '#050506' 58 | let g:mxc_g_dl1 = '#10101a' 59 | let g:mxc_g_dl2 = '#141429' 60 | let g:mxc_g_dl3 = '#181830' 61 | let g:mxc_g_dl4 = '#282853' 62 | let g:mxc_g_dl5 = '#393975' 63 | let g:mxc_g_dl6 = '#3f3fa2' 64 | let g:mxc_g_dl7 = '#5656be' 65 | let g:mxc_g_dl8 = '#7272d5' 66 | let g:mxc_g_dl9 = '#9999e1' 67 | let g:mxc_g_sbg = '#64994c' 68 | let g:mxc_g_sfg = '#000000' 69 | let g:mxc_g_wbg = '#1c87f2' 70 | let g:mxc_g_wfg = '#000000' 71 | let g:mxc_g_ebg = '#6c45e1' 72 | let g:mxc_g_efg = '#d6c2c2' 73 | let g:mxc_g_xbg = '#09090c' 74 | let g:mxc_g_xfg = '#5656be' 75 | let g:mxc_g_obg = '#191925' 76 | let g:mxc_g_ofg = '#42a0ff' 77 | let g:mxc_g_wbx = '#42a0ff' 78 | let g:mxc_g_wfx = '#000000' 79 | let g:mxc_c_tc00 = '232' 80 | let g:mxc_c_tc01 = '169' 81 | let g:mxc_c_tc02 = '79' 82 | let g:mxc_c_tc03 = '209' 83 | let g:mxc_c_tc04 = '33' 84 | let g:mxc_c_tc05 = '62' 85 | let g:mxc_c_tc06 = '74' 86 | let g:mxc_c_tc07 = '60' 87 | let g:mxc_c_tc08 = '234' 88 | let g:mxc_c_tc09 = '175' 89 | let g:mxc_c_tc10 = '115' 90 | let g:mxc_c_tc11 = '217' 91 | let g:mxc_c_tc12 = '111' 92 | let g:mxc_c_tc13 = '104' 93 | let g:mxc_c_tc14 = '117' 94 | let g:mxc_c_tc15 = '62' 95 | let g:mxc_c_tcx1 = '199' 96 | let g:mxc_c_tcx2 = '49' 97 | let g:mxc_c_tcx3 = '209' 98 | let g:mxc_c_tcx4 = '33' 99 | let g:mxc_c_tcx5 = '62' 100 | let g:mxc_c_tcx6 = '39' 101 | let g:mxc_c_tcy1 = '175' 102 | let g:mxc_c_tcy2 = '115' 103 | let g:mxc_c_tcy3 = '181' 104 | let g:mxc_c_tcy4 = '111' 105 | let g:mxc_c_tcy5 = '104' 106 | let g:mxc_c_tcy6 = '74' 107 | let g:mxc_c_tdk0 = '16' 108 | let g:mxc_c_tdk1 = '16' 109 | let g:mxc_c_tdk2 = '232' 110 | let g:mxc_c_tdk3 = '234' 111 | let g:mxc_c_tdk4 = '234' 112 | let g:mxc_c_tdk5 = '60' 113 | let g:mxc_c_tdk6 = '60' 114 | let g:mxc_c_tdk7 = '60' 115 | let g:mxc_c_tdk8 = '60' 116 | let g:mxc_c_tdk9 = '60' 117 | let g:mxc_c_tdl0 = '16' 118 | let g:mxc_c_tdl1 = '16' 119 | let g:mxc_c_tdl2 = '232' 120 | let g:mxc_c_tdl3 = '233' 121 | let g:mxc_c_tdl4 = '17' 122 | let g:mxc_c_tdl5 = '60' 123 | let g:mxc_c_tdl6 = '61' 124 | let g:mxc_c_tdl7 = '61' 125 | let g:mxc_c_tdl8 = '62' 126 | let g:mxc_c_tdl9 = '104' 127 | let g:mxc_c_tsbg = '71' 128 | let g:mxc_c_tsfg = '16' 129 | let g:mxc_c_twbg = '33' 130 | let g:mxc_c_twfg = '16' 131 | let g:mxc_c_tebg = '57' 132 | let g:mxc_c_tefg = '181' 133 | let g:mxc_c_txbg = '16' 134 | let g:mxc_c_txfg = '61' 135 | let g:mxc_c_tobg = '233' 136 | let g:mxc_c_tofg = '75' 137 | let g:mxc_c_twbx = '75' 138 | let g:mxc_c_twfx = '16' 139 | -------------------------------------------------------------------------------- /assets/samples/root.mx: -------------------------------------------------------------------------------- 1 | ### ## ## ## ##### 2 | ### ## ## ## ##### 3 | ######## #### ## 4 | ######## #### ## 5 | ## # # #### ## 6 | ## # # #### ## 7 | ## # ## ## ##### 8 | ## # ## ## ##### 9 | # 10 | # 11 | # hyper @ mxc-v1.5 12 | 13 | export MXNAME='hyper' 14 | export MXC_V='mxc-v1.5' 15 | export C00='#0e0e1b' 16 | export C01='#dc4f9d' 17 | export C02='#6bd3ab' 18 | export C03='#ea8773' 19 | export C04='#4d90fd' 20 | export C05='#5c56ce' 21 | export C06='#4db5ed' 22 | export C07='#393975' 23 | export C08='#262641' 24 | export C09='#e479b4' 25 | export C10='#92dfc2' 26 | export C11='#f1ad9f' 27 | export C12='#7fb0fe' 28 | export C13='#827ed9' 29 | export C14='#7bc8f2' 30 | export C15='#7272d5' 31 | export CX1='#f73ea4' 32 | export CX2='#5cecb5' 33 | export CX3='#fe8269' 34 | export CX4='#5596ff' 35 | export CX5='#5e57ec' 36 | export CX6='#45beff' 37 | export CY1='#d377a9' 38 | export CY2='#90cdb6' 39 | export CY3='#e4a598' 40 | export CY4='#77a6f1' 41 | export CY5='#817dc6' 42 | export CY6='#76bde3' 43 | export DK0='#000000' 44 | export DK1='#07070e' 45 | export DK2='#0e0e1b' 46 | export DK3='#1c1c2c' 47 | export DK4='#262641' 48 | export DK5='#323253' 49 | export DK6='#3e3e66' 50 | export DK7='#4e4e7e' 51 | export DK8='#5b5b90' 52 | export DK9='#6b6b9f' 53 | export DL0='#050506' 54 | export DL1='#10101a' 55 | export DL2='#141429' 56 | export DL3='#181830' 57 | export DL4='#282853' 58 | export DL5='#393975' 59 | export DL6='#3f3fa2' 60 | export DL7='#5656be' 61 | export DL8='#7272d5' 62 | export DL9='#9999e1' 63 | export SBG='#64994c' 64 | export SFG='#000000' 65 | export WBG='#1c87f2' 66 | export WFG='#000000' 67 | export EBG='#6c45e1' 68 | export EFG='#d6c2c2' 69 | export XBG='#09090c' 70 | export XFG='#5656be' 71 | export OBG='#191925' 72 | export OFG='#42a0ff' 73 | export WBX='#42a0ff' 74 | export WFX='#000000' 75 | export TC00='232' 76 | export TC01='169' 77 | export TC02='79' 78 | export TC03='209' 79 | export TC04='33' 80 | export TC05='62' 81 | export TC06='74' 82 | export TC07='60' 83 | export TC08='234' 84 | export TC09='175' 85 | export TC10='115' 86 | export TC11='217' 87 | export TC12='111' 88 | export TC13='104' 89 | export TC14='117' 90 | export TC15='62' 91 | export TCX1='199' 92 | export TCX2='49' 93 | export TCX3='209' 94 | export TCX4='33' 95 | export TCX5='62' 96 | export TCX6='39' 97 | export TCY1='175' 98 | export TCY2='115' 99 | export TCY3='181' 100 | export TCY4='111' 101 | export TCY5='104' 102 | export TCY6='74' 103 | export TDK0='16' 104 | export TDK1='16' 105 | export TDK2='232' 106 | export TDK3='234' 107 | export TDK4='234' 108 | export TDK5='60' 109 | export TDK6='60' 110 | export TDK7='60' 111 | export TDK8='60' 112 | export TDK9='60' 113 | export TDL0='16' 114 | export TDL1='16' 115 | export TDL2='232' 116 | export TDL3='233' 117 | export TDL4='17' 118 | export TDL5='60' 119 | export TDL6='61' 120 | export TDL7='61' 121 | export TDL8='62' 122 | export TDL9='104' 123 | export TSBG='71' 124 | export TSFG='16' 125 | export TWBG='33' 126 | export TWFG='16' 127 | export TEBG='57' 128 | export TEFG='181' 129 | export TXBG='16' 130 | export TXFG='61' 131 | export TOBG='233' 132 | export TOFG='75' 133 | export TWBX='75' 134 | export TWFX='16' 135 | -------------------------------------------------------------------------------- /assets/samples/seed.mx: -------------------------------------------------------------------------------- 1 | # 2 | # 3 | ### ## ## ## #### 4 | ### ## ## ## #### 5 | #### ### ## ## ## ## 6 | #### ### ## ## ## ## 7 | ######## ### ## 8 | ######## ### ## 9 | ######## ### ## 10 | ######## ### ## 11 | ### # ## ## ## ## 12 | ### # ## ## ## ## 13 | ### ## ## ## ## ## 14 | ### ## ## ## ## ## 15 | ### ## ## ## #### 16 | ### ## ## ## #### 17 | # hyper @ mxc-v1.5 18 | 19 | export MXNAME='hyper' 20 | export WBG='#1c87f2' 21 | export SBG='#64994c' 22 | export EBG='#6c45e1' 23 | -------------------------------------------------------------------------------- /assets/samples/spotify-mx: -------------------------------------------------------------------------------- 1 | [mxc] 2 | ; hyper @ mxc-v1.5 3 | text = 5656be 4 | subtext = 393975 5 | main = 000000 6 | sidebar = 07070e 7 | player = 09090c 8 | card = 64994c 9 | shadow = 262641 10 | selected-row = 5c56ce 11 | button = 6c45e1 12 | button-active = 1c87f2 13 | button-disabled = 282853 14 | tab-active = 64994c 15 | notification = 6c45e1 16 | notification-error = dc4f9d 17 | misc = 6bd3ab 18 | sbg = 64994c 19 | sfg = 000000 20 | wbx = 42a0ff 21 | wfx = 000000 22 | wbg = 1c87f2 23 | wfg = 000000 24 | ebg = 6c45e1 25 | efg = d6c2c2 26 | 27 | [legacy] 28 | ; hyper @ mxc-v1.5 29 | main_bg = 000000 30 | main_fg = 393975 31 | dark_fg = 262641 32 | light_fg = 5656be 33 | miscellaneous_hover_bg = 6c45e1 34 | preserve_1 = 6c45e1 35 | selected_button = 262641 36 | slider_bg = 262641 37 | miscellaneous_bg = 262641 38 | secondary_fg = 393975 39 | indicator_fg_and_button_bg = 64994c 40 | pressing_fg = 282853 41 | cover_overlay_and_shadow = 09090c 42 | sidebar_indicator_and_hover_button_bg = 07070e 43 | sidebar_and_player_bg = 000000 44 | scrollbar_fg_and_selected_row_bg = 050506 45 | pressing_button_fg = 000000 46 | hover_selected = 0e0e1b 47 | pressing_button_bg = 64994c 48 | 49 | [pink-white] 50 | ; Pink on White background 51 | text = 000000 52 | subtext = 3D3D3D 53 | main = FAFAFA 54 | sidebar = FAFAFA 55 | player = FAFAFA 56 | card = ffd5d1 57 | shadow = F0F0F0 58 | selected-row = 404040 59 | button = FE6F61 60 | button-active = FE6F61 61 | button-disabled = 535353 62 | tab-active = e9e9e9 63 | notification = FE6F61 64 | notification-error = e22134 65 | misc = BFBFBF 66 | 67 | [green-dark] 68 | ; Light green on Dark Blue background 69 | text = FFFFFF 70 | subtext = DEDEDE 71 | main = 2E2837 72 | sidebar = 2E2837 73 | player = 2E2837 74 | card = 00e089 75 | shadow = 000000 76 | selected-row = 797979 77 | button = 00e089 78 | button-active = 00e089 79 | button-disabled = 535353 80 | tab-active = 483b5b 81 | notification = 00e089 82 | notification-error = e22134 83 | misc = BFBFBF 84 | 85 | [nord-light] 86 | text = 2E3440 87 | subtext = 3b4252 88 | main = ECEFF4 89 | sidebar = ECEFF4 90 | player = e5e9f0 91 | card = 88c0d0 92 | shadow = e5e9f0 93 | selected-row = 4c566a 94 | button = 88c0d0 95 | button-active = 88c0d0 96 | button-disabled = c0c0c0 97 | tab-active = d8dee9 98 | notification = 88c0d0 99 | notification-error = e22134 100 | misc = BFBFBF 101 | 102 | [nord-dark] 103 | text = D8DEE9 104 | subtext = ECEFF4 105 | main = 2e3440 106 | sidebar = 2e3440 107 | player = 2e3440 108 | card = 3b4252 109 | shadow = 4c566a 110 | selected-row = e5e9f0 111 | button = 5E81AC 112 | button-active = 5E81AC 113 | button-disabled = 434c5e 114 | tab-active = 434c5e 115 | notification = 5E81AC 116 | notification-error = e22134 117 | misc = BFBFBF 118 | 119 | [purple] 120 | text = FFFFFF 121 | subtext = F0F0F0 122 | main = 0A0E14 123 | sidebar = 0A0E14 124 | player = 0A0E14 125 | card = 4f2c58 126 | shadow = 3a2645 127 | selected-row = 909090 128 | button = 6F3C89 129 | button-active = 6F3C89 130 | button-disabled = 535353 131 | tab-active = 434c5e 132 | notification = 6F3C89 133 | notification-error = e22134 134 | misc = BFBFBF 135 | 136 | [dracula] 137 | text = FFFFFF 138 | subtext = d8dee9 139 | main = 282a36 140 | sidebar = 282a36 141 | player = 282a36 142 | card = 6272a4 143 | shadow = 44475a 144 | selected-row = F0F0F0 145 | button = ffb86c 146 | button-active = ffb86c 147 | button-disabled = 535353 148 | tab-active = 44475a 149 | notification = ffb86c 150 | notification-error = e22134 151 | misc = BFBFBF 152 | ;COLORS KEYS DESCRIPTION 153 | ; text = Main text, playlist names in main field, name of playlist selected in sidebar, headings 154 | ; subtext = Text in main buttons in sidebar, playlist names in sidebar, artist names, and mini infos 155 | ; main = Main field background 156 | ; sidebar = Sidebar background 157 | ; player = Player background 158 | ; card = Card background on hover and player area outline 159 | ; shadow = Card drop shadow, button background 160 | ; selected row = Color of the song selected, scrollbar, caption and playlist details, download and options buttons 161 | ; button = Playlist buttons background in sidebar, drop-down menus, now playing song, play button background, like button 162 | ; button-active = Play button background 163 | ; button-disabled = Seekbar background, volume bar background 164 | ; tab-active = Tabbar active item background in header 165 | ; notification = Notification toast 166 | ; notification-error = Notification error toast 167 | ; misc = Miscellaneous 168 | 169 | -------------------------------------------------------------------------------- /assets/samples/spotify.mx: -------------------------------------------------------------------------------- 1 | [Base] 2 | main_bg =121717 3 | main_fg =67c1c1 4 | dark_fg =2e4b4b 5 | light_fg =428080 6 | meta_1 =219088 7 | meta_2 =c8464e 8 | meta_3 =a28136 9 | miscellaneous_hover_bg =a28136 10 | preserve_1 =a28136 11 | selected_button =2e4b4b 12 | slider_bg =2e4b4b 13 | miscellaneous_bg =2e4b4b 14 | secondary_fg =2e4b4b 15 | indicator_fg_and_button_bg =c8464e 16 | pressing_fg =305e5e 17 | cover_overlay_and_shadow =121717 18 | sidebar_indicator_and_hover_button_bg =0d1a1a 19 | sidebar_and_player_bg =060d0d 20 | scrollbar_fg_and_selected_row_bg =0d1111 21 | pressing_button_fg =060d0d 22 | hover_selected =162727 23 | pressing_button_bg =c8464e 24 | meta_red =dc527e 25 | meta_yellow =dc9539 26 | meta_high =e4ac64 27 | meta_amber =a28136 28 | -------------------------------------------------------------------------------- /assets/samples/tmux.mx: -------------------------------------------------------------------------------- 1 | # 2 | # 3 | # 4 | # 5 | # 6 | # 7 | # ## ## ## ## ### 8 | # ## ## ## ## ### 9 | # ## ## # # # # 10 | # ## ## # # # # 11 | # # # # ## # 12 | # # # # ## # 13 | # # # ## # 14 | # # # ## # 15 | ## # # # # # 16 | ## # # # # # 17 | ## ## ## ## ### 18 | ## ## ## ## ### 19 | # 20 | # 21 | # 22 | # 23 | # hyper @ mxc-v1.5 24 | 25 | C00='#0e0e1b' 26 | C01='#dc4f9d' 27 | C02='#6bd3ab' 28 | C03='#ea8773' 29 | C04='#4d90fd' 30 | C05='#5c56ce' 31 | C06='#4db5ed' 32 | C07='#393975' 33 | C08='#262641' 34 | C09='#e479b4' 35 | C10='#92dfc2' 36 | C11='#f1ad9f' 37 | C12='#7fb0fe' 38 | C13='#827ed9' 39 | C14='#7bc8f2' 40 | C15='#7272d5' 41 | CX1='#f73ea4' 42 | CX2='#5cecb5' 43 | CX3='#fe8269' 44 | CX4='#5596ff' 45 | CX5='#5e57ec' 46 | CX6='#45beff' 47 | CY1='#d377a9' 48 | CY2='#90cdb6' 49 | CY3='#e4a598' 50 | CY4='#77a6f1' 51 | CY5='#817dc6' 52 | CY6='#76bde3' 53 | DK0='#000000' 54 | DK1='#07070e' 55 | DK2='#0e0e1b' 56 | DK3='#1c1c2c' 57 | DK4='#262641' 58 | DK5='#323253' 59 | DK6='#3e3e66' 60 | DK7='#4e4e7e' 61 | DK8='#5b5b90' 62 | DK9='#6b6b9f' 63 | DL0='#050506' 64 | DL1='#10101a' 65 | DL2='#141429' 66 | DL3='#181830' 67 | DL4='#282853' 68 | DL5='#393975' 69 | DL6='#3f3fa2' 70 | DL7='#5656be' 71 | DL8='#7272d5' 72 | DL9='#9999e1' 73 | SBG='#64994c' 74 | SFG='#000000' 75 | WBG='#1c87f2' 76 | WFG='#000000' 77 | EBG='#6c45e1' 78 | EFG='#d6c2c2' 79 | XBG='#09090c' 80 | XFG='#5656be' 81 | OBG='#191925' 82 | OFG='#42a0ff' 83 | WBX='#42a0ff' 84 | WFX='#000000' 85 | -------------------------------------------------------------------------------- /assets/samples/xresources-mx.xdefaults: -------------------------------------------------------------------------------- 1 | ! hyper @ mxc-v1.5 2 | 3 | ! Add ↓ to your ~/.config/kitty/kitty.conf 4 | 5 | ! include ~/.config/mxc/kitty-theme.conf 6 | ! map kitty_mod+f12 remote_control set-colors "~/.config/mxc/kitty-theme.conf" 7 | 8 | *.color0: #0e0e1b 9 | *.color1: #dc4f9d 10 | *.color2: #6bd3ab 11 | *.color3: #ea8773 12 | *.color4: #4d90fd 13 | *.color5: #5c56ce 14 | *.color6: #4db5ed 15 | *.color7: #393975 16 | *.color8: #262641 17 | *.color9: #e479b4 18 | *.color10: #92dfc2 19 | *.color11: #f1ad9f 20 | *.color12: #7fb0fe 21 | *.color13: #827ed9 22 | *.color14: #7bc8f2 23 | *.color15: #7272d5 24 | *.color20: #64994c 25 | *.color21: #000000 26 | *.color30: #1c87f2 27 | *.color31: #000000 28 | *.color40: #6c45e1 29 | *.color41: #d6c2c2 30 | *.background: #09090c 31 | *.foreground: #5656be 32 | *.selection_background: #191925 33 | *.selection_foreground: #42a0ff 34 | *.cursor_text_color: #000000 35 | *.cursor: #42a0ff 36 | -------------------------------------------------------------------------------- /assets/samples/xresources-theme.xdefaults: -------------------------------------------------------------------------------- 1 | hyper 2 | 3 | *.background: #09090c 4 | *.foreground: #5656be 5 | *.selection_background: #191925 6 | *.selection_foreground: #42a0ff 7 | *.cursor_text_color: #000000 8 | *.cursor: #42a0ff 9 | *.color0: #0e0e1b 10 | *.color1: #dc4f9d 11 | *.color2: #6bd3ab 12 | *.color3: #ea8773 13 | *.color4: #4d90fd 14 | *.color5: #5c56ce 15 | *.color6: #4db5ed 16 | *.color7: #393975 17 | *.color8: #262641 18 | *.color9: #e479b4 19 | *.color10: #92dfc2 20 | *.color11: #f1ad9f 21 | *.color12: #7fb0fe 22 | *.color13: #827ed9 23 | *.color14: #7bc8f2 24 | *.color15: #7272d5 25 | *.c00: #0e0e1b 26 | *.c01: #dc4f9d 27 | *.c02: #6bd3ab 28 | *.c03: #ea8773 29 | *.c04: #4d90fd 30 | *.c05: #5c56ce 31 | *.c06: #4db5ed 32 | *.c07: #393975 33 | *.c08: #262641 34 | *.c09: #e479b4 35 | *.c10: #92dfc2 36 | *.c11: #f1ad9f 37 | *.c12: #7fb0fe 38 | *.c13: #827ed9 39 | *.c14: #7bc8f2 40 | *.c15: #7272d5 41 | *.cx1: #f73ea4 42 | *.cx2: #5cecb5 43 | *.cx3: #fe8269 44 | *.cx4: #5596ff 45 | *.cx5: #5e57ec 46 | *.cx6: #45beff 47 | *.cy1: #d377a9 48 | *.cy2: #90cdb6 49 | *.cy3: #e4a598 50 | *.cy4: #77a6f1 51 | *.cy5: #817dc6 52 | *.cy6: #76bde3 53 | *.dk0: #000000 54 | *.dk1: #07070e 55 | *.dk2: #0e0e1b 56 | *.dk3: #1c1c2c 57 | *.dk4: #262641 58 | *.dk5: #323253 59 | *.dk6: #3e3e66 60 | *.dk7: #4e4e7e 61 | *.dk8: #5b5b90 62 | *.dk9: #6b6b9f 63 | *.dl0: #050506 64 | *.dl1: #10101a 65 | *.dl2: #141429 66 | *.dl3: #181830 67 | *.dl4: #282853 68 | *.dl5: #393975 69 | *.dl6: #3f3fa2 70 | *.dl7: #5656be 71 | *.dl8: #7272d5 72 | *.dl9: #9999e1 73 | *.sbg: #64994c 74 | *.sfg: #000000 75 | *.wbg: #1c87f2 76 | *.wfg: #000000 77 | *.ebg: #6c45e1 78 | *.efg: #d6c2c2 79 | *.xbg: #09090c 80 | *.xfg: #5656be 81 | *.obg: #191925 82 | *.ofg: #42a0ff 83 | *.wbx: #42a0ff 84 | *.wfx: #000000 85 | -------------------------------------------------------------------------------- /assets/samples/zathurarc: -------------------------------------------------------------------------------- 1 | # hyper @ mxc-v1.5 2 | 3 | set completion-fg "#000000" 4 | set completion-bg "#1c87f2" 5 | set completion-group-fg "#000000" 6 | set completion-group-bg "#64994c" 7 | set completion-highlight-fg "#d6c2c2" 8 | set completion-highlight-bg "#6c45e1" 9 | set default-fg "#5656be" 10 | set default-bg "#09090c" 11 | set inputbar-fg "#1c87f2" 12 | set inputbar-bg "#050506" 13 | set zoom-step 20 14 | set recolor true 15 | set recolor-keephue true 16 | 17 | # set recolor-darkcolor 18 | # set recolor-lightcolor 19 | # set recolor-reverse-video false 20 | 21 | # guioptions 22 | # Shows or hides GUI elements. If it contains 'c', the 23 | # command line is displayed. If it contains 's', the sta‐ 24 | # tusbar is displayed. If it contains 'h', the horizontal 25 | # scrollbar is displayed. If it contains 'v', the verti‐ 26 | # cal scrollbar is displayed. 27 | # • Value type: String 28 | # • Default value: s 29 | 30 | # notification-bg 31 | # notification-fg 32 | # notification-error-bg 33 | # notification-error-fg 34 | # notification-warning-bg 35 | # notification-warning-fg 36 | # tabbar-fg 37 | # tabbar-bg 38 | # tabbar-focus-fg 39 | # tabbar-focus-bg 40 | # show-scrollbars 41 | # Defines if both the horizontal and vertical scrollbars 42 | # should be shown or not. Deprecated, use 'guioptions' 43 | # instead. 44 | # 45 | # • Value type: Boolean 46 | # 47 | # • Default value: false 48 | # 49 | # show-h-scrollbar 50 | # Defines whether to show/hide the horizontal scrollbar. 51 | # Deprecated, use 'guioptions' instead. 52 | # 53 | # • Value type: Boolean 54 | # 55 | # • Default value: false 56 | # 57 | # show-v-scrollbar 58 | # Defines whether to show/hide the vertical scrollbar. 59 | # Deprecated, use 'guioptions' instead. 60 | # 61 | # • Value type: Boolean 62 | # 63 | # • Default value: false 64 | # 65 | # statusbar-bg 66 | # Defines the background color of the statusbar 67 | # 68 | # • Value type: String 69 | # 70 | # • Default value: #000000 71 | # 72 | # statusbar-fg 73 | # Defines the foreground color of the statusbar 74 | # 75 | # • Value type: String 76 | # 77 | # • Default value: #FFFFFF 78 | # 79 | # statusbar-h-padding 80 | # Defines the horizontal padding of the statusbar and no‐ 81 | # tificationbar 82 | # 83 | # • Value type: Integer 84 | # 85 | # • Default value: 8 86 | # 87 | # statusbar-v-padding 88 | # Defines the vertical padding of the statusbar and noti‐ 89 | # ficationbar 90 | # 91 | # • Value type: Integer 92 | # 93 | # • Default value: 2 94 | # 95 | # window-icon 96 | # Defines the path for a icon to be used as window icon. 97 | # 98 | # • Value type: String 99 | # 100 | # • Default value: 101 | # 102 | # window-height 103 | # Defines the window height on startup 104 | # 105 | # • Value type: Integer 106 | # 107 | # • Default value: 600 108 | # 109 | # window-width 110 | # Defines the window width on startup 111 | # 112 | # • Value type: Integer 113 | # 114 | # • Default value: 800 115 | -------------------------------------------------------------------------------- /assets/screenshots/2022-01-29-163127_318x127_scrot.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/metaory/mxcolr/c3a3c74943b58b1fc971f21ee98d8b764e307747/assets/screenshots/2022-01-29-163127_318x127_scrot.png -------------------------------------------------------------------------------- /assets/screenshots/2022-01-29-163915_877x552_scrot.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/metaory/mxcolr/c3a3c74943b58b1fc971f21ee98d8b764e307747/assets/screenshots/2022-01-29-163915_877x552_scrot.png -------------------------------------------------------------------------------- /assets/screenshots/2022-01-29-190221_2560x1080_scrot.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/metaory/mxcolr/c3a3c74943b58b1fc971f21ee98d8b764e307747/assets/screenshots/2022-01-29-190221_2560x1080_scrot.png -------------------------------------------------------------------------------- /assets/screenshots/2022-02-16-100414_1018x822_scrot.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/metaory/mxcolr/c3a3c74943b58b1fc971f21ee98d8b764e307747/assets/screenshots/2022-02-16-100414_1018x822_scrot.png -------------------------------------------------------------------------------- /assets/screenshots/footer_2021-05-16-221932_374x40_scrot.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/metaory/mxcolr/c3a3c74943b58b1fc971f21ee98d8b764e307747/assets/screenshots/footer_2021-05-16-221932_374x40_scrot.png -------------------------------------------------------------------------------- /assets/screenshots/gifcast_220216100211.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/metaory/mxcolr/c3a3c74943b58b1fc971f21ee98d8b764e307747/assets/screenshots/gifcast_220216100211.gif -------------------------------------------------------------------------------- /mxcolr: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env bash 2 | 3 | # set -o pipefail # set -o errtrace 4 | # source $MXS/m.lib/lib.mxtrap.sh # if tty -s; then mlg interactive; else mlg none-intreractive;fi 5 | 6 | MXBASE=$(dirname "$(realpath "$0")") 7 | MXDIST=~/.config/mxc 8 | MXTEMP=/tmp/mxc 9 | MXSNAP=$MXBASE/snapshots 10 | MTHEME=$MXTEMP/root.mx 11 | OTHEME=$MXDIST/root.mx 12 | M_SEED=$MXTEMP/seed.mx 13 | O_SEED=$MXDIST/seed.mx 14 | 15 | if ! command -v pastel &> /dev/null; then 16 | echo "pastel not found."; echo " ==> https://github.com/sharkdp/pastel#installation"; exit 1 17 | fi 18 | if ! command -v jq &> /dev/null; then 19 | echo "jq not found."; echo " ==> https://github.com/stedolan/jq"; exit 1 20 | fi 21 | if ! command -v bc &> /dev/null; then 22 | echo "GNU bc not found."; echo " ==> https://www.gnu.org/software/bc"; exit 1 23 | fi 24 | 25 | if [ -d "$MXLIB" ]; then . "$MXLIB"/lib.mxtrap.sh; else mlg () { echo "${FUNCNAME[1]}:${BASH_LINENO[1]} => ${*}" >> /tmp/mxsh.log; }; fi 26 | 27 | ! [ -e "$O_SEED" ] && cp -v "$MXBASE/assets/samples/seed.mx" "$O_SEED" 28 | ! [ -e "$OTHEME" ] && cp -v "$MXBASE/assets/samples/root.mx" "$OTHEME" 29 | 30 | . "$OTHEME" 31 | 32 | MXC_V="mxc-v$(cat $MXBASE/package.json | jq -r '.version')" 33 | 34 | mkdir "$MXDIST" -p 2>/dev/null || true 35 | mkdir "$MXSNAP" -p 2>/dev/null || true 36 | mkdir /tmp/{mxc,mxc_hist} 2>/dev/null || true 37 | 38 | # ######################################## 39 | # VARIABLES ############################## 40 | MX_CC=(C{00..15}) ; MX_CX=(CX{1..6}) ; MX_CY=(CY{1..6}) ; MX_CF=(CF{1..6}) 41 | MX_SK=(SK{0..9}) ; MX_WK=(WK{0..9}) ; MX_EK=(EK{0..9}) 42 | # ... 43 | MX_SHADES=( "${MX_SK[@]}" "${MX_WK[@]}" "${MX_EK[@]}" ) 44 | MX_CM=({S{B,F},W{B,F},E{B,F},X{B,F},O{B,F}}G W{B,F}X) 45 | # ... 46 | MX_VARS=( "${MX_CC[@]}" "${MX_CX[@]}" "${MX_CF[@]}" "${MX_CY[@]}" "${MX_CM[@]}" "${MX_SHADES[@]}" ) 47 | MX_TERM=( "${MX_VARS[@]/#/T}" ) 48 | MX_HLES=( "${MX_VARS[@]/#/HL}" ) 49 | # mapfile -t MX_VARS <<<"$(eval echo \$\{MX_C{C,X,K,L,M}\[\@\]\}))" 50 | # ######################################## 51 | for src in "$MXBASE"/src/*.sh; do . "$src"; done 52 | # ############################## 53 | GetPlugName () { local BS="${BASH_SOURCE[1]}"; BS=${BS##*/}; BS="${BS::-3}"; BS="${BS:2}"; echo "$BS"; } 54 | SourcePlugs () { for plug in "$MXBASE"/plugins/*.sh; do . "$plug"; done; } 55 | # ############################## 56 | TerminalPreview () { 57 | [[ -n "$TMUX" ]] && 58 | . "$MXBASE"/plugins/2-tmux.sh && 59 | apply_tmux 60 | 61 | [[ -n "$ALACRITTY_SOCKET" ]] && 62 | ApplyTemplates && 63 | cp -v /tmp/mxc/alacritty.yml ~/.config/mxc/alacritty.yml && 64 | cp -v /tmp/mxc/* ~/.config/mxc-v2 # XXX Temporary << forward compatibility 65 | } 66 | 67 | Revert () { 68 | rm /tmp/mxc/* 69 | UpdatePalette 70 | . "$OTHEME" 71 | TerminalPreview 72 | Demo 73 | } 74 | 75 | ApplyTemplates () { 76 | ! command -v envsubst &> /dev/null && Info 1 "envsubst command not found" && return 1 77 | for tpl_path in "$MXBASE"/templates/*; do 78 | local tpl="${tpl_path##*/}" 79 | envsubst < "$tpl_path" | tee \ 80 | >(cat > /tmp/mxc/"$tpl") \ 81 | >(cat > "$MXDIST/$tpl") &> /dev/null 82 | done 83 | # cp ~/.config/mxc ~/.config/mxc-v2 -rv; # XXX Temporary << 84 | } 85 | 86 | ApplyPlugs () { 87 | cp -v "$MXDIST" /tmp/mxc_hist/"$(date +%s)" -r 88 | # shellcheck disable=SC2046 89 | mapfile -t plugs <<<$(find "$MXBASE"/plugins -name "*.sh" -type f | sort) 90 | 91 | pnames=( "${plugs[@]##*/}" ) 92 | pnames=( "${pnames[@]#*-}" ) 93 | pnames=( "${pnames[@]%.*}" ) 94 | 95 | if [ -n "$XOPT" ] && [[ "${pnames[*]}" == *"$XOPT"* ]]; then # shellcheck disable=SC2046 96 | mapfile -t plugs <<<$(find "$MXBASE"/plugins -name "*${XOPT}.sh" -type f | sort) 97 | Info "force updated plugin list" 98 | fi 99 | 100 | for plug_id in "${!plugs[@]}"; do 101 | local plugpath="${plugs[$plug_id]}" 102 | local pname="${plugpath##*/}";pname="${pname#*-}";pname="${pname%.*}" 103 | local porder="${plugpath##*/}";porder="${porder%-*}" 104 | local lastplug="${plugs[((plug_id - 1))]}" 105 | local nextplug="${plugs[((plug_id + 1))]}" 106 | 107 | local cols;cols=$(tput cols); local plug_len=${#plugs[@]} 108 | local progress;progress=$(echo "scale=0; $cols/$plug_len*($plug_id+1)" | bc -l) 109 | 110 | flll "$progress" '▔' "$C08" 111 | 112 | [[ $porder = 0 || "$XOPT" == *"no$pname"* ]] && InfoIgnore "$pname" && continue 113 | 114 | PromptContinue "$pname" "$lastplug" "$nextplug" 115 | 116 | [[ ! "$REPLY" =~ ^[Yy]$ ]] && InfoIgnore "$pname" && continue 117 | 118 | local applyfn="apply_${pname}"; "$applyfn" 119 | done 120 | 121 | InfoDone 122 | } 123 | 124 | ReGenerate () { 125 | UpdatePalette 126 | SourcePlugs 127 | ReleaseSeed 128 | ReleaseTheme 129 | fillCols '▄'; fillCols '▀'; Demo 130 | Demo_hexes 131 | 132 | (( "$1" )) && return 133 | (( "$FORCE_UPDATE" )) && InfoWarn "FORCE_UPDATE is ON" 134 | (( "$VERBOSE" )) && InfoWarn "VERBOSE is ON" 135 | [[ -n "$XOPT" ]] && InfoWarn "XOPT $XOPT" 136 | 137 | ApplyTemplates 138 | ls "$MXTEMP" 139 | (( "$TMP_ONLY" )) && InfoWarn "--tmp-only is set, exiting ..." && exit 0 140 | 141 | PressToContinue "drafts ready" "$MXTEMP" 142 | ApplyPlugs 143 | } 144 | # ............................ # 145 | Shuffle () { 146 | core=(SBG WBG EBG) 147 | local old_SBG=$SBG 148 | local old_WBG=$WBG 149 | local old_EBG=$EBG 150 | 151 | for i in ${core[@]}; do 152 | local newSlot=$(shuf -n 1 -e ${core[@]}) 153 | local newCol="old_${newSlot}" 154 | 155 | declare -g "$i=${!newCol}" 156 | 157 | delete=$newSlot 158 | core=( "${core[@]/$delete}" ) 159 | 160 | prnt $i "$i ---------------------"; echo 161 | done 162 | 163 | SaveSeed 164 | Generate 1 165 | } 166 | # ............................ # 167 | Generate () { 168 | ! (( "$1" )) && rm /tmp/mxc/* &> /dev/null 169 | ! (( "$1" )) && GeneratePalette 170 | TerminalPreview 171 | Demo 1 172 | 173 | PrompRand 174 | case $REPLY in 175 | k ) Info 'Keeping draft ·' ; SourcePlugs ;; 176 | s ) Info 'Shuffling ·····' ; Shuffle ;; 177 | u ) Info 'Proceeding ····' ; ReGenerate ;; 178 | U ) Info 'Forcing ·······' ; FORCE_UPDATE=1; ReGenerate ;; 179 | ' ' ) Info 'Again ·········' ; Generate;; 180 | n ) Info 'Again ·········' ; Generate;; 181 | d ) Info 'Full Demo ·····' ; DemoAll ;; 182 | * ) Info 'Reverting ·····' ; Revert; ReGenerate 1 ;; 183 | esac 184 | mlg "━✔━━━┛" 185 | } # ............................ # 186 | { 187 | mlg "━━━━━━┓" 188 | case $1 in 189 | --force | -U ) FORCE_UPDATE=1; shift ;; 190 | --header ) shift; put_header "$@"; exit ;; 191 | --tmp-only ) TMP_ONLY=1; shift ;; 192 | --verbose ) VERBOSE=1; shift ;; 193 | esac 194 | menu="$1"; shift 195 | XOPT="$*" 196 | mlg "━✔━━━━ ${XOPT}" 197 | } # ............................ # 198 | 199 | { 200 | mlg "━━━━━━┓" 201 | case $menu in 202 | -g | generate ) Generate ;; 203 | -u | update ) ReGenerate ;; 204 | -U | update-force ) FORCE_UPDATE=1; ReGenerate ;; 205 | -d | demo ) Demo ;; 206 | -D | demo-all ) DemoAll ;; 207 | -i | init ) . "$MXBASE"/plugins/2-tmux.sh ; apply_tmux 1 ; Demo_block ;; 208 | -l | list ) ListSnapshots ;; 209 | -r | random ) ListSnapshots 1 ;; 210 | -s | save ) SaveSnapshot ;; 211 | intro ) MXIntro "$menu" ;; 212 | --demo-image ) SaveDemoImage ; exit ;; 213 | --gen-icon ) GenIcon "$@" ; exit ;; 214 | --shuffle ) Shuffle "$@" ;; 215 | --lorem ) Lorem "$@" ;; 216 | --lorem-cols ) LoremCols "$@" ;; 217 | --darkest ) darkest "$@" ;; 218 | --lightest ) lightest "$@" ;; 219 | -xp ) expandp "$@" ;; 220 | * ) PrintMenu ;; 221 | esac 222 | mlg "━✔━━━━┛" 223 | } 224 | 225 | exit 0 226 | 227 | -------------------------------------------------------------------------------- /package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "mxc", 3 | "version": "1.9.0", 4 | "main": "mxcolr", 5 | "repository": "git@github.com:metaory/mxcolr.git", 6 | "author": "metaory ", 7 | "license": "MIT" 8 | } 9 | -------------------------------------------------------------------------------- /plugins/0-fzf.sh: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env bash 2 | 3 | # BS="$(GetPlugName)" 4 | # MXC_FZF_TMP=/tmp/mxc/"$BS" 5 | # MXC_FZF_OUT="${MXC_FZF_OUT:-"$HOME/.zprofile"}" 6 | 7 | 8 | # FZF_COLOR_OPTS="$FZF_DEFAULT_OPTS \ 9 | # --color=fg:${XFG},bg:${XBG},hl:${WBG} \ 10 | # --color=fg+:${SBG},bg+:${SK0},hl+:${WBX} \ 11 | # --color=info:${EBG},prompt:${C08},pointer:${WBX} \ 12 | # --color=marker:${C01},spinner:${WBG},header:${C01}" 13 | 14 | # if ! [ -e "$MXC_FZF_OUT" ]; then 15 | # InfoError "$MXC_FZF_OUT doesnt exists" 16 | # return 17 | # fi 18 | 19 | # sed -r \ 20 | # -e "s/^export FZF_DEFAULT_OPTS=.+$/export FZF_DEFAULT_OPTS=\"$FZF_COLOR_OPTS\"/" \ 21 | # "$MXC_FZF_OUT" > "$MXC_FZF_TMP" 22 | 23 | # Info "$MXC_FZF_TMP" 24 | 25 | # apply_fzf () { 26 | # cp -v --backup "$MXC_FZF_TMP" "$MXC_FZF_OUT" 27 | # InfoDone "$MXC_FZF_OUT" 28 | # } 29 | -------------------------------------------------------------------------------- /plugins/0-slack.sh: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env sh 2 | 3 | InfoIgnore "Disabled" 4 | apply_slack () { InfoIgnore 'not implemented'; } 5 | return 6 | 7 | # set -eu 8 | # 9 | # rm -rf ~/.tmp/slack 10 | # mkdir -p ~/.tmp/slack 11 | # rm -rf ~/.tmp/app.asar 12 | # 13 | # # cp -r ~/.tmp/slack_fresh_extract ~/.tmp/slack 14 | # # asar extract /usr/lib/slack/resources/app.asar ~/.tmp/slack 15 | # asar extract ~/dev/meta/configs/scripts/slack/backup/app.asar ~/.tmp/slack 16 | # # 17 | # 18 | # sudo rm /usr/lib/slack/resources/app.asar || true 19 | # sudo rm -rf /usr/lib/slack/resources/app.asar.unpacked || true 20 | # 21 | # base_path="$HOME/dev/meta/configs/meta-theme/icons/slack/png" 22 | # main_bundle_path="$HOME/.tmp/slack/dist/main.bundle.js" 23 | # noti_bundle_path="$HOME/.tmp/slack/dist/notifications.bundle.js" 24 | # entry_point_path="$HOME/.tmp/slack/dist/preload.bundle.js" 25 | # 26 | # rest="data:image/png;base64,$(base64 -w 0 ${base_path}/slack-taskbar-rest.png)" 27 | # sed -i "s|slack_taskbar_rest_default.a|\"$rest\"|g" $main_bundle_path 28 | # 29 | # highlight="data:image/png;base64,$(base64 -w 0 ${base_path}/slack-taskbar-highlight.png)" 30 | # sed -i "s|slack_taskbar_highlight_default.a|\"$highlight\"|g" $main_bundle_path 31 | # 32 | # unread="data:image/png;base64,$(base64 -w 0 ${base_path}/slack-taskbar-unread.png)" 33 | # sed -i "s|slack_taskbar_unread_default.a|\"$unread\"|g" $main_bundle_path 34 | # 35 | # JS=" 36 | # const meta_css = '[lang] body {\ 37 | # --sk_primary_foreground: 169,177,214;\ 38 | # --sk_primary_background: 26,27,38;\ 39 | # --sk_foreground_min_solid: 35,36,51;\ 40 | # --sk_foreground_min: 23,24,33;\ 41 | # --sk_foreground_high_solid: 43,44,62;\ 42 | # --sk_foreground_max_solid: 76,86,106;\ 43 | # }\ 44 | # .c-message_kit__background--labels { background: #171821 !important; }\ 45 | # \/* active chat sidebar */\ 46 | # .p-channel_sidebar__channel--selected {\ 47 | # color: #16a085 !important;\ 48 | # font-weight: 900 !important;\ 49 | # }\ 50 | # \ 51 | # \/* SELECTED */\ 52 | # .p-channel_sidebar__channel--selected .p-channel_sidebar__channel_icon_prefix {\ 53 | # color: #16a085 !important;\ 54 | # font-weight: 900 !important;\ 55 | # }\ 56 | # \ 57 | # \/* UNREAD TOP SIDEBAR */\ 58 | # .p-channel_sidebar__link--unread .p-channel_sidebar__name {\ 59 | # color: #81A2BE !important;\ 60 | # }\ 61 | # \/* UNREAD TOP SIDEBAR ICON */\ 62 | # .p-channel_sidebar__link--unread .p-channel_sidebar__link__icon {\ 63 | # color: #66aacc !important;\ 64 | # }\ 65 | # \ 66 | # \/* UNREAD SIDEBAR ICON */\ 67 | # .p-channel_sidebar__channel--unread:not(.p-channel_sidebar__channel--muted) .p-channel_sidebar__channel_icon_prefix {\ 68 | # color: #66aacc !important;\ 69 | # }\ 70 | # \/* UNREAD NOT-MENTION SIDEBAR */\ 71 | # .p-channel_sidebar__channel--unread:not(.p-channel_sidebar__channel--muted) .p-channel_sidebar__name:only-of-type {\ 72 | # color: #81A2BE !important;\ 73 | # }\ 74 | # \/* UNREAD IS-MENTION SIDEBAR */\ 75 | # .p-channel_sidebar__channel--unread:not(.p-channel_sidebar__channel--muted) .p-channel_sidebar__name:nth-last-of-type(2) {\ 76 | # color: #CC6666 !important;\ 77 | # }\ 78 | # .c-texty_input { border-color: #232433 !important; } '; 79 | # 80 | # let meta_s = document.createElement('style'); 81 | # meta_s.type = 'text/css'; 82 | # meta_s.innerHTML = meta_css; 83 | # setTimeout(() => { 84 | # document.head.appendChild(meta_s); 85 | # }, 10000); 86 | # " 87 | # 88 | # tee -a "${entry_point_path}" > /dev/null <<< "$JS" 89 | # 90 | # asar pack ~/.tmp/slack ~/.tmp/app.patched.asar 91 | # 92 | # sudo cp ~/.tmp/app.patched.asar /usr/lib/slack/resources/app.asar 93 | # sudo cp -r ~/.tmp/slack /usr/lib/slack/resources/app.asar.unpacked 94 | # 95 | # # ############################################################################ # 96 | # # ############################################################################ # 97 | -------------------------------------------------------------------------------- /plugins/1-xresources.sh: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env bash 2 | 3 | BS="$(GetPlugName)-theme.xdefaults" 4 | # MXC_XRS_TMP=/tmp/mxc/"$BS" 5 | MXC_XRS_OUT="${MXC_XRS_OUT:-"$MXDIST/$BS"}" 6 | 7 | # $(get_header '!') 8 | # cat << EOF | tr '[:upper:]' '[:lower:]' > "$MXC_XRS_TMP" 9 | # $MXNAME 10 | # *.background: $XBG 11 | # *.foreground: $XFG 12 | # *.selection_background: $OBG 13 | # *.selection_foreground: $OFG 14 | # *.cursor_text_color: $WFX 15 | # *.cursor: $WBX 16 | # EOF 17 | 18 | # shellcheck disable=SC2016 19 | # PopulateFileWith "$MXC_XRS_TMP" 'APPEND' \ 20 | # '*.${c/C0/color}: ${!c}' \ 21 | # C{00..09} 22 | # shellcheck disable=SC2016 23 | # PopulateFileWith "$MXC_XRS_TMP" 'APPEND' \ 24 | # '*.${c/C/color}: ${!c}' \ 25 | # C{10..15} 26 | # shellcheck disable=SC2046 27 | # shellcheck disable=SC2016 28 | # PopulateFileWith "$MXC_XRS_TMP" 'APPEND' \ 29 | # '*.${c,,}: ${!c}' \ 30 | # "${MX_VARS[@]}" 31 | 32 | # Info "$MXC_XRS_TMP" 33 | 34 | apply_xresources() { 35 | if ! grep "mxc" "$HOME"/.Xresources; then 36 | InfoWarn "${MXC_XRS_OUT} is not included in $HOME/.Xresources" 37 | # Info 'appent include?'; PromptContinue; if [[ ! "$REPLY" =~ ^[Yy]$ ]]; then return; fi 38 | InfoWarn "add this to your $HOME/.Xresources " 39 | echo "#include $MXC_XRS_OUT"; echo 40 | # echo "#include '~/.config/mxc/mx-xrs.xdefaults'" >> "$HOME"/.Xresources; InfoDone 'added' 41 | fi 42 | 43 | # cp -v "$MXC_XRS_TMP" "$MXC_XRS_OUT" 44 | xrdb "$HOME/.Xresources"; InfoDone "refreshed xrdb with $HOME/.Xresources" 45 | 46 | Info "$MXC_XRS_OUT" 47 | } 48 | -------------------------------------------------------------------------------- /plugins/2-lscolors.sh: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env bash 2 | LS_COLORS_EXPORT_DESTINATION=$HOME/.zshrc 3 | 4 | apply_lscolors () { 5 | ! command -v vivid &> /dev/null && Info 1 "vivid command not found" && return 1 6 | ! command -v envsubst &> /dev/null && Info 1 "envsubst command not found" && return 1 7 | 8 | # ! [ -e /tmp/mxc/lscolors.yml ] && envsubst < "$MXBASE"/templates/mxc-lscolors.yml > /tmp/mxc/lscolors.yml 9 | 10 | vivid generate /tmp/mxc/lscolors-vivid.yml | tee \ 11 | >(cat > "$MXTEMP"/ls_colors) \ 12 | >(cat > "$MXDIST"/ls_colors) \ 13 | >({ read -r lscolors; \ 14 | sed -r -i_OLD -e "s/^export LS_COLORS=.+$/export LS_COLORS='$lscolors'/" \ 15 | "$LS_COLORS_EXPORT_DESTINATION"; }) &> /dev/null 16 | 17 | InfoDone 18 | } 19 | -------------------------------------------------------------------------------- /plugins/2-tmux.sh: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env bash 2 | # ################# 3 | 4 | MXC_TMUX_TMP=/tmp/mxc/tmux.mx 5 | MXC_TMUX_OUT="${MXC_DEFAULT_TMUX_OUT:-$HOME/.config/tmux/tmux.mx}" 6 | M_THEME=$HOME/.config/tmux/meta.min.tmuxtheme 7 | 8 | # shellcheck disable=SC2046 9 | PopulateFileWith "$MXC_TMUX_TMP" 'FLUSH' \ 10 | "\${c}=\'\${!c}\'" \ 11 | "${MX_VARS[@]}" 12 | 13 | Info "$MXC_TMUX_TMP" 14 | 15 | [ "$TMUX" ] && tmux run-shell "tmux source-file $MXC_TMUX_TMP" 16 | [ "$TMUX" ] && tmux run-shell "tmux source-file $M_THEME" 17 | 18 | apply_tmux () { 19 | local TSOCK=''; # KSOCK='';KFLAG=''; # KSOCK='--to unix:/tmp/kitty-mtx' # KFLAG='-a -c' 20 | if [ "$TMUX" ]; then TSOCK="$(tmux display -p "#{b:socket_path}")"; else TSOCK="${MX_DEFAULT_TMUX_SOCKET:-master}"; fi 21 | 22 | cp -v $MXC_TMUX_TMP $MXC_TMUX_OUT 23 | 24 | tmux -L "$TSOCK" run-shell "tmux source-file $MXC_TMUX_OUT" 25 | [ "$M_THEME" ] && tmux -L "$TSOCK" run-shell "tmux source-file $M_THEME" 26 | 27 | InfoDone 28 | } 29 | 30 | 31 | -------------------------------------------------------------------------------- /plugins/2-vim.sh: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env bash 2 | 3 | MXC_VIM_TMP=/tmp/mxc/root-mx.vim 4 | MXC_VIM_OUT="$MXDIST"/root-mx.vim 5 | 6 | # cat << EOF > "$MXC_VIM_TMP" 7 | # $(get_header '\"') 8 | # 9 | # let g:mxc_g_black ='${DK0}' 10 | # let g:mxc_c_black = ${TDK0} 11 | # 12 | # let g:mxc_g_white = '${C15}' 13 | # let g:mxc_c_white = ${TC15} 14 | # EOF 15 | 16 | # shellcheck disable=SC2046 17 | PopulateFileWith "$MXC_VIM_TMP" 'FLUSH:"' \ 18 | "let g:mxc_g_\${c,,} = \'\${!c}\'" \ 19 | "${MX_VARS[@]}" 20 | # $(eval echo \$\{MX_C{C,X,M,K,L}\[\@\]\}) 21 | 22 | # shellcheck disable=SC2046 23 | PopulateFileWith "$MXC_VIM_TMP" 'APPEND' \ 24 | "let g:mxc_c_\${c,,} = \'\${!c}\'" \ 25 | "${MX_TERM[@]}" 26 | # $(eval echo \$\{MX_T{C,X,M,K,L}\[\@\]\}) 27 | # "*.\${c/color}: \${!c}" \ 28 | Info "$MXC_VIM_TMP" 29 | 30 | 31 | apply_vim () { 32 | cp -v --backup "$MXC_VIM_TMP" "$MXC_VIM_OUT" 33 | 34 | # cp -v /tmp/mxc/mxc-nvim-base16.lua ~/.config/nvim/lua/themes 35 | # cp -v /tmp/mxc/mxc-nvim-colors.lua ~/.config/nvim/lua/themes 36 | cp -v /tmp/mxc/vim-visual-multi_themes.vim ~/.local/share/nvim/site/pack/packer/opt/vim-visual-multi/autoload/vm/themes.vim 37 | # cp -v /tmp/mxc/palette.lua ~/.config/nvim/lua/cosmic/theme/integrated/mxc-palette.lua 38 | cp -v /tmp/mxc/palette.lua ~/.config/nvim/lua/mxc/palette.lua 39 | cp -v /tmp/mxc/mxc-nvim-base16.lua ~/.config/nvim/lua/mxc 40 | cp -v /tmp/mxc/mxc-nvim-colors.lua ~/.config/nvim/lua/mxc 41 | 42 | InfoDone "$MXC_VIM_OUT" 43 | } 44 | 45 | -------------------------------------------------------------------------------- /plugins/2-vimium.sh: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env bash 2 | 3 | BS="$(GetPlugName)" 4 | VIMIUM_TMP=/tmp/mxc/"$BS" 5 | VIMIUM_EXTENSION_PATH=$HOME/.config/chromium/Default/Extensions/dbepggeogbaibhgnhhndojpepiihcmeb/1.67_0; # XXX replace me with ls ! 6 | VIMIUM_TARGETS=("$VIMIUM_EXTENSION_PATH"/{content_scripts/vimium.css,pages/vomnibar.css}) 7 | 8 | # ! [ -d "$VIMIUM_EXTENSION_PATH" ] && Info 1 "VIMIUM_EXTENSION_PATH $VIMIUM_EXTENSION_PATH not directory" && return 9 | 10 | # /* MXC_PLACEHOLDER */ 11 | __prep () { 12 | local target="${1}" 13 | sed -r \ 14 | -e "s/--mxc-c01:.+$/--mxc-c01: ${C01};/" \ 15 | -e "s/--mxc-c02:.+$/--mxc-c02: ${C02};/" \ 16 | -e "s/--mxc-c03:.+$/--mxc-c03: ${C03};/" \ 17 | -e "s/--mxc-c04:.+$/--mxc-c04: ${C04};/" \ 18 | -e "s/--mxc-c05:.+$/--mxc-c05: ${C05};/" \ 19 | -e "s/--mxc-c06:.+$/--mxc-c06: ${C06};/" \ 20 | -e "s/--mxc-c07:.+$/--mxc-c07: ${C07};/" \ 21 | -e "s/--mxc-c08:.+$/--mxc-c08: ${C08};/" \ 22 | -e "s/--mxc-c09:.+$/--mxc-c09: ${C09};/" \ 23 | -e "s/--mxc-c10:.+$/--mxc-c10: ${C10};/" \ 24 | -e "s/--mxc-c11:.+$/--mxc-c11: ${C11};/" \ 25 | -e "s/--mxc-c12:.+$/--mxc-c12: ${C12};/" \ 26 | -e "s/--mxc-c13:.+$/--mxc-c13: ${C13};/" \ 27 | -e "s/--mxc-c14:.+$/--mxc-c14: ${C14};/" \ 28 | -e "s/--mxc-c15:.+$/--mxc-c15: ${C15};/" \ 29 | -e "s/--mxc-fg:.+$/--mxc-fg: ${XFG};/" \ 30 | -e "s/--mxc-bg:.+$/--mxc-bg: ${XBG};/" \ 31 | -e "s/--mxc-bg:.+$/--mxc-bg: ${XBG};/" \ 32 | -e "s/--mxc-xbg:.+$/--mxc-xbg: ${XBG};/" \ 33 | -e "s/--mxc-xfg:.+$/--mxc-xfg: ${XFG};/" \ 34 | -e "s/--mxc-sbg:.+$/--mxc-sbg: ${SBG};/" \ 35 | -e "s/--mxc-wbg:.+$/--mxc-wbg: ${WBG};/" \ 36 | -e "s/--mxc-ebg:.+$/--mxc-ebg: ${EBG};/" \ 37 | -e "s/--mxc-sfg:.+$/--mxc-sfg: ${SFG};/" \ 38 | -e "s/--mxc-wfg:.+$/--mxc-wfg: ${WFG};/" \ 39 | -e "s/--mxc-efg:.+$/--mxc-efg: ${EFG};/" \ 40 | -e "s/--mxc-border:.+$/--mxc-border: ${SK3};/" \ 41 | -e "s/--mxc-bg-dark:.+$/--mxc-bg-dark: ${SK1};/" \ 42 | -e "s/--mxc-bg-darker:.+$/--mxc-bg-darker: ${SK0};/" \ 43 | -e "s/--mxc-main-fg:.+$/--mxc-main-fg: ${SK7};/" \ 44 | -e "s/--mxc-fg-dark:.+$/--mxc-fg-dark: ${SK6};/" \ 45 | -e "s/--mxc-fg-light:.+$/--mxc-fg-light: ${WK5};/" \ 46 | -e "s/--mxc-amber-fg:.+$/--mxc-amber-fg: ${WBG};/" \ 47 | -e "s/--mxc-accent-fg:.+$/--mxc-accent-fg: ${SBG};/" \ 48 | -e "s/--mxc-purple-dark:.+$/--mxc-purple-dark: ${EBG};/" \ 49 | "$target" > "${VIMIUM_TMP}_${target##*/}" 50 | 51 | InfoDone "$target" 52 | } 53 | 54 | apply_vimium () { 55 | for t in "${VIMIUM_TARGETS[@]}"; do 56 | Info "$t" 57 | cp -v --backup "${VIMIUM_TMP}_${t##*/}" "$t" 58 | done 59 | 60 | InfoDone "${VIMIUM_TARGETS[@]}" 61 | } 62 | 63 | 64 | for t in "${VIMIUM_TARGETS[@]}" 65 | do __prep "$t" 66 | done 67 | 68 | Info "${VIMIUM_TMP}" 69 | 70 | -------------------------------------------------------------------------------- /plugins/4-gtk.sh: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env bash 2 | 3 | BS="$(GetPlugName)-theme.mx" 4 | MXC_GTK_TMP=/tmp/mxc/"$BS" 5 | MXC_GTK_OUT="${MXC_GTK_OUT:-"$MXDIST/$BS"}" 6 | 7 | 8 | :>"$MXC_GTK_TMP" 9 | 10 | cat << EOF > "$MXC_GTK_TMP" 11 | $(get_header) 12 | 13 | NOGUI=True 14 | NAME=${MXC_V} 15 | 16 | GTK3_GENERATE_DARK=True 17 | BASE16_GENERATE_DARK=True 18 | 19 | BASE16_INVERT_TERMINAL=False 20 | BASE16_MILD_TERMINAL=False 21 | 22 | CINNAMON_OPACITY=1.0 23 | CARET1_FG=${WBX:1} 24 | CARET2_FG=${SBG:1} 25 | ACCENT_BG=${EBG:1} 26 | CARET_SIZE=0.04 27 | GRADIENT=0.0 28 | 29 | OUTLINE_WIDTH=1 30 | BTN_OUTLINE_OFFSET=-3 31 | BTN_OUTLINE_WIDTH=1 32 | 33 | BG=${XBG:1} 34 | BTN_BG=${C00:1} 35 | BTN_FG=${C07:1} 36 | FG=${XFG:1} 37 | HDR_BTN_BG=${C00:1} 38 | HDR_BTN_FG=${C07:1} 39 | ICONS_NUMIX_STYLE=0 40 | ICONS_SYMBOLIC_ACTION=${C00:1} 41 | ICONS_SYMBOLIC_PANEL=${C08:1} 42 | ICONS_STYLE=archdroid 43 | ICONS_ARCHDROID=${WK6:1} 44 | ICONS_DARK=${SK0:1} 45 | ICONS_LIGHT=${SK4:1} 46 | ICONS_LIGHT_FOLDER=${SK2:1} 47 | ICONS_MEDIUM=${C05:1} 48 | HDR_BG=${SK0:1} 49 | HDR_FG=${SK6:1} 50 | SEL_BG=${OBG:1} 51 | SEL_FG=${OFG:1} 52 | TXT_BG=${XBG:1} 53 | TXT_FG=${XFG:1} 54 | MENU_BG=${SK1:1} 55 | MENU_FG=${SK7:1} 56 | SPACING=3 57 | ROUNDNESS=2 58 | 59 | SPOTIFY_PROTO_BG=${XBG:1} 60 | SPOTIFY_PROTO_FG=${SK2:1} 61 | SPOTIFY_PROTO_SEL=${WBG:1} 62 | 63 | THEME_STYLE=oomox 64 | TERMINAL_THEME_MODE=manual 65 | TERMINAL_THEME_AUTO_BGFG=False 66 | TERMINAL_THEME_EXTEND_PALETTE=False 67 | TERMINAL_THEME_ACCURACY=128 68 | 69 | TERMINAL_BACKGROUND=${XBG:1} 70 | TERMINAL_FOREGROUND=${XFG:1} 71 | TERMINAL_ACCENT_COLOR=${WBG:1} 72 | 73 | TERMINAL_COLOR0=${C00:1} 74 | TERMINAL_COLOR1=${C01:1} 75 | TERMINAL_COLOR2=${C02:1} 76 | TERMINAL_COLOR3=${C03:1} 77 | TERMINAL_COLOR4=${C04:1} 78 | TERMINAL_COLOR5=${C05:1} 79 | TERMINAL_COLOR6=${C06:1} 80 | TERMINAL_COLOR7=${C07:1} 81 | TERMINAL_COLOR8=${C08:1} 82 | TERMINAL_COLOR9=${C09:1} 83 | TERMINAL_COLOR10=${C10:1} 84 | TERMINAL_COLOR11=${C11:1} 85 | TERMINAL_COLOR12=${C12:1} 86 | TERMINAL_COLOR13=${C13:1} 87 | TERMINAL_COLOR14=${C14:1} 88 | TERMINAL_COLOR15=${C15:1} 89 | EOF 90 | 91 | # since https://github.com/metaory/mxcolr/commit/f6d25e 92 | # most of this file couple be replaced by a simple template file 93 | 94 | Info "$MXC_GTK_TMP" 95 | 96 | ApplyGTKTheme () { 97 | PromptContinue; if [[ ! "$REPLY" =~ ^[Yy]$ ]]; then return; fi 98 | 99 | notify "╸頋━ ━ ${MXC_V} in 3s ⏲" ; sleep 1 100 | oomox-cli --make-opts all -o "$MXC_V" -t "$HOME"/.themes -m all "$MXC_GTK_OUT" 101 | 102 | # useless  103 | [[ -n "$OOMOX_GUI_PREVIEW_ENABLED" ]] && cp -v "$MXC_GTK_TMP" /opt/oomox/plugins/import_random/colors/random3 104 | } 105 | # ............................ # 106 | ApplyGTKIcon () { 107 | PromptContinue; if [[ ! "$REPLY" =~ ^[Yy]$ ]]; then return; fi 108 | 109 | notify "  ${MXNAME}.${MXC_V} in 3s ⏲" ; sleep 1 110 | /opt/oomox/plugins/icons_archdroid/archdroid-icon-theme/change_color.sh -o "$MXC_V" "$MXC_GTK_OUT" 111 | 112 | InfoDone 113 | } 114 | ApplyGTKCursor () { 115 | CURSOR_THEME=MetaPurpleDark 116 | # PromptContinue "update cursor theme to ${CURSOR_THEME} ?" 117 | # if [[ ! "$REPLY" =~ ^[Yy]$ ]]; then return; fi 118 | # sed -r -i \ 119 | # -e "/^gtk-cursor-theme-name/s/=.+$/=${CURSOR_THEME}/" \ 120 | # ~/.config/gtk-3.0/settings.ini 121 | 122 | InfoDone 123 | } 124 | # ............................ # 125 | 126 | apply_gtk () { 127 | if [[ "$XOPT" == *"nogtk"* ]]; then InfoIgnore; return; fi 128 | cp -v --backup "$MXC_GTK_TMP" "$MXC_GTK_OUT" 129 | ApplyGTKTheme 130 | ApplyGTKIcon 131 | ApplyGTKCursor 132 | InfoDone 133 | # ApplyGTKSpt 134 | } 135 | 136 | # ApplyGTKSpt () { 137 | # if [[ "$XOPT" == *"noxsp"* ]]; then InfoIgnore; return; fi 138 | # PromptContinue; if [[ ! "$REPLY" =~ ^[Yy]$ ]]; then return; fi 139 | # oomoxify-cli -s /opt/spotify/Apps "$MXC_GTK_TMP" 140 | # InfoDone 141 | # } 142 | -------------------------------------------------------------------------------- /plugins/5-spotify.sh: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env bash 2 | 3 | SPICETIFY_PATH=~/.config/spicetify 4 | SPICETIFY_THEME=Metafy 5 | MXC_SPOTIFY_TMP=/tmp/mxc/spotify-mx 6 | not_found_msg="spicetify not found." 7 | # #main > div > div.Root__top-container > nav { max-width: 100px; } 8 | 9 | if ! command -v spicetify &> /dev/null; then 10 | echo $not_found_msg 11 | echo " ==> https://github.com/khanhas/spicetify-cli" 12 | ignore=1 13 | fi 14 | 15 | ! [ $ignore ] && ! [ -d "$SPICETIFY_PATH/Themes/$SPICETIFY_THEME" ] && mkdir -p "$SPICETIFY_PATH/Themes/$SPICETIFY_THEME" 16 | 17 | apply_spotify () { 18 | [ $ignore ] && InfoIgnore $not_found_msg && return 1 19 | 20 | ! [ -e "$MXC_SPOTIFY_TMP" ] && InfoError "missing templates" && return 1 21 | 22 | cp -v $MXC_SPOTIFY_TMP ${SPICETIFY_PATH}/Themes/${SPICETIFY_THEME}/color.ini 23 | 24 | spicetify config current_theme Metafy 25 | spicetify config color_scheme mxc 26 | 27 | spicetify update 28 | spicetify apply -n 29 | 30 | InfoDone 31 | } 32 | 33 | -------------------------------------------------------------------------------- /plugins/5-zathura.sh: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env bash 2 | 3 | apply_zathura () { 4 | ! command -v zathura &> /dev/null && return 1 5 | 6 | cp -v --backup /tmp/mxc/zathurarc ~/.config/zathura/zathurarc 7 | 8 | InfoDone 9 | } 10 | 11 | -------------------------------------------------------------------------------- /plugins/9-awm.sh: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env bash 2 | BS="$(GetPlugName)" 3 | 4 | AWESOME_THEME=${AWESOME_THEME:-$USER} 5 | AWESOME_THEME_PATH=~/.config/awesome/themes/$AWESOME_THEME 6 | WALLPAPER_BASE_PATH=~/pics/wall/BASE.png 7 | 8 | ################################ 9 | notify () { 10 | if command -v notify-send &> /dev/null; then 11 | notify-send "${1}" 12 | else 13 | echo -e "\n ==> $* \n" 14 | fi 15 | } 16 | ################################ 17 | ApplyWallpaper () { 18 | ! [ -e $WALLPAPER_BASE_PATH ] && InfoIgnore "Wallpaper BASE.png not found." "$WALLPAPER_BASE_PATH" && return 19 | 20 | PromptContinue; if [[ ! "$REPLY" =~ ^[Yy]$ ]]; then return; fi 21 | local stamp 22 | stamp=$(date +%s) 23 | stamp=${stamp:(-8)} 24 | 25 | local base="$HOME"/pics/wall/BASE.png 26 | if ! [ -e "$base" ]; then InfoError "base wallpaper not found"; InfoError "$base"; return; fi 27 | cp -v "$HOME"/pics/wall/curr.png "$HOME"/pics/wall/hist/"${stamp}".png 28 | local tintColor;tintColor=$(darkest SBG WBG EBG) 29 | PromptWallpaperTint "$tintColor" 30 | pastel paint -b "$EBG" " ==> running convert -fill $tintColor with -colorize value: [$REPLY]%" 31 | 32 | # convert "$HOME"/pics/wall/BASE.png -fill "${!tintColor}" -tint "$REPLY" "$HOME"/pics/wall/curr.png 33 | convert ~/pics/wall/BASE-1.png -fill "${!tintColor}" -colorize "$REPLY"% ~/pics/wall/curr-1.png 34 | convert ~/pics/wall/BASE-2.png -fill "${!tintColor}" -colorize "$REPLY"% ~/pics/wall/curr-2.png 35 | # convert "$HOME"/pics/wall/curr.png -fill "${!tintColor}" -tint "1"% "$HOME"/pics/wall/curr.png 36 | InfoDone 37 | } 38 | # //////////////////////////// 39 | ################################ 40 | ApplyIcons () { 41 | ! [ -d $AWESOME_THEME_PATH ] && InfoIgnore "Awesome Theme $AWESOME_THEME not found." "$AWESOME_THEME_PATH" && return 42 | 43 | if [[ "$XOPT" == *"noico"* ]]; then InfoIgnore; return; fi 44 | 45 | PromptContinue; if [[ ! "$REPLY" =~ ^[Yy]$ ]]; then return; fi 46 | # shellcheck disable=SC2046 47 | # TODO 48 | mapfile -t APP_ICONS <<<$(find "$AWESOME_THEME_PATH"/icons/apps -name "*.png" -type f 2> /dev/null) 49 | mapfile -t LAYOUT_ICONS <<<$(find "$AWESOME_THEME_PATH"/icons/layout -name "*.png" -type f 2> /dev/null) 50 | 51 | local darkest;darkest=$(darkest SBG WBG EBG) 52 | local k="${darkest:0:1}"; 53 | local shade="${k}K6"; shade="${!shade}" 54 | # local tg_tray_icon=/usr/share/pixmaps/telegram.png 55 | # [ -w "$tg_tray_icon" ] && APP_ICONS+=("$tg_tray_icon") 56 | 57 | Info "${#APP_ICONS[@]} APP_ICONS" 58 | for ico in "${APP_ICONS[@]}"; do 59 | convert "$ico" -fill "${WBG}" -colorize 100% "$ico" 60 | done 61 | InfoDone "${#APP_ICONS[@]} APP_ICONS" 62 | 63 | Info "${#LAYOUT_ICONS[@]} LAYOUT_ICONS" 64 | for ico in "${LAYOUT_ICONS[@]}"; do 65 | convert "$ico" -fill "${EBG}" -colorize 100% "$ico" 66 | done 67 | InfoDone "${#LAYOUT_ICONS[@]} LAYOUT_ICONS" 68 | 69 | # Info "${#CUSTOM_ICONS[@]} CUSTOM_ICONS" 70 | # for ico in "${CUSTOM_ICONS[@]}"; do 71 | # cp -v "$ico" /tmp/mxc/"${BS}_${ico##*/}" 72 | # convert "$ico" -modulate 100,100,200 "$ico" 73 | # done 74 | # InfoDone "${#CUSTOM_ICONS[@]} CUSTOM_ICONS" 75 | 76 | declare -A customIcons 77 | customIcons[/usr/share/pixmaps/steam_tray_mono.png]='' 78 | customIcons[/usr/share/icons/hicolor/48x48/apps/telegram.png]='' 79 | 80 | for x in "${!customIcons[@]}"; do 81 | icon="${customIcons[$x]}"; path="${x}" 82 | ! [ -w $path ] && continue 83 | echo "icon $icon " 84 | echo "path $path " 85 | 86 | GenIcon "$icon" "$shade" "$path" 128 87 | done 88 | 89 | 90 | InfoDone 91 | } 92 | # //////////////////////////// 93 | # //////////////////////////// 94 | 95 | RestartAWM () { 96 | PromptContinue; if [[ ! "$REPLY" =~ ^[Yy]$ ]]; then return; fi 97 | notify "restarting AWM in 3s ⏲" ; sleep 3 98 | 99 | if command -v awesome-client &> /dev/null; then 100 | awesome-client 'awesome.restart()' &>/dev/null || true 101 | fi 102 | 103 | # awesome --replace & disown 104 | killall steam &>/dev/null 105 | killall nm-applet &>/dev/null 106 | killall telegram-desktop &>/dev/null 107 | 108 | sleep 3 109 | 110 | # if command -v steam &> /dev/null; then steam & disown; fi 111 | if command -v nm-applet &> /dev/null; then nm-applet & disown; fi 112 | # if command -v telegram-desktop &> /dev/null; then telegram-desktop & disown; fi 113 | 114 | InfoDone 115 | } 116 | 117 | apply_awm () { 118 | ApplyWallpaper 119 | ApplyIcons 120 | RestartAWM 121 | } 122 | -------------------------------------------------------------------------------- /src/demo.sh: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env bash 2 | 3 | MX_XX=(SBG WBG EBG) 4 | MX_CA=(C{00..07}) 5 | MX_CB=(C{08..15}) 6 | 7 | ################################ 8 | # //////////////////////////// 9 | # //////////////////////////// 10 | Demo_block () { 11 | [[ -z $2 ]] && { fill 8 ; pl "${MX_XX[0]}" "${1-${MXNAME:0:2}}" ; pl "${MX_XX[1]}" "${MXNAME:2:4}" ;pl "${MX_XX[2]}" "${MXNAME:8:16}"; pl '-'; } 12 | fill 5 ; pl "${MX_XX[0]}" " ▄▄" ; prntlist 'prnt:sp_block_d' "${MX_XX[@]}" ; pl "${MX_XX[-1]}" '▀▀' ; pl '-' 13 | } 14 | Demo_slant () { 15 | Demo_block 1 16 | fill 1 ; pl ; prntlist 'prnt:sp_line_top' "${MX_CA[@]}" ; pl '-' 17 | fill 1 ; pl "${MX_CA[0]}" " ┗━" ; prntlist 'prnt:sp_block_l' "${MX_CA[@]}" ; pl "${MX_CA[-1]}" '┛' ; pl '-' 18 | fill 1 ; pl "${MX_CB[0]}" ' ┏━╺' ; prntlist 'prnt:sp_block_l' "${MX_CB[@]}" ; pl '-' 19 | fill 1 ; pl ; prntlist 'prnt:sp_line_bot' "${MX_CB[@]}" ; pl '-' 20 | fill 4 ; prntlist 'pl:sp_line_top_mini' "${MX_CX[@]}" ; pl '-' 21 | fill 4 ; pl "${MX_CX[0]}" "┗━" ; prntlist 'prnt:sp_block_c' "${MX_CX[@]}" ; pl "${MX_CX[-1]}" "━┛"; pl '-' 22 | fill 7 ; prntlist 'pl:sp_line_bo2' "${MX_CX[@]}" ; pl '-' 23 | } 24 | 25 | # ############################## 26 | _title () { 27 | local tlen=9 28 | local label="${1^^}" 29 | label="${label:0:$tlen}" 30 | local llen=${#label} 31 | 32 | local flen=$((tlen-llen+1)) 33 | local fill; fill=$(printf "%0.s " $(seq 1 "$flen")) 34 | local out="${label}${fill}" 35 | 36 | pastel paint "$SK0" -n " ██" 37 | pastel paint "$XFG" -n -i -o "$SK0" " ${out} " 38 | pastel paint "$SK0" "█" 39 | } 40 | _head () { 41 | local s="${1}" 42 | local filler=' ' 43 | (( "$2" )) && filler='█' 44 | local fill; fill="$(printf "%0.s${filler}" $(seq 1 6))" 45 | local out="${s}${fill}"; out=" ${out::3}" 46 | local bg="$WBG" 47 | local fg="$WFG" 48 | (( $2 )) && bg="$XBG" && fg="$WBG" 49 | pastel paint -n -o "$bg" "$fg" "$out" 50 | } 51 | Demo_card () { 52 | local s="${1:-$MXNAME}"; local c="${2:-}"; local t="${3:-}" 53 | local cy=("${MX_XX[@]}" "${MX_CX[@]}") 54 | fll 8 ; _title "$s" 55 | fll 8; _head "$c" 0 '-b' ; prntlist 'prnt:sp_tiny' "${MX_CA[@]}" ; echo 56 | fll 8; _head "∕" 0 ; prntlist 'prnt:sp_tiny' "${MX_CB[@]}" ; echo 57 | fll 8; _head "$t" 0 ; prntlist 'prnt:sp_tiny' "${cy[@]}" ; echo 58 | fll 8; _head " " 0 ; prntlist 'prnt:sp_tiny' "${MX_SK[@]}" ; echo 59 | fll 8; _head " " 0 ; prntlist 'prnt:sp_tiny' "${MX_WK[@]}" ; echo 60 | fll 8; _head "██" 1 ; prntlist 'prnt:sp_tiny' "${MX_EK[@]}" ; echo 61 | } 62 | # ############################## 63 | # Demo_shades() { 64 | # pl "${MX_CK[0]}" ' ┏╸━' ; prntlist 'prnt:sp_block_l' "${MX_CK[@]}" ; pl '-' 65 | # pl ; prntlist 'prnt:sp_line_bot' "${MX_CK[@]}" ; pl '-' 66 | # } 67 | # Demo_shades1() { fill 1 ; prntlist 'prnt:sp_lash' "${MX_CK[@]}" ; pl '-' ; }j 68 | # Demo_shades2() { fill 1 ; prntlist 'prnt:sp_pentagon' "${MX_CK[@]}" ; pl '-' ; } 69 | Demo_shades3() { 70 | fill 0 ; printf 'SK ' ; prntlist 'prnt:sp_dotline' "${MX_SK[@]}" ; pl '-' 71 | fill 0 ; printf 'WK ' ; prntlist 'prnt:sp_dotline' "${MX_WK[@]}" ; pl '-' 72 | fill 0 ; printf 'EK ' ; prntlist 'prnt:sp_dotline' "${MX_EK[@]}" ; pl '-' 73 | } 74 | Demo_shades4() { 75 | fill 3; for i in {0..9}; do printf '%s ' "$i"; done; echo 76 | 77 | fill 0 ; printf 'SK ' ; prntlist 'prnt:sp_block_e' "${MX_SK[@]}" ; pl '-' 78 | fill 0 ; printf 'WK ' ; prntlist 'prnt:sp_block_e' "${MX_WK[@]}" ; pl '-' 79 | fill 0 ; printf 'EK ' ; prntlist 'prnt:sp_block_e' "${MX_EK[@]}" ; pl '-' 80 | } 81 | 82 | Demo_mxname () { 83 | fll 2 84 | pastel paint -n -b -o "$SBG" "$SFG" " ${1:-$USER} " 85 | pastel paint -n -b -o "$WBG" "$WFG" " $MXNAME " 86 | pastel paint -n -b -o "$EBG" "$EFG" " $MXC_V " 87 | } 88 | Demo_dot_slant () { 89 | sp_cross_begin='┏╸'; sp_cross_close=' ╺┓' 90 | fill 5 ; prntlist 'prnt:sp_cross' "${MX_CX[@]}" ; pl '-' 91 | fill 3 ; prntlist 'prnt:sp_circle_slant' "${MX_CA[@]:1:6}" ; pl '-' 92 | sp_cross_close=' ╺┛'; sp_cross_begin='┗╸' 93 | fill 5 ; prntlist 'prnt:sp_cross' "${MX_CB[@]:1:6}" ; pl '-' 94 | } 95 | # ############################## 96 | Demo_dot () { 97 | fill 9 ; prntlist 'prnt:sp_dot' "${MX_XX[@]}" ; pl '-' 98 | fill 6 ; prntlist 'prnt:sp_dot' "${MX_CX[@]}" ; pl '-' 99 | fill 4 ; prntlist 'prnt:sp_dot' "${MX_CA[@]}" ; pl '-' 100 | fill 4 ; prntlist 'prnt:sp_dot' "${MX_CB[@]}" ; pl '-' 101 | fill 6 ; prntlist 'prnt:sp_dot' "${MX_CY[@]}" ; pl '-' 102 | 103 | fill 2 ; prntlist 'prnt:sp_dot' "${MX_SK[@]}" SBG ; pl '-' 104 | fill 2 ; prntlist 'prnt:sp_dot' "${MX_WK[@]}" WBG ; pl '-' 105 | fill 2 ; prntlist 'prnt:sp_dot' "${MX_EK[@]}" EBG ; pl '-' 106 | } 107 | Demo_format () { 108 | local format=${1:-hex} 109 | for seed in SBG WBG EBG; do 110 | local val=$(pastel format $format ${!seed}) 111 | local slen=$((7-${#val})) 112 | local space=$(printf "%0.s " $(seq 1 "$slen")) 113 | pastel paint -b -n "${!seed}" "▏${val}${space}" 114 | done 115 | pastel paint $C08 "░ ${format}" 116 | } 117 | Demo_spectrum () { 118 | local angle=${1:-darkest} 119 | local seed;seed=$($angle SBG WBG EBG) 120 | local ulen="${#USER}" 121 | local mlen="${#MXNAME}" 122 | local flen=$((ulen+mlen-2)) 123 | local space; space=$(printf "%0.s " $(seq 1 "$flen")) 124 | 125 | pastel paint -b -o "${!seed}" \ 126 | "$(pastel textcolor "${!seed}")" \ 127 | " ${angle::7} seed: ${seed}${space}" 128 | } 129 | # ############################## 130 | # ·╺━╸⏽ ●  ● ⏽╺━╸· 131 | MXDots-full () { prntlist 'prnt:sp_dot' "${MX_XX[@]}" ; pl ; } 132 | MXDots () { prntlist 'prnt:sp_dot' "${MX_XX[@]}" ; pl ; } 133 | 134 | MXDotLine () { 135 | local cols;cols=$(tput cols); fill 0 136 | pl 'C08' '·╺╺╺╸╺━╸⏽'; MXDots; pl 'C08' '⏽╺━╸╺╸╸╸·'; pl '-' 137 | } 138 | MXDotLine-full () { 139 | local cols;cols=$(tput cols); fill 0 140 | pl 'C08' '·╺╺╺╸━╸╺━╸⏽'; MXDots-full; pl 'C08' '⏽╺━╸╺━╺╸╸╸·'; pl '-' 141 | } 142 | # shellcheck disable=SC2046 143 | __randmico () { shuf -n 1 -e $(cat ~/mxx/mico/uni-etc); } 144 | 145 | MXMico () { ( (( RANDOM % 2 )) && MXDots ) || __randmico; } 146 | 147 | MXIntro () { 148 | fll 4; pastel paint "$C08" -n "${1:-NA}ms" 149 | (( RANDOM % 2 )) && MXDotLine || Demo_block 0 0 150 | } 151 | 152 | MYIntro () { 153 | case $(( RANDOM % 3 )) in 154 | 0 ) MXDotLine ;; 155 | 1 ) LoremCols ;; 156 | 2 ) Demo_block 0 0 ;; 157 | esac 158 | } 159 | # //////////////////////////// 160 | # //////////////////////////// 161 | Demo () { 162 | if (( "$FORCE_UPDATE" )); then return; fi 163 | (( "$1" )) && echo "[TOTAL_ATTEMPTS] $TOTAL_ATTEMPTS" 164 | 165 | fll 4; Demo_format hsl-saturation 166 | fll 4; Demo_format lch-hue 167 | fll 4; Demo_format lch-lightness 168 | fll 4; Demo_format lch-chroma 169 | echo 170 | fll 4; Demo_spectrum darkest 171 | fll 2; Demo_mxname "$USER"; echo 172 | fll 4; Demo_spectrum lightest 173 | 174 | Demo_block 175 | Demo_dot 176 | MXDotLine 177 | fillCols 178 | } 179 | DemoAll () { 180 | if (( "$FORCE_UPDATE" )); then return; fi 181 | # Demo_card "$USER" 182 | Demo_slant 183 | Demo_shades3 184 | Demo_shades4 185 | 186 | Demo_dot_slant 187 | MXDotLine 188 | fillCols 189 | Demo_hexes 190 | } 191 | SaveDemoImage () { 192 | if command -v kitty && command -v scrot &> /dev/null; then 193 | kitty sh -c "mxcolr demo; 194 | sleep 2; 195 | scrot -a 300,110,310,300 /tmp/mxc/mxc-full.png; 196 | " 197 | 198 | kitty sh -c "mxcolr demo; 199 | sleep 2; 200 | scrot -a 300,380,310,32 /tmp/mxc/mxc-foot.png; 201 | " 202 | fi 203 | } 204 | 205 | __print_hexes () { 206 | while [ "$1" ]; do 207 | local tc="$(pastel textcolor "${!1}")" 208 | local cc="${!1}" 209 | pastel paint -n -o "${!1}" "${tc}" " ${1} " 210 | pastel paint -n -o "#000" "${cc}" "${cc:(-6)}" 211 | printf ' ' 212 | shift 213 | done 214 | echo 215 | } 216 | 217 | # shellcheck disable=SC2046 218 | Demo_hexes () { 219 | if (( "$FORCE_UPDATE" )); then return; fi 220 | fillCols '━' 221 | __print_hexes $(echo CX{1..6}) 222 | __print_hexes $(echo C{01..06}) 223 | __print_hexes $(echo C{09..14}) 224 | __print_hexes $(echo CY{1..6}) 225 | fillCols '━' 226 | __print_hexes C00 C08 C07 C15 227 | fillCols '━' 228 | __print_hexes $(echo {S,W,E}BG) 229 | fillCols '━' 230 | for i in {0..9}; do __print_hexes SK${i} WK${i} EK${i}; done 231 | } 232 | 233 | -------------------------------------------------------------------------------- /src/icon.sh: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env bash 2 | 3 | GenIcon () { 4 | local char="${1:?missing char}" 5 | local color="${2:?missing color}" 6 | local destinathion="${3:?missing destination}" 7 | local size="${4:-96}" 8 | 9 | echo "char : ${char}" 10 | echo "color : ${color}" 11 | echo "destinathion : ${destinathion}" 12 | 13 | convert -font Sauce-Code-Pro-Black-Nerd-Font-Complete \ 14 | -background none \ 15 | -pointsize ${size} label:" ${char} " \ 16 | /tmp/mxc/z1.png 17 | 18 | # convert /tmp/mxc/z1.png -transparent "white" /tmp/mxc/z2.png 19 | 20 | convert /tmp/mxc/z1.png -fill "$color" -colorize 100 /tmp/mxc/z2.png 21 | 22 | convert /tmp/mxc/z2.png -background none -gravity center -extent 160x160 /tmp/mxc/z3.png 23 | 24 | convert /tmp/mxc/z3.png -resize 128x128\! "$destinathion" 25 | 26 | InfoDone 27 | } 28 | 29 | -------------------------------------------------------------------------------- /src/imagemagick.sh: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env bash 2 | 3 | # XXX 4 | # TODO move utils here 5 | 6 | -------------------------------------------------------------------------------- /src/menu.sh: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env bash 2 | 3 | DEFAULT_TINT=${DEFAULT_TINT:-10} 4 | 5 | _paint () { pastel paint -b "${2:-$WBG}" "${1:-NA}"; } 6 | # tput sc 7 | _info () { 8 | local ico; local cf; local cc; # ; local lvl=$1 # ; local on 9 | # ! [[ $2 =~ ^[0-9]+$ ]] && lvl=0 10 | mlg "$*" 11 | case "${1:-0}" in 12 | 0) ico=' ' ; cc="$C02" ;; 13 | 1) ico='' ; cc="$C01" ;; 14 | 2) ico='' ; cc="$C07" ;; 15 | 3) ico='' ; cc="$C05" ;; 16 | *) ico='' ; cc="$C03" ;; 17 | esac ; shift 18 | cf="${C07:-#f00}"; cc="${cc:-#ff0}" 19 | 20 | local in="${1:-${BASH_SOURCE[2]}}" ; [[ "$VERBOSE" ]] && ! [[ "$in" =~ ^[0-9]+$ ]] && [[ -n "$in" ]] && pastel paint "$C07" " => ${in}" 21 | local fn="${2:-${FUNCNAME[2]}}" ; #fn="${fn:(-8)}" 22 | local sf="${3:-${BASH_SOURCE[2]}}" ; sf="${sf:(-8)}" ; #sf="${sf:(-8)}" 23 | 24 | local src="${sf} ${fn}" 25 | local fill_len ; fill_len=$((19-${#src})) 26 | local fill ; fill="$(printf '%0.s ' $(seq 1 ${fill_len}))" 27 | 28 | # tput rc; tput el 29 | pastel paint -b -n -o 'black' "${cf}" "[${src}]" 30 | pastel paint -b -n "$cc" "${fill}${1##*/}" 31 | pastel paint -b "$cc" " ${ico} " 32 | } 33 | 34 | InfoDone () { _info 0 "$*" ; } 35 | InfoError () { _info 1 "$*" ; } 36 | Info () { _info 2 "$*" ; } 37 | InfoIgnore () { _info 3 " Ignoring·"; _paint " ==> ${*}" "$EBG"; } 38 | InfoWarn () { _info 4 "$*" ; } 39 | 40 | PressToContinue () { 41 | if (( "$FORCE_UPDATE" )); then return; fi 42 | [ -n "$1" ] && pastel paint "${SBG:-yellow}" -b " [ $1 ] $2" 43 | local fn; fn="${FUNCNAME[1]}" 44 | pastel paint -b -n -o 'black' "$WBX" "[${fn}]" 45 | pastel paint -b -n "$C03" " press any key to continue" 46 | pastel paint -b -n "$C01" " ⋯ "; MXDots; MXSep; pl 47 | if (( "$FORCE_UPDATE" )); then REPLY='y'; pl '-'; return; fi 48 | read -n 1 -r -s 49 | pl '-' 50 | } 51 | 52 | _slant_sep () { local s; s=''; [[ -n "$1" ]] && s='█'; pastel paint -n -o "${2:-black}" "${1:-$XBG}" "$s"; } 53 | 54 | PrompRand () { 55 | pastel paint -n -o "$WBG" "$WFG" " ● " ; _slant_sep "$WBG" ; _slant_sep 56 | pastel paint -n -b -o "black" "$C05" " [k]" ; pastel paint -n -o "black" "$C07" "eep " ; _slant_sep 57 | pastel paint -n -b -o "black" "$C02" " [*R]" ; pastel paint -n -o "black" "$C07" "evert " ; _slant_sep 58 | pastel paint -n -b -o "black" "$C01" " [Uu]" ; pastel paint -n -o "black" "$C07" "pdate " ; _slant_sep 59 | pastel paint -n -b -o "black" "$C04" " [s]" ; pastel paint -n -o "black" "$C07" "huffle " ; _slant_sep 60 | pastel paint -n -b -o "black" "$C03" " [n]" ; pastel paint -n -o "black" "$C07" "ext " ; _slant_sep 61 | pastel paint -n -b -o "black" "$C06" " [d]" ; pastel paint -n -o "black" "$C07" "emo" ; _slant_sep "black" "$XBG" 62 | echo 63 | read -n 1 -r -s 64 | pastel paint -o "$XBG" "$SBG" -b -n " █" 65 | pastel paint -o "$SBG" "$SFG" -b -n "$REPLY" 66 | pastel paint -o "$XBG" "$SBG" -b "█" 67 | } 68 | 69 | PromptConfirm () { 70 | if (( "$FORCE_UPDATE" )); then REPLY='y'; return; fi 71 | local msg; msg="${1:-Are you sure?}" 72 | pastel paint "$WBG" -n "${msg^} " 73 | pastel paint "$SBG" -n -b "[y/N] " 74 | read -n 1 -r; pl; if [[ "$REPLY" =~ ^[Yy]$ ]]; then 75 | pastel paint -o "$C00" "$CX2" -b "  ·  "; else 76 | pastel paint -o "$C00" "$CX3" -b "  ·  "; fi 77 | } 78 | PromptContinue () { 79 | pastel paint -b -n "${C07:-#666}" "[ " 80 | pastel paint -b -n "${C08:-#666}" "${2##*/} " 81 | pastel paint -b -n "${C03:-#f66}" "${1:-${FUNCNAME[1]}}" 82 | pastel paint -b -n "${C07:-#666}" " ${3##*/}" 83 | pastel paint -b -n "${C07:-#666}" " ] ==> " 84 | PromptConfirm "   continue $1 " 85 | } 86 | 87 | PromptWallpaperTint () { 88 | pastel paint -b -n -o 'black' "$WBX" "[${FUNCNAME[0]}]" 89 | pastel paint -b -n "$C03" " enter Fill value [0-1000]" 90 | pastel paint -b -n "$C02" " default:($DEFAULT_TINT) " 91 | (( "$FORCE_UPDATE" )) && REPLY="$DEFAULT_TINT" && return 92 | read -r 93 | [ -z "$REPLY" ] && REPLY="$DEFAULT_TINT" 94 | if ! [[ "$REPLY" =~ ^[0-9]+$ ]]; then 95 | pastel paint -b -n -o "$C01" "black" "  $REPLY " 96 | pastel paint -b "$C01" " numbers only " 97 | PromptWallpaperTint 98 | fi 99 | } 100 | 101 | PrintMenu () { 102 | (( "$DEBUG" )) && return 103 | cat << EOF 104 | Usage 105 | ===== 106 | mxcolr [options] [params] 107 | 108 | Options 109 | ======= 110 | --force | forcefull update 111 | --verbose | verbose logs 112 | --tmp-only | exit silently after placing temp files in /tmp/mxc 113 | 114 | Utilities 115 | ========= 116 | --gen-icon | [char, path]; create image in path icon from the char 117 | --lorem | [length, char]; print char randomely for the length 118 | --lorem-cols | [char]; fill terminal column with char 119 | --darkest | [colors]; return darkest color of the list 120 | --lightest | [colors]; return lightest color of the list 121 | 122 | Actions 123 | ======= 124 | -g, generate | (Pastel randomization strategy) default is lch 125 | -u, update | apply to all plugins 126 | -U, update-force | force apply to all plugins without any prompts 127 | -d, demo | basic demo 128 | -D, demo-all | complete demo 129 | -l, list | list all saved snapshots 130 | -r, random | pick a random snapshot 131 | -s, save | save snapshot 132 | * | intro 133 | 134 | EOF 135 | 136 | InfoDone 137 | } 138 | -------------------------------------------------------------------------------- /src/mx-seed.sh: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env bash 2 | 3 | SaveSeed () { 4 | Info " Save Temp Seed" 5 | 6 | MXNAME="MXC_${MXC_V}" 7 | 8 | command -v bullshit &> /dev/null \ 9 | && MXNAME="$(bullshit | cut -d' ' -f1 | cut -d'-' -f1)" 10 | 11 | PopulateFileWith "$M_SEED" 'FLUSH' \ 12 | "export \${c}=\'\${!c}\'" \ 13 | MXNAME SBG WBG EBG 14 | 15 | . "$M_SEED" && InfoDone "$M_SEED" 16 | } 17 | 18 | ReleaseSeed () { 19 | cp -v "$M_SEED" "$O_SEED" 20 | . "$O_SEED" && InfoDone "$O_SEED" 21 | } 22 | -------------------------------------------------------------------------------- /src/mx-theme.sh: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env bash 2 | 3 | SaveTheme () { 4 | PopulateFileWith "$MTHEME" 'FLUSH' \ 5 | "export \${c}=\'\${!c}\'" \ 6 | MXNAME MXC_V "${MX_VARS[@]}" "${MX_TERM[@]}" "${MX_HLES[@]}" 7 | 8 | . "$MTHEME" && InfoDone "$MTHEME" 9 | } 10 | 11 | ReleaseTheme () { 12 | cp -v "$MTHEME" "$OTHEME" 13 | . "$OTHEME" && InfoDone "$OTHEME" 14 | } 15 | 16 | -------------------------------------------------------------------------------- /src/paint.sh: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env bash 2 | 3 | sp_block_l_begin='▌' ; sp_block_l_middl='' ; sp_block_l_close='▐' 4 | sp_pentagon_begin='' ; sp_pentagon_middl='' ; sp_pentagon_close='' 5 | sp_tiny_begin=' ' ; sp_tiny_middl=' ' ; sp_tiny_close=' ' 6 | sp_blank_begin=' ' ; sp_blank_middl=' ' ; sp_blank_close=' ' ; 7 | sp_block_l_begin='' ; sp_block_l_middl='' ; sp_block_l_close='' 8 | sp_block_c_begin='█' ; sp_block_c_middl='' ; sp_block_c_close='█' 9 | sp_block_d_begin='█' ; sp_block_d_middl='██' ; sp_block_d_close='█' 10 | sp_block_e_begin='▆ ' ; sp_block_e_middl='▆ ' ; sp_block_e_close='▆' 11 | sp_block_r_begin='' ; sp_block_r_middl='' ; sp_block_r_close='' 12 | sp_line_top_begin='┏╸━' ; sp_line_top_middl='━╸' ; sp_line_top_close='━━╸━┓' 13 | sp_line_begin='╺╸' ; sp_line_middl='··' ; sp_line_close='·╺╸' 14 | sp_line_top_begin='┏╸' ; sp_line_top_middl='·' ; sp_line_top_close='·╺┓' ; #    15 | sp_cross_begin=' ' ; sp_cross_middl=' ' ; sp_cross_close=' ' 16 | sp_dot_begin=' ' ; sp_dot_middl=' ' ; sp_dot_close=' ' 17 | sp_lash_begin='●' ; sp_lash_middl='●' ; sp_lash_close='●●' 18 | sp_dotline_begin='╸⏽' ; sp_dotline_middl='●⏽' ; sp_dotline_close='╺' 19 | sp_lash_begin='╸⏽' ; sp_lash_middl='●⏽' ; sp_lash_close='●╺' 20 | sp_box_slant_begin='█┣╸●' ; sp_box_slant_middl=' ' ; sp_box_slant_close=' ●╺┫█' 21 | sp_circle_slant_begin='█┣ ●' ; sp_circle_slant_middl=' ' ; sp_circle_slant_close=' ● ┫█' 22 | sp_dot_slant_begin='█🮈╸' ; sp_dot_slant_middl='·' ; sp_dot_slant_close='·╺▍█' 23 | sp_line_top_mini_begin='┏╸' ; sp_line_top_mini_middl='·' ; sp_line_top_mini_close='·╺╺┓' 24 | sp_line_bot_begin='┗━╺╸╺╸' ; sp_line_bot_middl='╺━' ; sp_line_bot_close='┛' 25 | sp_line_bo2_begin='┗╸' ; sp_line_bo2_middl='╺╸' ; sp_line_bo2_close='┛' 26 | sp_box_begin='■' ; sp_box_middl='■' ; sp_box_close='■' 27 | sp_box2_begin='█🮈' ; sp_box2_middl='▍' ; sp_box2_close='▍█' 28 | 29 | # \\\\\\\\\\\\\\\\\\\\\\\\\\\\ 30 | prnt (){ 31 | char="${2:-}" 32 | pastel paint -o "$XBG" -n "${!1:-red}" "$char" 33 | } 34 | pl () { 35 | [ $# -eq 0 ] && printf ' ' && return 36 | c="${1:-XBG}" 37 | s="${2:- }" 38 | o="$XBG" 39 | if [[ "$1" == '-' ]]; then 40 | s='' 41 | op='-b' 42 | c='XBG' 43 | else 44 | op='-n' 45 | fi 46 | pastel paint -o "$o" "$op" "${!c:-red}" "$s" 47 | } 48 | fll () { printf "%0.s${2:- }" $(seq 1 "${1:-1}"); } 49 | flll () { 50 | local n="$1";n=$((n-1)) 51 | local tx;tx="$(printf "%0.s${2:- }" $(seq 1 "$n"))" 52 | pastel paint "${3:-$C00}" "$tx" 53 | } 54 | fill () { 55 | local cols;cols=$(tput cols) 56 | 57 | local o ; o="${1:-1}" 58 | local l ; l="${2:-10}" 59 | local s ; s="${3:- }" 60 | local c ; c="${4:-grey}" 61 | local b ; b="${5:-$XBG}" 62 | local n ; n=$((( (cols/2-${#3})-l)+o)); (( n < 0 )) && n="$o" 63 | local _filler ; _filler=$(printf "%0.s$s" $(seq 1 "$((n/${#s}))")) 64 | 65 | pastel paint "${c}" -o "${b}" -n "$_filler" 66 | } 67 | fillHead () { 68 | local s=" ${1:-} " 69 | local slen=$((${#s})) 70 | local sep='╺╸·╺╸' 71 | local cols; cols=$(tput cols) 72 | local space; space=$((( cols/2 - slen/2 ))) 73 | fill $space "$cols" "$sep" "$XFG" 74 | pastel paint -n -o "$XBG" -b "${XFG}" "$s" 75 | fill $space "$(( cols + ${#sep} ))" "$sep" "$XFG"; pl '-' 76 | } 77 | fillCols () { 78 | fill "$(($(tput cols)/2))" 0 "${1:-}" "${SK3}" 79 | pl '-' 80 | } 81 | 82 | # "$(tput cols)" "${1:-·}" "${2:-$C00}"; } 83 | # fillCols () { pl "$(tput cols)" "${1:-·}" "${2:-$C00}"; } 84 | # 85 | prntlist () { 86 | fname="${1%:*}" 87 | spmap="${1##*:}" 88 | 89 | sp_begin="${spmap}_begin" 90 | sp_middl="${spmap}_middl" 91 | sp_close="${spmap}_close" 92 | shift 93 | list=("$@") 94 | for i in "${!list[@]}"; do 95 | if (( i == 0 )); then 96 | $fname "${list[$i]}" "${!sp_begin}" 97 | continue 98 | fi 99 | if (( i + 1 == ${#list[@]} )); then 100 | $fname "${list[$i]}" "${!sp_close}" 101 | continue 102 | fi 103 | 104 | $fname "${list[$i]}" "${!sp_middl}" 105 | done 106 | } 107 | 108 | MXSep () { pastel paint -n -b "$C08" "${1:-⏽}"; } 109 | 110 | get_header () { 111 | local comment_char="${1:-#}" 112 | local header="{2:-MXCOLR}" 113 | if command -v figlet &> /dev/null; then 114 | if [ -d /usr/share/figlet/fonts ]; then 115 | # header=$(figlet MXC -f "$(basename "$(find /usr/share/figlet/fonts -name '*.flf' | shuf -n 1)")" 2>/dev/null) 116 | header=$(figlet 'MXC' -p -f "$(figlist | shuf -n 1)" 2>/dev/null) 117 | else 118 | header=$(figlet "MXC" 2>/dev/null) 119 | fi 120 | fi 121 | local name="$MXNAME @ $MXC_V"; local _f=$(( ${#name} / 2 + 2 )) 122 | asciiart="$header" 123 | 124 | if ! (( "$3" )); then 125 | asciiart="$(sed "s/^.*/${comment_char}&/p" <<< "$header")" 126 | fi 127 | asciiart="$(sed "s/[[:graph:]]/${comment_char}/g" <<< "$asciiart")" 128 | asciiart+=" 129 | ${comment_char} ${name}" 130 | echo "$asciiart" 131 | # $(printf "%0.s${comment_char}" $(seq 1 $_f))" 132 | } 133 | 134 | put_header () { 135 | local des="$1"; shift 136 | local esc="${1:-·}" 137 | header=$(get_header "$esc" "MXC" 1) 138 | echo "local header = {" > "$des" 139 | while read -r i 140 | do 141 | echo "\"$i\"," >> "$des" 142 | done <<< "$header" 143 | 144 | echo "}" >> "$des" 145 | echo "return header" >> "$des" 146 | } 147 | 148 | Lorem () { 149 | local s='' 150 | for t in $(seq 1 "${1:-300}"); do 151 | (( RANDOM % 2 )) && s+="${2:-▂}" || s+=' ' 152 | done 153 | pastel paint "${WBG}" "$s" 154 | } 155 | 156 | LoremCols () { 157 | Lorem "$(tput cols)" $1 158 | } 159 | 160 | -------------------------------------------------------------------------------- /src/palette.sh: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env bash 2 | 3 | ################################ 4 | MIN_HUE_DISTANCE=40 5 | ATTMP_WARN_THRESHOLD=7 6 | ################################ 7 | _format () { pastel format $*; } 8 | _formathex () { pastel format hex $*; } 9 | _textcolor () { pastel textcolor $*; } 10 | _saturate () { pastel saturate $*; } 11 | _desaturate () { pastel desaturate $*; } 12 | _saturation () { pastel set hsl-saturation $*; } 13 | _lightness () { pastel set hsl-lightness $*; } 14 | _lighten () { pastel lighten $*; } 15 | _darken () { pastel darken $*; } 16 | ################################ 17 | _diff_real () { echo "df=($1 - $2); if (df < 0) { df=df* -1}; print df" | bc -l; } 18 | ################################ 19 | 20 | sort_lightness () { 21 | local H=0;local highest 22 | local L=100;local lowest 23 | 24 | while [ "$1" ]; do 25 | local l; l=$(_format lch-lightness "${!1}") 26 | (( $(echo "$l < $L" | bc) )) && L="$l" && lowest="$1" 27 | (( $(echo "$l > $H" | bc) )) && H="$l" && highest="$1" 28 | shift 29 | done 30 | 31 | echo "$highest:$lowest" 32 | } 33 | 34 | expandp () { 35 | while [ "$1" ]; do 36 | _format hex "${!1}" 37 | shift 38 | done 39 | } 40 | ################################ 41 | lightest () { 42 | local l; l=$(sort_lightness "$@" | cut -d':' -f1) 43 | pastel paint "$(_textcolor "${!l}")" -o "${!l}" "${l}" 44 | } 45 | ################################ 46 | darkest () { 47 | local d; d=$(sort_lightness "$@" | cut -d':' -f2) 48 | pastel paint "$(_textcolor "${!d}")" -o "${!d}" "${d}" 49 | } 50 | 51 | # shellcheck disable=SC2034 52 | gen_random () { 53 | local attmp="${1:-1}" 54 | local strategy="${XOPT:-lch}" ; [[ "$strategy" == 'lch' ]] && strategy='lch_hue' 55 | local redo=0 56 | 57 | local seeds=( SBG WBG EBG ) 58 | 59 | local randoms=( $(pastel random -n 3 -s "$strategy" | pastel sort-by chroma | _formathex) ) 60 | 61 | for seed_id in ${!seeds[@]}; do 62 | local seed=${seeds[$seed_id]} 63 | 64 | declare -g "$seed=${randoms[$seed_id]}" 65 | 66 | local pre 67 | (( seed_id )) && 68 | pre="${seeds[((seed_id - 1))]}" || 69 | pre="${seeds[((${#seeds} - 1))]}" 70 | 71 | local curChroma=$(_format lch-chroma ${!seed}) 72 | local curLightness=$(_format lch-lightness ${!seed}) 73 | local curHue=$(_format lch-hue ${!seed}) 74 | local preHue=$(_format lch-hue ${!pre}) 75 | local diffHue; diffHue=$(_diff_real "$curHue" "$preHue") 76 | 77 | # Chroma boundaries 78 | (( $(echo "$curChroma > 80" | bc) )) && 79 | declare -g "${seed}=$(pastel set chroma 60 ${!seed} | _formathex)" 80 | 81 | # Lightness boundaries 82 | (( $(echo "$curLightness > 70" | bc) )) && 83 | declare -g "${seed}=$(pastel set lightness 60 ${!seed} | _formathex)" 84 | 85 | # Hue Distance boundaries 86 | (( $(echo "$diffHue < $MIN_HUE_DISTANCE" | bc -l) )) && redo=1 87 | done 88 | 89 | if (( redo )); then 90 | ! (( attmp % ATTMP_WARN_THRESHOLD )) && PressToContinue "failed $attmp attempts, still continue?" 91 | gen_random $((++attmp)) 92 | else 93 | declare -g "TOTAL_ATTEMPTS=$attmp" 94 | fillCols ' ▪'; InfoDone "${strategy^^} generated, after $attmp attempts,proceeding" 95 | return 96 | fi 97 | } 98 | 99 | gen_idempotents () { 100 | local ds;ds=$(darkest SBG WBG EBG) 101 | 102 | C01="$(pastel mix ${!ds} Crimson -f 0.5 | pastel mix - PaleVioletRed -f 0.4 | _saturate 0.04 | _formathex)" 103 | C02="$(pastel mix ${!ds} Teal -f 0.5 | pastel mix - MediumSpringGreen -f 0.4 | _saturate 0.04 | _formathex)" 104 | C03="$(pastel mix ${!ds} Yellow -f 0.5 | pastel mix - Coral -f 0.4 | _saturate 0.04 | _formathex)" 105 | C04="$(pastel mix ${!ds} RoyalBlue -f 0.5 | pastel mix - DodgerBlue -f 0.4 | _saturate 0.12 | _formathex)" 106 | C05="$(pastel mix ${!ds} Plum -f 0.5 | pastel mix - SlateBlue -f 0.4 | _saturate 0.04 | _formathex)" 107 | C06="$(pastel mix ${!ds} Cyan -f 0.5 | pastel mix - DeepSkyBlue -f 0.4 | _saturate 0.04 | _formathex)" 108 | 109 | for i in {09..14}; do 110 | local c="C0$(echo "$i - 8" | bc)"; c="${!c}" 111 | declare -g "C$i=$(_lighten 0.08 "$c" | _formathex)" 112 | done 113 | 114 | WBX="$(_saturate 0.30 "$WBG" | _lighten 0.10 | _formathex)" 115 | WFX="$(_textcolor "$WBX" | _darken 0.20 | _formathex)" 116 | 117 | for i in {1..6}; do 118 | local c="C0$i"; c="${!c}" 119 | declare -g "CX$i=$(_saturate 0.30 "$c" | _darken 0.02 | _formathex)" 120 | declare -g "CY$i=$(_desaturate 0.30 "$c" | _lighten 0.10 | _formathex)" 121 | 122 | local cx="CX$i"; cx="${!cx}" 123 | declare -g "CF$i=$(_textcolor $cx | _formathex)" 124 | done 125 | 126 | for s in S W E; do 127 | local c="${s}BG"; c="${!c}" 128 | declare -g "${s}FG=$(_textcolor $c | _darken 0.2 | _saturate 0.20 | _formathex)" 129 | done 130 | 131 | InfoDone 132 | } 133 | 134 | __gen_shade () { 135 | local c="${!1}"; 136 | local k="${1:0:1}"; 137 | 138 | declare -g "${k}K0=$(_saturation 0.09 "${c}" | _lightness 0.04 | _formathex)" 139 | declare -g "${k}K1=$(_saturation 0.10 "${c}" | _lightness 0.08 | _formathex)" 140 | declare -g "${k}K2=$(_saturation 0.11 "${c}" | _lightness 0.12 | _formathex)" 141 | declare -g "${k}K3=$(_saturation 0.12 "${c}" | _lightness 0.16 | _formathex)" 142 | declare -g "${k}K4=$(_saturation 0.13 "${c}" | _lightness 0.20 | _formathex)" 143 | declare -g "${k}K5=$(_saturation 0.14 "${c}" | _lightness 0.30 | _formathex)" 144 | declare -g "${k}K6=$(_saturation 0.13 "${c}" | _lightness 0.50 | _formathex)" 145 | declare -g "${k}K7=$(_saturation 0.12 "${c}" | _lightness 0.60 | _formathex)" 146 | declare -g "${k}K8=$(_saturation 0.11 "${c}" | _lightness 0.70 | _formathex)" 147 | declare -g "${k}K9=$(_saturation 0.10 "${c}" | _lightness 0.80 | _formathex)" 148 | } 149 | 150 | # shellcheck disable=SC2034 151 | gen_shades () { 152 | local darkest_seed;darkest_seed=$(darkest SBG WBG EBG) 153 | local k="${darkest_seed:0:1}"; 154 | 155 | __gen_shade SBG 156 | __gen_shade WBG 157 | __gen_shade EBG 158 | 159 | C00="${k}K2"; C00="${!C00}" 160 | C08="${k}K5"; C08="${!C08}" 161 | C07="${k}K6"; C07="${!C07}" 162 | C15="${k}K8"; C15="${!C15}" 163 | 164 | XBG="${k}K1"; XBG="${!XBG}" 165 | XFG="${k}K6"; XFG="${!XFG}" 166 | 167 | OBG="${k}K4"; OBG="${!OBG}" 168 | OFG="${k}K7"; OFG="${!OFG}" 169 | 170 | InfoDone 171 | } 172 | 173 | # ################# 174 | ################################ 175 | GeneratePalette () { 176 | gen_random 177 | gen_idempotents 178 | gen_shades 179 | gen_ansi 180 | 181 | SaveSeed 182 | SaveTheme 183 | InfoDone 184 | } 185 | ################################ 186 | ################################ 187 | UpdatePalette () { 188 | . "$M_SEED" 2> /dev/null || . "$O_SEED" 189 | gen_idempotents 190 | gen_shades 191 | gen_ansi 192 | set_hexless 193 | 194 | # SaveSeed 195 | SaveTheme 196 | InfoDone 197 | } 198 | 199 | # (( "$DEBUG" )) && gen_shades && Demo_shades4 200 | (( "$DEBUG" )) && gen_idempotents && DemoAll 201 | # (( "$DEBUG" )) && Demo && Demo_slant && Demo_hexes 202 | # if (( "$DEBUG" )); then 203 | # __print_hexes $(echo SK{0..9}) 204 | # __print_hexes $(echo WK{0..9}) 205 | # __print_hexes $(echo EK{0..9}) 206 | # Demo_shades4; echo 207 | # fi 208 | 209 | -------------------------------------------------------------------------------- /src/playground.sh: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env bash 2 | 3 | Playground_2 () { 4 | 5 | gen_random 6 | gen_idiomatic 7 | gen_shades 8 | DemoLive 9 | PrompRand 10 | case $REPLY in 11 | k ) Info 'nope ·';; 12 | u ) Info 'nope··';; 13 | n ) Info 'Again ·········'; Playground_2 ;; 14 | d ) Info 'Full Demo ·····'; DemoAll ;; 15 | * ) Info 'Reverting ·····'; Revert ;; 16 | esac 17 | } 18 | 19 | # /////////////////////////////////////////// 20 | 21 | Playground_1 () { 22 | Info "(XP) XOPT $XOPT" 23 | local cx=(WBG SBG EBG) 24 | 25 | 26 | WBG="$(pastel random -n 1 -s lch_hue | pastel format hex)" 27 | SBG="$(pastel random -n 1 -s vivid | pastel mix - "$WBG" -f 0.60 | pastel saturate 0.40 | pastel format hex)" 28 | EBG="$(pastel complement "$WBG" | pastel mix - "$WBG" -f 0.60 | pastel saturate 0.40 | pastel format hex)" 29 | # clear 30 | echo ' W S E' 31 | prntlist 'prnt:sp_circle_slant' "${cx[@]}"; pl '-' 32 | EBG="$(pastel random -n 1 -s lch_hue | pastel mix - "$WBG" -f 0.60 | pastel saturate 0.40 | pastel format hex)" 33 | fill 1; pl; prntlist 'pl:sp_line_top' "${cx[@]}"; pl '-' 34 | fill 1; pl "${cx[0]}" " ┗━"; prntlist 'prnt:sp_block_l' "${cx[@]}"; pl "${cx[-1]}" '━┛'; printf 'lch'; pl '-'; 35 | 36 | EBG="$(pastel random -n 1 -s vivid | pastel mix - "$WBG" -f 0.60 | pastel saturate 0.40 | pastel format hex)" 37 | prntlist 'prnt:sp_circle_slant' "${cx[@]}"; printf 'vivid'; pl '-'; 38 | 39 | EBG="$(pastel random -n 1 -s lch_hue | pastel mix - "$WBG" -f 0.80 | pastel saturate 0.40 | pastel format hex)" 40 | prntlist 'prnt:sp_circle_slant' "${cx[@]}"; printf 'lch_XP'; pl '-'; 41 | exit 42 | 43 | local ca=(WBG C01 C02 C03 C04 C05 C06) 44 | # local cb=(WBG C09 C10 C11 C12 C13 C14) 45 | # local cx=(WBG RED GRN YEL BLU PRP CYN) 46 | 47 | # fill 4; prntlist 'prnt:sp_cross' "${cb[@]:1:6}"; pl '-' 48 | printf 'R G Y B P C'; pl '-' 49 | printf '1 2 3 4 5 6'; pl '-' 50 | fill 0; prntlist 'prnt:sp_block_l' "${ca[@]}"; printf 'current'; pl '-' 51 | gen_random; gen_idiomatic 52 | fill 2; prntlist 'prnt:sp_block_l' "${ca[@]}"; printf 'new-cur'; pl '-' 53 | gen_random; gen_idiomatic 54 | fill 3; prntlist 'prnt:sp_block_l' "${ca[@]}"; printf 'new-cur'; pl '-' 55 | C01="$(pastel mix "$WBG" "$(pastel random -n 1 -s lch_hue)" -f 0.6 | pastel mix - crimson -f 0.6 | pastel mix - deeppink -f 0.6 | pastel desaturate 0.10 | pastel format hex)" 56 | C02="$(pastel mix "$WBG" "$(pastel random -n 1 -s lch_hue)" -f 0.6 | pastel mix - darkseagreen -f 0.6 | pastel mix - mediumspringgreen -f 0.6 | pastel desaturate 0.10 | pastel format hex)" 57 | C03="$(pastel mix "$WBG" "$(pastel random -n 1 -s lch_hue)" -f 0.6 | pastel mix - orangered -f 0.6 | pastel mix - orange -f 0.6 | pastel desaturate 0.10 | pastel format hex)" 58 | C04="$(pastel mix "$WBG" "$(pastel random -n 1 -s lch_hue)" -f 0.6 | pastel mix - blue -f 0.6 | pastel mix - deepskyblue -f 0.6 | pastel desaturate 0.10 | pastel format hex)" 59 | C05="$(pastel mix "$WBG" "$(pastel random -n 1 -s lch_hue)" -f 0.6 | pastel mix - indigo -f 0.6 | pastel mix - slateblue -f 0.6 | pastel desaturate 0.10 | pastel format hex)" 60 | C06="$(pastel mix "$WBG" "$(pastel random -n 1 -s lch_hue)" -f 0.6 | pastel mix - darkturquoise -f 0.6 | pastel mix - deepskyblue -f 0.6 | pastel desaturate 0.10 | pastel format hex)" 61 | fill 4; prntlist 'prnt:sp_block_l' "${ca[@]}"; printf 'new-XXX'; pl '-' 62 | # -------------------------------------------------------------------------------- 63 | 64 | local z 65 | 66 | # C01="$(pastel mix "$WBG" "$(pastel random -n 1 -s lch_hue)" -f 0.4 | pastel mix - crimson -f 0.3 | pastel mix - deeppink -f 0.5 | pastel desaturate 0.10 | pastel format hex)" 67 | # C02="$(pastel mix "$WBG" "$(pastel random -n 1 -s lch_hue)" -f 0.4 | pastel mix - darkseagreen -f 0.3 | pastel mix - mediumspringgreen -f 0.5 | pastel desaturate 0.10 | pastel format hex)" 68 | # C03="$(pastel mix "$WBG" "$(pastel random -n 1 -s lch_hue)" -f 0.4 | pastel mix - orangered -f 0.3 | pastel mix - orange -f 0.5 | pastel desaturate 0.10 | pastel format hex)" 69 | # C04="$(pastel mix "$WBG" "$(pastel random -n 1 -s lch_hue)" -f 0.4 | pastel mix - blue -f 0.3 | pastel mix - deepskyblue -f 0.5 | pastel desaturate 0.10 | pastel format hex)" 70 | # C05="$(pastel mix "$WBG" "$(pastel random -n 1 -s lch_hue)" -f 0.4 | pastel mix - indigo -f 0.3 | pastel mix - slateblue -f 0.5 | pastel desaturate 0.10 | pastel format hex)" 71 | # C06="$(pastel mix "$WBG" "$(pastel random -n 1 -s lch_hue)" -f 0.4 | pastel mix - darkturquoise -f 0.3 | pastel mix - deepskyblue -f 0.5 | pastel desaturate 0.10 | pastel format hex)" 72 | # 73 | # RED="$(pastel saturate 0.25 "$C01" | pastel darken 0.02 | pastel format hex)" ; # C01 74 | # GRN="$(pastel saturate 0.25 "$C02" | pastel darken 0.02 | pastel format hex)" ; # C02 75 | # YEL="$(pastel saturate 0.25 "$C03" | pastel darken 0.02 | pastel format hex)" ; # C03 76 | # BLU="$(pastel saturate 0.25 "$C04" | pastel darken 0.02 | pastel format hex)" ; # C04 77 | # PRP="$(pastel saturate 0.25 "$C05" | pastel darken 0.02 | pastel format hex)" ; # C05 78 | # CYN="$(pastel saturate 0.25 "$C06" | pastel darken 0.02 | pastel format hex)" ; # C06 79 | # 80 | # 81 | # fill 2; prntlist 'prnt:sp_block_l' "${cx[@]}"; printf 'EXP-1 [CX ] '; 82 | # fill 5; prntlist 'prnt:sp_dot' "${cx[@]}"; pl '-' 83 | # 84 | # fill 3; prntlist 'prnt:sp_block_l' "${ca[@]}"; printf 'EXP-1 [C6 ] '; 85 | # prntlist 'prnt:sp_dot_slant' "${ca[@]}"; pl '-' 86 | # 87 | # C09="$(pastel lighten 0.10 "$C01" | pastel format hex)"; # REDL 88 | # C10="$(pastel lighten 0.10 "$C02" | pastel format hex)"; # GRNL 89 | # C11="$(pastel lighten 0.10 "$C03" | pastel format hex)"; # YELL 90 | # C12="$(pastel lighten 0.10 "$C04" | pastel format hex)"; # BLUL 91 | # C13="$(pastel lighten 0.10 "$C05" | pastel format hex)"; # PRPL 92 | # C14="$(pastel lighten 0.10 "$C06" | pastel format hex)"; # CYNL 93 | # 94 | 95 | # fill 4; prntlist 'prnt:sp_block_l' "${cb[@]}"; printf 'EXP-1 [9 - 14] '; 96 | # fill 3; prntlist 'prnt:sp_dot' "${cb[@]}"; pl '-' 97 | # 98 | # C01="$(pastel mix "$WBG" "$(pastel random -n 1 -s lch_hue)" -f 0.2 | pastel mix - crimson -f 0.4 | pastel mix - deeppink -f 0.6 | pastel set hsl-saturation 0.8 | pastel format hex)" 99 | # C02="$(pastel mix "$WBG" "$(pastel random -n 1 -s lch_hue)" -f 0.2 | pastel mix - darkseagreen -f 0.4 | pastel mix - mediumspringgreen -f 0.6 | pastel set hsl-saturation 0.8 | pastel format hex)" 100 | # C03="$(pastel mix "$WBG" "$(pastel random -n 1 -s lch_hue)" -f 0.2 | pastel mix - orangered -f 0.4 | pastel mix - orange -f 0.6 | pastel set hsl-saturation 0.8 | pastel format hex)" 101 | # C04="$(pastel mix "$WBG" "$(pastel random -n 1 -s lch_hue)" -f 0.2 | pastel mix - mediumblue -f 0.4 | pastel mix - deepskyblue -f 0.6 | pastel set hsl-saturation 0.8 | pastel format hex)" 102 | # C05="$(pastel mix "$WBG" "$(pastel random -n 1 -s lch_hue)" -f 0.2 | pastel mix - indigo -f 0.4 | pastel mix - slateblue -f 0.6 | pastel set hsl-saturation 0.8 | pastel format hex)" 103 | # C06="$(pastel mix "$WBG" "$(pastel random -n 1 -s lch_hue)" -f 0.2 | pastel mix - darkturquoise -f 0.4 | pastel mix - deepskyblue -f 0.6 | pastel set hsl-saturation 0.8 | pastel format hex)" 104 | # fill 3; prntlist 'prnt:sp_block_l' "${ca[@]}"; printf 'EXP-2'; pl '-' 105 | # 106 | # C01="$(pastel mix "$WBG" "$(pastel random -n 1 -s lch_hue)" -f 0.2 | pastel mix - crimson -f 0.4 | pastel mix - deeppink -f 0.6 | pastel set chroma +100 | pastel format hex)" 107 | # C02="$(pastel mix "$WBG" "$(pastel random -n 1 -s lch_hue)" -f 0.2 | pastel mix - darkseagreen -f 0.4 | pastel mix - mediumspringgreen -f 0.6 | pastel set chroma +100 | pastel format hex)" 108 | # C03="$(pastel mix "$WBG" "$(pastel random -n 1 -s lch_hue)" -f 0.2 | pastel mix - orangered -f 0.4 | pastel mix - orange -f 0.6 | pastel set chroma +100 | pastel format hex)" 109 | # C04="$(pastel mix "$WBG" "$(pastel random -n 1 -s lch_hue)" -f 0.2 | pastel mix - mediumblue -f 0.4 | pastel mix - dodgerblue -f 0.6 | pastel set chroma +100 | pastel format hex)" 110 | # C05="$(pastel mix "$WBG" "$(pastel random -n 1 -s lch_hue)" -f 0.2 | pastel mix - indigo -f 0.4 | pastel mix - slateblue -f 0.6 | pastel set chroma +100 | pastel format hex)" 111 | # C06="$(pastel mix "$WBG" "$(pastel random -n 1 -s lch_hue)" -f 0.2 | pastel mix - darkturquoise -f 0.4 | pastel mix - deepskyblue -f 0.6 | pastel set chroma +100 | pastel format hex)" 112 | # fill 3; prntlist 'prnt:sp_block_l' "${ca[@]}"; printf 'EXP-2'; pl '-' 113 | # 114 | # C01="$(pastel mix "$WBG" "$(pastel random -n 1 -s lch_hue)" -f 0.2 | pastel mix - crimson -f 0.4 | pastel mix - deeppink -f 0.6 | pastel set lab-a 10 | pastel format hex)" 115 | # C02="$(pastel mix "$WBG" "$(pastel random -n 1 -s lch_hue)" -f 0.2 | pastel mix - darkseagreen -f 0.4 | pastel mix - mediumspringgreen -f 0.6 | pastel set lab-a 10 | pastel format hex)" 116 | # C03="$(pastel mix "$WBG" "$(pastel random -n 1 -s lch_hue)" -f 0.2 | pastel mix - orangered -f 0.4 | pastel mix - orange -f 0.6 | pastel set lab-a 10 | pastel format hex)" 117 | # C04="$(pastel mix "$WBG" "$(pastel random -n 1 -s lch_hue)" -f 0.2 | pastel mix - mediumblue -f 0.4 | pastel mix - dodgerblue -f 0.6 | pastel set lab-a 10 | pastel format hex)" 118 | # C05="$(pastel mix "$WBG" "$(pastel random -n 1 -s lch_hue)" -f 0.2 | pastel mix - indigo -f 0.4 | pastel mix - slateblue -f 0.6 | pastel set lab-a 10 | pastel format hex)" 119 | # C06="$(pastel mix "$WBG" "$(pastel random -n 1 -s lch_hue)" -f 0.2 | pastel mix - darkturquoise -f 0.4 | pastel mix - deepskyblue -f 0.6 | pastel set lab-a 10 | pastel format hex)" 120 | # fill 4; prntlist 'prnt:sp_block_l' "${ca[@]}"; printf 'EXP-3'; pl '-' 121 | exit 122 | } 123 | # echo "$a" | pastel rotate 20 | pastel format hex 124 | # echo -- 125 | # echo "$a" | pastel set red 100 | pastel format hex 126 | # echo "$a" | pastel set red 1000 | pastel saturate 0.1 | pastel darken 0.2 | pastel format hex 127 | # echo -- 128 | # echo "$a" | pastel set red 1000 | pastel format hex 129 | # echo "$a" | pastel set red 9000 | pastel format hex 130 | 131 | 132 | # local strategy 133 | # # strategy="${XOPT:-alpha}" 134 | # if [[ "$XOPT" = beta ]]; then 135 | # Info "BETA GeneratePalette XOPT $XOPT" 136 | # strategy="lch_hue" 137 | # else 138 | # Info "ALPHA GeneratePalette XOPT $XOPT" 139 | # strategy="vivid" 140 | # fi 141 | 142 | 143 | # export REDL ; export GRNL ; export YELL ; export BLUL ; export PRPL ; export CYNL ; export ZXX ; export ZX1 ; export ZXF ; export ZX2 144 | # export C00="$DK3" 145 | # export C08="$DK4" 146 | # export C07="$DK6" 147 | # export C15="$OFG" 148 | # export T_BACKGROUND="$XBG" 149 | # export T_FOREGROUND="$XFG" 150 | # export T_SELECTION_BACKGROUND="$OBG" 151 | # export T_SELECTION_FOREGROUND="$OFG" 152 | ## 153 | 154 | 155 | XP_prompt () { 156 | PromptConfirm "continue with (${FUNCNAME[0]}) "; if [[ ! "$REPLY" =~ ^[Yy]$ ]]; then return; fi 157 | # 158 | Info Laterz 159 | # 160 | if [[ "$XOPT" == *"nogtk"* ]]; then Info "   ignoring (${FUNCNAME[0]}) ···"; return; fi 161 | if [[ "$XOPT" == *"nosp"* ]]; then Info "   ignoring (${FUNCNAME[0]}) ···"; return; fi 162 | Info "(XP) POST ?" 3 163 | PromptConfirm 164 | if [[ "$REPLY" =~ ^[Yy]$ ]]; then 165 | Info "(XP)    PASS $REPLY" 0 166 | else 167 | Info "(XP)    FAIL $REPLY" 1 168 | fi 169 | 170 | PromptConfirm 'foo bar' 171 | if [[ "$REPLY" =~ ^[Yy]$ ]]; then 172 | Info "(22)    PASS $REPLY" 0 173 | else 174 | Info "(22)    FAIL $REPLY" 1 175 | fi 176 | 177 | zz=$(PromptConfirm) 178 | Info "Z:: $zz" 179 | } 180 | 181 | -------------------------------------------------------------------------------- /src/snapshots.sh: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env bash 2 | COLUMNS=${COLUMNS:-$(tput cols)} 3 | 4 | ListSnapshots () { 5 | local snapshots=("$MXSNAP"/*) 6 | local total="${#snapshots[@]}" 7 | # local slen;slen="$(MXDots)";slen="${#slen}" 8 | # local brk; brk=$COLUMNS;brk=$((brk/(slen * 2))) 9 | 10 | for sid in "${!snapshots[@]}"; do 11 | local snap=${snapshots[$sid]}; mlg "$snap" 12 | 13 | . "$snap"/root.mx 14 | local filllen=$(( 16 - ${#MXNAME} - ${#sid})) 15 | 16 | # ! (( sid % brk )) && echo 17 | MXSep "$(printf " %03d\n" $sid)" 18 | # if diff "$O_SEED" "$snap"/seed.mx &>/dev/null; then Demo_block; fi 19 | MXDots 20 | MXSep 21 | Demo_mxname "$sid" 22 | pastel paint -n $EBG "$(printf "%0.s▒" $(seq 1 $filllen)) " 23 | pastel paint -n $SBG "${MXNAME:0:3}" 24 | pastel paint -n $WBG "${MXNAME:3:6}" 25 | pastel paint -n $EBG "${MXNAME:(-3)}" 26 | (diff "$O_SEED" "$snap"/seed.mx &>/dev/null && ( echo ' <<<<<' )) || echo 27 | # pastel paint $C08 "$(printf "%0.s░" $(seq 1 $COLUMNS))" 28 | 29 | # (diff "$O_SEED" "$snap"/seed.mx &>/dev/null && ( Demo_mxname "$sid" )) || pastel paint -o "$XBG" -b -n "$XFG" "$(printf '%#2d\n' "$sid")" 30 | done 31 | 32 | echo;echo; pastel paint "$XFG" -n "select "; pastel paint "$XFG" -b -n "(0-$((total-1))): " 33 | 34 | if (( $1 )); then 35 | choice="$((( RANDOM % $total )))" 36 | else 37 | read -r choice 38 | fi 39 | 40 | if ! [[ "$choice" =~ ^[0-9]+$ ]]; then 41 | pastel paint "$C01" -b "($choice) numbers only " 42 | ListSnapshots 43 | return 44 | fi 45 | 46 | local selected="${snapshots["$((choice))"]}" 47 | 48 | if [ -n "$selected" ]; then 49 | mlg "selected $selected" 50 | mlg "choice $choice" 51 | pastel paint "$XFG" -b "selected ${selected} [$choice]" 52 | . "$selected"/root.mx 53 | MXDots; MXSep 54 | Demo 55 | [[ -n "$TMUX" ]] && . "$MXBASE"/plugins/2-tmux.sh && apply_tmux 56 | PromptConfirm; if [[ ! "$REPLY" =~ ^[Yy]$ ]]; then ListSnapshots $*; fi 57 | cp "$selected"/seed.mx "$M_SEED" 58 | ReGenerate 59 | return 60 | else 61 | pastel paint "$C01" -b "($choice) out of range " 62 | sleep 3 63 | ListSnapshots 64 | return 65 | fi 66 | } 67 | ## ##################### 68 | SaveSnapshot () { 69 | . "$OTHEME" 70 | Demo_card 71 | fillCols 72 | Demo 73 | Info "[${MXNAME}]  Saving Snapshot" 74 | 75 | local snapshots=("$MXSNAP"/*) 76 | 77 | mlg ">total pre" 78 | local total; total=$(find "$MXSNAP"/* -type d 2>/dev/null | wc -l) 79 | mlg ">total $total" 80 | 81 | local highest; highest=$(find "$MXSNAP"/* -type d 2>/dev/null | cut -d'_' -f2 | sort --numeric-sort -r | head -n 1) 82 | 83 | mlg ">highest $highest" 84 | 85 | local ccount; ccount=$((highest+1)) 86 | for sid in "${!snapshots[@]}"; do 87 | local snap=${snapshots[$sid]}; mlg "$snap" 88 | 89 | if (diff "$O_SEED" "$snap"/seed.mx &>/dev/null); then 90 | mlg "snap exists $snap" 91 | . "$snap"/root.mx 92 | InfoError " duplicate 🢃🢃🢃"; InfoWarn "$snap" 93 | echo $snap 94 | PromptConfirm " Create anyway "; if [[ ! "$REPLY" =~ ^[Yy]$ ]]; then return; fi 95 | fi 96 | done 97 | local stamp; stamp=$(date +%s); stamp="${stamp:((-8))}" 98 | local sname; sname="${stamp}_${ccount}_${MXNAME}" 99 | local spath=$MXSNAP/$sname 100 | Demo_mxname $ccount; echo 101 | PressToContinue "creating new snapshot" 102 | cp "$MXDIST" "$spath" -r 103 | InfoDone "$spath" 104 | } 105 | 106 | -------------------------------------------------------------------------------- /src/utils.sh: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env bash 2 | 3 | PopulateFileWith () { 4 | local file="$1" ; shift 5 | local operation="$1" ; shift 6 | local format="$1" ; shift 7 | 8 | InfoWarn "${operation^}ing ${file} with ${#} keys"; mlg " ==> $*" 9 | 10 | if [[ "$operation" == 'FLUSH'* ]]; then 11 | get_header "$(cut -d':' -f2 -s <<< "$operation")" > "$file" 12 | echo >> "$file" 13 | fi 14 | 15 | while [ "$1" ]; do 16 | local c="$1"; local hl="HL$1"; shift 17 | eval echo "$format" >> "$file" 18 | done 19 | } 20 | 21 | -------------------------------------------------------------------------------- /src/xansi.sh: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env bash 2 | 3 | get_ansi () { 4 | local c="$1"; local x; 5 | x=$(pastel format ansi-8bit "${!c}" | cut -d";" -f3-) 6 | echo "${x::(-1)}" 7 | } 8 | 9 | gen_ansi () { 10 | for x in "${MX_VARS[@]}"; do 11 | declare -g "T$x=$(get_ansi "$x")" 12 | done 13 | } 14 | 15 | set_hexless () { 16 | :>/tmp/mxc/hexless 17 | for x in "${MX_VARS[@]}"; do 18 | local hlvalue="${!x}"; hlvalue="${hlvalue:1}" 19 | echo "export HL$x=$hlvalue" >> /tmp/mxc/hexless 20 | done 21 | . /tmp/mxc/hexless 22 | } 23 | 24 | -------------------------------------------------------------------------------- /templates/alacritty.yml: -------------------------------------------------------------------------------- 1 | # $MXNAME @ $MXC_V 2 | colors : 3 | primary : 4 | background : '${XBG}' 5 | foreground : '${XFG}' 6 | bright_foreground : '${WBG}' 7 | normal : 8 | black : '${SK2}' 9 | red : '${C01}' 10 | green : '${C02}' 11 | yellow : '${C03}' 12 | blue : '${C04}' 13 | magenta : '${C05}' 14 | cyan : '${C06}' 15 | white : '${SK9}' 16 | bright : 17 | black : '${WK4}' 18 | red : '${CX1}' 19 | green : '${CX2}' 20 | yel : '${CX3}' 21 | blue : '${CX4}' 22 | magenta : '${CX5}' 23 | cyan : '${CX6}' 24 | white : '${EK9}' 25 | dim : 26 | black : '${SK1}' 27 | red : '${CY1}' 28 | green : '${CY2}' 29 | yellow : '${CY3}' 30 | blue : '${CY4}' 31 | magenta : '${CY5}' 32 | cyan : '${CY6}' 33 | white : '${WK7}' 34 | cursor : 35 | text : '${CF4}' 36 | cursor : '${CX4}' 37 | # text : CellBackground 38 | # cursor : CellForeground 39 | vi_mode_cursor : 40 | text : '${EFG}' 41 | cursor : '${EBG}' 42 | selection : 43 | text : CellBackground 44 | background : CellForeground 45 | search : 46 | matches : 47 | foreground : '${EFG}' 48 | background : '${EBG}' 49 | focused_match : 50 | foreground : '${SFG}' 51 | background : '${SBG}' 52 | bar : 53 | background : '${SK1}' 54 | foreground : '${WBG}' 55 | indexed_colors : 56 | - { index : 20, color : '${SBG}' } 57 | - { index : 21, color : '${SFG}' } 58 | - { index : 30, color : '${WBG}' } 59 | - { index : 31, color : '${WFG}' } 60 | - { index : 40, color : '${EBG}' } 61 | - { index : 41, color : '${EFG}' } 62 | 63 | -------------------------------------------------------------------------------- /templates/cognito-ui.css: -------------------------------------------------------------------------------- 1 | .logo-customizable { 2 | max-width: 60%; 3 | max-height: 30%; 4 | } 5 | .banner-customizable { 6 | padding: 25px 0px 25px 10px; 7 | background-color: ${WK4}; 8 | } 9 | .label-customizable { 10 | font-weight: 300; 11 | } 12 | .textDescription-customizable { 13 | padding-top: 10px; 14 | padding-bottom: 10px; 15 | display: block; 16 | font-size: 16px; 17 | } 18 | .idpDescription-customizable { 19 | padding-top: 10px; 20 | padding-bottom: 10px; 21 | display: block; 22 | font-size: 16px; 23 | } 24 | .legalText-customizable { 25 | color: ${C08}; 26 | font-size: 11px; 27 | } 28 | .submitButton-customizable { 29 | font-size: 14px; 30 | font-weight: bold; 31 | margin: 20px 0px 10px 0px; 32 | height: 40px; 33 | width: 100%; 34 | color: ${C15}; 35 | background-color: ${C05}; 36 | } 37 | .submitButton-customizable:hover { 38 | color: ${C15}; 39 | background-color: ${CX5}; 40 | } 41 | .errorMessage-customizable { 42 | padding: 5px; 43 | font-size: 14px; 44 | width: 100%; 45 | background: ${WK2}; 46 | border: 2px solid ${CX1}; 47 | color: ${C01}; 48 | } 49 | .inputField-customizable { 50 | width: 100%; 51 | height: 34px; 52 | color: ${WK8}; 53 | background-color: ${SK2}; 54 | border: 1px solid ${C07}; 55 | } 56 | .inputField-customizable:focus { 57 | border-color: ${CY4}; 58 | outline: 0; 59 | } 60 | .idpButton-customizable { 61 | height: 40px; 62 | width: 100%; 63 | text-align: center; 64 | margin-bottom: 15px; 65 | color: ${C15}; 66 | background-color: ${WBG}; 67 | border-color: ${WBX}; 68 | } 69 | .idpButton-customizable:hover { 70 | color: ${C15}; 71 | background-color: ${CY4}; 72 | } 73 | .socialButton-customizable { 74 | height: 40px; 75 | text-align: left; 76 | width: 100%; 77 | margin-bottom: 15px; 78 | } 79 | .redirect-customizable { 80 | text-align: center; 81 | } 82 | .passwordCheck-notValid-customizable { 83 | color: ${CX1}; 84 | } 85 | .passwordCheck-valid-customizable { 86 | color: ${C02}; 87 | } 88 | .background-customizable { 89 | color: ${SK2}; 90 | background-color: lighten(${SK9}, 10%); 91 | } 92 | 93 | -------------------------------------------------------------------------------- /templates/fzf.mx: -------------------------------------------------------------------------------- 1 | # $MXNAME @ $MXC_V 2 | 3 | export FZF_DEFAULT_OPTS=" \ 4 | --height ${FZF_HEIGHTS:-100%} \ 5 | --layout=reverse \ 6 | --info inline \ 7 | --no-border \ 8 | --color=gutter:${WK1} \ 9 | --color=fg:${C07},bg:${XBG},hl:${WBG} \ 10 | --color=fg+:${SBG},bg+:${WK1},hl+:${WBX} \ 11 | --color=info:${EBG},prompt:${C08},pointer:${WBX} \ 12 | --color=marker:${SBG},spinner:${WBG},header:${WBG}" 13 | 14 | 15 | # FZF_DEFAULT_OPTS='--height 40% --layout=reverse --no-border ' 16 | # export FZF_COLOR_OPTS=" {FZF_DEFAULT_OPTS} \ 17 | -------------------------------------------------------------------------------- /templates/kitty-theme.conf: -------------------------------------------------------------------------------- 1 | # $MXNAME @ $MXC_V 2 | 3 | # ################################################################# 4 | # # Add this line to your ~/.config/kitty/kitty.conf ############## 5 | # Load kitty-theme 6 | # include ~/.config/mxc/kitty-theme.conf 7 | 8 | # Bind reload key map. 9 | # ** (if using kittty --single-instance passing kitty socket will auto reload all instances) 10 | # map kitty_mod+f12 remote_control set-colors "~/.config/mxc/kitty-theme.conf" 11 | # ################################################################# 12 | 13 | color0 $C00 14 | color1 $C01 15 | color2 $C02 16 | color3 $C03 17 | color4 $C04 18 | color5 $C05 19 | color6 $C06 20 | color7 $C07 21 | color8 $C08 22 | color9 $C09 23 | color10 $C10 24 | color11 $C11 25 | color12 $C12 26 | color13 $C13 27 | color14 $C14 28 | color15 $C15 29 | color20 $SBG 30 | color21 $SFG 31 | color30 $WBG 32 | color31 $WFG 33 | color40 $EBG 34 | color41 $EFG 35 | background $XBG 36 | # background $C08 37 | foreground $XFG 38 | selection_background $OBG 39 | selection_foreground $OFG 40 | cursor_text_color $WFX 41 | cursor $WBX 42 | -------------------------------------------------------------------------------- /templates/lscolors-vivid.yml: -------------------------------------------------------------------------------- 1 | colors: 2 | # $MXNAME @ $MXC_V 3 | # Based on "snazzy" theme by sindresorhus 4 | 5 | mxcbg: '${HLXBG}' 6 | mxcfg: '${HLXFG}' 7 | mxc01: '${HLC01}' 8 | mxc02: '${HLC02}' 9 | mxc03: '${HLC03}' 10 | mxc04: '${HLC04}' 11 | mxc05: '${HLC05}' 12 | mxc06: '${HLC06}' 13 | mxc09: '${HLC09}' 14 | mxc10: '${HLC10}' 15 | mxc11: '${HLC11}' 16 | mxc12: '${HLC12}' 17 | mxc13: '${HLC13}' 18 | mxc14: '${HLC14}' 19 | mxc07: '${HLC07}' 20 | mxc08: '${HLC08}' 21 | mxc00: '${HLC00}' 22 | mxwbg: '${HLWBG}' 23 | 24 | core: 25 | normal_text: {} 26 | regular_file: {} 27 | reset_to_normal: {} 28 | 29 | directory: 30 | foreground: mxc04 31 | 32 | symlink: 33 | foreground: mxc05 34 | 35 | multi_hard_link: {} 36 | 37 | fifo: 38 | foreground: mxc00 39 | background: mxc04 40 | 41 | socket: 42 | foreground: mxc00 43 | background: mxc05 44 | 45 | door: 46 | foreground: mxc00 47 | background: mxc05 48 | 49 | block_device: 50 | foreground: mxc06 51 | background: mxc00 52 | 53 | character_device: 54 | foreground: mxc05 55 | background: mxc00 56 | 57 | broken_symlink: 58 | foreground: mxc00 59 | background: mxc01 60 | 61 | missing_symlink_target: 62 | foreground: mxc00 63 | background: mxc01 64 | 65 | setuid: {} 66 | 67 | setgid: {} 68 | 69 | file_with_capability: {} 70 | 71 | sticky_other_writable: {} 72 | 73 | other_writable: {} 74 | 75 | sticky: {} 76 | 77 | executable_file: 78 | foreground: mxc01 79 | font-style: bold 80 | 81 | text: 82 | special: 83 | foreground: mxcbg 84 | background: mxc03 85 | 86 | todo: 87 | font-style: bold 88 | 89 | licenses: 90 | foreground: mxc07 91 | 92 | configuration: 93 | foreground: mxc03 94 | 95 | other: 96 | foreground: mxc03 97 | 98 | markup: 99 | foreground: mxc03 100 | 101 | programming: 102 | source: 103 | foreground: mxc02 104 | 105 | tooling: 106 | foreground: mxc02 107 | 108 | continuous-integration: 109 | foreground: mxc02 110 | 111 | media: 112 | foreground: mxc13 113 | 114 | office: 115 | foreground: mxc01 116 | 117 | archives: 118 | foreground: mxc06 119 | font-style: underline 120 | 121 | executable: 122 | foreground: mxc01 123 | font-style: bold 124 | 125 | unimportant: 126 | foreground: mxc08 127 | -------------------------------------------------------------------------------- /templates/mxc-nvim-colors.lua: -------------------------------------------------------------------------------- 1 | -- $MXC_V · $MXNAME 2 | 3 | local colors = { 4 | bg = "${XBG}", 5 | fg = "${XFG}", 6 | -- yellow = "${CX3}", 7 | -- cyan = "${CX6}", 8 | darkblue = "${CX4}", 9 | -- green = "${CX2}", 10 | -- orange = "${SBG}", 11 | violet = "${C13}", 12 | magenta = "${C05}", 13 | blue = "${C04}", 14 | red = "${CX1}", 15 | white = "${C15}", 16 | darker_black = "${SK1}", 17 | black = "${C00}", -- nvim bg 18 | black2 = "${WK1}", 19 | one_bg = "${SK3}", -- real bg of onedark 20 | one_bg2 = "${WK2}", 21 | one_bg3 = "${WK3}", 22 | grey = "${C08}", 23 | grey_fg = "${C07}", 24 | grey_fg2 = "${WK4}", 25 | light_grey = "${WK6}", 26 | baby_pink = "${C11}", 27 | pink = "${CX1}", 28 | line = "${SBG}", -- for lines like vertsplit 29 | green = "${C02}", 30 | vibrant_green = "${C12}", 31 | nord_blue = "${SBG}", 32 | yellow = "${C03}", 33 | sun = "${CX3}", 34 | purple = "${C13}", 35 | dark_purple = "${C05}", 36 | teal = "${SBG}", 37 | orange = "${EBG}", 38 | cyan = "${C06}", 39 | 40 | statusline_bg = "${SK0}", 41 | statusline_fg = "${SBG}", 42 | 43 | -- statusline_bg = "${SK3}", 44 | lightbg = "${WK1}", 45 | lightbg2 = "${SK1}", 46 | -- 47 | fullblack = "#000000", 48 | -- ######### 49 | cx1 = "$CX1", 50 | cx2 = "$CX2", 51 | cx3 = "$CX3", 52 | cx4 = "$CX4", 53 | cx5 = "$CX5", 54 | cx6 = "$CX6", 55 | -- 56 | cy1 = "$CY1", 57 | cy2 = "$CY2", 58 | cy3 = "$CY3", 59 | cy4 = "$CY4", 60 | cy5 = "$CY5", 61 | cy6 = "$CY6", 62 | -- 63 | cf1 = "$CF1", 64 | cf2 = "$CF2", 65 | cf3 = "$CF3", 66 | cf4 = "$CF4", 67 | cf5 = "$CF5", 68 | cf6 = "$CF6", 69 | -- 70 | c00 = "$C00", 71 | c01 = "$C01", 72 | c02 = "$C02", 73 | c03 = "$C03", 74 | c04 = "$C04", 75 | c05 = "$C05", 76 | c06 = "$C06", 77 | c07 = "$C07", 78 | c08 = "$C08", 79 | c09 = "$C09", 80 | c10 = "$C10", 81 | c11 = "$C11", 82 | c12 = "$C12", 83 | c13 = "$C13", 84 | c14 = "$C14", 85 | c15 = "$C15", 86 | 87 | sbg = "$SBG", 88 | sfg = "$SFG", 89 | wbg = "$WBG", 90 | wfg = "$WFG", 91 | ebg = "$EBG", 92 | efg = "$EFG", 93 | xbg = "$XBG", 94 | xfg = "$XFG", 95 | obg = "$OBG", 96 | ofg = "$OFG", 97 | wbx = "$WBX", 98 | wfx = "$WFX", 99 | 100 | sk0 = "$SK0", 101 | sk1 = "$SK1", 102 | sk2 = "$SK2", 103 | sk3 = "$SK3", 104 | sk4 = "$SK4", 105 | sk5 = "$SK5", 106 | sk6 = "$SK6", 107 | sk7 = "$SK7", 108 | sk8 = "$SK8", 109 | sk9 = "$SK9", 110 | 111 | wk0 = "$WK0", 112 | wk1 = "$WK1", 113 | wk2 = "$WK2", 114 | wk3 = "$WK3", 115 | wk4 = "$WK4", 116 | wk5 = "$WK5", 117 | wk6 = "$WK6", 118 | wk7 = "$WK7", 119 | wk8 = "$WK8", 120 | wk9 = "$WK9", 121 | 122 | ek0 = "$EK0", 123 | ek1 = "$EK1", 124 | ek2 = "$EK2", 125 | ek3 = "$EK3", 126 | ek4 = "$EK4", 127 | ek5 = "$EK5", 128 | ek6 = "$EK6", 129 | ek7 = "$EK7", 130 | ek8 = "$EK8", 131 | ek9 = "$EK9" 132 | } 133 | 134 | return colors 135 | -------------------------------------------------------------------------------- /templates/palette.lua: -------------------------------------------------------------------------------- 1 | local colors = { 2 | 3 | none = "NONE", 4 | fg = "$XFG", 5 | bg = "$XBG", 6 | alt_bg = "$SK2", 7 | dark = "$WK2", 8 | accent = "$SBG", 9 | dark_gray = "$SK3", 10 | fg_gutter = "$SK4", 11 | context = "$SK5", 12 | popup_back = "$WK5", 13 | search_orange = "$WBG", 14 | search_blue = "$EBG", 15 | gray = "$C08", 16 | light_gray = "$C07", 17 | blue = "$C12", 18 | dark_blue = "$C04", 19 | green = "$C10", 20 | cyan = "$C06", 21 | red = "$C01", 22 | orange = "$C09", 23 | -- light_red = "$CY2", 24 | yellow = "$C03", 25 | yellow_orange = "$CY3", 26 | -- ######### 27 | purple = "$C13", 28 | magenta = "$C05", 29 | cursor_fg = "$WFG", 30 | cursor_bg = "$WBG", 31 | sign_add = "$CX2", 32 | sign_change = "$CX3", 33 | sign_delete = "$CX1", 34 | error_red = "$CX1", 35 | warning_orange = "$CX3", 36 | info_yellow = "$C03", 37 | hint_blue = "$C04", 38 | purple_test = "$CY5", 39 | cyan_test = "$CY6", 40 | ui_blue = "$CY4", 41 | diff_add = "$CY2", 42 | diff_delete = "$CY1", 43 | diff_change = "$CY3", 44 | diff_text = "$CY5", 45 | -- ######### 46 | cx1 = "$CX1", 47 | cx2 = "$CX2", 48 | cx3 = "$CX3", 49 | cx4 = "$CX4", 50 | cx5 = "$CX5", 51 | cx6 = "$CX6", 52 | -- ######### 53 | cy1 = "$CY1", 54 | cy2 = "$CY2", 55 | cy3 = "$CY3", 56 | cy4 = "$CY4", 57 | cy5 = "$CY5", 58 | cy6 = "$CY6", 59 | -- 60 | cf1 = "$CF1", 61 | cf2 = "$CF2", 62 | cf3 = "$CF3", 63 | cf4 = "$CF4", 64 | cf5 = "$CF5", 65 | cf6 = "$CF6", 66 | -- 67 | c00 = "$C00", 68 | c01 = "$C01", 69 | c02 = "$C02", 70 | c03 = "$C03", 71 | c04 = "$C04", 72 | c05 = "$C05", 73 | c06 = "$C06", 74 | c07 = "$C07", 75 | c08 = "$C08", 76 | c09 = "$C09", 77 | c10 = "$C10", 78 | c11 = "$C11", 79 | c12 = "$C12", 80 | c13 = "$C13", 81 | c14 = "$C14", 82 | c15 = "$C15", 83 | 84 | sbg = "$SBG", 85 | sfg = "$SFG", 86 | wbg = "$WBG", 87 | wfg = "$WFG", 88 | ebg = "$EBG", 89 | efg = "$EFG", 90 | xbg = "$XBG", 91 | xfg = "$XFG", 92 | obg = "$OBG", 93 | ofg = "$OFG", 94 | wbx = "$WBX", 95 | wfx = "$WFX", 96 | 97 | sk0 = "$SK0", 98 | sk1 = "$SK1", 99 | sk2 = "$SK2", 100 | sk3 = "$SK3", 101 | sk4 = "$SK4", 102 | sk5 = "$SK5", 103 | sk6 = "$SK6", 104 | sk7 = "$SK7", 105 | sk8 = "$SK8", 106 | sk9 = "$SK9", 107 | 108 | wk0 = "$WK0", 109 | wk1 = "$WK1", 110 | wk2 = "$WK2", 111 | wk3 = "$WK3", 112 | wk4 = "$WK4", 113 | wk5 = "$WK5", 114 | wk6 = "$WK6", 115 | wk7 = "$WK7", 116 | wk8 = "$WK8", 117 | wk9 = "$WK9", 118 | 119 | ek0 = "$EK0", 120 | ek1 = "$EK1", 121 | ek2 = "$EK2", 122 | ek3 = "$EK3", 123 | ek4 = "$EK4", 124 | ek5 = "$EK5", 125 | ek6 = "$EK6", 126 | ek7 = "$EK7", 127 | ek8 = "$EK8", 128 | ek9 = "$EK9" 129 | } 130 | 131 | return colors 132 | -------------------------------------------------------------------------------- /templates/root-mx.css: -------------------------------------------------------------------------------- 1 | :root { 2 | --mxc-c00: $C00; 3 | --mxc-c01: $C01; 4 | --mxc-c02: $C02; 5 | --mxc-c03: $C03; 6 | --mxc-c04: $C04; 7 | --mxc-c05: $C05; 8 | --mxc-c06: $C06; 9 | --mxc-c07: $C07; 10 | --mxc-c08: $C08; 11 | --mxc-c09: $C09; 12 | --mxc-c10: $C10; 13 | --mxc-c11: $C11; 14 | --mxc-c12: $C12; 15 | --mxc-c13: $C13; 16 | --mxc-c14: $C14; 17 | --mxc-c15: $C15; 18 | 19 | --mxc-sbg: $SBG; 20 | --mxc-sfg: $SFG; 21 | --mxc-wbg: $WBG; 22 | --mxc-wfg: $WFG; 23 | --mxc-ebg: $EBG; 24 | --mxc-efg: $EFG; 25 | --mxc-xbg: $XBG; 26 | --mxc-xfg: $XFG; 27 | --mxc-obg: $OBG; 28 | --mxc-ofg: $OFG; 29 | 30 | --mxc-sk0: $SK0; 31 | --mxc-sk1: $SK1; 32 | --mxc-sk2: $SK2; 33 | --mxc-sk3: $SK3; 34 | --mxc-sk4: $SK4; 35 | --mxc-sk5: $SK5; 36 | --mxc-sk6: $SK6; 37 | --mxc-sk7: $SK7; 38 | --mxc-sk8: $SK8; 39 | --mxc-sk9: $SK9; 40 | 41 | --mxc-wk0: $WK0; 42 | --mxc-wk1: $WK1; 43 | --mxc-wk2: $WK2; 44 | --mxc-wk3: $WK3; 45 | --mxc-wk4: $WK4; 46 | --mxc-wk5: $WK5; 47 | --mxc-wk6: $WK6; 48 | --mxc-wk7: $WK7; 49 | --mxc-wk8: $WK8; 50 | --mxc-wk9: $WK9; 51 | 52 | --mxc-ek0: $EK0; 53 | --mxc-ek1: $EK1; 54 | --mxc-ek2: $EK2; 55 | --mxc-ek3: $EK3; 56 | --mxc-ek4: $EK4; 57 | --mxc-ek5: $EK5; 58 | --mxc-ek6: $EK6; 59 | --mxc-ek7: $EK7; 60 | --mxc-ek8: $EK8; 61 | --mxc-ek9: $EK9; 62 | } 63 | -------------------------------------------------------------------------------- /templates/root-mx.less: -------------------------------------------------------------------------------- 1 | @mxc-c00: $C00; 2 | @mxc-c01: $C01; 3 | @mxc-c02: $C02; 4 | @mxc-c03: $C03; 5 | @mxc-c04: $C04; 6 | @mxc-c05: $C05; 7 | @mxc-c06: $C06; 8 | @mxc-c07: $C07; 9 | @mxc-c08: $C08; 10 | @mxc-c09: $C09; 11 | @mxc-c10: $C10; 12 | @mxc-c11: $C11; 13 | @mxc-c12: $C12; 14 | @mxc-c13: $C13; 15 | @mxc-c14: $C14; 16 | @mxc-c15: $C15; 17 | 18 | @mxc-sbg: $SBG; 19 | @mxc-sfg: $SFG; 20 | @mxc-wbg: $WBG; 21 | @mxc-wfg: $WFG; 22 | @mxc-ebg: $EBG; 23 | @mxc-efg: $EFG; 24 | @mxc-xbg: $XBG; 25 | @mxc-xfg: $XFG; 26 | @mxc-obg: $OBG; 27 | @mxc-ofg: $OFG; 28 | 29 | @mxc-sk0: $SK0; 30 | @mxc-sk1: $SK1; 31 | @mxc-sk2: $SK2; 32 | @mxc-sk3: $SK3; 33 | @mxc-sk4: $SK4; 34 | @mxc-sk5: $SK5; 35 | @mxc-sk6: $SK6; 36 | @mxc-sk7: $SK7; 37 | @mxc-sk8: $SK8; 38 | @mxc-sk9: $SK9; 39 | 40 | @mxc-wk0: $WK0; 41 | @mxc-wk1: $WK1; 42 | @mxc-wk2: $WK2; 43 | @mxc-wk3: $WK3; 44 | @mxc-wk4: $WK4; 45 | @mxc-wk5: $WK5; 46 | @mxc-wk6: $WK6; 47 | @mxc-wk7: $WK7; 48 | @mxc-wk8: $WK8; 49 | @mxc-wk9: $WK9; 50 | 51 | @mxc-ek0: $EK0; 52 | @mxc-ek1: $EK1; 53 | @mxc-ek2: $EK2; 54 | @mxc-ek3: $EK3; 55 | @mxc-ek4: $EK4; 56 | @mxc-ek5: $EK5; 57 | @mxc-ek6: $EK6; 58 | @mxc-ek7: $EK7; 59 | @mxc-ek8: $EK8; 60 | @mxc-ek9: $EK9; 61 | -------------------------------------------------------------------------------- /templates/spotify-mx: -------------------------------------------------------------------------------- 1 | [mxc] 2 | ; $MXNAME @ $MXC_V 3 | text = ${HLXFG} 4 | subtext = ${HLC07} 5 | bg = ${HLSK4} 6 | main = ${HLSK1} 7 | sidebar = ${HLSK0} 8 | player = ${HLSK2} 9 | card = ${HLSK3} 10 | 11 | shadow = ${HLSK4} 12 | selected-row = ${HLC05} 13 | button = ${HLEBG} 14 | button-active = ${HLWBG} 15 | button-disabled = ${HLSK4} 16 | tab-active = ${HLSBG} 17 | 18 | notification = ${HLSK2} 19 | notification-error = ${HLC01} 20 | misc = ${HLC02} 21 | sbg = ${HLSBG} 22 | sfg = ${HLSFG} 23 | wbx = ${HLWBX} 24 | wfx = ${HLWFX} 25 | wbg = ${HLWBG} 26 | wfg = ${HLWFG} 27 | ebg = ${HLEBG} 28 | efg = ${HLEFG} 29 | 30 | -------------------------------------------------------------------------------- /templates/vim-visual-multi_themes.vim: -------------------------------------------------------------------------------- 1 | """""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""" 2 | "Set up highlighting 3 | """""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""" 4 | 5 | let s:Themes = {} 6 | 7 | augroup VM_reset_theme 8 | au! 9 | au ColorScheme * call vm#themes#init() 10 | augroup END 11 | 12 | 13 | """"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""" 14 | 15 | fun! vm#themes#init() abort 16 | if !exists('g:Vm') | return | endif 17 | 18 | if !empty(g:VM_highlight_matches) 19 | let out = execute('highlight Search') 20 | if match(out, ' links to ') >= 0 21 | let hi = substitute(out, '^.*links to ', '', '') 22 | let g:Vm.search_hi = "link Search " . hi 23 | else 24 | let hi = strtrans(substitute(out, '^.*xxx ', '', '')) 25 | let hi = substitute(hi, '\^.', '', 'g') 26 | let g:Vm.search_hi = "Search " . hi 27 | endif 28 | 29 | call vm#themes#search_highlight() 30 | endif 31 | 32 | let g:Vm.hi.mono = 'VM_Mono' 33 | let g:Vm.hi.cursor = 'VM_Cursor' 34 | let g:Vm.hi.extend = 'VM_Extend' 35 | let g:Vm.hi.insert = 'VM_Insert' 36 | let g:Vm.hi.message = get(g:, 'VM_Message_hl', 'WarningMsg') 37 | 38 | if exists('g:VM_theme_set_by_colorscheme') 39 | unlet g:VM_theme_set_by_colorscheme 40 | highlight! link MultiCursor VM_Cursor 41 | return 42 | endif 43 | 44 | let theme = get(g:, 'VM_theme', 'default') 45 | 46 | silent! hi clear VM_Mono 47 | silent! hi clear VM_Cursor 48 | silent! hi clear VM_Extend 49 | silent! hi clear VM_Insert 50 | silent! hi clear MultiCursor 51 | 52 | if theme == 'default' 53 | exe "highlight! link VM_Mono ".get(g:, 'VM_Mono_hl', 'ErrorMsg') 54 | exe "highlight! link VM_Cursor ".get(g:, 'VM_Cursor_hl', 'Visual') 55 | exe "highlight! link VM_Extend ".get(g:, 'VM_Extend_hl', 'PmenuSel') 56 | exe "highlight! link VM_Insert ".get(g:, 'VM_Insert_hl', 'DiffChange') 57 | exe "highlight! link MultiCursor ".get(g:, 'VM_Cursor_hl', 'Visual') 58 | return 59 | endif 60 | 61 | call s:Themes[theme]() 62 | highlight! link MultiCursor VM_Cursor 63 | endfun 64 | 65 | """"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""" 66 | 67 | fun! vm#themes#search_highlight() abort 68 | " Init Search highlight. 69 | let hl = g:VM_highlight_matches 70 | let g:Vm.Search = hl == 'underline' ? 'Search term=underline cterm=underline gui=underline' : 71 | \ hl == 'red' ? 'Search ctermfg=196 guifg=#ff0000' : 72 | \ hl =~ '^hi!\? ' ? substitute(g:VM_highlight_matches, '^hi!\?', '', '') 73 | \ : 'Search term=underline cterm=underline gui=underline' 74 | endfun 75 | 76 | """"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""" 77 | 78 | fun! vm#themes#load(theme) abort 79 | " Load a theme or set default. 80 | if empty(a:theme) 81 | let g:VM_theme = 'default' 82 | echo 'Theme set to default' 83 | elseif index(keys(s:Themes), a:theme) < 0 84 | echo "No such theme." 85 | return 86 | else 87 | let g:VM_theme = a:theme 88 | endif 89 | call vm#themes#init() 90 | endfun 91 | 92 | """"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""" 93 | 94 | fun! vm#themes#complete(A, L, P) abort 95 | let valid = &background == 'light' ? s:Themes._light : s:Themes._dark 96 | return filter(sort(copy(valid)), 'v:val=~#a:A') 97 | endfun 98 | 99 | """"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""" 100 | 101 | fun! vm#themes#statusline() abort 102 | if !exists('b:visual_multi') 103 | return '' 104 | endif 105 | let v = b:VM_Selection.Vars 106 | let vm = VMInfos() 107 | let color = '%#VM_Extend#' 108 | let single = b:VM_Selection.Vars.single_region ? '%#VM_Mono# SINGLE ' : '' 109 | try 110 | if v.insert 111 | if b:VM_Selection.Insert.replace 112 | let [ mode, color ] = [ 'V-R', '%#VM_Mono#' ] 113 | else 114 | let [ mode, color ] = [ 'V-I', '%#VM_Cursor#' ] 115 | endif 116 | else 117 | let mode = { 'n': 'V-M', 'v': 'V', 'V': 'V-L', "\": 'V-B' }[mode()] 118 | endif 119 | catch 120 | let mode = 'V-M' 121 | endtry 122 | let mode = exists('v.statusline_mode') ? v.statusline_mode : mode 123 | let patterns = string(vm.patterns)[:(winwidth(0)-30)] 124 | return printf("%s %s %s %s %s%s %s %%=%%l:%%c %s %s", 125 | \ color, mode, '%#VM_Insert#', vm.ratio, single, '%#TabLine#', 126 | \ patterns, color, vm.status . ' ') 127 | endfun 128 | 129 | """"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""" 130 | 131 | let s:Themes._light = ['sand', 'paper', 'lightblue1', 'lightblue2', 'lightpurple1', 'lightpurple2'] 132 | let s:Themes._dark = ['mxc', 'iceblue', 'ocean', 'neon', 'purplegray', 'nord', 'codedark', 'spacegray', 'olive', 'sand'] 133 | 134 | """"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""" 135 | 136 | fun! s:Themes.mxc() 137 | hi! VM_Extend guibg=$SBG guifg=$SFG 138 | hi! VM_Cursor guibg=$EBG guifg=$EFG 139 | hi! VM_Insert guibg=$WBG guifg=$WFG 140 | hi! VM_Mono guibg=$CX4 guifg=$CF4 141 | endfun 142 | 143 | fun! s:Themes.iceblue() 144 | hi! VM_Extend ctermbg=24 guibg=#005f87 145 | hi! VM_Cursor ctermbg=31 ctermfg=237 guibg=#0087af guifg=#87dfff 146 | hi! VM_Insert ctermbg=239 guibg=#4c4e50 147 | hi! VM_Mono ctermbg=180 ctermfg=235 guibg=#dfaf87 guifg=#262626 148 | endfun 149 | 150 | fun! s:Themes.ocean() 151 | hi! VM_Extend ctermbg=25 guibg=#005faf 152 | hi! VM_Cursor ctermbg=39 ctermfg=239 guibg=#87afff guifg=#4e4e4e 153 | hi! VM_Insert ctermbg=239 guibg=#4c4e50 154 | hi! VM_Mono ctermbg=186 ctermfg=239 guibg=#dfdf87 guifg=#4e4e4e 155 | endfun 156 | 157 | fun! s:Themes.neon() 158 | hi! VM_Extend ctermbg=26 ctermfg=109 guibg=#005fdf guifg=#89afaf 159 | hi! VM_Cursor ctermbg=39 ctermfg=239 guibg=#00afff guifg=#4e4e4e 160 | hi! VM_Insert ctermbg=239 guibg=#4c4e50 161 | hi! VM_Mono ctermbg=221 ctermfg=239 guibg=#ffdf5f guifg=#4e4e4e 162 | endfun 163 | 164 | fun! s:Themes.lightblue1() 165 | hi! VM_Extend ctermbg=153 guibg=#afdfff 166 | hi! VM_Cursor ctermbg=111 ctermfg=239 guibg=#87afff guifg=#4e4e4e 167 | hi! VM_Insert ctermbg=180 ctermfg=235 guibg=#dfaf87 guifg=#262626 168 | hi! VM_Mono ctermbg=167 ctermfg=253 guibg=#df5f5f guifg=#dadada cterm=bold term=bold gui=bold 169 | endfun 170 | 171 | fun! s:Themes.lightblue2() 172 | hi! VM_Extend ctermbg=117 guibg=#87dfff 173 | hi! VM_Cursor ctermbg=111 ctermfg=239 guibg=#87afff guifg=#4e4e4e 174 | hi! VM_Insert ctermbg=180 ctermfg=235 guibg=#dfaf87 guifg=#262626 175 | hi! VM_Mono ctermbg=167 ctermfg=253 guibg=#df5f5f guifg=#dadada cterm=bold term=bold gui=bold 176 | endfun 177 | 178 | fun! s:Themes.purplegray() 179 | hi! VM_Extend ctermbg=60 guibg=#544a65 180 | hi! VM_Cursor ctermbg=103 ctermfg=54 guibg=#8787af guifg=#5f0087 181 | hi! VM_Insert ctermbg=239 guibg=#4c4e50 182 | hi! VM_Mono ctermbg=141 ctermfg=235 guibg=#af87ff guifg=#262626 183 | endfun 184 | 185 | fun! s:Themes.nord() 186 | hi! VM_Extend ctermbg=239 guibg=#434C5E 187 | hi! VM_Cursor ctermbg=245 ctermfg=24 guibg=#8a8a8a guifg=#005f87 188 | hi! VM_Insert ctermbg=239 guibg=#4c4e50 189 | hi! VM_Mono ctermbg=131 ctermfg=235 guibg=#AF5F5F guifg=#262626 190 | endfun 191 | 192 | fun! s:Themes.codedark() 193 | hi! VM_Extend ctermbg=242 guibg=#264F78 194 | hi! VM_Cursor ctermbg=239 ctermfg=252 guibg=#6A7D89 guifg=#C5D4DD 195 | hi! VM_Insert ctermbg=239 guibg=#4c4e50 196 | hi! VM_Mono ctermbg=131 ctermfg=235 guibg=#AF5F5F guifg=#262626 197 | endfun 198 | 199 | fun! s:Themes.spacegray() 200 | hi! VM_Extend ctermbg=237 guibg=#404040 201 | hi! VM_Cursor ctermbg=242 ctermfg=239 guibg=Grey50 guifg=#4e4e4e 202 | hi! VM_Insert ctermbg=239 guibg=#4c4e50 203 | hi! VM_Mono ctermbg=131 ctermfg=235 guibg=#AF5F5F guifg=#262626 204 | endfun 205 | 206 | fun! s:Themes.sand() 207 | hi! VM_Extend ctermbg=143 ctermfg=0 guibg=darkkhaki guifg=black 208 | hi! VM_Cursor ctermbg=64 ctermfg=186 guibg=olivedrab guifg=khaki 209 | hi! VM_Insert ctermbg=239 guibg=#4c4e50 210 | hi! VM_Mono ctermbg=131 ctermfg=235 guibg=#AF5F5F guifg=#262626 211 | endfun 212 | 213 | fun! s:Themes.paper() 214 | hi! VM_Extend ctermbg=250 ctermfg=16 guibg=#bfbcaf guifg=black 215 | hi! VM_Cursor ctermbg=239 ctermfg=188 guibg=#4c4e50 guifg=#d8d5c7 216 | hi! VM_Insert ctermbg=167 ctermfg=253 guibg=#df5f5f guifg=#dadada cterm=bold term=bold gui=bold 217 | hi! VM_Mono ctermbg=16 ctermfg=188 guibg=#000000 guifg=#d8d5c7 218 | endfun 219 | 220 | fun! s:Themes.olive() 221 | hi! VM_Extend ctermbg=3 ctermfg=0 guibg=olive guifg=black 222 | hi! VM_Cursor ctermbg=64 ctermfg=186 guibg=olivedrab guifg=khaki 223 | hi! VM_Insert ctermbg=239 guibg=#4c4e50 224 | hi! VM_Mono ctermbg=131 ctermfg=235 guibg=#AF5F5F guifg=#262626 225 | endfun 226 | 227 | fun! s:Themes.lightpurple1() 228 | hi! VM_Extend ctermbg=225 guibg=#ffdfff 229 | hi! VM_Cursor ctermbg=183 ctermfg=54 guibg=#dfafff guifg=#5f0087 cterm=bold term=bold gui=bold 230 | hi! VM_Insert ctermbg=146 ctermfg=235 guibg=#afafdf guifg=#262626 231 | hi! VM_Mono ctermbg=135 ctermfg=225 guibg=#af5fff guifg=#ffdfff cterm=bold term=bold gui=bold 232 | endfun 233 | 234 | fun! s:Themes.lightpurple2() 235 | hi! VM_Extend ctermbg=189 guibg=#dfdfff 236 | hi! VM_Cursor ctermbg=183 ctermfg=54 guibg=#dfafff guifg=#5f0087 cterm=bold term=bold gui=bold 237 | hi! VM_Insert ctermbg=225 ctermfg=235 guibg=#ffdfff guifg=#262626 238 | hi! VM_Mono ctermbg=135 ctermfg=225 guibg=#af5fff guifg=#ffdfff cterm=bold term=bold gui=bold 239 | endfun 240 | 241 | " vim: et ts=2 sw=2 sts=2 : 242 | -------------------------------------------------------------------------------- /templates/xresources-mx.xdefaults: -------------------------------------------------------------------------------- 1 | ! $MXNAME @ $MXC_V 2 | 3 | ! # Add this line to your ~/.Xresources ############## 4 | ! #include "$HOME/.config/mxc/xresources-mx.xdefaults" 5 | ! #################################################### 6 | 7 | *.color0: $C00 8 | *.color1: $C01 9 | *.color2: $C02 10 | *.color3: $C03 11 | *.color4: $C04 12 | *.color5: $C05 13 | *.color6: $C06 14 | *.color7: $C07 15 | *.color8: $C08 16 | *.color9: $C09 17 | *.color10: $C10 18 | *.color11: $C11 19 | *.color12: $C12 20 | *.color13: $C13 21 | *.color14: $C14 22 | *.color15: $C15 23 | *.color20: $SBG 24 | *.color21: $SFG 25 | *.color30: $WBG 26 | *.color31: $WFG 27 | *.color40: $EBG 28 | *.color41: $EFG 29 | *.background: $XBG 30 | *.foreground: $XFG 31 | *.selection_background: $OBG 32 | *.selection_foreground: $OFG 33 | *.cursor_text_color: $WFX 34 | *.cursor: $WBX 35 | 36 | *.c00: $C00 37 | *.c01: $C01 38 | *.c02: $C02 39 | *.c03: $C03 40 | *.c04: $C04 41 | *.c05: $C05 42 | *.c06: $C06 43 | *.c07: $C07 44 | *.c08: $C08 45 | *.c09: $C09 46 | *.c10: $C10 47 | *.c11: $C11 48 | *.c12: $C12 49 | *.c13: $C13 50 | *.c14: $C14 51 | *.c15: $C15 52 | 53 | *.wbx: $WBG 54 | *.wfx: $WFG 55 | *.sbg: $SBG 56 | *.sfg: $SFG 57 | *.wbg: $WBG 58 | *.wfg: $WFG 59 | *.ebg: $EBG 60 | *.efg: $EFG 61 | *.xbg: $XBG 62 | *.xfg: $XFG 63 | *.obg: $OBG 64 | *.ofg: $OFG 65 | 66 | *.cx1: $CX1 67 | *.cx2: $CX2 68 | *.cx3: $CX3 69 | *.cx4: $CX4 70 | *.cx5: $CX5 71 | *.cx6: $CX6 72 | 73 | *.sk0: $SK0 74 | *.sk1: $SK1 75 | *.sk2: $SK2 76 | *.sk3: $SK3 77 | *.sk4: $SK4 78 | *.sk5: $SK5 79 | *.sk6: $SK6 80 | *.sk7: $SK7 81 | *.sk8: $SK8 82 | *.sk9: $SK9 83 | 84 | *.wk0: $WK0 85 | *.wk1: $WK1 86 | *.wk2: $WK2 87 | *.wk3: $WK3 88 | *.wk4: $WK4 89 | *.wk5: $WK5 90 | *.wk6: $WK6 91 | *.wk7: $WK7 92 | *.wk8: $WK8 93 | *.wk9: $WK9 94 | 95 | *.ek0: $EK0 96 | *.ek1: $EK1 97 | *.ek2: $EK2 98 | *.ek3: $EK3 99 | *.ek4: $EK4 100 | *.ek5: $EK5 101 | *.ek6: $EK6 102 | *.ek7: $EK7 103 | *.ek8: $EK8 104 | *.ek9: $EK9 105 | 106 | xscreensaver-auth.default.Dialog.foreground: $SK3 107 | xscreensaver-auth.default.Dialog.background: $SK0 108 | xscreensaver-auth.default.Dialog.button.foreground: $SK6 109 | xscreensaver-auth.default.Dialog.button.background: $SK0 110 | xscreensaver-auth.default.Dialog.logo.background: $SK0 111 | xscreensaver-auth.default.Dialog.text.foreground: $WK9 112 | xscreensaver-auth.default.Dialog.text.background: $SK0 113 | xscreensaver-auth.default.Dialog.error.foreground: $CX1 114 | ! xscreensaver-auth.default.Dialog.topShadowColor: $SBG 115 | xscreensaver-auth.default.Dialog.bottomShadowColor: $WBG 116 | xscreensaver-auth.default.Dialog.shadowWidth: 0 117 | xscreensaver-auth.default.Dialog.logo.width: 10 118 | xscreensaver-auth.default.Dialog.logo.height: 10 119 | xscreensaver-auth.default.Dialog.thermometer.foreground: $SK2 120 | xscreensaver-auth.default.Dialog.thermometer.background: $SK0 121 | xscreensaver-auth.default.Dialog.thermometer.width: 48 122 | xscreensaver-auth.default.Dialog.borderColor: $SK0 123 | xscreensaver-auth.default.Dialog.borderWidth: 32 124 | xscreensaver-auth.default.Dialog.internalPadding: 0 125 | 126 | 127 | -------------------------------------------------------------------------------- /templates/zathurarc: -------------------------------------------------------------------------------- 1 | # $MXNAME @ $MXC_V 2 | 3 | set completion-fg "$WFG" 4 | set completion-bg "$WBG" 5 | set completion-group-fg "$SFG" 6 | set completion-group-bg "$SBG" 7 | set completion-highlight-fg "$EFG" 8 | set completion-highlight-bg "$EBG" 9 | set default-fg "$XFG" 10 | set default-bg "$XBG" 11 | set inputbar-fg "$WBG" 12 | set inputbar-bg "$WK0" 13 | set zoom-step 20 14 | set recolor true 15 | set recolor-keephue true 16 | 17 | # set recolor-darkcolor 18 | # set recolor-lightcolor 19 | # set recolor-reverse-video false 20 | 21 | # guioptions 22 | # Shows or hides GUI elements. If it contains 'c', the 23 | # command line is displayed. If it contains 's', the sta‐ 24 | # tusbar is displayed. If it contains 'h', the horizontal 25 | # scrollbar is displayed. If it contains 'v', the verti‐ 26 | # cal scrollbar is displayed. 27 | # • Value type: String 28 | # • Default value: s 29 | 30 | # notification-bg 31 | # notification-fg 32 | # notification-error-bg 33 | # notification-error-fg 34 | # notification-warning-bg 35 | # notification-warning-fg 36 | # tabbar-fg 37 | # tabbar-bg 38 | # tabbar-focus-fg 39 | # tabbar-focus-bg 40 | # show-scrollbars 41 | # Defines if both the horizontal and vertical scrollbars 42 | # should be shown or not. Deprecated, use 'guioptions' 43 | # instead. 44 | # 45 | # • Value type: Boolean 46 | # 47 | # • Default value: false 48 | # 49 | # show-h-scrollbar 50 | # Defines whether to show/hide the horizontal scrollbar. 51 | # Deprecated, use 'guioptions' instead. 52 | # 53 | # • Value type: Boolean 54 | # 55 | # • Default value: false 56 | # 57 | # show-v-scrollbar 58 | # Defines whether to show/hide the vertical scrollbar. 59 | # Deprecated, use 'guioptions' instead. 60 | # 61 | # • Value type: Boolean 62 | # 63 | # • Default value: false 64 | # 65 | # statusbar-bg 66 | # Defines the background color of the statusbar 67 | # 68 | # • Value type: String 69 | # 70 | # • Default value: #000000 71 | # 72 | # statusbar-fg 73 | # Defines the foreground color of the statusbar 74 | # 75 | # • Value type: String 76 | # 77 | # • Default value: #FFFFFF 78 | # 79 | # statusbar-h-padding 80 | # Defines the horizontal padding of the statusbar and no‐ 81 | # tificationbar 82 | # 83 | # • Value type: Integer 84 | # 85 | # • Default value: 8 86 | # 87 | # statusbar-v-padding 88 | # Defines the vertical padding of the statusbar and noti‐ 89 | # ficationbar 90 | # 91 | # • Value type: Integer 92 | # 93 | # • Default value: 2 94 | # 95 | # window-icon 96 | # Defines the path for a icon to be used as window icon. 97 | # 98 | # • Value type: String 99 | # 100 | # • Default value: 101 | # 102 | # window-height 103 | # Defines the window height on startup 104 | # 105 | # • Value type: Integer 106 | # 107 | # • Default value: 600 108 | # 109 | # window-width 110 | # Defines the window width on startup 111 | # 112 | # • Value type: Integer 113 | # 114 | # • Default value: 800 115 | --------------------------------------------------------------------------------