├── LICENSE ├── README.md ├── bin ├── colortest ├── git-brst ├── git-cm ├── git-publish ├── git-uncommit └── tat ├── bootstrap ├── install ├── laptop └── macos-defaults └── lib ├── default.yml ├── hyph_uk.dic ├── uk_UA.aff └── uk_UA.dic /LICENSE: -------------------------------------------------------------------------------- 1 | MIT License 2 | 3 | Copyright (c) 2020 Joshua Steele 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 | # Mac Bootstrap 2 | 3 | ## ⚠️ This project is no longer maintained. 4 | 5 | Mac Bootstrap was a fun project that ran for several years. In the end, the maintenance became too much, and I began looking for simpler solutions. I've recently completed a [major overhaul of my dotfiles](https://github.com/joshukraine/dotfiles/pull/64), also with simplicity and easier maintenance in mind. The README there presents my new approach for bootstrapping a Mac computer based on [my fork of Laptop][joshuas-laptop] + my dotfiles. 6 | 7 | ▹ [Check it out](https://github.com/joshukraine/dotfiles/blob/master/README.md) 8 | 9 | --- 10 | 11 | ![mac-bootstrap screenshot][screenshot] 12 | 13 | This script will provision a new machine running a fresh install of [macOS Catalina (10.15)][catalina]. It installs and configures the software, dotfiles, and general preferences I use for web development — primarily [Rails][rails], [React][react], and [Vue][vue]. The command line environment is based on [Fish][fish] (or [Zsh][zsh]), [Neovim][neovim], and [Tmux][tmux] running in [iTerm2][iterm2] or [Alacritty][alacritty]. 14 | 15 | The [`bootstrap`][bootstrap] script is very specific to the Mac platform. Version 5.x has been successfully tested on the following versions of macOS: 16 | 17 | * Catalina (10.15) 18 | 19 | Previous versions of Mac Bootstrap have been successfully tested on the following versions of macOS: 20 | 21 | * Mojave (10.14) 22 | * High Sierra (10.13) 23 | * Sierra (10.12) 24 | * El Capitan (10.11) 25 | 26 | ▹ **Looking for dotfiles only? Check out [My Dotfiles for macOS](http://jsua.co/dotfiles)** 27 | 28 | ## Prerequisites 29 | 30 | 1. Make sure your software is up to date: 31 | 32 | sudo softwareupdate -i -a --restart 33 | 34 | 1. Install Apple's command line tools: 35 | 36 | xcode-select --install 37 | 38 | 1. Reboot, check for additional updates, then reinstall and reboot as needed. 39 | 40 | ## Installation 41 | 42 | To install with a one-liner, run this: 43 | 44 | ```sh 45 | curl --remote-name https://raw.githubusercontent.com/joshukraine/mac-bootstrap/master/bootstrap && sh bootstrap 2>&1 | tee ~/bootstrap.log 46 | ``` 47 | 48 | Want to read through the script first? 49 | ```sh 50 | curl --remote-name https://raw.githubusercontent.com/joshukraine/mac-bootstrap/master/bootstrap 51 | less bootstrap 52 | sh bootstrap 2>&1 | tee ~/bootstrap.log 53 | ``` 54 | 55 | WARNING: This script will ask for your sudo password multiple times. You'll need to babysit it for a while. 😉 56 | 57 | ## What does it do? 58 | 59 | When you invoke `bootstrap`, here's what it does: 60 | 61 | * Step 1: Run my adaptation of thoughtbot's [Laptop script][laptop]. This is a provisioning script which installs lots of goodies like Homebrew, asdf, postgres, etc. My version is now stored locally in this repo under [`install/laptop`][my-laptop]. Step 1 also installs a variety of packages via [Homebrew Bundle][brew-bundle]. 62 | * Step 2: Install [Oh My Zsh][omz] if Zsh selected as default shell. 63 | * Step 3: Set a variety of [macOS defaults][macos-defaults]. (adapted from [https://mths.be/macos][mths]) 64 | * Step 4: Install various [executable scripts][exe-scripts] (mostly for Tmux and Git) to `$HOME/bin`. 65 | * Step 5: Set up a default [Tmuxinator][tmuxinator] profile for managing tmux sessions. 66 | * Step 6: Install [Ukrainian spell-check dictionaries][dictionaries]. 67 | * Step 7: Clone [My Dotfiles for macOS][dotfiles] and symlink them to `$HOME` or `$XDG_CONFIG_HOME` as needed. 68 | 69 | NOTE: Previously, I used the `bootstrap` script to set up many of the standard directories I use in my work. But since I now have [Dropbox Plus][db-plus], all those directories are downloaded automatically after Dropbox is installed. Once they've synced, I symlink them into place in `$HOME`. 70 | 71 | ## Post-install Tasks 72 | 73 | After running `bootstrap` there are still a few things that need to be done. 74 | 75 | * Restart your machine in order for some changes to take effect. 76 | * Complete [post-install tasks][post-install-tasks] from dotfiles README. 77 | * Set up desired macOS keyboard shortcuts (see list below) 78 | 79 | ## macOS Keyboard Shortcuts 80 | 81 | These are my (current) primary macOS keyboard shortcuts: 82 | 83 | * Alfred: ⌘Space 84 | * Clipboard (Alfred) ⌥⌘C 85 | * Spotlight search: ⌘⇧Space 86 | * Switch input source: ⌃⇧Space 87 | * Fantastical: ⌥⌘Space 88 | * iTerm2 hotkey window: ⌥Space 89 | * Remap Caps Lock to CTRL (anyone know a way to automate this?) 90 | 91 | ## How to personalize Mac Bootstrap for your own use. 92 | 93 | No one else's development setup will ever be a perfect match for you. That said, if your needs are close enough to mine, you might benefit from using the same shell scripts and overall structure, and just swapping out the particulars with your own. Here's my recommended approach to doing that: 94 | 95 | 1) Fork this repo and clone your new fork to your local machine. 96 | 97 | 2) Review the `VARIABLE DECLARATIONS` section and customize as desired. 98 | 99 | 3) Review the 7 steps in [`bootstrap`][bootstrap] and make your own customizations. Here's an overview of what's going on: 100 | 101 | * Step 1 (required): Take a look at [Laptop][laptop] and see what you might want to tweak. One of the biggest things to review is the `brew bundle` list of packages and casks that will be installed. Customize as needed. Laptop also sets up some basics that are required by the bootstrap script later on. 102 | * Step 2 (recommended): Use Oh My Zsh? 103 | * Step 3 (required): Review general macOS settings in `install/macos-defaults` and adjust as needed. This script also sets things like `HostName` which are needed later for the dotfiles installation. 104 | * Step 4 (recommended): Install scripts to `~/bin`? 105 | * Step 5 (recommended): Set up Tmuxinator profile? 106 | * Step 6 (optional): Install Ukrainian language utilities? Maybe you're interested in some [other language extensions][lang-extensions]? 107 | * Step 7 (required): The dotfiles. Update the `$DOTFILES_*` variables (see [`bootstrap`][bootstrap] under "VARIABLE DECLARATIONS") to reference your dotfiles. As a starting point, you can [fork mine][dotfiles] and then point to your fork. 108 | 109 | 4) Create `~/dotfiles/local/config.fish.local` or `~/.zshrc.local`, `~/.gitconfig.local`, and `~/.vimrc.local` and add in your personal information. These files are sourced in `~/.config/fish/config.fish` or `~/.zshrc`, `~/.gitconfig`, and `~/.vimrc` respectively. 110 | 111 | 5) Update the README with your own info, instructions/reminders so you don't forget what you did, and especially the correct install URL: 112 | 113 | ```sh 114 | curl --remote-name https://raw.githubusercontent.com/YOUR-GITHUB-USERNAME/mac-bootstrap/master/bootstrap && sh bootstrap 2>&1 | tee ~/boostrap.log 115 | ``` 116 | 117 | 6) Run the script on your machine and wait for the first error. 😇 Then fix, commit, push, and repeat. 118 | 119 | ## Some of my favorite dotfile repos 120 | 121 | * Pro Vim (https://github.com/Integralist/ProVim) 122 | * Trevor Brown (https://github.com/Stratus3D/dotfiles) 123 | * Chris Toomey (https://github.com/christoomey/dotfiles) 124 | * thoughtbot (https://github.com/thoughtbot/dotfiles) 125 | * Lars Kappert (https://github.com/webpro/dotfiles) 126 | * Ryan Bates (https://github.com/ryanb/dotfiles) 127 | * Ben Orenstein (https://github.com/r00k/dotfiles) 128 | * Joshua Clayton (https://github.com/joshuaclayton/dotfiles) 129 | * Drew Neil (https://github.com/nelstrom/dotfiles) 130 | * Kevin Suttle (https://github.com/kevinSuttle/OSXDefaults) 131 | * Carlos Becker (https://github.com/caarlos0/dotfiles) 132 | * Zach Holman (https://github.com/holman/dotfiles/) 133 | * Mathias Bynens (https://github.com/mathiasbynens/dotfiles/) 134 | * Paul Irish (https://github.com/paulirish/dotfiles) 135 | 136 | ## Helpful web resources on dotfiles, et al. 137 | 138 | * http://dotfiles.github.io/ 139 | * https://medium.com/@webprolific/getting-started-with-dotfiles-43c3602fd789 140 | * http://code.tutsplus.com/tutorials/setting-up-a-mac-dev-machine-from-zero-to-hero-with-dotfiles--net-35449 141 | * https://github.com/webpro/awesome-dotfiles 142 | * http://blog.smalleycreative.com/tutorials/using-git-and-github-to-manage-your-dotfiles/ 143 | * http://carlosbecker.com/posts/first-steps-with-mac-os-x-as-a-developer/ 144 | * https://mattstauffer.co/blog/setting-up-a-new-os-x-development-machine-part-1-core-files-and-custom-shell 145 | 146 | ## License 147 | 148 | Copyright © 2020 Joshua Steele. [MIT License](https://github.com/joshukraine/mac-bootstrap/blob/master/LICENSE) 149 | 150 | [alacritty]: https://github.com/alacritty/alacritty 151 | [bootstrap]: https://github.com/joshukraine/mac-bootstrap/blob/master/bootstrap 152 | [brew-bundle]: https://github.com/Homebrew/homebrew-bundle#usage 153 | [catalina]: https://www.apple.com/macos/catalina/ 154 | [db-plus]: https://db.tt/Kmoif6SG 155 | [dictionaries]: https://extensions.openoffice.org/en/project/ukrainian-dictionary 156 | [dotfiles]: http://jsua.co/dotfiles 157 | [exe-scripts]: https://github.com/joshukraine/mac-bootstrap/tree/master/bin 158 | [fish]: http://fishshell.com/ 159 | [iterm2]: https://www.iterm2.com/ 160 | [lang-extensions]: http://extensions.services.openoffice.org/en/search?f[0]=field_project_tags%3A157 161 | [laptop]: https://github.com/thoughtbot/laptop 162 | [macos-defaults]: https://github.com/joshukraine/mac-bootstrap/blob/master/install/macos-defaults 163 | [mths]: https://mths.be/macos 164 | [my-laptop]: https://github.com/joshukraine/mac-bootstrap/blob/master/install/laptop 165 | [joshuas-laptop]: https://github.com/joshukraine/laptop 166 | [neovim]: https://neovim.io/ 167 | [omz]: http://ohmyz.sh/ 168 | [post-install-tasks]: https://github.com/joshukraine/dotfiles#post-install-tasks 169 | [rails]: https://rubyonrails.org/ 170 | [react]: https://reactjs.org/ 171 | [screenshot]: https://res.cloudinary.com/dnkvsijzu/image/upload/v1584124959/screenshots/mac-bootstrap-mar-2020_pmadrx.png 172 | [stratus3d]: http://stratus3d.com/blog/2015/02/28/sync-iterm2-profile-with-dotfiles-repository/ 173 | [tmux]: https://github.com/tmux/tmux/wiki 174 | [tmuxinator]: https://github.com/tmuxinator/tmuxinator 175 | [vue]: https://vuejs.org/ 176 | [zsh]: https://www.zsh.org/ 177 | -------------------------------------------------------------------------------- /bin/colortest: -------------------------------------------------------------------------------- 1 | #!/usr/bin/perl 2 | 3 | # by entheon, do whatever the hell you want with this file 4 | 5 | print "\n"; 6 | print "**************************\n"; 7 | print "*XTERM 256Color Test Chart\n"; 8 | print "**************************\n"; 9 | print "* 16 = black\n"; 10 | print "* 255 = white\n"; 11 | print "*\n"; 12 | print "* Usage:\n"; 13 | print "* colortest -w\n"; 14 | print "* wide display\n"; 15 | print "*\n"; 16 | print "* colortest -w -r\n"; 17 | print "* wide display reversed\n"; 18 | print "*\n"; 19 | print "* colortest -w -s\n"; 20 | print "* extra spaces padding\n"; 21 | print "*\n"; 22 | print "* colortest -w -r -s\n"; 23 | print "* available combination\n"; 24 | print "*\n"; 25 | print "**************************\n"; 26 | 27 | if( $ARGV[0] eq "-w" || $ARGV[1] eq "-w" || $ARGV[2] eq "-w" ) { 28 | push(@arr, [( " 16: 00/00/00", " 17: 00/00/5f", " 18: 00/00/87", " 19: 00/00/af", " 20: 00/00/d7", " 21: 00/00/ff")] ); 29 | push(@arr, [( " 22: 00/5f/00", " 23: 00/5f/5f", " 24: 00/5f/87", " 25: 00/5f/af", " 26: 00/5f/d7", " 27: 00/5f/ff")] ); 30 | push(@arr, [( " 28: 00/87/00", " 29: 00/87/5f", " 30: 00/87/87", " 31: 00/87/af", " 32: 00/87/d7", " 33: 00/87/ff")] ); 31 | push(@arr, [( " 34: 00/af/00", " 35: 00/af/5f", " 36: 00/af/87", " 37: 00/af/af", " 38: 00/af/d7", " 39: 00/af/ff")] ); 32 | push(@arr, [( " 40: 00/d7/00", " 41: 00/d7/5f", " 42: 00/d7/87", " 43: 00/d7/af", " 44: 00/d7/d7", " 45: 00/d7/ff")] ); 33 | push(@arr, [( " 46: 00/ff/00", " 47: 00/ff/5f", " 48: 00/ff/87", " 49: 00/ff/af", " 50: 00/ff/d7", " 51: 00/ff/ff")] ); 34 | push(@arr, [( " 52: 5f/00/00", " 53: 5f/00/5f", " 54: 5f/00/87", " 55: 5f/00/af", " 56: 5f/00/d7", " 57: 5f/00/ff")] ); 35 | push(@arr, [( " 58: 5f/5f/00", " 59: 5f/5f/5f", " 60: 5f/5f/87", " 61: 5f/5f/af", " 62: 5f/5f/d7", " 63: 5f/5f/ff")] ); 36 | push(@arr, [( " 64: 5f/87/00", " 65: 5f/87/5f", " 66: 5f/87/87", " 67: 5f/87/af", " 68: 5f/87/d7", " 69: 5f/87/ff")] ); 37 | push(@arr, [( " 70: 5f/af/00", " 71: 5f/af/5f", " 72: 5f/af/87", " 73: 5f/af/af", " 74: 5f/af/d7", " 75: 5f/af/ff")] ); 38 | push(@arr, [( " 76: 5f/d7/00", " 77: 5f/d7/5f", " 78: 5f/d7/87", " 79: 5f/d7/af", " 80: 5f/d7/d7", " 81: 5f/d7/ff")] ); 39 | push(@arr, [( " 82: 5f/ff/00", " 83: 5f/ff/5f", " 84: 5f/ff/87", " 85: 5f/ff/af", " 86: 5f/ff/d7", " 87: 5f/ff/ff")] ); 40 | push(@arr, [( " 88: 87/00/00", " 89: 87/00/5f", " 90: 87/00/87", " 91: 87/00/af", " 92: 87/00/d7", " 93: 87/00/ff")] ); 41 | push(@arr, [( " 94: 87/5f/00", " 95: 87/5f/5f", " 96: 87/5f/87", " 97: 87/5f/af", " 98: 87/5f/d7", " 99: 87/5f/ff")] ); 42 | push(@arr, [( " 100: 87/87/00", " 101: 87/87/5f", " 102: 87/87/87", " 103: 87/87/af", " 104: 87/87/d7", " 105: 87/87/ff")] ); 43 | push(@arr, [( " 106: 87/af/00", " 107: 87/af/5f", " 108: 87/af/87", " 109: 87/af/af", " 110: 87/af/d7", " 111: 87/af/ff")] ); 44 | push(@arr, [( " 112: 87/d7/00", " 113: 87/d7/5f", " 114: 87/d7/87", " 115: 87/d7/af", " 116: 87/d7/d7", " 117: 87/d7/ff")] ); 45 | push(@arr, [( " 118: 87/ff/00", " 119: 87/ff/5f", " 120: 87/ff/87", " 121: 87/ff/af", " 122: 87/ff/d7", " 123: 87/ff/ff")] ); 46 | push(@arr, [( " 124: af/00/00", " 125: af/00/5f", " 126: af/00/87", " 127: af/00/af", " 128: af/00/d7", " 129: af/00/ff")] ); 47 | push(@arr, [( " 130: af/5f/00", " 131: af/5f/5f", " 132: af/5f/87", " 133: af/5f/af", " 134: af/5f/d7", " 135: af/5f/ff")] ); 48 | push(@arr, [( " 136: af/87/00", " 137: af/87/5f", " 138: af/87/87", " 139: af/87/af", " 140: af/87/d7", " 141: af/87/ff")] ); 49 | push(@arr, [( " 142: af/af/00", " 143: af/af/5f", " 144: af/af/87", " 145: af/af/af", " 146: af/af/d7", " 147: af/af/ff")] ); 50 | push(@arr, [( " 148: af/d7/00", " 149: af/d7/5f", " 150: af/d7/87", " 151: af/d7/af", " 152: af/d7/d7", " 153: af/d7/ff")] ); 51 | push(@arr, [( " 154: af/ff/00", " 155: af/ff/5f", " 156: af/ff/87", " 157: af/ff/af", " 158: af/ff/d7", " 159: af/ff/ff")] ); 52 | push(@arr, [( " 160: d7/00/00", " 161: d7/00/5f", " 162: d7/00/87", " 163: d7/00/af", " 164: d7/00/d7", " 165: d7/00/ff")] ); 53 | push(@arr, [( " 166: d7/5f/00", " 167: d7/5f/5f", " 168: d7/5f/87", " 169: d7/5f/af", " 170: d7/5f/d7", " 171: d7/5f/ff")] ); 54 | push(@arr, [( " 172: d7/87/00", " 173: d7/87/5f", " 174: d7/87/87", " 175: d7/87/af", " 176: d7/87/d7", " 177: d7/87/ff")] ); 55 | push(@arr, [( " 178: d7/af/00", " 179: d7/af/5f", " 180: d7/af/87", " 181: d7/af/af", " 182: d7/af/d7", " 183: d7/af/ff")] ); 56 | push(@arr, [( " 184: d7/d7/00", " 185: d7/d7/5f", " 186: d7/d7/87", " 187: d7/d7/af", " 188: d7/d7/d7", " 189: d7/d7/ff")] ); 57 | push(@arr, [( " 190: d7/ff/00", " 191: d7/ff/5f", " 192: d7/ff/87", " 193: d7/ff/af", " 194: d7/ff/d7", " 195: d7/ff/ff")] ); 58 | push(@arr, [( " 196: ff/00/00", " 197: ff/00/5f", " 198: ff/00/87", " 199: ff/00/af", " 200: ff/00/d7", " 201: ff/00/ff")] ); 59 | push(@arr, [( " 202: ff/5f/00", " 203: ff/5f/5f", " 204: ff/5f/87", " 205: ff/5f/af", " 206: ff/5f/d7", " 207: ff/5f/ff")] ); 60 | push(@arr, [( " 208: ff/87/00", " 209: ff/87/5f", " 210: ff/87/87", " 211: ff/87/af", " 212: ff/87/d7", " 213: ff/87/ff")] ); 61 | push(@arr, [( " 214: ff/af/00", " 215: ff/af/5f", " 216: ff/af/87", " 217: ff/af/af", " 218: ff/af/d7", " 219: ff/af/ff")] ); 62 | push(@arr, [( " 220: ff/d7/00", " 221: ff/d7/5f", " 222: ff/d7/87", " 223: ff/d7/af", " 224: ff/d7/d7", " 225: ff/d7/ff")] ); 63 | push(@arr, [( " 226: ff/ff/00", " 227: ff/ff/5f", " 228: ff/ff/87", " 229: ff/ff/af", " 230: ff/ff/d7", " 231: ff/ff/ff")] ); 64 | push(@arr, [( " 232: 08/08/08", " 233: 12/12/12", " 234: 1c/1c/1c", " 235: 26/26/26", " 236: 30/30/30", " 237: 3a/3a/3a")] ); 65 | push(@arr, [( " 238: 44/44/44", " 239: 4e/4e/4e", " 240: 58/58/58", " 241: 62/62/62", " 242: 6c/6c/6c", " 243: 76/76/76")] ); 66 | push(@arr, [( " 244: 80/80/80", " 245: 8a/8a/8a", " 246: 94/94/94", " 247: 9e/9e/9e", " 248: a8/a8/a8", " 249: b2/b2/b2")] ); 67 | push(@arr, [( " 250: bc/bc/bc", " 251: c6/c6/c6", " 252: d0/d0/d0", " 253: da/da/da", " 254: e4/e4/e4", " 255: ee/ee/ee")] ); 68 | 69 | if( $ARGV[0] eq "-s" || $ARGV[1] eq "-s" || $ARGV[2] eq "-s" ){ 70 | $padding = " "; 71 | } 72 | else { 73 | 74 | } 75 | 76 | # display in reverse order 77 | if( $ARGV[0] eq "-r" || $ARGV[1] eq "-r" || $ARGV[2] eq "-r" ){ 78 | for( $dimone = 0; $dimone < scalar @arr; $dimone++ ) { 79 | 80 | $seed = ($dimone % 6) * -1; 81 | for( $dimtwo = 0; $dimtwo < 6; $dimtwo++ ) { 82 | 83 | $movone = $seed; 84 | $movtwo = $seed * -1; 85 | 86 | print $arr[$dimone][$dimtwo] . $padding; 87 | 88 | $seed = $seed+1; 89 | } 90 | 91 | print "\n"; 92 | } 93 | } 94 | else { 95 | for( $dimone = 0; $dimone < scalar @arr; $dimone++ ) { 96 | 97 | $seed = ($dimone % 6) * -1; 98 | for( $dimtwo = 0; $dimtwo < 6; $dimtwo++ ) { 99 | 100 | $movone = $seed; 101 | $movtwo = $seed * -1; 102 | 103 | $newone = $dimone+$movone; 104 | $newtwo = $dimtwo+$movtwo; 105 | 106 | if( $newone < scalar @arr ){ 107 | print $arr[$newone][$newtwo] . $padding; 108 | } 109 | 110 | $seed = $seed+1; 111 | } 112 | 113 | print "\n"; 114 | } 115 | } 116 | print "\n"; 117 | print "\n"; 118 | 119 | } 120 | else { 121 | print " 16: 00/00/00\n"; 122 | print " 17: 00/00/5f\n"; 123 | print " 18: 00/00/87\n"; 124 | print " 19: 00/00/af\n"; 125 | print " 20: 00/00/d7\n"; 126 | print " 21: 00/00/ff\n"; 127 | print " 22: 00/5f/00\n"; 128 | print " 23: 00/5f/5f\n"; 129 | print " 24: 00/5f/87\n"; 130 | print " 25: 00/5f/af\n"; 131 | print " 26: 00/5f/d7\n"; 132 | print " 27: 00/5f/ff\n"; 133 | print " 28: 00/87/00\n"; 134 | print " 29: 00/87/5f\n"; 135 | print " 30: 00/87/87\n"; 136 | print " 31: 00/87/af\n"; 137 | print " 32: 00/87/d7\n"; 138 | print " 33: 00/87/ff\n"; 139 | print " 34: 00/af/00\n"; 140 | print " 35: 00/af/5f\n"; 141 | print " 36: 00/af/87\n"; 142 | print " 37: 00/af/af\n"; 143 | print " 38: 00/af/d7\n"; 144 | print " 39: 00/af/ff\n"; 145 | print " 40: 00/d7/00\n"; 146 | print " 41: 00/d7/5f\n"; 147 | print " 42: 00/d7/87\n"; 148 | print " 43: 00/d7/af\n"; 149 | print " 44: 00/d7/d7\n"; 150 | print " 45: 00/d7/ff\n"; 151 | print " 46: 00/ff/00\n"; 152 | print " 47: 00/ff/5f\n"; 153 | print " 48: 00/ff/87\n"; 154 | print " 49: 00/ff/af\n"; 155 | print " 50: 00/ff/d7\n"; 156 | print " 51: 00/ff/ff\n"; 157 | print " 52: 5f/00/00\n"; 158 | print " 53: 5f/00/5f\n"; 159 | print " 54: 5f/00/87\n"; 160 | print " 55: 5f/00/af\n"; 161 | print " 56: 5f/00/d7\n"; 162 | print " 57: 5f/00/ff\n"; 163 | print " 58: 5f/5f/00\n"; 164 | print " 59: 5f/5f/5f\n"; 165 | print " 60: 5f/5f/87\n"; 166 | print " 61: 5f/5f/af\n"; 167 | print " 62: 5f/5f/d7\n"; 168 | print " 63: 5f/5f/ff\n"; 169 | print " 64: 5f/87/00\n"; 170 | print " 65: 5f/87/5f\n"; 171 | print " 66: 5f/87/87\n"; 172 | print " 67: 5f/87/af\n"; 173 | print " 68: 5f/87/d7\n"; 174 | print " 69: 5f/87/ff\n"; 175 | print " 70: 5f/af/00\n"; 176 | print " 71: 5f/af/5f\n"; 177 | print " 72: 5f/af/87\n"; 178 | print " 73: 5f/af/af\n"; 179 | print " 74: 5f/af/d7\n"; 180 | print " 75: 5f/af/ff\n"; 181 | print " 76: 5f/d7/00\n"; 182 | print " 77: 5f/d7/5f\n"; 183 | print " 78: 5f/d7/87\n"; 184 | print " 79: 5f/d7/af\n"; 185 | print " 80: 5f/d7/d7\n"; 186 | print " 81: 5f/d7/ff\n"; 187 | print " 82: 5f/ff/00\n"; 188 | print " 83: 5f/ff/5f\n"; 189 | print " 84: 5f/ff/87\n"; 190 | print " 85: 5f/ff/af\n"; 191 | print " 86: 5f/ff/d7\n"; 192 | print " 87: 5f/ff/ff\n"; 193 | print " 88: 87/00/00\n"; 194 | print " 89: 87/00/5f\n"; 195 | print " 90: 87/00/87\n"; 196 | print " 91: 87/00/af\n"; 197 | print " 92: 87/00/d7\n"; 198 | print " 93: 87/00/ff\n"; 199 | print " 94: 87/5f/00\n"; 200 | print " 95: 87/5f/5f\n"; 201 | print " 96: 87/5f/87\n"; 202 | print " 97: 87/5f/af\n"; 203 | print " 98: 87/5f/d7\n"; 204 | print " 99: 87/5f/ff\n"; 205 | print " 100 :87/87/00\n"; 206 | print " 101 :87/87/5f\n"; 207 | print " 102 :87/87/87\n"; 208 | print " 103 :87/87/af\n"; 209 | print " 104 :87/87/d7\n"; 210 | print " 105 :87/87/ff\n"; 211 | print " 106 :87/af/00\n"; 212 | print " 107 :87/af/5f\n"; 213 | print " 108 :87/af/87\n"; 214 | print " 109 :87/af/af\n"; 215 | print " 110 :87/af/d7\n"; 216 | print " 111 :87/af/ff\n"; 217 | print " 112 :87/d7/00\n"; 218 | print " 113 :87/d7/5f\n"; 219 | print " 114 :87/d7/87\n"; 220 | print " 115 :87/d7/af\n"; 221 | print " 116 :87/d7/d7\n"; 222 | print " 117 :87/d7/ff\n"; 223 | print " 118 :87/ff/00\n"; 224 | print " 119 :87/ff/5f\n"; 225 | print " 120 :87/ff/87\n"; 226 | print " 121 :87/ff/af\n"; 227 | print " 122 :87/ff/d7\n"; 228 | print " 123 :87/ff/ff\n"; 229 | print " 124 :af/00/00\n"; 230 | print " 125 :af/00/5f\n"; 231 | print " 126 :af/00/87\n"; 232 | print " 127 :af/00/af\n"; 233 | print " 128 :af/00/d7\n"; 234 | print " 129 :af/00/ff\n"; 235 | print " 130 :af/5f/00\n"; 236 | print " 131 :af/5f/5f\n"; 237 | print " 132 :af/5f/87\n"; 238 | print " 133 :af/5f/af\n"; 239 | print " 134 :af/5f/d7\n"; 240 | print " 135 :af/5f/ff\n"; 241 | print " 136 :af/87/00\n"; 242 | print " 137 :af/87/5f\n"; 243 | print " 138 :af/87/87\n"; 244 | print " 139 :af/87/af\n"; 245 | print " 140 :af/87/d7\n"; 246 | print " 141 :af/87/ff\n"; 247 | print " 142 :af/af/00\n"; 248 | print " 143 :af/af/5f\n"; 249 | print " 144 :af/af/87\n"; 250 | print " 145 :af/af/af\n"; 251 | print " 146 :af/af/d7\n"; 252 | print " 147 :af/af/ff\n"; 253 | print " 148 :af/d7/00\n"; 254 | print " 149 :af/d7/5f\n"; 255 | print " 150 :af/d7/87\n"; 256 | print " 151 :af/d7/af\n"; 257 | print " 152 :af/d7/d7\n"; 258 | print " 153 :af/d7/ff\n"; 259 | print " 154 :af/ff/00\n"; 260 | print " 155 :af/ff/5f\n"; 261 | print " 156 :af/ff/87\n"; 262 | print " 157 :af/ff/af\n"; 263 | print " 158 :af/ff/d7\n"; 264 | print " 159 :af/ff/ff\n"; 265 | print " 160 :d7/00/00\n"; 266 | print " 161 :d7/00/5f\n"; 267 | print " 162 :d7/00/87\n"; 268 | print " 163 :d7/00/af\n"; 269 | print " 164 :d7/00/d7\n"; 270 | print " 165 :d7/00/ff\n"; 271 | print " 166 :d7/5f/00\n"; 272 | print " 167 :d7/5f/5f\n"; 273 | print " 168 :d7/5f/87\n"; 274 | print " 169 :d7/5f/af\n"; 275 | print " 170 :d7/5f/d7\n"; 276 | print " 171 :d7/5f/ff\n"; 277 | print " 172 :d7/87/00\n"; 278 | print " 173 :d7/87/5f\n"; 279 | print " 174 :d7/87/87\n"; 280 | print " 175 :d7/87/af\n"; 281 | print " 176 :d7/87/d7\n"; 282 | print " 177 :d7/87/ff\n"; 283 | print " 178 :d7/af/00\n"; 284 | print " 179 :d7/af/5f\n"; 285 | print " 180 :d7/af/87\n"; 286 | print " 181 :d7/af/af\n"; 287 | print " 182 :d7/af/d7\n"; 288 | print " 183 :d7/af/ff\n"; 289 | print " 184 :d7/d7/00\n"; 290 | print " 185 :d7/d7/5f\n"; 291 | print " 186 :d7/d7/87\n"; 292 | print " 187 :d7/d7/af\n"; 293 | print " 188 :d7/d7/d7\n"; 294 | print " 189 :d7/d7/ff\n"; 295 | print " 190 :d7/ff/00\n"; 296 | print " 191 :d7/ff/5f\n"; 297 | print " 192 :d7/ff/87\n"; 298 | print " 193 :d7/ff/af\n"; 299 | print " 194 :d7/ff/d7\n"; 300 | print " 195 :d7/ff/ff\n"; 301 | print " 196 :ff/00/00\n"; 302 | print " 197 :ff/00/5f\n"; 303 | print " 198 :ff/00/87\n"; 304 | print " 199 :ff/00/af\n"; 305 | print " 200 :ff/00/d7\n"; 306 | print " 201 :ff/00/ff\n"; 307 | print " 202 :ff/5f/00\n"; 308 | print " 203 :ff/5f/5f\n"; 309 | print " 204 :ff/5f/87\n"; 310 | print " 205 :ff/5f/af\n"; 311 | print " 206 :ff/5f/d7\n"; 312 | print " 207 :ff/5f/ff\n"; 313 | print " 208 :ff/87/00\n"; 314 | print " 209 :ff/87/5f\n"; 315 | print " 210 :ff/87/87\n"; 316 | print " 211 :ff/87/af\n"; 317 | print " 212 :ff/87/d7\n"; 318 | print " 213 :ff/87/ff\n"; 319 | print " 214 :ff/af/00\n"; 320 | print " 215 :ff/af/5f\n"; 321 | print " 216 :ff/af/87\n"; 322 | print " 217 :ff/af/af\n"; 323 | print " 218 :ff/af/d7\n"; 324 | print " 219 :ff/af/ff\n"; 325 | print " 220 :ff/d7/00\n"; 326 | print " 221 :ff/d7/5f\n"; 327 | print " 222 :ff/d7/87\n"; 328 | print " 223 :ff/d7/af\n"; 329 | print " 224 :ff/d7/d7\n"; 330 | print " 225 :ff/d7/ff\n"; 331 | print " 226 :ff/ff/00\n"; 332 | print " 227 :ff/ff/5f\n"; 333 | print " 228 :ff/ff/87\n"; 334 | print " 229 :ff/ff/af\n"; 335 | print " 230 :ff/ff/d7\n"; 336 | print " 231 :ff/ff/ff\n"; 337 | print " 232 :08/08/08\n"; 338 | print " 233 :12/12/12\n"; 339 | print " 234 :1c/1c/1c\n"; 340 | print " 235 :26/26/26\n"; 341 | print " 236 :30/30/30\n"; 342 | print " 237 :3a/3a/3a\n"; 343 | print " 238 :44/44/44\n"; 344 | print " 239 :4e/4e/4e\n"; 345 | print " 240 :58/58/58\n"; 346 | print " 241 :62/62/62\n"; 347 | print " 242 :6c/6c/6c\n"; 348 | print " 243 :76/76/76\n"; 349 | print " 244 :80/80/80\n"; 350 | print " 245 :8a/8a/8a\n"; 351 | print " 246 :94/94/94\n"; 352 | print " 247 :9e/9e/9e\n"; 353 | print " 248 :a8/a8/a8\n"; 354 | print " 249 :b2/b2/b2\n"; 355 | print " 250 :bc/bc/bc\n"; 356 | print " 251 :c6/c6/c6\n"; 357 | print " 252 :d0/d0/d0\n"; 358 | print " 253 :da/da/da\n"; 359 | print " 254 :e4/e4/e4\n"; 360 | print " 255 :ee/ee/ee\n"; 361 | print "\n"; 362 | print "\n"; 363 | } 364 | print "0m"; 365 | exit; 366 | -------------------------------------------------------------------------------- /bin/git-brst: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env bash 2 | 3 | # Prints out branch ahead/behind status vs origin/master for all branches 4 | # 5 | # example: 6 | # $ git branch-status 7 | # dns_check (ahead 1) | (behind 112) origin/master 8 | # master (ahead 2) | (behind 0) origin/master 9 | # 10 | # https://github.com/Stratus3D/dotfiles/blob/4565b251354bed240b55c83fc15d226aa8f798a5/scripts/git/git-branch-status 11 | 12 | TMP_FILE_NAME=/tmp/git_upstream_status_delta 13 | 14 | git for-each-ref --format="%(refname:short) %(upstream:short)" refs/ | \ 15 | while read -r local remote 16 | do 17 | if [ -x "$remote" ]; then 18 | branches=("$local") 19 | else 20 | branches=("$local" "$remote") 21 | fi; 22 | for branch in "${branches[@]}"; do 23 | master="origin/master" 24 | git rev-list --left-right "${branch}"..."${master}" -- 2>/dev/null > $TMP_FILE_NAME || continue 25 | LEFT_AHEAD=$(grep -c '^<' $TMP_FILE_NAME) 26 | RIGHT_AHEAD=$(grep -c '^>' $TMP_FILE_NAME) 27 | echo "$branch (ahead $LEFT_AHEAD) | (behind $RIGHT_AHEAD) $master" 28 | done 29 | done | grep -v "^origin/master" | sort | uniq 30 | -------------------------------------------------------------------------------- /bin/git-cm: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | # 3 | # https://github.com/christoomey/dotfiles/blob/77fb4084bd3f207aace80aa93a49769a6a298ddb/bin/git-cm 4 | # Small wrapper around git commit. Bare 'cm' will enter normal git commit 5 | # editor, but with args it will do a direct `commit -m` 6 | 7 | if [[ $# -gt 0 ]]; then 8 | git commit -m "$@" 9 | else 10 | git commit -v 11 | fi 12 | -------------------------------------------------------------------------------- /bin/git-publish: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env ruby 2 | # frozen_string_literal: true 3 | 4 | # 5 | # https://github.com/christoomey/dotfiles/blob/77fb4084bd3f207aace80aa93a49769a6a298ddb/bin/git-publish 6 | # Usage: git publish 7 | # Open the pull request page for , or the current branch if not 8 | # specified. Lands on the new pull request page when no PR exists yet. 9 | # The local branch must be tracking the remote branch. 10 | 11 | def read_current_branch 12 | `git rev-parse --abbrev-ref HEAD`.chomp 13 | end 14 | 15 | def main 16 | current_branch = read_current_branch 17 | if current_branch == "master" 18 | warn "Currently on master, aborting." 19 | exit 1 20 | else 21 | system("git push -u origin #{current_branch}:#{current_branch}") 22 | end 23 | end 24 | 25 | main 26 | -------------------------------------------------------------------------------- /bin/git-uncommit: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | # https://github.com/christoomey/dotfiles/blob/77fb4084bd3f207aace80aa93a49769a6a298ddb/bin/git-uncommit 3 | 4 | git_clean() { 5 | git diff --no-ext-diff --quiet --exit-code 6 | } 7 | 8 | main() { 9 | if git_clean; then 10 | local branch_name 11 | local current_sha 12 | 13 | branch_name=$(git symbolic-ref HEAD 2>/dev/null | tr '/' '\n' | tail -1) 14 | current_sha=$(git rev-parse HEAD) 15 | 16 | echo "Branch ${branch_name} was ${current_sha}" 17 | git reset --soft HEAD^ 18 | git reset 19 | else 20 | >&2 echo "Aborting due to local changes" 21 | exit 1 22 | fi 23 | } 24 | 25 | main 26 | -------------------------------------------------------------------------------- /bin/tat: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env bash 2 | # 3 | # Attach or create tmux session named the same as current directory. 4 | 5 | path_name="$(basename "$PWD" | tr . -)" 6 | session_name=${1-$path_name} 7 | 8 | not_in_tmux() { 9 | [ -z "$TMUX" ] 10 | } 11 | 12 | session_exists() { 13 | tmux list-sessions | sed -E 's/:.*$//' | grep -q "^$session_name$" 14 | } 15 | 16 | create_detached_session() { 17 | (TMUX='' tmux new-session -Ad -s "$session_name") 18 | } 19 | 20 | create_if_needed_and_attach() { 21 | if not_in_tmux; then 22 | tmux new-session -As "$session_name" 23 | else 24 | if ! session_exists; then 25 | create_detached_session 26 | fi 27 | tmux switch-client -t "$session_name" 28 | fi 29 | } 30 | 31 | create_if_needed_and_attach 32 | -------------------------------------------------------------------------------- /bootstrap: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env bash 2 | 3 | ################################################################################ 4 | # bootstrap 5 | # 6 | # This script is intended to set up a new Mac computer with my dotfiles and 7 | # other development preferences. 8 | ################################################################################ 9 | 10 | 11 | # Thank you, thoughtbot! 12 | bootstrap_echo() { 13 | local fmt="$1"; shift 14 | 15 | # shellcheck disable=SC2059 16 | printf "\\n[BOOTSTRAP] $fmt\\n" "$@" 17 | } 18 | 19 | 20 | ################################################################################ 21 | # VARIABLE DECLARATIONS 22 | ################################################################################ 23 | 24 | osname=$(uname) 25 | 26 | export COMMANDLINE_TOOLS="/Library/Developer/CommandLineTools" 27 | export OLD_DOTFILES_BAK="${HOME}/old_dotfiles_bak" 28 | export DICTIONARY_DIR="${HOME}/Library/Spelling" 29 | export DOTFILES_REPO_URL="https://github.com/joshukraine/dotfiles.git" 30 | export DOTFILES_DIR="${HOME}/dotfiles" 31 | export BOOTSTRAP_REPO_URL="https://github.com/joshukraine/mac-bootstrap.git" 32 | export BOOTSTRAP_DIR="${HOME}/mac-bootstrap" 33 | 34 | PS3="> " 35 | 36 | comp=$(scutil --get ComputerName) 37 | host=$(scutil --get LocalHostName) 38 | 39 | if [ -z "$comp" ] || [ -z "$host" ]; then 40 | DEFAULT_COMPUTER_NAME="My Mac Computer" 41 | DEFAULT_HOST_NAME="my-mac-computer" 42 | else 43 | DEFAULT_COMPUTER_NAME="$comp" 44 | DEFAULT_HOST_NAME="$host" 45 | fi 46 | 47 | DEFAULT_BOOTSTRAP_VERSION="v5.1.5" 48 | DEFAULT_DOTFILES_BRANCH="master" 49 | DEFAULT_TIME_ZONE="Europe/Kiev" 50 | DEFAULT_NODEJS_VERSION="12.18.3" 51 | DEFAULT_RUBY_VERSION="2.7.1" 52 | 53 | 54 | ################################################################################ 55 | # Make sure we're on a Mac before continuing 56 | ################################################################################ 57 | 58 | if [ "$osname" == "Linux" ]; then 59 | bootstrap_echo "Oops, looks like you're on a Linux machine. Please have a look at 60 | my Linux Bootstrap script: https://github.com/joshukraine/linux-bootstrap" 61 | exit 1 62 | elif [ "$osname" != "Darwin" ]; then 63 | bootstrap_echo "Oops, it looks like you're using a non-UNIX system. This script 64 | only supports Mac. Exiting..." 65 | exit 1 66 | fi 67 | 68 | 69 | ################################################################################ 70 | # Check for presence of command line tools if macOS 71 | ################################################################################ 72 | 73 | if [ ! -d "$COMMANDLINE_TOOLS" ]; then 74 | bootstrap_echo "Apple's command line developer tools must be installed before 75 | running this script. To install them, just run 'xcode-select --install' from 76 | the terminal and then follow the prompts. Once the command line tools have been 77 | installed, you can try running this script again." 78 | exit 1 79 | fi 80 | 81 | 82 | ################################################################################ 83 | # Authenticate 84 | ################################################################################ 85 | 86 | sudo -v 87 | 88 | # Keep-alive: update existing `sudo` time stamp until bootstrap has finished 89 | while true; do sudo -n true; sleep 60; kill -0 "$$" || exit; done 2>/dev/null & 90 | 91 | set -e 92 | 93 | 94 | ################################################################################ 95 | # Welcome and setup 96 | ################################################################################ 97 | 98 | echo 99 | echo "*************************************************************************" 100 | echo "******* *******" 101 | echo "******* Welcome to Mac Bootstrap! *******" 102 | echo "******* *******" 103 | echo "******* https://jsua.co/macos *******" 104 | echo "******* *******" 105 | echo "*************************************************************************" 106 | echo 107 | 108 | printf "Before we get started, let's get some info about your setup.\\n" 109 | 110 | printf "\\nBootstrap script will be cloned from: 111 | ==> %s.\\n" "$BOOTSTRAP_REPO_URL" 112 | printf "Which version should we use? (Leave blank for default: %s)\\n" "$DEFAULT_BOOTSTRAP_VERSION" 113 | read -r -p "> " BOOTSTRAP_VERSION 114 | if [ -n "$BOOTSTRAP_VERSION" ]; then 115 | export BOOTSTRAP_VERSION 116 | else 117 | export BOOTSTRAP_VERSION="$DEFAULT_BOOTSTRAP_VERSION" 118 | fi 119 | 120 | printf "\\nDotfiles will be cloned from: 121 | ==> %s.\\n" "$DOTFILES_REPO_URL" 122 | printf "Which branch should we use? (Leave blank for default: %s)\\n" "$DEFAULT_DOTFILES_BRANCH" 123 | read -r -p "> " DOTFILES_BRANCH 124 | if [ -n "$DOTFILES_BRANCH" ]; then 125 | export DOTFILES_BRANCH 126 | else 127 | export DOTFILES_BRANCH="$DEFAULT_DOTFILES_BRANCH" 128 | fi 129 | 130 | printf "\\nEnter a name for your Mac. (Leave blank for default: %s)\\n" "$DEFAULT_COMPUTER_NAME" 131 | read -r -p "> " COMPUTER_NAME 132 | export COMPUTER_NAME=${COMPUTER_NAME:-$DEFAULT_COMPUTER_NAME} 133 | 134 | printf "\\nEnter a host name for your Mac. (Leave blank for default: %s)\\n" "$DEFAULT_HOST_NAME" 135 | read -r -p "> " HOST_NAME 136 | export HOST_NAME=${HOST_NAME:-$DEFAULT_HOST_NAME} 137 | 138 | printf "\\nEnter your desired time zone. 139 | To view available options run \`sudo systemsetup -listtimezones\` 140 | (Leave blank for default: %s)\\n" "$DEFAULT_TIME_ZONE" 141 | read -r -p "> " TIME_ZONE 142 | export TIME_ZONE=${TIME_ZONE:-$DEFAULT_TIME_ZONE} 143 | 144 | printf "\\nWhich version of Node.js would you like to install? 145 | Available versions: https://semver.io/node/versions 146 | (Leave blank for default: %s)\\n" "$DEFAULT_NODEJS_VERSION" 147 | read -r -p "> " ASDF_NODEJS_VERSION 148 | export ASDF_NODEJS_VERSION=${ASDF_NODEJS_VERSION:-$DEFAULT_NODEJS_VERSION} 149 | 150 | printf "\\nWhich version of Ruby would you like to install? 151 | Available versions: https://raw.githubusercontent.com/postmodern/ruby-versions/master/ruby/versions.txt 152 | (Leave blank for default: %s)\\n" "$DEFAULT_RUBY_VERSION" 153 | read -r -p "> " ASDF_RUBY_VERSION 154 | export ASDF_RUBY_VERSION=${ASDF_RUBY_VERSION:-$DEFAULT_RUBY_VERSION} 155 | 156 | printf "\\nPlease select a default shell.\\n" 157 | select my_shell in fish zsh 158 | do 159 | case $my_shell in 160 | fish) 161 | export DEFAULT_SHELL="fish" 162 | break 163 | ;; 164 | zsh) 165 | export DEFAULT_SHELL="zsh" 166 | break 167 | ;; 168 | *) 169 | echo "Please enter 1 for fish or 2 for zsh." 170 | ;; 171 | esac 172 | done 173 | 174 | printf "\\nLooks good. Here's what we've got so far.\\n" 175 | printf "Bootstrap version: ==> [%s]\\n" "$BOOTSTRAP_VERSION" 176 | printf "Dotfiles branch: ==> [%s]\\n" "$DOTFILES_BRANCH" 177 | printf "Computer name: ==> [%s]\\n" "$COMPUTER_NAME" 178 | printf "Host name: ==> [%s]\\n" "$HOST_NAME" 179 | printf "Time zone: ==> [%s]\\n" "$TIME_ZONE" 180 | printf "Node.js version: ==> [%s]\\n" "$ASDF_NODEJS_VERSION" 181 | printf "Ruby version: ==> [%s]\\n" "$ASDF_RUBY_VERSION" 182 | printf "Default shell: ==> [%s]\\n" "$DEFAULT_SHELL" 183 | 184 | echo 185 | read -p "Continue? (y/n) " -n 1 -r 186 | echo 187 | if [[ ! "$REPLY" =~ ^[Yy]$ ]]; then 188 | echo "Exiting..." 189 | exit 1 190 | fi 191 | 192 | 193 | ################################################################################ 194 | # Clone mac-bootstrap repo 195 | ################################################################################ 196 | 197 | bootstrap_echo "Cloning mac-bootstrap repo..." 198 | 199 | if [ -d "$BOOTSTRAP_DIR" ]; then 200 | rm -rf "$BOOTSTRAP_DIR" 201 | fi 202 | 203 | git clone "$BOOTSTRAP_REPO_URL" -b "$BOOTSTRAP_VERSION" "$BOOTSTRAP_DIR" 204 | 205 | 206 | ################################################################################ 207 | # 1. Provision with my adaptation of Laptop (install/laptop) 208 | ################################################################################ 209 | 210 | bootstrap_echo "Step 1: Installing Laptop script..." 211 | 212 | sh "${BOOTSTRAP_DIR}/install/laptop" 2>&1 | tee ~/laptop.log 213 | 214 | bootstrap_echo "Done!" 215 | 216 | 217 | ################################################################################ 218 | # 2. Install Oh My Zsh 219 | ################################################################################ 220 | 221 | if [ "$DEFAULT_SHELL" == "zsh" ]; then 222 | bootstrap_echo "Step 2: Installing Oh My Zsh..." 223 | 224 | if [ -d "${HOME}/.oh-my-zsh" ]; then 225 | rm -rf "${HOME}/.oh-my-zsh" 226 | fi 227 | 228 | git clone https://github.com/robbyrussell/oh-my-zsh.git "${HOME}/.oh-my-zsh" 229 | 230 | if [ -d /usr/local/share/zsh ]; then 231 | bootstrap_echo "Setting permissions for /usr/local/share/zsh..." 232 | sudo chmod -R 755 /usr/local/share/zsh 233 | fi 234 | 235 | if [ -d /usr/local/share/zsh/site-functions ]; then 236 | bootstrap_echo "Setting permissions for /usr/local/share/zsh/site-functions..." 237 | sudo chmod -R 755 /usr/local/share/zsh/site-functions 238 | fi 239 | 240 | bootstrap_echo "Done!" 241 | else 242 | bootstrap_echo "Step 2: Zsh not selected. Skipping Oh My Zsh installation." 243 | fi 244 | 245 | 246 | ################################################################################ 247 | # 3. Set macOS preferences 248 | ################################################################################ 249 | 250 | bootstrap_echo "Step 3: Setting macOS preferences..." 251 | 252 | # shellcheck source=/dev/null 253 | source "${BOOTSTRAP_DIR}/install/macos-defaults" 254 | 255 | bootstrap_echo "Done!" 256 | 257 | ################################################################################ 258 | # 4. Install ~/bin utilities 259 | ################################################################################ 260 | 261 | bootstrap_echo "Step 4: Installing ~/bin utilities..." 262 | 263 | cp -R "$BOOTSTRAP_DIR"/bin/* "${HOME}/bin/" 264 | 265 | bootstrap_echo "Done!" 266 | 267 | 268 | ################################################################################ 269 | # 5. Set up Tmuxinator (https://github.com/tmuxinator/tmuxinator) 270 | ################################################################################ 271 | 272 | bootstrap_echo "Step 5: Setting up Tmuxinator..." 273 | 274 | if [ ! -d "${HOME}/.tmuxinator/" ]; then 275 | mkdir "${HOME}/.tmuxinator" 276 | fi 277 | 278 | if [ "$DEFAULT_SHELL" == "zsh" ]; then 279 | bootstrap_echo "Installing zsh completions..." 280 | wget https://raw.githubusercontent.com/tmuxinator/tmuxinator/master/completion/tmuxinator.zsh -O /usr/local/share/zsh/site-functions/_tmuxinator 281 | fi 282 | 283 | cp "${BOOTSTRAP_DIR}/lib/default.yml" "${HOME}/.tmuxinator/" 284 | 285 | bootstrap_echo "Done!" 286 | 287 | 288 | ################################################################################ 289 | # 6. Install Ukrainian language utilities 290 | # 291 | # Reference: 292 | # * http://apple.stackexchange.com/a/11842/75491 293 | # * http://extensions.services.openoffice.org/en/project/ukrainian-dictionary 294 | ################################################################################ 295 | 296 | bootstrap_echo "Step 6: Installing Ukrainian language utilities..." 297 | 298 | cp "$BOOTSTRAP_DIR"/lib/{hyph_uk.dic,uk_UA.aff,uk_UA.dic} "$DICTIONARY_DIR" 299 | 300 | bootstrap_echo "Done!" 301 | 302 | 303 | ################################################################################ 304 | # 7. Setup dotfiles (http://jsua.co/dotfiles) 305 | ################################################################################ 306 | 307 | bootstrap_echo "Step 7: Installing dotfiles..." 308 | 309 | if [[ -d $DOTFILES_DIR ]]; then 310 | bootstrap_echo "Backing up old dotfiles to ${HOME}/old_dotfiles_bak..." 311 | rm -rf "$OLD_DOTFILES_BAK" 312 | cp -R "$DOTFILES_DIR" "$OLD_DOTFILES_BAK" 313 | rm -rf "$DOTFILES_DIR" 314 | fi 315 | 316 | bootstrap_echo "Cloning dotfiles repo to ${DOTFILES_DIR} ..." 317 | 318 | git clone "$DOTFILES_REPO_URL" -b "$DOTFILES_BRANCH" "$DOTFILES_DIR" 319 | 320 | # shellcheck source=/dev/null 321 | source "${DOTFILES_DIR}/install.sh" 322 | 323 | bootstrap_echo "Done!" 324 | 325 | rm -rf "$BOOTSTRAP_DIR" 326 | 327 | echo 328 | echo "**********************************************************************" 329 | echo "**********************************************************************" 330 | echo "**** ****" 331 | echo "**** Mac Bootstrap script complete! Please restart your computer. ****" 332 | echo "**** ****" 333 | echo "**** https://jsua.co/macos ****" 334 | echo "**** ****" 335 | echo "**********************************************************************" 336 | echo "**********************************************************************" 337 | echo 338 | -------------------------------------------------------------------------------- /install/laptop: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env bash 2 | 3 | # Adpated from thoughtbot's laptop script. 4 | # https://github.com/thoughtbot/laptop 5 | 6 | laptop_echo() { 7 | local fmt="$1"; shift 8 | 9 | # shellcheck disable=SC2059 10 | printf "\\n[LAPTOP] $fmt\\n" "$@" 11 | } 12 | 13 | # shellcheck disable=SC2154 14 | trap 'ret=$?; test $ret -ne 0 && printf "failed\n\n" >&2; exit $ret' EXIT 15 | 16 | set -e 17 | 18 | if [ ! -d "${HOME}/bin/" ]; then 19 | mkdir "${HOME}/bin" 20 | fi 21 | 22 | HOMEBREW_PREFIX="/usr/local" 23 | 24 | if [ -d "$HOMEBREW_PREFIX" ]; then 25 | if ! [ -r "$HOMEBREW_PREFIX" ]; then 26 | sudo chown -R "${LOGNAME}:admin" /usr/local 27 | fi 28 | else 29 | sudo mkdir "$HOMEBREW_PREFIX" 30 | sudo chflags norestricted "$HOMEBREW_PREFIX" 31 | sudo chown -R "${LOGNAME}:admin" "$HOMEBREW_PREFIX" 32 | fi 33 | 34 | update_fish_shell() { 35 | local shell_path; 36 | shell_path="$(command -v fish)" 37 | 38 | laptop_echo "Changing your shell to fish ..." 39 | if ! grep "$shell_path" /etc/shells > /dev/null 2>&1 ; then 40 | laptop_echo "Adding '${shell_path}' to /etc/shells" 41 | echo "$shell_path" | sudo tee -a /etc/shells 42 | fi 43 | sudo chsh -s "$shell_path" "$USER" 44 | } 45 | 46 | update_zsh_shell() { 47 | local shell_path; 48 | shell_path="$(command -v zsh)" 49 | 50 | laptop_echo "Changing your shell to zsh ..." 51 | if ! grep "$shell_path" /etc/shells > /dev/null 2>&1 ; then 52 | laptop_echo "Adding '${shell_path}' to /etc/shells" 53 | sudo sh -c "echo ${shell_path} >> /etc/shells" 54 | fi 55 | sudo chsh -s "$shell_path" "$USER" 56 | } 57 | 58 | gem_install_or_update() { 59 | if gem list "$1" --installed > /dev/null; then 60 | gem update "$@" 61 | else 62 | gem install "$@" 63 | fi 64 | } 65 | 66 | if ! command -v brew >/dev/null; then 67 | laptop_echo "Installing Homebrew ..." 68 | /bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install.sh)" 69 | fi 70 | 71 | if brew list | grep -Fq brew-cask; then 72 | laptop_echo "Uninstalling old Homebrew-Cask ..." 73 | brew uninstall --force brew-cask 74 | fi 75 | 76 | laptop_echo "Updating Homebrew formulae ..." 77 | brew update --force # https://github.com/Homebrew/brew/issues/1151 78 | brew bundle --file=- < $(command -v ruby)" 216 | ruby -v 217 | echo "Gem --> $(command -v gem)" 218 | gem -v 219 | gem update --system 220 | number_of_cores=$(sysctl -n hw.ncpu) 221 | bundle config --global jobs $((number_of_cores - 1)) 222 | 223 | laptop_echo "Installing default gems..." 224 | gem install bundler 225 | gem install haml_lint 226 | gem install neovim 227 | gem install pry 228 | gem install rubocop 229 | gem install tmuxinator 230 | gem install solargraph 231 | 232 | laptop_echo "Installing Node..." 233 | bash "${HOME}/.asdf/plugins/nodejs/bin/import-release-team-keyring" 234 | install_asdf_language "nodejs" "$ASDF_NODEJS_VERSION" 235 | echo "Node --> $(command -v node)" 236 | node -v 237 | echo "NPM --> $(command -v npm)" 238 | npm -v 239 | 240 | laptop_echo "Installing default npm packages..." 241 | npm install -g @vue/cli 242 | npm install -g gulp-cli 243 | npm install -g http-server 244 | npm install -g neovim 245 | npm install -g pug 246 | npm install -g stylelint 247 | npm install -g typescript 248 | npm install -g vue-language-server 249 | 250 | laptop_echo "Installing Python support for Neovim..." 251 | echo "Python 3 --> $(command -v python3)" 252 | python3 --version 253 | echo "Python 2 --> $(command -v python)" 254 | python --version 255 | sudo easy_install pip 256 | python3 -m pip install --user --upgrade pynvim 257 | python2 -m pip install --user --upgrade pynvim 258 | 259 | if [ ! -d "${HOME}/.yarn" ]; then 260 | laptop_echo "Installing Yarn..." 261 | curl -o- -L https://yarnpkg.com/install.sh | bash 262 | fi 263 | 264 | laptop_echo "Laptop installation completed successfully!" 265 | -------------------------------------------------------------------------------- /install/macos-defaults: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env bash 2 | 3 | # Adapted from https://mths.be/macos 4 | 5 | # Close any open System Preferences panes, to prevent them from overriding 6 | # settings we’re about to change 7 | osascript -e 'tell application "System Preferences" to quit' 8 | 9 | # Ask for the administrator password upfront 10 | # sudo -v # Doing this in bootstrap script 11 | 12 | # Keep-alive: update existing `sudo` time stamp until `.macos` has finished 13 | # while true; do sudo -n true; sleep 60; kill -0 "$$" || exit; done 2>/dev/null & 14 | 15 | ############################################################################### 16 | # General UI/UX # 17 | ############################################################################### 18 | 19 | # Set computer name (as done via System Preferences → Sharing) 20 | sudo scutil --set ComputerName "$COMPUTER_NAME" 21 | sudo scutil --set HostName "$HOST_NAME" 22 | sudo scutil --set LocalHostName "$HOST_NAME" 23 | sudo defaults write /Library/Preferences/SystemConfiguration/com.apple.smb.server NetBIOSName -string "$HOST_NAME" 24 | 25 | # Set standby delay to 3 hours (default is 1 hour) 26 | # sudo pmset -a standbydelay 10800 27 | 28 | # Disable the sound effects on boot 29 | # sudo nvram SystemAudioVolume=" " 30 | 31 | # Disable transparency in the menu bar and elsewhere on Yosemite 32 | # defaults write com.apple.universalaccess reduceTransparency -bool true 33 | 34 | # Set sidebar icon size to medium 35 | defaults write NSGlobalDomain NSTableViewDefaultSizeMode -int 2 36 | 37 | # Set scrollbar behavior 38 | defaults write NSGlobalDomain AppleShowScrollBars -string "WhenScrolling" 39 | # Possible values: `WhenScrolling`, `Automatic`, `Always` 40 | 41 | # Expand save panel by default 42 | defaults write NSGlobalDomain NSNavPanelExpandedStateForSaveMode -bool true 43 | defaults write NSGlobalDomain NSNavPanelExpandedStateForSaveMode2 -bool true 44 | 45 | # Expand print panel by default 46 | defaults write NSGlobalDomain PMPrintingExpandedStateForPrint -bool true 47 | defaults write NSGlobalDomain PMPrintingExpandedStateForPrint2 -bool true 48 | 49 | # Automatically quit printer app once the print jobs complete 50 | # defaults write com.apple.print.PrintingPrefs "Quit When Finished" -bool true 51 | 52 | # Disable the “Are you sure you want to open this application?” dialog 53 | # defaults write com.apple.LaunchServices LSQuarantine -bool false 54 | 55 | # Display ASCII control characters using caret notation in standard text views 56 | # Try e.g. `cd /tmp; unidecode "\x{0000}" > cc.txt; open -e cc.txt` 57 | # defaults write NSGlobalDomain NSTextShowsControlCharacters -bool true 58 | 59 | # Disable Resume system-wide 60 | # defaults write com.apple.systempreferences NSQuitAlwaysKeepsWindows -bool false 61 | 62 | # Disable automatic termination of inactive apps 63 | # defaults write NSGlobalDomain NSDisableAutomaticTermination -bool true 64 | 65 | # Disable the crash reporter 66 | # defaults write com.apple.CrashReporter DialogType -string "none" 67 | 68 | # Set Help Viewer windows to non-floating mode 69 | defaults write com.apple.helpviewer DevMode -bool true 70 | 71 | # Reveal IP address, hostname, OS version, etc. when clicking the clock 72 | # in the login window 73 | sudo defaults write /Library/Preferences/com.apple.loginwindow AdminHostInfo HostName 74 | 75 | # Restart automatically if the computer freezes 76 | # sudo systemsetup -setrestartfreeze on 77 | 78 | # Never go into computer sleep mode 79 | # sudo systemsetup -setcomputersleep Off > /dev/null 80 | 81 | # Disable Notification Center and remove the menu bar icon 82 | # launchctl unload -w /System/Library/LaunchAgents/com.apple.notificationcenterui.plist 2> /dev/null 83 | 84 | # Disable smart quotes as they’re annoying when typing code 85 | # defaults write NSGlobalDomain NSAutomaticQuoteSubstitutionEnabled -bool false 86 | 87 | # Disable smart dashes as they’re annoying when typing code 88 | # defaults write NSGlobalDomain NSAutomaticDashSubstitutionEnabled -bool false 89 | 90 | # Set a custom wallpaper image. `DefaultDesktop.jpg` is already a symlink, and 91 | # all wallpapers are in `/Library/Desktop Pictures/`. The default is `Wave.jpg`. 92 | #rm -rf ~/Library/Application Support/Dock/desktoppicture.db 93 | #sudo rm -rf /System/Library/CoreServices/DefaultDesktop.jpg 94 | #sudo ln -s /path/to/your/image /System/Library/CoreServices/DefaultDesktop.jpg 95 | 96 | ############################################################################### 97 | # Trackpad, mouse, keyboard, Bluetooth accessories, and input # 98 | ############################################################################### 99 | 100 | # Trackpad: enable tap to click for this user and for the login screen 101 | defaults write com.apple.driver.AppleBluetoothMultitouch.trackpad Clicking -bool true 102 | defaults -currentHost write NSGlobalDomain com.apple.mouse.tapBehavior -int 1 103 | defaults write NSGlobalDomain com.apple.mouse.tapBehavior -int 1 104 | 105 | # Trackpad: map bottom right corner to right-click 106 | # defaults write com.apple.driver.AppleBluetoothMultitouch.trackpad TrackpadCornerSecondaryClick -int 2 107 | # defaults write com.apple.driver.AppleBluetoothMultitouch.trackpad TrackpadRightClick -bool true 108 | # defaults -currentHost write NSGlobalDomain com.apple.trackpad.trackpadCornerClickBehavior -int 1 109 | # defaults -currentHost write NSGlobalDomain com.apple.trackpad.enableSecondaryClick -bool true 110 | 111 | # Enable “natural” (Lion-style) scrolling 112 | # defaults write NSGlobalDomain com.apple.swipescrolldirection -bool true 113 | 114 | # Increase sound quality for Bluetooth headphones/headsets 115 | # defaults write com.apple.BluetoothAudioAgent "Apple Bitpool Min (editable)" -int 40 116 | 117 | # Enable full keyboard access for all controls 118 | # (e.g. enable Tab in modal dialogs) 119 | # defaults write NSGlobalDomain AppleKeyboardUIMode -int 3 120 | 121 | # Use scroll gesture with the Ctrl (^) modifier key to zoom 122 | # defaults write com.apple.universalaccess closeViewScrollWheelToggle -bool true 123 | # defaults write com.apple.universalaccess HIDScrollZoomModifierMask -int 262144 124 | # Follow the keyboard focus while zoomed in 125 | # defaults write com.apple.universalaccess closeViewZoomFollowsFocus -bool true 126 | 127 | # Disable press-and-hold for keys in favor of key repeat 128 | # defaults write NSGlobalDomain ApplePressAndHoldEnabled -bool false 129 | 130 | # Set a blazingly fast keyboard repeat rate 131 | defaults write NSGlobalDomain KeyRepeat -int 1 132 | defaults write NSGlobalDomain InitialKeyRepeat -int 10 133 | 134 | # Set language and text formats 135 | # Note: if you’re in the US, replace `EUR` with `USD`, `Centimeters` with 136 | # `Inches`, `en_GB` with `en_US`, and `true` with `false`. 137 | defaults write NSGlobalDomain AppleLanguages -array "en" "us" 138 | defaults write NSGlobalDomain AppleLocale -string "en_US@currency=USD" 139 | defaults write NSGlobalDomain AppleMeasurementUnits -string "Inches" 140 | defaults write NSGlobalDomain AppleMetricUnits -bool false 141 | 142 | # Set the timezone; see `systemsetup -listtimezones` for other values 143 | systemsetup -settimezone "$TIME_ZONE" > /dev/null 144 | 145 | # Disable auto-correct 146 | # defaults write NSGlobalDomain NSAutomaticSpellingCorrectionEnabled -bool false 147 | 148 | ############################################################################### 149 | # Screen # 150 | ############################################################################### 151 | 152 | # Require password immediately after sleep or screen saver begins 153 | # defaults write com.apple.screensaver askForPassword -int 1 154 | # defaults write com.apple.screensaver askForPasswordDelay -int 0 155 | 156 | # Save screenshots to the desktop 157 | defaults write com.apple.screencapture location -string "${HOME}/Desktop" 158 | 159 | # Save screenshots in PNG format (other options: BMP, GIF, JPG, PDF, TIFF) 160 | defaults write com.apple.screencapture type -string "png" 161 | 162 | # Disable shadow in screenshots 163 | defaults write com.apple.screencapture disable-shadow -bool true 164 | 165 | # Enable subpixel font rendering on non-Apple LCDs 166 | # defaults write NSGlobalDomain AppleFontSmoothing -int 2 167 | 168 | # Enable HiDPI display modes (requires restart) 169 | # sudo defaults write /Library/Preferences/com.apple.windowserver DisplayResolutionEnabled -bool true 170 | 171 | ############################################################################### 172 | # Finder # 173 | ############################################################################### 174 | 175 | # Finder: allow quitting via ⌘ + Q; doing so will also hide desktop icons 176 | defaults write com.apple.finder QuitMenuItem -bool true 177 | 178 | # Set Dropbox directory as the default location for new Finder windows 179 | # More options here: https://github.com/mathiasbynens/dotfiles/blob/96edd4b57047f34ffbcbb708e1e4de3a2e469925/.macos#L233 180 | defaults write com.apple.finder NewWindowTarget -string "PfLo" 181 | defaults write com.apple.finder NewWindowTargetPath -string "file://${HOME}/Dropbox/" 182 | 183 | # Show icons for hard drives, servers, and removable media on the desktop 184 | defaults write com.apple.finder ShowExternalHardDrivesOnDesktop -bool true 185 | defaults write com.apple.finder ShowHardDrivesOnDesktop -bool true 186 | defaults write com.apple.finder ShowMountedServersOnDesktop -bool true 187 | defaults write com.apple.finder ShowRemovableMediaOnDesktop -bool true 188 | 189 | # Finder: show hidden files by default 190 | # defaults write com.apple.finder AppleShowAllFiles -bool true 191 | 192 | # Finder: show all filename extensions 193 | defaults write NSGlobalDomain AppleShowAllExtensions -bool true 194 | 195 | # Finder: show status bar 196 | defaults write com.apple.finder ShowStatusBar -bool true 197 | 198 | # Finder: show path bar 199 | defaults write com.apple.finder ShowPathbar -bool true 200 | 201 | # Display full POSIX path as Finder window title 202 | defaults write com.apple.finder _FXShowPosixPathInTitle -bool true 203 | 204 | # Keep folders on top when sorting by name 205 | defaults write com.apple.finder _FXSortFoldersFirst -bool true 206 | 207 | # When performing a search, search the current folder by default 208 | defaults write com.apple.finder FXDefaultSearchScope -string "SCcf" 209 | 210 | # Disable the warning when changing a file extension 211 | defaults write com.apple.finder FXEnableExtensionChangeWarning -bool false 212 | 213 | # Enable spring loading for directories 214 | defaults write NSGlobalDomain com.apple.springing.enabled -bool true 215 | 216 | # Remove the spring loading delay for directories 217 | defaults write NSGlobalDomain com.apple.springing.delay -float 0 218 | 219 | # Avoid creating .DS_Store files on network or USB volumes 220 | defaults write com.apple.desktopservices DSDontWriteNetworkStores -bool true 221 | defaults write com.apple.desktopservices DSDontWriteUSBStores -bool true 222 | 223 | # Disable disk image verification 224 | # defaults write com.apple.frameworks.diskimages skip-verify -bool true 225 | # defaults write com.apple.frameworks.diskimages skip-verify-locked -bool true 226 | # defaults write com.apple.frameworks.diskimages skip-verify-remote -bool true 227 | 228 | # Automatically open a new Finder window when a volume is mounted 229 | # defaults write com.apple.frameworks.diskimages auto-open-ro-root -bool true 230 | # defaults write com.apple.frameworks.diskimages auto-open-rw-root -bool true 231 | # defaults write com.apple.finder OpenWindowForNewRemovableDisk -bool true 232 | 233 | # Use column view in all Finder windows by default 234 | # Four-letter codes for all view modes: `icnv`, `clmv`, `Flwv`, `Nlsv` 235 | defaults write com.apple.finder FXPreferredViewStyle -string "clmv" 236 | 237 | # Disable the warning before emptying the Trash 238 | defaults write com.apple.finder WarnOnEmptyTrash -bool false 239 | 240 | # Enable AirDrop over Ethernet and on unsupported Macs running Lion 241 | # defaults write com.apple.NetworkBrowser BrowseAllInterfaces -bool true 242 | 243 | # Expand the following File Info panes: 244 | # “General”, “Open with”, and “Sharing & Permissions” 245 | defaults write com.apple.finder FXInfoPanesExpanded -dict \ 246 | General -bool true \ 247 | OpenWith -bool true \ 248 | Privileges -bool true 249 | 250 | ############################################################################### 251 | # Dock, Dashboard, and hot corners # 252 | ############################################################################### 253 | 254 | # Position dock on the left side of the screen 255 | # defaults write com.apple.dock orientation -string "left" 256 | 257 | # Automatically hide and show the Dock 258 | # defaults write com.apple.dock autohide -bool true 259 | 260 | # Enable highlight hover effect for the grid view of a stack (Dock) 261 | # defaults write com.apple.dock mouse-over-hilite-stack -bool true 262 | 263 | # Set the icon size of Dock items to 72 pixels 264 | # defaults write com.apple.dock tilesize -int 72 265 | 266 | # Enable spring loading for all Dock items 267 | # defaults write com.apple.dock enable-spring-load-actions-on-all-items -bool true 268 | 269 | # Show indicator lights for open applications in the Dock 270 | # defaults write com.apple.dock show-process-indicators -bool true 271 | 272 | # Speed up Mission Control animations 273 | # defaults write com.apple.dock expose-animation-duration -float 0.1 274 | 275 | # Disable Dashboard 276 | # defaults write com.apple.dashboard mcx-disabled -bool true 277 | 278 | # Don’t show Dashboard as a Space 279 | # defaults write com.apple.dock dashboard-in-overlay -bool true 280 | 281 | # Don’t automatically rearrange Spaces based on most recent use 282 | defaults write com.apple.dock mru-spaces -bool false 283 | 284 | # Remove the auto-hiding Dock delay 285 | # defaults write com.apple.dock autohide-delay -float 0 286 | 287 | # Make Dock icons of hidden applications translucent 288 | defaults write com.apple.dock showhidden -bool true 289 | 290 | # Reset Launchpad, but keep the desktop wallpaper intact 291 | # find "${HOME}/Library/Application Support/Dock" -name "*-*.db" -maxdepth 1 -delete 292 | 293 | # Add a spacer to the left side of the Dock (where the applications are) 294 | # defaults write com.apple.dock persistent-apps -array-add '{tile-data={}; tile-type="spacer-tile";}' 295 | 296 | # Add a spacer to the right side of the Dock (where the Trash is) 297 | # defaults write com.apple.dock persistent-others -array-add '{tile-data={}; tile-type="spacer-tile";}' 298 | 299 | # Hot corners 300 | # Possible values: 301 | # 0: no-op 302 | # 2: Mission Control 303 | # 3: Show application windows 304 | # 4: Desktop 305 | # 5: Start screen saver 306 | # 6: Disable screen saver 307 | # 7: Dashboard 308 | # 10: Put display to sleep 309 | # 11: Launchpad 310 | # 12: Notification Center 311 | # Top left screen corner → Mission Control 312 | # defaults write com.apple.dock wvous-tl-corner -int 2 313 | # defaults write com.apple.dock wvous-tl-modifier -int 0 314 | # Top right screen corner → Desktop 315 | # defaults write com.apple.dock wvous-tr-corner -int 4 316 | # defaults write com.apple.dock wvous-tr-modifier -int 0 317 | # Bottom right screen corner → Display sleep 318 | # defaults write com.apple.dock wvous-br-corner -int 10 319 | # defaults write com.apple.dock wvous-br-modifier -int 0 320 | 321 | ############################################################################### 322 | # Safari & WebKit # 323 | ############################################################################### 324 | 325 | # Privacy: don’t send search queries to Apple 326 | # defaults write com.apple.Safari UniversalSearchEnabled -bool false 327 | # defaults write com.apple.Safari SuppressSearchSuggestions -bool true 328 | 329 | # Press Tab to highlight each item on a web page 330 | # defaults write com.apple.Safari WebKitTabToLinksPreferenceKey -bool true 331 | # defaults write com.apple.Safari com.apple.Safari.ContentPageGroupIdentifier.WebKit2TabsToLinks -bool true 332 | 333 | # Show the full URL in the address bar (note: this still hides the scheme) 334 | # defaults write com.apple.Safari ShowFullURLInSmartSearchField -bool true 335 | 336 | # Set Safari’s home page to `about:blank` for faster loading 337 | # defaults write com.apple.Safari HomePage -string "about:blank" 338 | 339 | # Prevent Safari from opening ‘safe’ files automatically after downloading 340 | # defaults write com.apple.Safari AutoOpenSafeDownloads -bool false 341 | 342 | # Allow hitting the Backspace key to go to the previous page in history 343 | # defaults write com.apple.Safari com.apple.Safari.ContentPageGroupIdentifier.WebKit2BackspaceKeyNavigationEnabled -bool true 344 | 345 | # Hide Safari’s bookmarks bar by default 346 | # defaults write com.apple.Safari ShowFavoritesBar -bool false 347 | 348 | # Hide Safari’s sidebar in Top Sites 349 | # defaults write com.apple.Safari ShowSidebarInTopSites -bool false 350 | 351 | # Disable Safari’s thumbnail cache for History and Top Sites 352 | # defaults write com.apple.Safari DebugSnapshotsUpdatePolicy -int 2 353 | 354 | # Enable Safari’s debug menu 355 | # defaults write com.apple.Safari IncludeInternalDebugMenu -bool true 356 | 357 | # Make Safari’s search banners default to Contains instead of Starts With 358 | # defaults write com.apple.Safari FindOnPageMatchesWordStartsOnly -bool false 359 | 360 | # Enable the Develop menu and the Web Inspector in Safari 361 | # defaults write com.apple.Safari IncludeDevelopMenu -bool true 362 | # defaults write com.apple.Safari WebKitDeveloperExtrasEnabledPreferenceKey -bool true 363 | # defaults write com.apple.Safari com.apple.Safari.ContentPageGroupIdentifier.WebKit2DeveloperExtrasEnabled -bool true 364 | 365 | # Add a context menu item for showing the Web Inspector in web views 366 | # defaults write NSGlobalDomain WebKitDeveloperExtras -bool true 367 | 368 | # Enable continuous spellchecking 369 | # defaults write com.apple.Safari WebContinuousSpellCheckingEnabled -bool true 370 | 371 | # Disable auto-correct 372 | # defaults write com.apple.Safari WebAutomaticSpellingCorrectionEnabled -bool false 373 | 374 | # Disable AutoFill 375 | # defaults write com.apple.Safari AutoFillFromAddressBook -bool false 376 | # defaults write com.apple.Safari AutoFillPasswords -bool false 377 | # defaults write com.apple.Safari AutoFillCreditCardData -bool false 378 | # defaults write com.apple.Safari AutoFillMiscellaneousForms -bool false 379 | 380 | # Warn about fraudulent websites 381 | # defaults write com.apple.Safari WarnAboutFraudulentWebsites -bool true 382 | 383 | # Disable plug-ins 384 | # defaults write com.apple.Safari WebKitPluginsEnabled -bool false 385 | # defaults write com.apple.Safari com.apple.Safari.ContentPageGroupIdentifier.WebKit2PluginsEnabled -bool false 386 | 387 | # Disable Java 388 | # defaults write com.apple.Safari WebKitJavaEnabled -bool false 389 | # defaults write com.apple.Safari com.apple.Safari.ContentPageGroupIdentifier.WebKit2JavaEnabled -bool false 390 | 391 | # Block pop-up windows 392 | # defaults write com.apple.Safari WebKitJavaScriptCanOpenWindowsAutomatically -bool false 393 | # defaults write com.apple.Safari com.apple.Safari.ContentPageGroupIdentifier.WebKit2JavaScriptCanOpenWindowsAutomatically -bool false 394 | 395 | # Enable “Do Not Track” 396 | # defaults write com.apple.Safari SendDoNotTrackHTTPHeader -bool true 397 | 398 | # Update extensions automatically 399 | # defaults write com.apple.Safari InstallExtensionUpdatesAutomatically -bool true 400 | 401 | ############################################################################### 402 | # Mail # 403 | ############################################################################### 404 | 405 | # Disable send and reply animations in Mail.app 406 | # defaults write com.apple.mail DisableReplyAnimations -bool true 407 | # defaults write com.apple.mail DisableSendAnimations -bool true 408 | 409 | # Copy email addresses as `foo@example.com` instead of `Foo Bar ` in Mail.app 410 | defaults write com.apple.mail AddressesIncludeNameOnPasteboard -bool false 411 | 412 | # Add the keyboard shortcut ⌘ + Enter to send an email in Mail.app 413 | # defaults write com.apple.mail NSUserKeyEquivalents -dict-add "Send" "@\\U21a9" 414 | 415 | # Display emails in threaded mode, sorted by date (oldest at the top) 416 | # defaults write com.apple.mail DraftsViewerAttributes -dict-add "DisplayInThreadedMode" -string "yes" 417 | # defaults write com.apple.mail DraftsViewerAttributes -dict-add "SortedDescending" -string "yes" 418 | # defaults write com.apple.mail DraftsViewerAttributes -dict-add "SortOrder" -string "received-date" 419 | 420 | # Disable inline attachments (just show the icons) 421 | # defaults write com.apple.mail DisableInlineAttachmentViewing -bool true 422 | 423 | # Disable automatic spell checking 424 | # defaults write com.apple.mail SpellCheckingBehavior -string "NoSpellCheckingEnabled" 425 | 426 | ############################################################################### 427 | # Activity Monitor # 428 | ############################################################################### 429 | 430 | # Show the main window when launching Activity Monitor 431 | # defaults write com.apple.ActivityMonitor OpenMainWindow -bool true 432 | 433 | # Visualize CPU usage in the Activity Monitor Dock icon 434 | # defaults write com.apple.ActivityMonitor IconType -int 5 435 | 436 | # Show all processes in Activity Monitor 437 | # defaults write com.apple.ActivityMonitor ShowCategory -int 0 438 | 439 | # Sort Activity Monitor results by CPU usage 440 | # defaults write com.apple.ActivityMonitor SortColumn -string "CPUUsage" 441 | # defaults write com.apple.ActivityMonitor SortDirection -int 0 442 | 443 | ############################################################################### 444 | # Address Book, Dashboard, iCal, TextEdit, and Disk Utility # 445 | ############################################################################### 446 | 447 | # Enable the debug menu in Address Book 448 | # defaults write com.apple.addressbook ABShowDebugMenu -bool true 449 | 450 | # Use plain text mode for new TextEdit documents 451 | # defaults write com.apple.TextEdit RichText -int 0 452 | 453 | # Open and save files as UTF-8 in TextEdit 454 | # defaults write com.apple.TextEdit PlainTextEncoding -int 4 455 | # defaults write com.apple.TextEdit PlainTextEncodingForWrite -int 4 456 | 457 | # Enable the debug menu in Disk Utility 458 | defaults write com.apple.DiskUtility DUDebugMenuEnabled -bool true 459 | defaults write com.apple.DiskUtility advanced-image-options -bool true 460 | 461 | # Auto-play videos when opened with QuickTime Player 462 | # defaults write com.apple.QuickTimePlayerX MGPlayMovieOnOpen -bool true 463 | 464 | ############################################################################### 465 | # Mac App Store # 466 | ############################################################################### 467 | 468 | # Enable the WebKit Developer Tools in the Mac App Store 469 | # defaults write com.apple.appstore WebKitDeveloperExtras -bool true 470 | 471 | # Enable Debug Menu in the Mac App Store 472 | # defaults write com.apple.appstore ShowDebugMenu -bool true 473 | 474 | # Disable the automatic update check 475 | # defaults write com.apple.SoftwareUpdate AutomaticCheckEnabled -bool false 476 | 477 | # Check for software updates daily, not just once per week 478 | # defaults write com.apple.SoftwareUpdate ScheduleFrequency -int 1 479 | 480 | # Download newly available updates in background 481 | # defaults write com.apple.SoftwareUpdate AutomaticDownload -int 1 482 | 483 | # Install System data files & security updates 484 | # defaults write com.apple.SoftwareUpdate CriticalUpdateInstall -int 1 485 | 486 | # Automatically download apps purchased on other Macs 487 | # defaults write com.apple.SoftwareUpdate ConfigDataInstall -int 1 488 | 489 | # Turn on app auto-update 490 | # defaults write com.apple.commerce AutoUpdate -bool true 491 | 492 | # Allow the App Store to reboot machine on macOS updates 493 | # defaults write com.apple.commerce AutoUpdateRestartRequired -bool true 494 | 495 | ############################################################################### 496 | # Photos # 497 | ############################################################################### 498 | 499 | # Prevent Photos from opening automatically when devices are plugged in 500 | # defaults -currentHost write com.apple.ImageCapture disableHotPlug -bool true 501 | 502 | ############################################################################### 503 | # Messages # 504 | ############################################################################### 505 | 506 | # Disable automatic emoji substitution (i.e. use plain text smileys) 507 | # defaults write com.apple.messageshelper.MessageController SOInputLineSettings -dict-add "automaticEmojiSubstitutionEnablediMessage" -bool false 508 | 509 | # Disable smart quotes as it’s annoying for messages that contain code 510 | # defaults write com.apple.messageshelper.MessageController SOInputLineSettings -dict-add "automaticQuoteSubstitutionEnabled" -bool false 511 | 512 | # Disable continuous spell checking 513 | # defaults write com.apple.messageshelper.MessageController SOInputLineSettings -dict-add "continuousSpellCheckingEnabled" -bool false 514 | 515 | ############################################################################### 516 | # Google Chrome & Google Chrome Canary # 517 | ############################################################################### 518 | 519 | # Disable the all too sensitive backswipe on trackpads 520 | # defaults write com.google.Chrome AppleEnableSwipeNavigateWithScrolls -bool false 521 | # defaults write com.google.Chrome.canary AppleEnableSwipeNavigateWithScrolls -bool false 522 | 523 | # Disable the all too sensitive backswipe on Magic Mouse 524 | # defaults write com.google.Chrome AppleEnableMouseSwipeNavigateWithScrolls -bool false 525 | # defaults write com.google.Chrome.canary AppleEnableMouseSwipeNavigateWithScrolls -bool false 526 | 527 | # Use the system-native print preview dialog 528 | defaults write com.google.Chrome DisablePrintPreview -bool true 529 | defaults write com.google.Chrome.canary DisablePrintPreview -bool true 530 | 531 | # Expand the print dialog by default 532 | defaults write com.google.Chrome PMPrintingExpandedStateForPrint2 -bool true 533 | defaults write com.google.Chrome.canary PMPrintingExpandedStateForPrint2 -bool true 534 | 535 | ############################################################################### 536 | # Opera & Opera Developer # 537 | ############################################################################### 538 | 539 | # Expand the print dialog by default 540 | # defaults write com.operasoftware.Opera PMPrintingExpandedStateForPrint2 -boolean true 541 | # defaults write com.operasoftware.OperaDeveloper PMPrintingExpandedStateForPrint2 -boolean true 542 | 543 | ############################################################################### 544 | # Extras 545 | ############################################################################### 546 | 547 | # Activate audible chime when power cable is plugged in. 548 | # defaults write com.apple.PowerChime ChimeOnAllHardware -bool true; open /System/Library/CoreServices/PowerChime.app 549 | -------------------------------------------------------------------------------- /lib/default.yml: -------------------------------------------------------------------------------- 1 | # ~/.tmuxinator/default.yml 2 | 3 | name: default 4 | root: ~/ 5 | startup_window: 1 6 | 7 | windows: 8 | - editor: 9 | panes: 10 | - tmux select-layout "6fe0,231x63,0,0[231x50,0,0,0,231x12,0,51{115x12,0,51,2,115x12,116,51,3}]" && sleep 2 && nvim -S 11 | - # 12 | - # 13 | -------------------------------------------------------------------------------- /lib/hyph_uk.dic: -------------------------------------------------------------------------------- 1 | UTF-8 2 | 'ї4в 3 | 'ї4д 4 | 'ї4ж 5 | 'ї4з 6 | 'ї4л 7 | 'ї4м 8 | 'ї4с 9 | 'ї4х 10 | .б'8 11 | .бд6 12 | .бе4з'3 13 | .бе4з3 14 | .бе5з4о3д 15 | .бе5зе. 16 | .без3ро4з3 17 | .без5о4соб 18 | .безві4д3 19 | .безу4 20 | .блі4ц3ана 21 | .блі4ц3і4спит 22 | .блі4ц3криг 23 | .блі4ц3опит 24 | .блі4ц3торг 25 | .блі4ц3тур 26 | .бр6 27 | .в'8 28 | .вб6 29 | .вб6'6 30 | .вв6'6 31 | .вг6 32 | .вд6 33 | .вж6 34 | .вз6 35 | .вз6д6 36 | .ви3в4ч 37 | .ви3м4р 38 | .ві4д3 39 | .ві5д4а 40 | .ві5д4ер 41 | .ві5д4і 42 | .ві5д4озв 43 | .ві5д4ом 44 | .ві5д4ун 45 | .від'3 46 | .віді3м4р 47 | .вк6 48 | .вл6 49 | .вм6 50 | .вм6'6 51 | .вп6 52 | .вп6'6 53 | .вп6х6 54 | .вс6 55 | .вс6т6 56 | .вт6 57 | .вш6к6 58 | .д'8 59 | .дж6 60 | .дз6 61 | .дл6 62 | .до3в4ч 63 | .дої4в 64 | .дої4л 65 | .дої5ль 66 | .дс6 67 | .з'8 68 | .за3в4ч 69 | .за3м4р 70 | .зав3м4р 71 | .заї4к 72 | .заї4ц 73 | .заї4ч 74 | .зб6 75 | .зв6'6 76 | .зг6 77 | .зґ6 78 | .зд6 79 | .зд6з6 80 | .зі3м4р 81 | .зл6 82 | .зм6'6 83 | .зс6 84 | .зс6к6 85 | .зс6т6 86 | .зч6 87 | .зш6 88 | .зш6к6 89 | .йш6 90 | .кл6 91 | .кп6 92 | .кс6 93 | .кх6 94 | .кш6 95 | .лк6с6 96 | .лс6 97 | .ль6 98 | .м'8 99 | .мі4ж3 100 | .мс6 101 | .мф6 102 | .н'8 103 | .на3в4ч 104 | .на3м4р 105 | .наї4д 106 | .напі4в3 107 | .нб6 108 | .ом4рі 109 | .п'8 110 | .пе4ом. 111 | .пере3 112 | .пере3м4р 113 | .пере4д'3 114 | .пере4д3бач 115 | .пере4д3виб 116 | .пере4д3г 117 | .пере4д3д 118 | .пере4д3м 119 | .пере4д3ост 120 | .пере4д3пла 121 | .пере4д3пок 122 | .пере4д3р 123 | .пере4д3св 124 | .пере4д3умов 125 | .пере4д3усі 126 | .пере4д3фр 127 | .пере4д3ч 128 | .пі4в3 129 | .пі4д3 130 | .пі5д4е 131 | .пі5д4и 132 | .пі5д4і 133 | .пі5д4о 134 | .пі5д4у 135 | .під'3 136 | .по3в4ч 137 | .по3м4р 138 | .пої4 139 | .пона4д3 140 | .пона5д4и 141 | .пона5д4і 142 | .пона5д4я 143 | .пр6 144 | .при3в4ч 145 | .при3м4р 146 | .пс6 147 | .пх6 148 | .р'8 149 | .ро4з'3 150 | .ро4з3 151 | .ро5з4а 152 | .ро5з4е 153 | .ро5з4і 154 | .роз3м4р 155 | .рт6 156 | .ск6 157 | .ск6л6 158 | .сл6 159 | .сп6 160 | .сп6'6 161 | .сп6л6 162 | .сп6х6 163 | .спі4в3 164 | .ст6 165 | .сх6 166 | .сх6л6 167 | .т'8 168 | .тк6 169 | .тр6 170 | .тх6 171 | .ть6 172 | .ум4ре 173 | .ум4ри 174 | .ум4рі 175 | .ум4ру 176 | .ф'8 177 | .фл6 178 | .хл6 179 | .ць6 180 | .чере4з'3 181 | .чере4з3 182 | .чх6 183 | .ш'8 184 | .шк6 185 | .шл6 186 | .шп6 187 | .шт6 188 | 1б 189 | 1в 190 | 1г 191 | 1ґ 192 | 1д 193 | 1ж 194 | 1з 195 | 1й 196 | 1к 197 | 1л 198 | 1м 199 | 1н 200 | 1п 201 | 1р 202 | 1с 203 | 1т 204 | 1ф 205 | 1х 206 | 1ц 207 | 1ч 208 | 1ш 209 | 1щ 210 | 2б1б 211 | 2в1в 212 | 2г1г 213 | 2ґ1ґ 214 | 2д1д 215 | 2ж1ж 216 | 2з1з 217 | 2й1й 218 | 2к1к 219 | 2л1л 220 | 2м1м 221 | 2н1н 222 | 2п1п 223 | 2р1р 224 | 2с1с 225 | 2т1т 226 | 2ф1ф 227 | 2х1х 228 | 2ц1ц 229 | 2ч1ч 230 | 2ш1ш 231 | 2щ1щ 232 | 3а4вторит 233 | 3а4гент 234 | 3а4грес 235 | 3а4декват 236 | 3а4дитив 237 | 3а4зарт 238 | 3а4ктив 239 | 3а4ктуал 240 | 3а4курат 241 | 3а4куст 242 | 3а4кцепт 243 | 3а4кциз 244 | 3а4лергі 245 | 3а4матор 246 | 3а4наліз 247 | 3а4натом 248 | 3а4парат 249 | 3а4пеляц 250 | 3а4постол 251 | 3а4птеч 252 | 3а4ргумен 253 | 3а4ромат 254 | 3а4соці 255 | 3а4спект 256 | 3а4тлет 257 | 3а4халі 258 | 3блаж 259 | 3ближ 260 | 3близ 261 | 3блиск 262 | 3блок 263 | 3блоці 264 | 3бран 265 | 3брати 266 | 3брест 267 | 3бризк 268 | 3британ 269 | 3бруд 270 | 3в'4яз 271 | 3в4б4лаг 272 | 3в4бив 273 | 3в4веден 274 | 3в4дал 275 | 3в4довз 276 | 3в4довол 277 | 3в4живан 278 | 3в4к4лад 279 | 3в4лад 280 | 3в4ласн 281 | 3в4лашт 282 | 3в4лов 283 | 3в4п4лив 284 | 3в4п4равн 285 | 3в4певн 286 | 3в4поряд 287 | 3в4р4одлив 288 | 3в4разлив 289 | 3в4рожай 290 | 3в4сюд 291 | 3в4т4рут 292 | 3в4т4руч 293 | 3в4тіл 294 | 3г4ідро 295 | 3глад 296 | 3глиб 297 | 3глин 298 | 3глоб 299 | 3глуз 300 | 3глуш 301 | 3гляд 302 | 3глян 303 | 3гнан 304 | 3гнил 305 | 3гноз 306 | 3гнучк 307 | 3грав 308 | 3град 309 | 3грає 310 | 3грай 311 | 3грам 312 | 3гран 313 | 3грати 314 | 3граф 315 | 3граш 316 | 3граю 317 | 3грес 318 | 3грець 319 | 3грів 320 | 3гріт 321 | 3гріш 322 | 3гроб 323 | 3грож 324 | 3гроз 325 | 3громад 326 | 3груван 327 | 3грунт 328 | 3груп 329 | 3ґрунт 330 | 3д4ан 331 | 3д4бав 332 | 3д4бає 333 | 3д4бал 334 | 3д4бан 335 | 3д4бат 336 | 3двиг 337 | 3двій 338 | 3двір 339 | 3двічі 340 | 3двоє 341 | 3двою 342 | 3ддя 343 | 3драж 344 | 3дріб 345 | 3дріма 346 | 3дром 347 | 3друж 348 | 3друк 349 | 3дряп 350 | 3е4колог 351 | 3е4коном 352 | 3е4легант 353 | 3е4лектр 354 | 3е4лемент 355 | 3е4мігр 356 | 3е4моці 357 | 3е4нерг 358 | 3е4стакад 359 | 3е4стет 360 | 3е4тап 361 | 3є4д3н 362 | 3є4дин 363 | 3є4писк 364 | 3є4рей 365 | 3жвав 366 | 3жміть 367 | 3жріть 368 | 3з'4ясо 369 | 3з4б4роє 370 | 3з4б4рой 371 | 3з4б4рою 372 | 3з4бага 373 | 3з4баланс 374 | 3з4був 375 | 3з4бут 376 | 3з4в4'яз 377 | 3з4год 378 | 3з4дат 379 | 3з4дійсн 380 | 3з4довж 381 | 3з4доров 382 | 3з4чеп 383 | 3зваж 384 | 3зван 385 | 3звед 386 | 3звел 387 | 3звест 388 | 3звись 389 | 3звич 390 | 3звищ 391 | 3звіт 392 | 3зворуш 393 | 3звук 394 | 3звуч 395 | 3зйом 396 | 3змін 397 | 3зміш 398 | 3знав 399 | 3знає 400 | 3знай 401 | 3знак 402 | 3знал 403 | 3знан 404 | 3знат 405 | 3знаход 406 | 3знач 407 | 3знаю 408 | 3зниж 409 | 3знім 410 | 3зрів 411 | 3зріл 412 | 3зрін 413 | 3зрозум 414 | 3зрюв 415 | 3і4зотоп 416 | 3і4люстр 417 | 3і4мовір 418 | 3і4ніціат 419 | 3і4нтенс 420 | 3і4нформ 421 | 3і4снув 422 | 3ї4ждж 423 | 3ї4зд 424 | 3ї4ст 425 | 3ї4хав 426 | 3ї4хат 427 | 3й4ма 428 | 3й4менн 429 | 3й4мищ 430 | 3й4міть 431 | 3й4мовірн 432 | 3й4му. 433 | 3й4муть 434 | 3й4ш4л 435 | 3й4шов 436 | 3й6о 437 | 3ллє 438 | 3ллю 439 | 3лля 440 | 3м'4якш 441 | 3м'4ят 442 | 3м4к4не 443 | 3м4к4ні 444 | 3м4к4ну 445 | 3м4нож 446 | 3м4ріть 447 | 3м4щен 448 | 3ння 449 | 3о4б'єдн 450 | 3о4б'єкт 451 | 3о4береж 452 | 3о4бира 453 | 3о4бід 454 | 3о4біц 455 | 3о4борон 456 | 3о4даль 457 | 3о4дяг 458 | 3о4збро 459 | 3о4крем 460 | 3о4перат 461 | 3о4плат 462 | 3о4птим 463 | 3о4пуст 464 | 3о4пуше 465 | 3о4пуще 466 | 3о4рдинац 467 | 3о4ренд 468 | 3о4соб 469 | 3о4сяжн 470 | 3о4холо 471 | 3о4хорон 472 | 3о4хоч 473 | 3о4чисн 474 | 3о4чищ 475 | 3п4ре 476 | 3п4ри 477 | 3п4рі 478 | 3п4ро 479 | 3п4с4ков 480 | 3п4сов 481 | 3п4сон 482 | 3п4сув 483 | 3р4вав 484 | 3р4вати 485 | 3р4віть 486 | 3с4к4лад 487 | 3с4к4ле 488 | 3с4к4лит 489 | 3с4к4ло 490 | 3с4к4рипт 491 | 3с4кид 492 | 3с4кіль 493 | 3с4кіпл 494 | 3с4кок 495 | 3с4коп 496 | 3с4кор 497 | 3с4короч 498 | 3с4коч 499 | 3с4п4лав 500 | 3с4п4лат 501 | 3с4п4лач 502 | 3с4п4рав 503 | 3с4п4ритн 504 | 3с4п4рият 505 | 3с4п4ромо 506 | 3с4пад 507 | 3с4пект 508 | 3с4перм 509 | 3с4пин 510 | 3с4пі 511 | 3с4піть 512 | 3с4піш 513 | 3с4повід 514 | 3с4пожив 515 | 3с4постер 516 | 3с4промож 517 | 3с4т4вор 518 | 3с4т4ражд 519 | 3с4т4рах 520 | 3с4т4риб 521 | 3с4т4риж 522 | 3с4т4рій 523 | 3с4т4ріл 524 | 3с4т4річ 525 | 3с4т4роє 526 | 3с4т4рої 527 | 3с4т4рой 528 | 3с4т4рок 529 | 3с4т4ром 530 | 3с4т4роф 531 | 3с4т4роч 532 | 3с4т4рою 533 | 3с4т4роя 534 | 3с4т4рукт 535 | 3с4т4рукц 536 | 3с4табіл 537 | 3с4тав 538 | 3с4тад 539 | 3с4тає 540 | 3с4таз 541 | 3с4тайн 542 | 3с4тал 543 | 3с4тан 544 | 3с4тар 545 | 3с4тара 546 | 3с4тат 547 | 3с4тач 548 | 3с4теп 549 | 3с4тереж 550 | 3с4теріг 551 | 3с4тиг 552 | 3с4тиж 553 | 3с4тисл 554 | 3с4титу 555 | 3с4тіб 556 | 3с4тій 557 | 3с4тіль 558 | 3с4тір 559 | 3с4товб 560 | 3с4той 561 | 3с4торін 562 | 3с4торон 563 | 3с4тосо 564 | 3с4тосу 565 | 3с4тою 566 | 3с4тоян 567 | 3с4туп 568 | 3с4тяг 569 | 3с4фер 570 | 3с4хил 571 | 3с4хід 572 | 3с4хов 573 | 3т4к4нен 574 | 3т4кан 575 | 3т4ь4мар 576 | 3т4ь4мяні 577 | 3ттю 578 | 3ття 579 | 3у4ваг 580 | 3у4важ 581 | 3у4гав 582 | 3у4згод 583 | 3у4клад 584 | 3у4компл 585 | 3у4крупн 586 | 3у4люблен 587 | 3у4мит 588 | 3у4міл 589 | 3у4п4рав 590 | 3у4перед 591 | 3у4разлив 592 | 3у4рбан 593 | 3у4рочист 594 | 3у4ряд 595 | 3у4рядов 596 | 3у4спіш 597 | 3у4станов 598 | 3у4стпіш 599 | 3у4сувати 600 | 3у4твор 601 | 3у4тробн 602 | 3х4то 603 | 3ш4кідл 604 | 3ш4кіл 605 | 3ш4кір 606 | 3ш4код 607 | 3ш4кол 608 | 3ш4таб 609 | 3ш4туч 610 | 3я4дерн 611 | 3я4зик 612 | 3я4кіс 613 | 3я4рус 614 | 3я4скрав 615 | 4в3антрац 616 | 4д7зем 617 | 6' 618 | 6б6ль. 619 | 6б6с6тв. 620 | 6б6с6тр. 621 | 6б6с6ьк. 622 | 6б6ст. 623 | 6б6ць. 624 | 6бв. 625 | 6бз. 626 | 6бй. 627 | 6бл. 628 | 6бн. 629 | 6бр. 630 | 6бс. 631 | 6в6др. 632 | 6в6дь. 633 | 6в6зь. 634 | 6в6ль. 635 | 6в6с6тв. 636 | 6в6с6ть. 637 | 6в6с6ьк. 638 | 6в6сь. 639 | 6в6ць. 640 | 6вб. 641 | 6вв. 642 | 6вд. 643 | 6вж. 644 | 6вз. 645 | 6вй. 646 | 6вк. 647 | 6вл. 648 | 6вм. 649 | 6вн. 650 | 6вп. 651 | 6вр. 652 | 6вс. 653 | 6вт. 654 | 6вх. 655 | 6вч. 656 | 6вш. 657 | 6вщ. 658 | 6г6ль. 659 | 6г6с6тв. 660 | 6г6сь. 661 | 6гв. 662 | 6гг. 663 | 6гд. 664 | 6гл. 665 | 6гм. 666 | 6гн. 667 | 6гр. 668 | 6гс. 669 | 6гт. 670 | 6д6зь. 671 | 6д6с6тв. 672 | 6д6с6ьк. 673 | 6д6ь6сь. 674 | 6дж. 675 | 6дз. 676 | 6дл. 677 | 6дм. 678 | 6дн. 679 | 6др. 680 | 6дт. 681 | 6дь. 682 | 6ж6дь. 683 | 6ж6сь. 684 | 6жб. 685 | 6жв. 686 | 6з6дв. 687 | 6з6дн. 688 | 6з6дь. 689 | 6з6нь. 690 | 6з6сь. 691 | 6з6ьб. 692 | 6з6ьк. 693 | 6зв. 694 | 6зг. 695 | 6зд. 696 | 6зк. 697 | 6зл. 698 | 6зм. 699 | 6зн. 700 | 6зр. 701 | 6зь. 702 | 6й6кл. 703 | 6й6ль. 704 | 6й6мс. 705 | 6й6нс. 706 | 6й6с6тв. 707 | 6й6с6тр. 708 | 6й6с6ьк. 709 | 6й6ст. 710 | 6й6сь. 711 | 6й6тс. 712 | 6йб. 713 | 6йв. 714 | 6йг. 715 | 6йд. 716 | 6йз. 717 | 6йк. 718 | 6йл. 719 | 6йм. 720 | 6йн. 721 | 6йп. 722 | 6йр. 723 | 6йс. 724 | 6йт. 725 | 6йф. 726 | 6йх. 727 | 6йц. 728 | 6йч. 729 | 6йш. 730 | 6к6ль. 731 | 6к6ст. 732 | 6к6сь. 733 | 6к6тр. 734 | 6кв. 735 | 6кк. 736 | 6кл. 737 | 6кр. 738 | 6кс. 739 | 6кт. 740 | 6кх. 741 | 6кш. 742 | 6л6ль. 743 | 6л6мс. 744 | 6л6хв. 745 | 6л6ь6дс. 746 | 6л6ь6ств. 747 | 6л6ь6сь. 748 | 6л6ь6ськ. 749 | 6л6ь6тр. 750 | 6л6ьб. 751 | 6л6ьв. 752 | 6л6ьг. 753 | 6л6ьд. 754 | 6л6ьз. 755 | 6л6ьк. 756 | 6л6ьм. 757 | 6л6ьн. 758 | 6л6ьп. 759 | 6л6ьс. 760 | 6л6ьт. 761 | 6л6ьф. 762 | 6л6ьх. 763 | 6л6ьц. 764 | 6л6ьч. 765 | 6л6ьш. 766 | 6л6ьщ. 767 | 6лб. 768 | 6лг. 769 | 6лд. 770 | 6лк. 771 | 6лл. 772 | 6лм. 773 | 6лн. 774 | 6лп. 775 | 6лс. 776 | 6лт. 777 | 6ль. 778 | 6м6б6ль. 779 | 6м6бр. 780 | 6м6ль. 781 | 6м6с6тв. 782 | 6м6с6ьк. 783 | 6м6сь. 784 | 6мб. 785 | 6мг. 786 | 6мж. 787 | 6мк. 788 | 6мл. 789 | 6мм. 790 | 6мн. 791 | 6мп. 792 | 6мр. 793 | 6мс. 794 | 6мт. 795 | 6мф. 796 | 6мх. 797 | 6мш. 798 | 6н6г6ль. 799 | 6н6гл. 800 | 6н6гр. 801 | 6н6гс. 802 | 6н6дж. 803 | 6н6дз. 804 | 6н6дп. 805 | 6н6др. 806 | 6н6кс. 807 | 6н6кт. 808 | 6н6с6тв. 809 | 6н6с6тр. 810 | 6н6с6ьк. 811 | 6н6с6ькй. 812 | 6н6ск. 813 | 6н6ст. 814 | 6н6т6ств. 815 | 6н6тк. 816 | 6н6тр. 817 | 6н6ть. 818 | 6н6ць. 819 | 6н6ь6сь. 820 | 6н6ьб. 821 | 6н6ьг. 822 | 6н6ьк. 823 | 6нв. 824 | 6нг. 825 | 6нд. 826 | 6нж. 827 | 6нз. 828 | 6нк. 829 | 6нм. 830 | 6нн. 831 | 6нр. 832 | 6нс. 833 | 6нт. 834 | 6нф. 835 | 6нх. 836 | 6нц. 837 | 6нч. 838 | 6нш. 839 | 6нь. 840 | 6п6с6тв. 841 | 6п6сь. 842 | 6п6тр. 843 | 6пд. 844 | 6пл. 845 | 6пр. 846 | 6пс. 847 | 6пт. 848 | 6пф. 849 | 6пц. 850 | 6р6дв. 851 | 6р6дж. 852 | 6р6дь. 853 | 6р6зн. 854 | 6р6зь. 855 | 6р6кс. 856 | 6р6кт. 857 | 6р6л6ьз. 858 | 6р6ль. 859 | 6р6н6ст. 860 | 6р6нс. 861 | 6р6нь. 862 | 6р6с6тв. 863 | 6р6с6ть. 864 | 6р6с6ьк. 865 | 6р6ср. 866 | 6р6ст. 867 | 6р6сь. 868 | 6р6тв. 869 | 6р6тр. 870 | 6р6ть. 871 | 6р6ць. 872 | 6р6щ6сь. 873 | 6рб. 874 | 6рв. 875 | 6рг. 876 | 6рд. 877 | 6рж. 878 | 6рз. 879 | 6рк. 880 | 6рл. 881 | 6рм. 882 | 6рн. 883 | 6рп. 884 | 6рр. 885 | 6рс. 886 | 6рт. 887 | 6рф. 888 | 6рх. 889 | 6рц. 890 | 6рч. 891 | 6рш. 892 | 6рщ. 893 | 6рь. 894 | 6с6д6рп. 895 | 6с6дп. 896 | 6с6ль. 897 | 6с6т6рь. 898 | 6с6тв. 899 | 6с6тй. 900 | 6с6тм. 901 | 6с6тр. 902 | 6с6ть. 903 | 6с6ць. 904 | 6с6ьб. 905 | 6с6ьк. 906 | 6с6ьм. 907 | 6ск. 908 | 6сл. 909 | 6см. 910 | 6сн. 911 | 6сп. 912 | 6сс. 913 | 6ст. 914 | 6сь. 915 | 6т6вт. 916 | 6т6зт. 917 | 6т6ль. 918 | 6т6мр. 919 | 6т6с6тв. 920 | 6т6с6ьк. 921 | 6т6ь6сь. 922 | 6тв. 923 | 6тл. 924 | 6тм. 925 | 6тр. 926 | 6тс. 927 | 6тт. 928 | 6тц. 929 | 6тч. 930 | 6ть. 931 | 6ф6с6тв. 932 | 6ф6ть. 933 | 6фм. 934 | 6фр. 935 | 6фт. 936 | 6фф. 937 | 6фь. 938 | 6хв. 939 | 6хм. 940 | 6хн. 941 | 6хр. 942 | 6хт. 943 | 6хш. 944 | 6ц6тв. 945 | 6ц6ьк. 946 | 6ць. 947 | 6чб. 948 | 6чм. 949 | 6чн. 950 | 6чт. 951 | 6ш6ль. 952 | 6ш6нл. 953 | 6ш6сь. 954 | 6ш6тв. 955 | 6шв. 956 | 6шм. 957 | 6шн. 958 | 6шт. 959 | 6щ6сь. 960 | 6ь 961 | а1 962 | а2й 963 | а3і4стор 964 | а3у4дар 965 | аа4дрес 966 | абия4к 967 | аві4а 968 | авої4д 969 | ае4тил 970 | ае4фект 971 | ай4с3берг 972 | альбі5он 973 | ана3в4ч 974 | ао4браз 975 | ао4пис 976 | ао4пік 977 | ао4ха 978 | ао4хот 979 | ао4щад 980 | ар4т3афіш 981 | ар4т3взвод 982 | ар4т3десант 983 | ар4т3кафе 984 | ар4т3майс 985 | ар4т3медіа 986 | ар4т3мейс 987 | ар4т3мейст 988 | ар4т3мін 989 | ар4т3о4бстр 990 | ар4т3о4дин 991 | ар4т3о4збр 992 | ар4т3під 993 | ар4т3рин 994 | ар4т3у4стан 995 | ар4т3факт 996 | ар4т3хім 997 | ар4т3центр 998 | ау4год 999 | ау4т3екол 1000 | ауді4о 1001 | ахої4д 1002 | б'4єть 1003 | ба4с3антра 1004 | ба4с3енер 1005 | баге4р3мейст 1006 | бак3а4наліз 1007 | бактері4о 1008 | бале4т3мейст 1009 | бальне4о 1010 | бе4з5і4дей 1011 | бе5кон 1012 | без3а4дрес 1013 | без5і4мен 1014 | беза4варі 1015 | безві4д3 1016 | безе4місі 1017 | безу4гл 1018 | безу4пин 1019 | бей4сбол 1020 | бі4о3 1021 | біблі4о 1022 | бйор4нс 1023 | бло4к3пост 1024 | бо4г3дан 1025 | бо4є3гол 1026 | бо4є3гот 1027 | бо4є3зап 1028 | бо4є3здат 1029 | бо4є3комп 1030 | бо4є3пост 1031 | бо4є3прип 1032 | бо4р4т3і4нж 1033 | бо4р4т3мех 1034 | бо4р4т3о4пер 1035 | бо4р4т3про 1036 | бо4р4т3рад 1037 | бори4с5п 1038 | бран4д 1039 | бран4д3мейст 1040 | брі4дж3порт 1041 | в3м'4я 1042 | в3у4дар 1043 | ва4ль4д3мейст 1044 | ве4ль4т3мейст 1045 | вер4х3н 1046 | ви3й4д 1047 | ви3й4т 1048 | ви3у4ч 1049 | виї4 1050 | вий4м 1051 | вина3й4д 1052 | вина3й4т 1053 | виу4ди 1054 | вия4в 1055 | вия4сн 1056 | ві5д4е4о 1057 | ві5д4ен 1058 | ві5д4ом 1059 | від3в'4я 1060 | від5о4браж 1061 | від5о4браз 1062 | від7зна 1063 | віду4ч 1064 | во4євод 1065 | во4єнач 1066 | во4с5ко 1067 | во4станнє 1068 | водо5з4бір 1069 | водо5с4ток 1070 | воль4т3ампер 1071 | воль4т3метр 1072 | ге2ть3ман 1073 | ге4о 1074 | гелі4о 1075 | ген3а4наліз 1076 | гі4д5ро5мет 1077 | гіпер3а4кт 1078 | гіпер3е4місі 1079 | го4с4п5роз 1080 | го4ф3мейст 1081 | гоме4о 1082 | гос4п3у4год 1083 | граф3о4браз 1084 | гро4с3мейст 1085 | д3у4сім 1086 | д4ж 1087 | д4з 1088 | д4ні3п4р 1089 | д4о3й4м 1090 | двох4а5том 1091 | декре4т3мейст 1092 | дер4ж3без 1093 | дер4ж3резерв 1094 | дер4ж5а4дм 1095 | дер4ж5а4том 1096 | дер4ж5бюдж 1097 | дер4ж5вид 1098 | дер4ж5дум 1099 | дер4ж5замов 1100 | дер4ж5ком 1101 | дер4ж5нафт 1102 | дер4ж5реєс 1103 | дер4ж5служ 1104 | дер4ж5стр 1105 | дея4к 1106 | джен4тль 1107 | ди4с3гарм 1108 | ди4с3квал 1109 | ди4с3комф 1110 | ди4с3конт 1111 | ди4с3кред 1112 | ди4с3крет 1113 | ди4с3крец 1114 | ди4с3крим 1115 | ди4с3кусі 1116 | ди4с3куту 1117 | ди4с3лок 1118 | ди4с3парит 1119 | ди4с3перс 1120 | ди4с3петч 1121 | ди4с3пле 1122 | ди4с3плей 1123 | ди4с3пози 1124 | ди4с3проп 1125 | ди4с3пут 1126 | ди4с3тил 1127 | ди4с3триб 1128 | ди4с3троф 1129 | ди4с3функц 1130 | дисбаланс 1131 | ді3й4д 1132 | ді3й4т 1133 | ді4алог 1134 | ді4єві4д3 1135 | ді4о 1136 | ді4оген 1137 | дій4ма 1138 | до3в'4є 1139 | до3в'4ю 1140 | до3з4віл 1141 | до3з4вол 1142 | до4к3мейст 1143 | до5о4р 1144 | дої4д 1145 | дої4ж 1146 | дої4м 1147 | дої4ст 1148 | дої4х 1149 | дорого5в4каз 1150 | доу4к 1151 | доу4м 1152 | е1 1153 | е2й 1154 | е3в4каз 1155 | е3і4стор 1156 | е3м4рій 1157 | е3о4кисл 1158 | еа4варі 1159 | еа4дрес 1160 | еа4кт 1161 | еви3в4ч 1162 | едо3в4ч 1163 | ее4місі 1164 | ее4стет 1165 | ее4фект 1166 | еі4стот 1167 | ек2с1к 1168 | ек2с1п 1169 | ек2с1т 1170 | ек2с1ц 1171 | ена3в4ч 1172 | енерго3з4береж 1173 | енерго3з4беріг 1174 | ень7о4кисл 1175 | ео4браз 1176 | ео4бур 1177 | ео4голош 1178 | ео4зор 1179 | ео4пал 1180 | ео4пис 1181 | ео4плачув 1182 | ео4сві 1183 | ео4ха 1184 | ео4хот 1185 | ео4цін 1186 | ео4щад 1187 | еті4о 1188 | еу4бог 1189 | еу4год 1190 | еу4стр 1191 | є1 1192 | є2й 1193 | єв4р3атом 1194 | єге4р3мейст 1195 | єпи4с5коп 1196 | єпі4с5коп 1197 | жко4м5а4том 1198 | жона3в4ч 1199 | з'4єдн 1200 | з'я4в 1201 | з3а4кт 1202 | з3а4наліз 1203 | з3в'4я 1204 | з3м'4я 1205 | з3у4дар 1206 | за3в'4є 1207 | за3в'4ю 1208 | за3в'4я 1209 | за3м'4я 1210 | за3у4ч 1211 | за3ю4ш 1212 | за3я4ло 1213 | за4вві4д3 1214 | за4п3част 1215 | за5о4р 1216 | заї4д 1217 | заї4ж 1218 | заї4з 1219 | заї4л 1220 | заї4м 1221 | заї4х 1222 | зай4м 1223 | зай4ня 1224 | зая4в 1225 | здій4ня 1226 | зе4кономити 1227 | зі3в'4є 1228 | зі3в'4ю 1229 | зі3в'4я 1230 | зі3м'4я 1231 | зна3й4д 1232 | зна3й4т 1233 | зо4ка 1234 | зо4ке 1235 | зо4ки 1236 | зо4кі 1237 | зо4ку 1238 | зо6о 1239 | зу4роч 1240 | и1 1241 | и2й 1242 | и3і4стор 1243 | и3о4кисл 1244 | иа4варі 1245 | игої4д 1246 | ие4місі 1247 | ие4стет 1248 | ий4ня 1249 | ий4ти 1250 | і1 1251 | і2й 1252 | і3і4стор 1253 | і4л3е4тил 1254 | і4он 1255 | іа4дрес 1256 | іе4тил 1257 | ій4ти 1258 | інтер3в'4ю 1259 | інфор4м3аген 1260 | іо4ктан 1261 | іона3в4ч 1262 | ї1 1263 | ї2й 1264 | й3е4стет 1265 | й3у4бог 1266 | йо4сві 1267 | ка5нал 1268 | каза4х3стан 1269 | капе4ль3мейст 1270 | квар4т3плат 1271 | кварти4р3мейст 1272 | квої4д 1273 | киї4венер 1274 | кому4ненерг 1275 | кон4тр3арг 1276 | кон4трре 1277 | контр3у4дар 1278 | конце4р4т3мейст 1279 | корої4д 1280 | коу4роч 1281 | кра4н3мейст 1282 | м3а4наліз 1283 | мете4о 1284 | мі4н5е4ко 1285 | мі4н5е4нер 1286 | мі4о 1287 | між3а4варі 1288 | між3а4наліз 1289 | міжу4соб 1290 | мо4к5рий 1291 | мона3в4ч 1292 | на3б4лиз 1293 | на3в'4ю 1294 | на3в'4я 1295 | на3в4ряд 1296 | на3в4ча 1297 | на3в4чен 1298 | на3в4чіть 1299 | на3д4бан 1300 | на3з4в 1301 | на3м'4я 1302 | на3у4ч 1303 | на4д'3 1304 | на4д7з4в 1305 | на4й3а 1306 | на4й3е 1307 | на4й3масл 1308 | на4й3обереж 1309 | на4й3спри 1310 | на4й3у4бог 1311 | на4й3якіс 1312 | на4й7о4бер 1313 | на4й7о4гид 1314 | на4й7о4гол 1315 | на4й7о4гряд 1316 | на4й7о4пук 1317 | на4й7о4хай 1318 | на5п4лив 1319 | над3а4варі 1320 | наді4стор 1321 | наді4стот 1322 | наду4роч 1323 | наї4вс 1324 | наї4вш 1325 | наї4ж 1326 | наї4з 1327 | наї4л 1328 | наї4м 1329 | наї4с 1330 | наї4х 1331 | най3е4фект 1332 | най3і4стор 1333 | най3о4браз 1334 | най3о4станн 1335 | най3я4сн 1336 | най4ма 1337 | най4ня 1338 | найа4кт 1339 | найі4стот 1340 | нао4р 1341 | напів3а4варі 1342 | напоу4м 1343 | ная4в 1344 | не3в4том 1345 | не3д4бан 1346 | не3з4важ 1347 | не3з4вич 1348 | не3у4ч 1349 | не4оклас 1350 | не4окомун 1351 | не4оландш 1352 | не4олібер 1353 | не4оліт 1354 | не4олог 1355 | не4омальт 1356 | не4онац 1357 | не4офіт 1358 | неа4би 1359 | неві4д'3 1360 | неві4д3 1361 | недо3у4ч 1362 | недої4 1363 | неї4ст 1364 | нео4пал 1365 | непо3в'4я 1366 | неу4к 1367 | нею4н 1368 | нея4к 1369 | нея4рок 1370 | нея4сн 1371 | ні4т5рат 1372 | нія4к 1373 | но3м'4я 1374 | но4к3а4ут 1375 | нт3а4наліз 1376 | о1 1377 | о2й 1378 | о3а4наліз 1379 | о3в4каз 1380 | о3і4стор 1381 | о3о4кисл 1382 | о3у4дар 1383 | оа4варі 1384 | оа4дрес 1385 | оа4каці 1386 | оа4кт 1387 | оа4на 1388 | оа4том 1389 | об'3 1390 | об3в'4я 1391 | об3м'4я 1392 | об4л3а4дмін 1393 | об4лдер4ж 1394 | об5у4мов 1395 | обі3в'4є 1396 | обі3д4ран 1397 | обі3й4д 1398 | обі3й4т 1399 | обій4м 1400 | обій4ня 1401 | обой4м 1402 | ови3в4ч 1403 | ові4д3 1404 | од'3 1405 | ое4ко 1406 | ое4місі 1407 | ое4стет 1408 | ое4фект 1409 | оза3в4ч 1410 | оі4зол 1411 | оі4стот 1412 | онаї4д 1413 | оної4д 1414 | оо4б 1415 | оо4біг 1416 | оо4браз 1417 | оо4держ 1418 | оо4динок 1419 | оо4к 1420 | оо4ктан 1421 | оо4пал 1422 | оо4пис 1423 | оо4плачув 1424 | оо4сві 1425 | оо4цін 1426 | оо4чист 1427 | оо4чищ 1428 | ооб'3 1429 | ооб3м 1430 | ооб3ро 1431 | оу4год 1432 | оу4ком 1433 | оу4с 1434 | оу4стр 1435 | оу4сун 1436 | п4о5бере 1437 | па4н3о4тець 1438 | пале4о 1439 | пан3е4стет 1440 | пар3е4стет 1441 | пед3у4чи 1442 | пере3в4том 1443 | пере3й4д 1444 | пере3й4т 1445 | пере3м'4я 1446 | пере3у4ч 1447 | пере4д5см 1448 | пере5о4р 1449 | пере5п4лив 1450 | перег4ній 1451 | перед3а4варі 1452 | перед3і4стор 1453 | перед3о4пла 1454 | перед3о4станн 1455 | перед5о4бід 1456 | перед5у4мов 1457 | переї4д 1458 | переї4ж 1459 | переї4з 1460 | переї4л 1461 | переї4с 1462 | переї4х 1463 | перей4м 1464 | перей4ня 1465 | пі5в4ень 1466 | пі5в4оні 1467 | пі6д5о4р 1468 | пів3і4стор 1469 | пів3о4вал 1470 | пів3у4год 1471 | пів5о4с4тр 1472 | піва4кт 1473 | піво4с 1474 | під3в'4я 1475 | під3у4ч 1476 | під5о4дин 1477 | піді3м'4я 1478 | підій4ня 1479 | пій4м 1480 | по3б4лизу 1481 | по3в'4є 1482 | по3в'4ю 1483 | по3в'4я 1484 | по3в4тор 1485 | по3в4ча 1486 | по3в4чен 1487 | по3в4чіть 1488 | по3д4во 1489 | по3д4раз 1490 | по3д4роб 1491 | по3м'4я 1492 | по4с4т3декр 1493 | по4с4т3контра 1494 | по4с4т3менопауз 1495 | по4с4т3раді 1496 | по4с4т5кому 1497 | по4с4т5радян 1498 | по4с4т5соці 1499 | по4с4тприват 1500 | по4ш4т3мейст 1501 | по5ж4ніть 1502 | по5з4бав 1503 | по5о4р 1504 | позау4роч 1505 | пої4д 1506 | пої4зд 1507 | полі3а4наліз 1508 | полі4о 1509 | полі4т5екон 1510 | полі4ц3мейст 1511 | пор4т3н 1512 | пор4т3рет 1513 | пор4т3фел 1514 | пос4т3кап 1515 | пос4т3ком 1516 | пос4т3нат 1517 | пос4т3проц 1518 | пос4т3соц 1519 | пос4т3фікс 1520 | пост3а4варі 1521 | пост3і4стор 1522 | поу4роч 1523 | поч4не 1524 | поч4ни 1525 | поч4ну 1526 | поя4в 1527 | поя4с 1528 | поя4сн 1529 | пр4о5плат 1530 | пре4й4с 1531 | при3в'4я 1532 | при3й4д 1533 | при3й4т 1534 | при3м'4я 1535 | при4нцип 1536 | приї4 1537 | прий4м 1538 | прио4р 1539 | приу4роч 1540 | про3б4лем 1541 | про3с4тирад 1542 | про4ект3н 1543 | про4м3май 1544 | про4ф3ві4д3 1545 | про4ф3с 1546 | прої4 1547 | прой4м 1548 | проя4сн 1549 | раді4о 1550 | рай3в4но 1551 | ре3а4наліз 1552 | рмої4д 1553 | ро4з'5єдн 1554 | ро4з3гром 1555 | ро4з3лив 1556 | ро4з5вер 1557 | ро4з5гор 1558 | ро4з5д4во 1559 | ро4з5діл 1560 | ро4з5мінний 1561 | ро4з5чеп 1562 | ро5з4йом 1563 | ро5з4о5рам 1564 | ро5з4ора. 1565 | ро5з4орах 1566 | ро5з4ори 1567 | ро5з4орі 1568 | ро5з4оро 1569 | ро5з4ору 1570 | ро5з4орю 1571 | ро5з4оря 1572 | ро5з4ум 1573 | ро6з5о4ри. 1574 | роз'я4р 1575 | роз'я4сн 1576 | роз3у4год 1577 | роз5вант 1578 | роз5вин 1579 | роз5вит 1580 | роз5і4мен 1581 | роз5у4чен 1582 | розо4ра 1583 | розо4ре 1584 | розо4реш 1585 | розо4рн 1586 | руко5с4тиск 1587 | само3у4ч 1588 | сан4к4т3 1589 | сво4єкорис 1590 | сво4єрід 1591 | сво4єчас 1592 | сеї4д 1593 | серцеї4д 1594 | сор4тн 1595 | соці4о 1596 | спе4ц3ві4д3 1597 | спе4ц3кур 1598 | спе4ц3мон 1599 | спе4ц3с 1600 | спе4цпр 1601 | співві4д3 1602 | спор4т3вир 1603 | спор4т3зал 1604 | спор4т3клуб 1605 | спор4т3ком 1606 | спор4т3май 1607 | спор4т4с3ме 1608 | стат5упр 1609 | су3м'4я 1610 | супер3а4варі 1611 | супер3е4фект 1612 | супер3о4браз 1613 | сь4квуг 1614 | те4одоліт 1615 | те4олог 1616 | те4ософ 1617 | те4х3ві4д3 1618 | тор4г3пред 1619 | тран4с3 1620 | тур4к3мен 1621 | у1 1622 | у2й 1623 | у3в'4я 1624 | у3м'4я 1625 | у4к4р 1626 | убої4д 1627 | уі3в'4є 1628 | уі3в'4ю 1629 | укр3а4вт 1630 | укр3а4гр 1631 | укр3е4кс 1632 | укр3і4н4банк 1633 | уя4в 1634 | фізі4о 1635 | фо4р4с4т3мейст 1636 | х3о4кисл 1637 | хво4є3г4риз 1638 | хімі4о 1639 | хо4р3мейст 1640 | ц3а4наліз 1641 | цен4т4р3енерг 1642 | цук3ро 1643 | чорно3б4рив 1644 | шапі4т3мейст 1645 | шта4л3мейст 1646 | ю1 1647 | ю2й 1648 | я1 1649 | я2й 1650 | я3і4стор 1651 | яа4варі 1652 | яе4місі 1653 | ясої4д 1654 | ь6о 1655 | --------------------------------------------------------------------------------