Linux系のプログラムでは、dotfileと呼ばれる .
から始まるプレーンテキストで設定を書くことが多い。
- Git管理できる
- 別のマシンでも全く同じ環境を作り出すことができる
などのメリットがある。
kijimaD/dotfiles: System settings
新しいLinuxディストリビューションを試すときや、設定を変更するときは仮想マシン上で行ったほうがいい。 気軽に試せるし、再現性が高い。緊密なフィードバックループがあるとき開発は効率的になる。
逆にマシン本体へのインストールだと、設定変更や壊れたときの対応が面倒。 マシン本体へのインストールは本番環境みたいなもので、すばやく試すのには向いてないし、壊れたときがさらに面倒。
GNU Guix 5 Reasons to Try Guix in 2022 - YouTube
sudo apt install qemu-kvm
qemu-system-x86_64 \
-nic user,model=virtio-net-pci \
-enable-kvm -m 2048 \
-device virtio-blk,drive=guix-demo \
-drive if=none,file=$HOME/Downloads/guix-vm.qcow2,id=guix-demo \
無料のWindows仮想マシンをQEMUで動かす - Qiita
qemu-system-x86_64 -m 4096 -smp 2 -hda MSEdge\ -\ Win10.vhdx -enable-kvm
配布サイトに記載のように、パスワードは Passw0rd!
。
仮想マシンのフォーカスを抜けるにはCtrl + Alt + g。
カスタマイズ性の高いソフトを組み合わせて、再現性の高い最高のシステムを作る。 Guixは土台になる。 だいたいSystem Craftersの情報がベースになってる。
- プレーンテキストでの設定
- 柔軟な設定
- コードがオープン
- キーボード指向
パッケージ管理システム。
環境。
設定ファイル管理ツール。 シンボリックリンクを管理してくれる。
サービス管理ツール。
古代からのビルド用ツール。タスク定義をドキュメント化するのに使う。
完全キーボードでのインターネットブラウジングを可能にする。
どうしてもEmacsで日本語入力ができない。 ibusが特定アプリで動作しない不具合にあたっている。 gnomeでは完全にできるので、自動でやってくれてるところがあるよう。 Emacs上ではskkを使うようにして解決。Emacs以外では普通に入力すればいい。
ドキュメント https://i3wm.org/docs/userguide.html#_hiding_vertical_borders
- close window:
Mod + Shift + q
柔軟に設定できるメニューバー。
Emacs側で透過設定しても字が薄くなって微妙だが、ウィンドウ側でやると綺麗にできる。 また、ほかのアプリケーションを透過できて統一感がある。かっこいい。
背景を設定する。
feh --bg-fill -Zr ~/dotfiles/backgrounds/4k-Ultra-HD_00330.jpg
dunst-project/dunst: Lightweight and customizable notification daemon 通知機能が入ってないウィンドウシステムでは(EXWMとか)、これを組み合わせて通知する。
1つ1つ実行できると便利そうなので。
nerd-fontsをインストールする。cloneしてきて、スクリプトを実行する。
./install.sh
イメージからインストールする前提でMakeタスクのいくつかを消しているので、手動でインストールするときは大変面倒なことになっている。直す。
sudo apt install libsqlite3-dev
閲覧に便利なdbクライアントをインストールする。
ubuntu22.04, ubuntu20.04, xubuntuを同時にテストできるようにしたい。できないにしても、動作確認には役立つ…か。少なくともデグレは防げる。
今は20.04。22.04をイメージのベースにするのが厳しそうなので、妥協してdist-upgradeを走らせる。
どうしてもアップデートの途中で止まってしまう。
動作検証で頻繁にやるので。
すごいdotfile。
dotfilesの例。
Sacha Chua’s Emacs configuration(Sacha Chua)
Emacsで有名な人のdotfiles。設定が莫大。
My dotfiles(SqrtMinusOne)
Emacs界隈でよく見かける人。グラフ化していて良い。
スクラッチでブータブルイメージを作る。
<2021-10-03 Sun>テスト、Lintはセットしたが、実行時エラーが解消できない。guixに依存した .bash_profile
なんだよな。
少なくとも例だけのせておくと便利だろう。 環境を楽に選択できるようconfigを設定する。 https://qiita.com/hkak03key/items/3b0c4752bfbcc52e676d
すべて整備された状態でクリーンインストールできるようにしたい。イメージを作るとかそういうのができるはず。system.scmではパーティションやユーザ名を入力するのだから。- system-installation
- GitHub ActionsでカスタマイズしたUbuntuのISOイメージを作る - Qiita
- Ubuntu20.04 Live CDを作ってみる 基本編 | ろっひー
可能なことは確かだが、全然わからない。
configファイルはないようだ。なのでファイル管理できない。改良してゲージ型にした。 全体カウント機能を追加した。一日ごとにリセットする。
クリーンな環境でうまくいっているかチェックしたい。 Guix関連が難しく、詰まっている。EXWMの関係で、xfceのほうがいい。
いろいろ走るので初回が遅い。.emacs.dを指定して起動、とかしたらいいかな。emacs-sqliteのバイナリが見つからないエラーになる。ライブラリが入ってないため、コンパイルが自動でされないよう。- emacsql-sqlite
cコンパイラ(gcc, clang, build-essentialどれでも )をインストールするとemacs-sqliteのコンパイルはできるようになる。だがubuntu自体の起動が失敗する。謎。Ubuntuインストール後、Guixでgccインストール、手動でコンパイルするしかない。めんどくさい。
- vterm
いくつかライブラリが必要。ない場合は自動コンパイルが走りわかりやすいエラー文も出るので対処はしやすい。
emacsを起動したイメージでブートすると、ユーザ作成モーダルを抜けられない。何らかの権限的な理由でユーザ作成に失敗しているように見える。
実行時間が長いので、開発に支障が出る。 cargo install clonerを追加する。- build-essential が入ってないので、ビルドに失敗する
- build-essential を入れるとubiquityが失敗する
まあ、USBのパーティションの名前に含めればいいか。
使うので。 動作検証できるように、isoからイメージにしておく。単にtarに固めただけでできた。デバッグやテストもやりやすそうだ。
LSP, DAPを入れる。ダウンロードすると、起動しなくなる。emacsを起動と同じく、何か特定のことをすると動かなくなる。走らせるとシステムディレクトリに何らかの変更をもたらす場合、動かなくなる可能性。たとえば go install
やemacs起動したとき、ホームディレクトリ以外に何かを保存するとか。
とりあえずisoビルド段階では入れず、makeタスクに追加した。
ブートイメージ化で不要になったものがあったり、逆に必要なものがあったりする。