-
Notifications
You must be signed in to change notification settings - Fork 0
/
NixOS-on-Lenovo-Legion-5-(2021).html
46 lines (45 loc) · 16.5 KB
/
NixOS-on-Lenovo-Legion-5-(2021).html
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
<!DOCTYPE html>
<html lang="en"><head><title>NixOS on Lenovo Legion 5 (2021)</title><meta charset="utf-8"/><meta name="viewport" content="width=device-width, initial-scale=1.0"/><meta property="og:title" content="NixOS on Lenovo Legion 5 (2021)"/><meta property="og:description" content="discrete graphics on in BIOS - NVIDIA add the following to /etc/nixos/configuration.nix: # Enable OpenGL hardware.opengl = { enable = true; driSupport = true; driSupport32Bit = true; }; services."/><meta property="og:image" content="https://sohanglal.github.io/static/og-image.png"/><meta property="og:width" content="1200"/><meta property="og:height" content="675"/><link rel="icon" href="./static/icon.png"/><meta name="description" content="discrete graphics on in BIOS - NVIDIA add the following to /etc/nixos/configuration.nix: # Enable OpenGL hardware.opengl = { enable = true; driSupport = true; driSupport32Bit = true; }; services."/><meta name="generator" content="Quartz"/><link rel="preconnect" href="https://fonts.googleapis.com"/><link rel="preconnect" href="https://fonts.gstatic.com"/><link href="./index.css" rel="stylesheet" type="text/css" spa-preserve/><link href="https://cdn.jsdelivr.net/npm/[email protected]/dist/katex.min.css" rel="stylesheet" type="text/css" spa-preserve/><link href="https://fonts.googleapis.com/css2?family=IBM Plex Mono&family=Schibsted Grotesk:wght@400;700&family=Source Sans Pro:ital,wght@0,400;0,600;1,400;1,600&display=swap" rel="stylesheet" type="text/css" spa-preserve/><script src="./prescript.js" type="application/javascript" spa-preserve></script><script type="application/javascript" spa-preserve>const fetchData = fetch("./static/contentIndex.json").then(data => data.json())</script></head><body data-slug="NixOS-on-Lenovo-Legion-5-(2021)"><div id="quartz-root" class="page"><div id="quartz-body"><div class="left sidebar"></div><div class="center"><div class="page-header"><header><h1 class="page-title"><a href=".">🚪</a></h1><p><a href="https://sohanglal.github.io/about"> About | </a><a href="https://docs.google.com/forms/d/e/1FAIpQLSfR4t0D0jDFWC8E6lWkJ0lzpEqUygOcHrom07Z6HCiLZoPcmA/viewform?usp=sf_link"> Contact </a></p><div class="darkmode"><input class="toggle" id="darkmode-toggle" type="checkbox" tabindex="-1"/><label id="toggle-label-light" for="darkmode-toggle" tabindex="-1"><svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" version="1.1" id="dayIcon" x="0px" y="0px" viewBox="0 0 35 35" style="enable-background:new 0 0 35 35" xml:space="preserve"><title>Dark mode</title><path d="M6,17.5C6,16.672,5.328,16,4.5,16h-3C0.672,16,0,16.672,0,17.5 S0.672,19,1.5,19h3C5.328,19,6,18.328,6,17.5z M7.5,26c-0.414,0-0.789,0.168-1.061,0.439l-2,2C4.168,28.711,4,29.086,4,29.5 C4,30.328,4.671,31,5.5,31c0.414,0,0.789-0.168,1.06-0.44l2-2C8.832,28.289,9,27.914,9,27.5C9,26.672,8.329,26,7.5,26z M17.5,6 C18.329,6,19,5.328,19,4.5v-3C19,0.672,18.329,0,17.5,0S16,0.672,16,1.5v3C16,5.328,16.671,6,17.5,6z M27.5,9 c0.414,0,0.789-0.168,1.06-0.439l2-2C30.832,6.289,31,5.914,31,5.5C31,4.672,30.329,4,29.5,4c-0.414,0-0.789,0.168-1.061,0.44 l-2,2C26.168,6.711,26,7.086,26,7.5C26,8.328,26.671,9,27.5,9z M6.439,8.561C6.711,8.832,7.086,9,7.5,9C8.328,9,9,8.328,9,7.5 c0-0.414-0.168-0.789-0.439-1.061l-2-2C6.289,4.168,5.914,4,5.5,4C4.672,4,4,4.672,4,5.5c0,0.414,0.168,0.789,0.439,1.06 L6.439,8.561z M33.5,16h-3c-0.828,0-1.5,0.672-1.5,1.5s0.672,1.5,1.5,1.5h3c0.828,0,1.5-0.672,1.5-1.5S34.328,16,33.5,16z M28.561,26.439C28.289,26.168,27.914,26,27.5,26c-0.828,0-1.5,0.672-1.5,1.5c0,0.414,0.168,0.789,0.439,1.06l2,2 C28.711,30.832,29.086,31,29.5,31c0.828,0,1.5-0.672,1.5-1.5c0-0.414-0.168-0.789-0.439-1.061L28.561,26.439z M17.5,29 c-0.829,0-1.5,0.672-1.5,1.5v3c0,0.828,0.671,1.5,1.5,1.5s1.5-0.672,1.5-1.5v-3C19,29.672,18.329,29,17.5,29z M17.5,7 C11.71,7,7,11.71,7,17.5S11.71,28,17.5,28S28,23.29,28,17.5S23.29,7,17.5,7z M17.5,25c-4.136,0-7.5-3.364-7.5-7.5 c0-4.136,3.364-7.5,7.5-7.5c4.136,0,7.5,3.364,7.5,7.5C25,21.636,21.636,25,17.5,25z"></path></svg></label><label id="toggle-label-dark" for="darkmode-toggle" tabindex="-1"><svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" version="1.1" id="nightIcon" x="0px" y="0px" viewBox="0 0 100 100" style="enable-background:new 0 0 100 100" xml:space="preserve"><title>Light mode</title><path d="M96.76,66.458c-0.853-0.852-2.15-1.064-3.23-0.534c-6.063,2.991-12.858,4.571-19.655,4.571 C62.022,70.495,50.88,65.88,42.5,57.5C29.043,44.043,25.658,23.536,34.076,6.47c0.532-1.08,0.318-2.379-0.534-3.23 c-0.851-0.852-2.15-1.064-3.23-0.534c-4.918,2.427-9.375,5.619-13.246,9.491c-9.447,9.447-14.65,22.008-14.65,35.369 c0,13.36,5.203,25.921,14.65,35.368s22.008,14.65,35.368,14.65c13.361,0,25.921-5.203,35.369-14.65 c3.872-3.871,7.064-8.328,9.491-13.246C97.826,68.608,97.611,67.309,96.76,66.458z"></path></svg></label></div><div class="search"><div id="search-icon"><p>Search</p><div></div><svg tabindex="0" aria-labelledby="title desc" role="img" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 19.9 19.7"><title id="title">Search</title><desc id="desc">Search</desc><g class="search-path" fill="none"><path stroke-linecap="square" d="M18.5 18.3l-5.4-5.4"></path><circle cx="8" cy="8" r="7"></circle></g></svg></div><div id="search-container"><div id="search-space"><input autocomplete="off" id="search-bar" name="search" type="text" aria-label="Search for something" placeholder="Search for something"/><div id="search-layout" data-preview="true"></div></div></div></div></header><div class="popover-hint"><h1 class="article-title">NixOS on Lenovo Legion 5 (2021)</h1></div></div><article class="popover-hint"><h2 id="discrete-graphics-on-in-bios---nvidia">discrete graphics on in BIOS - NVIDIA<a role="anchor" aria-hidden="true" tabindex="-1" data-no-popover="true" href="#discrete-graphics-on-in-bios---nvidia" class="internal"><svg width="18" height="18" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><path d="M10 13a5 5 0 0 0 7.54.54l3-3a5 5 0 0 0-7.07-7.07l-1.72 1.71"></path><path d="M14 11a5 5 0 0 0-7.54-.54l-3 3a5 5 0 0 0 7.07 7.07l1.71-1.71"></path></svg></a></h2>
<p>add the following to /etc/nixos/configuration.nix:</p>
<figure data-rehype-pretty-code-figure><pre tabindex="0" data-language="nix" data-theme="github-dark github-light"><code data-language="nix" data-theme="github-dark github-light" style="display:grid;"><span data-line><span style="--shiki-dark:#6A737D;--shiki-light:#6A737D;"> # Enable OpenGL</span></span>
<span data-line><span style="--shiki-dark:#FFAB70;--shiki-light:#E36209;"> hardware</span><span style="--shiki-dark:#F97583;--shiki-light:#D73A49;">.</span><span style="--shiki-dark:#FFAB70;--shiki-light:#E36209;">opengl</span><span style="--shiki-dark:#FDAEB7;--shiki-light:#B31D28;--shiki-dark-font-style:italic;--shiki-light-font-style:italic;"> =</span><span style="--shiki-dark:#E1E4E8;--shiki-light:#24292E;"> {</span></span>
<span data-line><span style="--shiki-dark:#B392F0;--shiki-light:#6F42C1;"> enable</span><span style="--shiki-dark:#F97583;--shiki-light:#D73A49;"> =</span><span style="--shiki-dark:#79B8FF;--shiki-light:#005CC5;"> true</span><span style="--shiki-dark:#E1E4E8;--shiki-light:#24292E;">;</span></span>
<span data-line><span style="--shiki-dark:#B392F0;--shiki-light:#6F42C1;"> driSupport</span><span style="--shiki-dark:#F97583;--shiki-light:#D73A49;"> =</span><span style="--shiki-dark:#79B8FF;--shiki-light:#005CC5;"> true</span><span style="--shiki-dark:#E1E4E8;--shiki-light:#24292E;">;</span></span>
<span data-line><span style="--shiki-dark:#B392F0;--shiki-light:#6F42C1;"> driSupport32Bit</span><span style="--shiki-dark:#F97583;--shiki-light:#D73A49;"> =</span><span style="--shiki-dark:#79B8FF;--shiki-light:#005CC5;"> true</span><span style="--shiki-dark:#E1E4E8;--shiki-light:#24292E;">;</span></span>
<span data-line><span style="--shiki-dark:#E1E4E8;--shiki-light:#24292E;"> }</span><span style="--shiki-dark:#FDAEB7;--shiki-light:#B31D28;--shiki-dark-font-style:italic;--shiki-light-font-style:italic;">;</span></span>
<span data-line> </span>
<span data-line><span style="--shiki-dark:#FFAB70;--shiki-light:#E36209;"> services</span><span style="--shiki-dark:#F97583;--shiki-light:#D73A49;">.</span><span style="--shiki-dark:#FFAB70;--shiki-light:#E36209;">xserver</span><span style="--shiki-dark:#F97583;--shiki-light:#D73A49;">.</span><span style="--shiki-dark:#FFAB70;--shiki-light:#E36209;">videoDrivers</span><span style="--shiki-dark:#FDAEB7;--shiki-light:#B31D28;--shiki-dark-font-style:italic;--shiki-light-font-style:italic;"> =</span><span style="--shiki-dark:#E1E4E8;--shiki-light:#24292E;"> [</span><span style="--shiki-dark:#9ECBFF;--shiki-light:#032F62;">"nvidia"</span><span style="--shiki-dark:#E1E4E8;--shiki-light:#24292E;">]</span><span style="--shiki-dark:#FDAEB7;--shiki-light:#B31D28;--shiki-dark-font-style:italic;--shiki-light-font-style:italic;">;</span></span>
<span data-line><span style="--shiki-dark:#FFAB70;--shiki-light:#E36209;"> hardware</span><span style="--shiki-dark:#F97583;--shiki-light:#D73A49;">.</span><span style="--shiki-dark:#FFAB70;--shiki-light:#E36209;">nvidia</span><span style="--shiki-dark:#FDAEB7;--shiki-light:#B31D28;--shiki-dark-font-style:italic;--shiki-light-font-style:italic;"> =</span><span style="--shiki-dark:#E1E4E8;--shiki-light:#24292E;"> {</span></span>
<span data-line><span style="--shiki-dark:#B392F0;--shiki-light:#6F42C1;"> nvidiaSettings</span><span style="--shiki-dark:#F97583;--shiki-light:#D73A49;"> =</span><span style="--shiki-dark:#79B8FF;--shiki-light:#005CC5;"> true</span><span style="--shiki-dark:#E1E4E8;--shiki-light:#24292E;">;</span></span>
<span data-line><span style="--shiki-dark:#B392F0;--shiki-light:#6F42C1;"> forceFullCompositionPipeline</span><span style="--shiki-dark:#F97583;--shiki-light:#D73A49;"> =</span><span style="--shiki-dark:#79B8FF;--shiki-light:#005CC5;"> true</span><span style="--shiki-dark:#E1E4E8;--shiki-light:#24292E;">;</span></span>
<span data-line><span style="--shiki-dark:#B392F0;--shiki-light:#6F42C1;"> package</span><span style="--shiki-dark:#F97583;--shiki-light:#D73A49;"> =</span><span style="--shiki-dark:#FFAB70;--shiki-light:#E36209;"> config</span><span style="--shiki-dark:#F97583;--shiki-light:#D73A49;">.</span><span style="--shiki-dark:#FFAB70;--shiki-light:#E36209;">boot</span><span style="--shiki-dark:#F97583;--shiki-light:#D73A49;">.</span><span style="--shiki-dark:#FFAB70;--shiki-light:#E36209;">kernelPackages</span><span style="--shiki-dark:#F97583;--shiki-light:#D73A49;">.</span><span style="--shiki-dark:#FFAB70;--shiki-light:#E36209;">nvidiaPackages</span><span style="--shiki-dark:#F97583;--shiki-light:#D73A49;">.</span><span style="--shiki-dark:#FFAB70;--shiki-light:#E36209;">production</span><span style="--shiki-dark:#E1E4E8;--shiki-light:#24292E;">;</span></span>
<span data-line><span style="--shiki-dark:#E1E4E8;--shiki-light:#24292E;"> }</span><span style="--shiki-dark:#FDAEB7;--shiki-light:#B31D28;--shiki-dark-font-style:italic;--shiki-light-font-style:italic;">;</span></span>
<span data-line> </span>
<span data-line><span style="--shiki-dark:#FFAB70;--shiki-light:#E36209;">services</span><span style="--shiki-dark:#F97583;--shiki-light:#D73A49;">.</span><span style="--shiki-dark:#FFAB70;--shiki-light:#E36209;">xserver</span><span style="--shiki-dark:#F97583;--shiki-light:#D73A49;">.</span><span style="--shiki-dark:#FFAB70;--shiki-light:#E36209;">dpi</span><span style="--shiki-dark:#FDAEB7;--shiki-light:#B31D28;--shiki-dark-font-style:italic;--shiki-light-font-style:italic;"> =</span><span style="--shiki-dark:#79B8FF;--shiki-light:#005CC5;"> 96</span><span style="--shiki-dark:#FDAEB7;--shiki-light:#B31D28;--shiki-dark-font-style:italic;--shiki-light-font-style:italic;">;</span></span>
<span data-line> </span></code></pre></figure>
<h2 id="switchable-graphics-on-in-bios---igpu">switchable graphics on in BIOS - iGPU<a role="anchor" aria-hidden="true" tabindex="-1" data-no-popover="true" href="#switchable-graphics-on-in-bios---igpu" class="internal"><svg width="18" height="18" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><path d="M10 13a5 5 0 0 0 7.54.54l3-3a5 5 0 0 0-7.07-7.07l-1.72 1.71"></path><path d="M14 11a5 5 0 0 0-7.54-.54l-3 3a5 5 0 0 0 7.07 7.07l1.71-1.71"></path></svg></a></h2>
<figure data-rehype-pretty-code-figure><pre tabindex="0" data-language="nix" data-theme="github-dark github-light"><code data-language="nix" data-theme="github-dark github-light" style="display:grid;"><span data-line><span style="--shiki-dark:#6A737D;--shiki-light:#6A737D;"># https://discourse.nixos.org/t/eliminate-screen-tearing-with-intel-mesa/14724</span></span>
<span data-line><span style="--shiki-dark:#FFAB70;--shiki-light:#E36209;">services</span><span style="--shiki-dark:#F97583;--shiki-light:#D73A49;">.</span><span style="--shiki-dark:#FFAB70;--shiki-light:#E36209;">xserver</span><span style="--shiki-dark:#F97583;--shiki-light:#D73A49;">.</span><span style="--shiki-dark:#FFAB70;--shiki-light:#E36209;">videoDrivers</span><span style="--shiki-dark:#FDAEB7;--shiki-light:#B31D28;--shiki-dark-font-style:italic;--shiki-light-font-style:italic;"> =</span><span style="--shiki-dark:#E1E4E8;--shiki-light:#24292E;"> [ </span><span style="--shiki-dark:#9ECBFF;--shiki-light:#032F62;">"intel"</span><span style="--shiki-dark:#E1E4E8;--shiki-light:#24292E;"> ]</span><span style="--shiki-dark:#FDAEB7;--shiki-light:#B31D28;--shiki-dark-font-style:italic;--shiki-light-font-style:italic;">;</span></span>
<span data-line><span style="--shiki-dark:#FFAB70;--shiki-light:#E36209;"> services</span><span style="--shiki-dark:#F97583;--shiki-light:#D73A49;">.</span><span style="--shiki-dark:#FFAB70;--shiki-light:#E36209;">xserver</span><span style="--shiki-dark:#F97583;--shiki-light:#D73A49;">.</span><span style="--shiki-dark:#FFAB70;--shiki-light:#E36209;">deviceSection</span><span style="--shiki-dark:#FDAEB7;--shiki-light:#B31D28;--shiki-dark-font-style:italic;--shiki-light-font-style:italic;"> =</span><span style="--shiki-dark:#9ECBFF;--shiki-light:#032F62;"> ''</span></span>
<span data-line><span style="--shiki-dark:#9ECBFF;--shiki-light:#032F62;"> Option "DRI" "2"</span></span>
<span data-line><span style="--shiki-dark:#9ECBFF;--shiki-light:#032F62;"> Option "TearFree" "true"</span></span>
<span data-line><span style="--shiki-dark:#9ECBFF;--shiki-light:#032F62;"> ''</span><span style="--shiki-dark:#FDAEB7;--shiki-light:#B31D28;--shiki-dark-font-style:italic;--shiki-light-font-style:italic;">;</span></span></code></pre></figure>
<p>Everything else worked fine out of the box - Microphone, Webcam, Bluetooth, Sound, external ports</p></article></div><div class="right sidebar"><div class="backlinks"><h3>Backlinks</h3><ul class="overflow"><li><a href="./" class="internal"></a></li></ul></div></div></div><footer class><hr/><ul></ul></footer></div></body><script src="https://cdn.jsdelivr.net/npm/[email protected]/dist/contrib/copy-tex.min.js" type="application/javascript"></script><script type="application/javascript">function c(){let t=this.parentElement;t.classList.toggle("is-collapsed");let l=t.classList.contains("is-collapsed")?this.scrollHeight:t.scrollHeight;t.style.maxHeight=l+"px";let o=t,e=t.parentElement;for(;e;){if(!e.classList.contains("callout"))return;let n=e.classList.contains("is-collapsed")?e.scrollHeight:e.scrollHeight+o.scrollHeight;e.style.maxHeight=n+"px",o=e,e=e.parentElement}}function i(){let t=document.getElementsByClassName("callout is-collapsible");for(let s of t){let l=s.firstElementChild;if(l){l.addEventListener("click",c),window.addCleanup(()=>l.removeEventListener("click",c));let e=s.classList.contains("is-collapsed")?l.scrollHeight:s.scrollHeight;s.style.maxHeight=e+"px"}}}document.addEventListener("nav",i);window.addEventListener("resize",i);
</script><script type="module">
let mermaidImport = undefined
document.addEventListener('nav', async () => {
if (document.querySelector("code.mermaid")) {
mermaidImport ||= await import('https://cdn.jsdelivr.net/npm/mermaid/dist/mermaid.esm.min.mjs')
const mermaid = mermaidImport.default
const darkMode = document.documentElement.getAttribute('saved-theme') === 'dark'
mermaid.initialize({
startOnLoad: false,
securityLevel: 'loose',
theme: darkMode ? 'dark' : 'default'
})
await mermaid.run({
querySelector: '.mermaid'
})
}
});
</script><script src="./postscript.js" type="module"></script></html>