NixOS + dwm だけで最低限のPC操作を快適にする方法
シンプルで軽量な dwm だけを使って、音量調整・バッテリー表示・画面輝度調整 など、最低限のPC設定をできるようにする方法を紹介します。デスクトップ環境(LXQtやXFCE)を入れなくても、CUIツールと軽量な常駐アプリだけでかなり快適になります。
基本方針
- dwm には GUI設定ツールがないので CLIベースで対応
xsetroot
やdwmblocks
でステータス表示sxhkd
などでキーボードショートカット対応
1. 必要パッケージ(configuration.nix
)
{ pkgs, ... }:
{
environment.systemPackages = with pkgs; [
pulseaudio
pavucontrol
alsa-utils
brightnessctl
acpi
sxhkd
dunst
networkmanager
bluez
blueman
xorg.xsetroot
];
networking.networkmanager.enable = true;
sound.enable = true;
hardware.pulseaudio.enable = true;
hardware.bluetooth.enable = true;
services.xserver.enable = true;
services.xserver.windowManager.dwm.enable = true;
}
2. 音量・輝度・バッテリーのコマンド例
音量調整(PulseAudio):
pactl set-sink-volume @DEFAULT_SINK@ +5%
pactl set-sink-volume @DEFAULT_SINK@ -5%
pactl set-sink-mute @DEFAULT_SINK@ toggle
バッテリー残量:
acpi -b
輝度調整:
brightnessctl s +10%
brightnessctl s 10%-
3. キー割り当て(sxhkd
)
XF86AudioRaiseVolume
pactl set-sink-volume @DEFAULT_SINK@ +5%
XF86AudioLowerVolume
pactl set-sink-volume @DEFAULT_SINK@ -5%
XF86MonBrightnessUp
brightnessctl s +10%
XF86MonBrightnessDown
brightnessctl s 10%-
4. ステータスバー(xsetroot
)のスクリプト例
#!/bin/sh
while true; do
VOL=$(pactl get-sink-volume @DEFAULT_SINK@ | grep -o '[0-9]\+%' | head -n1)
BAT=$(acpi | cut -d, -f 2 | tr -d ' ')
DATE=$(date '+%Y-%m-%d %H:%M')
xsetroot -name "VOL:$VOL | BAT:$BAT | $DATE"
sleep 10
done
5. オプション:Home Managerを使う場合
programs.sxhkd = {
enable = true;
keybindings = {
"XF86AudioRaiseVolume" = "pactl set-sink-volume @DEFAULT_SINK@ +5%";
"XF86AudioLowerVolume" = "pactl set-sink-volume @DEFAULT_SINK@ -5%";
"XF86MonBrightnessUp" = "brightnessctl s +10%";
};
};
まとめ
- dwm でも工夫すれば GUIなしで快適な操作が可能
sxhkd
+pactl
/brightnessctl
が超便利xsetroot
ordwmblocks
で情報も見やすく
余計なDEを入れず、軽くて統一感のある環境が好きな人には、NixOS + dwm 構成は非常におすすめです。