diff --git a/content/about.json b/content/about.json
index 232751a..d8f0dd0 100644
--- a/content/about.json
+++ b/content/about.json
@@ -1,6 +1,39 @@
{
"anilistUsername": "SirBlob",
"lastfmUsername": "Sir_Blob_",
+ "setup": {
+ "user": "blob",
+ "host": "blomarchy",
+ "steam": [
+ " ( ) (",
+ " ) ( ) )",
+ " ( ) ( ("
+ ],
+ "art": [
+ " ▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄",
+ " ██ ██▄▄▄▄▄",
+ " ██ ██ ██",
+ " ██ ██ ██",
+ " ██ ██▀▀▀▀▀",
+ " ██ ██",
+ " ▀█▄▄▄▄▄▄▄▄▄▄▄█▀",
+ "▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄",
+ " ▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀"
+ ],
+ "specs": [
+ { "label": "host", "value": "Lenovo IdeaPad Flex 5i" },
+ { "label": "os", "value": "Arch Linux x86_64" },
+ { "label": "kernel", "value": "Linux (arch)" },
+ { "label": "shell", "value": "bash" },
+ { "label": "wm", "value": "Hyprland (Wayland)" },
+ { "label": "term", "value": "foot" },
+ { "label": "display", "value": "2x 1920x1080 24\", 60 Hz + 75 Hz" },
+ { "label": "cpu", "value": "Intel Core i5-1335U (4+8) @ 4.60 GHz" },
+ { "label": "gpu", "value": "Intel Iris Xe Graphics" },
+ { "label": "memory", "value": "16 GB" }
+ ],
+ "dotfilesUrl": "https://github.com/SirBlobby/dotfiles"
+ },
"hobbies": [
{ "name": "Swimming", "icon": "proicons:person-swim", "description": "I enjoy swimming as a way to relax and stay active. It is my favorite sport." },
{ "name": "Baking", "icon": "proicons:cake", "description": "I love baking pastries and experimenting with new dessert recipes." },
diff --git a/src/lib/components/about/setup/SetupFetch.svelte b/src/lib/components/about/setup/SetupFetch.svelte
new file mode 100644
index 0000000..e7b7599
--- /dev/null
+++ b/src/lib/components/about/setup/SetupFetch.svelte
@@ -0,0 +1,141 @@
+
+
+
+
+
{#each setup.steam as line, index (index)}{line}
+{/each}
+
{setup.art.join('\n')}
+
+
+
+
+ {setup.user}@{setup.host}
+
+
{'-'.repeat(title.length)}
+ {#each setup.specs as spec (spec.label)}
+
{spec.label}{spec.value}
+ {/each}
+
+
+ {#each paletteColors as color (color)}
+
+ {/each}
+
+
+
+
+
diff --git a/src/lib/components/about/setup/SetupSection.svelte b/src/lib/components/about/setup/SetupSection.svelte
new file mode 100644
index 0000000..af185a7
--- /dev/null
+++ b/src/lib/components/about/setup/SetupSection.svelte
@@ -0,0 +1,11 @@
+
+
+
+
+
diff --git a/src/lib/content/types.ts b/src/lib/content/types.ts
index 0c4da1e..fb42cc6 100644
--- a/src/lib/content/types.ts
+++ b/src/lib/content/types.ts
@@ -138,9 +138,24 @@ export interface RatedTitle {
}
export interface AboutContent {
+export interface LabeledValue {
+ label: string;
+ value: string;
+}
+
+export interface DesktopSetup {
+ user: string;
+ host: string;
+ steam: string[];
+ art: string[];
+ specs: LabeledValue[];
+ dotfilesUrl: string;
+}
+
anilistUsername?: string;
lastfmUsername?: string;
hobbies: Hobby[];
+ setup?: DesktopSetup;
games: Game[];
shows: RatedTitle[];
movies: RatedTitle[];
diff --git a/src/routes/about/+page.svelte b/src/routes/about/+page.svelte
index 5cdde60..f1eb9bd 100644
--- a/src/routes/about/+page.svelte
+++ b/src/routes/about/+page.svelte
@@ -8,6 +8,7 @@
import AnimeSection from '#lib/components/about/AnimeSection.svelte';
import MediaGrid from '#lib/components/about/MediaGrid.svelte';
import GameCard from '#lib/components/about/GameCard.svelte';
+ import SetupSection from '#lib/components/about/setup/SetupSection.svelte';
import ListeningSection from '#lib/components/about/listening/ListeningSection.svelte';
import type { PageProps } from './$types';
@@ -23,6 +24,7 @@
const sections = $derived([
{ id: 'hobbies', label: 'Hobbies', color: 'blue' },
+ ...(about.setup ? [{ id: 'setup', label: 'Setup', color: 'cyan' }] : []),
{ id: 'games', label: 'Games', color: 'orange' },
{ id: 'shows', label: 'Shows', color: 'yellow' },
{ id: 'movies', label: 'Movies', color: 'green' },
@@ -47,6 +49,12 @@
+ {#if about.setup}
+
+ {/if}
+
{#each about.games as game (game.name)}