Windowsでのくらし
Windowsでのくらし
OSとエディタなど環境遍歴
- 学生時代: Windows + coLinux、Eclipse
- 1社目社会人3年目まで: Mac, Vim
- 1社目その後: Gentoo Linux, Vim
- ペパボ: Mac, Vim
- ペパボその後: Gentoo Linux, Vim
- 今: Windows, Gentoo Linux, VSCode(vscode-neovim)
Gentoo Linuxについて
ローリングリリースを採用しているディストリビューションです。
First of all, welcome to Gentoo! You are about to enter the world of choices and performance. Gentoo is all about choices.
インストールガイドの最初にある一文。Gentooは全ての選択を利用者が行います。例えば、GUI環境をGNOMEにするのかKDEにするのか、エディタはなにか、カーネルのバージョンどれにするか。その豊富な選択肢をとれるように、portageという強力なパッケージシステムがあります。が、パッケージシステムさえ選択ができます。aptやyumもportageでインストールして使うことさえできます。
自分の選択の結果が「world」というファイルに記録されます。
wsl-setup/world at master · kenchan/wsl-setup
このファイル(と他いくつかのファイル)を他のGentoo環境にもっていくだけで、自分の世界を再構築することができます。
- pros
- すべてを自分で選ぶことができる
- portageというパッケージシステムがめちゃくちゃ柔軟で強力。自分やコミュニティの公開しているパッケージを使うのも簡単
- Linuxの知識が付く
- cons
- 基本的にはすべてビルドしてインストールをするため、マシンリソースが必要
- ImageMagickやglibcのビルドは本当に大変
- ドキュメントはかなり充実しているがそれでも最後に見るのはArchWiki
- gentooinstallbattleと揶揄されるようにLinuxを知るまでがチョットタイヘン
- 基本的にはすべてビルドしてインストールをするため、マシンリソースが必要
WSLについて
Windows Subsystem for Linux に関するドキュメント
WindowsのHyper-Vハイパーバイザで任意のLinuxディストリビューションが動く!!1
distrodというsystemdを動かすメタディストリビューションを使っています。
https://github.com/nullpo-head/wsl-distrod
Gentooは選択とはいえ、systemdがない状況でLinuxデスクトップと似た開発体験を作るのは難しいと実感した。
Windowsで使っているツール
実はほとんどない。
ランチャー、ウィンドウマネージャ、などなど。ランチャーとしてはAlfredには遠く及ばない。
https://github.com/microsoft/terminal
ふつうに便利。設定ファイルがjsonで、json schemaが参照されてるので補完が効く。json schemaをこうやってつかうの便利だなと気付かされた。
仮想オーディオデバイス。
SKKというIMEを使っている。日本語とアルファベットを切り替えながら打つ我々のような人のためのIME。一般のIMEだと変換しにくい言葉を使う我々のような人でも、辞書登録が変換からシームレスにできて便利。
開発環境の構築方法
https://github.com/kenchan/wsl-setup
https://github.com/kenchan/dotfiles
WSL(Distrod&Gentoo)の場合は、wsl-setupでdotfilesの設定なども全部やるようにしている。curlしてお茶を飲んでいたらWSLの環境はできあがり。
数は少ないんですがfrgmでスニペットを管理しはじめようと思ってはじめています。
https://github.com/kenchan/snippets
wsl-setupの工夫
-
mitamaeで完全自動化
-
rootユーザと一般ユーザで分けてセットアップしたほうが楽だったので、根本のレシピをuser.rbとsystem.rbに分離
wsl-setup/install.sh at 92752dc729642174cda20580f291dd91be846e6f · kenchan/wsl-setup
dotfilesの工夫
rcmを使ってdotfilesを管理する - ペパボテックブログ
2022年にはじめるなら、yammerのdotfiles特集を読んで。
Windowsで困っていること
WSL2環境だとVagrant(VirtualBox)がとにかくつらい
使えるもののいろいろな制約がある。仮想化レイヤーをいったりきたりするので、とにかくIOが遅い。実用には耐えられない。
いいタイル型ウィンドウマネージャがない
Amethystっていうタイル型ウィンドウマネージャが結構いけてる
ショートカットで画面の半分にできます、とかじゃ足りないんですよ。作るしかないか?
FAQ
dockerどうしてますか?
普通にLinuxのパッケージとしてインストールしてdaemonを起動してます。Docker desktopは不使用。きれいなdockerなので便利。
WindowsとWSLの中の秘匿情報のやりとりなどどうしてますか?
1Password & 1Password CLI v2でだいたいOK。
Gitの認証情報はGit Credential ManagerでWindows側で管理してる。
Git Credential Manager: authentication for everyone | The GitHub Blog
SSHはWindows側のssh.exeをsymlinkして1PasswordのSSH Agentを共有することで解決。
最近作ったツールなどありますか?
githubのアクティビティをふりかえるためのgh-furikというツールを作りました
Choosyの代替としてAccount Surferというツールを使いはじめた。
自動で切り替える設定はドメイン指定だけだが、仕事で使う分には今のところ困っていない