Ahmed’s dotfiles
⚠️ Disclaimer! ⚠️
Please DO NOT blindly copy or run the
installer
snippet if you do not fully understand what it does!. I use this place as a backup :)Feel free to take whatever you want, though.
Running kitty with custom Spaceship-zsh theme.
The font is JetBrains Mono
![]() |
![]() |
![]() |
---|
This is where I keep all my dotfiles and configs, and as well as all the tools I commonly use. Every time I set up a new OS X machine I can execute a single command to bootstrap
a new system and pull down all of my dotfiles and configs.
A lot of stuff and you can check them out in the file browser above. Main components are:
Homebrew
: Used for managing and installing macOS dependencies and Cask
for managing and installing GUI apps like Chrome, Firefox, VSCode,...etc.Tmux
: Used for pane and window management, copy-mode for navigating output, and session management make it a no-brainer for those who live in the terminal (and especially vim)
Neovim
: A drop-in replacement for Vim with my own customizations applied. ZSH
: Shell with various customization`:
🚀Spaceships ZSH
as a prompt.🌺ZPLUG
for dependency management.ZSH completions
.VIM
bindings for VIM nerds.aliases
.Git config
, global .gitignore
file and aliases.Hammerspoon
: a MacOS automation solution using Lua to solve interesting problems in an easy wayNewsboat
: an RSS feed reader for the text terminals.Files
: directory where all extra configs live that will be symlink into your $HOME
.Extras/bin
: Anything in bin will get added to your $PATH
and be made available everywhere.Missing feature? 🍴 Fork this repo and make it better ❤️
To set up the my dotfiles
, run the appropriate snippet in the terminal:
Downloader | Snippet |
---|---|
curl |
bash -c "$(curl -fsSL https://raw.githubusercontent.com/AhmedAbdulrahman/dotfiles/master/installer.sh)" |
wget |
bash -c "$(wget https://raw.githubusercontent.com/AhmedAbdulrahman/dotfiles/master/installer.sh -O -)" |
git |
git clone [email protected]:AhmedAbdulrahman/dotfiles.git ~/dotfiles && source ~/dotfiles/installer.sh |
By default it Installs Personal
prefered stuff, for Work
related stuff you need to pass work
as an argument to the snippet
:
bash -c "$(curl -fsSL https://raw.githubusercontent.com/AhmedAbdulrahman/dotfiles/master/installer.sh)" work
That's it! 🎉. When installer
is run, you are prompted to choose one option from the list as seen below:
What you want to do?
1) All 6) Install macOS Apps
2) Install package manager 7) Override macOS System Settings
3) Install Git and Setup SSH 8) Change shell
4) Clone Ahmeds dotfiles 9) Install XCode tools
5) Symlink files 10) Quit
Enter your choice (must be a number): # Choose a number
The installer attempts to only select relevant script based on your choice. Say you choose 1
for All
, then the process does a few things:
Homebrew
our main macOS dependency manager.ZSH
shell and set it as primary shell for your terminal.dotfiles
repo on your computer (by default it will suggest ~/dotfiles
).zsh
, vim
, tmux
, files
, newsboat
, extras/bin
files.macOS
, Nodejs
including global packages, and Python
packages.macOS
preferences.vim plugins
as Git Submodules
, and zsh plugins
.My dotfiles
config can be easily extended to suit additional local
requirements by using *.local
files which will be created using installer
script
~/.zshrc.local
You can add or overwrite any existing aliases, settings, PATH
, ... etc for zsh
using ~/.zshrc.local
file located in your $HOME
dir, and it will be automatically sourced after all the other zsh
. Then you can add your own configs ;)
#!/usr/bin/env zsh
# Example: Set local aliases.
alias vim="nvim"
# Set PATH additions.
PATH="$PATH:$HOME/projects/dotfiles/src/bin" # Here we are adding bin directory to PATH
export PATH # Then export it
~/.gitconfig.local
and ~/.vimrc.local
Same goes for git
and vim
. You can add or overwrite your custom config to ~/.gitconfig.local
file including your sensitive information such as your git credentials
and this file will be automatically included after the configurations from ~/.gitconfig
.
[user]
name = Ahmed Abdulrahman
email = [email protected]
signingkey = XXXXXXXX
This repo is inspired and influenced by
dotfiles
dotfiles
dotfiles
dotfiles
dotfiles
dotfiles
dotfiles
dotfiles
Copyright © 2020 Ahmed Abdulrahman
Licensed under the MIT license
.