Ecosyste.ms: Awesome

An open API service indexing awesome lists of open source software.

Awesome Lists | Featured Topics | Projects

https://github.com/lotyp/dotfiles

Personal macOS and Linux dotfiles
https://github.com/lotyp/dotfiles

bash chezmoi dotfiles macos osx wayofdev zsh

Last synced: 13 days ago
JSON representation

Personal macOS and Linux dotfiles

Awesome Lists containing this project

README

        








Build Status
Downloads
Software License
Commits since latest release


# Dotfiles

This repository is a part of [ansible-role-dotfiles](https://github.com/wayofdev/ansible-role-dotfiles) and other [wayofdev](https://github.com/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](assets/screenshot.png)

## 🗂 Table of Contents

* [Supported Toolset](#-supported-toolset)
* [Terminal](#-terminal)
* [Shell](#-shell)
* [Shell Plugins](#-shell-plugins)
* [Shell Theme](#-shell-theme)
* [Package Management](#-package-management)
* [System Configs](#-system-configs)
* [Included Aliases and Commands](#-included-aliases-and-commands)
* [Easier Navigation](#-easier-navigation)
* [Directory Browsing](#-directory-browsing)
* [File Management](#-file-management)
* [General Aliases](#-general-aliases)
* [Networking](#-networking)
* [System Administration](#-system-administration)
* [Paths](#-paths)
* [Configuration Paths](#-configuration-paths)
* [IDE's and Editors](#-ides-and-editors)
* [Development](#-development)
* [License](#-license)
* [Author Information](#-author-information)
* [Credits and Resources](#-credits-and-resources)
* [Contributors](#-contributors)


## 🛠️ 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](https://iterm2.com/) for macOS, but I plan to add [Hyper](https://hyper.is/) to support Linux nativley and on WSL.

| Name | Description | Config |
| ----------------------------- | --------------------------- | ------------------ |
| [iTerm2](https://iterm2.com/) | terminal emulator for macOS | `~/.config/iterm/` |

### → Shell

| Name | Description | Config |
| --------------------------------- | ---------------------------------------- | --------------------- |
| [zsh](https://zsh.sourceforge.io) | interactive shell | `~/.zshrc` and others |
| [ohmyzsh](https://ohmyz.sh) | 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](https://github.com/ohmyzsh/ohmyzsh/tree/master/plugins/git) | Provides many [aliases](https://github.com/ohmyzsh/ohmyzsh/tree/master/plugins/git#aliases) and a few useful [functions](https://github.com/ohmyzsh/ohmyzsh/tree/master/plugins/git#functions) |
| [keychain](https://github.com/ohmyzsh/ohmyzsh/tree/master/plugins/keychain) | Starts [`keychain`](https://www.funtoo.org/Keychain) to set up and load whichever credentials you want for both gpg and ssh connections |
| [gpg-agent](https://github.com/ohmyzsh/ohmyzsh/blob/master/plugins/gpg-agent/README.md) | Enables [GPG's gpg-agent](https://www.gnupg.org/documentation/manuals/gnupg/) if it is not running |
| [sudo](https://github.com/ohmyzsh/ohmyzsh/tree/master/plugins/sudo) | Prefix previous commands with `sudo` by pressing `esc` twice |
| [zsh-autosuggestions](https://github.com/zsh-users/zsh-autosuggestions) _[3rd-party]_ | Suggests commands as you type based on history and completions |
| [zsh-syntax-highlighting](https://github.com/zsh-users/zsh-syntax-highlighting) _[3rd-party]_ | Enables highlighting of commands whilst they are typed |

### → Shell Theme

| Name | Description | Config |
| ------------------------------------------------------------ | ---------------- | ------------------ |
| [spaceship](https://github.com/spaceship-prompt/spaceship-prompt) | 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](https://github.com/wayofdev/mac-provisioner)

| Name | Description | Config |
| --------------------------- | ------------------------- | ------------- |
| [Homebrew](https://brew.sh) | package manager for macOS | `~/.Brewfile` |

### → System Configs

| Name | Description | Config |
| ---------------------------------------------- | ----------------------------------------- | --------------------------------- |
| [chezmoi](https://www.chezmoi.io/) | dotfiles manager | `~/.chezmoi.toml` |
| [curl](https://curl.se) | data transfer tool | `~/.curlrc` |
| [git](https://git-scm.com) | version control system | `~/.gitconfig` |
| [nano](https://www.nano-editor.org) | small terminal text editor | `~/.nanorc` |
| [sqlite3](https://www.sqlite.org/cli.html) | sql database engine (client settings) | `~/.sqliterc` |
| [wget](https://www.gnu.org/software/wget/) | data transfer tool | `~/.wgetrc` |
| [screen](https://www.gnu.org/software/screen/) | full-screen window manager | `~/.screenrc` |
| [editorconfig](https://editorconfig.org) | coding styles for IDE's and editors | `~/.editorconfig` |
| [iterm2](https://iterm2.com) | iterm2 shell integration script | `~/.iterm2_shell_integration.zsh` |
| [ctop](https://github.com/bcicen/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](https://github.com/ohmyzsh/ohmyzsh/wiki/Cheatsheet) 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](https://github.com/dylanaraps/neofetch) |
| `top` | Monitors processes and system resources, uses [htop](https://hisham.hm/htop/) |
| `ctop` | htop-like interface for container metrics. [See here](https://github.com/bcicen/ctop) |

### → 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](https://www.chezmoi.io/) `~/.local/share/chezmoi` dotfiles repository |
| `sublconf` | Navigates to [Sublime Text](https://www.sublimetext.com/)'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](https://neovim.io) 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](https://github.com/lotyp/dotfiles/blob/master/dot_gitconfig_aliases) and [functions](https://github.com/lotyp/dotfiles/blob/master/dot_zsh_functions) files.


## 🤝 License

[![Licence](https://img.shields.io/github/license/lotyp/dotfiles?style=for-the-badge&color=blue)](./LICENSE)


## 🙆🏼‍♂️ Author Information

Created in **2022** by [lotyp / wayofdev](https://github.com/wayofdev)


## 🧱 Credits and Resources

**Inspired by:**

* [Why use chezmoi?](https://www.chezmoi.io/why-use-chezmoi/)
* great repository, which shows power of chezmoi [renemarc/dotfiles](https://github.com/renemarc/dotfiles)
* template repository using chezmoi — [chezmoi/dotfiles](https://github.com/chezmoi/dotfiles)


## 🫡 Contributors