Quick save

This commit is contained in:
2025-10-15 17:25:29 -04:00
parent fe54552369
commit 64498c2b6c
17 changed files with 379 additions and 13 deletions

62
public/age.svg Normal file

File diff suppressed because one or more lines are too long

After

Width:  |  Height:  |  Size: 64 KiB

BIN
public/devenv.webp Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 5.1 KiB

BIN
public/github-profile.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 217 KiB

BIN
public/modular-config.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 174 KiB

BIN
public/nixos-bg.jpeg Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 251 KiB

1
public/nvf.svg Normal file

File diff suppressed because one or more lines are too long

After

Width:  |  Height:  |  Size: 42 KiB

View File

@@ -27,6 +27,10 @@
import NixDarwin from './slides/NixDarwin.svelte'
import HomeManager from './slides/HomeManager.svelte'
import DesktopManagement from './slides/DesktopManagement.svelte'
import Agenix from './slides/Agenix.svelte'
import Devenv from './slides/Devenv.svelte'
import Configuration from './slides/Configuration.svelte'
import Neovim from './slides/Neovim.svelte'
onMount(async () => {
await tick()
@@ -46,9 +50,9 @@
<Title />
<AboutMe />
<WhatIsNix />
<History />
<TheProblem />
<CoreIdea />
<History />
<TitleNixLanguage />
<NixLanguage />
<TitleNixpkgs />
@@ -56,10 +60,13 @@
<Channels />
<TitleNixOS />
<NixOSInstall />
<Flake />
<Configuration />
<TitleCommunityProjects />
<HomeManager />
<DesktopManagement />
<NixDarwin />
<Agenix />
<Devenv />
<Neovim />
</div>
</div>

View File

@@ -0,0 +1,43 @@
{ config, lib, pkgs, ... }:
{
imports =
[
./hardware-configuration.nix
];
boot.loader.systemd-boot.enable = true;
boot.loader.efi.canTouchEfiVariables = true;
networking.hostName = "nixos";
networking.networkmanager.enable = true;
time.timeZone = "Europe/Amsterdam";
services.xserver.enable = true;
services.pipewire = {
enable = true;
pulse.enable = true;
};
users.users.alice = {
isNormalUser = true;
extraGroups = [ "wheel" ];
packages = with pkgs; [
tree
];
};
programs.firefox.enable = true;
environment.systemPackages = with pkgs; [
vim
wget
];
services.openssh.enable = true;
system.stateVersion = "25.11";
}

34
src/code/devenv/1.nix Normal file
View File

@@ -0,0 +1,34 @@
{
pkgs,
...
}:
{
packages = [ pkgs.git ];
languages = {
python = {
enable = true;
venv = {
enable = true;
requirements = ''
beautifulsoup4==4.14.2
certifi==2025.10.5
charset-normalizer==3.4.3
idna==3.10
requests==2.32.5
soupsieve==2.8
typing_extensions==4.15.0
urllib3==2.5.0
'';
};
};
javascript = {
enable = true;
bun = {
enable = true;
install.enable = true;
};
};
typescript.enable = true;
};
}

View File

@@ -1,17 +1,32 @@
<script lang="ts">
import GithubProfile from '/github-profile.png'
</script>
<section>
<h3>About Me</h3>
<ul>
<li>Senior Computer Science Major / CIS Minor</li>
<li>The Nix guy or maybe the CD Guy</li>
</ul>
<div id="about-me">
<div style="text-align: left;">
<strong>About Me</strong>
<ul class="description">
<li>Senior Computer Science Major / CIS Minor</li>
<li>The Nix guy or maybe the CD Guy</li>
<li>Has a vendetta against YouTube's backend developers</li>
</ul>
</div>
<img src={GithubProfile} alt="age" />
</div>
</section>
<style>
section {
text-align: left;
#about-me {
display: grid;
grid-template-rows: 1fr;
grid-template-columns: 2fr 1fr;
align-items: center;
gap: 40px;
}
ul {
.description {
color: #aaaaaa;
font-size: 20pt;
}
</style>

31
src/slides/Agenix.svelte Normal file
View File

@@ -0,0 +1,31 @@
<script lang="ts">
import Age from '/age.svg'
</script>
<section>
<div id="agenix">
<div style="text-align: left;">
<strong>Agenix</strong>
<p class="description">
Agenix allos you to store encypted secrets directly in your Nix configuration.
Safely share and deploy your configurations
</p>
</div>
<img src={Age} alt="age" />
</div>
</section>
<style>
#agenix {
display: grid;
grid-template-rows: 1fr;
grid-template-columns: 2fr 1fr;
align-items: center;
gap: 40px;
}
.description {
color: #aaaaaa;
font-size: 24pt;
}
</style>

View File

@@ -0,0 +1,66 @@
<script lang="ts">
import NixLogo from '/nix.svg'
import ModularConfig from '/modular-config.png'
const Code = import.meta.glob('../code/Configuration/*.nix', { as: 'raw', eager: true })
</script>
<section>
<section>
<div id="generate-config">
<div>
<pre><code data-trim class="language-shell">
nixos-generate-config
</code></pre>
</div>
<div id="initial-files">
<div class="file-line">
<span>configuration.nix</span>
<img src={NixLogo} alt="nix-logo" />
</div>
<div class="file-line">
<span>hardware-configuration.nix</span>
<img src={NixLogo} alt="nix-logo" />
</div>
</div>
</div>
</section>
<section data-auto-animate>
<pre data-id="flake-animation"><code
data-trim
data-line-numbers="4-7|9-10|12-14|20-23|25-31|33-38"
class="language-nix">
{Object.values(Code)[0]}
</code></pre>
</section>
<section>
<div>
<img id="modular-config" src={ModularConfig} alt="modular-config" />
</div>
</section>
</section>
<style>
#generate-config {
display: grid;
grid-template-rows: 1fr;
grid-template-columns: 2fr 3fr;
}
#initial-files {
display: flex;
flex-direction: column;
justify-content: center;
align-items: end;
gap: 2rem;
font-size: 24pt;
}
.file-line {
display: flex;
align-items: center;
gap: 1rem;
height: 4rem;
}
#modular-config {
height: 40rem;
}
</style>

