atuin でシェルヒストリを複数マシンで共有してみる
以前、 chezmoi を試した時にドキュメントを読んでいたのですが、 Can I store/share my shell history with chezmoi? という Q and A で atuin という OSS が有ることを知りました。
ellie/atuin は、シェルのヒストリを管理するソフトウェアで、単体のマシンで利用することもできますが、同期用のサーバを構成することでマシン間でヒストリを共有できます。 通信は E2EE で、無償で利用できるオフィシャルサーバも用意されているので、すぐに利用することができます。 今回は、 docker-compose を用いてサーバをセルフホストし、 zsh のヒストリを共有してみました。
共有したい幾つかの zsh 設定とプラグイン Part.01
「おすすめの」と記載するのが多いケースだと思いますが、用途や趣味思考によって大きく変わるであろう内容なので、共有したいとしました。
最近、約 6 年ぶりに bash から zsh に戻り、 とても酷い間違いだらけの ~/.zshrc を見直しています。 「工夫している点や便利な設定を教えて」と聞かれすぐに思い出せないことが有るので、自分の備忘録と脳内整理も兼ねて、いくつか記載します。
記載しているコードやアイディアは、多くが私のオリジナルでは有りません。 dotfiles あるあるなのですが、インターネット上で共有していただいたものや、zshの本に記載の内容です。 zshの本 は2009年に発売された書籍ですが、zshについてとても詳しく書かれた良書です。 電子版 も新に発売されています。
urxvt (rxvt-unicode) をセットアップして利用してみた
xterm から urxvt(rxvt-unicode) に乗り換えたので、設定をまとめておきます。
urxvt のフォーク元である rxvt は、 xterm のあまり使われていない機能を省き代替品として開発されたものですから、似た部分もあります。 xterm と比べると、非常に高速に動作し、 Perl 拡張をサポートするなど、多機能なターミナルとしても利用できる側面もあります。
urxvt 以外にも st や GPU アクセラレーション を利用できる Alacritty, WezTerm も人気が有るようなので気になってますが、 xterm で大きな不便を感じなかったので似た代替品を使おうと思い urxvt を試しに使ってみることにしました。
この記事を記載するにあたり、 Arch Wiki および Manual Page を参考にしました。
dotfile manager の chezmoi に移行してみる
chezmoi を使って、 dotfiles を管理することにしました。
dotfiles の管理方法は人それぞれだと思いますが、私は GitHub のパブリックリポジトリでホストしており、 シンボリックリンクを張る Makefile を作成していました。 利用するツールがほぼ統一されていたので、最も利用している環境のみで dotfiles を commit し、他の環境では clone/pull のみ実施し、必要があれば環境固有のファイルを source する運用です。
if [ -f ~/.bashrc_private ]; then
. ~/.bashrc_private # GitHub でホストされていない設定ファイルであり、各マシンで内容は異なる。
fi
Makefile では、パッケージマネージャを用いたパッケージのインストールなども行っていましたが、特定ディストリビューションかつネイティブ Linux 環境に特化しているという問題が有りました。 このような雑運用では当然ながら複数環境への対応に脆く、諸事情によりネイティブ Linux から WSL に移行しなければならない環境が発生した際に大量に差分が発生し破綻しました。 気力でメンテナンスを頑張ったり、 WSL や不自由なソフトウェアへの理解を深めたりすれば継続できたかもしれませんが、今後もディストリビューション追加対応などが発生する可能性を鑑み、これを機にテンプレート機能を持つ dotfile manager に移行することにしました。
触れ初めたばかりで、最も利用している環境でしか利用していませんので、テンプレート機能はまだ利用していません。 他に、暗号化やパスワードマネージャとの連携もまだ試していませんので、それらの利用方法も記載しませんのでご了承ください。
Calibre を Docker Compose 環境に移行した話
ただの日記である。技術的要素は少い。
いくつか複雑な経緯があり、新たに VM インスタンスを契約したので、 Calibre を移行した。 Calibre は有名な電子書籍管理ソフトウェアで、フォーマット変換や、電子ブックリーダーとの同期などもできるが、オンラインでのビューワーとしてのみ利用している。 今回は、 deb パッケージから Docker Compose に移行し、 LinuxServer.io によりメンテナンスされている Docker イメージを用いた。
rss2email で RSS をメールで購読する
rss2email を利用して、 RSS を電子メールとして送信することができます。
RSSアグリゲーターとして Newsboat を利用しており、 Linux CLI ユーザとしては、 TUI で操作でき便利に利用していました。 しかし、同期やスマートフォンなどからの利用を考えると不便だったので、 rss2email を試してみることにします。
なぜ rss2email か
「大量のメールを効率的に捌く手法を構築しており、今後もメールは捨てる見込みが無いから」という理由につきます。 多くの OSS コミュニティはメールベースのコミュニケーション手法を確立しており、当方も procmail レシピによるメッセージデリバリーや、ターミナルベース MUA の NeoMutt などを利用しており、この仕組みに載せてしまえば良いと考えた為です。 同期やスマートフォンなどからの利用としては、 IMAP でカバーする事とします。
Phoronix Test Suite を試してみる
Phoronix Test Suite (pts) を使って、簡単なベンチマークを実施してみることにします。
Phoronix Test Suite は、クロスプラットフォームのベンチマークプラットフォームです。 プラットフォームと記載したのは、各ベンチマークがプロファイルとして記述され、プロファイルに基づきベンチマークのインストール及び実行とレポート生成を実行するフレームワークだからです。
Phoronix Test Suite には、 OpenBenchmarking.org との連携機能や、複数マシンでのベンチマークを管理する Phoromatic も存在します。 今回は、仮想マシンを用いて Phoromatic も試してみることにします。
各ベンチマークの詳細や、プロファイルの記述については記載しません。
Btrfs + Snapper でスナップショット取り放題生活
これまで LUKS + LVM + ext4 で組んでいたのですが、スナップショットを手軽に取得したかったので、 LUKS + Btrfs に移行する事にしました。
LVMを用いているのでスナップショットを取得する事は可能なのですが、ブロックデバイスのスナップショットであり、事前に容量をReserveする必要があり、ファイルシステム用途としては使いやすいものでは有りません。 システムアップデートや巨大なソフトウェアをインストールする前にスナップショットの取得をするのですが、徐々に面倒になり、取得しないままシステムを汚してしまう事も有ったので、 Snapper を用いてスナップショット管理も実施します。
また、Btrfsファイルシステムは1つとし、サブボリュームを作成し /home や /var/log にマウントする事で、スナップショット単位を分割する事にします。
ETS2運行記録簿 2022年02月
今月から、MTで運行しはじめました。まだ慣れていないので、変速を誤ったり、変速に気を取られておぼつか無くなっています。