{"id":13395527,"url":"https://github.com/denysdovhan/dotfiles","last_synced_at":"2025-04-05T01:09:15.059Z","repository":{"id":26044729,"uuid":"29488008","full_name":"denysdovhan/dotfiles","owner":"denysdovhan","description":"My lovely dots ~/.💖","archived":false,"fork":false,"pushed_at":"2024-06-20T12:44:46.000Z","size":485,"stargazers_count":404,"open_issues_count":2,"forks_count":61,"subscribers_count":4,"default_branch":"master","last_synced_at":"2024-10-13T02:08:17.227Z","etag":null,"topics":["dotfiles","linux","macos","setup","shell","ubuntu","zsh","zsh-custom"],"latest_commit_sha":null,"homepage":"","language":"Shell","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/denysdovhan.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2015-01-19T19:33:03.000Z","updated_at":"2024-10-04T17:53:57.000Z","dependencies_parsed_at":"2024-10-25T18:29:54.817Z","dependency_job_id":"0e42c3f4-fd03-4094-bc7c-d4d2742697dc","html_url":"https://github.com/denysdovhan/dotfiles","commit_stats":null,"previous_names":[],"tags_count":4,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/denysdovhan%2Fdotfiles","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/denysdovhan%2Fdotfiles/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/denysdovhan%2Fdotfiles/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/denysdovhan%2Fdotfiles/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/denysdovhan","download_url":"https://codeload.github.com/denysdovhan/dotfiles/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":247271532,"owners_count":20911587,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["dotfiles","linux","macos","setup","shell","ubuntu","zsh","zsh-custom"],"created_at":"2024-07-30T17:02:04.572Z","updated_at":"2025-04-05T01:09:15.044Z","avatar_url":"https://github.com/denysdovhan.png","language":"Shell","readme":"# Denys Dovhan’s dotfiles\n\n\u003cp align=\"center\"\u003e\n  \u003cimg alt=\"Spaceship with Hyper and One Dark\" src=\"https://user-images.githubusercontent.com/10276208/36086434-5de52ace-0ff2-11e8-8299-c67f9ab4e9bd.gif\" width=\"980px\"\u003e\n\u003c/p\u003e\n\nThere are tons of useful things in here:\n\n- The usefulness of [“Oh My ZSH!”](http://ohmyz.sh/) is already built–in.\n- [🚀⭐️ Spaceships](https://github.com/spaceship-prompt/spaceship-prompt) as a prompt.\n- 🐟 [Fish](https://fishshell.com/)-like autosuggestions.\n- Syntax highlighting of commands while they are typed.\n- Automatically closing and deleting of quotes and brackets when you type them.\n- Browser-like substring search for history.\n- [zgen](https://github.com/tarjoilija/zgen) for dependency management.\n- Useful [aliases](./lib/aliases.zsh).\n- Git config, global `.gitignore` file and aliases.\n- Dotfiles synchronization (`sync.py`) with backup.\n- Restoring old dotfiles (`restore.py`) from backup.\n- A lot of [useful bins](https://github.com/denysdovhan/dotfiles/tree/master/bin).\n- `update` script for updating dotfiles, npm, brew, gems, etc.\n\nMissing feature? 🍴 Fork this repo and make it better!\n\n## Installation\n\nDotfiles are installed by running one of the following commands in your terminal, just copy one of the following commands and execute in the terminal:\n\nTell Git who you are using these commands:\n\n```sh\ngit config -f ~/.gitlocal user.email \"email@yoursite.com\"\ngit config -f ~/.gitlocal user.name \"Name Lastname\"\n```\n\nClone dotfiles repo:\n\n```sh\n# Clone dotfiles repo\ngit clone https://github.com/denysdovhan/dotfiles.git $HOME/.dotfiles\n\n# Go to the dotfiles directory\ncd $HOME/.dotfiles\n\n# Install dotfiles\n./install\n```\n\n## Updating\n\nUse single command to get latest updates:\n\n```\nupdate\n```\n\nThis command will update dotfiles, their dependencies, `brew` or `apt-get` packages, global `npm` dependencies, `gem`s, `apm` plugins.\n\n## Under the hood\n\n\u003e **Note:** You may put your custom settings into `~/.zshlocal`.\n\n### Projects tree\n\nI suggest you to organize project folder as follows:\n\n```\n~/Projects\n├── Forks       # for GitHub fork\n├── Job         # for job projects\n├── Playground  # for short-term experiments\n└── Repos       # for long-term projects\n```\n\n### Aliases\n\nAliases are gonna make your work fast and enjoyable. See code in `$DOTFILES/lib/aliases.zsh`. Here is what's included:\n\n- Aliases from Oh-My-Zsh. See [Oh-My-Zsh Cheatsheet](https://github.com/robbyrussell/oh-my-zsh/wiki/Cheatsheet#commands) for more.\n- Easier navigation\n  - **`..`** → `cd ..`\n  - **`...`** → `cd ../..`\n  - **`....`** → `cd ../../..`\n  - **`.....`** → `cd ../../../..`\n  - **`~`** → `cd ~`\n  - **`-`** → `cd -`\n- Folders shortcuts\n  - **`dl`** → `cd ~/Downloads`\n  - **`dt`** → `cd ~/Desktop`\n  - **`pj`** → `cd ~/Projects`\n  - **`pjr`** → `cd ~/Projects/_Repos`\n  - **`pjf`** → `cd ~/Projects/_Forks`\n  - **`pl`** → `cd ~/Projects/_Playground/`\n- Commands Shortcuts\n  - **`e`** → `$EDITOR`\n  - **`+x`** → `chmod +x`\n  - **`x+`** → `chmod +x`\n  - **`ll`** → `ls -alF`\n  - **`la`** → `ls -A`\n  - **`l`** → `ls -CF`\n- Open\n  - **`open \u003cFILE\u003e`** — open file from terminal.\n  - **`o \u003cFILE\u003e`** — open file from terminal.\n  - **`oo`** — open current folder.\n- Misc\n  - **`update`** — get updates (Runs `$DOTFILES/scripts/update.zsh`).\n  - **`dotfiles`** — jump quickly into dotfiles folder.\n  - **`myip`** — my local IP address.\n  - **`password`** — generate random password, copies it into clipboard and outputs it to terminal.\n  - **`path`** — print $PATH in readable view.\n  - **`getpage`** — download web page with all assets.\n  - **`get`** — download file with original filename.\n\n### Oh-My-Zsh plugins\n\nThese OMZ plugins are included:\n\n- [`git`](https://github.com/robbyrussell/oh-my-zsh/tree/master/plugins/git) — git aliases and functions.\n- [`npm`](https://github.com/robbyrussell/oh-my-zsh/tree/master/plugins/npm) — provides completion as well as adding many useful aliases.\n- [`yarn`](https://github.com/robbyrussell/oh-my-zsh/tree/master/plugins/yarn) — the same as for `npm`, but for `yarn`\n- [`nvm`](https://github.com/robbyrussell/oh-my-zsh/tree/master/plugins/nvm) — auto-sourcing `nvm`.\n- [`sudo`](https://github.com/robbyrussell/oh-my-zsh/tree/master/plugins/sudo) — `[Esc] [Esc]` to re-run previous command with sudo.\n- [`ssh-agent`](https://github.com/robbyrussell/oh-my-zsh/tree/master/plugins/ssh-agent) — automatically starts ssh-agent to set up and load whichever credentials you want for ssh connections.\n- [`gpg-agent`](https://github.com/robbyrussell/oh-my-zsh/tree/master/plugins/gpg-agent) — enables `gpg-agent` if it is not running.\n- More are listed in `.zshrc` (it's hard to keep the list updated).\n\n### Bin\n\nDotfiles also include some functions that will make your life easier. See code in [`bin/`](./bin).\n\n- `emptytrash` — empty the Trash on all mounted volumes and the main HDD.\n- `git-cleanup` — removes old Git branches and does other cleanup.\n- `git-fork` — add remote upsteam.\n- `git-upstream` — sync branch with upstream.\n- `gz` — get gzipped file size\n- `n` — runs given command using binary in `node_modules/.bin` of the current project.\n- `nyan` — print [nyan cat](https://www.youtube.com/watch?v=QH2-TGUlwu4).\n- `server` — start an HTTP server from a directory.\n\n### Git\n\n\u003e **Note:** Add your git user data and custom settings to `~/.gitlocal`.\n\n#### Configuration\n\n- UI color is `auto`.\n- Diff colors are:\n  - `white bold` for meta information;\n  - `cyan bold` for frag;\n  - `red bold` for old lines;\n  - `green bold` for new lines.\n- Default editor is [Vim](http://www.vim.org/) instead of [Vi](http://www.tutorialspoint.com/unix/unix-vi-editor.htm).\n- `push.default` set as `current`.\n- Automatic replacement `git://github.com/`, `gh:`, `github:` addresses as `git@github.com:` for GitHub.\n- Automatic replacement `git://gist.github.com/`, `gst:`, `gist:` addresses as `git@gist.github.com:` for Gists.\n- User custom settings gets from a `~/.gitlocal` file.\n\n#### Git Aliases\n\n- **`git a`** → `git add` — patch mode for specified files.\n- **`git ua`** → `git reset HEAD` — unstage files.\n- **`git b`** → `git branch` — list, create, or delete branches.\n- **`git c`** → `git commit` — record changes to the repository.\n- **`git co`** → `git checkout` — checkout a branch or paths to the working tree.\n- **`git ap`** → `git add -p` — add file contents to the index.\n- **`git ca`** → `git commit -a` — commit with automatically stage files that have been modified and deleted.\n- **`git cm`** → `git commit -m` — commit with commit message.\n- **`git cam`** → `git commit -am` — add all files and commit with message.\n- **`git s`** → `git status -sb` — short status with current branch.\n- **`git master`** — go to `master` branch and pull from remote.\n- **`git develop`** — go to `develop` branch and pull from remote.\n- **`git git`** — do not complain about `git git`.\n- **`git l`** — commits log with pretty single line format.\n- **`git ll`** — log with list of changed files for each commit.\n- **`git ignore`** — ignore files: append file to `.gitignore`.\n- **`git this`** — initialize, add all files and commit.\n- **`git amend`** — amend last commit.\n- **`git redo`** — amend last commit with its original message.\n- **`git undo`** → `reset --mixed HEAD^` — reset index changes, but not the working tree.\n- **`git discard`** → `checkout --` — discard changes.\n- **`git contrib`** — list of contributors and how many commits each person has.\n- **`git today`** — see how many lines of code you have written today.\n- **`git stat`** — how many lines of code in repo.\n- **`git sync`** — pull and push changes from/to remote.\n- **`git-root`** — go to repo root.\n- **`git-cleanup [--force]`** — removes old Git branches.\n- **`git-fork \u003coriginal-author\u003e`** — add remote upstream.\n- **`git-upstream [branch]`** — sync branch with upstream (as default `master`).\n\n## Resources\n\nResources that I used to make these dotfiles better:\n\n- [GitHub ❤ ~/](http://dotfiles.github.com/)\n- [Artem Sapegin’s dotfiles](https://github.com/sapegin/dotfiles)\n- [Mathias’s dotfiles](https://github.com/mathiasbynens/dotfiles)\n\n## License\n\nMIT © [Denys Dovhan](https://denysdovhan.com)\n","funding_links":[],"categories":["Shell"],"sub_categories":[],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fdenysdovhan%2Fdotfiles","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fdenysdovhan%2Fdotfiles","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fdenysdovhan%2Fdotfiles/lists"}