feat: add more nixos settings as modules

This commit is contained in:
Swarsel 2024-07-25 18:11:44 +02:00
parent 41e2f54618
commit 2db79465da
Signed by: swarsel
GPG key ID: 26A54C31F2A4FD84
15 changed files with 493 additions and 418 deletions

View file

@ -3,7 +3,7 @@
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" lang="en" xml:lang="en">
<head>
<!-- 2024-07-25 Do 16:53 -->
<!-- 2024-07-25 Do 17:05 -->
<meta http-equiv="Content-Type" content="text/html;charset=utf-8" />
<meta name="viewport" content="width=device-width, initial-scale=1" />
<title>SwarselSystems: NixOS + Emacs Configuration</title>
@ -223,7 +223,7 @@
<ul>
<li><a href="#h:8a411ee2-a58e-4b5b-99bd-4ba772f8f0a2">2.3.1. Inputs</a></li>
<li><a href="#h:df0072bc-853f-438f-bd85-bfc869501015">2.3.2. let</a></li>
<li><a href="#orgac1678e">2.3.3. General (outputs)</a></li>
<li><a href="#org4adbe28">2.3.3. General (outputs)</a></li>
<li><a href="#h:9c9b9e3b-8771-44fa-ba9e-5056ae809655">2.3.4. nixosConfigurations</a></li>
<li><a href="#h:f881aa05-a670-48dd-a57b-2916abdcb692">2.3.5. homeConfigurations</a></li>
<li><a href="#h:5f6ef553-59f9-4239-b6f3-63d33b57f335">2.3.6. nixOnDroidConfigurations</a></li>
@ -241,23 +241,23 @@
<li><a href="#h:4dc59747-9598-4029-aa7d-92bf186d6c06">3.1.3. Virtual hosts</a></li>
</ul>
</li>
<li><a href="#orgc25794c">3.2. Overlays, packages, and modules</a>
<li><a href="#orgc141d21">3.2. Overlays, packages, and modules</a>
<ul>
<li><a href="#org390ea62">3.2.1. Packages</a></li>
<li><a href="#orged27f86">3.2.2. Overlays</a></li>
<li><a href="#orge554f8e">3.2.3. Modules</a></li>
<li><a href="#org1a87142">3.2.1. Packages</a></li>
<li><a href="#orgfa72648">3.2.2. Overlays</a></li>
<li><a href="#org7748217">3.2.3. Modules</a></li>
</ul>
</li>
<li><a href="#orgd7b8492">3.3. NixOS</a>
<li><a href="#orgd4f98ca">3.3. NixOS</a>
<ul>
<li><a href="#h:1c1250cd-e9b4-4715-8d9f-eb09e64bfc7f">3.3.1. Common</a></li>
<li><a href="#orge3fad27">3.3.2. Optional</a></li>
<li><a href="#org773d4d6">3.3.2. Optional</a></li>
</ul>
</li>
<li><a href="#org3437a1b">3.4. Home-manager</a>
<li><a href="#orga9f212b">3.4. Home-manager</a>
<ul>
<li><a href="#h:f0a6b5e0-2157-4522-b5e1-3f0abd91c05e">3.4.1. Common</a></li>
<li><a href="#orgb5a2fcb">3.4.2. Optional</a></li>
<li><a href="#orgec559c1">3.4.2. Optional</a></li>
</ul>
</li>
<li><a href="#h:aee5ec75-7ca6-40d8-b6ac-a3e7e33a474b">3.5. flake.nix template</a>
@ -310,7 +310,7 @@
<ul>
<li><a href="#h:99544398-72af-4382-b8e1-01b2221baff4">4.4.1. Org Mode</a></li>
<li><a href="#h:406c2ecc-0e3e-4d9f-9ae3-3eb1f8b87d1b">4.4.2. Nix Mode</a></li>
<li><a href="#org57c613b">4.4.3. nixpkgs-fmt</a></li>
<li><a href="#org4df1290">4.4.3. nixpkgs-fmt</a></li>
<li><a href="#h:50327461-a11b-4e81-830a-90febc720cfa">4.4.4. Markdown Mode</a></li>
<li><a href="#h:65e69741-9860-4ed0-bbed-7b7be9a2a9d6">4.4.5. Olivetti</a></li>
<li><a href="#h:94d4a0dc-b0d7-4702-b760-beeaa6da2b8f">4.4.6. darkroom</a></li>
@ -370,7 +370,7 @@
</div>
</div>
<p>
<b>This file has 42747 words spanning 11578 lines and was last revised on 2024-07-25 16:53:03 +0200.</b>
<b>This file has 42739 words spanning 11576 lines and was last revised on 2024-07-25 17:05:22 +0200.</b>
</p>
<p>
@ -420,7 +420,7 @@ This section defines my Emacs configuration. For a while, I considered to use ry
</p>
<p>
My emacs is built using the emacs-overlay nix flake, which builds a bleeding edge emacs on wayland (pgtk) with utilities like treesitter support. By executing the below source block, the current build setting can be updated at any time, and you can see my most up-to-date build options (last updated: 2024-07-25 16:53:03 +0200)
My emacs is built using the emacs-overlay nix flake, which builds a bleeding edge emacs on wayland (pgtk) with utilities like treesitter support. By executing the below source block, the current build setting can be updated at any time, and you can see my most up-to-date build options (last updated: 2024-07-25 17:05:22 +0200)
</p></li>
</ul>
@ -1030,8 +1030,8 @@ mixedModules = [
</div>
</div>
</div>
<div id="outline-container-orgac1678e" class="outline-4">
<h4 id="orgac1678e"><span class="section-number-4">2.3.3.</span> General (outputs)</h4>
<div id="outline-container-org4adbe28" class="outline-4">
<h4 id="org4adbe28"><span class="section-number-4">2.3.3.</span> General (outputs)</h4>
<div class="outline-text-4" id="text-2-3-3">
<div class="org-src-container">
<pre class="src src-nix">
@ -2410,7 +2410,7 @@ in
</li>
</ol>
</li>
<li><a id="orge978872"></a>Home-manager only<br />
<li><a id="org54c1fcc"></a>Home-manager only<br />
<ol class="org-ol">
<li><a id="h:483a26b5-5a40-4417-9ffb-67cc2cf07161"></a>Home manager<br />
<div class="outline-text-6" id="text-h:483a26b5-5a40-4417-9ffb-67cc2cf07161">
@ -2828,7 +2828,7 @@ This is basically just adjusted to the core count, path to the <code>hwmon</code
../optional/home/gaming.nix
] ++ (builtins.attrValues outputs.homeManagerModules);
}
]++ (builtins.attrValues outputs.nixosModules);
] ++ (builtins.attrValues outputs.nixosModules);
nixpkgs = {
@ -2914,10 +2914,6 @@ Mostly just sets some opened ports for several games, enables virtualbox (which
{
services = {
getty.autologinUser = "swarsel";
greetd.settings.initial_session.user = "swarsel";
};
boot = {
loader.systemd-boot.enable = true;
@ -5375,8 +5371,8 @@ in
</ol>
</div>
</div>
<div id="outline-container-orgc25794c" class="outline-3">
<h3 id="orgc25794c"><span class="section-number-3">3.2.</span> Overlays, packages, and modules</h3>
<div id="outline-container-orgc141d21" class="outline-3">
<h3 id="orgc141d21"><span class="section-number-3">3.2.</span> Overlays, packages, and modules</h3>
<div class="outline-text-3" id="text-3-2">
<p>
In this section I define packages that I manually want to nixpkgs. This can be useful for packages that are currently awaiting a PR or public packages that I do not want to maintain.
@ -5395,8 +5391,8 @@ These are for packages that are on nixpkgs, but do not fit my usecase, meaning I
This is simply a mirror of the most recent stable branch of nixpkgs. Useful for packages that are broken on nixpkgs, but do not need to be on bleeding edge anyways.</li>
</ol>
</div>
<div id="outline-container-org390ea62" class="outline-4">
<h4 id="org390ea62"><span class="section-number-4">3.2.1.</span> Packages</h4>
<div id="outline-container-org1a87142" class="outline-4">
<h4 id="org1a87142"><span class="section-number-4">3.2.1.</span> Packages</h4>
<div class="outline-text-4" id="text-3-2-1">
<div class="org-src-container">
<pre class="src src-nix">
@ -5406,8 +5402,8 @@ _ : rec { }
</div>
</div>
</div>
<div id="outline-container-orged27f86" class="outline-4">
<h4 id="orged27f86"><span class="section-number-4">3.2.2.</span> Overlays</h4>
<div id="outline-container-orgfa72648" class="outline-4">
<h4 id="orgfa72648"><span class="section-number-4">3.2.2.</span> Overlays</h4>
<div class="outline-text-4" id="text-3-2-2">
<div class="org-src-container">
<pre class="src src-nix">
@ -5440,15 +5436,15 @@ _ : rec { }
</div>
</div>
</div>
<div id="outline-container-orge554f8e" class="outline-4">
<h4 id="orge554f8e"><span class="section-number-4">3.2.3.</span> Modules</h4>
<div id="outline-container-org7748217" class="outline-4">
<h4 id="org7748217"><span class="section-number-4">3.2.3.</span> Modules</h4>
<div class="outline-text-4" id="text-3-2-3">
<p>
In this section I define custom modules under the <code>swarsel</code> attribute. These are mostly used to define settings specific to a host. I keep these settings confined to either home-manager or nixos to maintain compatibility with non-NixOS machines.
</p>
</div>
<ol class="org-ol">
<li><a id="orgbe6e213"></a>NixOS<br />
<li><a id="org358b940"></a>NixOS<br />
<div class="outline-text-5" id="text-3-2-3-1">
<p>
Modules that need to be loaded on the NixOS level. Note that these will not be available on systems that are not running NixOS
@ -5462,7 +5458,7 @@ Modules that need to be loaded on the NixOS level. Note that these will not be a
</div>
</div>
<ol class="org-ol">
<li><a id="org4ffee2c"></a>Wallpaper<br />
<li><a id="org014ab6a"></a>Wallpaper<br />
<div class="outline-text-6" id="text-3-2-3-1-1">
<div class="org-src-container">
<pre class="src src-nix">{ lib, ... }:
@ -5480,7 +5476,7 @@ Modules that need to be loaded on the NixOS level. Note that these will not be a
</li>
</ol>
</li>
<li><a id="org0ec9a59"></a>home-manager<br />
<li><a id="orgcd79db9"></a>home-manager<br />
<div class="outline-text-5" id="text-3-2-3-2">
<div class="org-src-container">
<pre class="src src-nix">{
@ -5497,7 +5493,7 @@ Modules that need to be loaded on the NixOS level. Note that these will not be a
</div>
</div>
<ol class="org-ol">
<li><a id="org050bf0d"></a>Laptop<br />
<li><a id="orgad2c727"></a>Laptop<br />
<div class="outline-text-6" id="text-3-2-3-2-1">
<div class="org-src-container">
<pre class="src src-nix">{ lib, config, ... }:
@ -5532,7 +5528,7 @@ Modules that need to be loaded on the NixOS level. Note that these will not be a
</div>
</div>
</li>
<li><a id="org265794a"></a>Hardware<br />
<li><a id="orgc65ca75"></a>Hardware<br />
<div class="outline-text-6" id="text-3-2-3-2-2">
<div class="org-src-container">
<pre class="src src-nix">{ lib, ... }:
@ -5556,7 +5552,7 @@ Modules that need to be loaded on the NixOS level. Note that these will not be a
</div>
</div>
</li>
<li><a id="org66979aa"></a>Waybar<br />
<li><a id="org8aab025"></a>Waybar<br />
<div class="outline-text-6" id="text-3-2-3-2-3">
<div class="org-src-container">
<pre class="src src-nix"> { lib, config, ... }:
@ -5596,7 +5592,7 @@ in
</div>
</div>
</li>
<li><a id="org6491f5b"></a>Monitors<br />
<li><a id="org534b750"></a>Monitors<br />
<div class="outline-text-6" id="text-3-2-3-2-4">
<div class="org-src-container">
<pre class="src src-nix">{ lib, config, ... }:
@ -5613,7 +5609,7 @@ in
</div>
</div>
</li>
<li><a id="orgf311b2e"></a>Input<br />
<li><a id="org8d2f5af"></a>Input<br />
<div class="outline-text-6" id="text-3-2-3-2-5">
<div class="org-src-container">
<pre class="src src-nix">{ lib, config, ... }:
@ -5654,7 +5650,7 @@ in
</div>
</div>
</li>
<li><a id="orgd367938"></a>Nixos<br />
<li><a id="org3cc09df"></a>Nixos<br />
<div class="outline-text-6" id="text-3-2-3-2-6">
<div class="org-src-container">
<pre class="src src-nix">{ lib, config, ... }:
@ -5676,7 +5672,7 @@ in
</div>
</div>
</li>
<li><a id="org40937fd"></a>System startup<br />
<li><a id="orgf027e52"></a>System startup<br />
<div class="outline-text-6" id="text-3-2-3-2-7">
<div class="org-src-container">
<pre class="src src-nix">{ lib, config, ... }:
@ -5701,7 +5697,7 @@ in
</div>
</div>
</li>
<li><a id="org125b485"></a>Wallpaper<br />
<li><a id="orgbf2ce3c"></a>Wallpaper<br />
<div class="outline-text-6" id="text-3-2-3-2-8">
<div class="org-src-container">
<pre class="src src-nix">{ lib, ... }:
@ -5722,8 +5718,8 @@ in
</ol>
</div>
</div>
<div id="outline-container-orgd7b8492" class="outline-3">
<h3 id="orgd7b8492"><span class="section-number-3">3.3.</span> NixOS</h3>
<div id="outline-container-orgd4f98ca" class="outline-3">
<h3 id="orgd4f98ca"><span class="section-number-3">3.3.</span> NixOS</h3>
<div class="outline-text-3" id="text-3-3">
</div>
<div id="outline-container-h:1c1250cd-e9b4-4715-8d9f-eb09e64bfc7f" class="outline-4">
@ -6270,7 +6266,7 @@ I use sops-nix to handle secrets that I want to have available on my machines at
</div>
</div>
</li>
<li><a id="org2868233"></a>Theme (stylix)<br />
<li><a id="orgc94132b"></a>Theme (stylix)<br />
<div class="outline-text-5" id="text-3-3-1-4">
<p>
By default, <a href="https://github.com/danth/stylix">stylix</a> wants to style GRUB as well. However, I think that looks horrible.
@ -6453,7 +6449,7 @@ Some programs profit from being installed through dedicated NixOS settings on sy
</div>
</div>
<ol class="org-ol">
<li><a id="orgbebcef9"></a>zsh<br />
<li><a id="org529d729"></a>zsh<br />
<div class="outline-text-6" id="text-3-3-1-6-1">
<p>
Do not touch this.
@ -6471,7 +6467,7 @@ Do not touch this.
</div>
</div>
</li>
<li><a id="orge5aba30"></a>syncthing<br />
<li><a id="org24ef28a"></a>syncthing<br />
<div class="outline-text-6" id="text-3-3-1-6-2">
<div class="org-src-container">
<pre class="src src-nix">
@ -6548,7 +6544,7 @@ Enables the blueman service including the nice system tray icon.
</div>
</div>
</li>
<li><a id="org5759fd2"></a>Network devices<br />
<li><a id="org1300d78"></a>Network devices<br />
<div class="outline-text-6" id="text-3-3-1-7-2">
<p>
In this section we enable compatibility with several network devices I have at home, mainly printers and scanners.
@ -6600,7 +6596,7 @@ services.printing = {
</div>
</div>
</li>
<li><a id="org76ac390"></a>Avahi (device discovery)<br />
<li><a id="org26d6861"></a>Avahi (device discovery)<br />
<div class="outline-text-7" id="text-3-3-1-7-2-3">
<p>
Avahi is the service used for the network discovery.
@ -6749,12 +6745,12 @@ This section houses the greetd related settings. I do not really want to use a d
</li>
</ol>
</div>
<div id="outline-container-orge3fad27" class="outline-4">
<h4 id="orge3fad27"><span class="section-number-4">3.3.2.</span> Optional</h4>
<div id="outline-container-org773d4d6" class="outline-4">
<h4 id="org773d4d6"><span class="section-number-4">3.3.2.</span> Optional</h4>
<div class="outline-text-4" id="text-3-3-2">
</div>
<ol class="org-ol">
<li><a id="orgb5d8c78"></a>steam<br />
<li><a id="orgc7b47a1"></a>steam<br />
<div class="outline-text-5" id="text-3-3-2-1">
<div class="org-src-container">
<pre class="src src-nix">{ pkgs, ... }:
@ -6773,7 +6769,7 @@ This section houses the greetd related settings. I do not really want to use a d
</div>
</div>
</li>
<li><a id="org3a5dfa2"></a>VirtualBox<br />
<li><a id="org5f16529"></a>VirtualBox<br />
<div class="outline-text-5" id="text-3-3-2-2">
<div class="org-src-container">
<pre class="src src-nix"> { ... }:
@ -6793,11 +6789,12 @@ This section houses the greetd related settings. I do not really want to use a d
</div>
</div>
</li>
<li><a id="org535a06a"></a>Auto-login<br /></li>
</ol>
</div>
</div>
<div id="outline-container-org3437a1b" class="outline-3">
<h3 id="org3437a1b"><span class="section-number-3">3.4.</span> Home-manager</h3>
<div id="outline-container-orga9f212b" class="outline-3">
<h3 id="orga9f212b"><span class="section-number-3">3.4.</span> Home-manager</h3>
<div class="outline-text-3" id="text-3-4">
</div>
<div id="outline-container-h:f0a6b5e0-2157-4522-b5e1-3f0abd91c05e" class="outline-4">
@ -6805,7 +6802,7 @@ This section houses the greetd related settings. I do not really want to use a d
<div class="outline-text-4" id="text-h:f0a6b5e0-2157-4522-b5e1-3f0abd91c05e">
</div>
<ol class="org-ol">
<li><a id="org3dedecc"></a>Imports<br />
<li><a id="org9e66466"></a>Imports<br />
<div class="outline-text-5" id="text-3-4-1-1">
<p>
This section sets up all the imports that are used in the home-manager section.
@ -7594,7 +7591,7 @@ This section is for programs that require no further configuration. zsh Integrat
</li>
</ol>
</li>
<li><a id="orgcbec89d"></a>nix-index<br />
<li><a id="orgd1753e7"></a>nix-index<br />
<div class="outline-text-5" id="text-3-4-1-10">
<p>
nix-index provides a way to find out which packages are provided by which derivations. By default it also comes with a replacement for <code>command-not-found.sh</code>, however, the implementation is based on a channel based setup. I like consistency, so I replace the command with one that provides a flakes-based output.
@ -8921,7 +8918,7 @@ Currently, I am too lazy to explain every option here, but most of it is very se
</div>
</div>
</li>
<li><a id="orgbcac627"></a>gpg-agent<br />
<li><a id="org0920ff5"></a>gpg-agent<br />
<div class="outline-text-5" id="text-3-4-1-25">
<div class="org-src-container">
<pre class="src src-nix">{ pkgs, ... }:
@ -8945,12 +8942,12 @@ services.gpg-agent = {
</li>
</ol>
</div>
<div id="outline-container-orgb5a2fcb" class="outline-4">
<h4 id="orgb5a2fcb"><span class="section-number-4">3.4.2.</span> Optional</h4>
<div id="outline-container-orgec559c1" class="outline-4">
<h4 id="orgec559c1"><span class="section-number-4">3.4.2.</span> Optional</h4>
<div class="outline-text-4" id="text-3-4-2">
</div>
<ol class="org-ol">
<li><a id="org886fb6b"></a>Gaming<br />
<li><a id="org3e7f5d7"></a>Gaming<br />
<div class="outline-text-5" id="text-3-4-2-1">
<div class="org-src-container">
<pre class="src src-nix">
@ -10001,7 +9998,7 @@ The standard Emacs behaviour for the Python process shell is a bit annoying. Thi
</div>
</div>
</li>
<li><a id="org6634dda"></a>Nix common prefix bracketer<br />
<li><a id="orgd21bf52"></a>Nix common prefix bracketer<br />
<div class="outline-text-5" id="text-4-2-1-15">
<p>
This function searches for common delimiters in region and removes them, summarizing all captured lines by it.
@ -10034,7 +10031,7 @@ This function searches for common delimiters in region and removes them, summari
</div>
</div>
</li>
<li><a id="org074b664"></a>Nix formatters<br />
<li><a id="orgf545847"></a>Nix formatters<br />
<div class="outline-text-5" id="text-4-2-1-16">
<p>
This formats the org code block at <code>point</code> in accordance to the <code>nixpkgs-fmt</code> formatter
@ -11607,8 +11604,8 @@ This adds a rudimentary nix-mode to Emacs. I have not really tried this out, as
</div>
</div>
</div>
<div id="outline-container-org57c613b" class="outline-4">
<h4 id="org57c613b"><span class="section-number-4">4.4.3.</span> nixpkgs-fmt</h4>
<div id="outline-container-org4df1290" class="outline-4">
<h4 id="org4df1290"><span class="section-number-4">4.4.3.</span> nixpkgs-fmt</h4>
<div class="outline-text-4" id="text-4-4-3">
<p>
Adds functions for formatting nix code.
@ -13623,7 +13620,7 @@ My laptop, sadly soon to be replaced by a new one, since most basic functions ar
</div>
<div id="postamble" class="status">
<p class="author">Author: Leon Schwarzäugl</p>
<p class="date">Created: 2024-07-25 Do 16:53</p>
<p class="date">Created: 2024-07-25 Do 17:05</p>
<p class="validation"><a href="https://validator.w3.org/check?uri=referer">Validate</a></p>
</div>
</body>