configuration.nix - Tokyo-NixOS/Tokyo-NixOS-Meetup-Wiki GitHub Wiki
configuration.nix
でシステムの様々な設定ができます。
configuration.nix
を変更した後はnixos-rebuild switch
コマンドでシステムを再構築する必要があります。
$ nixos-rebuild switch
Linuxカーネルの4.1を利用する場合は。
boot = {
kernelPackages = pkgs.linuxPackages_4_1;
};
利用できるカーネルは
$ nix-env -qaP 'linux'
services = {
xserver = {
synaptics.enable = true;
synaptics.twoFingerScroll = true;
};
};
システムにインストールするフォントとfontconfigの設定はconfiguration.nix
でできます
fonts = {
fonts = with pkgs; [
ipafont
powerline-fonts
baekmuk-ttf
kochi-substitute
carlito
];
fontconfig = {
defaultFonts = {
monospace = [
"DejaVu Sans Mono for Powerline"
"IPAGothic"
"Baekmuk Dotum"
];
serif = [
"DejaVu Serif"
"IPAPMincho"
"Baekmuk Batang"
];
sansSerif = [
"DejaVu Sans"
"IPAPGothic"
"Baekmuk Dotum"
];
};
};
};
configuration.nix
は大きくなるとわかりにくいですが、
ファイルを分散する事で関連項目をまとめれます。
imports = [
./hardware-configuration.nix
./fonts.nix
];
/etc/nixos/fonts.nix
{ config, lib, pkgs, ... }:
{
fonts = {
fonts = with pkgs; [
ipafont
powerline-fonts
baekmuk-ttf
kochi-substitute
carlito
];
fontconfig = {
defaultFonts = {
monospace = [
"DejaVu Sans Mono for Powerline"
"IPAGothic"
"Baekmuk Dotum"
];
serif = [
"DejaVu Serif"
"IPAPMincho"
"Baekmuk Batang"
];
sansSerif = [
"DejaVu Sans"
"IPAPGothic"
"Baekmuk Dotum"
];
};
};
};
}
プリンター(HPプリンターの例、別なプリンターには別なドライバーが必要)
services = {
printing = {
enable = true;
drivers = [ pkgs.hplip ];
};
};
スキャナー(HPプリンターの例、別なプリンターには別なドライバーが必要)
hardware = {
sane.enable = true;
sane.extraBackends = [ pkgs.hplipWithPlugin ];
};
nixpkgs.config = {
allowUnfree = true;
firefox = {
enableAdobeFlash = true;
enableGoogleTalkPlugin = true;
};
chromium = {
enablePepperFlash = true;
enablePepperPDF = true;
};
};
{ config, pkgs, ... }:
let
# 16.09 チャンネル
pkgs-1609 = import (fetchTarball https://github.com/nixos/nixpkgs-channels/archive/nixos-16.09.tar.gz) {};
# unstable チャンネル
pkgs-unstable = import (fetchTarball https://github.com/nixos/nixpkgs-channels/archive/nixos-unstable.tar.gz) {};
# 特定なコミットのパッケージ
pkgs-58d44a3 = import (fetchTarball https://github.com/nixos/nixpkgs/archive/58d44a3.tar.gz) {};
in
{
#...
environment.systemPackages = [
pkgs.tree
# 16.09 pkgs
pkgs-1609.hello
# unstable pkgs
pkgs-unstable.htop
# 58d44a3 pkgs
pkgs-58d44a3.wireguard
];
}