Open2

Windowsでのくらし

kenchankenchan

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について

Welcome - 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
  • 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で使っているツール

実はほとんどない。

PowerToys のインストール

ランチャー、ウィンドウマネージャ、などなど。ランチャーとしてはAlfredには遠く及ばない。

https://github.com/microsoft/terminal

ふつうに便利。設定ファイルがjsonで、json schemaが参照されてるので補完が効く。json schemaをこうやってつかうの便利だなと気付かされた。

VB-Audio VoiceMeeter Banana

仮想オーディオデバイス。

@nathancorvussolis

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の工夫

dotfilesの工夫

rcmを使ってdotfilesを管理する - ペパボテックブログ

2022年にはじめるなら、yammerのdotfiles特集を読んで。

Windowsで困っていること

WSL2環境だとVagrant(VirtualBox)がとにかくつらい

Vagrant by HashiCorp

使えるもののいろいろな制約がある。仮想化レイヤーをいったりきたりするので、とにかく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というツールを作りました

https://github.com/kenchan/gh-furik