<section xmlns="http://docbook.org/ns/docbook" xmlns:xlink="http://www.w3.org/1999/xlink" xml:id="sec-networkmanager">
  <title>NetworkManager</title>
  <para>
    To facilitate network configuration, some desktop environments use
    NetworkManager. You can enable NetworkManager by setting:
  </para>
  <programlisting language="bash">
networking.networkmanager.enable = true;
</programlisting>
  <para>
    some desktop managers (e.g., GNOME) enable NetworkManager
    automatically for you.
  </para>
  <para>
    All users that should have permission to change network settings
    must belong to the <literal>networkmanager</literal> group:
  </para>
  <programlisting language="bash">
users.users.alice.extraGroups = [ &quot;networkmanager&quot; ];
</programlisting>
  <para>
    NetworkManager is controlled using either <literal>nmcli</literal>
    or <literal>nmtui</literal> (curses-based terminal user interface).
    See their manual pages for details on their usage. Some desktop
    environments (GNOME, KDE) have their own configuration tools for
    NetworkManager. On XFCE, there is no configuration tool for
    NetworkManager by default: by enabling
    <xref linkend="opt-programs.nm-applet.enable" />, the graphical
    applet will be installed and will launch automatically when the
    graphical session is started.
  </para>
  <note>
    <para>
      <literal>networking.networkmanager</literal> and
      <literal>networking.wireless</literal> (WPA Supplicant) can be
      used together if desired. To do this you need to instruct
      NetworkManager to ignore those interfaces like:
    </para>
    <programlisting language="bash">
networking.networkmanager.unmanaged = [
   &quot;*&quot; &quot;except:type:wwan&quot; &quot;except:type:gsm&quot;
];
</programlisting>
    <para>
      Refer to the option description for the exact syntax and
      references to external documentation.
    </para>
  </note>
</section>
