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 unzip
pacman -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'
- 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-pyenv
PATHからpyenvのshimを消すcbash
LANG=Cにし、nerd fontのプロンプトなどをオフにするcdpeco
,pdpeco
fdでディレクトリを列挙→pecoで選択→cdまたはpushddiffl a b > c
aとbをマージしたファイルを生成pd
=pushd
- popdはpopd
tb 文字列
でtmuxのバッファとOSのクリップボードにコピー、tb
でバッファの内容を出力tw コマンド
でtmuxの新しいwindowを開いて現在のディレクトリでコマンドを実行- MSYS2環境で
syspath (command...)
PATHからmsysを消してコマンドを実行vsdevcmd22
VisualStudio2022のDeveloper Command Promptをひらくvsdevcmd19
VisualStudio2019lnj
フォルダのシンボリックリンクを作成(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, peco, mc, tmux, fzf
- 引数になにか渡すとcargo.shとsource_buildsを省略 (ビルドが重いラズパイなど)
- cargo.sh
- source_builds/
- doxygen 1.9.7
- json-tui
- mc (misc.shからは呼ばれない)
- tmux (misc.shからは呼ばれない)
- todo: micro, fzf, ...?
- 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, peco, fd, sublime, poetryの設定とか