僕のNixOS全設定公開+解説付き(flake.nix,configuration.nix)日本語化・COSMICデスクトップ環境・AMDゲーミング環境
#flake.nix
{
description = "NixOS configuration with stable and unstable packages";
inputs = {
# Main channel (latest packages, unstable)
nixpkgs.url = "github:NixOS/nixpkgs/nixos-unstable";
# Stable channel (selectively used for stability)
nixpkgs-stable.url = "github:NixOS/nixpkgs/nixos-25.11";
};
outputs = { self, nixpkgs, nixpkgs-stable, ... }:
let
system = "x86_64-linux";
in
{
nixosConfigurations.nixos = nixpkgs.lib.nixosSystem {
inherit system;
# 全ての module に追加引数として渡される特殊な引数
specialArgs = {
inherit nixpkgs-stable;
};
modules = [
# メインの設定ファイル
./configuration.nix
# Overlay モジュール: pkgsStable を globally 利用可能にするための定義
({ pkgs, ... }: {
nixpkgs.overlays = [
(final: prev: {
pkgsStable = import nixpkgs-stable {
inherit system;
config.allowUnfree = true;
};
})
];
})
];
};
};
}#configuration.nix
{ config, pkgs, ... }:
{
imports = [
./hardware-configuration.nix
];
# -----------------------------------------------------------------------------
# 1. システム基本設定 (Kernel, Time, Bootloader)
# -----------------------------------------------------------------------------
boot.kernelPackages = pkgs.linuxPackages_latest;
boot.initrd.kernelModules = [
"amdgpu"
];
networking.timeServers = [ "ntp.nict.jp" ];
time.timeZone = "Asia/Tokyo";
boot.loader = {
timeout = 3;
efi = {
efiSysMountPoint = "/boot";
canTouchEfiVariables = true;
};
grub = {
enable = true;
efiSupport = true;
devices = [ "nodev" ];
useOSProber = true;
efiInstallAsRemovable = false;
extraEntriesBeforeNixOS = false;
# GRUB メニューエントリ (再起動・シャットダウン)
extraEntries = ''
menuentry "Reboot" { reboot }
menuentry "Poweroff" { halt }
'';
};
};
# -----------------------------------------------------------------------------
# 2. ネットワーク・ホスト名・ファイアウォール
# -----------------------------------------------------------------------------
networking.hostName = "nixos";
networking.networkmanager.enable = true;
networking.firewall = {
enable = true;
allowedTCPPorts = [ 53317 2049 8080 ];
};
# -----------------------------------------------------------------------------
# 3. ロケール・言語環境 (i18n)
# -----------------------------------------------------------------------------
i18n.defaultLocale = "ja_JP.UTF-8";
i18n.extraLocaleSettings = {
LC_ADDRESS = "ja_JP.UTF-8";
LC_IDENTIFICATION = "ja_JP.UTF-8";
LC_MEASUREMENT = "ja_JP.UTF-8";
LC_MONETARY = "ja_JP.UTF-8";
LC_NAME = "ja_JP.UTF-8";
LC_NUMERIC = "ja_JP.UTF-8";
LC_PAPER = "ja_JP.UTF-8";
LC_TELEPHONE = "ja_JP.UTF-8";
LC_TIME = "ja_JP.UTF-8";
};
i18n.inputMethod = {
type = "fcitx5";
enable = true;
fcitx5.waylandFrontend = true;
fcitx5.addons = with pkgs; [
pkgsStable.fcitx5-mozc
pkgsStable.fcitx5-gtk
];
};
# -----------------------------------------------------------------------------
# 4. フォント設定
# -----------------------------------------------------------------------------
fonts = {
packages = with pkgs; [
pkgsStable.migu
pkgsStable.noto-fonts-cjk-sans
pkgsStable.noto-fonts-cjk-serif
pkgsStable.noto-fonts-color-emoji
pkgsStable.ipafont
];
fontDir.enable = true;
fontconfig = {
enable = true;
defaultFonts = {
serif = [ "Noto Sans CJK JP" ];
sansSerif = [ "Noto Sans CJK JP" ];
monospace = [ "Migu 1M" ];
};
};
};
# -----------------------------------------------------------------------------
# 5. Nix / Flakes 設定 (システムポリシー)
# -----------------------------------------------------------------------------
nix.settings.experimental-features = [ "nix-command" "flakes" ];
nix.settings.auto-optimise-store = true;
# -----------------------------------------------------------------------------
# 6. デスクトップ環境 (Cosmic)
# -----------------------------------------------------------------------------
services.desktopManager.cosmic = {
enable = true;
xwayland.enable = true;
showExcludedPkgsWarning = false;
};
environment.cosmic.excludePackages = with pkgs; [
cosmic-term
cosmic-files
];
services.displayManager.cosmic-greeter.enable = true;
services.system76-scheduler.enable = true;
environment.sessionVariables.COSMIC_DATE_CONTROL_ENABLED = "1";
environment.variables = {
TERMINAL = "ghostty";
};
xdg.mime.defaultApplications = {
"inode/directory" = [ "thunar.desktop" ];
};
# -----------------------------------------------------------------------------
# 7. サウンド・メディア (PipeWire)
# -----------------------------------------------------------------------------
services.pulseaudio.enable = false;
security.rtkit.enable = true;
services.pipewire = {
enable = true;
alsa.enable = true;
alsa.support32Bit = true;
pulse.enable = true;
};
# -----------------------------------------------------------------------------
# 8. ユーザー・グループ設定
# -----------------------------------------------------------------------------
users.users.takeshi = {
isNormalUser = true;
description = "takeshi";
shell = pkgs.fish;
extraGroups = [ "networkmanager" "wheel" "video" "docker" "render" "vboxusers" "libvirtd" "kvm"];
};
users.groups.video.members = [ "takeshi" ];
users.groups.render.members = [ "takeshi" ];
services.displayManager.autoLogin = {
enable = true;
user = "takeshi";
};
programs.fish.enable = true;
# -----------------------------------------------------------------------------
# 9. ハードウェア・デバイス (Bluetooth, GPU, Swap,電源管理)
# -----------------------------------------------------------------------------
hardware.bluetooth = {
package = pkgs.bluez;
enable = true;
powerOnBoot = true;
settings.General = {
Experimental = true;
FastConnectable = true;
};
settings.Policy.AutoEnable = true;
};
services.blueman.enable = true;
services.xserver.videoDrivers = [ "amdgpu" ];
hardware.graphics = {
enable = true;
extraPackages = with pkgs; [
mesa vulkan-tools rocmPackages.rocminfo rocmPackages.clr.icd libva
];
};
hardware.amdgpu.opencl.enable = true;
environment.variables = {
RUSTICL_ENABLE = "radeonsi";
HSA_OVERRIDE_GFX_VERSION = "11.0.1";
};
services.auto-cpufreq = {
enable = true;
settings = {
battery = {
governor = "powersave";
turbo = "auto";
};
charger = {
governor = "performance";
turbo = "auto";
};
};
};
services.power-profiles-daemon.enable = false;
# -----------------------------------------------------------------------------
# 10. ゲーム・Steam
# -----------------------------------------------------------------------------
hardware.steam-hardware.enable = true;
programs.steam = {
enable = true;
fontPackages = with pkgs; [ pkgsStable.migu ];
remotePlay.openFirewall = true;
localNetworkGameTransfers.openFirewall = true;
package = pkgs.steam.override {
extraPkgs = pkgs: with pkgs; [
pkgsStable.migu
pkgsStable.noto-fonts-cjk-sans
gnome-themes-extra
adwaita-icon-theme
];
extraEnv = {
LANG = "ja_JP.UTF-8";
LC_ALL = "ja_JP.UTF-8";
LANGUAGE = "ja_JP.UTF-8";
FONTCONFIG_PATH = "/etc/fonts";
XCURSOR_THEME = "Adwaita";
MANGOHUD = "1";
OBS_VKCAPTURE = "1";
};
};
};
programs.gamemode.enable = true;
programs.gamemode.settings.general.renice = 10;
# -----------------------------------------------------------------------------
# 11. 外部サービス (Blender, Ollama, Dropbox, Sunshine など)
# -----------------------------------------------------------------------------
services.blendfarm.enable = true;
services.blendfarm.blenderPackage = pkgs.blender;
services.ratbagd.enable = true;
services.ratbagd.package = pkgs.libratbag;
services.sunshine = {
enable = true;
autoStart = true;
openFirewall = true;
capSysAdmin = true;
package = pkgs.sunshine;
};
systemd.user.services.dropbox = {
description = "Dropbox Service";
wantedBy = [ "graphical-session.target" ];
environment.QT_QPA_PLATFORM = "xcb";
serviceConfig = {
ExecStart = "${pkgs.dropbox}/bin/dropbox";
Restart = "on-failure";
RestartSec = "10s";
};
};
# -----------------------------------------------------------------------------
# 12. 仮想化 (Docker, Podman)
# -----------------------------------------------------------------------------
virtualisation.docker = {
enable = true;
daemon.settings = {
experimental = true;
default-address-pools = [{
base = "172.30.0.0/16";
size = 24;
}];
};
};
virtualisation.podman.enable = true;
programs.virt-manager.enable = true;
virtualisation.spiceUSBRedirection.enable = true;
users.groups.libvirtd.members = ["takeshi"];
services.qemuGuest.enable = true;
services.spice-vdagentd.enable = true;
services.spice-autorandr.enable = true;
virtualisation = {
libvirtd = {
enable = true;
qemu = {
package = pkgs.qemu_kvm;
swtpm.enable = true;
vhostUserPackages = [ pkgs.virtiofsd ];
};
};
};
# -----------------------------------------------------------------------------
# 13. ツール・アプリケーション群
# -----------------------------------------------------------------------------
programs.thunar = {
enable =true;
plugins = with pkgs; [
thunar-vcs-plugin
thunar-shares-plugin
thunar-archive-plugin
thunar-dropbox-plugin
thunar-media-tags-plugin
thunar-volman
];
};
services.gvfs.enable = true;
services.tumbler.enable = true;
programs.gnome-disks.enable = true;
programs.obs-studio.enable = true;
programs.localsend.enable = true;
programs.localsend.openFirewall = true;
programs.gpu-screen-recorder.enable = true;
hardware.logitech.wireless.enable = true;
hardware.logitech.wireless.enableGraphical = true;
# -----------------------------------------------------------------------------
# 14. システムパッケージ (Flatpak,environment.systemPackages)
# -----------------------------------------------------------------------------
# --- プロプライエタリパッケージの利用許可 ---
nixpkgs.config.allowUnfree = true;
# --- 外部プラットフォーム設定 (Flatpak) ---
services.flatpak = {
enable = true;
};
environment.systemPackages = with pkgs; [
# --- 基本ツール / CLI ---
bash-language-server
neovim
wget
git
gh
firewalld
fastfetch
htop
flatpak
flatpak-builder
flatpak-xdg-utils
boost
ghostty
libinput-gestures
auto-cpufreq
pciutils
# --- シェル / エディタ ---
bash
fish
(vscode-with-extensions.override {
vscodeExtensions = with vscode-extensions; [
ms-ceintl.vscode-language-pack-ja
vscode-extensions.bbenoist.nix
];
})
# --- デスクトップ / Cosmic 関連パッケージ ---
cosmic-greeter
cosmic-edit
cosmic-player
cosmic-bg
cosmic-osd
cosmic-idle
cosmic-comp
cosmic-randr
cosmic-panel
cosmic-icons
cosmic-session
cosmic-applets
cosmic-settings
cosmic-launcher
cosmic-protocols
cosmic-wallpapers
cosmic-screenshot
cosmic-applibrary
cosmic-notifications
cosmic-initial-setup
cosmic-settings-daemon
cosmic-ext-tweaks
# --- テーマ・アイコン ---
candy-icons
# --- XFCE 関連 ---
pkgs.ristretto
pkgs.tumbler
# --- KDE 関連 ---
kdePackages.ark
# --- ブラウザ / 通信 ---
firefox
google-chrome
localsend
thunderbird
discord
dropbox
# --- オフィス / 日常用途 ---
libreoffice
obsidian
tradingview
freecad
# --- フォント (systemPackages としての追加) ---
pkgsStable.noto-fonts-cjk-sans
pkgsStable.noto-fonts-cjk-serif
pkgsStable.noto-fonts-color-emoji
pkgsStable.migu
pkgsStable.wqy_zenhei
# --- マルチメディア / 配信 ---
obs-studio
ffmpeg-full
vlc
audacity
handbrake
obs-studio-plugins.wlrobs
obs-studio-plugins.obs-backgroundremoval
obs-studio-plugins.obs-pipewire-audio-capture
obs-studio-plugins.obs-vaapi
obs-studio-plugins.obs-gstreamer
obs-studio-plugins.obs-vkcapture
# --- 画像 / 動画制作 ---
gimp-with-plugins
blender
kdePackages.kdenlive
# --- ゲーム / Steam 関連ツール ---
steam-run
protonup-qt
gamemode
lsfg-vk
lsfg-vk-ui
sunshine
moonlight-qt
# --- GPU / AMD 開発・管理ツール ---
mesa
libvdpau-va-gl
xf86-video-amdgpu
amdgpu_top
amdenc
amdctl
amd-blis
amdfwtool
amd-ucodegen
amd-libflame
microcode-amd
radeon-profile
radeontools
rocmPackages.clr
rocmPackages.rpp
rocmPackages.rocminfo
# --- 周辺機器 / デバイス管理 ---
gparted
gnome-disk-utility
piper
libratbag
solaar
librepods
# --- コンテナ / 仮想化 ---
docker
docker-client
distrobox
podman
lshw
pkgsStable.bottles
pkgsStable.bottles-unwrapped
virt-manager
virt-viewer
qemu_kvm
vde2
libguestfs
spice-vdagent
spice-autorandr
# --- AI / GPU Compute ---
lmstudio
# --- 録画 / スクリーンキャプチャ ---
gpu-screen-recorder
gpu-screen-recorder-gtk
];
# -----------------------------------------------------------------------------
# 15. セキュリティ・SSH
# -----------------------------------------------------------------------------
programs.gnupg.agent = {
enable = true;
enableSSHSupport = true;
};
services.openssh.enable = true;
# -----------------------------------------------------------------------------
# 16. NixOS バージョン固定
# -----------------------------------------------------------------------------
system.stateVersion = "25.11";
}以上が設定ファイルの全文になります。
今回は、「NixOSに興味はあるけど、設定ファイルが難しそう…」と足踏みしている初心者の方に向けて、僕が実際に毎日使っているNixOSの全設定ファイル(flake.nixとconfiguration.nix)を公開し、各項目がどんな意味を持っているのかを丁寧に解説していきます!
ちなみに僕は今までNixOSに関する記事をたくさん書いてきました!
よかったらこちらも読んでみてください!
最新版
flake.nix
NixOSには従来の設定方法に加えて、「Flakes(フレイクス)」と呼ばれる新しいパッケージ・設定管理の仕組みがあります。僕の環境ではこのFlakesを採用しています。これにより、どのバージョンのパッケージを使ったかが厳密にロックされ、環境の再現性が格段に上がります 。
まずは、環境の入り口となる flake.nix から見ていきましょう。
Nix
{
description = "NixOS configuration with stable and unstable packages";
inputs = {
# メインのチャンネル(最新パッケージが降ってくる unstable)
nixpkgs.url = "github:NixOS/nixpkgs/nixos-unstable";
# 安定版のチャンネル(フォントなど安定させたいもの向け)
nixpkgs-stable.url = "github:NixOS/nixpkgs/nixos-25.11";
};
outputs = { self, nixpkgs, nixpkgs-stable, ... }:
let
system = "x86_64-linux";
in
{
nixosConfigurations.nixos = nixpkgs.lib.nixosSystem {
inherit system;
# 全ての module に追加引数として渡される特殊な引数
specialArgs = {
inherit nixpkgs-stable;
};
modules = [
./configuration.nix
# Overlay モジュール: pkgsStable を全体で利用可能にする
({ pkgs, ... }: {
nixpkgs.overlays = [
(final: prev: {
pkgsStable = import nixpkgs-stable {
inherit system;
config.allowUnfree = true;
};
})
];
})
];
};
};
}
【解説】
inputs(インプット): ここでは、どこからパッケージを取得するかを定義しています 。僕は基本的に最新機能が使える nixos-unstable(不安定版・最新版)をメインにしつつ、一部の安定させたいパッケージのために nixos-25.11 という安定版(stable)も同時に読み込んでいます 。
outputsとOverlay(オーバーレイ): 読み込んだ安定版のパッケージを、システム全体で pkgsStable という名前で呼び出せるように「Overlay(上書き・拡張)」の設定をしています 。これにより、「基本は最新版を使うけど、日本語入力や特定のフォントだけは安定版を使いたい」といった柔軟な運用が可能になります。プロプライエタリ(非オープンソース)なソフトウェアも許可(allowUnfree = true)しています 。
configuration.nix
ここからは、実際のシステム設定を記述する configuration.nix の中身をセクションごとに分けて解説していきます。
① システム基本設定とブートローダー
Nix
imports = [
./hardware-configuration.nix
];
boot.kernelPackages = pkgs.linuxPackages_latest;
boot.initrd.kernelModules = [ "amdgpu" ];
networking.timeServers = [ "ntp.nict.jp" ];
time.timeZone = "Asia/Tokyo";
boot.loader = {
timeout = 3;
efi = {
efiSysMountPoint = "/boot";
canTouchEfiVariables = true;
};
grub = {
enable = true;
efiSupport = true;
devices = [ "nodev" ];
useOSProber = true;
efiInstallAsRemovable = false;
extraEntriesBeforeNixOS = false;
extraEntries = ''
menuentry "Reboot" { reboot }
menuentry "Poweroff" { halt }
'';
};
};
【解説】
カーネルとモジュール: pkgs.linuxPackages_latest を指定し、常に最新のLinuxカーネルを使用しています 。新しいハードウェア(特にGPU)の性能を引き出すために重要です。また、起動時の初期RAMディスク(initrd)に amdgpu(AMDのグラフィックドライバ)を組み込んで、起動直後から適切な画面解像度を出せるようにしています 。
ブートローダー (GRUB): OSを起動するためのプログラムです。Windowsなど他のOSとデュアルブートしやすいように useOSProber = true に設定し、GRUBメニューに再起動やシャットダウンの項目(extraEntries)も追加して利便性を高めています 。
② ネットワークと日本語化(i18n / フォント)
Nix
networking.hostName = "nixos";
networking.networkmanager.enable = true;
networking.firewall = {
enable = true;
allowedTCPPorts = [ 53317 2049 8080 ];
};
i18n.defaultLocale = "ja_JP.UTF-8";
i18n.extraLocaleSettings = {
LC_ADDRESS = "ja_JP.UTF-8";
LC_IDENTIFICATION = "ja_JP.UTF-8";
# ... 中略(すべて ja_JP.UTF-8 に統一)...
};
i18n.inputMethod = {
type = "fcitx5";
enable = true;
fcitx5.waylandFrontend = true;
fcitx5.addons = with pkgs; [
pkgsStable.fcitx5-mozc
pkgsStable.fcitx5-gtk
];
};
fonts = {
packages = with pkgs; [
pkgsStable.migu
pkgsStable.noto-fonts-cjk-sans
pkgsStable.noto-fonts-cjk-serif
pkgsStable.noto-fonts-color-emoji
pkgsStable.ipafont
];
fontDir.enable = true;
fontconfig = {
enable = true;
defaultFonts = {
serif = [ "Noto Sans CJK JP" ];
sansSerif = [ "Noto Sans CJK JP" ];
monospace = [ "Migu 1M" ];
};
};
};
【解説】
ネットワーク: NetworkManagerを有効にしてWi-Fiや有線LANを管理しています 。ファイアウォールもオンにしつつ、ファイル共有やローカル通信用に特定のポート(53317, 2049, 8080)だけ穴を開けています 。
日本語入力 (Fcitx5 + Mozc): Linuxの鬼門とも言える日本語入力ですが、現在は fcitx5 と mozc(Google日本語入力のオープンソース版)の組み合わせが最も安定しています 。ここで、先ほど flake.nix で定義した pkgsStable(安定版)を指定しているのがポイントです。入力メソッドが不安定だと記事執筆などの作業に支障が出るため、あえて手堅いバージョンを使っています 。
フォント: Noto Sans CJK(Googleのゴシック/明朝体)やプログラミング用に見やすい Migu フォントをインストールし、システム全体のデフォルトフォントとして指定しています 。
③ デスクトップ環境 (Cosmic) とオーディオ
Nix
services.desktopManager.cosmic = {
enable = true;
xwayland.enable = true;
showExcludedPkgsWarning = false;
};
environment.cosmic.excludePackages = with pkgs; [
cosmic-term
cosmic-files
];
services.displayManager.cosmic-greeter.enable = true;
services.system76-scheduler.enable = true;
environment.variables = {
TERMINAL = "ghostty";
};
xdg.mime.defaultApplications = {
"inode/directory" = [ "thunar.desktop" ];
};
programs.thunar = {
enable =true;
plugins = with pkgs; [
thunar-vcs-plugin
thunar-shares-plugin
thunar-archive-plugin
thunar-dropbox-plugin
thunar-media-tags-plugin
thunar-volman
];
};
services.pulseaudio.enable = false;
security.rtkit.enable = true;
services.pipewire = {
enable = true;
alsa.enable = true;
alsa.support32Bit = true;
pulse.enable = true;
};
【解説】
Cosmic デスクトップ: ここは僕の環境の大きな特徴です!System76というPCメーカーがサードパーティ製に頼らず、サクサク動くRust言語でゼロから開発している最新のデスクトップ環境「Cosmic」を採用しています 。標準のターミナルやファイルマネージャーは僕の好みで除外(excludePackages)し、代わりにターミナルエディタとしては非常に高速な ghostty を、ファイラーはthunarをデフォルトに設定しています 。
thunarのプラグイン:プラグインを設定することで、より便利に使用できます。
オーディオ (PipeWire): 古いPulseAudioは無効化し、現代のLinuxの標準である PipeWire を採用しています 。遅延が少なく、ゲームや動画編集、OBS Studioでの配信・録画などで威力を発揮します 。
④ ユーザー設定とハードウェア・GPU
Nix
users.users.takeshi = {
isNormalUser = true;
description = "takeshi";
shell = pkgs.fish;
extraGroups = [ "networkmanager" "wheel" "video" "docker" "render" "vboxusers" "libvirtd" "kvm"];
};
# ハードウェア・デバイス
hardware.bluetooth = {
package = pkgs.bluez;
enable = true;
powerOnBoot = true;
settings.General = { Experimental = true; FastConnectable = true; };
settings.Policy.AutoEnable = true;
};
services.xserver.videoDrivers = [ "amdgpu" ];
hardware.graphics = {
enable = true;
extraPackages = with pkgs; [
mesa vulkan-tools rocmPackages.rocminfo rocmPackages.clr.icd libva
];
};
hardware.amdgpu.opencl.enable = true;
environment.variables = {
RUSTICL_ENABLE = "radeonsi";
HSA_OVERRIDE_GFX_VERSION = "11.0.1";
};
【解説】
ユーザーとグループ: 僕のアカウント「takeshi」の設定です。デフォルトシェルを使いやすい fish に変更し、Dockerや仮想化(KVM)、GPU制御(video, render)の権限グループに所属させています 。
GPU (AMD): Linuxと非常に相性が良いAMD製GPUの設定です。単に画面を映すだけでなく、Blenderなどの3DソフトやAI用途でGPU計算機能(OpenCLやROCm)をフル活用するためのパッケージ群を追加しています 。環境変数 HSA_OVERRIDE_GFX_VERSION を設定することで、ROCmの互換性を高めています 。
⑤ ゲーミング&仮想化環境(ここがLinuxの醍醐味!)
Nix
hardware.steam-hardware.enable = true;
programs.steam = {
enable = true;
fontPackages = with pkgs; [ pkgsStable.migu ];
remotePlay.openFirewall = true;
localNetworkGameTransfers.openFirewall = true;
package = pkgs.steam.override {
extraPkgs = pkgs: with pkgs; [
pkgsStable.migu
pkgsStable.noto-fonts-cjk-sans
];
extraEnv = {
LANG = "ja_JP.UTF-8";
MANGOHUD = "1";
OBS_VKCAPTURE = "1";
};
};
};
programs.gamemode.enable = true;
programs.gamemode.settings.general.renice = 10;
services.sunshine = {
enable = true;
autoStart = true;
openFirewall = true;
capSysAdmin = true;
package = pkgs.sunshine;
};
virtualisation.docker = { enable = true; };
virtualisation.podman.enable = true;
virtualisation = {
libvirtd = {
enable = true;
qemu = {
package = pkgs.qemu_kvm;
swtpm.enable = true;
vhostUserPackages = [ pkgs.virtiofsd ];
};
};
};
【解説】
Steamとゲーム: 休日に妻とゲームを楽しむため、Steam周りの設定はかなり念入りです。Linux版Steamで日本語が文字化けしないよう、フォントを強制的に読み込ませ、環境変数を日本語(ja_JP.UTF-8)に設定しています 。また、ゲームのパフォーマンスを自動で引き上げる gamemode も有効化しています 。
Sunshine: 別の端末(スマホやリビングのPC)からリモートでゲームをプレイするためのホストサーバーアプリです 。
仮想化 (Docker / KVM): コンテナ技術のDockerやPodmanに加え、QEMU/KVM(libvirtd)を有効化しています 。これは、どうしてもWindows環境が必要になった際に、仮想マシン上でWindows 11をフルスピードで動かすための基盤になります 。
終わりに
いかがでしたでしょうか。コードが長く見えて最初は圧倒されるかもしれませんが、これら全ての設定が「たったひとつのテキストファイル群」にまとまっているのがNixOSの最大の魅力です。
PCを買い替えても、OSを再インストールしても、この flake.nix と configuration.nix を持ってくれば、アプリから日本語環境、細かなGPU設定まで、全く同じ環境が一瞬で復活します。
このnoteが、これからNixOSを触ってみようという方の参考になれば幸いです。もし設定でわからないことがあれば、ぜひコメントで教えてくださいね。これからもガジェットレビューやLinuxに関する情報を発信していきますので、よろしくお願いします!
より詳しい解説はこちらでしています。
いいなと思ったら応援しよう!
よろしければ応援お願いします! いただいたチップはクリエイターとしての活動費に使わせていただきます!