for Ubuntu, Arch Linux, MacOS, Windows(MSYS2)
sh -c "$(curl -fsLS https://chezmoi.io/get)" -- -b ~/.local/bin init --apply na-trium-144 --destination $HOME- bashが使う一時ファイルの場所を変えたい場合は
_tmp=$HOMEなどとする(.bash_aliasesに書く) - MSYS2の場合は
- chezmoiインストール前に
pacman -S unzippacman -S gitまたはgit-for-windowsをインストール- git-for-windowsのほうだと勝手にcredential managerを入れたり、コンソールへの出力の色がおかしかったりする
- 環境変数にMSYS2_PATH_TYPE=inherit
HOMEはmsys側においてもいいが、それでもchezmoiのファイルは/c/Users側に置かれてしまう?- HOMEは C:\msys64\home\ユーザー名 のまま使う
- /etc/fstab を編集し、noaclを消す (意味ある?)
- sshの鍵は msys64/home/.ssh のほうに置く
- sublimeの設定ファイル
lnj ~/.config/sublime-text/Packages/User '/c/Users/ユーザー名/AppData/Roaming/Sublime Text/Packages/User' - poetryの設定ファイル
lnj ~/.config/pypoetry '/c/Users/ユーザー名/AppData/Roaming/pypoetry'
- chezmoiインストール前に
- Macでは
brew install bashで新しいbashが必要
- ubuntuのデフォルトbashrcベース
- pathの設定(.local/bin, pyenv, nvm, fzf(使ってないけど), cargo, ruby)
- macの場合homebrewのパス, sublime textのパス, bash_completionの設定など
- 共通のaliasは scripts/aliases.sh に記述
- PS1は scripts/ps1.sh
- .bash_aliases はchezmoi管理しないので環境特有の設定を置く(aliasではないものも含む)
- 環境変数 (各種スクリプトで使う)
$_hostname: ホスト名$_uname: uname (ただしWindowsの場合末尾のバージョン番号を削除してMINGW64_NTに置き換えられる)$_chezmoi_root: ~/.local/share/chezmoi$_winhome: /c/Users/ユーザー名
- prefixは ctrl-j, alt-/
- ssh内または環境変数
__is_vmが1の場合は ctrl-b, alt-.
- ssh内または環境変数
$TERMはxterm-256colorなのでvimとかはバグるかも?- tpm
- prefix +
- y: capture-pane → デフォルトのbuffer & OSのclipboard
- u: save-buffer to file
- N: new-session
- left/right = previous/next-window
- home = new-window
- v: OSのclipboardの内容をbufferにコピーしたうえでpaste-bufferする
- Tab: extrakto (画面右上)
- msysだとバグる...
- copy-mode
- Ctrl-z: begin-selection
- Meta-left/right: previous/next-word
- Space: copy-pipe-and-cancel → clipboard
- ステータスは独自のカスタマイズ
- nerd fontが必要
- aliases.sh: bashのalias, functionなど
no-pyenvPATHからpyenvのshimを消すcbashLANG=Cにし、nerd fontのプロンプトなどをオフにする
diffl a b > caとbをマージしたファイルを生成pd=pushd- popdはpopd
tb 文字列でtmuxのバッファとOSのクリップボードにコピー、tbでバッファの内容を出力tw コマンドでtmuxの新しいwindowを開いて現在のディレクトリでコマンドを実行- MSYS2環境で
syspath (command...)PATHからmsysを消してコマンドを実行vsdevcmd22VisualStudio2022のDeveloper Command Promptをひらくvsdevcmd19VisualStudio2019lnjフォルダのシンボリックリンクを作成(mklink /j)open (path)ファイルorフォルダを(パスを変換して)explorerで開く
- ps1.sh
- git_ps1
- dirtystate, stashstate, upstreamがオン
- 2秒のタイムアウト機能付き
- ps1(プロンプト)の変更
- hostnameごとに顔文字を追加
- pushdした数を表示
- 直前のコマンドの終了コードを表示(0でない場合)
- 直前のコマンドの実行時間を表示(5秒以上の場合)
- .bashrcを読み込んだときにこのdotfilesのコミット数を表示
- git_ps1
- win_open.sh: パスをWindows用に変換してexplorerで開く
- MSYS2時に
openコマンドとしてエイリアスを貼ってある - 環境変数
MC_XDG_OPENにも設定されているので、mcでファイルを開けばexplorer(→関連付けられたアプリ)で開いてくれる
- MSYS2時に
- brew_local.sh: linuxbrewを ~/.brew にインストールする (misc1より先に実行すること)
- aptと干渉するのを避けるため、デフォルトではPATHを通していない
brew-activateでそのシェル内だけパスが通る
- misc.sh: いろいろインストールする
- システムにインストール inetutils, git, curl, build-essential, micro, mc, tmux, fzf
- cargo.shとsource_buildsとtpm.shをmisc1から呼び出していたがやめた
- cargo.sh
- source_builds/
- doxygen 1.9.7
- json-tui
- tpm.sh
- misc2.sh
- pyenv or pyenv-win で python3.12.6
- pipで pipx
- pipxで poetry
- nvm or nvm-windows でlts
- pyenv or pyenv-win で python3.12.6
- misc3.sh: メインの開発環境用
- todo: MSYS2非対応
- システムに cppcheck, ruby, tidy, shellcheck
- pipxで black, pylint, cmakelint, clang-format, clang-tidy, mypy, flake8
- npmで js-beautify, prettier
- git.sh: git-prompt.sh をダウンロードする MacとMSYS2用
- chsh.sh: mac用 デフォルトシェルをbrewのbashに変更
- chsh_docker.sh
- rtc.sh: dualboot環境で時刻がずれるのを修正するやつだった気がする
- sublime.sh: sublime textをいんすとーるする (Ubuntu)
- micro, fd, sublime, poetryの設定とか