Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

install in one command #27

Open
wants to merge 2 commits into
base: master
Choose a base branch
from
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
10 changes: 6 additions & 4 deletions .gitignore
Original file line number Diff line number Diff line change
@@ -1,5 +1,7 @@
.DS_Store
tmux/plugins/
op
github-copilot
raycast
fzf
history.txt
.DS_Store

zed/conversations
zed/prompts
4 changes: 1 addition & 3 deletions .stowrc
Original file line number Diff line number Diff line change
@@ -1,4 +1,2 @@
--target=~/.config
--ignore=.stowrc
--ignore=DS_Store
--ignore=atuin/*

121 changes: 121 additions & 0 deletions Brewfile
Original file line number Diff line number Diff line change
@@ -0,0 +1,121 @@
tap "homebrew/bundle"
tap "homebrew/services"
tap "nikitabobko/tap"
tap "oven-sh/bun"
brew "aom"
brew "aribb24"
brew "atuin"
brew "bash"
brew "bat"
brew "boost"
brew "c-ares"
brew "cairo"
brew "cjson"
brew "coreutils"
brew "curl"
brew "dav1d"
brew "double-conversion"
brew "edencommon"
brew "eza"
brew "fastfetch"
brew "fd"
brew "ffmpeg"
brew "ffmpegthumbnailer"
brew "fzf"
brew "gcc"
brew "ghostscript"
brew "git"
brew "gnupg"
brew "gpgme"
brew "helix"
brew "imagemagick"
brew "jq"
brew "lazydocker"
brew "lazygit"
brew "[email protected]"
brew "liblinear"
brew "libuv"
brew "libvterm"
brew "llvm"
brew "lpeg"
brew "lua"
brew "luajit"
brew "luv"
brew "msgpack"
brew "ncurses"
brew "neovim"
brew "nmap"
brew "node"
brew "nspr"
brew "nss"
brew "ollama"
brew "onefetch"
brew "pipx"
brew "pkgconf"
brew "poppler"
brew "[email protected]"
brew "ripgrep"
brew "rust"
brew "sniffnet"
brew "starship"
brew "stow"
brew "superfile"
brew "thefuck"
brew "tmux"
brew "watchman"
brew "wget"
brew "yazi"
brew "zoxide"
brew "zsh-autosuggestions"
brew "zsh-syntax-highlighting"
brew "oven-sh/bun/bun"
cask "1password"
cask "1password-cli"
cask "aerospace"
cask "alt-tab"
cask "android-platform-tools"
cask "appflowy"
cask "arc"
cask "ayugram"
cask "brave-browser"
cask "c0re100-qbittorrent"
cask "chatbox"
cask "chatgpt"
cask "floorp"
cask "flutter"
cask "font-hack-nerd-font"
cask "font-jetbrains-mono-nerd-font"
cask "font-meslo-lg-nerd-font"
cask "font-symbols-only-nerd-font"
cask "ghostty"
cask "iina"
cask "karabiner-elements"
cask "motrix"
cask "netnewswire"
cask "obsidian"
cask "onyx"
cask "pearcleaner"
cask "protonvpn"
cask "raycast"
cask "skype"
cask "slack"
cask "spotify"
cask "stremio"
cask "upscayl"
cask "visual-studio-code"
cask "zalo"
cask "zed"
cask "zulu"
vscode "catppuccin.catppuccin-vsc"
vscode "eamodio.gitlens"
vscode "esbenp.prettier-vscode"
vscode "formulahendry.code-runner"
vscode "github.copilot"
vscode "github.copilot-chat"
vscode "ms-vscode.cmake-tools"
vscode "ms-vscode.cpptools"
vscode "ms-vscode.cpptools-extension-pack"
vscode "ms-vscode.cpptools-themes"
vscode "pkief.material-icon-theme"
vscode "twxs.cmake"
vscode "vscodevim.vim"
84 changes: 81 additions & 3 deletions README.md
Original file line number Diff line number Diff line change
@@ -1,6 +1,84 @@
# Dotfiles symlinked on my machine
# Dotfiles

![Build Status](https://img.shields.io/badge/build-passing-brightgreen)
![License](https://img.shields.io/badge/license-MIT-blue)
![Homebrew](https://img.shields.io/badge/Homebrew-installed-brightgreen)

Welcome to my personal dotfiles repository! This repository contains my configuration files (dotfiles) to set up and customize my development environment.

## Features

- Organized and easy-to-use configuration files.
- Seamless setup for various tools and applications.
- Custom scripts and tweaks for an optimized workflow.

## 📂 Contents

This repository includes configurations for:

- **Aerospace** 🚀 – My favourite i3-like tiling window manager for macOS.
- **Zsh** 🐚 – Custom `.zshrc` file for the Zsh shell.
- **Neovim** 📝 – Configuration files for the Neovim editor.
- **Tmux** 🖥️ – Settings for the Tmux terminal multiplexer.
- **Starship** 🌟 – Configuration for the Starship prompt.
- **Lazygit** 🗂️ – Settings for the Lazygit interface.
- **Helix** 🧠 – Configuration for the Helix editor.
- **Atuin** 🐢 – Settings for the Atuin shell history manager.
- **Fastfetch** ⚡ – Configuration for the Fastfetch system information tool.
- **Spicetify** 🎶 – Customizations for the Spicetify Spotify client.
- **Raycast** 🎯 – Settings for the Raycast launcher.
- **qBittorrent** 📥 – Configuration for the qBittorrent client.
- **Flutter** 🦋 – Configuration for Flutter development.
- **GitHub Copilot** 🤖 – Settings for GitHub Copilot.
- **The Fuck** 💥 – Configuration for The Fuck command-line tool.
- **Yazi** 📂 – Settings for the Yazi file manager.
- **Zed** 🧑‍💻 – Configuration for the Zed code editor.
- **Bat** 🦇 – Settings for the Bat command-line tool.
- **Ghostty** 👻 – Configuration for the Ghostty terminal.
- **Containers** 🛢️ – Settings for containerized environments.
- **Karabiner Elements** ⌨️ – Settings for many useful keyboard modifications like capslock as esc and control at the same time...

## 🚀 Installation

Install everything with a single command:

### Install with stow:
```bash
stow .
bash <(curl -fsSL https://raw.githubusercontent.com/omerxx/dotfiles/master/install.sh)
```

Push only:

```bash
bash <(curl -fsSL https://raw.githubusercontent.com/omerxx/dotfiles/master/push.sh)
```

Install my homebrew casks and fomulaes (Optional):

```bash
cd ~/dotfiles
brew bundle --file=Brewfile
```

### Breakdown of the `install.sh`

1. Clone the dotfiles repository.
2. Sync the configuration files to `~/.config/` using `stow`.
3. Create a symbolic link for `.zshrc`.

### ⚠️Only remove the ~/dotfiles/ if you already move all config from ~/dotfiles/ to ~/.config/

```bash
# rm -rf ~/dotfiles
```

## 🎨 Customization

You can modify these dotfiles to suit your workflow. Each configuration file is documented with comments to help you understand and tweak settings.

## 🤝 Contributing

If you have suggestions or improvements, feel free to open a pull request or create an issue.

## 📜 License

This repository is licensed under the [MIT License](LICENSE).
16 changes: 16 additions & 0 deletions install.sh
Original file line number Diff line number Diff line change
@@ -0,0 +1,16 @@
#!/bin/bash

# Go to home directory
cd ~
git clone https://github.com/omerxx/dotfiles
# Remove existing ~/.config and recreate it
rm -f ~/.zshrc
rm -rf ~/.config
mkdir -p ~/.config

# Link config
cd dotfiles
stow -v .
stow -v zshrc -t ~
# rm -rf .gitignore .stow-local-ignore .stowrc README.md archive.tar.gz .git
echo "✅ Installation complete! All files from ~/dotfiles are now symlinked to ~/.config/"
12 changes: 12 additions & 0 deletions nix-darwin/.stow-local-ignore
Original file line number Diff line number Diff line change
@@ -0,0 +1,12 @@
.stowrc
.DS_Store
Brewfile
.git
.gitignore
README.md
install.sh
zshrc
archive.tar.gz
push.sh
private.sh
op
11 changes: 11 additions & 0 deletions push.sh
Original file line number Diff line number Diff line change
@@ -0,0 +1,11 @@
#!/bin/bash
cd ~/dotfiles
brew bundle dump --file=~/dotfiles/Brewfile --force
tar -cf - github-copilot raycast | openssl enc -aes-256-cbc -pbkdf2 -e -out archive.tar.gz
cd zed
tar -cf - conversations prompts | openssl enc -aes-256-cbc -pbkdf2 -e -out archive.tar.gz
cd ~/dotfiles
git add .
git commit -m "My dotfiles synced from remote machines"
git push origin main
echo "✅ Complete!"
2 changes: 0 additions & 2 deletions setup.sh

This file was deleted.