feat: Added README and LICENSE
3a9d0e13
2 file(s) · +166 −0
| 1 | + | MIT License |
|
| 2 | + | ||
| 3 | + | Copyright (c) 2025 Steve Simkins |
|
| 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. |
| 1 | + | # DARKMATTER |
|
| 2 | + | ||
| 3 | + |  |
|
| 4 | + | ||
| 5 | + | An opinionated terminal setup using [Ghostty](https://ghostty.org), zsh, [Starship](https://starship.rs), and [AIChat](https://github.com/sigoden/aichat) |
|
| 6 | + | ||
| 7 | + | ## Why DARKMATTER? |
|
| 8 | + | ||
| 9 | + | To me, the terminal has always been a sacred place. Any developer who has accomplished something in their terminal probably feels the same way. However that experience can be hampered by how it's configured. It can take a fair bit of research and time to build a setup you really enjoy, so understandably there are more developers these days turning to closed sourced VC backed solutions. DARKMATTER is my attempt to break that dependency for those who wish to take it. |
|
| 10 | + | ||
| 11 | + | DARKMATTER is an opinionated setup of Ghostty and zsh, providing sensible defaults and maximum compatability for what developers need day to day. It also features some of my favorite terminal tools that help make your experience that much sweeter. I hope you can take this kit as a starting place and continue to modify and tweak it to your liking! |
|
| 12 | + | ||
| 13 | + | At the moment this setup and installation flow is designed for MacOS and [Homebrew](https://brew.sh), but by all means feel free to help support the project by creating scripts for Linux or Windows! |
|
| 14 | + | ||
| 15 | + | ## Installation |
|
| 16 | + | ||
| 17 | + | > [!NOTE] |
|
| 18 | + | > [Homebrew](https://brew.sh) is required to setup DARKMATTER |
|
| 19 | + | ||
| 20 | + | There are two ways you can get DARKMATTER running on your computer |
|
| 21 | + | ||
| 22 | + | ### Install Script |
|
| 23 | + | ||
| 24 | + | This will by far be the easiest method and the one I recommend; just copy and paste. |
|
| 25 | + | ||
| 26 | + | ```bash |
|
| 27 | + | curl -sSL https://darkmatter.build/install.sh | bash |
|
| 28 | + | ``` |
|
| 29 | + | ||
| 30 | + | [Install script source code](/install.sh) |
|
| 31 | + | ||
| 32 | + | <details> |
|
| 33 | + | <summary>###Manual Setup</summary> |
|
| 34 | + | ||
| 35 | + | You can also create the DARKMATTER setup manually by following these steps. |
|
| 36 | + | ||
| 37 | + | **1. Install Packages** |
|
| 38 | + | ||
| 39 | + | Run the following commands to install packages for DARKMATTER |
|
| 40 | + | ||
| 41 | + | ```bash |
|
| 42 | + | brew install zsh zsh-autosuggestions zsh-syntax-highlighting starship eza zoxide aichat btop |
|
| 43 | + | ||
| 44 | + | brew install --cask ghostty |
|
| 45 | + | ``` |
|
| 46 | + | ||
| 47 | + | **2. Setup zsh** |
|
| 48 | + | ||
| 49 | + | Create a file in your home directory called `.zshrc` with the following contents |
|
| 50 | + | ||
| 51 | + | ```bash |
|
| 52 | + | # history setup |
|
| 53 | + | HISTFILE=$HOME/.zhistory |
|
| 54 | + | SAVEHIST=1000 |
|
| 55 | + | HISTSIZE=999 |
|
| 56 | + | setopt share_history |
|
| 57 | + | setopt hist_expire_dups_first |
|
| 58 | + | setopt hist_ignore_dups |
|
| 59 | + | setopt hist_verify |
|
| 60 | + | ||
| 61 | + | # completion using arrow keys (based on history) |
|
| 62 | + | bindkey '^[[A' history-search-backward |
|
| 63 | + | bindkey '^[[B' history-search-forward |
|
| 64 | + | ||
| 65 | + | # completion using vim keys |
|
| 66 | + | bindkey '^k' history-search-backward |
|
| 67 | + | bindkey '^j' history-search-forward |
|
| 68 | + | ||
| 69 | + | # Source zsh plugins |
|
| 70 | + | source $(brew --prefix)/share/zsh-autosuggestions/zsh-autosuggestions.zsh |
|
| 71 | + | source $(brew --prefix)/share/zsh-syntax-highlighting/zsh-syntax-highlighting.zsh |
|
| 72 | + | ||
| 73 | + | # Alias / keyboard shortcuts |
|
| 74 | + | alias cd="z" |
|
| 75 | + | alias ls="eza --icons=always" |
|
| 76 | + | alias ai="aichat" |
|
| 77 | + | ||
| 78 | + | # Exports |
|
| 79 | + | export BAT_THEME="ansi" |
|
| 80 | + | ||
| 81 | + | # Setup zoxide and starship |
|
| 82 | + | eval "$(zoxide init zsh)" |
|
| 83 | + | eval "$(starship init zsh)" |
|
| 84 | + | ``` |
|
| 85 | + | ||
| 86 | + | **3. Setup Ghostty** |
|
| 87 | + | ||
| 88 | + | If it's not already there, create a text file at `~/.config/ghostty/config` with the following contents |
|
| 89 | + | ||
| 90 | + | ``` |
|
| 91 | + | font-family = CommitMono Nerd Font |
|
| 92 | + | font-family-bold = CommitMono Nerd Font |
|
| 93 | + | font-family-italic = CommitMono Nerd Font |
|
| 94 | + | font-family-bold-italic = CommitMono Nerd Font |
|
| 95 | + | font-size = 14 |
|
| 96 | + | ||
| 97 | + | confirm-close-surface = false |
|
| 98 | + | clipboard-read = allow |
|
| 99 | + | clipboard-write = allow |
|
| 100 | + | mouse-hide-while-typing = true |
|
| 101 | + | window-padding-x = 6 |
|
| 102 | + | window-padding-balance = true |
|
| 103 | + | window-save-state = always |
|
| 104 | + | window-width = 85 |
|
| 105 | + | window-height = 30 |
|
| 106 | + | ||
| 107 | + | background = #121113 |
|
| 108 | + | foreground = #ffffff |
|
| 109 | + | ||
| 110 | + | selection-background = #222222 |
|
| 111 | + | selection-foreground = #000000 |
|
| 112 | + | ||
| 113 | + | palette = 0=#121113 |
|
| 114 | + | palette = 1=#5f8787 |
|
| 115 | + | palette = 2=#fbcb97 |
|
| 116 | + | palette = 3=#e78a53 |
|
| 117 | + | palette = 4=#888888 |
|
| 118 | + | palette = 5=#999999 |
|
| 119 | + | palette = 6=#aaaaaa |
|
| 120 | + | palette = 7=#c1c1c1 |
|
| 121 | + | palette = 8=#333333 |
|
| 122 | + | palette = 9=#5f8787 |
|
| 123 | + | palette = 10=#fbcb97 |
|
| 124 | + | palette = 11=#e78a53 |
|
| 125 | + | palette = 12=#888888 |
|
| 126 | + | palette = 13=#999999 |
|
| 127 | + | palette = 14=#aaaaaa |
|
| 128 | + | palette = 15=#c1c1c1 |
|
| 129 | + | ||
| 130 | + | auto-update-channel = stable |
|
| 131 | + | click-repeat-interval = 500 |
|
| 132 | + | ``` |
|
| 133 | + | ||
| 134 | + | ||
| 135 | + | **4. Install CommitMono** |
|
| 136 | + | ||
| 137 | + | DARKMATTER uses a open sourced font called [CommitMono](https://commitmono.com) and in this repo you can download special Nerd Font patched versions of it, which include nice icons used by several of the programs already installed. Check them out in the `assets` folder in this repo. |
|
| 138 | + | ||
| 139 | + | **5. Open Ghostty!** |
|
| 140 | + | ||
| 141 | + | After following these steps you should be able to open Ghostty and you will have the DARKMATTER setup |
|
| 142 | + | ||
| 143 | + | </details> |
|
| 144 | + | ||
| 145 | + | ## Usage |