この記事は coins Advent Calendar 2023の 9日目の記事です。

一つ前は、あざらしさんの、 毎日カレンダインタープリタ生活 でした、 Calendar便利ですね。 次回はTODO管理についても聞いてみたいです。


毎年、その年にどんな環境でPCを使っていたかメモしてる。

今年の環境の記事。 去年の記事はこっち

2022 2021 2020 2019 2018 2017 2016 2015

PC(フォームファクタ)

今年も去年と同様にデスクトップとノートPCを交互に使ってる。

在宅でがっつり作業する時はデスクトップ。 リビングでWebを見るときとか、 外出先とか電車内でモバイルノートを使ってる。

モバイルノートを家庭内使用しているが、 モバイルデスクトップという新しいジャンルを開拓できないか考えてる。

また、持ち歩き用のノートPCとタブレットを統一できないかと考えているが、 どうしたらいいか良くわかってない。

OS

Debian, Ubuntu, FreeBSD

端末として使っているマシンはLinuxで、 ファイルサーバーはFreeBSD(とZFS)

AMDGPUを使ってるマシンだけUbuntuになっているが、 今ならDebianにできないかと思っている。 年末に時間を見付けて挑戦したい。

そのうち、Linux+ZFSがこなれて来たら、 全部をLinuxにできるようになる気がしてる。

パッケージバージョンが違ってる問題はまだある、 去年までは、マシンごとにバージョンが違っていて困ったが、 今年はバージョンアップそのものに困った。

kicadのプロジェクトなどは、 古いバージョンで作ったものを新しいバージョンで開いたり、 その逆をした時にトラブルにあいがちだ。

*envみたいに、プロジェクトごとにバージョンを固定できるようにしたい。 そういう風にAppImageを管理してくれるツールないのかな。

エディタ

Vimがメインのエディタ

fuzzy finder

去年頑張ってdenite.vimに移行したが、 python環境が壊れる事が多く、 何とかしたい。

CtrlPを使おうとしたが、 思ったような候補リスト、候補順を構築できない。 本体にパッチをあてて何とかしている感じになっていて良くない。

Vim外のFuzzyFinderとしてFZFを使いはじめた。 これをVimでも使うといいのではないかと思い、 色々調べてる。

やりたい事としては、

  • 存在するファイル
  • ブックマークしてるファイル
  • git/hgで管理されているファイル
  • git/hgで編集されているファイル
  • 最近開いたファイル
  • 今開いているファイル (バッファリスト)
  • エラーリスト

あたりをソースにして、混ぜて検索してて、 表示されてるリストと選択された時のリストを別にして、 元のリストの順序でヒットした最初(最後)のにマッチ、 というのができるのが欲しい。

エディタ移行候補

Vimで概ね不満は無いが、 しいて言えば、 LSPクライアントの挙動がリッチじゃなかったり遅かったりするのが不満かもしれない。 そこで、他のエディタも試した。

まず、試したのが、VSCode

LSPと言えばこれだ。

VSCodeには気になる点が2つあった。 1つ目は先行入力が取りこぼされる箇所が多い事。 [Ctrl+Shift+P]foo[enter]のような入力を急いでやると、 Ctrl+Shift+Pが出した入力欄ではなく元々の編集位置にfooが入力される事がある。 これはGUIのエディタで避けるのは難しいかもしれないが、 慣れると使いにくくなるというあまり良くないインターフェースだ。

もう1つは、キーバインディングの設定に一貫性がない事だ。 例えば、メインのエディタ部分はVimキーバインドにできるが、 コミットメッセージを入力する欄はキーバインドが戻ってしまう、 といった事がある。 コマンドラインのgitが編集用にvimを起動するのとは対照的だ。

これを解決するのは、原理的に難そうだ。

次に試したのが、neovim

組込みのLSPクライアントがあるとの事なので、 これを試した。

設定をluaで書き直すと良いと聞いたので、 折角なので、設定ディストリビューションを元にはじめてみた。 まだ設定がこなれてないが、なかなか良い感じ。

自分でした設定を移植すれば移行できると思うが、 腰が重いのでそのままになっている。

デスクトップ環境

xmonad+dzenのままかな。

waylandの波が近付いてきてる気がしていて、 そうなったらドラスティックに変えないといけないかもしれない。

dmenuのかわりに、rofiを一瞬試したが、 機能過剰のようだったので、dmenuに戻した。 部分一致時の候補ランキングを思った通りにカスタマイズしはじめたので、 しばらく調整がいる。

キーボード内のマクロでCtrl+Meta+Alt+Nを生成させ、 それをPC側でコマンド実行に割り当てた。 なかなか便利だ。 Superキーをリーダーにした、リーダーマクロを導入したい。

ハードウエア

  • メインデスクトップ: Ryzen
  • ノートPCs: X250, X260, X280
  • 開発サーバー: Intel i5-7267U
  • NAS: MicroServer
  • NAS2: BananaPi M5
  • 携帯: ALLDOCUBE iPlay50, iPlay50 mini pro

X250とX260

X230からX250に乗り換え。

今年は買わない予定だったけど、X260を買った。 メモリの世代が代わったので、X260はまだ新しいOSを試すとかそういう用途になってる。

HID

3mk(2023)3mk(2022)を家と職場で使ってる。

ネットワーク

渋谷でDocomoのネットワークが遅い時が多い。 Docomoなのに。

バックアップ

特にいじってない。

先月からZFSにバグがあって大騒ぎになっている。 データの健全性はZFSに100%依存してるので、こういう事があると困るなぁ。

プログラミング

仕事ではC++、Java、TypeScriptとか、 趣味だとPythonとかJavaScriptとかCとかC++かな。

今年は新しい言語を作ろうとしたが、 ちょっと腕力が足りなかった。

携帯

Smile1 tabletをスマホとして使っていて、 メモリが足りない事があったのと、 画面がもっと広くてもいいんじゃないかと調子に載ったので、 同じALLDOCUBEのiPlay50という10インチタブレットを買って乗り換えた。

1年弱腰にさげて使ってるが、普通に便利。

この先どうするか迷っている、 もっとでかいスマホに乗り換えるのか。 はたまた普通のスマホにもどしてみるか。

ワークフロー

3DCADモデリング

  1. unisonでNASからワークスペースのファイルを取ってくる。
  2. AppImageのcq-editorでプロジェクトファイルをプレビュー
  3. Vimでソースを編集
  4. Dockerを使ってビルド
  5. gitでバージョン管理
  6. またunisonでNASに保存(この場合、.gitディレクトリごとNASに送られている)

また来年。