/dotfiles

Personal macOS and Linux dotfiles

Primary LanguageShellMIT LicenseMIT




Build Status Downloads Software License Commits since latest release

Dotfiles

This repository is a part of ansible-role-dotfiles and other wayofdev ansible project dependency, but it can also be installed as a stand-alone project using Makefile and make command.

If you like/use this role, please consider starring it. Thanks!

Screenshot

🗂 Table of Contents


🛠️ Supported Toolset

Use either one or many of these, the config files will be in place and ready to provide a familiar interface.

→ Terminal

Currently only supported is iTerm2 for macOS, but I plan to add Hyper to support Linux nativley and on WSL.

Name Description Config
iTerm2 terminal emulator for macOS ~/.config/iterm/

→ Shell

Name Description Config
zsh interactive shell ~/.zshrc and others
ohmyzsh framework for managing zsh configuration ~/.oh-my-zsh/

→ Shell Plugins

List of enabled built-in and third-party omz plugins by default. Plu

Plugin Description
git Provides many aliases and a few useful functions
keychain Starts keychain to set up and load whichever credentials you want for both gpg and ssh connections
gpg-agent Enables GPG's gpg-agent if it is not running
sudo Prefix previous commands with sudo by pressing esc twice
zsh-autosuggestions [3rd-party] Suggests commands as you type based on history and completions
zsh-syntax-highlighting [3rd-party] Enables highlighting of commands whilst they are typed

→ Shell Theme

Name Description Config
spaceship zsh prompt theme ~/.zsh_spaceship

→ Package Management

Only minimal list of apps are defined in ~/.Brewfile.

For full macOS installation and configuration refer to ansible playbook — mac provisioner

Name Description Config
Homebrew package manager for macOS ~/.Brewfile

→ System Configs

Name Description Config
chezmoi dotfiles manager ~/.chezmoi.toml
curl data transfer tool ~/.curlrc
git version control system ~/.gitconfig
nano small terminal text editor ~/.nanorc
sqlite3 sql database engine (client settings) ~/.sqliterc
wget data transfer tool ~/.wgetrc
screen full-screen window manager ~/.screenrc
editorconfig coding styles for IDE's and editors ~/.editorconfig
iterm2 iterm2 shell integration script ~/.iterm2_shell_integration.zsh
ctop htop-like interface for container metrics ~/.ctop

💻 Included Aliases and Commands

These are unified CLI commands available amongst different shells on all platforms. While some of their outputs may differ in style between different environments, their usage and behaviours remain universal.

Additional aliases are provided by Oh-My-Zsh and are listed by using the command alias.

→ Easier Navigation

Command Description
~ Navigates to user home directory
.. Navigates up a directory
... Navigates up three directories
.... Navigates up four directories

→ Directory Browsing

Command Description
l Show long list with hidden files with human readable sizes
ll Lists log list of files, including hidden, with human-readable sizes. Appends / to end of directories.
la Lists log list of files, including hidden, excluding . and .. directories, with human-readable sizes. Appends / to end of directories.
lsd Lists directories only, in long format
lsh Lists hidden files in long format

→ File Management

Command Description
cpv Copies a file securely using rsync
fd Finds directories
ff Finds files in current dir, shortcut to find . -type f -name [expression]

→ General Aliases

Command Description
alias Lists registered aliases
c Clears the console screen
path Pretty prints registered system $PATH variables
cm Short command to chezmoi
h, hs Shows or searches in shell (session) history
j Shows list of the jobs that are running in the background and in the foreground
reload Reloads the shell
re. Reloads the shell configuration

→ Networking

Command Description
flushdns Flushes the DNS cache
ips Gets all IP addresses
localip Gets local IP address
publicip Gets external IP address
GET
HEAD
POST
PUT
DELETE
TRACE
OPTIONS
Sends HTTP requests using lwp-request:
_Usage: GET https://example.com
fping Pings hostname(s) 30 times in quick succession

→ System Administration

Command Description
mnt Lists drive mounts
sysinfo Shows system info using neofetch
top Monitors processes and system resources, uses htop
ctop htop-like interface for container metrics. See here

→ Power Management

Command Description
lock Locks the session
hibernate Hibernates the system
poweroff Shuts down the system
reboot Restarts the system

→ Paths

Command Description
dls Navigates to ~/Downloads
docs Navigates to ~/Documents
dt Navigates to ~/Desktop
prj Navigates to ~/Projects – default developer's projects directory. [custom path]

→ Configuration Paths

Command Description
cm cd Navigates to Chezmoi ~/.local/share/chezmoi dotfiles repository
sublconf Navigates to Sublime Text's local configuration repo.

→ IDE's and Editors

Command Description
subl
s
Opens in Sublime Text, example s ./project
p Opens PhpStorm
pc Pycharm
_Usage: pc ~/Projects/wayofdev/py_project
gol Goland
wbs Webstorm
vim Opens neovim instead of vim, if exists in system

→ Development

Command Description
d Shortcut to docker
dc Shortcut to docker-compose
ds Shortcut to docker-sync
g Shortcut to git. Full List of git aliases is listed here
gitp Shortcut to git push --follow-tags origin master

For full list of available commands check aliases and functions files.


🤝 License

Licence


🙆🏼‍♂️ Author Information

Created in 2022 by lotyp / wayofdev


🧱 Credits and Resources

Inspired by:


🫡 Contributors