Upgrade to Pro — share decks privately, control downloads, hide ads and more …

社用PCのdotfiles管理 / dotfiles-in-company

社用PCのdotfiles管理 / dotfiles-in-company

みなさん社用PCのdotfiles管理どうしてますか?
私は社用PCのdotfilesも管理したいと考えていて、公開範囲を制御できるようにファイル分割をしたうえで、複数リポジトリにまたがってdotfilesを管理しています。
(社内のLTとして話したスライドを公開しています。

yammerjp

June 17, 2022
Tweet

More Decks by yammerjp

Other Decks in Programming

Transcript

  1. 2 自己紹介 EC事業部 ECグループ CCXチーム 2021年 新卒入社 中山 慶祐 Nakayama

    Keisuke Software Design 6月号にdotfilesの記事を寄稿しまし た 寄稿したときの話は社内ポッドキャストでお話しています • Twitter : @yammerjp
  2. 1. dotfilesの管理 8 gitとシンボリックリンク、インストール用のシェルスクリプトを用いた構成には 以下の利点がある - Easy instllation (インストールが容易) -

    Portability (移植性が高い) - Synchronization (複数コンピュータ間で同期できる ) - Change tracking (変更の追跡ができる) ref: https://missing.csail.mit.edu/2019/dotfiles/ dotfiles管理の利点
  3. 2. dotfiles管理の促進 12 設定ファイルをエディタで開くエイリアスを貼っておく 例えば Pro Gitを読んでいて git diff サブコマンドの

    --ignore-all-space オプションを 知ったとき、覚えられないので gitの設定にエイリアスを貼っておく - エイリアスを使ってもいいし - メモ代わりにもなるし - 設定を書いているときにオプションが記憶に残る 設定ファイルを即座に変更できるように: git-config-edit https://github.com/yammerjp/dotfiles/blob/322dec5d06b77839a9467301ae3a93d1bc7a193c/.config/zsh/git.zsh#L5 https://github.com/yammerjp/dotfiles/blob/211e71edd5ceb9a3602d3af217c094574ac2d8f8/.config/git/config#L22
  4. 3. 社用PCのdotfiles 17 gitとシンボリックリンク、インストール用のシェルスクリプトを用いた構成には 以下の利点がある - Easy instllation (インストールが容易) -

    Portability (移植性が高い) - Synchronization (複数コンピュータ間で同期できる ) - Change tracking (変更の追跡ができる) ref: https://missing.csail.mit.edu/2019/dotfiles/ (再掲) dotfiles管理の利点
  5. 4. 公開範囲の制御 21 - .zshrc - .gitconfig - .npmrc -

    お気に入り設定を追記する Shell Scriptを用意している - 公開できない設定が含まれているので直接管理していない 公開範囲を変える https://github.com/yammerjp/dotfiles/blob/322dec5d06b77839a9467301ae3a93d1bc7a193c/.config/git/config#L5-L6 https://github.com/yammerjp/dotfiles/blob/322dec5d06b77839a9467301ae3a93d1bc7a193c/.zshrc#L7-L9
  6. 4. 公開範囲の制御 22 - GitHub.com上のPublicリポジトリ - https://github.com/yammerjp/dotfiles - なるべくここに寄せる -

    下記のリポジトリで管理しているファイルが存在したら読み込む - GHES上のPublicリポジトリ - 会社の設定を記載 - ~/.zshrc.company や ~/.config/git/config-company 等 - GitHub.com上のPrivateリポジトリ - 公開したくないもの - 個人のPCの .ssh/config 等 複数の公開範囲 → 複数のdotfilesリポジトリ
  7. 4. 公開範囲の制御 24 - 環境ごとに特有の設定を切り出した dotfilesのモジュール (ディレクトリ) を用意 - 複数のモジュールを任意の順番で重ね合わせ、好みの設定を適用できるしくみ

    - やりたいことに対して複雑過ぎた - ファイルが分割されすぎていて一覧性が悪い - 設定を書き換えるときにどこに書くかに脳みそを使う - 実際に適用された設定を確認するには、 (頭で重ね合わせを想像するか ) 適用されたPCの設定 を見に行く必要がある - GitHubのWebページを眺めてUbuntuだったらどんな設定してたっけ?というのをぱっと見れない) - 外出先でふとスマホから見たくなるときありませんか? 過去の運用例: layeredなdotfiles
  8. まだまだ話題は尽きない • 複数環境での適用 ← 今日話したこと • Shell起動の高速化 • 便利設定, 便利エイリアス

    • dotfiles管理ツールの話 (OSS、自作、etc…) • 秘匿情報の扱い • macOSのProperty list、IMEの設定、GUIアプリケーションの設定、etc… • ターミナル何使ってる? • エディタ何使ってる?プラグインは? • ターミナルマルチプレクサの話 4. おわりに 27 27