54
src/slides/Devenv.svelte Normal file
View File

@@ -0,0 +1,54 @@
<script lang="ts">
import Devenv from '/devenv.webp'
const Code = import.meta.glob('../code/devenv/*.nix', { as: 'raw', eager: true })
</script>
<section>
<section>
<div id="devenv">
<div style="text-align: left;">
<strong>devenv</strong>
<p class="description">
devenv enables declarative & reproducible developer environments using the nix
language. Declare all the programming languages, packages, scrips, environments
variables, etc. that your project relies on.
</p>
</div>
<img src={Devenv} alt="devenv" />
</div>
</section>
<section>
<div id="slides-env">
<div style="text-align: left;">
<strong>The env for these slides</strong>
<ul class="description">
<li>Python virtual environment with exact requiremnts</li>
<li>Typesciprt & Javascript support</li>
<li>Automatic JS runtime setup and dependecy installation with bun</li>
</ul>
</div>
<div style="font-size: 13pt;">
<pre><code data-trim data-line-numbers class="language-nix">
{Object.values(Code)[0]}
</code></pre>
</div>
</div>
</section>
</section>
<style>
#devenv,
#slides-env {
display: grid;
grid-template-rows: 1fr;
grid-template-columns: 2fr 1fr;
align-items: center;
gap: 40px;
}
.description {
color: #aaaaaa;
font-size: 24pt;
}
</style>

View File

@@ -5,7 +5,7 @@
<section>
<div id="intro">
<div style="text-align: left;">
<h3>Home Manager</h3>
<strong>Home Manager</strong>
<p class="description">
Nix module that extends user configuraiton capabilities. Allows for easy management
of per-user packages and dotfiles.
@@ -21,6 +21,7 @@
grid-template-rows: 1fr;
grid-template-columns: 2fr 1fr;
gap: 40px;
align-items: center;
}
.description {
color: #aaaaaa;

31
src/slides/Neovim.svelte Normal file
View File

@@ -0,0 +1,31 @@
<script lang="ts">
import NVF from '/nvf.svg'
</script>
<section>
<div id="intro">
<div style="text-align: left;">
<strong>Neovim</strong>
<p class="description">
Projects like Nixvim, NVF, and nixCats allow you to integrate your neovim
configuration into your Nix config. With Nixvim and NVF write your entire neovim
config using nix, or use nixCats if you want to stick with lua.
</p>
</div>
<img src={NVF} alt="nvf-log" />
</div>
</section>
<style>
#intro {
display: grid;
grid-template-rows: 1fr;
grid-template-columns: 2fr 1fr;
gap: 40px;
align-items: center;
}
.description {
color: #aaaaaa;
font-size: 24pt;
}
</style>

View File

@@ -7,7 +7,7 @@
<section>
<div id="intro">
<div style="text-align: left;">
<h3>Nix Darwin</h3>
<strong>Nix Darwin</strong>
<p class="description">
Nix Darwin allows you to use Nix's declarative system to manage your MacOS.
Built around nixpkgs, similar to NixOS.
@@ -27,6 +27,7 @@
grid-template-rows: 1fr;
grid-template-columns: 2fr 1fr;
gap: 40px;
align-items: center;
}
.description {
color: #aaaaaa;

View File

@@ -1 +1,21 @@
<section>Nick's guide to Nix</section>
<script lang="ts">
import NixOSBG from '/nixos-bg.jpeg'
</script>
<section
data-background-image={NixOSBG}
data-background-size="cover"
data-background-position="left"
>
<div style="text-align: right;">
<strong style="font-size: 64pt;">Nix & NixOS</strong>
<div class="description">Reproducible, Declarative<br /> & Reliable</div>
</div>
</section>
<style>
.description {
color: #cccccc;
font-size: 24pt;
}
</style>