Personal development environment configuration for Linux/Codespaces and macOS.
- Shell Configuration:
.shell_common: Shared aliases, functions, and environment variables sourced by both shells..bashrc(Linux/Codespaces): Bash-specific history, completions, and prompt..zshrc(macOS): Zsh-specific history, options, and prompt.
- Editor Configuration (
.editorconfig): Enforces consistent coding styles for various file types. - Git Configuration (
.gitattributes,.gitconfig,.gitignore_global,.gitmessage): Standardized settings, improved workflows, and commit message templates. - Curl Configuration (
.curlrc): Enhancedcurlsettings for security, performance, and usability. - Wget Configuration (
.wgetrc): Enhancedwgetsettings for reliability, security, and convenience. - Scripts:
install.sh: A setup script for linking dotfiles and preparing the environment.
This project is released under the MIT License.
Codespaces users: If you've already set this repo as your "dotfiles" in your GitHub Codespaces settings, no further setup is required—your Codespaces environment will automatically apply these configurations.
-
Clone the repository into your Codespaces or local machine:
git clone https://github.com/Jekwwer/dotfiles.git ~/.dotfiles -
Run the
install.shscript:~/.dotfiles/install.sh -
Restart your terminal or apply the changes:
macOS:
source ~/.zshrc
Linux/Codespaces:
source ~/.bashrc
Bash shell config for Linux/Codespaces. Sources .shell_common for shared settings.
- Interactive-only guard, lesspipe integration, and bash-completion setup
- History: 5 000 in memory / 10 000 on disk, dedup, ignores trivial commands, append-only
- Shell options:
globstar,dirspell,cdspell - Prompt:
user@host dir (branch)$in color
Shared config sourced by both .bashrc and .zshrc. See CHEATSHEET.md for the full alias and function
reference.
- Environment:
EDITOR/VISUAL=vim,PAGER=less, UTF-8 locale,~/binand~/.local/binonPATH - Navigation aliases:
..,...,.... - File aliases:
ll,la,l; saferm/mv/cp(with-i) - Git aliases:
gst,gci,gca,gfi,gco,gf,gpl,gps,gpf,gl - Functions:
hgrep <text>(history search),reload(re-source config) - OS-specific:
CLICOLOR/LSCOLORS+brewupdate alias on macOS;ls --color=auto+aptupdate alias on Linux git_branchhelper used by both prompts
Zsh shell config for macOS. Sources .shell_common for shared settings.
- Completion:
compinit - History: 5 000 in memory / 10 000 on disk, dedup, ignores trivial commands, incremental write
- Shell options:
GLOB_STAR_SHORT,CORRECT,CORRECT_ALL - Prompt:
user@host dir (branch)$in color usingPROMPT_SUBST
- Progress bar, follows redirects, retries up to 3× on any error
- Timeouts: 15 s connect, 120 s max (override with
--max-time 0for large downloads) - Enforces 2048-bit keys and SHA-256+ ciphers (
DEFAULT:@SECLEVEL=2) --fail-with-body: exits non-zero on 4xx/5xx but still prints the response
- Retries up to 3×; timeouts: 15 s connect, 20 s read, 10 s DNS
- Resumes partial downloads (
continue = on) - Uses system CA certificates (
/etc/ssl/certs)
Fallback coding-style rules when a project has no .editorconfig of its own.
- Defaults: UTF-8, LF endings, 2-space indent, trim trailing whitespace, final newline, 88-char line limit
- Markdown: 120-char limit, preserve trailing whitespace (for line breaks)
- JSON: no line length limit
- Shell scripts: 4-space indent
- Text/log files: preserve trailing whitespace
- Normalizes line endings (
* text=auto); enforces LF on checkout for source files - Marks images, fonts, PDFs, and archives as binary
- Custom diff drivers for JSON and XML
- Skips diffing
.logfiles - Excludes temp files, editor dirs, and
node_modules/fromgit archive - Excludes minified/map files from GitHub language statistics
See CHEATSHEET.md for the full alias reference.
- User: Evgenii Shiliaev; GPG-signed commits;
~/.gitmessagetemplate - Core:
code --waiteditor, histogram diff,less -RFXpager, fsmonitor, untracked cache - Workflow: rebase on pull,
autoSetupRemote, safe force-push viapushf,rerere,autoStash - Log: abbreviated hashes, short decorations, custom pretty format
- Branches sorted by most recent commit; tags sorted by version
Global gitignore applied to all repositories. Covers:
- OS files:
.DS_Store,Thumbs.db - Editor/IDE:
.idea/,.vscode/,*.swp - Build artifacts:
bin/,obj/,x64/,x86/ - Node.js:
node_modules/,*.log, coverage, cache directories - Temp files:
*.tmp,*.bak
Conventional Commits template. Commit types that trigger a release:
| Type | Release |
|---|---|
feat |
minor |
fix, security, deps, perf |
patch |
Append ! for breaking changes (feat!:); add BREAKING CHANGE: <description> as the last footer — nothing after it, or the trailing content becomes part of the changelog note.
Symlinks all dotfiles into $HOME. Detects OS to link .zshrc (macOS) or .bashrc (Linux/Codespaces).
- Self-locating: works wherever the repo is cloned
- Always symlinks:
.shell_common,.curlrc,.editorconfig,.gitattributes,.gitconfig,.gitignore_global,.gitmessage,.wgetrc - OS-aware:
.zshrcon macOS,.bashrcon Linux/Codespaces
For questions, reach out via evgenii.shiliaev@jekwwer.com.