{"id":15717698,"url":"https://github.com/wenerme/dotfiles","last_synced_at":"2025-05-13T00:45:31.754Z","repository":{"id":11709508,"uuid":"14226910","full_name":"wenerme/dotfiles","owner":"wenerme","description":"Relax dotfiles for Linux, Cygwin \u0026 Mac OSX","archived":false,"fork":false,"pushed_at":"2024-10-17T10:42:34.000Z","size":9228,"stargazers_count":7,"open_issues_count":0,"forks_count":1,"subscribers_count":2,"default_branch":"master","last_synced_at":"2025-05-13T00:45:27.704Z","etag":null,"topics":["bashrc","cygwin","dotfiles","homebrew","linux","mac-osx","shell","sshrc"],"latest_commit_sha":null,"homepage":"","language":"Shell","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/wenerme.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","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":"2013-11-08T07:47:19.000Z","updated_at":"2025-03-20T00:06:02.000Z","dependencies_parsed_at":"2024-10-24T14:19:32.095Z","dependency_job_id":null,"html_url":"https://github.com/wenerme/dotfiles","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/wenerme%2Fdotfiles","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/wenerme%2Fdotfiles/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/wenerme%2Fdotfiles/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/wenerme%2Fdotfiles/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/wenerme","download_url":"https://codeload.github.com/wenerme/dotfiles/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":253850875,"owners_count":21973671,"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":["bashrc","cygwin","dotfiles","homebrew","linux","mac-osx","shell","sshrc"],"created_at":"2024-10-03T21:51:03.530Z","updated_at":"2025-05-13T00:45:31.728Z","avatar_url":"https://github.com/wenerme.png","language":"Shell","funding_links":[],"categories":[],"sub_categories":[],"readme":"# dotfiles\n\nRelax dotfiles for Linux, Cygwin \u0026 macOS\n\n## Features\n\n- Homebrew\n- Linuxbrew\n- Java\n- Go\n- npm\n- nvm\n- bash_completion\n- cygwin\n- msys2\n\n## Configuration\n\n- profile - for login shell\n  - setup PATH\n- rc - for interactive shell\n  - setup Terminal, autocomplete, prompt\n\n| item    | sh       | BASH          | ZSH       |\n| ------- | -------- | ------------- | --------- |\n| profile | .profile | .bash_profile | .zprofile |\n| rc      |          | .bashrc       | .zshrc    |\n| login   |          | .bash_login   | .zlogin   |\n| logout  |          | .bash_logout  | .zlogout  |\n\n- PATH\n  - $HOME/.local/bin - by XDG 3.0\n  - $HOME/bin - persinal bin\n- bash\n  - `--login`, `-l` - Login\n  - `-i` - Interactive\n  - `-r` - Restricted\n  - `--noprofile`\n    - /etc/profile, ~/.bash_profile, ~/.bash_login, ~/.profile\n  - `--norc`\n    - ~/.bashrc\n  - `--rcfile ~/.bashrc`\n  - `--init-file FILE`\n  - non-interactively\n    - load `$BASH_ENV`\n      - e.g. `if [ -n \"$BASH_ENV\" ]; then . \"$BASH_ENV\"; fi`\n  - symlink to sh\n    - minimic sh\n    - `.profile`\n  - SHELLOPTS, BASHOPTS, CDPATH, GLOBIGNORE\n- zsh\n  - ZDOTDIR=$HOME\n  - TMPPREFIX=/tmp/zsh\n\n---\n\n- TCSH\n  - .login, tcshrc, .logout\n- PDKSH\n  - .profile, .kshrc\n- [bash.1](https://www.man7.org/linux/man-pages/man1/bash.1.html)\n- [Bash Startup Files](https://www.gnu.org/software/bash/manual/html_node/Bash-Startup-Files.html)\n\n## Installation\n\n```\nchezmoi init --source wenerme\n```\n\n## 加载顺序/Load order\n\n```\n.bashrc -\u003e .bash_profile -\u003e utils.sh -\u003e log4bash.sh -\u003e\nfunc,exports,prompt,alias,extra,after -\u003e rc_my_*\n```\n\n## 扩展和自定义/Customize\n\n可在 .bashrc.d 下添加自己的扩展配置,文件名格式为 `rc_my_*`.会在 after 后加载\n\n## 目录说明\n\n```\n.font\n\t包含了一些我喜欢的字体文件\n.bashrc.d\n\t所有 bashrc 的文件都在这里\n.completion.d\n\t包含了一部分补全脚本\n```\n\n# Misc\n\n- 因为针对的是 bash 4+,所以使用 bash-completion 时要求使用[bash-completion2](https://github.com/Homebrew/homebrew-versions)\n  brew 默认是 bash-completion,因为 OS 默认的 Bash 是 3+的\n\n# Reference\n\n- [Advanced Bash-Scripting Guide](http://tldp.org/LDP/abs/html/)\n- [What rc mean ?](http://unix.stackexchange.com/a/3469/47774)\n\n# Document\n\nThis document is generated by `BASH_DOC_CAT=1 lrc`\n\n```bash\n# This will show you how to update bellow docs\n# You can see a document example here\n# https://github.com/wenerme/dotfiles/blob/master/.bashrc.d/utils.sh#L104\n\nBASH_DOC_GEN=en lrc \u003e /tmp/BASH_DOC_CAT\nsed -e '/^\u003c!--\\s*BEGIN-BASH-DOC/,/END-BASH-DOC/c\\\u003c!-- BEGIN-BASH-DOC --\u003e\\nHERE-BASH-DOC\\n\u003c!-- END-BASH-DOC --\u003e' README.md -i\nsed -e '/^HERE-BASH-DOC/{\n\ts/^HERE-BASH-DOC//g\n\tr /tmp/BASH_DOC_CAT\n}' README.md -i\n```\n\n\u003c!-- BEGIN-BASH-DOC --\u003e\n\n\u003c!-- source(.bashrc.d/utils.sh:19) --\u003e\n\n## utils.sh\n\nUtils used for whole configs.\n\n### Docs\n\n```bash\n# Generate doc for en\nBASH_DOC_GEN=en lrc \u003e doc_en.md\n```\n\n    # You can write doc in scripts like this, if no locale, this doc will used for all locale\n    bashdoc en \u003c\u003c'DOC-HERE'\n    # Header\n    Content\n    DOC-HERE\n\n\u003c!-- source(.bashrc.d/utils.sh:145) --\u003e\n\n### Commands\n\n| Command             | Arguments | Description                              | e.g.                           |\n| ------------------- | --------- | ---------------------------------------- | ------------------------------ |\n| bashdoc             |           | Used to accept docs                      | `bashdoc \u003c\u003c\u003c'#Title Here'`     |\n| osis                | -n        | OS check                                 | `osis cygwin`, `osis -n linux` |\n| termis              | -n        | `$TERM` typ check                        | `termis xterm`                 |\n| iscmd               | -n        | Command chech                            | `iscmd git`,`iscmd -n brew`    |\n| iscontains          | -n        | Check element in array                   |\n| isbrewed            |           | Check formula is installed               | `isbrewed go`                  |\n| try_prepend_path    |           | Ensure prepend givend path to `$PATH`    | `try_prepend_path ~/bin`       |\n| try_prepend_manpath |           | Ensure prepend givend path to `$MANPATH` | `try_prepend_path ~/man`       |\n| try_source          |           | 尝试 source 文件                         | `try_source ~/my-bash`         |\n\n- `-n` for negative\n\n### Examples\n\n```\niscmd cls || alias cls=\"echo -en '\\ec'\"\niscmd -n clear \u0026\u0026  alias clear=\"cls\"\n\nosis Cygwin \u0026\u0026 {\n\t# Cygwin stuff\n}\nosis Linux \u0026\u0026 {\n\t# Linux stuff\n}\nosis Darwin \u0026\u0026 {\n\t# Mac OS X stuff\n}\n\n\tbashdoc \u003c\u003c'DOC-HERE'\n\t# Markdown title\n\n\tWhat dose `this` mean.\n\tDOC-HERE\n\n# Generate docs\nBASH_DOC_CAT=1 lrc\n```\n\n\u003c!-- source(.bashrc.d/log4bash.sh:10) --\u003e\n\n## log4bash.sh\n\nlog for shell.\n\nBased on [fredpalmer/log4bash](http://github.com/fredpalmer/log4bash).\n\n```\nlog4bash - Makes logging in Bash scripting suck less\nCopyright (c) Fred Palmer\nLicensed under the MIT license\nhttp://github.com/fredpalmer/log4bash\n```\n\n### Changelog\n\n- Add log level\n- use `tput colors` to test the term\n\n### Commands\n\n| Command      | Arguments           | Description       |\n| ------------ | ------------------- | ----------------- |\n| log          | message level color | Basic log command |\n| log_speak    | msg                 | speak out         |\n| log_debug    | msg                 | DEBUG level       |\n| log_info     | msg                 | INFO level        |\n| log_warn     | msg                 | WARN level        |\n| log_error    | msg                 | ERROR level       |\n| log_success  | msg                 | SUCCESS level     |\n| log_captains | msg                 |\n| log_campfire | msg                 |\n| log_level    | [level]             | set/get log level |\n\n### Log level\n\nUse level like this\n\n```shell\nlog_level WARN # Only show WARN ERROR\nlog_level DEBUG # Only show DEBUG\nlog_level NONE # no log\nlog_level # display log level\n```\n\n\u003c!-- source(.bashrc.d/rc_func.sh:3) --\u003e\n\n## rc_func\n\n- `o [dir]`\n  - Open director\n  - Support cmd,cygwin,Centos(nautilus),Mint(nemo),OS X\n- mkd\n  - mkdir \u0026\u0026 cd\n- colorname\n  - Echo manual for color and name\n- 256colors\n  - for 256 color\n- 16colors\n  - for 16 color\n- server [port:-8000]\n  - stary a simple http server\n  - will try python, npm server, php\n\n\u003c!-- source(.bashrc.d/rc_after.sh:5) --\u003e\n\n## rc_after\n\n- Detech Homebrew\n  - Add bin\n  - Add coreutils without `g` prefix\n  - Add bash_completion\n  - Setup relate PATH or HOME\n  - Init command-not-found-init\n\n\u003c!-- source(.bashrc.d/rc_after.sh:69) --\u003e\n\n- nvm\n  - nvm use node\n- npm\n  - Add bin\n  - Setup `npm-exec`\n\n\u003c!-- source(.bashrc.d/rc_after.sh:204) --\u003e\n\n- direnv\n  - `eval \"$(direnv hook bash)\"`\n\n\u003c!-- source(.bashrc.d/rc_after.sh:215) --\u003e\n\n- sshrc\n  - After sshrc\n  - Add sym link for `~/.inputrc`,`~/.gitconfig`\n\n\u003c!-- source(.bashrc.d/rc_alias.sh:3) --\u003e\n\n## rc_alias\n\n- cd\n  - `..`,`...`,`....`,`.....`,`~`,`-`\n  - `cd-`,`cd..`,`cd...`\n- ls\n  - `-h` by default\n  - `l`,`la`,`ll`,`lsd`,`lst`\n- cls \u003c-\u003e clear\n- ifconfig \u003c-\u003e ipconfig\n\n- pushcd\n  - push current director\n- lrc\n  - reload bashrc\n- ports\n  - show used ports\n- utf82gbk,gbk2utf8\n- please\n  - use sudo to run last command\n- tolower,toupper\n- random-string\n- Darwin\n  - saynow\n\n\u003c!-- source(.bashrc.d/rc_my_osx.sh:5) --\u003e\n\n## rc_my_osx\n\n定义我在 osx 下使用的一些配置\n\n- 将 macvim (mvim) 映射为 gvim\n- lockscreen 锁屏\n- screensaver 屏保\n\n\u003c!-- END-BASH-DOC --\u003e\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fwenerme%2Fdotfiles","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fwenerme%2Fdotfiles","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fwenerme%2Fdotfiles/lists"}