Skip to content

thawk/dotfiles

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

dotfiles

自用的Linux/MacOS/cygwin/MSYS2配置文件。

参考了holman的配置。

本配置库不含vim/neovim配置。可以在这里找到我对应SpaceVim配置,在这里可以找到我以前手工维护的vim配置,可根据自己的需要自行选用,也可以配合其他vim/neovim配置使用。

文件组织

文件按软件/用途分目录存放,把同一用途的文件组织在一起,方便管理。

在每个子目录下有以下特殊文件和目录:

. disabled: 如存在,禁用此目录。这个不是提交到git库,只在本地生效 . disabled.global: 如存在,禁用此目录。这个会提交到git库,其他机器也会禁用此目录

  • requirements.sh: 如存在,则必须有可执行权限。在安装(bootstrap.sh)时,根据此脚本的返回结果决定是否启用本子目录。可用于判断目录所依赖的命令是否存在
  • bin/: bin目录会被加入$PATH以便随时可用
  • *.sh: 子目录下的*.sh(不含子目录)会被source进当前环境。*.bash/*.zsh只会被bash/zsh载入
    • bootstrap.sh/bootstrap: 必须可执行,将在运行bootstrap.sh,本目录从未启用变成启用时执行
    • path.sh: 子目录下的path.sh会先于其它脚本source进环境,可以在这个脚本中设置$PATH
    • env.sh: 会在path.sh之后,其他脚本之前加载,可用于export环境变量
    • completion.sh/completion_*.sh: 子目录下的completion.sh会被最后载入,可以在这个脚本中设置自动补全
    • 其它脚本可以随意命名,但有一些建议
      • aliases.sh: 可用于设置alias
      • bindkey.sh: 可用于设置key binding
      • config.sh: 可用于设置一些配置,如使用setopt
      • functions.sh: 可用于保存一些function
  • *.symlink: 所有以.symlink结尾在文件或目录会被符号链接到$HOME
  • zsh-completion: 本目录将加入$fpath中,可用于存放zsh的补全脚本

对于zshpath.shenv.sh会在插件载入前加载,其他脚本则会在插件载入后再进行加载。

安装

git clone https://github.com/thawk/dotfiles.git ~/.dotfiles
~/.dotfiles/bootstrap.sh

由于在.zshrc中在$0不是~/.zshrc,无法确定.dotfiles目录的位置,所以在zsh/.zshrc.symlinkbash/.bashrc.symlink中都显式指定.dotfiles的位置,因此只能clone到~/.dotfiles

使用zinit管理zsh的插件。可以编辑~/.dotfiles/zsh/scripts/zinit.plugins.zsh管理插件。

一些运行时产生的中间文件会存放到$XDG_CACHE_HOME/dotfiles(一般在~/.cache/dotfiles/)下,因此也可以删除并重建~/.dotfiles以进行升级。

升级后应再次运行~/.dotfiles/bootstrap.sh以更新插件配置,更新符号连接等。

如果需要支持aarch64,需要从 https://github.com/romkatv/gitstatus/releases 下载相应可执行程序,放到 ~/.zinit/plugins/romkatv---powerlevel10k/gitstatus/usrbin/ 下。

配置

运行时配置

在每次运行时,会载入一些额外的配置文件,以便用户可以进行订制:

  • ~/.localrc: 会在.bashrc/.zshrc中载入
  • ~/.bashrc.local: 会在.bashrc中载入
  • ~/.zshrc.local: 会在.zshrc中载入

k 这几个配置文件会在zsh载入插件前载入。

  • 在顶层shell中($SHLVL == 1),会以top为参数被调用,以便进行启动gpg-agent之类等动作,因此可以根据$1是否等于top判断是否顶层shell
  • 在普通shell中,$1为空

调整配置的环境变量

除了各个插件或系统自带的选项外,还可以设置下列以DOTFILES_开头的本配置专用的变量:

  • DOTFILES_THEME:控制使用的配色方案

    可选值为:

    取值 含义
    solarized 自动载入上次的solarized配色,在mintty等支持ANSI转义的终端下,可用dynamic-colors命令实时切换亮色和暗色。
    base16 自动载入上次的base16配色,在mintty等支持ANSI转义的终端下,可用base16_*命令实时切换不同的配色。但不支持putty
    空串 自动载入上次的dynamic-colors配色
    其他 不自动载入配色

    会根据使用配色,对一些插件的颜色进行修正。

  • DOTFILES_SRC_ROOT: 代码库的根。如$HOME/workspace

  • MY_SOCKS5_PROXY: 设置SOCK5代理的地址和端口,用于apsetproxy。缺省为127.0.0.1:1080

  • DOTFILES_ENV: 运行环境。部分功能只在特定环境提供。缺省为inet环境,表示互联网

暴露环境变量

  • DOTFILES_ROOT: dotfiles目录,一般为$HOME/.dotfiles
  • DOTFILES_LOCAL: dotfiles本地配置目录,一般为$HOME/.cache/dotfiles

About

My linux configuration files

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published