nixos: use only URI fragment in manual options links

This commit is contained in:
Bobby Rong
2021-07-04 08:24:44 +08:00
parent f8bdee0054
commit ad393d5f63
18 changed files with 81 additions and 99 deletions

View File

@@ -30,7 +30,7 @@ $ export \
``` ```
The second mechanism is to add the OpenCL driver package to The second mechanism is to add the OpenCL driver package to
[`hardware.opengl.extraPackages`](options.html#opt-hardware.opengl.extraPackages). [](#opt-hardware.opengl.extraPackages).
This links the ICD file under `/run/opengl-driver`, where it will be visible This links the ICD file under `/run/opengl-driver`, where it will be visible
to the ICD loader. to the ICD loader.
@@ -51,7 +51,7 @@ Platform Vendor Advanced Micro Devices, Inc.
Modern AMD [Graphics Core Modern AMD [Graphics Core
Next](https://en.wikipedia.org/wiki/Graphics_Core_Next) (GCN) GPUs are Next](https://en.wikipedia.org/wiki/Graphics_Core_Next) (GCN) GPUs are
supported through the rocm-opencl-icd package. Adding this package to supported through the rocm-opencl-icd package. Adding this package to
[`hardware.opengl.extraPackages`](options.html#opt-hardware.opengl.extraPackages) [](#opt-hardware.opengl.extraPackages)
enables OpenCL support: enables OpenCL support:
```nix ```nix
@@ -71,7 +71,7 @@ proprietary Intel OpenCL runtime, in the intel-ocl package, is an
alternative for Gen7 GPUs. alternative for Gen7 GPUs.
The intel-compute-runtime, beignet, or intel-ocl package can be added to The intel-compute-runtime, beignet, or intel-ocl package can be added to
[`hardware.opengl.extraPackages`](options.html#opt-hardware.opengl.extraPackages) [](#opt-hardware.opengl.extraPackages)
to enable OpenCL support. For example, for Gen8 and later GPUs, the following to enable OpenCL support. For example, for Gen8 and later GPUs, the following
configuration can be used: configuration can be used:
@@ -88,7 +88,7 @@ compute API for GPUs. It is used directly by games or indirectly though
compatibility layers like compatibility layers like
[DXVK](https://github.com/doitsujin/dxvk/wiki). [DXVK](https://github.com/doitsujin/dxvk/wiki).
By default, if [`hardware.opengl.driSupport`](options.html#opt-hardware.opengl.driSupport) By default, if [](#opt-hardware.opengl.driSupport)
is enabled, mesa is installed and provides Vulkan for supported hardware. is enabled, mesa is installed and provides Vulkan for supported hardware.
Similar to OpenCL, Vulkan drivers are loaded through the *Installable Similar to OpenCL, Vulkan drivers are loaded through the *Installable
@@ -108,7 +108,7 @@ $ export \
``` ```
The second mechanism is to add the Vulkan driver package to The second mechanism is to add the Vulkan driver package to
[`hardware.opengl.extraPackages`](options.html#opt-hardware.opengl.extraPackages). [](#opt-hardware.opengl.extraPackages).
This links the ICD file under `/run/opengl-driver`, where it will be This links the ICD file under `/run/opengl-driver`, where it will be
visible to the ICD loader. visible to the ICD loader.
@@ -138,7 +138,7 @@ Modern AMD [Graphics Core
Next](https://en.wikipedia.org/wiki/Graphics_Core_Next) (GCN) GPUs are Next](https://en.wikipedia.org/wiki/Graphics_Core_Next) (GCN) GPUs are
supported through either radv, which is part of mesa, or the amdvlk supported through either radv, which is part of mesa, or the amdvlk
package. Adding the amdvlk package to package. Adding the amdvlk package to
[`hardware.opengl.extraPackages`](options.html#opt-hardware.opengl.extraPackages) [](#opt-hardware.opengl.extraPackages)
makes amdvlk the default driver and hides radv and lavapipe from the device list. makes amdvlk the default driver and hides radv and lavapipe from the device list.
A specific driver can be forced as follows: A specific driver can be forced as follows:

View File

@@ -39,8 +39,8 @@ services.kubernetes.roles = [ "master" "node" ];
``` ```
Note: Assigning either role will also default both Note: Assigning either role will also default both
[`services.kubernetes.flannel.enable`](options.html#opt-services.kubernetes.flannel.enable) [](#opt-services.kubernetes.flannel.enable)
and [`services.kubernetes.easyCerts`](options.html#opt-services.kubernetes.easyCerts) and [](#opt-services.kubernetes.easyCerts)
to true. This sets up flannel as CNI and activates automatic PKI bootstrapping. to true. This sets up flannel as CNI and activates automatic PKI bootstrapping.
As of kubernetes 1.10.X it has been deprecated to open non-tls-enabled As of kubernetes 1.10.X it has been deprecated to open non-tls-enabled
@@ -48,12 +48,12 @@ ports on kubernetes components. Thus, from NixOS 19.03 all plain HTTP
ports have been disabled by default. While opening insecure ports is ports have been disabled by default. While opening insecure ports is
still possible, it is recommended not to bind these to other interfaces still possible, it is recommended not to bind these to other interfaces
than loopback. To re-enable the insecure port on the apiserver, see options: than loopback. To re-enable the insecure port on the apiserver, see options:
[`services.kubernetes.apiserver.insecurePort`](options.html#opt-services.kubernetes.apiserver.insecurePort) and [](#opt-services.kubernetes.apiserver.insecurePort) and
[`services.kubernetes.apiserver.insecureBindAddress`](options.html#opt-services.kubernetes.apiserver.insecureBindAddress) [](#opt-services.kubernetes.apiserver.insecureBindAddress)
::: {.note} ::: {.note}
As of NixOS 19.03, it is mandatory to configure: As of NixOS 19.03, it is mandatory to configure:
[`services.kubernetes.masterAddress`](options.html#opt-services.kubernetes.masterAddress). [](#opt-services.kubernetes.masterAddress).
The masterAddress must be resolveable and routeable by all cluster nodes. The masterAddress must be resolveable and routeable by all cluster nodes.
In single node clusters, this can be set to `localhost`. In single node clusters, this can be set to `localhost`.
::: :::
@@ -69,19 +69,19 @@ Authorization](https://kubernetes.io/docs/reference/access-authn-authz/rbac/).
The NixOS kubernetes module provides an option for automatic certificate The NixOS kubernetes module provides an option for automatic certificate
bootstrapping and configuration, bootstrapping and configuration,
[`services.kubernetes.easyCerts`](options.html#opt-services.kubernetes.easyCerts). [](#opt-services.kubernetes.easyCerts).
The PKI bootstrapping process involves setting up a certificate authority (CA) The PKI bootstrapping process involves setting up a certificate authority (CA)
daemon (cfssl) on the kubernetes master node. cfssl generates a CA-cert daemon (cfssl) on the kubernetes master node. cfssl generates a CA-cert
for the cluster, and uses the CA-cert for signing subordinate certs issued for the cluster, and uses the CA-cert for signing subordinate certs issued
to each of the cluster components. Subsequently, the certmgr daemon monitors to each of the cluster components. Subsequently, the certmgr daemon monitors
active certificates and renews them when needed. For single node Kubernetes active certificates and renews them when needed. For single node Kubernetes
clusters, setting [`services.kubernetes.easyCerts`](options.html#opt-services.kubernetes.easyCerts) clusters, setting [](#opt-services.kubernetes.easyCerts)
= true is sufficient and no further action is required. For joining extra node = true is sufficient and no further action is required. For joining extra node
machines to an existing cluster on the other hand, establishing initial machines to an existing cluster on the other hand, establishing initial
trust is mandatory. trust is mandatory.
To add new nodes to the cluster: On any (non-master) cluster node where To add new nodes to the cluster: On any (non-master) cluster node where
[`services.kubernetes.easyCerts`](options.html#opt-services.kubernetes.easyCerts) [](#opt-services.kubernetes.easyCerts)
is enabled, the helper script `nixos-kubernetes-node-join` is available on PATH. is enabled, the helper script `nixos-kubernetes-node-join` is available on PATH.
Given a token on stdin, it will copy the token to the kubernetes secrets directory Given a token on stdin, it will copy the token to the kubernetes secrets directory
and restart the certmgr service. As requested certificates are issued, the and restart the certmgr service. As requested certificates are issued, the
@@ -96,7 +96,7 @@ In order to interact with an RBAC-enabled cluster as an administrator,
one needs to have cluster-admin privileges. By default, when easyCerts one needs to have cluster-admin privileges. By default, when easyCerts
is enabled, a cluster-admin kubeconfig file is generated and linked into is enabled, a cluster-admin kubeconfig file is generated and linked into
`/etc/kubernetes/cluster-admin.kubeconfig` as determined by `/etc/kubernetes/cluster-admin.kubeconfig` as determined by
[`services.kubernetes.pki.etcClusterAdminKubeconfig`](options.html#opt-services.kubernetes.pki.etcClusterAdminKubeconfig). [](#opt-services.kubernetes.pki.etcClusterAdminKubeconfig).
`export KUBECONFIG=/etc/kubernetes/cluster-admin.kubeconfig` will make `export KUBECONFIG=/etc/kubernetes/cluster-admin.kubeconfig` will make
kubectl use this kubeconfig to access and authenticate the cluster. The kubectl use this kubeconfig to access and authenticate the cluster. The
cluster-admin kubeconfig references an auto-generated keypair owned by cluster-admin kubeconfig references an auto-generated keypair owned by

View File

@@ -42,14 +42,14 @@ something as a kernel module).
Kernel modules for hardware devices are generally loaded automatically Kernel modules for hardware devices are generally loaded automatically
by `udev`. You can force a module to be loaded via by `udev`. You can force a module to be loaded via
[`boot.kernelModules`](options.html#opt-boot.kernelModules), e.g. [](#opt-boot.kernelModules), e.g.
```nix ```nix
boot.kernelModules = [ "fuse" "kvm-intel" "coretemp" ]; boot.kernelModules = [ "fuse" "kvm-intel" "coretemp" ];
``` ```
If the module is required early during the boot (e.g. to mount the root If the module is required early during the boot (e.g. to mount the root
file system), you can use [`boot.initrd.kernelModules`](options.html#opt-boot.initrd.kernelModules): file system), you can use [](#opt-boot.initrd.kernelModules):
```nix ```nix
boot.initrd.kernelModules = [ "cifs" ]; boot.initrd.kernelModules = [ "cifs" ];
@@ -59,7 +59,7 @@ This causes the specified modules and their dependencies to be added to
the initial ramdisk. the initial ramdisk.
Kernel runtime parameters can be set through Kernel runtime parameters can be set through
[`boot.kernel.sysctl`](options.html#opt-boot.kernel.sysctl), e.g. [](#opt-boot.kernel.sysctl), e.g.
```nix ```nix
boot.kernel.sysctl."net.ipv4.tcp_keepalive_time" = 120; boot.kernel.sysctl."net.ipv4.tcp_keepalive_time" = 120;

View File

@@ -34,7 +34,7 @@ SHA256:yjxl3UbTn31fLWeyLYTAKYJPRmzknjQZoyG8gSNEoIE my-user@workstation
To keep the key safe, change the ownership to `root:root` and make sure the permissions are `600`: To keep the key safe, change the ownership to `root:root` and make sure the permissions are `600`:
OpenSSH normally refuses to use the key if it's not well-protected. OpenSSH normally refuses to use the key if it's not well-protected.
The file system can be configured in NixOS via the usual [fileSystems](options.html#opt-fileSystems) option. The file system can be configured in NixOS via the usual [fileSystems](#opt-fileSystems) option.
Here's a typical setup: Here's a typical setup:
```nix ```nix
{ {

View File

@@ -17,7 +17,7 @@ appropriate section of the Subversion
book](http://svnbook.red-bean.com/en/1.7/svn-book.html#svn.serverconfig.httpd). book](http://svnbook.red-bean.com/en/1.7/svn-book.html#svn.serverconfig.httpd).
To configure, include in `/etc/nixos/configuration.nix` code to activate To configure, include in `/etc/nixos/configuration.nix` code to activate
Apache HTTP, setting [`services.httpd.adminAddr`](options.html#opt-services.httpd.adminAddr) Apache HTTP, setting [](#opt-services.httpd.adminAddr)
appropriately: appropriately:
```nix ```nix

View File

@@ -24,10 +24,10 @@ log in via mechanisms that require a password. However, you can use the
`passwd` program to set a password, which is retained across invocations `passwd` program to set a password, which is retained across invocations
of `nixos-rebuild`. of `nixos-rebuild`.
If you set [`users.mutableUsers`](options.html#opt-users.mutableUsers) to If you set [](#opt-users.mutableUsers) to
false, then the contents of `/etc/passwd` and `/etc/group` will be congruent false, then the contents of `/etc/passwd` and `/etc/group` will be congruent
to your NixOS configuration. For instance, if you remove a user from to your NixOS configuration. For instance, if you remove a user from
[`users.users`](options.html#opt-users.users) and run nixos-rebuild, the user [](#opt-users.users) and run nixos-rebuild, the user
account will cease to exist. Also, imperative commands for managing users and account will cease to exist. Also, imperative commands for managing users and
groups, such as useradd, are no longer available. Passwords may still be groups, such as useradd, are no longer available. Passwords may still be
assigned by setting the user\'s assigned by setting the user\'s

View File

@@ -23,5 +23,5 @@ xdg.portal.wlr.enable = true;
``` ```
and configure Pipewire using and configure Pipewire using
[`services.pipewire.enable`](options.html#opt-services.pipewire.enable) [](#opt-services.pipewire.enable)
and related options. and related options.

View File

@@ -115,7 +115,7 @@ officially updated since 2015.
The results vary depending on the hardware, so you may have to try both The results vary depending on the hardware, so you may have to try both
drivers. Use the option drivers. Use the option
[`services.xserver.videoDrivers`](options.html#opt-services.xserver.videoDrivers) [](#opt-services.xserver.videoDrivers)
to set one. The recommended configuration for modern systems is: to set one. The recommended configuration for modern systems is:
```nix ```nix
@@ -183,7 +183,7 @@ Latitude series) can be enabled as follows:
services.xserver.libinput.enable = true; services.xserver.libinput.enable = true;
``` ```
The driver has many options (see [Appendix A, Configuration Options](options.html)). The driver has many options (see [](#ch-options)).
For instance, the following disables tap-to-click behavior: For instance, the following disables tap-to-click behavior:
```nix ```nix

View File

@@ -22,13 +22,13 @@ services.picom = {
Some Xfce programs are not installed automatically. To install them Some Xfce programs are not installed automatically. To install them
manually (system wide), put them into your manually (system wide), put them into your
[`environment.systemPackages`](options.html#opt-environment.systemPackages) from `pkgs.xfce`. [](#opt-environment.systemPackages) from `pkgs.xfce`.
## Thunar Plugins {#sec-xfce-thunar-plugins .unnumbered} ## Thunar Plugins {#sec-xfce-thunar-plugins .unnumbered}
If you\'d like to add extra plugins to Thunar, add them to If you\'d like to add extra plugins to Thunar, add them to
[`services.xserver.desktopManager.xfce.thunarPlugins`](options.html#opt-services.xserver.desktopManager.xfce.thunarPlugins). [](#opt-services.xserver.desktopManager.xfce.thunarPlugins).
You shouldn\'t just add them to [`environment.systemPackages`](options.html#opt-environment.systemPackages). You shouldn\'t just add them to [](#opt-environment.systemPackages).
## Troubleshooting {#sec-xfce-troubleshooting .unnumbered} ## Troubleshooting {#sec-xfce-troubleshooting .unnumbered}

View File

@@ -36,10 +36,9 @@ $ export \
</programlisting> </programlisting>
<para> <para>
The second mechanism is to add the OpenCL driver package to The second mechanism is to add the OpenCL driver package to
<link xlink:href="options.html#opt-hardware.opengl.extraPackages"><literal>hardware.opengl.extraPackages</literal></link>. <xref linkend="opt-hardware.opengl.extraPackages" />. This links
This links the ICD file under the ICD file under <literal>/run/opengl-driver</literal>, where it
<literal>/run/opengl-driver</literal>, where it will be visible to will be visible to the ICD loader.
the ICD loader.
</para> </para>
<para> <para>
The proper installation of OpenCL drivers can be verified through The proper installation of OpenCL drivers can be verified through
@@ -60,8 +59,8 @@ Platform Vendor Advanced Micro Devices, Inc.
<link xlink:href="https://en.wikipedia.org/wiki/Graphics_Core_Next">Graphics <link xlink:href="https://en.wikipedia.org/wiki/Graphics_Core_Next">Graphics
Core Next</link> (GCN) GPUs are supported through the Core Next</link> (GCN) GPUs are supported through the
rocm-opencl-icd package. Adding this package to rocm-opencl-icd package. Adding this package to
<link xlink:href="options.html#opt-hardware.opengl.extraPackages"><literal>hardware.opengl.extraPackages</literal></link> <xref linkend="opt-hardware.opengl.extraPackages" /> enables
enables OpenCL support: OpenCL support:
</para> </para>
<programlisting language="bash"> <programlisting language="bash">
hardware.opengl.extraPackages = [ hardware.opengl.extraPackages = [
@@ -82,10 +81,9 @@ hardware.opengl.extraPackages = [
</para> </para>
<para> <para>
The intel-compute-runtime, beignet, or intel-ocl package can be The intel-compute-runtime, beignet, or intel-ocl package can be
added to added to <xref linkend="opt-hardware.opengl.extraPackages" /> to
<link xlink:href="options.html#opt-hardware.opengl.extraPackages"><literal>hardware.opengl.extraPackages</literal></link> enable OpenCL support. For example, for Gen8 and later GPUs, the
to enable OpenCL support. For example, for Gen8 and later GPUs, following configuration can be used:
the following configuration can be used:
</para> </para>
<programlisting language="bash"> <programlisting language="bash">
hardware.opengl.extraPackages = [ hardware.opengl.extraPackages = [
@@ -103,8 +101,7 @@ hardware.opengl.extraPackages = [
<link xlink:href="https://github.com/doitsujin/dxvk/wiki">DXVK</link>. <link xlink:href="https://github.com/doitsujin/dxvk/wiki">DXVK</link>.
</para> </para>
<para> <para>
By default, if By default, if <xref linkend="opt-hardware.opengl.driSupport" />
<link xlink:href="options.html#opt-hardware.opengl.driSupport"><literal>hardware.opengl.driSupport</literal></link>
is enabled, mesa is installed and provides Vulkan for supported is enabled, mesa is installed and provides Vulkan for supported
hardware. hardware.
</para> </para>
@@ -129,10 +126,9 @@ $ export \
</programlisting> </programlisting>
<para> <para>
The second mechanism is to add the Vulkan driver package to The second mechanism is to add the Vulkan driver package to
<link xlink:href="options.html#opt-hardware.opengl.extraPackages"><literal>hardware.opengl.extraPackages</literal></link>. <xref linkend="opt-hardware.opengl.extraPackages" />. This links
This links the ICD file under the ICD file under <literal>/run/opengl-driver</literal>, where it
<literal>/run/opengl-driver</literal>, where it will be visible to will be visible to the ICD loader.
the ICD loader.
</para> </para>
<para> <para>
The proper installation of Vulkan drivers can be verified through The proper installation of Vulkan drivers can be verified through
@@ -162,8 +158,7 @@ GPU1:
<link xlink:href="https://en.wikipedia.org/wiki/Graphics_Core_Next">Graphics <link xlink:href="https://en.wikipedia.org/wiki/Graphics_Core_Next">Graphics
Core Next</link> (GCN) GPUs are supported through either radv, Core Next</link> (GCN) GPUs are supported through either radv,
which is part of mesa, or the amdvlk package. Adding the amdvlk which is part of mesa, or the amdvlk package. Adding the amdvlk
package to package to <xref linkend="opt-hardware.opengl.extraPackages" />
<link xlink:href="options.html#opt-hardware.opengl.extraPackages"><literal>hardware.opengl.extraPackages</literal></link>
makes amdvlk the default driver and hides radv and lavapipe from makes amdvlk the default driver and hides radv and lavapipe from
the device list. A specific driver can be forced as follows: the device list. A specific driver can be forced as follows:
</para> </para>

View File

@@ -43,11 +43,9 @@ services.kubernetes.roles = [ &quot;master&quot; &quot;node&quot; ];
</programlisting> </programlisting>
<para> <para>
Note: Assigning either role will also default both Note: Assigning either role will also default both
<link xlink:href="options.html#opt-services.kubernetes.flannel.enable"><literal>services.kubernetes.flannel.enable</literal></link> <xref linkend="opt-services.kubernetes.flannel.enable" /> and
and <xref linkend="opt-services.kubernetes.easyCerts" /> to true. This
<link xlink:href="options.html#opt-services.kubernetes.easyCerts"><literal>services.kubernetes.easyCerts</literal></link> sets up flannel as CNI and activates automatic PKI bootstrapping.
to true. This sets up flannel as CNI and activates automatic PKI
bootstrapping.
</para> </para>
<para> <para>
As of kubernetes 1.10.X it has been deprecated to open As of kubernetes 1.10.X it has been deprecated to open
@@ -56,15 +54,15 @@ services.kubernetes.roles = [ &quot;master&quot; &quot;node&quot; ];
opening insecure ports is still possible, it is recommended not to opening insecure ports is still possible, it is recommended not to
bind these to other interfaces than loopback. To re-enable the bind these to other interfaces than loopback. To re-enable the
insecure port on the apiserver, see options: insecure port on the apiserver, see options:
<link xlink:href="options.html#opt-services.kubernetes.apiserver.insecurePort"><literal>services.kubernetes.apiserver.insecurePort</literal></link> <xref linkend="opt-services.kubernetes.apiserver.insecurePort" />
and and
<link xlink:href="options.html#opt-services.kubernetes.apiserver.insecureBindAddress"><literal>services.kubernetes.apiserver.insecureBindAddress</literal></link> <xref linkend="opt-services.kubernetes.apiserver.insecureBindAddress" />
</para> </para>
<note> <note>
<para> <para>
As of NixOS 19.03, it is mandatory to configure: As of NixOS 19.03, it is mandatory to configure:
<link xlink:href="options.html#opt-services.kubernetes.masterAddress"><literal>services.kubernetes.masterAddress</literal></link>. <xref linkend="opt-services.kubernetes.masterAddress" />. The
The masterAddress must be resolveable and routeable by all cluster masterAddress must be resolveable and routeable by all cluster
nodes. In single node clusters, this can be set to nodes. In single node clusters, this can be set to
<literal>localhost</literal>. <literal>localhost</literal>.
</para> </para>
@@ -83,24 +81,22 @@ services.kubernetes.roles = [ &quot;master&quot; &quot;node&quot; ];
<para> <para>
The NixOS kubernetes module provides an option for automatic The NixOS kubernetes module provides an option for automatic
certificate bootstrapping and configuration, certificate bootstrapping and configuration,
<link xlink:href="options.html#opt-services.kubernetes.easyCerts"><literal>services.kubernetes.easyCerts</literal></link>. <xref linkend="opt-services.kubernetes.easyCerts" />. The PKI
The PKI bootstrapping process involves setting up a certificate bootstrapping process involves setting up a certificate authority
authority (CA) daemon (cfssl) on the kubernetes master node. cfssl (CA) daemon (cfssl) on the kubernetes master node. cfssl generates a
generates a CA-cert for the cluster, and uses the CA-cert for CA-cert for the cluster, and uses the CA-cert for signing
signing subordinate certs issued to each of the cluster components. subordinate certs issued to each of the cluster components.
Subsequently, the certmgr daemon monitors active certificates and Subsequently, the certmgr daemon monitors active certificates and
renews them when needed. For single node Kubernetes clusters, renews them when needed. For single node Kubernetes clusters,
setting setting <xref linkend="opt-services.kubernetes.easyCerts" /> = true
<link xlink:href="options.html#opt-services.kubernetes.easyCerts"><literal>services.kubernetes.easyCerts</literal></link> is sufficient and no further action is required. For joining extra
= true is sufficient and no further action is required. For joining node machines to an existing cluster on the other hand, establishing
extra node machines to an existing cluster on the other hand, initial trust is mandatory.
establishing initial trust is mandatory.
</para> </para>
<para> <para>
To add new nodes to the cluster: On any (non-master) cluster node To add new nodes to the cluster: On any (non-master) cluster node
where where <xref linkend="opt-services.kubernetes.easyCerts" /> is
<link xlink:href="options.html#opt-services.kubernetes.easyCerts"><literal>services.kubernetes.easyCerts</literal></link> enabled, the helper script
is enabled, the helper script
<literal>nixos-kubernetes-node-join</literal> is available on PATH. <literal>nixos-kubernetes-node-join</literal> is available on PATH.
Given a token on stdin, it will copy the token to the kubernetes Given a token on stdin, it will copy the token to the kubernetes
secrets directory and restart the certmgr service. As requested secrets directory and restart the certmgr service. As requested
@@ -120,7 +116,7 @@ services.kubernetes.roles = [ &quot;master&quot; &quot;node&quot; ];
is generated and linked into is generated and linked into
<literal>/etc/kubernetes/cluster-admin.kubeconfig</literal> as <literal>/etc/kubernetes/cluster-admin.kubeconfig</literal> as
determined by determined by
<link xlink:href="options.html#opt-services.kubernetes.pki.etcClusterAdminKubeconfig"><literal>services.kubernetes.pki.etcClusterAdminKubeconfig</literal></link>. <xref linkend="opt-services.kubernetes.pki.etcClusterAdminKubeconfig" />.
<literal>export KUBECONFIG=/etc/kubernetes/cluster-admin.kubeconfig</literal> <literal>export KUBECONFIG=/etc/kubernetes/cluster-admin.kubeconfig</literal>
will make kubectl use this kubeconfig to access and authenticate the will make kubectl use this kubeconfig to access and authenticate the
cluster. The cluster-admin kubeconfig references an auto-generated cluster. The cluster-admin kubeconfig references an auto-generated

View File

@@ -48,9 +48,7 @@ nixpkgs.config.packageOverrides = pkgs:
<para> <para>
Kernel modules for hardware devices are generally loaded Kernel modules for hardware devices are generally loaded
automatically by <literal>udev</literal>. You can force a module to automatically by <literal>udev</literal>. You can force a module to
be loaded via be loaded via <xref linkend="opt-boot.kernelModules" />, e.g.
<link xlink:href="options.html#opt-boot.kernelModules"><literal>boot.kernelModules</literal></link>,
e.g.
</para> </para>
<programlisting language="bash"> <programlisting language="bash">
boot.kernelModules = [ &quot;fuse&quot; &quot;kvm-intel&quot; &quot;coretemp&quot; ]; boot.kernelModules = [ &quot;fuse&quot; &quot;kvm-intel&quot; &quot;coretemp&quot; ];
@@ -58,7 +56,7 @@ boot.kernelModules = [ &quot;fuse&quot; &quot;kvm-intel&quot; &quot;coretemp&quo
<para> <para>
If the module is required early during the boot (e.g. to mount the If the module is required early during the boot (e.g. to mount the
root file system), you can use root file system), you can use
<link xlink:href="options.html#opt-boot.initrd.kernelModules"><literal>boot.initrd.kernelModules</literal></link>: <xref linkend="opt-boot.initrd.kernelModules" />:
</para> </para>
<programlisting language="bash"> <programlisting language="bash">
boot.initrd.kernelModules = [ &quot;cifs&quot; ]; boot.initrd.kernelModules = [ &quot;cifs&quot; ];
@@ -69,8 +67,7 @@ boot.initrd.kernelModules = [ &quot;cifs&quot; ];
</para> </para>
<para> <para>
Kernel runtime parameters can be set through Kernel runtime parameters can be set through
<link xlink:href="options.html#opt-boot.kernel.sysctl"><literal>boot.kernel.sysctl</literal></link>, <xref linkend="opt-boot.kernel.sysctl" />, e.g.
e.g.
</para> </para>
<programlisting language="bash"> <programlisting language="bash">
boot.kernel.sysctl.&quot;net.ipv4.tcp_keepalive_time&quot; = 120; boot.kernel.sysctl.&quot;net.ipv4.tcp_keepalive_time&quot; = 120;

View File

@@ -51,8 +51,8 @@ SHA256:yjxl3UbTn31fLWeyLYTAKYJPRmzknjQZoyG8gSNEoIE my-user@workstation
</para> </para>
<para> <para>
The file system can be configured in NixOS via the usual The file system can be configured in NixOS via the usual
<link xlink:href="options.html#opt-fileSystems">fileSystems</link> <link linkend="opt-fileSystems">fileSystems</link> option. Heres
option. Heres a typical setup: a typical setup:
</para> </para>
<programlisting language="bash"> <programlisting language="bash">
{ {

View File

@@ -23,8 +23,7 @@
To configure, include in To configure, include in
<literal>/etc/nixos/configuration.nix</literal> code to activate <literal>/etc/nixos/configuration.nix</literal> code to activate
Apache HTTP, setting Apache HTTP, setting
<link xlink:href="options.html#opt-services.httpd.adminAddr"><literal>services.httpd.adminAddr</literal></link> <xref linkend="opt-services.httpd.adminAddr" /> appropriately:
appropriately:
</para> </para>
<programlisting language="bash"> <programlisting language="bash">
services.httpd.enable = true; services.httpd.enable = true;

View File

@@ -29,16 +29,14 @@ users.users.alice = {
retained across invocations of <literal>nixos-rebuild</literal>. retained across invocations of <literal>nixos-rebuild</literal>.
</para> </para>
<para> <para>
If you set If you set <xref linkend="opt-users.mutableUsers" /> to false, then
<link xlink:href="options.html#opt-users.mutableUsers"><literal>users.mutableUsers</literal></link> the contents of <literal>/etc/passwd</literal> and
to false, then the contents of <literal>/etc/passwd</literal> and
<literal>/etc/group</literal> will be congruent to your NixOS <literal>/etc/group</literal> will be congruent to your NixOS
configuration. For instance, if you remove a user from configuration. For instance, if you remove a user from
<link xlink:href="options.html#opt-users.users"><literal>users.users</literal></link> <xref linkend="opt-users.users" /> and run nixos-rebuild, the user
and run nixos-rebuild, the user account will cease to exist. Also, account will cease to exist. Also, imperative commands for managing
imperative commands for managing users and groups, such as useradd, users and groups, such as useradd, are no longer available.
are no longer available. Passwords may still be assigned by setting Passwords may still be assigned by setting the user's
the user's
<link linkend="opt-users.users._name_.hashedPassword">hashedPassword</link> <link linkend="opt-users.users._name_.hashedPassword">hashedPassword</link>
option. A hashed password can be generated using option. A hashed password can be generated using
<literal>mkpasswd -m sha-512</literal>. <literal>mkpasswd -m sha-512</literal>.

View File

@@ -26,7 +26,6 @@ xdg.portal.wlr.enable = true;
</programlisting> </programlisting>
<para> <para>
and configure Pipewire using and configure Pipewire using
<link xlink:href="options.html#opt-services.pipewire.enable"><literal>services.pipewire.enable</literal></link> <xref linkend="opt-services.pipewire.enable" /> and related options.
and related options.
</para> </para>
</chapter> </chapter>

View File

@@ -128,8 +128,8 @@ services.xserver.displayManager.autoLogin.user = &quot;alice&quot;;
<para> <para>
The results vary depending on the hardware, so you may have to try The results vary depending on the hardware, so you may have to try
both drivers. Use the option both drivers. Use the option
<link xlink:href="options.html#opt-services.xserver.videoDrivers"><literal>services.xserver.videoDrivers</literal></link> <xref linkend="opt-services.xserver.videoDrivers" /> to set one.
to set one. The recommended configuration for modern systems is: The recommended configuration for modern systems is:
</para> </para>
<programlisting language="bash"> <programlisting language="bash">
services.xserver.videoDrivers = [ &quot;modesetting&quot; ]; services.xserver.videoDrivers = [ &quot;modesetting&quot; ];
@@ -204,10 +204,8 @@ services.xserver.videoDrivers = [ &quot;amdgpu-pro&quot; ];
services.xserver.libinput.enable = true; services.xserver.libinput.enable = true;
</programlisting> </programlisting>
<para> <para>
The driver has many options (see The driver has many options (see <xref linkend="ch-options" />).
<link xlink:href="options.html">Appendix A, Configuration For instance, the following disables tap-to-click behavior:
Options</link>). For instance, the following disables tap-to-click
behavior:
</para> </para>
<programlisting language="bash"> <programlisting language="bash">
services.xserver.libinput.touchpad.tapping = false; services.xserver.libinput.touchpad.tapping = false;

View File

@@ -23,16 +23,16 @@ services.picom = {
<para> <para>
Some Xfce programs are not installed automatically. To install them Some Xfce programs are not installed automatically. To install them
manually (system wide), put them into your manually (system wide), put them into your
<link xlink:href="options.html#opt-environment.systemPackages"><literal>environment.systemPackages</literal></link> <xref linkend="opt-environment.systemPackages" /> from
from <literal>pkgs.xfce</literal>. <literal>pkgs.xfce</literal>.
</para> </para>
<section xml:id="sec-xfce-thunar-plugins"> <section xml:id="sec-xfce-thunar-plugins">
<title>Thunar Plugins</title> <title>Thunar Plugins</title>
<para> <para>
If you'd like to add extra plugins to Thunar, add them to If you'd like to add extra plugins to Thunar, add them to
<link xlink:href="options.html#opt-services.xserver.desktopManager.xfce.thunarPlugins"><literal>services.xserver.desktopManager.xfce.thunarPlugins</literal></link>. <xref linkend="opt-services.xserver.desktopManager.xfce.thunarPlugins" />.
You shouldn't just add them to You shouldn't just add them to
<link xlink:href="options.html#opt-environment.systemPackages"><literal>environment.systemPackages</literal></link>. <xref linkend="opt-environment.systemPackages" />.
</para> </para>
</section> </section>
<section xml:id="sec-xfce-troubleshooting"> <section xml:id="sec-xfce-troubleshooting">