NixOS をメイン機として使えるようになりました。主な設定を紹介します。

2023-03-desktop.png
Figure 1: デスクトップ画面 (普通です)

背景

NixOS を minimal ISO image からインストールした場合、コンソール画面が立ち上がります。 GUI 環境の構築には、以下のような設定が必要です。

GUI 環境の選択

X Window System または Wayland を有効化して GUI ウィンドウを有効化します。

この選択はシステム全体の設定に影響する分岐点です。世の流れは Wayland に向かっていますが、未だハマり所が多そうなので、この記事では枯れた X を使用します。

WM / DE の導入

X の上には WM (window manager) や DE (desktop environment) を載せることができます。 WM を導入すると、ワークスペースなどの概念が利用できるようになります。 DE を導入すると、 WM の機能に加え、デバイス類の GUI や Dock が入ります。

DE に欠点があるとすれば、カスタマイズが難しくなることです。この記事では WM (i3wm) の上から DE に匹敵する環境を作っていきます。

NixOS の設定

neofetch

25 万円の PC 環境を誇示します。 Intel i7-12700 でビルドすると速い!

2023-03-neofetch.png
Figure 2: neofetch
デバイス類の設定

まずはハード面を有効化します。

未だ完全な設定とは言えません。やはり DE を使うのが無難です。

基本設定

普通のデスクトップ環境へ近づけていきます。

X11 + i3 + sxhkd
その他アプリ
2023-03-bitwig.png
Figure 3: Bitwig Studio

まとめ

Xorg と i3wm で普通のデスクトップ環境を構築しました。特に xdotool で floating window を出し入れできるようになったので満足しています。

#!/usr/bin/env -S bash -euE

# X11 scratchpad
# Thanks: https://github.com/jdpedersen1/scripts/blob/main/scratch

# TODO: `--class` or `--title`
matcher="$2"
oninit="$3"

if [ "$1" == "--class" ] ; then
  xdotool search --onlyvisible --class "$matcher" windowunmap \
      || xdotool search --class "$matcher" windowmap \
      || $oninit &
elif [ "$1" == "--title" ] ; then
  xdotool search --onlyvisible --name "$matcher" windowunmap \
      || xdotool search --name "$matcher" windowmap \
      || $oninit &
else
  echo "unknown arg1" 1>&2
fi